Преглед изворни кода

手动新增退款记录时,减去对应trade_order的支付金额

ZHOUTD пре 4 дана
родитељ
комит
6d59c287d3

+ 1 - 0
ship-module-trade/ship-module-trade-api/src/main/java/com/yc/ship/module/trade/enums/TradeOrderOperateTypeEnum.java

@@ -50,6 +50,7 @@ public enum TradeOrderOperateTypeEnum {
     ORDER_REMARK_UPDATE(35, "修改订单备注,修改记录:{content},结果:{result}"),
     ORDER_CANCEL_REFUND(36, "取消订单退款,修改记录:{content},结果:{result}"),
     UPDATE_ORDER_STATUS(37, "修改内容:{result}"),
+    HAND_ORDER_REFUND(38, "手动新增线下退款记录,支付金额:{oldPayAmount} -> {payAmount},退款金额:{refundAmount}"),
     ;
 
     /**

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

@@ -2,6 +2,7 @@ package com.yc.ship.module.trade.service.otc.impl;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.map.MapUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.excel.EasyExcel;
@@ -4504,6 +4505,8 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
+    @TradeOrderLog(operateType = TradeOrderOperateTypeEnum.HAND_ORDER_REFUND)
     public String createHandRefundRecord(TradeRefundHandCreateReqVO createReqVO) {
         long id = IdWorker.getId();
         RefundDO refundDO = RefundDO.builder().id(id).orderId(createReqVO.getOrderId())
@@ -4523,6 +4526,16 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                 .refundNo(createReqVO.getRefundNo())
                 .refundTime(createReqVO.getRefundTime()).build();
         refundRecordMapper.insert(refundRecordDO);
+        TradeOrderDO tradeOrderDO = tradeOrderMapper.selectById(createReqVO.getOrderId());
+        BigDecimal payAmount = tradeOrderDO.getPayAmount();
+        tradeOrderDO.setPayAmount(tradeOrderDO.getPayAmount().subtract(createReqVO.getRefundAmount()));
+        tradeOrderMapper.updateById(tradeOrderDO);
+        TradeOrderLogUtils.setOrderInfo(tradeOrderDO.getId(), tradeOrderDO.getOrderStatus(), tradeOrderDO.getOrderStatus(),
+                MapUtil.<String, Object>builder()
+                        .put("oldPayAmount", payAmount)
+                        .put("payAmount", tradeOrderDO.getPayAmount())
+                        .put("refundAmount", createReqVO.getRefundAmount())
+                        .build());
         return "";
     }
 }