소스 검색

Merge branch 'redesign‌-260706' into dev

shizhongqi 1 일 전
부모
커밋
f67a650875
1개의 변경된 파일17개의 추가작업 그리고 2개의 파일을 삭제
  1. 17 2
      biz-hd/goods/classes/GoodsCategoryClass.php

+ 17 - 2
biz-hd/goods/classes/GoodsCategoryClass.php

@@ -110,6 +110,14 @@ class GoodsCategoryClass extends BaseClass
                 }
                 }
             }
             }
 
 
+            // 商品ID精确筛选(逗号分隔),用于首页轮播图等场景按选中的具体商品跳转展示
+            if (!empty($askInfo['goodsIds'])) {
+                $goodsIds = array_filter(array_map('intval', explode(',', strval($askInfo['goodsIds']))));
+                if (!empty($goodsIds)) {
+                    $query->andWhere(['xhGoods.id' => $goodsIds]);
+                }
+            }
+
             // 价格区间筛选(按商品基础价 xhGoods.price)
             // 价格区间筛选(按商品基础价 xhGoods.price)
             if (isset($askInfo['minPrice']) && $askInfo['minPrice'] !== '' && is_numeric($askInfo['minPrice'])) {
             if (isset($askInfo['minPrice']) && $askInfo['minPrice'] !== '' && is_numeric($askInfo['minPrice'])) {
                 $query->andWhere(['>=', 'xhGoods.price', floatval($askInfo['minPrice'])]);
                 $query->andWhere(['>=', 'xhGoods.price', floatval($askInfo['minPrice'])]);
@@ -119,8 +127,15 @@ class GoodsCategoryClass extends BaseClass
             }
             }
         }]);
         }]);
 
 
-
-        $query->orderBy(['inTurn' => SORT_DESC]);
+        // 指定 goodsIds 时按传入顺序排序,还原运营在后台选择商品的顺序;否则按分类排序权重
+        $goodsIdsForOrder = !empty($askInfo['goodsIds'])
+            ? array_filter(array_map('intval', explode(',', strval($askInfo['goodsIds']))))
+            : [];
+        if (!empty($goodsIdsForOrder)) {
+            $query->orderBy(new \yii\db\Expression('FIELD(xhGoods.id, ' . implode(',', $goodsIdsForOrder) . ')'));
+        } else {
+            $query->orderBy(['inTurn' => SORT_DESC]);
+        }
         // 获取总数
         // 获取总数
         $total = $query->count();
         $total = $query->count();
         // 分页查询
         // 分页查询