From bb082bc1d19d30e068435fcd27016584a54fa2f4 Mon Sep 17 00:00:00 2001 From: huk Date: Fri, 19 Sep 2025 16:17:53 +0800 Subject: [PATCH] =?UTF-8?q?feat(goods):=20=E5=95=86=E5=93=81=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=E7=BB=84=E8=A3=85=E5=8F=8A=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改 ProductServiceImpl 中的商品详情查询逻辑,增加商品属性处理 - 更新 ProductVO 和 SkuVO 类,增加商品属性相关字段 --- .../com/wzj/soopin/goods/domain/vo/ProductVO.java | 3 +-- .../java/com/wzj/soopin/goods/domain/vo/SkuVO.java | 3 +++ .../soopin/goods/service/impl/ProductServiceImpl.java | 11 +++++++++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/vo/ProductVO.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/vo/ProductVO.java index 8e973abea..a41d18746 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/vo/ProductVO.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/vo/ProductVO.java @@ -1,6 +1,5 @@ package com.wzj.soopin.goods.domain.vo; -import com.wzj.soopin.goods.domain.entity.Sku; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.common.core.domain.model.BaseAudit; @@ -104,7 +103,7 @@ public class ProductVO extends BaseAudit { private String productAttr; @Schema(description = "SKU列表") - private List skuList; + private List skuList; @Schema(description = "联系人") private String contactUserName; diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/vo/SkuVO.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/vo/SkuVO.java index ddd8fa629..bb0a6ae68 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/vo/SkuVO.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/vo/SkuVO.java @@ -51,4 +51,7 @@ public class SkuVO extends BaseAudit { @Schema(description = "商品名称") @Excel(name = "商品名称") private String productName; + + @Schema(description = "商品属性") + private String attributes; } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/impl/ProductServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/impl/ProductServiceImpl.java index 699820658..f0b4adaa6 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/impl/ProductServiceImpl.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/impl/ProductServiceImpl.java @@ -2,6 +2,7 @@ package com.wzj.soopin.goods.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -9,6 +10,7 @@ import com.wzj.soopin.goods.domain.bo.ProductBo; import com.wzj.soopin.goods.domain.entity.Product; import com.wzj.soopin.goods.domain.entity.ProductCategory; import com.wzj.soopin.goods.domain.vo.ProductVO; +import com.wzj.soopin.goods.domain.vo.SkuVO; import com.wzj.soopin.goods.mapper.ProductCategoryMapper; import com.wzj.soopin.goods.mapper.ProductMapper; import com.wzj.soopin.goods.service.ProductService; @@ -20,6 +22,8 @@ import org.dromara.system.service.ISysTenantService; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; /** * 商品信息Service业务层处理 @@ -65,6 +69,13 @@ public class ProductServiceImpl extends ServiceImpl impl ProductVO productVO = TenantHelper.ignore(() -> productMapper.selectProductWithSkus(id)); SysTenantVo sysTenantVo = sysTenantService.queryByTenantId(productVO.getTenantId()); productVO.setCanOrder(StrUtil.isNotBlank(sysTenantVo.getMchtCode())); + List skuList = productVO.getSkuList(); + skuList.forEach(sku -> { + JSONObject jsonObject = JSONObject.parseObject(sku.getSpData()); + sku.setAttributes(jsonObject.values().stream() + .map(Object::toString) + .collect(Collectors.joining(","))); + }); return productVO; }