Bladeren bron

feat: EK-3320: 订单增加 Invoice 下载

zhangl 1 maand geleden
bovenliggende
commit
9732235b5a
1 gewijzigde bestanden met toevoegingen van 41 en 7 verwijderingen
  1. 41 7
      common/libs/export/BaseExport.php

+ 41 - 7
common/libs/export/BaseExport.php

@@ -1554,20 +1554,54 @@ ORDER;
         $this->_listModel = new $this->listModelClass();
         $this->_listModel->isExport = true;
 
+        // 查询订单数据
         // 使用新的查询对象,禁用查询缓存,确保获取最新数据
-        $query = OrderGoods::find() 
-             ->alias('OG') 
-             ->where($this->params['condition'], $this->params['params']) 
-             ->select('OG.ID AS AID,O.*,U.REAL_NAME,U.DEC_ID,SG.CATEGORY_TYPE,OG.REAL_PRICE,OG.TAX_RATE,OG.BUY_NUMS,OG.SKU_CODE,OG.GOODS_TITLE,OG.REAL_PV') 
-             ->join('LEFT JOIN', ORDER::tableName() . ' AS O', 'OG.ORDER_SN=O.SN') 
-             ->join('LEFT JOIN', User::tableName() . ' AS U', 'U.ID=O.USER_ID') 
-             ->join('LEFT JOIN', ShopGoods::tableName() . ' AS SG', 'SG.ID=OG.GOODS_ID') 
+        $query = OrderGoods::find()
+             ->alias('OG')
+             ->where($this->params['condition'], $this->params['params'])
+             ->select('OG.ID AS AID,O.*,U.REAL_NAME,U.DEC_ID,SG.CATEGORY_TYPE,OG.REAL_PRICE,OG.TAX_RATE,OG.BUY_NUMS,OG.SKU_CODE,OG.GOODS_TITLE,OG.REAL_PV')
+             ->join('LEFT JOIN', ORDER::tableName() . ' AS O', 'OG.ORDER_SN=O.SN')
+             ->join('LEFT JOIN', User::tableName() . ' AS U', 'U.ID=O.USER_ID')
+             ->join('LEFT JOIN', ShopGoods::tableName() . ' AS SG', 'SG.ID=OG.GOODS_ID')
              ->asArray()
              ->noCache(); // 禁用查询缓存
 
         // 添加详细的调试信息
         $rawSql = $query->createCommand()->getRawSql();
         $oderList = $query->all();
+
+        $sn = $oderList[0]['SN'];
+        // 同时使用原生SQL查询进行对比测试
+        $nativeConnection = Yii::$app->db;
+        $nativeQuery = "
+            SELECT 
+             `OG`.`ID` AS `AID`, 
+             `O`.*, 
+             `U`.`REAL_NAME`, 
+             `U`.`DEC_ID`, 
+             `SG`.`CATEGORY_TYPE`, 
+             `OG`.`REAL_PRICE`, 
+             `OG`.`TAX_RATE`, 
+             `OG`.`BUY_NUMS`, 
+             `OG`.`SKU_CODE`, 
+             `OG`.`GOODS_TITLE`, 
+             `OG`.`REAL_PV` 
+        FROM 
+             `AR_ORDER_GOODS` `OG` 
+             LEFT JOIN `AR_ORDER` `O` ON OG.ORDER_SN = O.SN 
+             LEFT JOIN `AR_USER` `U` ON U.ID = O.USER_ID 
+             LEFT JOIN `AR_SHOP_GOODS` `SG` ON SG.ID = OG.GOODS_ID 
+        WHERE 
+             O.IS_DELETE = 0 
+             AND O.SN = '{$sn}' 
+        ORDER BY 
+             `O`.`CREATED_AT` DESC";
+        $nativeResults = $nativeConnection->createCommand($nativeQuery)->queryAll();
+
+        // 如果原生查询有结果但Yii查询没有,使用原生查询结果
+        if(count($nativeResults) > 0 && count($oderList) < count($nativeResults)) {
+            $oderList = $nativeResults;
+        }
         
         if ($oderList) {
             $userId = '';