diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/goods/GoodsController.java b/ghy-admin/src/main/java/com/ghy/web/controller/goods/GoodsController.java index 03833265..e424a68f 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/goods/GoodsController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/goods/GoodsController.java @@ -390,8 +390,8 @@ public class GoodsController extends BaseController { @PostMapping("/app/edit") @ResponseBody public AjaxResult appEditSave(@RequestBody @Validated Goods goods) { -// goods.setUpdateBy(getLoginName()); -// return toAjax(goodsService.updateGoods(goods)); + + goodsService.edit(goods); return AjaxResult.success(); } diff --git a/ghy-goods/src/main/java/com/ghy/goods/mapper/GoodsAreaMapper.java b/ghy-goods/src/main/java/com/ghy/goods/mapper/GoodsAreaMapper.java index d540ff15..2a91379d 100644 --- a/ghy-goods/src/main/java/com/ghy/goods/mapper/GoodsAreaMapper.java +++ b/ghy-goods/src/main/java/com/ghy/goods/mapper/GoodsAreaMapper.java @@ -13,6 +13,8 @@ public interface GoodsAreaMapper { */ List selectByGoodsId(Long goodsId); + void deleteByGoodsId(Long goodsId); + /** * @param areas 区域集合id * @return 批量insert成功条数 diff --git a/ghy-goods/src/main/java/com/ghy/goods/mapper/GoodsStandardMapper.java b/ghy-goods/src/main/java/com/ghy/goods/mapper/GoodsStandardMapper.java index 7c24fe7b..1c679cda 100644 --- a/ghy-goods/src/main/java/com/ghy/goods/mapper/GoodsStandardMapper.java +++ b/ghy-goods/src/main/java/com/ghy/goods/mapper/GoodsStandardMapper.java @@ -55,4 +55,6 @@ public interface GoodsStandardMapper { int updateSaleNum(GoodsStandard goodsStandard); + int update(GoodsStandard goodsStandard); + } diff --git a/ghy-goods/src/main/java/com/ghy/goods/service/GoodsAreaService.java b/ghy-goods/src/main/java/com/ghy/goods/service/GoodsAreaService.java index d41f95ca..9e51e693 100644 --- a/ghy-goods/src/main/java/com/ghy/goods/service/GoodsAreaService.java +++ b/ghy-goods/src/main/java/com/ghy/goods/service/GoodsAreaService.java @@ -23,4 +23,7 @@ public interface GoodsAreaService { */ int batchInsert(List areas); + void deleteByGoodsId(Long goodsId); + + } diff --git a/ghy-goods/src/main/java/com/ghy/goods/service/GoodsService.java b/ghy-goods/src/main/java/com/ghy/goods/service/GoodsService.java index ff5e422e..f5ac37a1 100644 --- a/ghy-goods/src/main/java/com/ghy/goods/service/GoodsService.java +++ b/ghy-goods/src/main/java/com/ghy/goods/service/GoodsService.java @@ -93,4 +93,6 @@ public interface GoodsService { */ List selectByCategoryIds(Collection ids); + int edit(Goods goods); + } diff --git a/ghy-goods/src/main/java/com/ghy/goods/service/GoodsStandardService.java b/ghy-goods/src/main/java/com/ghy/goods/service/GoodsStandardService.java index 4f601d4d..f40ec841 100644 --- a/ghy-goods/src/main/java/com/ghy/goods/service/GoodsStandardService.java +++ b/ghy-goods/src/main/java/com/ghy/goods/service/GoodsStandardService.java @@ -41,6 +41,8 @@ public interface GoodsStandardService { int batchInsert(List goodsStandardList); + void deleteByGoodsId(Long goodsId); + /** * @param request 校验的商品数量 * @return 返回结果 @@ -54,4 +56,6 @@ public interface GoodsStandardService { int updateSaleNum(GoodsStandard goodsStandard); + int update(GoodsStandard goodsStandard); + } diff --git a/ghy-goods/src/main/java/com/ghy/goods/service/impl/GoodsAreaServiceImpl.java b/ghy-goods/src/main/java/com/ghy/goods/service/impl/GoodsAreaServiceImpl.java index d9bc8ddc..1c221c18 100644 --- a/ghy-goods/src/main/java/com/ghy/goods/service/impl/GoodsAreaServiceImpl.java +++ b/ghy-goods/src/main/java/com/ghy/goods/service/impl/GoodsAreaServiceImpl.java @@ -33,4 +33,8 @@ public class GoodsAreaServiceImpl implements GoodsAreaService { return goodsAreaMapper.batchInsert(areas); } + @Override + public void deleteByGoodsId(Long goodsId) { + goodsAreaMapper.deleteByGoodsId(goodsId); + } } diff --git a/ghy-goods/src/main/java/com/ghy/goods/service/impl/GoodsServiceImpl.java b/ghy-goods/src/main/java/com/ghy/goods/service/impl/GoodsServiceImpl.java index e3d048d0..d4de1dec 100644 --- a/ghy-goods/src/main/java/com/ghy/goods/service/impl/GoodsServiceImpl.java +++ b/ghy-goods/src/main/java/com/ghy/goods/service/impl/GoodsServiceImpl.java @@ -162,6 +162,45 @@ public class GoodsServiceImpl implements GoodsService { return goodsMapper.selectByCategoryIds(ids); } + @Override + @Transactional(rollbackFor = Exception.class) + public int edit(Goods goods) { + // 添加商品主体 + int result = goodsMapper.updateGoods(goods); + + // 给各组件插入商品主体id + goods.getGoodsAreaList().forEach(goodsArea -> { + goodsArea.setGoodsId(goods.getGoodsId()); + }); + goods.getGoodsImgsList().forEach(goodsImg -> { + goodsImg.setGoodsId(goods.getGoodsId()); + }); + goods.getGoodsStandardList().forEach(goodsStandard -> { + goodsStandard.setGoodsId(goods.getGoodsId()); + if (goodsStandard.getExtMoney() == null) { + goodsStandard.setExtMoney(BigDecimal.ZERO); + } + }); + + // 批量删除各组件 + goodsAreaService.deleteByGoodsId(goods.getGoodsId()); + goodsImgsService.deleteByGoodsId(goods.getGoodsId()); + + // 批量插入各组件 + goodsAreaService.batchInsert(goods.getGoodsAreaList()); + goodsImgsService.batchInsert(goods.getGoodsImgsList()); + goods.getGoodsStandardList().forEach(goodsStandard -> { + if(goodsStandard.getGoodsStandardId() != null){ + goodsStandardService.update(goodsStandard); + }else { + List goodsStandards = new ArrayList<>(); + goodsStandards.add(goodsStandard); + goodsStandardService.batchInsert(goodsStandards); + } + + }); + return result; + } public int countUserGoodsById(Goods goods) { //TODO 校验商品是否上架 diff --git a/ghy-goods/src/main/java/com/ghy/goods/service/impl/GoodsStandardServiceImpl.java b/ghy-goods/src/main/java/com/ghy/goods/service/impl/GoodsStandardServiceImpl.java index c81a6c3b..a1a1483f 100644 --- a/ghy-goods/src/main/java/com/ghy/goods/service/impl/GoodsStandardServiceImpl.java +++ b/ghy-goods/src/main/java/com/ghy/goods/service/impl/GoodsStandardServiceImpl.java @@ -52,6 +52,11 @@ public class GoodsStandardServiceImpl implements GoodsStandardService { return goodsStandardMapper.batchInsert(goodsStandardList); } + @Override + public void deleteByGoodsId(Long goodsId) { + goodsStandardMapper.deleteByGoodsId(goodsId); + } + @Override public List checkStore(AppGoodsRequest request) { return goodsStandardMapper.checkStore(request); @@ -71,4 +76,9 @@ public class GoodsStandardServiceImpl implements GoodsStandardService { public int updateSaleNum(GoodsStandard goodsStandard) { return goodsStandardMapper.updateSaleNum(goodsStandard); } + + @Override + public int update(GoodsStandard goodsStandard) { + return goodsStandardMapper.update(goodsStandard); + } } diff --git a/ghy-goods/src/main/resources/mapper/goods/GoodsAreaMapper.xml b/ghy-goods/src/main/resources/mapper/goods/GoodsAreaMapper.xml index c59c2880..b68fb9af 100644 --- a/ghy-goods/src/main/resources/mapper/goods/GoodsAreaMapper.xml +++ b/ghy-goods/src/main/resources/mapper/goods/GoodsAreaMapper.xml @@ -24,6 +24,11 @@ + + delete from goods_area + where goods_id = #{goodsId} + + INSERT INTO goods_area ( goods_id,country_area_id) VALUES diff --git a/ghy-goods/src/main/resources/mapper/goods/GoodsStandardMapper.xml b/ghy-goods/src/main/resources/mapper/goods/GoodsStandardMapper.xml index c327a4d2..826e53fd 100644 --- a/ghy-goods/src/main/resources/mapper/goods/GoodsStandardMapper.xml +++ b/ghy-goods/src/main/resources/mapper/goods/GoodsStandardMapper.xml @@ -112,4 +112,21 @@ goods_standard_id = #{goodsStandardId} + + UPDATE goods_standard + + goods_standard_name = #{goodsStandardName}, + goods_id = #{goodsId}, + dept_goods_category_id = #{deptGoodsCategoryId}, + goods_price = #{goodsPrice}, + ext_money = #{extMoney}, + discount_price = #{discountPrice}, + group_price = #{groupPrice}, + goods_unit = #{goodsUnit}, + `status` = #{status}, + remark = #{remark}, + update_time = sysdate() + + WHERE goods_standard_id = #{goodsStandardId} +