Browse Source

分佣方式12.31号后按延迟分账模式

周箭河 4 năm trước cách đây
mục cha
commit
53d349076a

+ 3 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PayServiceImpl.java

@@ -351,8 +351,9 @@ public class PayServiceImpl implements PayService {
             if (i == routeScaleDtos.size() && !feeFlag) {
                 routeScaleDto.setFeeFlag("Y");
             }
-            //ADAPAY 采用延迟分账模式,手续费各自承担
-            if (routeScaleDto.getPayType().equals(PaymentChannelEnum.ADAPAY)) {
+            //ADAPAY 采用延迟分账模式,手续费各自承担(12.31号执行)
+            if (routeScaleDto.getPayType().equals(PaymentChannelEnum.ADAPAY) &&
+                    new Date().after(Objects.requireNonNull(DateUtil.stringToDate("2020-12-31 23:59:59", "yyyy-MM-dd HH:mm:ss")))) {
                 routeScaleDto.setFeeFlag("Y");
             }
 

+ 33 - 19
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java

@@ -29,6 +29,7 @@ import com.ym.mec.util.collection.MapUtil;
 
 import com.ym.mec.util.date.DateUtil;
 import org.apache.commons.lang3.StringUtils;
+import org.snaker.engine.entity.Order;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
@@ -227,6 +228,11 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
             //增加用户余额
             sysUserCashAccountService.updateBalance(order.getUserId(), order.getActualAmount(),
                     PlatformCashAccountDetailTypeEnum.REFUNDS, memo + ",订单号:" + order.getOrderNo());
+
+            if (order.getPaymentChannel().equals("ADAPAY")
+                    && !rpMap.containsKey("simulation")) {
+                confirmOrder(order);
+            }
             return;
         }
 
@@ -247,30 +253,38 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
 
         if (status.equals(DealStatusEnum.SUCCESS) && order.getPaymentChannel().equals("ADAPAY")
                 && !rpMap.containsKey("simulation")) {
-            List<StudentPaymentRouteOrder> routeOrders = studentPaymentRouteOrderDao.getRouteOrders(order.getOrderNo());
-            for (StudentPaymentRouteOrder routeOrder : routeOrders) {
-                Map<String, Object> divMember = new HashMap<>();
-                divMember.put("member_id", routeOrder.getMerNo());//分佣账户
-                divMember.put("amount", routeOrder.getRouteAmount().setScale(2, BigDecimal.ROUND_HALF_UP));//分佣金额
-                divMember.put("fee_flag", "Y");
-                if (routeOrder.getMerNo().equals(ConfigInit.merNo)) {
-                    divMember.put("member_id", 0);
-                }
-                List<Map<String, Object>> divMembers = new ArrayList<>();
-                divMembers.add(divMember);
-
-                Map<String, Object> confirm = new HashMap<>();
-                confirm.put("payment_id", order.getTransNo());
-                confirm.put("order_no", idGeneratorService.generatorId("payment"));
-                confirm.put("confirm_amt", routeOrder.getRouteAmount());
-                confirm.put("div_members", divMembers);
-                Payment.createConfirm(confirm);
-            }
+            confirmOrder(order);
         }
 
         callOrderCallBack(order);
     }
 
+    private Boolean confirmOrder(StudentPaymentOrder order) throws Exception {
+        if (order.getCreateTime().before(Objects.requireNonNull(DateUtil.stringToDate("2020-12-31 23:59:59", "yyyy-MM-dd HH:mm:ss")))) {
+            return true;
+        }
+        List<StudentPaymentRouteOrder> routeOrders = studentPaymentRouteOrderDao.getRouteOrders(order.getOrderNo());
+        for (StudentPaymentRouteOrder routeOrder : routeOrders) {
+            Map<String, Object> divMember = new HashMap<>();
+            divMember.put("member_id", routeOrder.getMerNo());//分佣账户
+            divMember.put("amount", routeOrder.getRouteAmount().setScale(2, BigDecimal.ROUND_HALF_UP));//分佣金额
+            divMember.put("fee_flag", "Y");
+            if (routeOrder.getMerNo().equals(ConfigInit.merNo)) {
+                divMember.put("member_id", 0);
+            }
+            List<Map<String, Object>> divMembers = new ArrayList<>();
+            divMembers.add(divMember);
+
+            Map<String, Object> confirm = new HashMap<>();
+            confirm.put("payment_id", order.getTransNo());
+            confirm.put("order_no", idGeneratorService.generatorId("payment"));
+            confirm.put("confirm_amt", routeOrder.getRouteAmount());
+            confirm.put("div_members", divMembers);
+            Payment.createConfirm(confirm);
+        }
+        return true;
+    }
+
     //Date date = new Date();
     //        BigDecimal balance = BigDecimal.ZERO;
     //        MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());