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

Merge branch 'redesign‌-260706' into dev

shizhongqi 1 день назад
Родитель
Сommit
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)
             if (isset($askInfo['minPrice']) && $askInfo['minPrice'] !== '' && is_numeric($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();
         // 分页查询