code-origin/server/app/adminapi/lists/recharge/RechargeLists.php

145 lines
4.1 KiB
PHP
Raw Normal View History

2023-11-08 17:59:25 +08:00
<?php
// +----------------------------------------------------------------------
// | likeadmin快速开发前后端分离管理后台PHP版
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | 开源版本可自由商用可去除界面版权logo
// | gitee下载https://gitee.com/likeshop_gitee/likeadmin
// | github下载https://github.com/likeshop-github/likeadmin
// | 访问官网https://www.likeadmin.cn
// | likeadmin团队 版权所有 拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeadminTeam
// +----------------------------------------------------------------------
namespace app\adminapi\lists\recharge;
use app\adminapi\lists\BaseAdminDataLists;
use app\common\lists\ListsExcelInterface;
use app\common\lists\ListsSearchInterface;
use app\common\model\recharge\RechargeOrder;
use app\common\service\FileService;
/**
* 充值记录列表
* Class RecharLists
* @package app\adminapi\lists
*/
class RechargeLists extends BaseAdminDataLists implements ListsSearchInterface, ListsExcelInterface
{
/**
* @notes 导出字段
* @return string[]
* @author 段誉
* @date 2023/2/24 16:07
*/
public function setExcelFields(): array
{
return [
'sn' => '充值单号',
'nickname' => '用户昵称',
'order_amount' => '充值金额',
'pay_way' => '支付方式',
'pay_status' => '支付状态',
'pay_time' => '支付时间',
'create_time' => '下单时间',
];
}
/**
* @notes 导出表名
* @return string
* @author 段誉
* @date 2023/2/24 16:07
*/
public function setFileName(): string
{
return '充值记录';
}
/**
* @notes 搜索条件
* @return \string[][]
* @author 段誉
* @date 2023/2/24 16:08
*/
public function setSearch(): array
{
return [
'=' => ['ro.sn', 'ro.pay_way', 'ro.pay_status'],
];
}
/**
* @notes 搜索条件
* @author 段誉
* @date 2023/2/24 16:08
*/
public function queryWhere()
{
$where = [];
// 用户编号
if (!empty($this->params['user_info'])) {
$where[] = ['u.sn|u.nickname|u.mobile', 'like', '%' . $this->params['user_info'] . '%'];
}
// 下单时间
if (!empty($this->params['start_time']) && !empty($this->params['end_time'])) {
$time = [strtotime($this->params['start_time']), strtotime($this->params['end_time'])];
$where[] = ['ro.create_time', 'between', $time];
}
return $where;
}
/**
* @notes 获取列表
* @return array
* @author 段誉
* @date 2023/2/24 16:13
*/
public function lists(): array
{
$field = 'ro.id,ro.sn,ro.order_amount,ro.pay_way,ro.pay_time,ro.pay_status,ro.create_time,ro.refund_status';
$field .= ',u.avatar,u.nickname';
$lists = RechargeOrder::alias('ro')
->join('user u', 'u.id = ro.user_id')
->field($field)
->where($this->queryWhere())
->where($this->searchWhere)
->order('ro.id', 'desc')
->limit($this->limitOffset, $this->limitLength)
->append(['pay_status_text', 'pay_way_text'])
->select()
->toArray();
foreach ($lists as &$item) {
$item['avatar'] = FileService::getFileUrl($item['avatar']);
$item['pay_time'] = empty($item['pay_time']) ? '' : date('Y-m-d H:i:s', $item['pay_time']);
}
return $lists;
}
/**
* @notes 获取数量
* @return int
* @author 段誉
* @date 2023/2/24 16:13
*/
public function count(): int
{
return RechargeOrder::alias('ro')
->join('user u', 'u.id = ro.user_id')
->where($this->queryWhere())
->where($this->searchWhere)
->count();
}
}