Просмотр исходного кода

订单列表适配新会员端修改API

kevin_zhangl 3 лет назад
Родитель
Сommit
097863d0dd
1 измененных файлов с 92 добавлено и 81 удалено
  1. 92 81
      frontendApi/modules/v1/controllers/ShopController.php

+ 92 - 81
frontendApi/modules/v1/controllers/ShopController.php

@@ -332,93 +332,104 @@ class ShopController extends BaseController {
         return static::notice($data);
     }
 
-//    /**
-//     * 我的订单
-//     * @return mixed
-//     * @throws HttpException
-//     */
-//    public function actionOrderList() {
-//        $uname = Info::getUserNameByUserId(\Yii::$app->user->id);
-//        $condition = " (USER_ID=:USER_ID OR CREATE_USER='$uname') AND O.IS_DELETE = 0";
-//        $params[':USER_ID'] = \Yii::$app->user->id;
-//        $orderQuery = Order::find()
-//            ->alias('O')
-//            ->where($condition, $params)
-//            ->select('O.*,U.REAL_NAME,SG.CATEGORY_TYPE,OG.REAL_PRICE,OG.TAX_RATE,OG.BUY_NUMS,OG.SKU_CODE,OG.GOODS_TITLE,OG.REAL_PV,SG.COVER')
-//            ->join('LEFT JOIN', User::tableName() . ' AS U', 'U.ID=O.USER_ID')
-//            ->join('LEFT JOIN', OrderGoods::tableName() . ' AS OG', 'OG.ORDER_SN=O.SN')
-//            ->join('LEFT JOIN', ShopGoods::tableName() . ' AS SG', 'SG.ID=OG.GOODS_ID')
-//            ->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)', $params)
-//            ->select('O.*,U.REAL_NAME,SG.CATEGORY_TYPE,OG.REAL_PRICE,OG.TAX_RATE,OG.BUY_NUMS,OG.SKU_CODE,OG.GOODS_TITLE,OG.REAL_PV,SG.COVER')
-//            ->join('LEFT JOIN', User::tableName() . ' AS U', 'U.ID=O.USER_ID')
-//            ->join('LEFT JOIN', ApproachOrderGoods::tableName() . ' AS OG', 'OG.ORDER_SN=O.SN')
-//            ->join('LEFT JOIN', ShopGoods::tableName() . ' AS SG', 'SG.ID=OG.GOODS_ID')
-//            ->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) {
-//            if($value['ORDER_TYPE']=='ZC'){
-//                $data['list'][$key]['ORDER_TYPE'] = 'Welcome Pack';
-//            }else{
-//                $data['list'][$key]['ORDER_TYPE'] = in_array($value['PAY_TYPE'], ['cash', 'pay_stack']) ? 'Repeat Purchase': 'Points';
-//            }
-//            $data['list'][$key]['PAY_AT'] = $value['PAY_AT'] ? Date::convert($value['PAY_AT'],'Y-m-d H:i:s') : '';
-//            $data['list'][$key]['CREATED_AT'] = $value['CREATED_AT'] ? Date::convert($value['CREATED_AT'],'Y-m-d H:i:s') : '';
-//            $data['list'][$key]['CATEGORY_TYPE'] = intval($value['CATEGORY_TYPE']);
-//            $data['list'][$key]['PAY_TYPE'] = array_column(ShopGoods::SALE_TYPE, NULL, 'label')[$value['PAY_TYPE']]['name'] ?? '';
-//            $data['list'][$key]['STATUS'] = \Yii::$app->params['orderStatus'][$value['STATUS']]['label'] ?? '';
-//            $data['list'][$key]['CATEGORY'] = array_column(ShopGoods::CATEGORY_TYPE, NULL, 'id')[$value['CATEGORY_TYPE']]['name'] ?? ShopGoods::CATEGORY_TYPE[0]['name'];
-//            $data['list'][$key]['FULL_ADDRESS'] = $value['ADDRESS'];//.', '.$value['CITY_NAME'].', '.$value['LGA_NAME'];
-//            if($value['CITY_NAME']){
-//                $data['list'][$key]['FULL_ADDRESS'] .= ', ' . $value['CITY_NAME'];
-//            }
-//            if($value['LGA_NAME']){
-//                $data['list'][$key]['FULL_ADDRESS'] .= ', ' . $value['LGA_NAME'];
+    /**
+     * @throws HttpException
+     */
+    public function actionOrderList() {
+        $version = \Yii::$app->request->get('v');
+LoggerTool::notice($version);
+        $data = $version == 2 ? $this->orderListV2() : $this->orderListV1();
+
+        return static::notice($data);
+    }
+
+    /**
+     * 我的订单
+     * @return mixed
+     * @throws HttpException
+     */
+    public function orderListV1() {
+        $uname = Info::getUserNameByUserId(\Yii::$app->user->id);
+        $condition = " (USER_ID=:USER_ID OR CREATE_USER='$uname') AND O.IS_DELETE = 0";
+        $params[':USER_ID'] = \Yii::$app->user->id;
+        $orderQuery = Order::find()
+            ->alias('O')
+            ->where($condition, $params)
+            ->select('O.*,U.REAL_NAME,SG.CATEGORY_TYPE,OG.REAL_PRICE,OG.TAX_RATE,OG.BUY_NUMS,OG.SKU_CODE,OG.GOODS_TITLE,OG.REAL_PV,SG.COVER')
+            ->join('LEFT JOIN', User::tableName() . ' AS U', 'U.ID=O.USER_ID')
+            ->join('LEFT JOIN', OrderGoods::tableName() . ' AS OG', 'OG.ORDER_SN=O.SN')
+            ->join('LEFT JOIN', ShopGoods::tableName() . ' AS SG', 'SG.ID=OG.GOODS_ID')
+            ->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)', $params)
+            ->select('O.*,U.REAL_NAME,SG.CATEGORY_TYPE,OG.REAL_PRICE,OG.TAX_RATE,OG.BUY_NUMS,OG.SKU_CODE,OG.GOODS_TITLE,OG.REAL_PV,SG.COVER')
+            ->join('LEFT JOIN', User::tableName() . ' AS U', 'U.ID=O.USER_ID')
+            ->join('LEFT JOIN', ApproachOrderGoods::tableName() . ' AS OG', 'OG.ORDER_SN=O.SN')
+            ->join('LEFT JOIN', ShopGoods::tableName() . ' AS SG', 'SG.ID=OG.GOODS_ID')
+            ->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) {
+            if($value['ORDER_TYPE']=='ZC'){
+                $data['list'][$key]['ORDER_TYPE'] = 'Welcome Pack';
+            }else{
+                $data['list'][$key]['ORDER_TYPE'] = in_array($value['PAY_TYPE'], ['cash', 'pay_stack']) ? 'Repeat Purchase': 'Points';
+            }
+            $data['list'][$key]['PAY_AT'] = $value['PAY_AT'] ? Date::convert($value['PAY_AT'],'Y-m-d H:i:s') : '';
+            $data['list'][$key]['CREATED_AT'] = $value['CREATED_AT'] ? Date::convert($value['CREATED_AT'],'Y-m-d H:i:s') : '';
+            $data['list'][$key]['CATEGORY_TYPE'] = intval($value['CATEGORY_TYPE']);
+            $data['list'][$key]['PAY_TYPE'] = array_column(ShopGoods::SALE_TYPE, NULL, 'label')[$value['PAY_TYPE']]['name'] ?? '';
+            $data['list'][$key]['STATUS'] = \Yii::$app->params['orderStatus'][$value['STATUS']]['label'] ?? '';
+            $data['list'][$key]['CATEGORY'] = array_column(ShopGoods::CATEGORY_TYPE, NULL, 'id')[$value['CATEGORY_TYPE']]['name'] ?? ShopGoods::CATEGORY_TYPE[0]['name'];
+            $data['list'][$key]['FULL_ADDRESS'] = $value['ADDRESS'];//.', '.$value['CITY_NAME'].', '.$value['LGA_NAME'];
+            if($value['CITY_NAME']){
+                $data['list'][$key]['FULL_ADDRESS'] .= ', ' . $value['CITY_NAME'];
+            }
+            if($value['LGA_NAME']){
+                $data['list'][$key]['FULL_ADDRESS'] .= ', ' . $value['LGA_NAME'];
+            }
+            if($value['PROVINCE']){
+                $data['list'][$key]['FULL_ADDRESS'] .= ', ' . Region::getCnName($value['PROVINCE']);
+            }
+//            if($value['CITY']){
+//                $data['list'][$key]['FULL_ADDRESS'] .= Region::getCnName($value['CITY']);
 //            }
-//            if($value['PROVINCE']){
-//                $data['list'][$key]['FULL_ADDRESS'] .= ', ' . Region::getCnName($value['PROVINCE']);
+//            if($value['COUNTY']){
+//                $data['list'][$key]['FULL_ADDRESS'] .= Region::getCnName($value['COUNTY']);
 //            }
-////            if($value['CITY']){
-////                $data['list'][$key]['FULL_ADDRESS'] .= Region::getCnName($value['CITY']);
-////            }
-////            if($value['COUNTY']){
-////                $data['list'][$key]['FULL_ADDRESS'] .= Region::getCnName($value['COUNTY']);
-////            }
-//            $data['list'][$key]['TAX_AMOUNT'] = Tool::formatPrice(($value['REAL_PRICE'] - $value['REAL_PRICE'] / (1 + $value['TAX_RATE'] / 100)) * $value['BUY_NUMS']);
-//            $data['list'][$key]['TOTAL_AMOUNT'] = Tool::formatPrice($value['REAL_PRICE'] * $value['BUY_NUMS']);
-//        }
-//
-//        return static::notice($data);
-//    }
+            $data['list'][$key]['TAX_AMOUNT'] = Tool::formatPrice(($value['REAL_PRICE'] - $value['REAL_PRICE'] / (1 + $value['TAX_RATE'] / 100)) * $value['BUY_NUMS']);
+            $data['list'][$key]['TOTAL_AMOUNT'] = Tool::formatPrice($value['REAL_PRICE'] * $value['BUY_NUMS']);
+        }
+
+        return $data;
+    }
 
     /**
      * 我的订单
      * @return mixed
      * @throws HttpException
      */
