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);
}
}