Helius
2021-09-28 c99b2aad164da7ce15536b716854da9ae46780ae
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java
@@ -20,9 +20,12 @@
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@Slf4j
@Service
@@ -43,6 +46,7 @@
    }
    @Override
    @Transactional
    public FebsResponse addMallGoods(AddMallGoodsDto addMallGoodsDto) {
        String goodsName = addMallGoodsDto.getGoodsName();
        if(StrUtil.isEmpty(goodsName)){
@@ -63,6 +67,33 @@
        Long categoryId = addMallGoodsDto.getCategoryId();
        if(ObjectUtil.isEmpty(categoryId)){
            return new FebsResponse().fail().message("商品分类不能为空");
        }
        List<AddMallGoodsSkuDto> addSkus = addMallGoodsDto.getAddMallGoodsSkuDtos();
        if(CollUtil.isEmpty(addSkus)){
            return new FebsResponse().fail().message("商品规格不能为空");
        }
        for(AddMallGoodsSkuDto addSku : addSkus){
            String skuName = addSku.getSkuName();
            if(StrUtil.isEmpty(skuName)){
                return new FebsResponse().fail().message("商品规格名称不能为空");
            }
            Integer skuVolume = addSku.getSkuVolume()==null?0: addSku.getSkuVolume();
            if(skuVolume < 0){
                return new FebsResponse().fail().message("商品规格销售数量不能小于0");
            }
            Integer stock = addSku.getStock()==null?0: addSku.getStock();
            if(stock < 0){
                return new FebsResponse().fail().message("商品规格库存必须大于0");
            }
            String originalPrice = addSku.getOriginalPrice();
            if(StrUtil.isEmpty(originalPrice)){
                return new FebsResponse().fail().message("商品规格原价不能为空");
            }
            String presentPrice = addSku.getPresentPrice();
            if(StrUtil.isEmpty(presentPrice)){
                return new FebsResponse().fail().message("商品规格现价不能为空");
            }
        }
        //新增商品
        MallGoods mallGoods = new MallGoods();
@@ -93,27 +124,40 @@
                    i++;
                }
            }
        }
        List<AddMallGoodsSkuDto> addMallGoodsSkuDtos = addMallGoodsDto.getAddMallGoodsSkuDtos();
        Set<String> styles = new HashSet<>();
        if(CollUtil.isNotEmpty(addMallGoodsSkuDtos)){
            for(AddMallGoodsSkuDto addMallGoodsSkuDto : addMallGoodsSkuDtos){
            for(AddMallGoodsSkuDto addStyleDto : addMallGoodsSkuDtos){
                styles.add(addStyleDto.getStyleName());
            }
        }
        if(CollUtil.isNotEmpty(styles)){
            for(String style : styles){
                //新增样式
                MallGoodsStyle mallGoodsStyle = new MallGoodsStyle();
                mallGoodsStyle.setName(addMallGoodsSkuDto.getSkuName());
                mallGoodsStyle.setName(style);
                mallGoodsStyle.setGoodsId(mallGoods.getId());
                mallGoodsStyleMapper.insert(mallGoodsStyle);
            }
        }
        if(CollUtil.isNotEmpty(addMallGoodsSkuDtos)){
            for(AddMallGoodsSkuDto addMallGoodsSkuDto : addMallGoodsSkuDtos){
                MallGoodsStyle mallGoodsStyleSku = mallGoodsStyleMapper.selectByStyleName(addMallGoodsSkuDto.getStyleName(),mallGoods.getId());
                //新增商品规格
                MallGoodsSku mallGoodsSku = new MallGoodsSku();
                mallGoodsSku.setSkuName(addMallGoodsSkuDto.getSkuName());
                mallGoodsSku.setSkuImage(addMallGoodsSkuDto.getSkuImage());
                mallGoodsSku.setStock(addMallGoodsSkuDto.getStock());
                mallGoodsSku.setSkuVolume(addMallGoodsSkuDto.getSkuVolume());
                mallGoodsSku.setStock(addMallGoodsSkuDto.getStock()==null?0:addMallGoodsSkuDto.getStock());
                mallGoodsSku.setSkuVolume(addMallGoodsSkuDto.getSkuVolume()==null?0:addMallGoodsSkuDto.getSkuVolume());
                mallGoodsSku.setOriginalPrice(new BigDecimal(addMallGoodsSkuDto.getOriginalPrice()));
                mallGoodsSku.setPresentPrice(new BigDecimal(addMallGoodsSkuDto.getPresentPrice()));
                mallGoodsSku.setStyleId(mallGoodsStyle.getId());
                mallGoodsSku.setStyleId(mallGoodsStyleSku.getId());
                mallGoodsSku.setGoodsId(mallGoods.getId());
                mallGoodsSkuMapper.insert(mallGoodsSku);
            }