|
|
@@ -9,6 +9,7 @@ import java.time.ZoneId;
|
|
|
import java.time.temporal.ChronoUnit;
|
|
|
import java.util.*;
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
+import cn.hutool.extra.spring.SpringUtil;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
@@ -35,6 +36,8 @@ import com.ydtech.modules.partner.service.PartnerCommissionService;
|
|
|
import com.ydtech.modules.partner.service.PartnerLiftingRecordService;
|
|
|
import com.ydtech.modules.partner.service.PartnerRuleService;
|
|
|
import com.ydtech.modules.partner.service.PartnerUserService;
|
|
|
+import com.ydtech.modules.partner.utils.ConditionUtils;
|
|
|
+import com.ydtech.modules.partner.utils.ExpiredCommissionUtils;
|
|
|
import org.apache.commons.lang3.ObjectUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
@@ -74,6 +77,9 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
@Autowired
|
|
|
private PartnerCommissionService commissionService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private PartnerRuleService partnerRuleService;
|
|
|
+
|
|
|
@Override
|
|
|
public int insert(PartnerUser partnerUser) {
|
|
|
return baseMapper.insert(partnerUser);
|
|
|
@@ -182,7 +188,7 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
lambdaQueryWrapper.eq(PartnerUser::getGrade,userGradeParam.getGrade());
|
|
|
PartnerUser partnerUser = baseMapper.selectOne(lambdaQueryWrapper);
|
|
|
// 条件
|
|
|
- PartnerRuleEntity ruleEntity = ruleService.selectByGrade(userGradeParam.getGrade());
|
|
|
+ //PartnerRuleEntity ruleEntity = ruleService.selectByGrade(userGradeParam.getGrade());
|
|
|
PartnerLiftingRecord record = new PartnerLiftingRecord();
|
|
|
record.setName(partnerUser.getName());
|
|
|
record.setMobile(partnerUser.getMobile());
|
|
|
@@ -207,8 +213,12 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
- record.setCycle(getMessage(ruleEntity));
|
|
|
- record.setUpgradeStrategy(ruleService.verifyUpgradeConditionsMessage(userGradeParam.getId(),userGradeParam.getGrade()));
|
|
|
+// record.setCycle(getMessage(ruleEntity));
|
|
|
+// record.setUpgradeStrategy(ruleService.verifyUpgradeConditionsMessage(userGradeParam.getId(),userGradeParam.getGrade()));
|
|
|
+
|
|
|
+ record.setConditions(ConditionUtils.upgradeConditions(record.getOriginalLevel()));
|
|
|
+ record.setRules(ConditionUtils.assessmentRules(record.getOriginalLevel()));
|
|
|
+
|
|
|
return liftingRecordService.saveLiftingRecord(record);
|
|
|
}
|
|
|
|
|
|
@@ -281,6 +291,9 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
}else {
|
|
|
if (partnerUser.isIdentityStatus()){
|
|
|
overviewVo.setParentStatus("2");
|
|
|
+ List<PartnerRuleEntity> partnerRuleEntities = partnerRuleService.queryAll();
|
|
|
+ ExpiredCommissionUtils commissionUtils = SpringUtil.getBean(ExpiredCommissionUtils.class);
|
|
|
+ getRule(partnerRuleEntities, commissionUtils, overviewVo, partnerUser);
|
|
|
}else {
|
|
|
overviewVo.setParentStatus("1");
|
|
|
}
|
|
|
@@ -377,7 +390,7 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
BigDecimal p = ruleService.getInviteData(userId, grade, period);
|
|
|
BigDecimal ownBf = baseMapper.selectOwnSumPremium(userId, period);
|
|
|
List<PartnerAttribute> requirement = partnerRuleEntity.getRequirement();
|
|
|
- return getAttribute(partnerRuleEntity, bf, p, ownBf, requirement);
|
|
|
+ return getAttribute(partnerRuleEntity, new BigDecimal(362), new BigDecimal(1), new BigDecimal(159), requirement);
|
|
|
}
|
|
|
|
|
|
private HttpResult getAttribute(PartnerRuleEntity partnerRuleEntity, BigDecimal bf, BigDecimal p, BigDecimal ownBf, List<PartnerAttribute> requirement) {
|
|
|
@@ -390,8 +403,12 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
@Override
|
|
|
public HttpResult degradedTask(String grade, String userId) {
|
|
|
PartnerRuleEntity partnerRuleEntity = ruleService.selectByGrade(grade);
|
|
|
+ if (partnerRuleEntity == null){
|
|
|
+ return HttpResult.error("等级不存在");
|
|
|
+ }
|
|
|
partnerRuleEntity.setRequirement(null);
|
|
|
CommissionValidityPeriod period = baseMapper.selectAssessmentCycleTime(userId, Integer.valueOf(grade));
|
|
|
+ period.setEndDate(SpringUtil.getBean(ExpiredCommissionUtils.class).generateDowngradeTime(grade,period.getStartDate()));
|
|
|
partnerRuleEntity.setAssessmentEndDate(period.getEndDate().split(" ")[0]);
|
|
|
BigDecimal bf = baseMapper.selectTotalSumPremium(userId, grade, period);
|
|
|
BigDecimal p = ruleService.getInviteData(userId, grade, period);
|
|
|
@@ -401,38 +418,52 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
return getAttribute(partnerRuleEntity, bf, p, ownBf, strategyArray);
|
|
|
}
|
|
|
|
|
|
- private List<MyUserLevel> getUserLevels(String userId, List<PartnerRule> partnerRules, Map<Integer, PartnerUser> userMap) {
|
|
|
+ private List<MyUserLevel> getUserLevels(String userId, List<PartnerRule> partnerRules, Map<Integer, PartnerUser> userMap) {
|
|
|
List<MyUserLevel> list = new ArrayList<>();
|
|
|
+ if (partnerRules == null || userId == null || userMap == null) {
|
|
|
+ return list; // 输入参数校验
|
|
|
+ }
|
|
|
+
|
|
|
for (PartnerRule rule : partnerRules) {
|
|
|
- PartnerUser partnerUser = userMap.get(rule.getGrade());
|
|
|
+ Integer grade = rule.getGrade();
|
|
|
+ PartnerUser partnerUser = userMap.get(grade);
|
|
|
MyUserLevel level = new MyUserLevel();
|
|
|
- level.setRatio(getProportion(rule.getGrade()));
|
|
|
- level.setGrade(rule.getGrade());
|
|
|
+ level.setRatio(getProportion(grade));
|
|
|
+ level.setGrade(grade);
|
|
|
level.setGradeName(rule.getGradeName());
|
|
|
- if (Objects.isNull(partnerUser)){
|
|
|
+
|
|
|
+ if (partnerUser == null) {
|
|
|
level.setLockingState("0");
|
|
|
level.setProgressBar(0);
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
level.setUserId(userId);
|
|
|
level.setUserName(partnerUser.getName());
|
|
|
- if (partnerUser.isIdentityStatus()){
|
|
|
+
|
|
|
+ if (partnerUser.isIdentityStatus()) {
|
|
|
level.setLockingState("2");
|
|
|
level.setLockCommission(accountMapper.selectCashFee(partnerUser.getUserId(), partnerUser.getGrade()));
|
|
|
- level.setZeroDays(ChronoUnit.DAYS.between(LocalDate.now(), partnerUser.getUpgradeCycleEndTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate()));
|
|
|
- }else {
|
|
|
+ if (partnerUser.getUpgradeCycleStartTime() != null) {
|
|
|
+ LocalDate upgradeCycleStartDate = partnerUser.getUpgradeCycleStartTime().toInstant()
|
|
|
+ .atZone(ZoneId.systemDefault()).toLocalDate();
|
|
|
+ level.setZeroDays(ChronoUnit.DAYS.between(LocalDate.now(), upgradeCycleStartDate));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
level.setLockingState("1");
|
|
|
}
|
|
|
+
|
|
|
level.setProgressBar(2);
|
|
|
- }
|
|
|
- if (rule.getGrade() != 1){
|
|
|
- boolean verified = ruleService.verifyUpgradeConditions(userId, String.valueOf(rule.getGrade()));
|
|
|
- if (verified){
|
|
|
- level.setProgressBar(1);
|
|
|
+
|
|
|
+ if (grade != null && grade != 1) {
|
|
|
+ boolean verified = partnerUser.isIdentityStatus()
|
|
|
+ ? ruleService.verifyDowngradeUpgradeConditions(userId, String.valueOf(grade))
|
|
|
+ : ruleService.verifyUpgradeConditions(userId, String.valueOf(grade));
|
|
|
+ if (verified) {
|
|
|
+ level.setProgressBar(1);
|
|
|
+ }
|
|
|
+ level.setUpgrade(verified);
|
|
|
}
|
|
|
- level.setUpgrade(verified);
|
|
|
}
|
|
|
list.add(level);
|
|
|
-
|
|
|
}
|
|
|
return list;
|
|
|
}
|
|
|
@@ -573,6 +604,8 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
.in(PartnerUser::getGrade, grades));
|
|
|
Map<Integer, PartnerUser> userMap = partnerUsers.stream()
|
|
|
.collect(Collectors.toMap(PartnerUser::getGrade, Function.identity()));
|
|
|
+ List<PartnerRuleEntity> partnerRuleEntities = partnerRuleService.queryAll();
|
|
|
+ ExpiredCommissionUtils commissionUtils = SpringUtil.getBean(ExpiredCommissionUtils.class);
|
|
|
|
|
|
for (TeamOverviewVo overviewVo : teamOverviewVos) {
|
|
|
JSONObject map = new JSONObject();
|
|
|
@@ -599,6 +632,9 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
map.put("data", getPage(page));
|
|
|
map.put("total", hashMap);
|
|
|
map.put("parentStatus", partnerUser.isIdentityStatus() ? "2" : "1");
|
|
|
+ getRule(partnerRuleEntities, commissionUtils, overviewVo, partnerUser);
|
|
|
+
|
|
|
+ map.put("upgradeStatus", new JSONObject());
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
// 记录异常日志并跳过当前项
|
|
|
@@ -611,6 +647,16 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
return HttpResult.ok(list);
|
|
|
}
|
|
|
|
|
|
+ private void getRule(List<PartnerRuleEntity> partnerRuleEntities, ExpiredCommissionUtils commissionUtils, TeamOverviewVo overviewVo, PartnerUser partnerUser) {
|
|
|
+ PartnerRuleEntity ruleEntity = commissionUtils.getRule(String.valueOf(partnerUser.getGrade()), partnerRuleEntities);
|
|
|
+ boolean checked = commissionUtils.checkUpgradeConditions(partnerUser, ruleEntity.getAppraise(), ruleEntity.getStrategyArray());
|
|
|
+ overviewVo.setUpgradeStatus(checked ? 1 : 0);
|
|
|
+ Long count = liftingRecordService.selectDowngradeRecord(partnerUser.getUserId(), partnerUser.getGrade());
|
|
|
+ if (count > 0){
|
|
|
+ overviewVo.setUpgradeStatus(2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private void setDefaultValues(HashMap<String, Object> hashMap) {
|
|
|
hashMap.put("commission", BigDecimal.ZERO);
|
|
|
hashMap.put("numberOrders", BigDecimal.ZERO);
|