|
|
@@ -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)
|