商品详情
parent
15a9425396
commit
5af19f9257
|
@ -2,6 +2,7 @@ package cn.iocoder.common.framework.util;
|
||||||
|
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -17,4 +18,13 @@ public class StringUtil {
|
||||||
return Arrays.asList(stringArray);
|
return Arrays.asList(stringArray);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static List<Integer> splitToInt(String toSplit, String delim) {
|
||||||
|
String[] stringArray = StringUtils.tokenizeToStringArray(toSplit, delim);
|
||||||
|
List<Integer> array = new ArrayList<>(stringArray.length);
|
||||||
|
for (String string : stringArray) {
|
||||||
|
array.add(Integer.valueOf(string));
|
||||||
|
}
|
||||||
|
return array;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -121,8 +121,9 @@ public class AdminsProductSpuController {
|
||||||
|
|
||||||
@GetMapping("/spu/info")
|
@GetMapping("/spu/info")
|
||||||
@ApiOperation("商品 SPU 明细")
|
@ApiOperation("商品 SPU 明细")
|
||||||
public CommonResult<AdminsProductSpuDetailVO> info() {
|
@ApiImplicitParam(name = "id", value = "SPU 编号", required = true, example = "100")
|
||||||
return null;
|
public CommonResult<AdminsProductSpuDetailVO> info(@RequestParam("id") Integer id) {
|
||||||
|
return ProductSpuConvert.INSTANCE.convert(productSpuService.getProductSpu(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
private <T> List<T> parseSkus(String skuStr, Class<T> clazz) {
|
private <T> List<T> parseSkus(String skuStr, Class<T> clazz) {
|
||||||
|
|
|
@ -19,7 +19,8 @@ public class ProductSpuController {
|
||||||
// TODO 详情
|
// TODO 详情
|
||||||
@GetMapping("/info")
|
@GetMapping("/info")
|
||||||
public ProductSpuBO info(@RequestParam("id") Integer id) {
|
public ProductSpuBO info(@RequestParam("id") Integer id) {
|
||||||
return productSpuService.getProductSpu(id);
|
// return productSpuService.getProductSpu(id);
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO 分页
|
// TODO 分页
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package cn.iocoder.mall.product.api;
|
package cn.iocoder.mall.product.api;
|
||||||
|
|
||||||
import cn.iocoder.common.framework.vo.CommonResult;
|
import cn.iocoder.common.framework.vo.CommonResult;
|
||||||
import cn.iocoder.mall.product.api.bo.ProductSpuBO;
|
|
||||||
import cn.iocoder.mall.product.api.bo.ProductSpuDetailBO;
|
import cn.iocoder.mall.product.api.bo.ProductSpuDetailBO;
|
||||||
import cn.iocoder.mall.product.api.bo.ProductSpuPageBO;
|
import cn.iocoder.mall.product.api.bo.ProductSpuPageBO;
|
||||||
import cn.iocoder.mall.product.api.dto.ProductSpuAddDTO;
|
import cn.iocoder.mall.product.api.dto.ProductSpuAddDTO;
|
||||||
|
@ -10,8 +9,7 @@ import cn.iocoder.mall.product.api.dto.ProductSpuUpdateDTO;
|
||||||
|
|
||||||
public interface ProductSpuService {
|
public interface ProductSpuService {
|
||||||
|
|
||||||
// TODO 芋艿,需要去改改
|
CommonResult<ProductSpuDetailBO> getProductSpu(Integer id);
|
||||||
ProductSpuBO getProductSpu(Integer id);
|
|
||||||
|
|
||||||
CommonResult<ProductSpuDetailBO> addProductSpu(Integer adminId, ProductSpuAddDTO productSpuAddDTO);
|
CommonResult<ProductSpuDetailBO> addProductSpu(Integer adminId, ProductSpuAddDTO productSpuAddDTO);
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,6 @@ import cn.iocoder.common.framework.util.StringUtil;
|
||||||
import cn.iocoder.common.framework.vo.CommonResult;
|
import cn.iocoder.common.framework.vo.CommonResult;
|
||||||
import cn.iocoder.mall.product.api.ProductSpuService;
|
import cn.iocoder.mall.product.api.ProductSpuService;
|
||||||
import cn.iocoder.mall.product.api.bo.ProductAttrDetailBO;
|
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.ProductSpuDetailBO;
|
||||||
import cn.iocoder.mall.product.api.bo.ProductSpuPageBO;
|
import cn.iocoder.mall.product.api.bo.ProductSpuPageBO;
|
||||||
import cn.iocoder.mall.product.api.constant.ProductErrorCodeEnum;
|
import cn.iocoder.mall.product.api.constant.ProductErrorCodeEnum;
|
||||||
|
@ -43,11 +42,31 @@ public class ProductSpuServiceImpl implements ProductSpuService {
|
||||||
@Autowired
|
@Autowired
|
||||||
private ProductAttrServiceImpl productAttrService;
|
private ProductAttrServiceImpl productAttrService;
|
||||||
|
|
||||||
|
// @Override
|
||||||
|
// public ProductSpuBO getProductSpu(Integer id) {
|
||||||
|
// ProductSpuDO productSpuDO = productSpuMapper.selectById(id);
|
||||||
|
// // 转换成 BO
|
||||||
|
// return ProductSpuConvert.INSTANCE.convert(productSpuDO);
|
||||||
|
// }
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ProductSpuBO getProductSpu(Integer id) {
|
public CommonResult<ProductSpuDetailBO> getProductSpu(Integer id) {
|
||||||
ProductSpuDO productSpuDO = productSpuMapper.selectById(id);
|
// 校验商品 spu 存在
|
||||||
// 转换成 BO
|
ProductSpuDO spu = productSpuMapper.selectById(id);
|
||||||
return ProductSpuConvert.INSTANCE.convert(productSpuDO);
|
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")
|
@SuppressWarnings("Duplicates")
|
||||||
|
|
Loading…
Reference in New Issue