|
|
@@ -1,6 +1,7 @@
|
|
|
package com.ydtech.modules.partner.service.Impl;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.time.Instant;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
@@ -421,6 +422,7 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
return "100";
|
|
|
}
|
|
|
HttpResult<PartnerRuleEntity> httpResult = queryDowngradeTask(grade, userId);
|
|
|
+
|
|
|
PartnerRuleEntity data = httpResult.getData();
|
|
|
|
|
|
List<PartnerAttribute> strategyArray = data.getRequirement();
|
|
|
@@ -428,6 +430,14 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
PartnerAttribute yq = strategyArray.get(0);
|
|
|
|
|
|
BigDecimal min = new BigDecimal(yq.getMin());
|
|
|
+ BigDecimal multiply = getMultiply(yq, min, strategyArray);
|
|
|
+
|
|
|
+ BigDecimal value = multiply.setScale(2, RoundingMode.HALF_UP);
|
|
|
+
|
|
|
+ return String.valueOf(value.compareTo(BigDecimal.valueOf(100)) >= 0 ? "100" : value);
|
|
|
+ }
|
|
|
+
|
|
|
+ private static BigDecimal getMultiply(PartnerAttribute yq, BigDecimal min, List<PartnerAttribute> strategyArray) {
|
|
|
BigDecimal achieve = new BigDecimal(yq.getAchieve());
|
|
|
|
|
|
BigDecimal yqPercent = achieve.divide(min, 2, RoundingMode.HALF_UP).multiply(new BigDecimal("0.33"));
|
|
|
@@ -443,14 +453,10 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
BigDecimal grPercent = grAchieve.divide(grMin, 2, RoundingMode.HALF_UP).multiply(new BigDecimal("0.33"));
|
|
|
|
|
|
BigDecimal multiply = yqPercent.add(bfPercent).add(grPercent).multiply(new BigDecimal("100"));
|
|
|
-
|
|
|
- BigDecimal value = multiply.setScale(2, RoundingMode.HALF_UP);
|
|
|
-
|
|
|
- return String.valueOf(value.compareTo(BigDecimal.valueOf(100)) >= 0 ? "100" : value);
|
|
|
+ return multiply;
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
@Override
|
|
|
public HttpResult<PartnerRuleEntity> queryDowngradeTask(String grade, String userId) {
|
|
|
if (StringUtils.equals("1", grade)){
|
|
|
@@ -542,7 +548,7 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
account = new PartnerPartnerAccount();
|
|
|
}else {
|
|
|
account.setCashFee(account.getExtractFee().subtract(account.getHistoryFee()).subtract(account.getExpired()));
|
|
|
- if (partnerUser.isIdentityStatus()){
|
|
|
+ if (null != partnerUser && partnerUser.isIdentityStatus()){
|
|
|
BigDecimal lockCommission = liftingRecordService.queryLockCommission(params.getUserId(), params.getGrade());
|
|
|
account.setFreeze(lockCommission);
|
|
|
if (null != lockCommission) {
|
|
|
@@ -596,7 +602,6 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
handleUnregisteredUser(userId, userMap, grade, level);
|
|
|
} else {
|
|
|
handleRegisteredUser(userId, partnerUser, level);
|
|
|
- level.setProportional(proportional(String.valueOf(partnerUser.getGrade()),partnerUser.getUserId()));
|
|
|
}
|
|
|
|
|
|
list.add(level);
|
|
|
@@ -638,16 +643,21 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
private void handleRegisteredUser(String userId, PartnerUser partnerUser, MyUserLevel level) {
|
|
|
level.setUserId(userId);
|
|
|
level.setUserName(partnerUser.getName());
|
|
|
-
|
|
|
if (partnerUser.isIdentityStatus()) {
|
|
|
handleActiveUser(partnerUser, level);
|
|
|
} else {
|
|
|
level.setLockingState("1");
|
|
|
+ if (null != partnerUser.getUpgradeTime()){
|
|
|
+ PartnerRuleEntity ruleEntity = ruleService.selectByGrade(String.valueOf(partnerUser.getGrade()));
|
|
|
+ level.setExpiryDate(new SimpleDateFormat("yyyy-MM-dd").format(PartnerDateUtils.addDays(partnerUser.getUpgradeTime(),Integer.valueOf(ruleEntity.getKhDays()))));
|
|
|
+ }
|
|
|
+ level.setProportional(proportional(String.valueOf(partnerUser.getGrade()),partnerUser.getUserId()));
|
|
|
}
|
|
|
|
|
|
level.setProgressBar(2);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
// 处理活跃用户的逻辑
|
|
|
private void handleActiveUser(PartnerUser partnerUser, MyUserLevel level) {
|
|
|
level.setLockingState("2");
|
|
|
@@ -662,7 +672,21 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
// 检查升级条件
|
|
|
boolean verified = ruleService.verifyUpgradeConditions(partnerUser.getUserId(),String.valueOf(grade));
|
|
|
level.setUpgrade(verified);
|
|
|
-
|
|
|
+ if (null != partnerUser.getIdentityTime()){
|
|
|
+ PartnerRuleEntity ruleEntity = ruleService.selectByGrade(String.valueOf(partnerUser.getGrade()));
|
|
|
+ Date date = PartnerDateUtils.addDays(partnerUser.getIdentityTime(), Integer.valueOf(ruleEntity.getKhDays()));
|
|
|
+ String format = new SimpleDateFormat("yyyy-MM-dd").format(date);
|
|
|
+ System.out.println( format);
|
|
|
+ boolean before = PartnerDateUtils.isBefore(date);
|
|
|
+ if (before){
|
|
|
+ LocalDate localDate = date.toInstant()
|
|
|
+ .atZone(ZoneId.systemDefault())
|
|
|
+ .toLocalDate();
|
|
|
+ level.setExpiryDate(String.valueOf(0 == PartnerDateUtils.daysBetween(localDate) ? "1" : PartnerDateUtils.daysBetween(localDate)));
|
|
|
+ }else {
|
|
|
+ level.setExpiryDate(new SimpleDateFormat("yyyy-MM-dd").format(date));
|
|
|
+ }
|
|
|
+ }
|
|
|
// 检查降级记录
|
|
|
if (liftingRecordService.selectDowngradeRecord(
|
|
|
partnerUser.getUserId(), partnerUser.getGrade() + 1, 1) > 0) {
|