From f663fbf6b69262693865b1a43afca2ce1604e5a5 Mon Sep 17 00:00:00 2001 From: zengtao01 Date: Fri, 15 Nov 2024 10:28:35 +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 --- .../storeorder/AppStoreOrderController.java | 23 +++++++++---------- .../storeorder/StoreOrderServiceImpl.java | 19 +++++++++------ 2 files changed, 23 insertions(+), 19 deletions(-) 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 c057aa39..6d176c57 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 @@ -30,7 +30,6 @@ import java.math.BigDecimal; import java.util.List; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; -import static cn.iocoder.yudao.module.member.service.amount.LockManager.getStoreOrderLock; @Tag(name = "APP超市 - 商品订单") @RestController @@ -67,13 +66,13 @@ public class AppStoreOrderController { @PostMapping("/appCreate") @Operation(summary = "购物车订单") - public CommonResult appCreate(@RequestBody CardDto dto) { + public CommonResult appCreate(@RequestBody CardDto dto) { + + + AddReqVO addReqVO = storeOrderService.appCreate(dto); + //记录 + memberAsyncService.batchRecord(addReqVO); - synchronized(getStoreOrderLock("create")){ - AddReqVO addReqVO = storeOrderService.appCreate(dto); - //记录 - memberAsyncService.batchRecord(addReqVO); - } return success(true); } @@ -98,11 +97,11 @@ public class AppStoreOrderController { @GetMapping("/cancel") @Operation(summary = "取消订单") public synchronized CommonResult cancel(Integer orderId) { - synchronized(getStoreOrderLock("cancel")){ - AddReqVO cancel = storeOrderService.cancel(orderId); - //记录 - memberAsyncService.batchRecord(cancel); - } + + AddReqVO cancel = storeOrderService.cancel(orderId); + //记录 + memberAsyncService.batchRecord(cancel); + return success(true); } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderServiceImpl.java index 334ab26e..4c1a656c 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderServiceImpl.java @@ -59,6 +59,7 @@ 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.*; +import static cn.iocoder.yudao.module.member.service.amount.LockManager.getStoreOrderLock; /** * 商品订单 Service 实现类 @@ -461,14 +462,18 @@ public class StoreOrderServiceImpl implements StoreOrderService { @Override @Transactional(rollbackFor = Exception.class) public AddReqVO cancel(Integer orderId) { - StoreOrderDO storeOrderDO = storeOrderMapper.selectById(orderId); - if(ObjectUtil.isEmpty(storeOrderDO)){ - throw exception(STORE_ORDER_NOT_EXISTS); - } - if(storeOrderDO.getStatus().equals(StoreOrderStatusEnum.COMPLETE.getCode()) - || storeOrderDO.getStatus().equals(StoreOrderStatusEnum.REFUND.getCode())){ - throw exception(STATUS_ERROR); + StoreOrderDO storeOrderDO; + synchronized (getStoreOrderLock("cancel")) { + storeOrderDO = storeOrderMapper.selectById(orderId); + if(ObjectUtil.isEmpty(storeOrderDO)){ + throw exception(STORE_ORDER_NOT_EXISTS); + } + if(storeOrderDO.getStatus().equals(StoreOrderStatusEnum.COMPLETE.getCode()) + || storeOrderDO.getStatus().equals(StoreOrderStatusEnum.REFUND.getCode())){ + throw exception(STATUS_ERROR); + } } + //修改状态 storeOrderDO.setStatus(StoreOrderStatusEnum.CANCEL.getCode()); storeOrderMapper.updateById(storeOrderDO);