Merge pull request 'refactor(WorkbenchLogic): 调整支付订单查询逻辑,优化支付订单处理效率' (#190) from dev into main

Reviewed-on: #190
This commit is contained in:
mkm 2024-09-05 22:13:38 +08:00
commit fa8421b6e7

View File

@ -158,31 +158,31 @@ class WorkbenchLogic extends BaseLogic
->select() ->select()
->toArray(); ->toArray();
$orderList = StoreOrder::field($field) // $orderList = StoreOrder::field($field)
->where($where) // ->where($where)
->whereBetweenTime('pay_time', $startTime, $endTime) // ->whereBetweenTime('pay_time', $startTime, $endTime)
->group($group) // ->group($group)
->select() // ->select()
->toArray(); // ->toArray();
$userList = StoreOrder::field($field . ',count(uid) as user_num') $userList = StoreOrder::field($field . ',count(uid) as user_num')
->where($where) ->where($where)
->whereBetweenTime('pay_time', $startTime, $endTime) ->whereBetweenTime('pay_time', $startTime, $endTime)
->group($group . ',uid') ->group($group . ',uid')
->select() ->select()
->toArray(); ->toArray();
$orderList = reset_index($orderList, 'pay_time'); // $orderList = reset_index($orderList, 'pay_time');
$userList = reset_index($userList, 'pay_time'); $userList = reset_index($userList, 'pay_time');
$orderListTmp = []; // $orderListTmp = [];
$userListTmp = []; $userListTmp = [];
$range = []; $range = [];
$mergedListTmp = []; $mergedListTmp = [];
foreach ($timeRange as $item) { foreach ($timeRange as $item) {
$range[] = $item; $range[] = $item;
if (!isset($orderList[$item])) { // if (!isset($orderList[$item])) {
$orderListTmp[$item] = 0; // $orderListTmp[$item] = 0;
} else { // } else {
$orderListTmp[$item] = $orderList[$item]['pay_price']; // $orderListTmp[$item] = $orderList[$item]['pay_price'];
} // }
if (!isset($userList[$item])) { if (!isset($userList[$item])) {
$userListTmp[$item] = 0; $userListTmp[$item] = 0;
} else { } else {
@ -196,25 +196,29 @@ class WorkbenchLogic extends BaseLogic
$mergedListTmp[$item] += $recharge['pay_price']; $mergedListTmp[$item] += $recharge['pay_price'];
} }
} }
foreach ($orderList as $order) { // foreach ($orderList as $order) {
if ($order['pay_time'] == $item) { // if ($order['pay_time'] == $item) {
$mergedListTmp[$item] += $order['pay_price']; // $mergedListTmp[$item] += $order['pay_price'];
} // }
} // }
} }
$data['statistics'] = [ $data['statistics'] = [
'range' => $range, 'range' => $range,
'data' => [ 'data' => [
// 'order_amount' => array_values($orderListTmp), // 'order_amount' => array_values($orderListTmp),
'user_number' => array_values($userListTmp), 'user_number' => array_values($userListTmp),
'order_amount' => array_values($mergedListTmp) // 'order_amount' => array_values($mergedListTmp)
] ]
]; ];
$data['pay_type'] = [ $data['pay_type'] = [
// ['name' => '线上收银订单', 'value' => bcsub($data['order_amount'], bcadd($data['verify_amount'], $data['cash_amount'], 2), 2)], // ['name' => '线上收银订单', 'value' => bcsub($data['order_amount'], bcadd($data['verify_amount'], $data['cash_amount'], 2), 2)],
// ['name' => '核销订单', 'value' => $data['verify_amount']], // ['name' => '核销订单', 'value' => $data['verify_amount']],
['name' => '现金收银订单', 'value' => $data['cash_amount']], ['name' => '微信订单', 'value' => $data['wechat_amount']],
['name' => '支付宝订单', 'value' => $data['alipay_amount']],
['name' => '采购款订单', 'value' => $data['purchase_funds_amount']],
['name' => '余额订单', 'value' => $data['balance_amount']],
['name' => '现金订单', 'value' => $data['cash_amount']],
]; ];
return $data; return $data;
} }