From b65080926c56eb66d1ef6db3ad227804e1310f44 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Fri, 10 Apr 2026 14:37:22 +0800 Subject: [PATCH] =?UTF-8?q?=E8=80=97=E6=9D=90=E5=85=B3=E8=81=94=E9=97=AE?= =?UTF-8?q?=E9=A2=98=20=E5=B0=8F=E7=A8=8B=E5=BA=8F=20=E5=95=86=E5=93=81=20?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/user/UProductController.java | 28 ++++++++++++------- .../com/czg/product/vo/ShopProductVo.java | 3 ++ .../service/impl/ProductServiceImpl.java | 22 +++++++++------ .../service/impl/UProductServiceImpl.java | 16 +++++++---- 4 files changed, 44 insertions(+), 25 deletions(-) diff --git a/cash-api/product-server/src/main/java/com/czg/controller/user/UProductController.java b/cash-api/product-server/src/main/java/com/czg/controller/user/UProductController.java index 51f5a763d..7d83a3ceb 100644 --- a/cash-api/product-server/src/main/java/com/czg/controller/user/UProductController.java +++ b/cash-api/product-server/src/main/java/com/czg/controller/user/UProductController.java @@ -2,17 +2,15 @@ package com.czg.controller.user; import com.czg.constants.SystemConstants; import com.czg.product.param.ShopProductSkuParam; +import com.czg.product.service.ConsInfoService; import com.czg.product.service.UProductService; -import com.czg.product.vo.ShopGroupProductVo; -import com.czg.product.vo.ShopProductInfoVo; -import com.czg.product.vo.ShopProductSkuInfoVo; -import com.czg.product.vo.ShopProductVo; +import com.czg.product.vo.*; import com.czg.resp.CzgResult; import com.czg.sa.StpKit; import com.czg.utils.AssertUtil; import com.czg.validator.ValidatorUtil; import com.czg.validator.group.DefaultGroup; -import lombok.AllArgsConstructor; +import jakarta.annotation.Resource; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; @@ -27,11 +25,13 @@ import java.util.List; * @author Tankaikai tankaikai@aliyun.com * @since 1.0 2025-02-16 */ -@AllArgsConstructor @RestController @RequestMapping("/user/product") public class UProductController { - private final UProductService uProductService; + @Resource + private UProductService uProductService; + @Resource + private ConsInfoService consInfoService; /** * 小程序点餐-热销商品列表 @@ -40,9 +40,9 @@ public class UProductController { public CzgResult> queryHotsProductList() { Long shopId = StpKit.USER.getShopId(0L); List list = uProductService.queryHotsProductList(shopId); - list.forEach(prod -> { - prod.setIsSaleTime(uProductService.calcIsSaleTime(prod.getDays(), prod.getStartTime(), prod.getEndTime())); - }); +// list.forEach(prod -> { +// prod.setIsSaleTime(uProductService.calcIsSaleTime(prod.getDays(), prod.getStartTime(), prod.getEndTime())); +// }); return CzgResult.success(list); } @@ -66,6 +66,14 @@ public class UProductController { return CzgResult.success(list); } + /** + * 列表 + */ + @GetMapping("consStock") + public CzgResult> getConsStockList(Long shopId) { + return CzgResult.success(consInfoService.getConsStockList(shopId)); + } + /** * 小程序点餐-商品详情 * diff --git a/cash-common/cash-common-service/src/main/java/com/czg/product/vo/ShopProductVo.java b/cash-common/cash-common-service/src/main/java/com/czg/product/vo/ShopProductVo.java index def3207a8..e68e2ff8a 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/product/vo/ShopProductVo.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/product/vo/ShopProductVo.java @@ -1,6 +1,7 @@ package com.czg.product.vo; import com.czg.product.dto.ProdSkuDTO; +import com.czg.product.entity.ProdConsRelation; import lombok.Data; import java.io.Serial; @@ -86,6 +87,8 @@ public class ShopProductVo implements Serializable { * 商品规格列表 */ private List skuList; + private List prodConsRelations; + /** * 商品每周销售日 如:Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday */ diff --git a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ProductServiceImpl.java b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ProductServiceImpl.java index 6e2bca310..6c5b6309b 100644 --- a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ProductServiceImpl.java +++ b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ProductServiceImpl.java @@ -473,8 +473,6 @@ public class ProductServiceImpl extends ServiceImpl impl entity.setRelatedRecommend(dto.getRelatedRecommendStr()); super.save(entity); dto.setId(entity.getId()); - // 清除商品分类列表缓存 - clearProductCache(entity.getCategoryId()); List skuList = dto.getSkuList(); if (CollUtil.isNotEmpty(skuList)) { List prodSkuList = new ArrayList<>(); @@ -491,9 +489,11 @@ public class ProductServiceImpl extends ServiceImpl impl prodSkuMapper.insertBatch(prodSkuList); } ProdConsBindDTO prodConsBindDTO = new ProdConsBindDTO(); - prodConsBindDTO.setId(null); + prodConsBindDTO.setId(entity.getId()); prodConsBindDTO.setConsList(dto.getConsList()); prodConsRelationService.saveProdConsRelation(prodConsBindDTO); + // 清除商品分类列表缓存 + clearProductCache(entity.getCategoryId()); } @Override @@ -551,12 +551,10 @@ public class ProductServiceImpl extends ServiceImpl impl List list = skuList.stream().map(ProdSkuDTO::getId).filter(Objects::nonNull).distinct().toList(); skuIdList.removeAll(list); } - // 清除商品分类列表缓存 - if (!old.getCategoryId().equals(dto.getCategoryId())) { - clearProductCache(old.getCategoryId(), entity.getCategoryId()); - } else { - clearProductCache(old.getCategoryId()); - } + ProdConsBindDTO prodConsBindDTO = new ProdConsBindDTO(); + prodConsBindDTO.setId(dto.getId()); + prodConsBindDTO.setConsList(dto.getConsList()); + prodConsRelationService.saveProdConsRelation(prodConsBindDTO); if (CollUtil.isNotEmpty(skuIdList)) { // 逻辑删除无用的SKU数据 UpdateChain.of(ProdSku.class) @@ -565,6 +563,12 @@ public class ProductServiceImpl extends ServiceImpl impl .eq(ProdSku::getShopId, shopId) .update(); } + // 清除商品分类列表缓存 + if (!old.getCategoryId().equals(dto.getCategoryId())) { + clearProductCache(old.getCategoryId(), entity.getCategoryId()); + } else { + clearProductCache(old.getCategoryId()); + } } @Override diff --git a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/UProductServiceImpl.java b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/UProductServiceImpl.java index fb9bf31fe..aa6b6ec04 100644 --- a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/UProductServiceImpl.java +++ b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/UProductServiceImpl.java @@ -11,18 +11,15 @@ import com.czg.constants.SystemConstants; import com.czg.exception.CzgException; import com.czg.product.dto.ProdGroupRelationDTO; import com.czg.product.dto.ProdSkuDTO; -import com.czg.product.entity.ProdGroup; -import com.czg.product.entity.ProdGroupRelation; -import com.czg.product.entity.ProdSku; -import com.czg.product.entity.Product; +import com.czg.product.entity.*; import com.czg.product.param.ShopProductSkuParam; +import com.czg.product.service.ProdConsRelationService; import com.czg.product.service.UProductService; import com.czg.product.vo.ShopGroupProductVo; import com.czg.product.vo.ShopProductInfoVo; import com.czg.product.vo.ShopProductSkuInfoVo; import com.czg.product.vo.ShopProductVo; import com.czg.sa.StpKit; -import com.czg.service.RedisService; import com.czg.service.product.mapper.ProdGroupMapper; import com.czg.service.product.mapper.ProdGroupRelationMapper; import com.czg.service.product.mapper.ProdSkuMapper; @@ -55,7 +52,8 @@ public class UProductServiceImpl extends ServiceImpl imp private final ProdSkuMapper prodSkuMapper; private final ProdGroupMapper prodGroupMapper; private final ProdGroupRelationMapper prodGroupRelationMapper; - private final RedisService redisService; + private final ProdConsRelationService prodConsRelationService; + @Override @Cacheable(value = CacheConstant.USER_CLIENT_HOTS_PRODUCT, key = "#shopId", unless = "#result.isEmpty()") @@ -67,6 +65,9 @@ public class UProductServiceImpl extends ServiceImpl imp .eq(ProdSku::getIsGrounding, SystemConstants.OneZero.ONE) .eq(ProdSku::getIsDel, SystemConstants.OneZero.ZERO), ProdSkuDTO.class); item.setSkuList(skuList); + item.setProdConsRelations(prodConsRelationService.list(query() + .eq(ProdConsRelation::getProductId, item.getId()) + .eq(ProdConsRelation::getShopId, item.getShopId()))); }); return list; } @@ -85,6 +86,9 @@ public class UProductServiceImpl extends ServiceImpl imp .eq(ProdSku::getIsGrounding, SystemConstants.OneZero.ONE) .eq(ProdSku::getIsDel, SystemConstants.OneZero.ZERO), ProdSkuDTO.class); item.setSkuList(skuList); + item.setProdConsRelations(prodConsRelationService.list(query() + .eq(ProdConsRelation::getProductId, item.getId()) + .eq(ProdConsRelation::getShopId, item.getShopId()))); }); Map productKv = productAllList.stream().collect(Collectors.toMap(ShopProductVo::getId, shopProductVo -> shopProductVo)); List prodGroupIdList = groupList.stream().map(ShopGroupProductVo::getId).distinct().toList();