<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use App\Model\UserSampleApplyModel; use App\Model\UserSampleInviteModel; use DB; use Excel; Class ExportController extends Controller { // 统一入口 public function entrance(Request $request, $id) { return $this->$id($request); } // 导出会员 public function selfSampleExport($request) { $UserSampleApplyModel = new UserSampleApplyModel(); $UserSampleInviteModel = new UserSampleInviteModel(); $data = $UserSampleApplyModel->lists($request, 1); foreach ($data as $k=>$v) { $cellData[$k]['user_id'] = $v['user_id']; $cellData[$k]['account'] = $v['account']; $cellData[$k]['invite_count'] = $v['invite_count']; $cellData[$k]['apply_num_total'] = $v['apply_num_total']; $cellData[$k]['apply_count'] = $v['apply_count']; $cellData[$k]['order_id'] = $v['order_id']; $cellData[$k]['order_sn'] = $v['order_sn']; $cellData[$k]['goods_id'] = $v['goods_id']; $cellData[$k]['goods_name'] = $v['goods_name']; $invite = $UserSampleInviteModel->where('user_id', $v['user_id'])->select('invitee_mobile')->get()->toArray(); if (!empty($invite)) { $cellData[$k]['invitee'] = implode(',', array_column($invite, 'invitee_mobile')); } else { $cellData[$k]['invitee'] = ''; } $cellData[$k]['create_time'] = $v['create_time']; } $headerCell = ['用户ID', '用户账户', '邀请人数', '已申请样片数', '剩余领取次数', '订单ID', '订单编号', '样片ID', '样片名称', '邀请用户', '最近一次领取时间']; $fileName ='自营样片领取记录导出'.date('_YmdHis'); $sheetName = '自营样片'; $this->commonFunc($cellData, $headerCell, $fileName, $sheetName); } /** * 导出 * @param [type] $cellData [导出数据] * @param [type] $headerCell [菜单项] * @param [type] $fileName [文件名] * @param string $sheetName [sheet名] * @return [type] [description] */ public function commonFunc($cellData, $headerCell, $fileName, $sheetName='') { $sheetName = $sheetName ? $sheetName : '导出'; array_unshift($cellData, $headerCell); Excel::create($fileName, function($excel) use ($cellData, $sheetName){ $excel->sheet($sheetName, function($sheet) use ($cellData){ $sheet->rows($cellData); }); })->export('xls'); } }