From 40c6bb2a4e15f3c2a5a72f3842404b49a25d4be8 Mon Sep 17 00:00:00 2001 From: huanghongfa <huanghongfa123456> Date: 星期四, 22 四月 2021 10:47:30 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopGoodsServiceImpl.java | 67 +++++++++++++++++++++------------ 1 files changed, 42 insertions(+), 25 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopGoodsServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopGoodsServiceImpl.java index 0b7e793..2456d43 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopGoodsServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopGoodsServiceImpl.java @@ -13,6 +13,7 @@ import com.panzhihua.common.model.vos.shop.AddShopGoodsAttrVO; import com.panzhihua.common.model.vos.shop.PageShopGoodsVO; import com.panzhihua.common.model.vos.shop.AddShopGoodsVO; +import com.panzhihua.common.utlis.DifferentLongListUtil; import com.panzhihua.common.utlis.StringUtils; import com.panzhihua.service_community.dao.ComShopGoodsAttrDAO; import com.panzhihua.common.model.vos.shop.ComShopGoodsAttrVO; @@ -31,6 +32,7 @@ import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** * @auther lyq @@ -55,6 +57,7 @@ String[] images = addShopGoodsVO.getGoodsPic().split(","); ComShopGoodsDO shopGoodsDO = new ComShopGoodsDO(); BeanUtils.copyProperties(addShopGoodsVO, shopGoodsDO); + shopGoodsDO.setOriginalPrice(addShopGoodsVO.getPrice()); if (images.length > 1) { shopGoodsDO.setGoodsPic(images[0]); } @@ -126,36 +129,50 @@ LambdaQueryWrapper<ComShopGoodsDO> query = new LambdaQueryWrapper<ComShopGoodsDO>().eq(ComShopGoodsDO::getId, id); ComShopGoodsDO shopGoodsDO = new ComShopGoodsDO(); BeanUtils.copyProperties(addShopGoodsVO, shopGoodsDO); + shopGoodsDO.setOriginalPrice(addShopGoodsVO.getPrice()); int update = this.baseMapper.update(shopGoodsDO, query); if (update < 1) { throw new ServiceException("修改失败"); } - ArrayList<ComShopGoodsAttrDO> goodsAttrDOS = Lists.newArrayList(); - addShopGoodsVO.getGoodsAttrVOList().forEach(goodsAttr -> { - if (goodsAttr.getGoodsAttrId() == null) { - throw new ServiceException("规格Id为空"); + //修改规格表 + List<ComShopGoodsAttrDO> comShopGoodsAttrDOS = shopGoodsAttrDAO.selectList(new LambdaQueryWrapper<ComShopGoodsAttrDO>().eq(ComShopGoodsAttrDO::getGoodsId, id)); + if (addShopGoodsVO.getGoodsAttrVOList().size() == 0) { + shopGoodsAttrDAO.delete(new LambdaQueryWrapper<ComShopGoodsAttrDO>().eq(ComShopGoodsAttrDO::getGoodsId, id)); + ComShopGoodsAttrDO comShopGoodsAttrDO = new ComShopGoodsAttrDO(); + comShopGoodsAttrDO.setGoodsId(id); + comShopGoodsAttrDO.setStoreId(addShopGoodsVO.getStoreId()); + comShopGoodsAttrDO.setGoodsName(addShopGoodsVO.getName()); + comShopGoodsAttrDO.setGoodsAttr("默认"); + comShopGoodsAttrDO.setAttrPic(addShopGoodsVO.getGoodsPic()); + comShopGoodsAttrDO.setIsDefault(1); + comShopGoodsAttrDO.setPrice(addShopGoodsVO.getPrice()); + shopGoodsAttrDAO.insert(comShopGoodsAttrDO); + }else{ + List<Long> attrIds = comShopGoodsAttrDOS.stream().map(ComShopGoodsAttrDO::getId).collect(Collectors.toList()); + List<Long> voAttrIds = addShopGoodsVO.getGoodsAttrVOList().stream().map(AddShopGoodsAttrVO::getGoodsAttrId).collect(Collectors.toList()); + //需要删除的规格ID——针对编辑时删除了规格的情况 + List<Long> deleteIds = DifferentLongListUtil.getDiffrent(attrIds, voAttrIds); + if(deleteIds.size()!=0){ + shopGoodsAttrDAO.deleteBatchIds(deleteIds); } - //先删除 - ComShopGoodsAttrDO goodsAttrDO = goodsAttrService.getBaseMapper().selectById(goodsAttr.getGoodsAttrId()); - ComShopGoodsAttrDO shopGoodsAttrDO = new ComShopGoodsAttrDO(); - shopGoodsAttrDO.setGoodsId(id); - shopGoodsAttrDO.setStoreId(shopGoodsDO.getStoreId()); - shopGoodsAttrDO.setGoodsName(shopGoodsDO.getName()); - if (goodsAttrDO == null) { - //如果没有规格加默认 - shopGoodsAttrDO.setGoodsAttr(goodsAttr.getGoodsAttr()); - } else { - shopGoodsAttrDO.setGoodsAttr("默认"); - } - shopGoodsAttrDO.setIsDefault(1); - shopGoodsAttrDO.setPrice(goodsAttr.getAttrPrice()); - goodsAttrDOS.add(shopGoodsAttrDO); - }); - if (goodsAttrDOS.size() > 0) { - LambdaQueryWrapper<ComShopGoodsAttrDO> oldGoodsAttrQuery = new LambdaQueryWrapper<ComShopGoodsAttrDO>().eq(ComShopGoodsAttrDO::getGoodsId, id); - //删除旧商品规格,再行添加 - goodsAttrService.getBaseMapper().delete(oldGoodsAttrQuery); - goodsAttrService.saveBatch(goodsAttrDOS); + addShopGoodsVO.getGoodsAttrVOList().forEach(goodsAttr -> { + ComShopGoodsAttrDO comShopGoodsAttrDO = shopGoodsAttrDAO.selectById(goodsAttr.getGoodsAttrId()); + if(comShopGoodsAttrDO!=null){ + comShopGoodsAttrDO.setPrice(goodsAttr.getAttrPrice()); + comShopGoodsAttrDO.setGoodsAttr(goodsAttr.getGoodsAttr()); + shopGoodsAttrDAO.updateById(comShopGoodsAttrDO); + }else{ + comShopGoodsAttrDO = new ComShopGoodsAttrDO(); + comShopGoodsAttrDO.setGoodsId(id); + comShopGoodsAttrDO.setStoreId(addShopGoodsVO.getStoreId()); + comShopGoodsAttrDO.setGoodsName(addShopGoodsVO.getName()); + comShopGoodsAttrDO.setGoodsAttr(goodsAttr.getGoodsAttr()); + comShopGoodsAttrDO.setAttrPic(addShopGoodsVO.getGoodsPic()); + comShopGoodsAttrDO.setIsDefault(1); + comShopGoodsAttrDO.setPrice(goodsAttr.getAttrPrice()); + shopGoodsAttrDAO.insert(comShopGoodsAttrDO); + } + }); } return R.ok(); } -- Gitblit v1.7.1