Explorar o código

政策执行后订单金额修改

lishiqiang hai 1 semana
pai
achega
dfc25062f7

+ 13 - 7
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/impl/OtcTradeOrderServiceImpl.java

@@ -393,13 +393,7 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
             tradeOrderAuditMapper.insert(tradeOrderAuditDO);
 
             if (tradeOrderDO.getAuditStatus() + 1 > tradeOrderDO.getAuditType()) {
-                tradeOrderMapper.update(Wrappers.<TradeOrderDO>lambdaUpdate()
-                        .set(TradeOrderDO::getOrderStatus, TradeOrderStatusEnum.UNPAID.getStatus())
-                        .set(TradeOrderDO::getAuditStatus, tradeOrderDO.getAuditStatus() + 1)
-                        .set(TradeOrderDO::getUpdateTime, LocalDateTime.now())
-                        .set(TradeOrderDO::getDeposiStatus, 1)
-                        .eq(TradeOrderDO::getId, orderId)
-                );
+
 
                 try {
                     Map map = new HashMap();
@@ -424,16 +418,28 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                 } catch (Exception e) {
                     log.error("发送短信异常", e);
                 }
+                AtomicReference<BigDecimal> amount = new AtomicReference<>(BigDecimal.ZERO);
                 try {
                     List<OrderPolicyDO> orderPolicyList = orderPolicyMapper.selectList(OrderPolicyDO::getOrderId, orderId);
+
                     if (!orderPolicyList.isEmpty()) {
                         orderPolicyList.forEach(item -> {
+                            amount.set(amount.get().add(item.getAmount()));
                             policyApi.updatePolicySurplusNum(item.getId(), tradeOrderDO.getVoyageId(), item.getPreUseNum());
                         });
                     }
+
                 }catch (Exception e){
                     log.error("政策执行异常", e);
                 }
+                tradeOrderMapper.update(Wrappers.<TradeOrderDO>lambdaUpdate()
+                        .set(TradeOrderDO::getOrderStatus, TradeOrderStatusEnum.UNPAID.getStatus())
+                        .set(TradeOrderDO::getAuditStatus, tradeOrderDO.getAuditStatus() + 1)
+                        .set(TradeOrderDO::getUpdateTime, LocalDateTime.now())
+                        .set(TradeOrderDO::getDeposiStatus, 1)
+                        .set(TradeOrderDO::getPayAmount, tradeOrderDO.getPayAmount().subtract(amount.get()))
+                        .eq(TradeOrderDO::getId, orderId)
+                );
                 Map<String, Object> extMap = new HashMap<>();
                 extMap.put("result", "审核通过");
                 TradeOrderLogUtils.setOrderInfo(orderId, tradeOrderDO.getOrderStatus(), TradeOrderStatusEnum.UNPAID.getStatus(), extMap);