feat(goods): 商品属性组装及展示

- 修改 ProductServiceImpl 中的商品详情查询逻辑,增加商品属性处理
- 更新 ProductVO 和 SkuVO 类,增加商品属性相关字段
This commit is contained in:
huk 2025-09-19 16:17:53 +08:00
parent 22efde0bb0
commit bb082bc1d1
3 changed files with 15 additions and 2 deletions

View File

@ -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<Sku> skuList;
private List<SkuVO> skuList;
@Schema(description = "联系人")
private String contactUserName;

View File

@ -51,4 +51,7 @@ public class SkuVO extends BaseAudit {
@Schema(description = "商品名称")
@Excel(name = "商品名称")
private String productName;
@Schema(description = "商品属性")
private String attributes;
}

View File

@ -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<ProductMapper, Product> impl
ProductVO productVO = TenantHelper.ignore(() -> productMapper.selectProductWithSkus(id));
SysTenantVo sysTenantVo = sysTenantService.queryByTenantId(productVO.getTenantId());
productVO.setCanOrder(StrUtil.isNotBlank(sysTenantVo.getMchtCode()));
List<SkuVO> 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;
}