Browse Source

搜索优化

shish 9 months ago
parent
commit
d09ffdc6fd
1 changed files with 8 additions and 4 deletions
  1. 8 4
      biz-hd/goods/classes/GoodsCategoryClass.php

+ 8 - 4
biz-hd/goods/classes/GoodsCategoryClass.php

@@ -42,7 +42,9 @@ class GoodsCategoryClass extends BaseClass
         if (!empty($askInfo['searchText'])) {
             $query->andWhere(['like', 'xhGoodsCategory.name', $askInfo['searchText']]);
         }
-
+        if (!empty($askInfo['search'])) {
+            $query->andWhere(['like', 'xhGoodsCategory.name', $askInfo['search']]);
+        }
         $query->joinWith(['goods' => function ($query) use ($askInfo, $requestType) {
 
             if ($requestType == 'kd') {
@@ -96,12 +98,14 @@ class GoodsCategoryClass extends BaseClass
         $goodsCategoryInfoList = $query->offset(($page - 1) * $pageSize)
             ->limit($pageSize)
             ->all();
-
-        // 整理结果,只要有库存的商品
+        // 整理结果,只要有库存的商品,并去重
         $list = [];
+        $addedGoodsIds = []; // 用于记录已添加的商品ID,避免重复,一个商品在多个分类下就会出现重复,搜索的情况下
         foreach ($goodsCategoryInfoList as $info) {
-            if ($info->goods) { // 只要有关联且有库存的商品
+            if ($info->goods && !in_array($info->goods->id, $addedGoodsIds)) { 
+                // 只要有关联且有库存的商品,且未添加过
                 $list[] = $info->goods->attributes;
+                $addedGoodsIds[] = $info->goods->id; // 记录已添加的商品ID
             }
         }