From 6153fba8f8ebca368edfed98cd9e46deeed4a4a5 Mon Sep 17 00:00:00 2001 From: zengtao01 Date: Wed, 13 Nov 2024 09:37:26 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B6=85=E5=B8=82=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/storeorder/vo/StoreOrderRespVO.java | 5 +++ .../StoreSaleGoodsController.java | 6 ++-- .../storeorder/AppStoreOrderController.java | 7 ++++ .../storegoods/StoreGoodsServiceImpl.java | 36 +++++++++++++++++-- .../StoreGoodsInventoryServiceImpl.java | 1 + .../storesalegoods/StoreSaleGoodsService.java | 3 +- .../StoreSaleGoodsServiceImpl.java | 26 ++------------ 7 files changed, 51 insertions(+), 33 deletions(-) diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeorder/vo/StoreOrderRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeorder/vo/StoreOrderRespVO.java index 285fa61b..e29508c4 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeorder/vo/StoreOrderRespVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storeorder/vo/StoreOrderRespVO.java @@ -63,4 +63,9 @@ public class StoreOrderRespVO { */ private Integer status; + /** + * 减免金额 + */ + private Double reductionPrice; + } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storesalegoods/StoreSaleGoodsController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storesalegoods/StoreSaleGoodsController.java index 70048c20..d3bf3b35 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storesalegoods/StoreSaleGoodsController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storesalegoods/StoreSaleGoodsController.java @@ -6,7 +6,6 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; -import cn.iocoder.yudao.module.member.controller.admin.storegoodsinventory.vo.AddReqVO; import cn.iocoder.yudao.module.member.controller.admin.storesalegoods.vo.StoreSaleGoodsPageReqVO; import cn.iocoder.yudao.module.member.controller.admin.storesalegoods.vo.StoreSaleGoodsRespVO; import cn.iocoder.yudao.module.member.controller.admin.storesalegoods.vo.StoreSaleGoodsSaveBatchVO; @@ -52,9 +51,8 @@ public class StoreSaleGoodsController { @Operation(summary = "创建售卖商品(上架)") @PreAuthorize("@ss.hasPermission('member:store-sale-goods:create')") public CommonResult createStoreSaleGoods(@Valid @RequestBody StoreSaleGoodsSaveBatchVO createReqVO) { - AddReqVO storeSaleGoods = storeSaleGoodsService.createStoreSaleGoods(createReqVO); - memberAsyncService.batchRecord(storeSaleGoods); - return success(storeSaleGoods.getList().size()); + Integer storeSaleGoods = storeSaleGoodsService.createStoreSaleGoods(createReqVO); + return success(storeSaleGoods); } @PutMapping("/update") diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storeorder/AppStoreOrderController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storeorder/AppStoreOrderController.java index 02792abe..0b02ce80 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storeorder/AppStoreOrderController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storeorder/AppStoreOrderController.java @@ -24,6 +24,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.validation.Valid; +import java.math.BigDecimal; import java.util.List; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @@ -93,4 +94,10 @@ public class AppStoreOrderController { return success(storeOrderService.refund(orderId)); } + @GetMapping("/reduction") + @Operation(summary = "减免") + public CommonResult reduction(Long orderId, BigDecimal money){ + storeOrderService.reduction(orderId,money); + return CommonResult.success(true); + } } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoods/StoreGoodsServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoods/StoreGoodsServiceImpl.java index 9591d287..47ea6baf 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoods/StoreGoodsServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoods/StoreGoodsServiceImpl.java @@ -6,21 +6,28 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.member.controller.admin.storegoods.vo.StoreGoodsPageReqVO; import cn.iocoder.yudao.module.member.controller.admin.storegoods.vo.StoreGoodsSaveReqVO; import cn.iocoder.yudao.module.member.controller.admin.storegoods.vo.StoreSaleGoodsPageVO; -import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.StoreOrderPageVO; +import cn.iocoder.yudao.module.member.controller.admin.storegoodsinventory.vo.AddReqVO; +import cn.iocoder.yudao.module.member.controller.admin.storegoodsinventory.vo.GoodsInfoReqVO; import cn.iocoder.yudao.module.member.dal.dataobject.storegoods.StoreGoodsDO; import cn.iocoder.yudao.module.member.dal.dataobject.storesalegoods.StoreSaleGoodsDO; import cn.iocoder.yudao.module.member.dal.mysql.storegoods.StoreGoodsMapper; import cn.iocoder.yudao.module.member.dal.mysql.storesalegoods.StoreSaleGoodsMapper; +import cn.iocoder.yudao.module.member.enums.InventoryTypeEnum; +import cn.iocoder.yudao.module.member.enums.OutTypeEnum; +import cn.iocoder.yudao.module.member.service.storegoodsinventory.StoreGoodsInventoryService; +import cn.iocoder.yudao.module.system.api.carteen.CarteenApi; +import cn.iocoder.yudao.module.system.api.carteen.dto.CarteenRespDto; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.STORE_GOODS_IS_SALE; @@ -39,14 +46,37 @@ public class StoreGoodsServiceImpl implements StoreGoodsService { private StoreGoodsMapper storeGoodsMapper; @Resource private StoreSaleGoodsMapper storeSaleGoodsMapper; + @Resource + private CarteenApi carteenApi; + @Resource + private StoreGoodsInventoryService storeGoodsInventoryService; @Override + @Transactional(rollbackFor = Exception.class) public Integer createStoreGoods(StoreGoodsSaveReqVO createReqVO) { // 插入 StoreGoodsDO storeGoods = BeanUtils.toBean(createReqVO, StoreGoodsDO.class); storeGoodsMapper.insert(storeGoods); + Integer goodsId = storeGoods.getGoodsId(); + //给每家店添加库存 + List carteenList = carteenApi.getCarteenList(); + List list = new ArrayList<>(); + AddReqVO addReqVO = new AddReqVO(); + for (CarteenRespDto dto:carteenList){ + GoodsInfoReqVO vo = new GoodsInfoReqVO(); + vo.setGoodsId(goodsId); + vo.setNumber(0); + vo.setWeight(0d); + vo.setCarteenId(dto.getId()); + list.add(vo); + } + //库存 + addReqVO.setList(list); + addReqVO.setType(InventoryTypeEnum.IN.getCode()); + addReqVO.setOutType(OutTypeEnum.SYSTEM_ADD.getCode()); + storeGoodsInventoryService.createStoreGoodsInventoryBySale(addReqVO); // 返回 - return storeGoods.getGoodsId(); + return goodsId; } @Override diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoodsinventory/StoreGoodsInventoryServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoodsinventory/StoreGoodsInventoryServiceImpl.java index 5289f2cf..43078656 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoodsinventory/StoreGoodsInventoryServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoodsinventory/StoreGoodsInventoryServiceImpl.java @@ -87,6 +87,7 @@ public class StoreGoodsInventoryServiceImpl implements StoreGoodsInventoryServic } @Override + @Transactional(rollbackFor = Exception.class) public void createStoreGoodsInventoryBySale(AddReqVO createReqVO) { List list = createReqVO.getList(); for (GoodsInfoReqVO vo : list) { diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storesalegoods/StoreSaleGoodsService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storesalegoods/StoreSaleGoodsService.java index 326c9f10..264d3139 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storesalegoods/StoreSaleGoodsService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storesalegoods/StoreSaleGoodsService.java @@ -1,7 +1,6 @@ package cn.iocoder.yudao.module.member.service.storesalegoods; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.member.controller.admin.storegoodsinventory.vo.AddReqVO; import cn.iocoder.yudao.module.member.controller.admin.storesalegoods.vo.StoreSaleGoodsPageReqVO; import cn.iocoder.yudao.module.member.controller.admin.storesalegoods.vo.StoreSaleGoodsSaveBatchVO; import cn.iocoder.yudao.module.member.controller.admin.storesalegoods.vo.StoreSaleGoodsSaveReqVO; @@ -24,7 +23,7 @@ public interface StoreSaleGoodsService { * @param createReqVO 创建信息 * @return 编号 */ - AddReqVO createStoreSaleGoods(@Valid StoreSaleGoodsSaveBatchVO createReqVO); + Integer createStoreSaleGoods(@Valid StoreSaleGoodsSaveBatchVO createReqVO); /** * 更新售卖商品 diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storesalegoods/StoreSaleGoodsServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storesalegoods/StoreSaleGoodsServiceImpl.java index bee6a0d5..4a8292f4 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storesalegoods/StoreSaleGoodsServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storesalegoods/StoreSaleGoodsServiceImpl.java @@ -4,8 +4,6 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import cn.iocoder.yudao.module.member.controller.admin.storegoodsinventory.vo.AddReqVO; -import cn.iocoder.yudao.module.member.controller.admin.storegoodsinventory.vo.GoodsInfoReqVO; import cn.iocoder.yudao.module.member.controller.admin.storesalegoods.vo.StoreSaleGoodsPageReqVO; import cn.iocoder.yudao.module.member.controller.admin.storesalegoods.vo.StoreSaleGoodsSaveBatchVO; import cn.iocoder.yudao.module.member.controller.admin.storesalegoods.vo.StoreSaleGoodsSaveReqVO; @@ -13,8 +11,6 @@ import cn.iocoder.yudao.module.member.controller.app.store.dto.StoreGoodsDto; import cn.iocoder.yudao.module.member.controller.app.store.dto.StoreSaleGoodsDto; import cn.iocoder.yudao.module.member.dal.dataobject.storesalegoods.StoreSaleGoodsDO; import cn.iocoder.yudao.module.member.dal.mysql.storesalegoods.StoreSaleGoodsMapper; -import cn.iocoder.yudao.module.member.enums.InventoryTypeEnum; -import cn.iocoder.yudao.module.member.enums.OutTypeEnum; import cn.iocoder.yudao.module.member.service.storegoodsinventory.StoreGoodsInventoryService; import cn.iocoder.yudao.module.system.api.cashregisterinfo.CashregisterinfoApi; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -51,11 +47,9 @@ public class StoreSaleGoodsServiceImpl implements StoreSaleGoodsService { @Override @Transactional(rollbackFor = Exception.class) - public AddReqVO createStoreSaleGoods(StoreSaleGoodsSaveBatchVO createReqVO) { + public Integer createStoreSaleGoods(StoreSaleGoodsSaveBatchVO createReqVO) { List addList = new ArrayList<>(); - AddReqVO addReqVO = new AddReqVO(); - List list = new ArrayList<>(); List carteenIds = createReqVO.getCarteenIds(); List goodsIds = createReqVO.getGoodsIds(); for (Long carteenId : carteenIds) { @@ -71,24 +65,10 @@ public class StoreSaleGoodsServiceImpl implements StoreSaleGoodsService { storeSaleGoods.setCarteenId(carteenId); storeSaleGoods.setGoodsId(goodsId); addList.add(storeSaleGoods); - - GoodsInfoReqVO vo = new GoodsInfoReqVO(); - vo.setGoodsId(goodsId); - vo.setNumber(createReqVO.getNumber()); - vo.setWeight(0d); - vo.setCarteenId(carteenId); - list.add(vo); - } } storeSaleGoodsMapper.insertBatch(addList); - //库存 - addReqVO.setList(list); - addReqVO.setType(InventoryTypeEnum.IN.getCode()); - addReqVO.setOutType(OutTypeEnum.SYSTEM_ADD.getCode()); - storeGoodsInventoryService.createStoreGoodsInventoryBySale(addReqVO); - - return addReqVO; + return addList.size(); } @Override @@ -107,8 +87,6 @@ public class StoreSaleGoodsServiceImpl implements StoreSaleGoodsService { wrapper.in(StoreSaleGoodsDO::getId, Arrays.asList(split)); // 删除 storeSaleGoodsMapper.delete(wrapper); - //库存清零 - } private void validateStoreSaleGoodsExists(Long id) {