-    public function actionOrderList() {
+    public function orderListV2() {
         $uname = Info::getUserNameByUserId(\Yii::$app->user->id);
         $condition = " (O.USER_ID=:USER_ID OR O.CREATE_USER='{$uname}') AND O.IS_DELETE = 0";
         $params[':USER_ID'] = \Yii::$app->user->id;
@@ -465,12 +476,12 @@ class ShopController extends BaseController {
             $data['list'][$key]['ORDER_TYPE'] = $value['ORDER_TYPE']=='ZC' ? 'Welcome Pack' : (in_array($value['PAY_TYPE'], ['cash', 'pay_stack']) ? 'Repeat Purchase': 'Points');
             $data['list'][$key]['PAY_TYPE'] = array_column(ShopGoods::SALE_TYPE, NULL, 'label')[$value['PAY_TYPE']]['name'] ?? '';
             $data['list'][$key]['STATUS'] = \Yii::$app->params['orderStatus'][$value['STATUS']]['label'] ?? '';
-            $data['list'][$key]['FULL_ADDRESS'] = implode(', ', [$value['ADDRESS'], $value['CITY_NAME'], $value['LGA_NAME'], Region::getCnName($value['PROVINCE'])]);
+            $data['list'][$key]['FULL_ADDRESS'] = trim(implode(', ', [$value['ADDRESS'], $value['CITY_NAME'], $value['LGA_NAME'], Region::getCnName($value['PROVINCE'])]), ', ');
 
             unset($data['list'][$key]['ADDRESS'], $data['list'][$key]['CITY_NAME'], $data['list'][$key]['LGA_NAME'], $data['list'][$key]['PROVINCE']);
         }
 
-        return static::notice($data);
+        return $data;
     }
 
     /**