Selaa lähdekoodia

手动新增退款记录修改

ZHOUTD 1 viikko sitten
vanhempi
commit
d8e97dedc9

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

@@ -113,6 +113,7 @@ import com.yc.ship.module.trade.dal.dataobject.order.*;
 import com.yc.ship.module.trade.dal.dataobject.orderjz.OrderJzDO;
 import com.yc.ship.module.trade.dal.dataobject.orderpolicy.OrderPolicyDO;
 import com.yc.ship.module.trade.dal.dataobject.refund.RefundDO;
+import com.yc.ship.module.trade.dal.dataobject.refund.RefundDetailDO;
 import com.yc.ship.module.trade.dal.dataobject.refund.RefundRecordDO;
 import com.yc.ship.module.trade.dal.dataobject.tradeOrderaudit.TradeOrderAuditDO;
 import com.yc.ship.module.trade.dal.mysql.audituser.AuditUserMapper;
@@ -121,6 +122,7 @@ import com.yc.ship.module.trade.dal.mysql.insurance.InsuranceMapper;
 import com.yc.ship.module.trade.dal.mysql.order.*;
 import com.yc.ship.module.trade.dal.mysql.orderjz.OrderJzMapper;
 import com.yc.ship.module.trade.dal.mysql.orderpolicy.OrderPolicyMapper;
+import com.yc.ship.module.trade.dal.mysql.refund.RefundDetailMapper;
 import com.yc.ship.module.trade.dal.mysql.refund.RefundMapper;
 import com.yc.ship.module.trade.dal.mysql.refund.RefundRecordMapper;
 import com.yc.ship.module.trade.dal.mysql.tradeOrderaudit.TradeOrderAuditMapper;
@@ -329,6 +331,9 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
     @Resource
     private RefundMapper refundMapper;
 
+    @Resource
+    private RefundDetailMapper refundDetailMapper;
+
     @Resource
     private RefundRecordMapper refundRecordMapper;
     
@@ -4718,15 +4723,34 @@ 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())
                 .refundAmount(createReqVO.getRefundAmount()).refundReason("手动新增线下退款记录").build();
         refundMapper.insert(refundDO);
+        List<TradeDetailRespVO> detail = tradeDetailMapper.getOrderIdDetail(createReqVO.getOrderId());
+        if(detail!=null && !detail.isEmpty()){
+            RefundDetailDO refundDetailDO = RefundDetailDO.builder().id(IdWorker.getId())
+                    .refundAmount(createReqVO.getRefundAmount()).refundTime(createReqVO.getRefundTime())
+                    .refundId(id).tradeDetailId(detail.get(0).getId()).refundStatus(RefundStatusEnum.REFUND.getStatus()).build();
+            refundDetailMapper.insert(refundDetailDO);
+        }
+        List<TradeOrderPayDO> tradeOrderPayDOS =
+                tradeOrderPayMapper.selectList(
+                        TradeOrderPayDO::getOrderId, createReqVO.getOrderId(),
+                        TradeOrderPayDO::getPayStatus, "1"
+                );
+        Long orderPayId = null;
+        if(tradeOrderPayDOS!=null && !tradeOrderPayDOS.isEmpty()){
+            TradeOrderPayDO orderPayDO = tradeOrderPayDOS.get(0);
+            orderPayDO.setRefundAmount(createReqVO.getRefundAmount());
+            tradeOrderPayMapper.updateById(orderPayDO);
+            orderPayId = orderPayDO.getId();
+        }
         RefundRecordDO refundRecordDO = RefundRecordDO.builder()
                 .id(IdWorker.getId())
                 .refundId(id)
+                .orderPayId(orderPayId)
                 .refundAmount(createReqVO.getRefundAmount())
                 .refundStatus(createReqVO.getRefundStatus())
                 .refundBackType(1)
@@ -4738,27 +4762,28 @@ 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()));
-        tradeOrderDO.setRealPayAmount(tradeOrderDO.getRealPayAmount().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());
-        List<TradeOrderPayDO> tradeOrderPayDOS = 
-                tradeOrderPayMapper.selectList(
-                        TradeOrderPayDO::getOrderId, createReqVO.getOrderId(),
-                        TradeOrderPayDO::getPayStatus, "1"
-                );
-        if(tradeOrderPayDOS!=null && !tradeOrderPayDOS.isEmpty()){
-            TradeOrderPayDO orderPayDO = tradeOrderPayDOS.get(0);
-            orderPayDO.setPayAmount(tradeOrderDO.getPayAmount());
-            tradeOrderPayMapper.updateById(orderPayDO);
-        }
+//        TradeOrderDO tradeOrderDO = tradeOrderMapper.selectById(createReqVO.getOrderId());
+//        BigDecimal payAmount = tradeOrderDO.getPayAmount();
+//        tradeOrderDO.setPayAmount(tradeOrderDO.getPayAmount().subtract(createReqVO.getRefundAmount()));
+//        tradeOrderDO.setRealPayAmount(tradeOrderDO.getRealPayAmount().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());
+//        List<TradeOrderPayDO> tradeOrderPayDOS = 
+//                tradeOrderPayMapper.selectList(
+//                        TradeOrderPayDO::getOrderId, createReqVO.getOrderId(),
+//                        TradeOrderPayDO::getPayStatus, "1"
+//                );
+//        if(tradeOrderPayDOS!=null && !tradeOrderPayDOS.isEmpty()){
+//            TradeOrderPayDO orderPayDO = tradeOrderPayDOS.get(0);
+//            orderPayDO.setPayAmount(tradeOrderDO.getPayAmount());
+//            tradeOrderPayMapper.updateById(orderPayDO);
+//        }
+
         return "";
     }
 }