Explorar o código

订单各个状态的数量

lizhen_gitee hai 3 meses
pai
achega
fe219b882c
Modificáronse 2 ficheiros con 92 adicións e 0 borrados
  1. 37 0
      addons/unishop/controller/Order.php
  2. 55 0
      addons/unishop/model/Order.php

+ 37 - 0
addons/unishop/controller/Order.php

@@ -329,6 +329,43 @@ class Order extends Base
 
     }
 
+    //订单各个状态的数量
+    public function getOrders_num(){
+        // 0=全部,1=待付款,3=待核销,4=已完成,40=待评价
+        $status = [
+            [
+                'status' => 1,
+                'status_text' => '待付款',
+                'number' => 0,
+            ],
+            [
+                'status' => 3,
+                'status_text' => '待核销',
+                'number' => 0,
+            ],
+            [
+                'status' => 4,
+                'status_text' => '已完成',
+                'number' => 0,
+            ],
+            [
+                'status' => 40,
+                'status_text' => '待评价',
+                'number' => 0,
+            ],
+        ];
+
+        $orderModel = new \addons\unishop\model\Order();
+
+        foreach($status as $key => $val){
+            $val['number'] = $orderModel->getOrdersByType_num($val['status']);
+
+            $status[$key] = $val;
+        }
+
+        $this->success(1, $status);
+    }
+
     /**
      * @ApiTitle    (取消订单)
      * @ApiSummary  (未支付的订单才叫取消,已支付的叫退货)

+ 55 - 0
addons/unishop/model/Order.php

@@ -433,6 +433,61 @@ class Order extends Model
         return $result;
     }
 
+    //订单各个状态的数量
+    public function getOrdersByType_num($userId, $state = 0)
+    {
+        $condition['user_id'] = ['=', $userId];
+        switch ($state) {
+            case self::TYPE_PAY:                                                 //1=待付款
+                $condition['have_paid'] = ['=', self::PAID_NO];
+                $condition['status'] = ['=', self::STATUS_NORMAL];
+                $orderBy = 'createtime';
+                break;
+            /*case self::TYPE_DELIVES:
+                $condition['have_paid'] = ['>', self::PAID_NO];
+                $condition['have_delivered'] = ['=', self::DELIVERED_NO];
+                $condition['status'] = ['=', self::STATUS_NORMAL];
+                $orderBy = 'have_paid';
+                break;*/
+            case self::TYPE_RECEIVE:                                                //3=待核销
+                $condition['have_paid'] = ['>', self::PAID_NO];
+                $condition['have_delivered'] = ['>', self::DELIVERED_NO];
+                $condition['have_received'] = ['=', self::RECEIVED_NO];
+                $condition['status'] = ['=', self::STATUS_NORMAL];
+                $orderBy = 'have_delivered';
+                break;
+            case self::TYPE_FINISH:                                                //4=已完成
+                $condition['have_paid'] = ['>', self::PAID_NO];
+                $condition['have_delivered'] = ['>', self::DELIVERED_NO];
+                $condition['have_received'] = ['>', self::RECEIVED_NO];
+//                $condition['have_commented'] = ['=', self::COMMENTED_NO];
+                $condition['status'] = ['=', self::STATUS_NORMAL];
+                $orderBy = 'have_received';
+                break;
+            case self::TYPE_NOCOMMENT:                                                //40=待评价
+                $condition['have_paid'] = ['>', self::PAID_NO];
+                $condition['have_delivered'] = ['>', self::DELIVERED_NO];
+                $condition['have_received'] = ['>', self::RECEIVED_NO];
+                $condition['have_commented'] = ['=', self::COMMENTED_NO];
+                $condition['status'] = ['=', self::STATUS_NORMAL];
+                $orderBy = 'have_received';
+                break;
+            /*case self::TYPE_REFUND:
+                $condition['have_paid'] = ['>', self::PAID_NO];
+                $condition['status'] = ['=', self::STATUS_REFUND];
+                $condition['refund_status'] = ['<>', self::REFUND_STATUS_AGREE];
+                $orderBy = 'createtime';
+                break;*/
+            default: //全部
+                $orderBy = 'createtime';
+                break;
+        }
+
+        $result = $this->where($condition)->count();
+
+        return $result;
+    }
+
     /**
      * 关联订单的商品
      */