diff --git a/app/common/dao/store/order/StoreOrderDao.php b/app/common/dao/store/order/StoreOrderDao.php index 72718e8e..13bcfea4 100644 --- a/app/common/dao/store/order/StoreOrderDao.php +++ b/app/common/dao/store/order/StoreOrderDao.php @@ -96,33 +96,25 @@ class StoreOrderDao extends BaseDao $query->where('activity_type', $where['product_type']); }) ->when(isset($where['status']) && $where['status'] !== '', function ($query) use ($where) { - // 12表示信用购 + // 12表示信用购 switch ($where['status']) { case 0 : - $query->where('StoreOrder.paid', 1)->whereIn('StoreOrder.status', [0, 9]); + $query->whereIn('StoreOrder.status', [0, 9]); break; - case 1 : - $query->where('paid', 1)->where('StoreOrder.status', 1); - break; - case 2 : - $query->where('StoreOrder.paid', 1)->where('StoreOrder.status', 2)->where('pay_type', '<>', StoreGroupOrder::PAY_TYPE_CREDIT_BUY); - break; - case 3 : - $query->where('paid', 1)->where('StoreOrder.status', 1); - break; - case -1 : - $query->where('paid', 0)->whereIn('StoreOrder.status', [0, 9, 12]); case -2 : - $query->whereNotIn('StoreOrder.status', [10, 11]); + $query->where('StoreOrder.paid', 1)->whereNotIn('StoreOrder.status', [10, 11]); break; case 10 : - $query->where('paid', 1)->whereIn('StoreOrder.status', [10, 11]); + $query->where('StoreOrder.paid', 1)->whereIn('StoreOrder.status', [10, 11]); + break; + case 2 : + $query->where('StoreOrder.paid', 1)->where('StoreOrder.status', $where['status'])->where('pay_type', '<>', StoreGroupOrder::PAY_TYPE_CREDIT_BUY); break; case 20 : - $query->where('paid', 1)->whereIn('StoreOrder.status', [2, 3]); + $query->where('StoreOrder.paid', 1)->whereIn('StoreOrder.status', [2, 3]); break; default: - $query->where('paid', 1)->where('StoreOrder.status', $where['status']); + $query->where('StoreOrder.status', $where['status']); break; } }) diff --git a/app/common/repositories/store/order/StoreOrderRepository.php b/app/common/repositories/store/order/StoreOrderRepository.php index 7caeeefb..93ad4520 100644 --- a/app/common/repositories/store/order/StoreOrderRepository.php +++ b/app/common/repositories/store/order/StoreOrderRepository.php @@ -585,14 +585,13 @@ class StoreOrderRepository extends BaseRepository if ($product_type == 98) { $isUser = 0; } - $noPay = $this->dao->search(['uid' => $uid, 'status' => -1, 'is_user' => $isUser])->where('activity_type', $product_type)->where('StoreOrder.is_del', 0)->fetchSql(false)->count(); - $noPostage = $this->dao->search(['uid' => $uid, 'status' => 0, 'is_user' => $isUser])->where('activity_type', $product_type)->where('StoreOrder.is_del', 0)->fetchSql(false)->count(); - $noDeliver = $this->dao->search(['uid' => $uid, 'status' => 1, 'is_user' => $isUser])->where('activity_type', $product_type)->where('StoreOrder.is_del', 0)->fetchSql(false)->count(); - $noComment = $this->dao->search(['uid' => $uid, 'status' => 2, 'is_user' => $isUser])->where('activity_type', $product_type)->where('StoreOrder.is_del', 0)->fetchSql(false)->count(); - $done = $this->dao->search(['uid' => $uid, 'status' => 3, 'is_user' => $isUser])->where('activity_type', $product_type)->where('StoreOrder.is_del', 0)->fetchSql(false)->count(); - $refund = StoreRefundOrder::alias('t1')->join('store_order t2', 't1.order_id=t2.order_id')->where('t1.uid', $uid)->where('t1.status', 3)->where('t2.activity_type', $product_type)->count(); - //$all = $this->dao->search(['uid' => $uid, 'status' => -2,'is_user' => 1])->where('activity_type', $product_type)->where('StoreOrder.is_del', 0)->count(); - $orderPrice = $this->dao->search(['uid' => $uid, 'paid' => 1, 'is_user' => $isUser])->where('activity_type', $product_type)->where('StoreOrder.is_del', 0)->fetchSql(false)->sum('pay_price'); + $noPay = $this->dao->search(['uid' => $uid, 'is_user' => $isUser])->where($this->getOrderType(1))->where('activity_type', $product_type)->where('StoreOrder.is_del', 0)->fetchSql(false)->count(); + $noPostage = $this->dao->search(['uid' => $uid, 'is_user' => $isUser])->where($this->getOrderType(2))->where('activity_type', $product_type)->where('StoreOrder.is_del', 0)->fetchSql(false)->count(); + $noDeliver = $this->dao->search(['uid' => $uid, 'is_user' => $isUser])->where($this->getOrderType(3))->where('activity_type', $product_type)->where('StoreOrder.is_del', 0)->fetchSql(false)->count(); + $noComment = $this->dao->search(['uid' => $uid, 'is_user' => $isUser])->where($this->getOrderType(4))->where('activity_type', $product_type)->where('StoreOrder.is_del', 0)->fetchSql(false)->count(); + $done = $this->dao->search(['uid' => $uid, 'is_user' => $isUser])->where($this->getOrderType(5))->where('activity_type', $product_type)->where('StoreOrder.is_del', 0)->fetchSql(false)->count(); + $refund = StoreRefundOrder::alias('t1')->join('store_order t2', 't1.order_id=t2.order_id')->where('t1.uid', $uid)->where('t1.status', 3)->where('t2.activity_type', $product_type)->count(); + $orderPrice = $this->dao->search(['uid' => $uid, 'is_user' => $isUser])->where($this->getOrderType(8))->where('activity_type', $product_type)->where('StoreOrder.is_del', 0)->fetchSql(false)->sum('pay_price'); $orderCount = $this->dao->search(['uid' => $uid, 'is_user' => $isUser])->where('activity_type', $product_type)->where('StoreOrder.is_del', 0)->fetchSql(false)->count(); return compact('noComment', 'done', 'refund', 'noDeliver', 'noPay', 'noPostage', 'orderPrice', 'orderCount'); } @@ -824,7 +823,7 @@ class StoreOrderRepository extends BaseRepository if ($orderType === 0) $where['order_type'] = 0; //普通订单 if ($orderType === 1) $where['take_order'] = 1; //已核销订单 if ($product_type!=0) $where['product_type'] = $product_type; //商品属性 - //1: 未支付 2: 未发货 3: 待收货 4: 待评价 5: 交易完成 6: 已退款 7: 已删除 + //1: 未支付 2: 未发货 3: 待收货 4: 待评价 5: 交易完成 6: 已退款 7: 已删除 8: 已支付 $all = $this->dao->search($where, $sysDel)->where($this->getOrderType(0))->count(); $statusAll = $all; $unpaid = $this->dao->search($where, $sysDel)->where($this->getOrderType(1))->whereRaw("StoreOrder.paid=0 or (StoreOrder.paid=1 and StoreOrder.pay_type=8 and StoreOrder.status=2)")->count(); @@ -874,6 +873,7 @@ class StoreOrderRepository extends BaseRepository $param['StoreOrder.is_del'] = 0; switch ($status) { case 1: + $param['StoreOrder.paid'] = 0; break; // 未支付 case 2: $param['StoreOrder.paid'] = 1; @@ -893,8 +893,10 @@ class StoreOrderRepository extends BaseRepository break; // 已退款 case 7: $param['StoreOrder.is_del'] = 1; - break; // 待核销 - break; // 已删除 + break; // 待核销 已删除 + case 8: + $param['StoreOrder.paid'] = 1; + break; // 已支付 default: unset($param['StoreOrder.is_del']); break; //全部 @@ -1699,7 +1701,9 @@ class StoreOrderRepository extends BaseRepository */ public function getList(array $where, $page, $limit) { - $query = $this->dao->search($where)->where('StoreOrder.is_del', 0); + $status = $where['status'] ?? ''; + unset($where['status']); + $query = $this->dao->search($where)->where($this->getOrderType($status))->where('StoreOrder.is_del', 0); $count = $query->count(); $list = $query->with([ 'orderProduct',