|
|
@@ -1,11 +1,11 @@
|
|
|
package com.ydtech.modules.partner.service.Impl;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
+import java.text.DateFormat;
|
|
|
import java.time.Instant;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.ZoneId;
|
|
|
import java.util.*;
|
|
|
-
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
@@ -26,10 +26,7 @@ import com.ydtech.modules.partner.dao.PartnerPartnerAccountMapper;
|
|
|
import com.ydtech.modules.partner.dao.PartnerPremiumDetailsMapper;
|
|
|
import com.ydtech.modules.partner.dao.PartnerUserMapper;
|
|
|
import com.ydtech.modules.partner.model.*;
|
|
|
-import com.ydtech.modules.partner.model.param.AppHomeParams;
|
|
|
-import com.ydtech.modules.partner.model.param.PartnerRuleEntity;
|
|
|
-import com.ydtech.modules.partner.model.param.QueryVo;
|
|
|
-import com.ydtech.modules.partner.model.param.UserGradeParam;
|
|
|
+import com.ydtech.modules.partner.model.param.*;
|
|
|
import com.ydtech.modules.partner.model.vo.*;
|
|
|
import com.ydtech.modules.partner.service.PartnerLiftingRecordService;
|
|
|
import com.ydtech.modules.partner.service.PartnerRuleService;
|
|
|
@@ -41,8 +38,6 @@ import org.springframework.stereotype.Service;
|
|
|
import javax.annotation.Resource;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
-import static net.sf.jsqlparser.parser.feature.Feature.values;
|
|
|
-
|
|
|
@Service
|
|
|
public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, PartnerUser> implements PartnerUserService {
|
|
|
|
|
|
@@ -68,6 +63,9 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
@Autowired
|
|
|
private PartnerLiftingRecordMapper liftingRecordMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private PartnerPartnerAccountMapper accountMapper;
|
|
|
+
|
|
|
@Override
|
|
|
public int insert(PartnerUser partnerUser) {
|
|
|
return baseMapper.insert(partnerUser);
|
|
|
@@ -151,7 +149,7 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
Long aLong = liftingRecordMapper.selectCount(wrapper);
|
|
|
|
|
|
if (count > 0 || aLong > 0){
|
|
|
- return HttpResult.error();
|
|
|
+ return HttpResult.error("不满足升级条件");
|
|
|
}
|
|
|
if (ruleService.verifyUpgradeConditions(userGradeParam.getId(),userGradeParam.getGrade())){
|
|
|
return HttpResult.ok("满足升级条件");
|
|
|
@@ -319,6 +317,97 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
return HttpResult.ok("添加成功");
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public HttpResult queryIdentityInformation(String userId) {
|
|
|
+ List<PartnerRule> partnerRules = ruleService.selectAll();
|
|
|
+
|
|
|
+ List<PartnerUser> partnerUsers = baseMapper.selectList(new LambdaQueryWrapper<>(PartnerUser.class).eq(PartnerUser::getUserId, userId));
|
|
|
+ Map<Integer, PartnerUser> userMap = partnerUsers.stream()
|
|
|
+ .collect(Collectors.toMap(
|
|
|
+ PartnerUser::getGrade,
|
|
|
+ user -> user
|
|
|
+ ));
|
|
|
+
|
|
|
+ List<MyUserLevel> list = getUserLevels(userId, partnerRules, userMap);
|
|
|
+
|
|
|
+
|
|
|
+ return HttpResult.ok( list);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public HttpResult queryDowngradeTask(String grade, String userId) {
|
|
|
+ PartnerRuleEntity partnerRuleEntity = ruleService.selectByGrade(grade);
|
|
|
+ partnerRuleEntity.setStrategyArray(null);
|
|
|
+ CommissionValidityPeriod period = ruleService.getCommissionValidityPeriod(partnerRuleEntity.getCycle(), userId, grade);
|
|
|
+ partnerRuleEntity.setAssessmentEndDate(period.getEndDate().split(" ")[0]);
|
|
|
+ BigDecimal bf = baseMapper.selectTotalSumPremium(userId, grade, period);
|
|
|
+ BigDecimal p = ruleService.getInviteData(userId, grade, period);
|
|
|
+ List<PartnerAttribute> requirement = partnerRuleEntity.getRequirement();
|
|
|
+ requirement.get(0).setAchieve(String.valueOf(p));
|
|
|
+ requirement.get(1).setAchieve(null != bf ? bf.toString() : BigDecimal.ZERO.toString());
|
|
|
+ requirement.get(2).setAchieve("111");
|
|
|
+
|
|
|
+ return HttpResult.ok( partnerRuleEntity);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public HttpResult degradedTask(String grade, String userId) {
|
|
|
+
|
|
|
+ PartnerRuleEntity partnerRuleEntity = ruleService.selectByGrade(grade);
|
|
|
+ partnerRuleEntity.setRequirement(null);
|
|
|
+
|
|
|
+ CommissionValidityPeriod period = baseMapper.selectAssessmentCycleTime(userId, Integer.valueOf(grade));
|
|
|
+ partnerRuleEntity.setAssessmentEndDate(period.getEndDate().split(" ")[0]);
|
|
|
+ BigDecimal bf = baseMapper.selectTotalSumPremium(userId, grade, period);
|
|
|
+ BigDecimal p = ruleService.getInviteData(userId, grade, period);
|
|
|
+
|
|
|
+ List<PartnerAttribute> strategyArray = partnerRuleEntity.getStrategyArray();
|
|
|
+
|
|
|
+ strategyArray.get(0).setAchieve(String.valueOf(p));
|
|
|
+ strategyArray.get(1).setAchieve(null != bf ? bf.toString() : BigDecimal.ZERO.toString());
|
|
|
+ strategyArray.get(2).setAchieve("111");
|
|
|
+
|
|
|
+ return HttpResult.ok( partnerRuleEntity);
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<MyUserLevel> getUserLevels(String userId, List<PartnerRule> partnerRules, Map<Integer, PartnerUser> userMap) {
|
|
|
+ List<MyUserLevel> list = new ArrayList<>();
|
|
|
+ for (PartnerRule rule : partnerRules) {
|
|
|
+ PartnerUser partnerUser = userMap.get(rule.getGrade());
|
|
|
+ MyUserLevel level = new MyUserLevel();
|
|
|
+ level.setUserId(userId);
|
|
|
+ level.setGrade(rule.getGrade());
|
|
|
+ level.setGradeName(rule.getGradeName());
|
|
|
+ level.setLockingState(rule.getStrategy());
|
|
|
+ if (Objects.isNull(partnerUser)){
|
|
|
+ level.setLockingState("0");
|
|
|
+ level.setProgressBar(0);
|
|
|
+ }else {
|
|
|
+ level.setUserName(partnerUser.getName());
|
|
|
+ if (partnerUser.isIdentityStatus()){
|
|
|
+ level.setLockingState("2");
|
|
|
+ level.setLockCommission(accountMapper.selectCashFee(partnerUser.getUserId(), partnerUser.getGrade()));
|
|
|
+ }else {
|
|
|
+ level.setLockingState("1");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (rule.getGrade() != 1){
|
|
|
+ boolean verified = ruleService.verifyUpgradeConditions(userId, String.valueOf(rule.getGrade()));
|
|
|
+ if (verified){
|
|
|
+ level.setProgressBar(1);
|
|
|
+ }else {
|
|
|
+ level.setProgressBar(2);
|
|
|
+ }
|
|
|
+ level.setUpgrade(verified);
|
|
|
+ }else {
|
|
|
+ level.setProgressBar(2);
|
|
|
+ }
|
|
|
+ list.add(level);
|
|
|
+
|
|
|
+ }
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
private static SysUser2Vo getUser2Vo(SysUser sysUser,String id) {
|
|
|
SysUser2Vo sysUser2Vo = new SysUser2Vo();
|
|
|
SysUser user = new SysUser();
|
|
|
@@ -441,6 +530,8 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
hashMap.put("totalPremium",sumField(object,"premium"));
|
|
|
map.put("data",object);
|
|
|
map.put("total",hashMap);
|
|
|
+ //锁定状态
|
|
|
+ map.put("lockingState",partnerUser.isIdentityStatus());
|
|
|
list.add(map);
|
|
|
}
|
|
|
return HttpResult.ok(list);
|
|
|
@@ -482,9 +573,23 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
totalMap.put("commission",sumField(datalist,"commission"));
|
|
|
hashMap.put("data",datalist);
|
|
|
hashMap.put("total",totalMap);
|
|
|
+ hashMap.put("lockData",isLockingState(map.get("userId"),map.get("grade")));
|
|
|
return hashMap;
|
|
|
}
|
|
|
|
|
|
+ public JSONObject isLockingState(String userId,String grade) {
|
|
|
+ PartnerUser partnerUser = baseMapper.selectOne(new LambdaQueryWrapper<>(PartnerUser.class).eq(PartnerUser::getUserId, userId).eq(PartnerUser::getGrade, grade));
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
+ if (null == partnerUser || partnerUser.isIdentityStatus()){
|
|
|
+ return jsonObject;
|
|
|
+ }
|
|
|
+ jsonObject.put("lockingState",partnerUser.isIdentityStatus());
|
|
|
+ jsonObject.put("lockCommission",new BigDecimal("12"));
|
|
|
+ jsonObject.put("zeroDays",10);
|
|
|
+ return jsonObject;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
@Override
|
|
|
public HttpResult myPerformanceDetails(String ordersNo,String userId) {
|
|
|
|