From 4f187d41afd5290b5cd159520af219afdbbd9b35 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Sat, 07 May 2022 11:44:01 +0800
Subject: [PATCH] fix goods-form not complete
---
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java | 241 +++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 229 insertions(+), 12 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java
index 91b81b4..391a690 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java
@@ -2,15 +2,11 @@
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.entity.QueryRequest;
-import cc.mrbird.febs.mall.dto.AddMallGoodsDto;
-import cc.mrbird.febs.mall.dto.AddMallGoodsSkuDto;
-import cc.mrbird.febs.mall.dto.UpMallGoodsDto;
+import cc.mrbird.febs.mall.dto.*;
import cc.mrbird.febs.mall.entity.*;
import cc.mrbird.febs.mall.mapper.*;
import cc.mrbird.febs.mall.service.IAdminMallGoodsService;
-import cc.mrbird.febs.mall.vo.AdminMailGoodsDetailVo;
-import cc.mrbird.febs.mall.vo.AdminMailGoodsSkuDetailVo;
-import cc.mrbird.febs.mall.vo.AdminMallGoodsVo;
+import cc.mrbird.febs.mall.vo.*;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
@@ -20,13 +16,18 @@
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.ArrayList;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
@Slf4j
@Service
@RequiredArgsConstructor
+@Transactional
public class AdminMallGoodsService extends ServiceImpl<MallGoodsMapper, MallGoods> implements IAdminMallGoodsService {
private final MallGoodsCategoryMapper mallGoodsCategoryMapper;
@@ -34,6 +35,7 @@
private final MallGoodsSkuMapper mallGoodsSkuMapper;
private final MallGoodsStyleMapper mallGoodsStyleMapper;
private final MallGoodsImagesMapper mallGoodsImagesMapper;
+ private final MallShoppingCartMapper mallShoppingCartMapper;
@Override
public IPage<AdminMallGoodsVo> getCategoryListInPage(MallGoods mallGoods, QueryRequest request) {
@@ -43,6 +45,7 @@
}
@Override
+ @Transactional
public FebsResponse addMallGoods(AddMallGoodsDto addMallGoodsDto) {
String goodsName = addMallGoodsDto.getGoodsName();
if(StrUtil.isEmpty(goodsName)){
@@ -63,6 +66,37 @@
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("商品规格名称不能为空");
+ }
+ String skuImage = addSku.getSkuImage();
+ if(StrUtil.isEmpty(skuImage)){
+ 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 +127,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);
}
@@ -145,6 +192,7 @@
}
@Override
+ @Transactional
public FebsResponse delMallGoods(Long id) {
MallGoods mallGoods = mallGoodsMapper.selectById(id);
if(ObjectUtil.isEmpty(mallGoods)){
@@ -158,6 +206,8 @@
mallGoodsStyleMapper.deleteByGoodsId(id);
mallGoodsSkuMapper.deleteByGoodsId(id);
mallGoodsMapper.deleteById(mallGoods);
+ mallShoppingCartMapper.deleteByGoodsId(id);
+
return new FebsResponse().success();
}
@@ -169,5 +219,172 @@
return adminMailGoodsDetailVo;
}
+ @Override
+ public AdminMailGoodsUpdateVo getMallGoodsUpdateInfoById(long id) {
+ AdminMailGoodsUpdateVo adminMailGoodsUpdateVo = mallGoodsMapper.getMallGoodsUpdateInfoById(id);
+ List<AdminMailGoodsSkuDetailVo> adminMailGoodsSkuDetailVos = mallGoodsSkuMapper.selectByGoodId(id);
+ if(CollUtil.isNotEmpty(adminMailGoodsSkuDetailVos)){
+ adminMailGoodsUpdateVo.setMailGoodsSkuDetailVo(adminMailGoodsSkuDetailVos);
+ }
+ List<String> adminMailGoodsImagesVos = mallGoodsImagesMapper.selectByGoodId(id);
+ if(CollUtil.isNotEmpty(adminMailGoodsImagesVos)){
+ adminMailGoodsUpdateVo.setMailGoodsImagesVo(adminMailGoodsImagesVos);
+ }
+ return adminMailGoodsUpdateVo;
+ }
+
+ @Override
+ @Transactional
+ public FebsResponse updateMallGoods(MallGoodsUpdateDto mallGoodsUpdateDto) {
+ String goodsName = mallGoodsUpdateDto.getGoodsName();
+ if(StrUtil.isEmpty(goodsName)){
+ return new FebsResponse().fail().message("商品名称不能为空");
+ }
+ Integer mallGoodsByGoodsName = mallGoodsMapper.selectMallGoodsCountByGoodsNameAndGoodId(goodsName,mallGoodsUpdateDto.getId());
+ if(mallGoodsByGoodsName > 0){
+ return new FebsResponse().fail().message("商品名称不能重复");
+ }
+ String goodsNo = mallGoodsUpdateDto.getGoodsNo();
+ if(StrUtil.isEmpty(goodsNo)){
+ return new FebsResponse().fail().message("商品编号不能为空");
+ }
+ Integer mallGoodsByGoodsNo = mallGoodsMapper.selectMallGoodsCountByGoodsNoAndGoodId(goodsNo,mallGoodsUpdateDto.getId());
+ if(mallGoodsByGoodsNo > 0){
+ return new FebsResponse().fail().message("商品编号不能重复");
+ }
+ Long categoryId = mallGoodsUpdateDto.getCategoryId();
+ if(ObjectUtil.isEmpty(categoryId)){
+ return new FebsResponse().fail().message("商品分类不能为空");
+ }
+ List<MailGoodsSkuDto> addSkus = mallGoodsUpdateDto.getMailGoodsSkuDto();
+ if(CollUtil.isEmpty(addSkus)){
+ return new FebsResponse().fail().message("商品规格不能为空");
+ }
+ for(MailGoodsSkuDto addSku : addSkus){
+ String skuName = addSku.getSkuName();
+ if(StrUtil.isEmpty(skuName)){
+ return new FebsResponse().fail().message("商品规格名称不能为空");
+ }
+ String skuImage = addSku.getSkuImage();
+ if(StrUtil.isEmpty(skuImage)){
+ 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");
+ }
+ BigDecimal originalPrice = addSku.getOriginalPrice();
+ if(originalPrice.compareTo(BigDecimal.ZERO) <= 0){
+ return new FebsResponse().fail().message("商品规格原价不能小于0");
+ }
+ BigDecimal presentPrice = addSku.getPresentPrice();
+ if(presentPrice.compareTo(BigDecimal.ZERO) <= 0){
+ return new FebsResponse().fail().message("商品规格现价不能小于0");
+ }
+
+ }
+ //新增商品
+ MallGoods mallGoods = mallGoodsMapper.selectById(mallGoodsUpdateDto.getId());
+ mallGoods.setGoodsNo(mallGoodsUpdateDto.getGoodsNo());
+ mallGoods.setGoodsName(mallGoodsUpdateDto.getGoodsName());
+ mallGoods.setGoodsIntrodution(mallGoodsUpdateDto.getGoodsIntrodution());
+ mallGoods.setUnit(mallGoodsUpdateDto.getUnit());
+ mallGoods.setThumb(mallGoodsUpdateDto.getThumb());
+ mallGoods.setGoodsDetails(mallGoodsUpdateDto.getGoodsDetails());
+ mallGoods.setOriginalPrice(mallGoodsUpdateDto.getOriginalPrice());
+ mallGoods.setCategoryId(mallGoodsUpdateDto.getCategoryId());
+ mallGoods.setPresentPrice(mallGoodsUpdateDto.getPresentPrice());
+ mallGoods.setIsHot(mallGoodsUpdateDto.getIsHot());
+// mallGoods.setIsSale(MallGoods.ISSALE_STATUS_DISABLED);
+ mallGoodsMapper.updateById(mallGoods);
+
+ mallGoodsImagesMapper.deleteByGoodsId(mallGoodsUpdateDto.getId());
+
+ String thumbs = mallGoodsUpdateDto.getThumbs();
+ if(StrUtil.isNotEmpty(thumbs)){
+ List<String> imgs = StrUtil.splitTrim(thumbs, ",");
+ if(CollUtil.isNotEmpty(imgs)){
+ int i = 1;
+ for(String img : imgs){
+ MallGoodsImages mallGoodsImages = new MallGoodsImages();
+ mallGoodsImages.setGoodsId(mallGoods.getId());
+ mallGoodsImages.setImageUrl(img);
+ mallGoodsImages.setSeq(i);
+ mallGoodsImagesMapper.insert(mallGoodsImages);
+ i++;
+ }
+ }
+ }
+
+ List<MailGoodsSkuDto> mailGoodsSkuDto = mallGoodsUpdateDto.getMailGoodsSkuDto();
+ Set<String> styles = new HashSet<>();
+ if(CollUtil.isNotEmpty(mailGoodsSkuDto)){
+ for(MailGoodsSkuDto addStyleDto : mailGoodsSkuDto){
+ if(ObjectUtil.isNotEmpty(addStyleDto.getDelLog())){
+ mallGoodsSkuMapper.deleteById(addStyleDto.getId());
+
+ mallShoppingCartMapper.deleteByGoodsIdAndSkuId(addStyleDto.getId(),addStyleDto.getGoodsId());
+ }
+ if(ObjectUtil.isEmpty(addStyleDto.getStyleId())){
+ MallGoodsStyle mallGoodsStyleSku = mallGoodsStyleMapper.selectByStyleName(addStyleDto.getStyleName(),mallGoods.getId());
+ if(ObjectUtil.isEmpty(mallGoodsStyleSku)){
+ styles.add(addStyleDto.getStyleName());
+ }
+ }
+ }
+ }
+ if(CollUtil.isNotEmpty(styles)){
+ for(String style : styles){
+ //新增样式
+ MallGoodsStyle mallGoodsStyle = new MallGoodsStyle();
+ mallGoodsStyle.setName(style);
+ mallGoodsStyle.setGoodsId(mallGoods.getId());
+ mallGoodsStyleMapper.insert(mallGoodsStyle);
+ }
+ }
+
+ if(CollUtil.isNotEmpty(mailGoodsSkuDto)){
+ for(MailGoodsSkuDto addMallGoodsSkuDto : mailGoodsSkuDto){
+ if(StrUtil.isEmpty(addMallGoodsSkuDto.getDelLog())){
+ if(ObjectUtil.isNotEmpty(addMallGoodsSkuDto.getId())){
+ MallGoodsSku mallGoodsSku = mallGoodsSkuMapper.selectById(addMallGoodsSkuDto.getId());
+ mallGoodsSku.setSkuName(addMallGoodsSkuDto.getSkuName());
+ mallGoodsSku.setSkuImage(addMallGoodsSkuDto.getSkuImage());
+ mallGoodsSku.setStock(addMallGoodsSkuDto.getStock()==null?0:addMallGoodsSkuDto.getStock());
+ mallGoodsSku.setSkuVolume(addMallGoodsSkuDto.getSkuVolume()==null?0:addMallGoodsSkuDto.getSkuVolume());
+ mallGoodsSku.setOriginalPrice(addMallGoodsSkuDto.getOriginalPrice());
+ mallGoodsSku.setPresentPrice(addMallGoodsSkuDto.getPresentPrice());
+ mallGoodsSku.setStyleId(addMallGoodsSkuDto.getStyleId());
+ mallGoodsSku.setGoodsId(mallGoods.getId());
+ mallGoodsSkuMapper.updateById(mallGoodsSku);
+ }else{
+ //新增商品规格
+ MallGoodsStyle mallGoodsStyleSku = mallGoodsStyleMapper.selectByStyleName(addMallGoodsSkuDto.getStyleName(),mallGoods.getId());
+ MallGoodsSku mallGoodsSku = new MallGoodsSku();
+ mallGoodsSku.setSkuName(addMallGoodsSkuDto.getSkuName());
+ mallGoodsSku.setSkuImage(addMallGoodsSkuDto.getSkuImage());
+ mallGoodsSku.setStock(addMallGoodsSkuDto.getStock()==null?0:addMallGoodsSkuDto.getStock());
+ mallGoodsSku.setSkuVolume(addMallGoodsSkuDto.getSkuVolume()==null?0:addMallGoodsSkuDto.getSkuVolume());
+ mallGoodsSku.setOriginalPrice(addMallGoodsSkuDto.getOriginalPrice());
+ mallGoodsSku.setPresentPrice(addMallGoodsSkuDto.getPresentPrice());
+ mallGoodsSku.setStyleId(mallGoodsStyleSku.getId());
+ mallGoodsSku.setGoodsId(mallGoods.getId());
+ mallGoodsSkuMapper.insert(mallGoodsSku);
+ }
+ }
+ }
+ }
+ return new FebsResponse().success().message("操作成功");
+ }
+
+ @Override
+ public List<AdminMallGoodsTreeVo> getAllGoodsTree() {
+ return mallGoodsMapper.getAllGoodsTree();
+ }
+
}
--
Gitblit v1.9.1