|
|
@@ -52,10 +52,15 @@ public class CalculateCommissionUtils {
|
|
|
public static BigDecimal calculateCommission(String grade, String userId) {
|
|
|
CommissionRulesVo rulesVo = commissionService.queryAll();
|
|
|
if (rulesVo == null) return BigDecimal.ZERO;
|
|
|
- BigDecimal gl = ladderCommission(StringUtils.equals("3", grade) ? "2" : grade,
|
|
|
- rulesVo.getAdministrator().getRulesRatioList(), userId, rulesVo.getAdministrator());
|
|
|
- BigDecimal hh = ladderCommission(grade, rulesVo.getPartner().getRulesRatioList(), userId, rulesVo.getPartner());
|
|
|
- // BigDecimal hh = ladderCommission(grade, rulesVo.getPartner().getRulesRatioList(), userId, rulesVo.getPartner());
|
|
|
+ BigDecimal gl = BigDecimal.ZERO;
|
|
|
+ if (StringUtils.equals("2", grade) || StringUtils.equals("3", grade)){
|
|
|
+ gl = ladderCommission(StringUtils.equals("3", grade) ? "2" : grade,
|
|
|
+ rulesVo.getAdministrator().getRulesRatioList(), userId, rulesVo.getAdministrator());
|
|
|
+ }
|
|
|
+ BigDecimal hh = BigDecimal.ZERO;
|
|
|
+ if (StringUtils.equals("3", grade) || StringUtils.equals("4", grade)){
|
|
|
+ hh = ladderCommission(grade, rulesVo.getPartner().getRulesRatioList(), userId, rulesVo.getPartner());
|
|
|
+ }
|
|
|
if (StringUtils.equals("1", grade)) {
|
|
|
return new BigDecimal(rulesVo.getOriginator());
|
|
|
}
|
|
|
@@ -72,9 +77,9 @@ public class CalculateCommissionUtils {
|
|
|
if (isZero(gl) && isZero(hh)) {
|
|
|
return new BigDecimal(partner.getDefaultRatio())
|
|
|
.add(subtractRatios(rulesVo.getAdministrator().getSharedRatio(), rulesVo.getAdministrator().getDefaultRatio()));
|
|
|
- } else if (isZero(hh)) {
|
|
|
+ } else if (isZero(hh) && !isZero(gl)) {
|
|
|
return gl.add(new BigDecimal(partner.getDefaultRatio()));
|
|
|
- } else if (isZero(gl)) {
|
|
|
+ } else if (isZero(gl) && !isZero(hh)) {
|
|
|
return new BigDecimal(partner.getSharedRatio()).subtract(hh)
|
|
|
.add(subtractRatios(rulesVo.getAdministrator().getSharedRatio(), rulesVo.getAdministrator().getDefaultRatio()));
|
|
|
}else{
|
|
|
@@ -174,6 +179,15 @@ public class CalculateCommissionUtils {
|
|
|
period.setStartDate(dateFormat.format(assessmentTime));
|
|
|
period.setEndDate(dateFormat.format(addDays(assessmentTime, rules.getFixedDays())));
|
|
|
} else if (StringUtils.equals("3", rules.getValidityPeriod())) {
|
|
|
+
|
|
|
+ Date fixedCycle = partnerUserMapper.selectFixedCycleTime(userId, grade);
|
|
|
+ if (fixedCycle == null) {
|
|
|
+ partnerUserMapper.updateFixedCycleTime(userId);
|
|
|
+ fixedCycle = partnerUserMapper.selectFixedCycleTime(userId, grade);
|
|
|
+ if (fixedCycle == null){
|
|
|
+ return period;
|
|
|
+ }
|
|
|
+ }
|
|
|
period.setStartDate(rules.getStartDate());
|
|
|
period.setEndDate(rules.getEndDate());
|
|
|
}
|