diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/goods/GoodsController.java b/ghy-admin/src/main/java/com/ghy/web/controller/goods/GoodsController.java index 1fe3d2eb..338d96fe 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/goods/GoodsController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/goods/GoodsController.java @@ -216,6 +216,32 @@ public class GoodsController extends BaseController { } } + // 通过商品规格名称模糊查询 + if (StringUtils.isNotEmpty(goods.getGoodsStandard())) { + logger.info("通过商品规格查询:{}", goods.getGoodsStandard()); + List matchedStandards = goodsStandardService.selectByStandardNameLike(goods.getGoodsStandard()); + if (CollectionUtils.isNotEmpty(matchedStandards)) { + // 获取所有符合规格条件的商品ID + List goodsIds = matchedStandards.stream() + .map(GoodsStandard::getGoodsId) + .distinct() + .collect(Collectors.toList()); + logger.info("通过规格查询到的商品ID列表:{}", goodsIds); + + // 设置商品ID筛选条件,与现有的类目筛选条件组合使用 + if (goods.getGoodsIds() == null) { + goods.setGoodsIds(goodsIds); + } else { + // 如果已有商品ID筛选条件,取交集 + goods.getGoodsIds().retainAll(goodsIds); + } + } else { + logger.info("未找到符合规格条件的商品,设置空结果"); + // 如果没找到符合条件的规格,设置一个不存在的商品ID + goods.setGoodsIds(Arrays.asList(-1L)); + } + } + startPage(); List list = goodsService.selectGoodsList(goods); diff --git a/ghy-goods/src/main/java/com/ghy/goods/domain/Goods.java b/ghy-goods/src/main/java/com/ghy/goods/domain/Goods.java index f12ece7b..cb553629 100644 --- a/ghy-goods/src/main/java/com/ghy/goods/domain/Goods.java +++ b/ghy-goods/src/main/java/com/ghy/goods/domain/Goods.java @@ -123,4 +123,8 @@ public class Goods extends BaseEntity { private Integer deliveryService; private Shop shop; + + private List goodsIds; + + private String goodsStandard; } diff --git a/ghy-goods/src/main/java/com/ghy/goods/mapper/GoodsStandardMapper.java b/ghy-goods/src/main/java/com/ghy/goods/mapper/GoodsStandardMapper.java index 9df486e2..cd33ddfe 100644 --- a/ghy-goods/src/main/java/com/ghy/goods/mapper/GoodsStandardMapper.java +++ b/ghy-goods/src/main/java/com/ghy/goods/mapper/GoodsStandardMapper.java @@ -64,4 +64,11 @@ public interface GoodsStandardMapper { int update(GoodsStandard goodsStandard); + /** + * 根据规格名称模糊查询商品规格 + * @param standardName 规格名称(支持模糊查询) + * @return 符合条件的商品规格列表 + */ + List selectByStandardNameLike(@Param("standardName") String standardName); + } diff --git a/ghy-goods/src/main/java/com/ghy/goods/service/GoodsStandardService.java b/ghy-goods/src/main/java/com/ghy/goods/service/GoodsStandardService.java index 86e86668..bf97a3da 100644 --- a/ghy-goods/src/main/java/com/ghy/goods/service/GoodsStandardService.java +++ b/ghy-goods/src/main/java/com/ghy/goods/service/GoodsStandardService.java @@ -59,4 +59,11 @@ public interface GoodsStandardService { int update(GoodsStandard goodsStandard); + /** + * 根据规格名称模糊查询商品规格 + * @param standardName 规格名称(支持模糊查询) + * @return 符合条件的商品规格列表 + */ + List selectByStandardNameLike(String standardName); + } diff --git a/ghy-goods/src/main/java/com/ghy/goods/service/impl/GoodsStandardServiceImpl.java b/ghy-goods/src/main/java/com/ghy/goods/service/impl/GoodsStandardServiceImpl.java index 84d13427..5dd29051 100644 --- a/ghy-goods/src/main/java/com/ghy/goods/service/impl/GoodsStandardServiceImpl.java +++ b/ghy-goods/src/main/java/com/ghy/goods/service/impl/GoodsStandardServiceImpl.java @@ -86,4 +86,9 @@ public class GoodsStandardServiceImpl implements GoodsStandardService { public int update(GoodsStandard goodsStandard) { return goodsStandardMapper.update(goodsStandard); } + + @Override + public List selectByStandardNameLike(String standardName) { + return goodsStandardMapper.selectByStandardNameLike(standardName); + } } diff --git a/ghy-goods/src/main/resources/mapper/goods/GoodsMapper.xml b/ghy-goods/src/main/resources/mapper/goods/GoodsMapper.xml index 04157142..effa2ba6 100644 --- a/ghy-goods/src/main/resources/mapper/goods/GoodsMapper.xml +++ b/ghy-goods/src/main/resources/mapper/goods/GoodsMapper.xml @@ -185,6 +185,12 @@ AND g.store_service = #{storeService} + + AND g.goods_id in + + #{goodsIdItem} + + /* 默认生成时间排序 */ order by create_time diff --git a/ghy-goods/src/main/resources/mapper/goods/GoodsStandardMapper.xml b/ghy-goods/src/main/resources/mapper/goods/GoodsStandardMapper.xml index fc82835a..ecc0fbed 100644 --- a/ghy-goods/src/main/resources/mapper/goods/GoodsStandardMapper.xml +++ b/ghy-goods/src/main/resources/mapper/goods/GoodsStandardMapper.xml @@ -166,4 +166,14 @@ WHERE goods_standard_id = #{goodsStandardId} + + +