Browse Source

优化系统信息采集涉及的退款操作

cgp 4 days ago
parent
commit
8f5445651e

+ 14 - 5
fs-service/src/main/java/com/fs/hisStore/service/impl/FsUserInformationCollectionServiceImpl.java

@@ -1,5 +1,6 @@
 package com.fs.hisStore.service.impl;
 
+import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.function.Function;
@@ -811,7 +812,6 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
 
             payments = fsStorePaymentMapper.selectFsStorePaymentByPay(3, fsStoreOrder.getPackageOrderId());
         }
-
         if (payments != null && !payments.isEmpty()) {
             FsStorePayment payment = payments.get(0);
             String json = configService.selectConfigByKey("his.pay");
@@ -912,7 +912,11 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
                 }
             }
         } else {
-            throw new CustomException("未找的支付明细");
+            //处理支付金额是0元的订单
+            if (fsStoreOrder.getPayMoney() == null || fsStoreOrder.getPayMoney().compareTo(BigDecimal.ZERO) != 0) {
+                throw new CustomException("未找到支付明细");
+            }
+
         }
 
 
@@ -989,9 +993,14 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
             schedule.setTerminatedBy(operateId);
             int result = scheduleMapper.updateFsUserInformationCollectionSchedule(schedule);
             if (StringUtils.isNotBlank(param.getOrderCode())){
-                //如果传入订单号不为空则在终止时需要执行退款操作
-                map.setPackageOrderCode(param.getOrderCode());
-                autoRefund(map);
+                //获取订单信息
+                FsStoreOrder fsStoreOrder = storeOrderService.selectFsStoreOrderByOrderCode(param.getOrderCode());
+                if (fsStoreOrder != null&&"0".equals(fsStoreOrder.getRefundStatus())&&( fsStoreOrder.getStatus()==2||fsStoreOrder.getStatus()==3)){
+                    //如果传入订单号不为空则在终止时需要执行退款操作
+                    map.setPackageOrderCode(param.getOrderCode());
+                    autoRefund(map);
+                }
+
             }
             return R.ok();
         }