Sfoglia il codice sorgente

报单列表展示中间表

kevin_zhangl 3 anni fa
parent
commit
94883a989e

+ 1 - 1
common/helpers/Tool.php

@@ -91,7 +91,7 @@ class Tool {
      */
     public static function calculateTax($amount, $taxRate, int $buyNo = 1): float
     {
-        $taxAmount = $amount - $amount / (1 + $taxRate / 100) * $buyNo;
+        $taxAmount = ($amount - $amount / (1 + $taxRate / 100)) * $buyNo;
         return floatval(self::formatPrice($taxAmount));
     }
 

+ 0 - 1
common/models/ApproachDecOrder.php

@@ -18,7 +18,6 @@ use Yii;
  * @property string $DEC_PV 报单PV
  * @property string $PAID_WALLET 支付钱包
  * @property int $IS_BATCH 是否批量报单
- * @property int $STATUS 支付状态
  * @property string $REMARK 备注
  * @property string $REC_USER_ID 推荐人ID
  * @property string $CON_USER_ID 接点人ID

+ 0 - 1
common/models/forms/ApproachDeclarationForm.php

@@ -797,7 +797,6 @@ class ApproachDeclarationForm extends Model
         $decOrderModel->DEC_ID = $this->_decId;
         $decOrderModel->IS_DEL = 0;
         $decOrderModel->CREATED_AT = Date::nowTime();
-        $decOrderModel->STATUS = \Yii::$app->params['orderStatus']['notPaid']['value'];
         if(!$decOrderModel->save()){
             throw new Exception(Form::formatErrorsForApi($decOrderModel->getErrors()));
         }

+ 44 - 14
frontendApi/modules/v1/controllers/ShopController.php

@@ -262,23 +262,53 @@ class ShopController extends BaseController {
      * @throws \yii\web\HttpException
      */
     public function actionDecOrderList() {
-        $condition = ' AND USER_ID=:USER_ID AND IS_DEL=0';
+        $condition = ' DO.USER_ID=:USER_ID AND DO.IS_DEL=0';
         $params[':USER_ID'] = \Yii::$app->user->id;
-        $data = DecOrder::lists($condition, $params, [
-            'select' => 'DO.*,U.USER_NAME USER_NAME,U.REAL_NAME REAL_NAME,RU.USER_NAME REC_USER_NAME,RU.REAL_NAME REC_REAL_NAME,CU.USER_NAME CON_USER_NAME,CU.REAL_NAME CON_REAL_NAME,OG.*',
-            'orderBy' => 'DO.CREATED_AT DESC',
-            'from' => DecOrder::tableName() . ' AS DO',
-            'join' => [
-                ['LEFT JOIN', User::tableName() . ' AS U', 'DO.TO_USER_ID=U.ID'],
-                ['LEFT JOIN', User::tableName() . ' AS RU', 'DO.REC_USER_ID=RU.ID'],
-                ['LEFT JOIN', User::tableName() . ' AS CU', 'DO.CON_USER_ID=CU.ID'],
-                ['LEFT JOIN', OrderGoods::tableName() . ' AS OG', 'OG.ORDER_SN=DO.ORDER_SN'],
-            ],
-        ]);
+
+        $orderQuery = DecOrder::find()
+            ->alias('DO')
+            ->where($condition, $params)
+            ->select('DO.*,O.STATUS,U.USER_NAME USER_NAME,U.REAL_NAME REAL_NAME,RU.USER_NAME REC_USER_NAME,RU.REAL_NAME REC_REAL_NAME,CU.USER_NAME CON_USER_NAME,CU.REAL_NAME CON_REAL_NAME,OG.SKU_CODE,OG.GOODS_TITLE,OG.BUY_NUMS,OG.REAL_PRICE,OG.REAL_PV,OG.TAX_RATE')
+            ->join('LEFT JOIN', User::tableName() . ' AS U', 'DO.TO_USER_ID=U.ID')
+            ->join('LEFT JOIN', User::tableName() . ' AS RU', 'DO.REC_USER_ID=RU.ID')
+            ->join('LEFT JOIN', User::tableName() . ' AS CU', 'DO.CON_USER_ID=CU.ID')
+            ->join('LEFT JOIN', OrderGoods::tableName() . ' AS OG', 'OG.ORDER_SN=DO.ORDER_SN')
+            ->join('LEFT JOIN', Order::tableName() . ' AS O', 'O.SN=DO.ORDER_SN')
+            ->orderBy('DO.CREATED_AT DESC');
+
+        // 订单中间表只查询待支付和支付失败的订单
+        $params[':NOT_PAID'] = \Yii::$app->params['orderStatus']['notPaid']['value'];   // 待支付
+        $params[':FAIL_PAID'] = \Yii::$app->params['orderStatus']['failPaid']['value'];   // 支付失败
+        $orderStandardQuery = ApproachDecOrder::find()
+            ->alias('DO')
+            ->where($condition . ' AND (O.STATUS = :NOT_PAID OR O.STATUS = :FAIL_PAID)', $params)
+            ->select('DO.*,O.STATUS,U.USER_NAME USER_NAME,U.REAL_NAME REAL_NAME,RU.USER_NAME REC_USER_NAME,RU.REAL_NAME REC_REAL_NAME,CU.USER_NAME CON_USER_NAME,CU.REAL_NAME CON_REAL_NAME,OG.SKU_CODE,OG.GOODS_TITLE,OG.BUY_NUMS,OG.REAL_PRICE,OG.REAL_PV,OG.TAX_RATE')
+            ->join('LEFT JOIN', User::tableName() . ' AS U', 'DO.TO_USER_ID=U.ID')
+            ->join('LEFT JOIN', User::tableName() . ' AS RU', 'DO.REC_USER_ID=RU.ID')
+            ->join('LEFT JOIN', User::tableName() . ' AS CU', 'DO.CON_USER_ID=CU.ID')
+            ->join('LEFT JOIN', ApproachOrderGoods::tableName() . ' AS OG', 'OG.ORDER_SN=DO.ORDER_SN')
+            ->join('LEFT JOIN', ApproachOrder::tableName() . ' AS O', 'O.SN=DO.ORDER_SN')
+            ->orderBy('DO.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 &$value) {
-            $taxRate = $value['TAX_RATE'] ?? 0;
-            $value['TAX_AMOUNT'] = Tool::formatPrice(($value['REAL_PRICE'] - $value['REAL_PRICE'] / (1 + $taxRate / 100)) * $value['BUY_NUMS']);
+            $value['TAX_AMOUNT'] = Tool::calculateTax($value['REAL_PRICE'], floatval($value['TAX_RATE']), $value['BUY_NUMS']);
+            $value['STATUS'] = \Yii::$app->params['orderStatus'][$value['STATUS']]['label'] ?? '';
         }
 
         return static::notice($data);

+ 1 - 0
frontendEle/src/views/shop/dec-order-list.vue

@@ -15,6 +15,7 @@
                 <el-table-column width="120" label="Member name" prop="REAL_NAME"></el-table-column><!--会员姓名-->
                 <el-table-column width="150" label="Shipping Address" prop="ADDRESS"></el-table-column><!--收货地址-->
                 <el-table-column width="120" label="Sponsor code" prop="CON_USER_NAME"></el-table-column><!--接点人编号-->
+                <el-table-column width="120" label="Status" prop="STATUS"></el-table-column><!--状态-->
                 <el-table-column width="150" label="Created time"><!--创建时间-->
                     <template slot-scope="scope">
                         {{tool.formatDate(scope.row.CREATED_AT)}}

+ 0 - 1
sql/upgrade/1748.sql

@@ -10,7 +10,6 @@ CREATE TABLE `AR_APPROACH_DEC_ORDER` (
      `DEC_PV` decimal(16,3) NOT NULL DEFAULT 0.000,
      `PAID_WALLET` varchar(48) COLLATE utf8mb4_bin NOT NULL,
      `IS_BATCH` tinyint(1) NOT NULL DEFAULT 0,
-     `STATUS` tinyint(1) NOT NULL DEFAULT 0 COMMENT '支付状态',
      `REMARK` text COLLATE utf8mb4_bin DEFAULT NULL,
      `REC_USER_ID` varchar(32) COLLATE utf8mb4_bin DEFAULT '',
      `CON_USER_ID` varchar(32) COLLATE utf8mb4_bin DEFAULT '',