{$data['type']}($data['where'],$data['excel_id']); } public function export($header, $title_arr, $export = [],$path, $filename = '', $id,$suffix = 'xlsx') { $title = isset($title_arr[0]) && !empty($title_arr[0]) ? $title_arr[0] : '导出数据'; $name = isset($title_arr[1]) && !empty($title_arr[1]) ? $title_arr[1] : '导出数据'; $info = isset($title_arr[2]) && !empty($title_arr[2]) ? $title_arr[2] : date('Y-m-d H:i:s', time()); try{ $_path = SpreadsheetExcelService::instance_xin() ->createOrActive() ->setExcelHeader($header) ->setExcelTile($title, $name, $info) ->setExcelContent($export) ->excelSave($filename, $suffix, $path); $dir=app()->getRootPath() . 'public' ; $img=$dir.'/'.$_path; $upload = UploadService::create(); $time = date('Y-m-d'); $osspath = "chuxubao/phpexcel/" . $time . '/'.$filename.'.xlsx'; $data = $upload->stream(file_get_contents($img),$osspath); if ($data === false) { return app('json')->fail($upload->getError()); } $res = $upload->getUploadInfo(); $_path2=$res['thumb_path']; app()->make(ExcelRepository::class)->update($id,[ 'name' => $filename.'.'.$suffix, 'status' => 1, // 'path' => '/'.$_path 'path' => $_path2 ]); }catch (Exception $exception){ app()->make(ExcelRepository::class)->update($id,[ 'name' => $filename.'.'.$suffix, 'status' => 2, 'message' => $exception->getMessage() ]); } } /** * TODO 导出订单 * @param array $where * @param int $id * @author Qinii * @day 2020-08-10 */ public function order(array $export,int $id) { // $make = app()->make(StoreOrderRepository::class); // var_dump($where); // $list=$make->merchantGetListYhc($where,1,10000); // var_dump($list);die; $header = [ '序号','订单编号','收货人','手机号','商品信息','价格*数量','实际支付', '支付类型','支付方式','订单状态','下单时间','养老金','养老金状态', ]; // // // $status = $where['status']; // $del = $where['mer_id'] > 0 ? 0 : null; // unset($where['status']); // $query = $make->search($where,$del)->where($make->getOrderType($status))->order('order_id ASC'); //// $count = $query->count(); // $list = $query->with([ // 'orderProduct', // 'merchant' => function ($query) {return $query->field('mer_id,mer_name');}, // 'user.spread' // ])->select()->toArray(); // $export = $this->orderList($list); // $header = [ // '序号','订单编号','订单类型','推广人','用户信息', // '商品名称','单商品总数','商品价格(元)','优惠','实付邮费(元)','实付金额(元)','已退款金额(元)', // '收货人','收货人电话','收货地址','物流单号','下单时间','支付方式','支付状态','商家备注' // ]; $title = ['订单列表','订单信息','生成时间:' . date('Y-m-d H:i:s',time())]; $filename = '订单列表_'.date('YmdHis'); return $this->export($header,$title,$export,'order',$filename,$id,'xlsx'); } public function orderList2(array $data){ $result = []; if(empty($data)) return $result; $i = 1; // '序号','订单编号','收货人','商品信息','实际支付', '支付类型','支付方式','支付状态',订单状态'下单时间','养老金','养老金状态', foreach ($data as $item){ if($item['status']==5){ $item['pay_price']='0'; } $item['leixing']=''; $item['ddzt']=''; $item['is_red_ylj_text']='未结算'; if($item['paid']==1){ if($item['pay_type']==0){ $item['leixing']='虚拟支付'; }else if ($item['pay_type']==1){ $item['leixing']='微信支付'; }else if ($item['pay_type']==5){ $item['leixing']='红积分兑换'; } } if($item['status'] == 5) $item['ddzt']='待付款'; if($item['status'] == 0) $item['ddzt']='待发货'; if($item['status'] == 1) $item['ddzt']='待收货'; if($item['status'] == 2) $item['ddzt']='待评价'; if($item['status'] == 3) $item['ddzt']='已完成'; if($item['status'] == 4) $item['ddzt']='已申请退款'; if($item['status'] == -1) $item['ddzt']='已退款'; if($item['status'] == 6) $item['ddzt']='已取消'; if($item['is_red_ylj']==1){ $item['is_red_ylj_text']='待审核'; } if($item['is_red_ylj']==2){ $item['is_red_ylj_text']='已结算'; } $result[] = [ $i, $item['order_sn'], $item['real_name'], $item['user']['nickname'], '商品信息', $item['pay_price'], $item['leixing'], $item['paid'] ? '已支付':'未支付', $item['ddzt'] ? '已支付':'未支付', $item['create_time'] , $item['ylj'] , $item['is_red_ylj_text'] , ]; $i++; } return $result; } /** * TODO 整理订单信息 * @param array $data * @return array * @author Qinii * @day 2020-08-10 */ public function orderList(array $data) { $result = []; if(empty($data)) return $result; $i = 1; foreach ($data as $item){ $refund_price = app()->make(StoreRefundOrderRepository::class)->refundPirceByOrder([$item['order_id']]); foreach ($item['orderProduct'] as $key => $value){ $result[] = [ $i, $item['order_sn'], $item['order_type'] ? '核销订单':'普通订单', $item['user']['spread']['nickname'], $item['user']['nickname'], $value['cart_info']['product']['store_name'], $value['product_num'], $value['cart_info']['product']['price'], ($key == 0 ) ? $item['coupon_price'] : 0, ($key == 0 ) ? $item['pay_postage'] : 0, ($key == 0 ) ? $item['total_price'] : 0, ($key == 0 ) ? $refund_price : 0, $item['real_name'], $item['user_phone'], $item['user_address'], $item['delivery_id'], $item['create_time'], $item['pay_type'] ? '微信': '余额', $item['paid'] ? '已支付':'未支付', $item['remark'] ]; $i++; } } return $result; } /** * TODO 流水记录导出 * @param array $where * @param int $id * @author Qinii * @day 2020-08-10 */ public function financial(array $where,int $id) { $_key = [ 'mer_accoubts' => '财务对账', 'sys_accoubts' => '财务对账', 'refund_order' => '退款订单', 'brokerage_one' => '一级分佣', 'brokerage_two' => '二级分佣', 'refund_brokerage_one' => '返还一级分佣', 'refund_brokerage_two' => '返还二级分佣', 'order' => '订单支付', ]; $make = app()->make(FinancialRecordRepository::class); $query = $make->search($where)->with(['merchant']); $list = $query->select(); $header = [ '序号','商户ID','商户名称','流水ID','流水单号','订单ID','订单号','用户名','用户ID','流水类型','收入/支付','金额','创建时间' ]; $_export = []; foreach ($list as $k => $v){ $_export[]=[ $k, $v['merchant']['mer_id'], $v['merchant']['mer_name'], $v['financial_record_id'], $v['financial_record_sn'], $v['order_id'], $v['order_sn'], $v['user_info'], $v['user_id'], $_key[$v['financial_type']], $v['financial_pm'] ? '收入' : '支出', $v['number'], $v['create_time'], ]; } $title = ['流水列表','流水信息','生成时间:' . date('Y-m-d H:i:s',time())]; $filename = '流水列表_'.date('YmdHis'); return $this->export($header,$title,$_export,'financial',$filename,$id,'xlsx'); } public function extract(array $data) { $export =$data; $header = [ '申请时间','姓名','申请金额','综合服务费','实际到账金额','提现方式','所属银行','所属银行支行','银行卡号','状态' ]; $title_arr = ['提现列表','提现信息','生成时间:' . date('Y-m-d H:i:s',time())]; $filename = '提现列表_'.date('YmdHis'); $title = isset($title_arr[0]) && !empty($title_arr[0]) ? $title_arr[0] : '导出数据'; $name = isset($title_arr[1]) && !empty($title_arr[1]) ? $title_arr[1] : '导出数据'; $info = isset($title_arr[2]) && !empty($title_arr[2]) ? $title_arr[2] : date('Y-m-d H:i:s', time()); $suffix='xlsx'; $path='extract'; $_path = SpreadsheetExcelService::instance() ->createOrActive() ->setExcelHeader($header) ->setExcelTile($title, $name, $info) ->setExcelContent($export) ->excelSave($filename, $suffix, $path); return [ 'name' => $filename.'.'.$suffix, 'status' => 1, 'path' => '/'.$_path ]; } }