|
@@ -59,11 +59,10 @@ public class CalculateCommissionUtils {
|
|
|
|
|
|
|
|
private static CommissionValues calculateCommonValues(String grade, String userId, PartnerCommissionRules rules,String levelUserId,String type) {
|
|
private static CommissionValues calculateCommonValues(String grade, String userId, PartnerCommissionRules rules,String levelUserId,String type) {
|
|
|
CommissionValidityPeriod period = getCommissionValidityPeriod(rules, userId, grade);
|
|
CommissionValidityPeriod period = getCommissionValidityPeriod(rules, userId, grade);
|
|
|
- Set<String> userIdList = new HashSet<>(0);
|
|
|
|
|
|
|
+ Set<String> userIdList = Collections.emptySet();;
|
|
|
if (StringUtils.equals("gzs", type)){
|
|
if (StringUtils.equals("gzs", type)){
|
|
|
userIdList = partnerUserMapper.querySubordinateUserId(levelUserId);
|
|
userIdList = partnerUserMapper.querySubordinateUserId(levelUserId);
|
|
|
- }
|
|
|
|
|
- if (StringUtils.equals("hh", type)){
|
|
|
|
|
|
|
+ }else if (StringUtils.equals("hh", type)){
|
|
|
userIdList = partnerUserMapper.querySubordinate(levelUserId);
|
|
userIdList = partnerUserMapper.querySubordinate(levelUserId);
|
|
|
}
|
|
}
|
|
|
BigDecimal sumPremium = BigDecimal.ZERO;
|
|
BigDecimal sumPremium = BigDecimal.ZERO;
|
|
@@ -80,11 +79,13 @@ public class CalculateCommissionUtils {
|
|
|
|
|
|
|
|
if (StringUtils.equals("gzs", type)){
|
|
if (StringUtils.equals("gzs", type)){
|
|
|
number = partnerUserMapper.selectNumber(levelUserId, "5", period);
|
|
number = partnerUserMapper.selectNumber(levelUserId, "5", period);
|
|
|
- }
|
|
|
|
|
- if (StringUtils.equals("hh", type)){
|
|
|
|
|
|
|
+ }else if (StringUtils.equals("hh", type)){
|
|
|
number = partnerUserMapper.selectNumber(levelUserId, "4", period);
|
|
number = partnerUserMapper.selectNumber(levelUserId, "4", period);
|
|
|
}
|
|
}
|
|
|
- log.info("用户id{}++{}级用户++出单人的上级用户{}++统计的保单金额{}++统计的邀请人数{}", userId, grade, levelUserId, sumPremium,number);
|
|
|
|
|
|
|
+ if (log.isInfoEnabled()) {
|
|
|
|
|
+ log.info("用户id{}++{}级用户++出单人的上级用户{}++统计的保单金额{}++统计的邀请人数{}",
|
|
|
|
|
+ userId, grade, levelUserId, sumPremium, number);
|
|
|
|
|
+ }
|
|
|
return new CommissionValues(sumPremium, new BigDecimal(number));
|
|
return new CommissionValues(sumPremium, new BigDecimal(number));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -106,7 +107,7 @@ public class CalculateCommissionUtils {
|
|
|
|
|
|
|
|
|
|
|
|
|
public static String querySuperiorAndSubordinate(String issuerId,String grade){
|
|
public static String querySuperiorAndSubordinate(String issuerId,String grade){
|
|
|
- String levelUserId = "";
|
|
|
|
|
|
|
+ String levelUserId;
|
|
|
QueryWrapper<PartnerUser> queryWrapper = new QueryWrapper<>();
|
|
QueryWrapper<PartnerUser> queryWrapper = new QueryWrapper<>();
|
|
|
queryWrapper.eq("user_id", issuerId);
|
|
queryWrapper.eq("user_id", issuerId);
|
|
|
PartnerUser issuerUser = partnerUserMapper.selectOne(queryWrapper);
|
|
PartnerUser issuerUser = partnerUserMapper.selectOne(queryWrapper);
|
|
@@ -292,35 +293,42 @@ public class CalculateCommissionUtils {
|
|
|
|
|
|
|
|
public static CommissionValidityPeriod getCommissionValidityPeriod(PartnerCommissionRules rules, String userId, String grade) {
|
|
public static CommissionValidityPeriod getCommissionValidityPeriod(PartnerCommissionRules rules, String userId, String grade) {
|
|
|
CommissionValidityPeriod period = new CommissionValidityPeriod();
|
|
CommissionValidityPeriod period = new CommissionValidityPeriod();
|
|
|
- SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
- if (StringUtils.equals("1", rules.getValidityPeriod())) {
|
|
|
|
|
|
|
+ if (rules == null || StringUtils.isBlank(rules.getValidityPeriod())) {
|
|
|
return period;
|
|
return period;
|
|
|
- } else if (StringUtils.equals("2", rules.getValidityPeriod())) {
|
|
|
|
|
- Date assessmentTime = partnerUserMapper.selectAssessmentTime(userId, grade);
|
|
|
|
|
- if (assessmentTime == null) {
|
|
|
|
|
- partnerUserMapper.updateAssessmentTime(userId);
|
|
|
|
|
- assessmentTime = partnerUserMapper.selectAssessmentTime(userId, grade);
|
|
|
|
|
- if (Objects.isNull(assessmentTime)){
|
|
|
|
|
- return period;
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
+ try {
|
|
|
|
|
+ if (StringUtils.equals("1", rules.getValidityPeriod())) {
|
|
|
|
|
+ return period;
|
|
|
|
|
+ } else if (StringUtils.equals("2", rules.getValidityPeriod())) {
|
|
|
|
|
+ Date assessmentTime = partnerUserMapper.selectAssessmentTime(userId, grade);
|
|
|
|
|
+ if (assessmentTime == null) {
|
|
|
|
|
+ partnerUserMapper.updateAssessmentTime(userId);
|
|
|
|
|
+ assessmentTime = partnerUserMapper.selectAssessmentTime(userId, grade);
|
|
|
|
|
+ if (Objects.isNull(assessmentTime)){
|
|
|
|
|
+ return period;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
- if (!isWithinDays(assessmentTime, rules.getFixedDays())) {
|
|
|
|
|
- updateAssessmentTimeRecursively(assessmentTime,rules.getFixedDays(),userId );
|
|
|
|
|
- assessmentTime = partnerUserMapper.selectAssessmentTime(userId, grade);
|
|
|
|
|
- }
|
|
|
|
|
- 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;
|
|
|
|
|
|
|
+ if (!isWithinDays(assessmentTime, rules.getFixedDays())) {
|
|
|
|
|
+ updateAssessmentTimeRecursively(assessmentTime,rules.getFixedDays(),userId );
|
|
|
|
|
+ assessmentTime = partnerUserMapper.selectAssessmentTime(userId, grade);
|
|
|
|
|
+ }
|
|
|
|
|
+ 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());
|
|
|
}
|
|
}
|
|
|
- period.setStartDate(rules.getStartDate());
|
|
|
|
|
- period.setEndDate(rules.getEndDate());
|
|
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("获取佣金有效期异常,userId:{}, grade:{}", userId, grade, e);
|
|
|
}
|
|
}
|
|
|
return period;
|
|
return period;
|
|
|
}
|
|
}
|