assign('breadcrumb1','余额管理'); $this->assign('breadcrumb2','余额记录'); } /** * 列表页 * * */ public function index(Model $Model,Custom $Custom){ // 接受参数 $code = request('custom_code',''); $phone = request('phone',''); $username = request('custom_name',''); $status = request('status'); $startTime = request('start_time',''); $endTime = request('end_time',''); // 编码转ID $uid = $Custom->codeToId($code); // 查询条件 $map = []; // 编码ID if( $uid ) $map[] = ['custom.uid','=',$uid]; if( $phone ) $map[] = ['custom.phone','=',$phone]; if( $username ) $map[] = ['custom.username','=',$username]; if( $startTime ) $map[] = ['amount_record.insert_time','>=',Carbon::createFromFormat('Y-m-d',$startTime)->startOfDay()->getTimestamp()]; if( $endTime ) $map[] = ['amount_record.insert_time','<=',Carbon::createFromFormat('Y-m-d',$endTime)->endOfDay()->getTimestamp()]; if( !is_null($status) ) $map[] = ['amount_record.status','=',$status]; // 查询数据 $list = $Model->query() ->leftJoin('custom','custom.uid','=','amount_record.custom_uid') ->where($map) ->select(['amount_record.*','custom.username']) ->orderByDesc('amount_record.id') ->paginate(config('page_num',10)) ->appends(request()->all()); // 循环处理数据 foreach ($list as $key => $value) { // id转编号 $value['custom_code'] = (string) $Custom->idToCode($value['custom_uid']); $value['custom_name'] = (string) $Custom->getValue($value['custom_uid'],'username'); $value['buy_type'] = (string) $Model->getBuyType($value['buy_type'],'name'); $value['state'] = ''; switch($value['status']){ case 0: $value['state'] ='成功领取'; break; case 1: $value['state'] ='提现中'; break; case 2: $value['state'] ='提现成功'; break; case 3: $value['state'] ='提现失败'; break; } // 重组 $list[$key] = $value; } // 分配数据 $this->assign('empty', '~~暂无数据'); $this->assign('list',$list); // 加载模板 return $this->fetch(); } /** * 导出表格 * * */ public function down_excel(Model $Model,Custom $Custom){ // 接受参数 $code = request('custom_code',''); $phone = request('phone',''); $username = request('username',''); $status = request('status'); $startTime = request('start_time',''); $endTime = request('end_time',''); // 编码转ID $uid = $Custom->codeToId($code); // 查询条件 $map = []; // 编码ID if( $uid ) $map[] = ['custom.uid','=',$uid]; if( $phone ) $map[] = ['custom.phone','=',$phone]; if( $username ) $map[] = ['custom.username','=',$username]; if( $startTime ) $map[] = ['amount_record.insert_time','>=',Carbon::createFromFormat('Y-m-d',$startTime)->startOfDay()->getTimestamp()]; if( $endTime ) $map[] = ['amount_record.insert_time','<=',Carbon::createFromFormat('Y-m-d',$endTime)->endOfDay()->getTimestamp()]; if( !is_null($status) ) $map[] = ['amount_record.status','=',$status]; // 查询数据 $list = $Model->query() ->leftJoin('custom','custom.uid','=','amount_record.custom_uid') ->where($map) ->select([ 'amount_record.id', 'amount_record.out_bill_no', 'amount_record.transfer_bill_no', 'amount_record.prefix', 'amount_record.amount', 'amount_record.balance', 'amount_record.description', 'amount_record.buy_type', 'amount_record.status', 'amount_record.pay_time', 'amount_record.insert_time', 'amount_record.custom_uid', 'custom.username as custom_name', ]) ->orderByDesc('amount_record.id') ->limit(10000)->get()->toArray(); // 循环处理数据 foreach ($list as $key => $value) { // 加减 $value['amount'] = "'".($value['prefix'] == 1 ? '+' : '-').$value['amount']; // id转编号 $value['custom_uid'] = (string) $Custom->idToCode($value['custom_uid']); // id转编号 $value['buy_type'] = (string) $Model->getBuyType($value['buy_type'],'name'); // 时间 $value['pay_time'] = $value['pay_time'] ? date('Y-m-d H:i:s',$value['pay_time']) : ''; // id转编号 $value['insert_time'] = $value['insert_time'] ? date('Y-m-d H:i:s',$value['insert_time']) : ''; switch($value['status']){ case 0: $value['status'] ='成功领取'; break; case 1: $value['status'] ='提现中'; break; case 2: $value['status'] ='提现成功'; break; case 3: $value['status'] ='提现失败'; break; } // 删除符号字段 unset($value['prefix']); // 重组 $list[$key] = $value; } // 去下载 $this->toDown($list); } /** * 去下载 */ private function toDown($data){ // xlsx文件保存路径 $excel = new \Vtiful\Kernel\Excel(['path' =>public_path().'/uploads/']); $filePath = $excel->fileName('tutorial01.xlsx', 'sheet1')->header(['记录ID','系统编号','第三方编号','变动金额','剩余金额','交易描述','交易类型','交易状态','支付时间','交易时间','客户编码','客户昵称'])->data($data)->output(); header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); header('Content-Disposition: attachment;filename="客户余额记录.xlsx"'); header('Content-Length: ' . filesize($filePath)); header('Content-Transfer-Encoding: binary'); header('Cache-Control: must-revalidate'); header('Cache-Control: max-age=0'); header('Pragma: public'); ob_clean(); flush(); // 输出文件,成功删除文件路径 if ( copy($filePath, 'php://output') ) @unlink($filePath); } }