Browse Source

合伙人升级bug修改

xuqiang 1 year ago
parent
commit
55949ef6de
1 changed files with 31 additions and 32 deletions
  1. 31 32
      src/main/java/com/ydtech/modules/partner/CalculateCommissionUtils.java

+ 31 - 32
src/main/java/com/ydtech/modules/partner/CalculateCommissionUtils.java

@@ -12,7 +12,6 @@ import com.ydtech.modules.partner.model.param.CommissionValidityPeriod;
 import com.ydtech.modules.partner.model.vo.CommissionRulesVo;
 import com.ydtech.modules.partner.model.vo.PartnerRulesRatio;
 import com.ydtech.modules.partner.service.PartnerCommissionService;
-import com.ydtech.modules.partner.service.PartnerUserService;
 import com.ydtech.utils.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -183,47 +182,48 @@ public class CalculateCommissionUtils {
         List<PartnerRulesRatio> sortedList = rulesRatioList.stream()
                 .sorted(Comparator.comparing(PartnerRulesRatio::getKickback).reversed())
                 .collect(Collectors.toList());
-        return obtainReason(sortedList, values.number, values.sumPremium);
+        for (PartnerRulesRatio ratio : sortedList) {
+            return handleRatioCondition(ratio, values.number, values.sumPremium);
+        }
+        return BigDecimal.ZERO;
     }
 
 
-
-    public static BigDecimal obtainReason(List<PartnerRulesRatio> sortedList,BigDecimal numberBD, BigDecimal sumPremium){
-        for (PartnerRulesRatio ratio : sortedList) {
-            int allSatisfied = ratio.getAllSatisfied();
-            List<PartnerRatio> ratioList = ratio.getPartnerRatioList();
-            if (CollectionUtil.isEmpty(ratioList)) continue;
-            BigDecimal min = ratioList.get(0).getMin();
-            BigDecimal min1 = ratioList.get(1).getMin();
-            boolean ry = ratioList.get(0).isRy();
-            boolean bf = ratioList.get(1).isBf();
-            if (ry && bf) {
-                if (allSatisfied == 1) {
-                    if (numberBD.compareTo(min) >= 0 && sumPremium.compareTo(min1) >= 0) {
-                        return ratio.getKickback();
-                    }
-                } else {
-                    if (numberBD.compareTo(min) >= 0 || sumPremium.compareTo(min1) >= 0) {
-                        return ratio.getKickback();
-                    }
+    private static BigDecimal handleRatioCondition(PartnerRulesRatio ratio, BigDecimal numberBD, BigDecimal sumPremium) {
+        List<PartnerRatio> ratioList = ratio.getPartnerRatioList();
+        if (CollectionUtil.isEmpty(ratioList)) return BigDecimal.ZERO;
+        int allSatisfied = ratio.getAllSatisfied();
+        BigDecimal min = ratioList.get(0).getMin();
+        BigDecimal min1 = ratioList.get(1).getMin();
+        boolean ry = ratioList.get(0).isRy();
+        boolean bf = ratioList.get(1).isBf();
+        if (ry && bf) {
+            if (allSatisfied == 1) {
+                if (numberBD.compareTo(min) >= 0 && sumPremium.compareTo(min1) >= 0) {
+                    return ratio.getKickback();
                 }
-            }else if (ry && !bf){
-                if (allSatisfied != 1) {
-                    if (numberBD.compareTo(min) >= 0) {
-                        return ratio.getKickback();
-                    }
+            } else {
+                if (numberBD.compareTo(min) >= 0 || sumPremium.compareTo(min1) >= 0) {
+                    return ratio.getKickback();
                 }
-            }else if (!ry && bf){
-                if (allSatisfied != 1) {
-                    if (sumPremium.compareTo(min1) >= 0) {
-                        return ratio.getKickback();
-                    }
+            }
+        }else if (ry && !bf){
+            if (allSatisfied != 1) {
+                if (numberBD.compareTo(min) >= 0) {
+                    return ratio.getKickback();
+                }
+            }
+        }else if (!ry && bf){
+            if (allSatisfied != 1) {
+                if (sumPremium.compareTo(min1) >= 0) {
+                    return ratio.getKickback();
                 }
             }
         }
         return BigDecimal.ZERO;
     }
 
+
     public static String obtainReason(String grade, List<PartnerRulesRatio> rulesRatioList, String userId, PartnerCommissionRules rules,String levelUserId,String type) {
         List<PartnerRulesRatio> sortedList = rulesRatioList.stream()
                 .sorted(Comparator.comparing(PartnerRulesRatio::getKickback).reversed())
@@ -345,7 +345,6 @@ public class CalculateCommissionUtils {
                 .atZone(ZoneId.systemDefault())
                 .toLocalDateTime();
         LocalDateTime newLocalDate = localDate.plusDays(days);
-        // 设置时分秒为0
         LocalDateTime newDateTime = newLocalDate.withHour(0)
                 .withMinute(0)
                 .withSecond(0)