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 af94bd728..34f445977 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 @@ -9,7 +9,6 @@ import com.czg.product.vo.ShopProductSkuInfoVo; import com.czg.product.vo.ShopProductVo; import com.czg.resp.CzgResult; import com.czg.sa.StpKit; -import com.czg.service.RedisService; import com.czg.utils.AssertUtil; import com.czg.validator.ValidatorUtil; import com.czg.validator.group.DefaultGroup; @@ -34,7 +33,6 @@ import java.util.Map; @RequestMapping("/user/product") public class UProductController { private final UProductService uProductService; - private final RedisService redisService; /** * 小程序点餐-热销商品列表 @@ -72,15 +70,6 @@ public class UProductController { return CzgResult.success(list); } - /** - * 获取相关推荐商品 - */ - @GetMapping("/related/{id}") - public CzgResult> getRelatedProduct(@PathVariable("id") Long id) { - AssertUtil.isNull(id, "商品id不能为空"); - return CzgResult.success(uProductService.queryProductRelatedList(id)); - } - /** * 小程序点餐-商品详情 * diff --git a/cash-common/cash-common-service/src/main/java/com/czg/product/service/UProductService.java b/cash-common/cash-common-service/src/main/java/com/czg/product/service/UProductService.java index f2687f834..9562eb758 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/product/service/UProductService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/product/service/UProductService.java @@ -1,6 +1,5 @@ package com.czg.product.service; -import com.czg.product.dto.RelatedProductDTO; import com.czg.product.entity.Product; import com.czg.product.param.ShopProductSkuParam; import com.czg.product.vo.ShopGroupProductVo; @@ -96,6 +95,4 @@ public interface UProductService extends IService { * @return 是否可售时间 1-是,0-否 */ Integer calcIsSaleTime(String days, LocalTime startTime, LocalTime endTime); - - List queryProductRelatedList(Long productId); } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/product/vo/ShopProductInfoVo.java b/cash-common/cash-common-service/src/main/java/com/czg/product/vo/ShopProductInfoVo.java index e55637990..1c7d077f0 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/product/vo/ShopProductInfoVo.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/product/vo/ShopProductInfoVo.java @@ -3,12 +3,14 @@ package com.czg.product.vo; import cn.hutool.core.convert.Convert; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serial; import java.io.Serializable; import java.math.BigDecimal; import java.time.LocalTime; +import java.util.List; /** * 商品规格详情 @@ -109,6 +111,12 @@ public class ShopProductInfoVo implements Serializable { */ @JSONField(serialize = false) private LocalTime endTime; + /** + * 相关推荐商品 + */ + private List relatedRecommendJson; + @JsonIgnore + private String relatedRecommend; public Object getImages() { return JSON.parseArray(Convert.toStr(images, "[]")); 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 571210bf6..4c7663ce9 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 @@ -28,7 +28,6 @@ import com.czg.service.product.mapper.ProdGroupMapper; import com.czg.service.product.mapper.ProdGroupRelationMapper; import com.czg.service.product.mapper.ProdSkuMapper; import com.czg.service.product.mapper.ProductMapper; -import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.spring.service.impl.ServiceImpl; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -132,6 +131,21 @@ public class UProductServiceImpl extends ServiceImpl imp if (data == null) { throw new CzgException("商品不可售"); } + + if (StrUtil.isBlank(data.getRelatedRecommend()) || "[]".equals(data.getRelatedRecommend())) { + data.setRelatedRecommendJson(new ArrayList<>()); + } else { + List productAllList = productMapper.selectGroupProductList(shopId, JSONArray.parseArray(data.getRelatedRecommend(), Long.class)); + productAllList.forEach(item -> { + List skuList = prodSkuMapper.selectListByQueryAs(query() + .eq(ProdSku::getProductId, item.getId()) + .eq(ProdSku::getIsGrounding, SystemConstants.OneZero.ONE) + .eq(ProdSku::getIsDel, SystemConstants.OneZero.ZERO), ProdSkuDTO.class); + item.setSkuList(skuList); + }); + data.setRelatedRecommendJson(productAllList); + } + return data; } @@ -235,31 +249,6 @@ public class UProductServiceImpl extends ServiceImpl imp return SystemConstants.OneZero.ZERO; } - @Override - public List queryProductRelatedList(Long productId) { - Product product = getOne(QueryWrapper.create().eq(Product::getId, productId) - .eq(Product::getShopId, StpKit.USER.getShopId()) - .eq(Product::getIsDel, SystemConstants.OneZero.ZERO)); - - if (product == null) { - throw new CzgException("商品信息不存在"); - } - - if (StrUtil.isBlank(product.getRelatedRecommend()) || "[]".equals(product.getRelatedRecommend())) { - return new ArrayList<>(); - } - - List productAllList = productMapper.selectGroupProductList(product.getShopId(), JSONArray.parseArray(product.getRelatedRecommend(), Long.class)); - productAllList.forEach(item -> { - List skuList = prodSkuMapper.selectListByQueryAs(query() - .eq(ProdSku::getProductId, item.getId()) - .eq(ProdSku::getIsGrounding, SystemConstants.OneZero.ONE) - .eq(ProdSku::getIsDel, SystemConstants.OneZero.ZERO), ProdSkuDTO.class); - item.setSkuList(skuList); - }); - return productAllList; - } - /** * 计算是否在可售时间内 * diff --git a/cash-service/product-service/src/main/resources/mapper/ProductMapper.xml b/cash-service/product-service/src/main/resources/mapper/ProductMapper.xml index da58d37db..dbc19dcd5 100644 --- a/cash-service/product-service/src/main/resources/mapper/ProductMapper.xml +++ b/cash-service/product-service/src/main/resources/mapper/ProductMapper.xml @@ -95,7 +95,8 @@ t1.pack_fee, ifnull(t4.sales_volume, 0) as sales_volume, t1.shop_id, - t1.is_stock + t1.is_stock, + t1.related_recommend from tb_product t1 left join (select x.product_id, x.id as sku_id,