getServiceType(); $source_name_show = []; foreach ($source_name as $key => $item) { array_push($source_name_show, [ 'id' => $key, 'value' => $item, ]); } return view('finance.balance.balanceRecords', [ 'head_img' => yz_tomedia($this->getShopSet()['headimg']), 'source_name' => json_encode($source_name_show), 'member_levels' => json_encode($this->getMemberList()), 'member_groups' => json_encode($this->getMemberGroup()), ])->render(); } public function search() { $records = Balance::records()->where('change_money', '!=', 0); $search = $this->getPostSearch(); if (request()->ajax()) { $records = $records->search($search); if ($search['member']||$search['member_level']||$search['member_group']) { $records = $records->searchMember($search); } } $amount = $records->sum('change_money'); $pageList = $records->orderBy('yz_balance.id', 'desc')->paginate(static::PAGE_SIZE); return $this->successJson('ok', [ 'list' => $pageList, 'amount' => $amount, ]); } public function export() { $file_name = date('Ymdhis', time()) . '余额明细导出'; $search = $this->getPostSearch(); $list = Balance::records()->search($search)->searchMember($search); $export_page = request()->export_page ? request()->export_page : 1; $export_model = new ExportService($list, $export_page); $export_data[0] = ['时间', '会员ID', '会员姓名', '会员手机号', '会员等级', '会员分组', '订单号', '业务类型', '收入/支出', '变动前余额', '变动余额', '变动后余额', '备注']; $shopSet = $this->getShopSet(); $list = $list->get(); foreach ($list as $key => $item) { if ($item->member) { $member_id = $item->member->uid; $member_name = $item->member->realname ?: $item->member->nickname; $member_mobile = $item->member->mobile; $member_level = $shopSet['level_name']; $member_group = '无分组'; if ($item->member->yzMember->group) { $member_group = $item->member->yzMember->group->group_name ?: '无分组'; } if ($item->member->yzMember->level) { $member_level = $item->member->yzMember->level->level_name ?: $shopSet['level_name']; } } else { $member_id = ''; $member_name = ''; $member_mobile = ''; $member_level = $shopSet['level_name']; $member_group = '无分组'; } $export_data[$key + 1] = [ $item->created_at, $member_id, $member_name, $member_mobile, $member_level, $member_group, $item->serial_number, $item->service_type_name, $item->type_name, $item->old_money, $item->change_money, $item->new_money, $item->remark ]; } $export_model->export($file_name, $export_data, 'finance.balance-records.export'); // 商城更新,无法使用 // \Excel::create($file_name, function ($excel) use ($export_data) { // // Set the title // $excel->setTitle('Office 2005 XLSX Document'); // // // Chain the setters // $excel->setCreator('芸众商城') // ->setLastModifiedBy("芸众商城") // ->setSubject("Office 2005 XLSX Test Document") // ->setDescription("Test document for Office 2005 XLSX, generated using PHP classes.") // ->setKeywords("office 2005 openxml php") // ->setCategory("report file"); // // $excel->sheet('info', function ($sheet) use ($export_data) { // $sheet->rows($export_data); // }); // // // })->export('xls'); } private function getPostSearch() { return \YunShop::request()->search; } private function getShopSet() { return Setting::get('shop.member'); } private function getServiceType() { return (new ConstService(''))->sourceComment(); } private function getMemberList() { return LevelService::getMemberLevelList(); } private function getMemberGroup() { return GroupService::getMemberGroupList(); } }