|
|
@@ -158,15 +158,15 @@ class BaseExport extends Component {
|
|
|
*/
|
|
|
public function getSavePath() {
|
|
|
$this->savePath = $this->pathCreator(date('Ymd', Date::nowTime()));
|
|
|
- return trim($this->savePath, __DS__);
|
|
|
+ return trim((string)$this->savePath, __DS__);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @return bool|string|null
|
|
|
*/
|
|
|
public function getSaveBasePath() {
|
|
|
- $this->saveBasePath = Yii::getAlias('@backendApi') . __DS__ . 'web' . __DS__ . 'upload' . __DS__ . \Yii::$app->params['excelLocalDir'];
|
|
|
- return trim($this->saveBasePath, __DS__);
|
|
|
+ $this->saveBasePath = Yii::getAlias('@backendApi') . __DS__ . 'web' . __DS__ . 'upload' . __DS__ . (isset(\Yii::$app->params['excelLocalDir']) ? \Yii::$app->params['excelLocalDir'] : '');
|
|
|
+ return trim((string)$this->saveBasePath, __DS__);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -1555,24 +1555,70 @@ ORDER;
|
|
|
$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')
|
|
|
- ->orderBy('O.CREATED_AT DESC')
|
|
|
- ->asArray();
|
|
|
-
|
|
|
+ // 使用新的查询对象,禁用查询缓存,确保获取最新数据
|
|
|
+ $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();
|
|
|
-
|
|
|
+
|
|
|
+ // 同时使用原生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 = 'OS202511087870502295'
|
|
|
+ORDER BY
|
|
|
+ `O`.`CREATED_AT` DESC";
|
|
|
+ $nativeResults = $nativeConnection->createCommand($nativeQuery)->queryAll();
|
|
|
+
|
|
|
+ Yii::info('原生SQL查询结果数量: ' . count($nativeResults), 'export_debug');
|
|
|
+ Yii::info('原生SQL查询结果: ' . json_encode($nativeResults), 'export_debug');
|
|
|
+
|
|
|
+ // 如果原生查询有结果但Yii查询没有,使用原生查询结果
|
|
|
+ if(count($nativeResults) > 0 && count($oderList) < count($nativeResults)) {
|
|
|
+ Yii::warning('检测到查询结果不匹配,使用原生SQL查询结果', 'export_debug');
|
|
|
+ $oderList = $nativeResults;
|
|
|
+ }
|
|
|
+
|
|
|
LoggerTool::debug([
|
|
|
- 'sql' => $query->createCommand()->getRawSql(),
|
|
|
+ 'sql' => $rawSql,
|
|
|
'condition' => $this->params['condition'],
|
|
|
'params' => $this->params,
|
|
|
- 'orderList' => $oderList
|
|
|
+ 'orderListCount' => count($oderList),
|
|
|
+ 'orderList' => $oderList,
|
|
|
+ 'fullParams' => $this->params
|
|
|
]);
|
|
|
+
|
|
|
+ // 检查是否有查询缓存影响
|
|
|
+ Yii::info('查询结果数量: ' . count($oderList), 'export_debug');
|
|
|
+ Yii::info('完整SQL: ' . $rawSql, 'export_debug');
|
|
|
+ Yii::info('查询条件: ' . json_encode($this->params['condition']), 'export_debug');
|
|
|
+ Yii::info('查询参数: ' . json_encode($this->params['params']), 'export_debug');
|
|
|
|
|
|
if ($oderList) {
|
|
|
$userId = '';
|