From 0d2b770566ed4ad4d5d7b95fdc581fffb5c00c2c Mon Sep 17 00:00:00 2001 From: luofei <604446095@qq.com> Date: Tue, 5 Mar 2024 16:58:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=95=86=E6=88=B7=E9=82=80?= =?UTF-8?q?=E8=AF=B7=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controller/api/user/User.php | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/app/controller/api/user/User.php b/app/controller/api/user/User.php index 946d49db..71ad6d01 100755 --- a/app/controller/api/user/User.php +++ b/app/controller/api/user/User.php @@ -565,25 +565,31 @@ class User extends BaseController { [$page, $limit] = $this->getPage(); $userIds = UserModel::where('spread_uid', $this->user->uid)->column('uid'); - $query = Merchant::whereIn('uid', $userIds) - ->where('status', 1) - ->where('is_del', 0) - ->where('mer_state', 1); + $query = Merchant::whereIn('uid', $userIds)->where('is_del', 0); $count = $query->count(); - $result = $query->page($page, $limit) + $merchants = $query->page($page, $limit) ->field('mer_id,mer_name,uid,real_name') ->select()->toArray(); $dao = new StoreOrderDao(); /** @var PresellOrderRepository $preSellDao */ $preSellRepo = app()->make(PresellOrderRepository::class); - foreach ($result as &$item) { - $saleOrderQuery = $dao->search(['mer_id' => $item['mer_id']])->whereIn('StoreOrder.status', [0, 1, 2, 3, 9, 10])->where('paid', 1); - $saleOrderIds = $saleOrderQuery->column('order_id'); - $saleAmount1 = $saleOrderQuery->sum('StoreOrder.pay_price'); - $saleAmount2 = $preSellRepo->search(['paid' => 1, 'order_ids' => $saleOrderIds])->sum('pay_price'); - $item['sale_amount'] = bcadd($saleAmount1, $saleAmount2, 2); - $item['buy_amount'] = StoreOrderOther::where('uid', $item['uid'])->whereIn('status', [0, 1, 2, 3, 9, 10])->where('paid', 1)->sum('pay_price'); - $item['buy_amount'] = bcadd($item['buy_amount'], 0, 2); + $merchants = reset_index($merchants, 'uid'); + $result = []; + foreach ($userIds as $userId) { + if (isset($merchants[$userId])) { + $merchant = $merchants[$userId]; + $saleOrderQuery = $dao->search(['mer_id' => $merchant['mer_id']])->whereIn('StoreOrder.status', [0, 1, 2, 3, 9, 10])->where('paid', 1); + $saleOrderIds = $saleOrderQuery->column('order_id'); + $saleAmount1 = $saleOrderQuery->sum('StoreOrder.pay_price'); + $saleAmount2 = $preSellRepo->search(['paid' => 1, 'order_ids' => $saleOrderIds])->sum('pay_price'); + $merchant['sale_amount'] = bcadd($saleAmount1, $saleAmount2, 2); + $merchant['buy_amount'] = StoreOrderOther::where('uid', $merchant['uid'])->whereIn('status', [0, 1, 2, 3, 9, 10])->where('paid', 1)->sum('pay_price'); + $merchant['buy_amount'] = bcadd($merchant['buy_amount'], 0, 2); + $merchant['status'] = 1; + $result[] = $merchant; + } else { + $result[] = ['mer_id' => '', 'mer_name' => '', 'uid' => $userId, 'real_name' => $userId, 'sale_amount' => '0.00', 'buy_amount' => '0.00', 'status' => 0]; + } } return app('json')->success(['count' => $count, 'list' => $result]); }