فهرست منبع

会员端:订单列表 — 显示全部订单

kevin 1 سال پیش
والد
کامیت
9237c038e5
2فایلهای تغییر یافته به همراه57 افزوده شده و 1 حذف شده
  1. 1 0
      frontendApi/config/urlManagerRules.php
  2. 56 1
      frontendApi/modules/v1/controllers/ShopController.php

+ 1 - 0
frontendApi/config/urlManagerRules.php

@@ -73,6 +73,7 @@ return [
             'POST reconsume-sure-order' => 'reconsume-sure-order',
             'GET pay-success' => 'pay-success',
             'GET order-list' => 'order-list',
+            'GET order-complete-list' => 'order-complete-list',
             'GET order-incomplete-list' => 'order-incomplete-list',
             'GET dec-order-list' => 'dec-order-list',
             'POST sure-approach-order' => 'sure-approach-order',

+ 56 - 1
frontendApi/modules/v1/controllers/ShopController.php

@@ -173,12 +173,67 @@ class ShopController extends BaseController {
         return static::notice($data);
     }
 
+    /**
+     * 我的订单(全部)
+     * @return void
+     * @throws HttpException
+     */
+    public function actionOrderList()
+    {
+        $uname = Info::getUserNameByUserId(\Yii::$app->user->id);
+        $condition = " O.IS_DELETE = 0 AND O.ORDER_TYPE='FX' AND (O.USER_ID=:USER_ID OR O.CREATE_USER='$uname') AND O.CREATED_AT >= 1704038400";
+        $params[':USER_ID'] = \Yii::$app->user->id;
+        $orderQuery = Order::find()
+            ->alias('O')
+            ->where($condition, $params)
+            ->select('O.*,U.REAL_NAME,OG.REAL_PRICE,OG.BUY_NUMS,OG.SKU_CODE,OG.GOODS_TITLE,OG.REAL_PV,OG.ORDER_SN,OG.GOODS_ID')
+            ->join('INNER JOIN', User::tableName() . ' AS U', 'U.ID=O.USER_ID')
+            ->join('INNER JOIN', OrderGoods::tableName() . ' AS OG', 'OG.ORDER_SN=O.SN')
+            ->orderBy('O.CREATED_AT DESC');
+
+        // 订单中间表只查询待支付和支付失败的订单
+        $params[':NOT_PAID'] = \Yii::$app->params['orderStatus']['notPaid']['value'];   // 待支付
+        $params[':FAIL_PAID'] = \Yii::$app->params['orderStatus']['failPaid']['value'];   // 支付失败
+        $orderStandardQuery = ApproachOrder::find()
+            ->alias('O')
+            ->where($condition . ' AND (O.STATUS = :NOT_PAID OR O.STATUS = :FAIL_PAID) AND O.CREATED_AT >= 1704038400', $params)
+            ->select('O.*,U.REAL_NAME,OG.REAL_PRICE,OG.BUY_NUMS,OG.SKU_CODE,OG.GOODS_TITLE,OG.REAL_PV,OG.ORDER_SN,OG.GOODS_ID')
+            ->join('INNER JOIN', User::tableName() . ' AS U', 'U.ID=O.USER_ID')
+            ->join('INNER JOIN', ApproachOrderGoods::tableName() . ' AS OG', 'OG.ORDER_SN=O.SN')
+            ->orderBy('O.CREATED_AT DESC');
+
+        $queryAll = $orderQuery->union($orderStandardQuery, true);
+        $query = (new Query())->from(['Q' => $queryAll])->select('Q.*')->distinct()->orderBy(['CREATED_AT' => SORT_DESC]);
+
+        $totalCount = $query->count();
+        $pagination = new Pagination(['totalCount' => $totalCount, 'pageSize' => \Yii::$app->request->get('pageSize')]);
+        $lists = $query->offset($pagination->offset)->limit($pagination->limit)->all();
+
+        $data = [
+            'list' => $lists,
+            'currentPage'=>$pagination->page,
+            'totalPages'=>$pagination->pageCount,
+            'startNum' => $pagination->page * $pagination->pageSize + 1,
+            'totalCount' => $pagination->totalCount,
+            'pageSize' => $pagination->pageSize,
+        ];
+
+        foreach ($data['list'] as $key => $value) {
+            $data['list'][$key]['ORDER_TYPE'] = $value['ORDER_TYPE'] == 'ZC' ? '首单' : '复消';
+            $data['list'][$key]['PAY_AT'] = $value['PAY_AT'] ? Date::convert($value['PAY_AT'],'Y-m-d H:i:s') : '';
+            $data['list'][$key]['PAY_TYPE'] = ShopGoods::payTypes()[$value['PAY_TYPE']]['name'] ?? '';
+            $data['list'][$key]['STATUS'] = \Yii::$app->params['orderStatus'][$value['STATUS']]['label'] ?? '';
+        }
+
+        return static::notice($data);
+    }
+
     /**
      * 我的订单(已支付))
      * @return mixed
      * @throws \yii\web\HttpException
      */
-    public function actionOrderList() {
+    public function actionOrderCompleteList() {
         $uname = Info::getUserNameByUserId(\Yii::$app->user->id);
         $condition = " AND IS_DELETE=0 AND ORDER_TYPE='FX' AND (USER_ID=:USER_ID OR CREATE_USER='$uname')";
         $params[':USER_ID'] = \Yii::$app->user->id;