商品详情

This commit is contained in:
YunaiV
2019-03-05 23:04:42 +08:00
parent 15a9425396
commit 5af19f9257
5 changed files with 40 additions and 11 deletions

View File

@@ -7,7 +7,6 @@ import cn.iocoder.common.framework.util.StringUtil;
import cn.iocoder.common.framework.vo.CommonResult;
import cn.iocoder.mall.product.api.ProductSpuService;
import cn.iocoder.mall.product.api.bo.ProductAttrDetailBO;
import cn.iocoder.mall.product.api.bo.ProductSpuBO;
import cn.iocoder.mall.product.api.bo.ProductSpuDetailBO;
import cn.iocoder.mall.product.api.bo.ProductSpuPageBO;
import cn.iocoder.mall.product.api.constant.ProductErrorCodeEnum;
@@ -43,11 +42,31 @@ public class ProductSpuServiceImpl implements ProductSpuService {
@Autowired
private ProductAttrServiceImpl productAttrService;
// @Override
// public ProductSpuBO getProductSpu(Integer id) {
// ProductSpuDO productSpuDO = productSpuMapper.selectById(id);
// // 转换成 BO
// return ProductSpuConvert.INSTANCE.convert(productSpuDO);
// }
@Override
public ProductSpuBO getProductSpu(Integer id) {
ProductSpuDO productSpuDO = productSpuMapper.selectById(id);
// 转换成 BO
return ProductSpuConvert.INSTANCE.convert(productSpuDO);
public CommonResult<ProductSpuDetailBO> getProductSpu(Integer id) {
// 校验商品 spu 存在
ProductSpuDO spu = productSpuMapper.selectById(id);
if (spu == null) {
return ServiceExceptionUtil.error(ProductErrorCodeEnum.PRODUCT_SPU_NOT_EXISTS.getCode());
}
// 获得商品 sku 数组
List<ProductSkuDO> skus = productSkuMapper.selectListBySpuIdAndStatus(id, ProductSpuConstants.SKU_STATUS_ENABLE);
// 获得规格
Set<Integer> productAttrValueIds = new HashSet<>();
skus.forEach(sku -> productAttrValueIds.addAll(StringUtil.splitToInt(sku.getAttrs(), ",")));
CommonResult<List<ProductAttrDetailBO>> validAttrResult = productAttrService.validProductAttrAndValue(productAttrValueIds);
if (validAttrResult.isError()) {
return CommonResult.error(validAttrResult);
}
// 返回成功
return CommonResult.success(ProductSpuConvert.INSTANCE.convert2(spu, skus, validAttrResult.getData()));
}
@SuppressWarnings("Duplicates")