问题描述:
解决方法:
admin端:
下载 附件1 解压替换 src/pages/store/bill/index.vue 路径文件。
下载 附件2 解压替换 src/pages/store/components/commissionDetails.vue 路径文件。
修改完成后需要重新打包,打包教程: https://doc.crmeb.com/pro/crmebprov3_2/21560
后台修改:
修改文件:app/controller/admin/v1/store/StoreFinanceFlow.php
修改方法:fundRecordInfo()
public function fundRecordInfo()
{
$where = $this->request->getMore([
['timeType', 'day'],
['day', ''],
['store_id', '']
]);
$where['keyword'] = $this->request->param('keyword', '');
$where['is_del'] = 0;
$where['trade_type'] = 1;
$where['no_type'] = [1,15];
return app('json')->success($this->services->getList($where));
}
修改文件:app/controller/admin/v1/other/export/ExportExcel.php
修改方法:financeRecord()
public function financeRecord(StoreFinanceFlowServices $services)
{
$where = $this->request->getMore([
['timeType', 'day'],
['day', ''],
['store_id', 0]
]);
$where['trade_type'] = 1;
$where['no_type'] = [1,15];
$where['is_del'] = 0;
$data = $services->getList($where);
return $this->success($this->service->financeRecord($data['list'] ?? []));
}
修改文件:app/services/store/finance/StoreFinanceFlowServices.php
修改方法:getList()
public function getList(array $where)
{
[$page, $limit] = $this->getPageValue();
if (isset($where['timeType'])) {
$start_time = '';
$end_time = '';
switch ($where['timeType']) {
case 'day':
$time = strtotime($where['day']);
$start_time = date("Y/m/d 00:00", $time);
$end_time = date("Y/m/d 23:59", $time);
break;
case 'week':
[$year, $week] = explode('-', $where['day']);
$startOfWeek = strtotime("{$year}-W{$week}-1");
$endOfWeek = strtotime("+6 days", $startOfWeek);
$start_time = date('Y/m/d H:i', $startOfWeek);
$end_time = date('Y/m/d H:i', $endOfWeek);
break;
case 'month':
[$year, $month] = explode('-', $where['day']);
$startOfMonth = strtotime("{$year}-{$month}-01 00:00:00");
$endOfMonth = strtotime("{$year}-{$month}-01 +1 month -1 day 23:59:59");
$start_time = date('Y/m/d H:i', $startOfMonth);
$end_time = date('Y/m/d H:i', $endOfMonth);
break;
}
$where['timeType'] = 'add_time';
$where['time'] = $start_time . '-' . $end_time;
}
$list = $this->dao->getList($where, '*', $page, $limit, ['user', 'systemStoreStaff', 'systemStore' => function ($query) {
$query->field('id,name')->bind(['store_name' => 'name']);
}]);
if ($list) {
$linkIds = array_column($list, 'link_id');
$orderInfo = [];
if ($linkIds) {
/** @var StoreOrderServices $orderServices */
$orderServices = app()->make(StoreOrderServices::class);
$orderInfo = $orderServices->getColumn([['order_id', 'in', $linkIds]], 'id,order_id', 'order_id');
}
/** @var StoreOrderCartInfoServices $orderCart */
$orderCart = app()->make(StoreOrderCartInfoServices::class);
foreach ($list as &$item) {
$oid = $orderInfo[$item['link_id']]['id'] ?? 0;
$_info = [];
if ($oid) {
$_info = $orderCart->getCartColunm(['oid' => $oid], 'cart_info', 'unique');
foreach ($_info as $k => $v) {
$cart_info = is_string($v) ? json_decode($v, true) : $v;
if (!isset($cart_info['productInfo'])) $cart_info['productInfo'] = [];
$_info[$k] = $cart_info;
unset($cart_info);
}
}
$item['_info'] = $_info;
$item['type_name'] = $this->type[$item['type']] ?? '其他类型';
$item['pay_type_name'] = $this->pay_type[$item['pay_type']] ?? '其他方式';
$item['add_time'] = $item['add_time'] ? date('Y-m-d H:i:s', $item['add_time']) : '';
$item['take_time'] = $item['take_time'] ? date('Y-m-d H:i:s', $item['take_time']) : '';
$item['trade_time'] = $item['trade_time'] ? date('Y-m-d H:i:s', $item['trade_time']) : $item['add_time'];
$item['user_nickname'] = $item['user_nickname'] ?: '游客';
}
}
$count = $this->dao->getCount($where);
return compact('list', 'count');
}