Просмотр исходного кода

订单号创建失败不回退

yzc 2 лет назад
Родитель
Сommit
448e3c53ad

+ 4 - 46
sckw-modules/sckw-order/src/main/java/com/sckw/order/controller/KwoTradeOrderController.java

@@ -1,15 +1,10 @@
 package com.sckw.order.controller;
 
-import com.sckw.core.exception.BusinessException;
-import com.sckw.core.model.enums.OrderRuleEnum;
-import com.sckw.core.model.enums.RedisOrderGenerateEnum;
-import com.sckw.core.utils.OrderGenerateSeqNoUtils;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.order.model.vo.req.*;
 import com.sckw.order.serivce.KwoTradeOrderService;
 import io.seata.spring.annotation.GlobalTransactional;
 import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
 import org.springframework.http.MediaType;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -22,7 +17,6 @@ import org.springframework.web.bind.annotation.*;
 @RestController
 @RequestMapping(value = "/kwoTradeOrder")
 @RequiredArgsConstructor
-@Slf4j
 public class KwoTradeOrderController {
 
     private final KwoTradeOrderService kwoTradeOrderService;
@@ -37,16 +31,7 @@ public class KwoTradeOrderController {
     @GlobalTransactional(name = "default_tx_group")
     @PostMapping(value = "/addPurchaseOrderDraft", produces = MediaType.APPLICATION_JSON_VALUE)
     public HttpResult addPurchaseOrderDraft(@RequestBody @Validated PurchaseOrderDraftParam param) {
-        try {
-            return kwoTradeOrderService.addPurchaseOrderDraft(param);
-        } catch (Exception e) {
-            OrderGenerateSeqNoUtils.getSeqNoMinusOne(RedisOrderGenerateEnum.TRADE_ORDER, OrderRuleEnum.TRADE_ORDER);
-            log.error("采购下单草稿 error:{}", e.getMessage(), e);
-            if (e instanceof BusinessException){
-                throw new BusinessException(e.getMessage());
-            }
-            throw new BusinessException("采购下单草稿提交失败!");
-        }
+        return kwoTradeOrderService.addPurchaseOrderDraft(param);
     }
 
     /**
@@ -59,16 +44,7 @@ public class KwoTradeOrderController {
     @GlobalTransactional(name = "default_tx_group")
     @PostMapping(value = "/addPurchaseOrderSubmit", produces = MediaType.APPLICATION_JSON_VALUE)
     public HttpResult addPurchaseOrderSubmit(@RequestBody @Validated PurchaseOrderParam purchaseOrderParam) {
-        try {
-            return kwoTradeOrderService.addPurchaseOrderSubmit(purchaseOrderParam);
-        } catch (Exception e) {
-            OrderGenerateSeqNoUtils.getSeqNoMinusOne(RedisOrderGenerateEnum.TRADE_ORDER, OrderRuleEnum.TRADE_ORDER);
-            log.error("采购下单提交 error:{}", e.getMessage(), e);
-            if (e instanceof BusinessException){
-                throw new BusinessException(e.getMessage());
-            }
-            throw new BusinessException("采购下单提交失败!");
-        }
+        return kwoTradeOrderService.addPurchaseOrderSubmit(purchaseOrderParam);
     }
 
     /**
@@ -81,16 +57,7 @@ public class KwoTradeOrderController {
     @GlobalTransactional(name = "default_tx_group")
     @PostMapping(value = "/addValetOrderDraft", produces = MediaType.APPLICATION_JSON_VALUE)
     public HttpResult addValetOrderDraft(@RequestBody @Validated ValetOrderDraftParam param) {
-        try {
-            return kwoTradeOrderService.addValetOrderDraft(param);
-        } catch (Exception e) {
-            OrderGenerateSeqNoUtils.getSeqNoMinusOne(RedisOrderGenerateEnum.TRADE_ORDER, OrderRuleEnum.TRADE_ORDER);
-            log.error("代客下单草稿 error:{}", e.getMessage(), e);
-            if (e instanceof BusinessException){
-                throw new BusinessException(e.getMessage());
-            }
-            throw new BusinessException("代客下单草稿提交失败!");
-        }
+        return kwoTradeOrderService.addValetOrderDraft(param);
     }
 
 
@@ -104,16 +71,7 @@ public class KwoTradeOrderController {
     @GlobalTransactional(name = "default_tx_group")
     @PostMapping(value = "/addValetOrderSubmit", produces = MediaType.APPLICATION_JSON_VALUE)
     public HttpResult addValetOrderSubmit(@RequestBody @Validated ValetOrderParam valetOrderParam) {
-        try {
-            return kwoTradeOrderService.addValetOrderSubmit(valetOrderParam);
-        } catch (Exception e) {
-            OrderGenerateSeqNoUtils.getSeqNoMinusOne(RedisOrderGenerateEnum.TRADE_ORDER, OrderRuleEnum.TRADE_ORDER);
-            log.error("代客下单提交 error:{}", e.getMessage(), e);
-            if (e instanceof BusinessException){
-                throw new BusinessException(e.getMessage());
-            }
-            throw new BusinessException("代客下单提交失败!");
-        }
+        return kwoTradeOrderService.addValetOrderSubmit(valetOrderParam);
     }
 
     /**

+ 5 - 25
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java

@@ -96,12 +96,8 @@ public class KwoTradeOrderService {
      * @return: void
      */
     public HttpResult addPurchaseOrderDraft(PurchaseOrderDraftParam param) {
-        String orderNo = getOrderNo();
-        if (StringUtils.isBlank(orderNo)) {
-            return HttpResult.error("采购下单草稿生成订单号异常!");
-        }
         KwoTradeOrder order = BeanUtils.copyProperties(param, KwoTradeOrder.class);
-        order.setEntId(LoginUserHolder.getEntId()).setTOrderNo(orderNo)
+        order.setEntId(LoginUserHolder.getEntId()).setTOrderNo(getOrderNo())
                 .setUnit(Objects.nonNull(param.getGoodsInfo()) ? param.getGoodsInfo().getUnit() : null)
                 .setSource(DictEnum.TORDER_SOURCE_1.getValue()).setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_0.getValue()));
         kwoTradeOrderMapper.insert(order);
@@ -235,12 +231,8 @@ public class KwoTradeOrderService {
      * @return: void
      */
     public HttpResult addValetOrderDraft(ValetOrderDraftParam param) {
-        String orderNo = getOrderNo();
-        if (StringUtils.isBlank(orderNo)) {
-            return HttpResult.error("代客下单草稿生成订单号异常!");
-        }
         KwoTradeOrder order = BeanUtils.copyProperties(param, KwoTradeOrder.class);
-        order.setEntId(LoginUserHolder.getEntId()).setTOrderNo(orderNo)
+        order.setEntId(LoginUserHolder.getEntId()).setTOrderNo(getOrderNo())
                 .setUnit(Objects.nonNull(param.getGoodsInfo()) ? param.getGoodsInfo().getUnit() : null)
                 .setSource(DictEnum.TORDER_SOURCE_2.getValue()).setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_0.getValue()));
         kwoTradeOrderMapper.insert(order);
@@ -256,10 +248,6 @@ public class KwoTradeOrderService {
      * @return: void
      */
     public HttpResult addPurchaseOrderSubmit(PurchaseOrderParam param) {
-        String orderNo = getOrderNo();
-        if (StringUtils.isBlank(orderNo)) {
-            return HttpResult.error("采购下单提交生成订单号异常!");
-        }
         GoodsInfo goodsInfo = param.getGoodsInfo();
         if (Objects.isNull(goodsInfo.getPriceRangeId())) {
             throw new BusinessException("采购下单价格梯度信息不能为空!");
@@ -270,7 +258,7 @@ public class KwoTradeOrderService {
                 .setOrderSource(DictEnum.TORDER_SOURCE_1.getValue());
         orderCheck(orderCheckDTO, false);
         KwoTradeOrder order = BeanUtils.copyProperties(param, KwoTradeOrder.class);
-        order.setEntId(LoginUserHolder.getEntId()).setTOrderNo(orderNo)
+        order.setEntId(LoginUserHolder.getEntId()).setTOrderNo(getOrderNo())
                 .setUnit(param.getGoodsInfo().getUnit()).setSource(DictEnum.TORDER_SOURCE_1.getValue())
                 .setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_1.getValue()));
         kwoTradeOrderMapper.insert(order);
@@ -376,10 +364,6 @@ public class KwoTradeOrderService {
      * @return: void
      */
     public HttpResult addValetOrderSubmit(ValetOrderParam param) {
-        String orderNo = getOrderNo();
-        if (StringUtils.isBlank(orderNo)) {
-            return HttpResult.error("代客下单提交生成订单号异常!");
-        }
         OrderCheckDTO orderCheck = BeanUtils.copyProperties(param, OrderCheckDTO.class);
         getTopEnt(orderCheck, param.getUnitInfo());
         orderCheck.setGoodsId(param.getGoodsInfo().getGoodsId()).setUnitPrice(param.getGoodsInfo().getUnitPrice())
@@ -389,7 +373,7 @@ public class KwoTradeOrderService {
         contractCheck(contract);
         param.setContractInfo(contract);
         KwoTradeOrder order = BeanUtils.copyProperties(param, KwoTradeOrder.class);
-        order.setEntId(LoginUserHolder.getEntId()).setTOrderNo(orderNo)
+        order.setEntId(LoginUserHolder.getEntId()).setTOrderNo(getOrderNo())
                 .setUnit(param.getGoodsInfo().getUnit()).setSource(DictEnum.TORDER_SOURCE_2.getValue());
         String contractStatus = contract.getContractStatus();
         if (Objects.equals(contractStatus, DictEnum.CONTRACT_STATUS_0.getValue())) {
@@ -418,8 +402,8 @@ public class KwoTradeOrderService {
     private String getOrderNo() {
         Date date = new Date();
         String lockKey = String.format(RedisConstant.TORDER_NO_GENERATE_KEY, DateUtils.formatDateToYYMMDD(date));
+        String key = OrderGenerateSeqNoUtils.getKey(RedisOrderGenerateEnum.TRADE_ORDER, OrderRuleEnum.TRADE_ORDER, date);
         try {
-            String key = OrderGenerateSeqNoUtils.getKey(RedisOrderGenerateEnum.TRADE_ORDER, OrderRuleEnum.TRADE_ORDER, date);
             if (Boolean.FALSE.equals(RedissonUtils.exists(key))) {
                 if (Boolean.FALSE.equals(RedissonUtils.tryLock(lockKey, 5L, 10L))) {
                     throw new BusinessException("业务繁忙,请稍后再试!");
@@ -432,10 +416,6 @@ public class KwoTradeOrderService {
                 }
             }
             return OrderGenerateSeqNoUtils.getOtherSeqNo(RedisOrderGenerateEnum.TRADE_ORDER, OrderRuleEnum.TRADE_ORDER);
-
-        } catch (Exception e) {
-            log.error("生成贸易订单号异常:{}",e.getMessage(),e);
-            return null;
         } finally {
             RedissonUtils.unlock(lockKey);
         }