Browse Source

商品按标签过滤

chunping 3 years ago
parent
commit
0b51bf0f76

+ 10 - 8
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/GoodsMgrController.java

@@ -74,6 +74,14 @@ public class GoodsMgrController extends BaseApiController {
   @PostMapping("/list")
   @PreAuthorize("@ss.hasPermi('business:goods:list')")
   public TableDataInfo list(@RequestBody GoodsQueryParam queryParam) {
+    // 商品标签
+    List<Long> goodsIds = new ArrayList<>();
+    if (null != queryParam.getTagId()) {
+      List<GoodsTagRel> goodsTagRelList = goodsTagRelService.list(
+          new LambdaQueryWrapper<GoodsTagRel>().eq(GoodsTagRel::getTagId, queryParam.getTagId()));
+      goodsIds = goodsTagRelList.stream().map(GoodsTagRel::getGoodsId)
+          .collect(Collectors.toList());
+    }
     startPage();
     QueryWrapper<Goods> queryWrapper = new QueryWrapper<Goods>();
     queryWrapper.lambda()
@@ -101,14 +109,8 @@ public class GoodsMgrController extends BaseApiController {
     // 商品分类
     queryWrapper.lambda()
         .eq(null != queryParam.getCategoryId(), Goods::getCategoryId, queryParam.getCategoryId());
-    // 商品标签
-    if (null != queryParam.getTagId()) {
-      List<GoodsTagRel> goodsTagRelList = goodsTagRelService.list(
-          new LambdaQueryWrapper<GoodsTagRel>().eq(GoodsTagRel::getTagId, queryParam.getTagId()));
-      List<Long> goodsIds = goodsTagRelList.stream().map(GoodsTagRel::getGoodsId)
-          .collect(Collectors.toList());
-      queryWrapper.lambda().eq(!CollectionUtils.isEmpty(goodsIds), Goods::getGoodsId, goodsIds);
-    }
+    // 标签过滤的商品ID
+    queryWrapper.lambda().eq(!CollectionUtils.isEmpty(goodsIds), Goods::getGoodsId, goodsIds);
     queryWrapper.lambda().eq(Goods::getIsDeleted, 0);
     queryWrapper.orderByAsc("FIELD(`status`, 'init', 'on', 'off')");
     queryWrapper.lambda().orderByDesc(Goods::getGoodsId);