|
|
@@ -3,14 +3,17 @@ import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
import java.text.DateFormat;
|
|
|
import java.time.Instant;
|
|
|
+import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.ZoneId;
|
|
|
+import java.time.temporal.ChronoUnit;
|
|
|
import java.util.*;
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.ydtech.core.page.HttpResult;
|
|
|
import com.ydtech.modules.admin.dao.SysUserMapper;
|
|
|
@@ -28,6 +31,7 @@ import com.ydtech.modules.partner.dao.PartnerUserMapper;
|
|
|
import com.ydtech.modules.partner.model.*;
|
|
|
import com.ydtech.modules.partner.model.param.*;
|
|
|
import com.ydtech.modules.partner.model.vo.*;
|
|
|
+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;
|
|
|
@@ -36,6 +40,7 @@ import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import javax.annotation.Resource;
|
|
|
+import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
|
@@ -66,6 +71,9 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
@Autowired
|
|
|
private PartnerPartnerAccountMapper accountMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private PartnerCommissionService commissionService;
|
|
|
+
|
|
|
@Override
|
|
|
public int insert(PartnerUser partnerUser) {
|
|
|
return baseMapper.insert(partnerUser);
|
|
|
@@ -183,6 +191,7 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
record.setDeptName(partnerUser.getDeptName());
|
|
|
record.setType("0");
|
|
|
record.setOriginalLevel(userGradeParam.getGrade());
|
|
|
+ record.setUpgradeType(userGradeParam.getUpgradeType());
|
|
|
switch (userGradeParam.getGrade()) {
|
|
|
case "1":
|
|
|
record.setAfterChange("");
|
|
|
@@ -241,7 +250,18 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
}
|
|
|
//查询当前用户等级
|
|
|
List<TeamOverviewVo> teamOverviewVos = baseMapper.selectTeamOverview(params);
|
|
|
+
|
|
|
+
|
|
|
+ List<PartnerUser> partnerUsers = baseMapper.selectList(new LambdaQueryWrapper<>(PartnerUser.class)
|
|
|
+ .eq(PartnerUser::getUserId,params.getUserId())
|
|
|
+ .in(PartnerUser::getGrade, getGradeList(teamOverviewVos)));
|
|
|
+
|
|
|
+ Map<Integer, PartnerUser> userMap = partnerUsers.stream()
|
|
|
+ .collect(Collectors.toMap(PartnerUser::getGrade, Function.identity()));
|
|
|
+
|
|
|
+
|
|
|
for (TeamOverviewVo overviewVo : teamOverviewVos) {
|
|
|
+ PartnerUser partnerUser = userMap.get(Integer.valueOf(overviewVo.getGrade()));
|
|
|
switch (overviewVo.getGrade()){
|
|
|
case "1":
|
|
|
overviewVo.setVo1(baseMapper.selectStatistics(overviewVo.getGrade(), params));
|
|
|
@@ -256,11 +276,26 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
overviewVo.setVo4(baseMapper.selectStatistics(overviewVo.getGrade(), params));
|
|
|
break;
|
|
|
}
|
|
|
+ if (null == partnerUser){
|
|
|
+ overviewVo.setParentStatus("0");
|
|
|
+ }else {
|
|
|
+ if (partnerUser.isIdentityStatus()){
|
|
|
+ overviewVo.setParentStatus("2");
|
|
|
+ }else {
|
|
|
+ overviewVo.setParentStatus("1");
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
homeVo.setTeamOverview(teamOverviewVos);
|
|
|
return HttpResult.ok(homeVo);
|
|
|
}
|
|
|
|
|
|
+ public List<String> getGradeList(List<TeamOverviewVo> teamOverviewVos) {
|
|
|
+ return teamOverviewVos.stream()
|
|
|
+ .map(TeamOverviewVo::getGrade)
|
|
|
+ .distinct()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ }
|
|
|
|
|
|
@Override
|
|
|
public List<String> getUserGradeList(String userId) {
|
|
|
@@ -320,7 +355,6 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
@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(
|
|
|
@@ -329,9 +363,8 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
));
|
|
|
|
|
|
List<MyUserLevel> list = getUserLevels(userId, partnerRules, userMap);
|
|
|
-
|
|
|
-
|
|
|
- return HttpResult.ok( list);
|
|
|
+ list.sort((o1, o2) -> Integer.compare(o2.getGrade(), o1.getGrade()));
|
|
|
+ return HttpResult.ok(list);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -342,32 +375,30 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
partnerRuleEntity.setAssessmentEndDate(period.getEndDate().split(" ")[0]);
|
|
|
BigDecimal bf = baseMapper.selectTotalSumPremium(userId, grade, period);
|
|
|
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);
|
|
|
+ }
|
|
|
+
|
|
|
+ private HttpResult getAttribute(PartnerRuleEntity partnerRuleEntity, BigDecimal bf, BigDecimal p, BigDecimal ownBf, List<PartnerAttribute> requirement) {
|
|
|
requirement.get(0).setAchieve(String.valueOf(p));
|
|
|
requirement.get(1).setAchieve(null != bf ? bf.toString() : BigDecimal.ZERO.toString());
|
|
|
- requirement.get(2).setAchieve("111");
|
|
|
-
|
|
|
+ requirement.get(2).setAchieve(null != ownBf ? ownBf.toString() : BigDecimal.ZERO.toString());
|
|
|
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);
|
|
|
-
|
|
|
+ BigDecimal ownBf = baseMapper.selectOwnSumPremium(userId, 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);
|
|
|
+ return getAttribute(partnerRuleEntity, bf, p, ownBf, strategyArray);
|
|
|
}
|
|
|
|
|
|
private List<MyUserLevel> getUserLevels(String userId, List<PartnerRule> partnerRules, Map<Integer, PartnerUser> userMap) {
|
|
|
@@ -375,32 +406,30 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
for (PartnerRule rule : partnerRules) {
|
|
|
PartnerUser partnerUser = userMap.get(rule.getGrade());
|
|
|
MyUserLevel level = new MyUserLevel();
|
|
|
- level.setUserId(userId);
|
|
|
+ level.setRatio(getProportion(rule.getGrade()));
|
|
|
level.setGrade(rule.getGrade());
|
|
|
level.setGradeName(rule.getGradeName());
|
|
|
- level.setLockingState(rule.getStrategy());
|
|
|
if (Objects.isNull(partnerUser)){
|
|
|
level.setLockingState("0");
|
|
|
level.setProgressBar(0);
|
|
|
}else {
|
|
|
+ level.setUserId(userId);
|
|
|
level.setUserName(partnerUser.getName());
|
|
|
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 {
|
|
|
level.setLockingState("1");
|
|
|
}
|
|
|
+ level.setProgressBar(2);
|
|
|
}
|
|
|
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);
|
|
|
|
|
|
@@ -408,6 +437,30 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ public String getProportion(Integer grade){
|
|
|
+ CommissionRulesVo rulesVo = commissionService.queryAll();
|
|
|
+ if (grade == 1){
|
|
|
+ return rulesVo.getOriginator();
|
|
|
+ }else if (grade == 2){
|
|
|
+ PartnerCommissionRules administrator = rulesVo.getAdministrator();
|
|
|
+
|
|
|
+ List<PartnerRulesRatio> list = administrator.getRulesRatioList();
|
|
|
+ return list.get(0).getKickback().stripTrailingZeros().toPlainString() + "-" + list.get(2).getKickback().stripTrailingZeros().toPlainString();
|
|
|
+ }else if (grade == 3){
|
|
|
+ PartnerCommissionRules partner = rulesVo.getPartner();
|
|
|
+
|
|
|
+ List<PartnerRulesRatio> list = partner.getRulesRatioList();
|
|
|
+ return list.get(0).getKickback().stripTrailingZeros().toPlainString() + "-" + list.get(2).getKickback().stripTrailingZeros().toPlainString();
|
|
|
+ }else if (grade == 4){
|
|
|
+ PartnerCommissionRules partner = rulesVo.getPartner();
|
|
|
+
|
|
|
+ List<PartnerRulesRatio> list = partner.getRulesRatioList();
|
|
|
+ return list.get(0).getKickback().stripTrailingZeros().toPlainString() + "-" + list.get(2).getKickback().stripTrailingZeros().toPlainString();
|
|
|
+ }
|
|
|
+ return "0";
|
|
|
+ }
|
|
|
+
|
|
|
private static SysUser2Vo getUser2Vo(SysUser sysUser,String id) {
|
|
|
SysUser2Vo sysUser2Vo = new SysUser2Vo();
|
|
|
SysUser user = new SysUser();
|
|
|
@@ -479,11 +532,11 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public HttpResult selectByIdList(String id) {
|
|
|
- if (StringUtils.isEmpty(id)) {
|
|
|
+ public HttpResult selectByIdList(PartnerApp partnerApp) {
|
|
|
+ if (StringUtils.isEmpty(partnerApp.getId())) {
|
|
|
return HttpResult.error("ID不能为空");
|
|
|
}
|
|
|
- PartnerUser partnerUser = baseMapper.selectById(id);
|
|
|
+ PartnerUser partnerUser = baseMapper.selectById(partnerApp.getId());
|
|
|
if (ObjectUtils.isEmpty(partnerUser)) {
|
|
|
return HttpResult.error("人员不存在");
|
|
|
}
|
|
|
@@ -493,50 +546,86 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
referrerInfo.put("mobile",partnerUser.getMobile());
|
|
|
referrerInfo.put("userName",partnerUser.getName());
|
|
|
HashMap<String, Object> map = new HashMap<>();
|
|
|
- List<JSONObject> list = new ArrayList<>();
|
|
|
- buildUserHierarchyResult(partnerUser.getUserId(),partnerUser.getGrade(),null,getRule(),list);
|
|
|
- map.put("list",list);
|
|
|
+ Page page = getLevelUser(partnerUser.getUserId(), partnerUser.getGrade(), partnerApp, getRule());
|
|
|
+ map.put("list",getPage( page));
|
|
|
map.put("referrer",referrerInfo);
|
|
|
+ map.put("parentStatus",partnerUser.isIdentityStatus() ? "2" : "1");
|
|
|
return HttpResult.ok(map);
|
|
|
}
|
|
|
|
|
|
|
|
|
@Override
|
|
|
- public HttpResult selectByGradeList(Map<String,String> paeramsMap, String userId) {
|
|
|
- if (StringUtils.isEmpty(userId) || StringUtils.isEmpty(paeramsMap.get("grade"))) {
|
|
|
+ public HttpResult selectByGradeList(PartnerApp partnerApp) {
|
|
|
+ if (StringUtils.isEmpty(partnerApp.getUserId()) || StringUtils.isEmpty(partnerApp.getGrade())) {
|
|
|
return HttpResult.error("用户ID和等级不能为空");
|
|
|
}
|
|
|
AppHomeParams params = new AppHomeParams();
|
|
|
- params.setUserId(userId);
|
|
|
+ params.setUserId(partnerApp.getUserId());
|
|
|
List<TeamOverviewVo> teamOverviewVos = baseMapper.selectTeamOverview(params);
|
|
|
List<Object> list = new ArrayList<>();
|
|
|
Map<Integer, String> rule = getRule();
|
|
|
+ List<String> grades = teamOverviewVos.stream()
|
|
|
+ .map(TeamOverviewVo::getGrade)
|
|
|
+ .distinct()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ List<PartnerUser> partnerUsers = baseMapper.selectList(new LambdaQueryWrapper<>(PartnerUser.class)
|
|
|
+ .eq(PartnerUser::getUserId, partnerApp.getUserId())
|
|
|
+ .in(PartnerUser::getGrade, grades));
|
|
|
+ Map<Integer, PartnerUser> userMap = partnerUsers.stream()
|
|
|
+ .collect(Collectors.toMap(PartnerUser::getGrade, Function.identity()));
|
|
|
|
|
|
for (TeamOverviewVo overviewVo : teamOverviewVos) {
|
|
|
- HashMap<String, Object> map = new HashMap<>();
|
|
|
+ JSONObject map = new JSONObject();
|
|
|
map.put("grade",overviewVo.getGrade());
|
|
|
map.put("gradeName",overviewVo.getGradeName());
|
|
|
- PartnerUser partnerUser = baseMapper.selectOne(new LambdaQueryWrapper<>(PartnerUser.class)
|
|
|
- .eq(PartnerUser::getUserId, userId)
|
|
|
- .eq(PartnerUser::getGrade, overviewVo.getGrade()));
|
|
|
- List<JSONObject> object = new ArrayList<>();
|
|
|
- if (ObjectUtils.isNotEmpty(partnerUser)) {
|
|
|
- List<JSONObject> jsonList = new ArrayList<>();
|
|
|
- object = buildUserHierarchyResult(partnerUser.getUserId(),partnerUser.getGrade(),paeramsMap,rule,jsonList);
|
|
|
- }
|
|
|
+ PartnerUser partnerUser = userMap.get(Integer.valueOf(overviewVo.getGrade()));
|
|
|
HashMap<String, Object> hashMap = new HashMap<>();
|
|
|
- hashMap.put("commission",sumField(object,"commission"));
|
|
|
- hashMap.put("numberOrders",object.size());
|
|
|
- hashMap.put("totalPremium",sumField(object,"premium"));
|
|
|
- map.put("data",object);
|
|
|
- map.put("total",hashMap);
|
|
|
- //锁定状态
|
|
|
- map.put("lockingState",partnerUser.isIdentityStatus());
|
|
|
+
|
|
|
+ try {
|
|
|
+ if (null == partnerUser) {
|
|
|
+ setDefaultValues(hashMap);
|
|
|
+ map.put("data", new JSONObject());
|
|
|
+ map.put("total", hashMap);
|
|
|
+ map.put("parentStatus", "0");
|
|
|
+ } else {
|
|
|
+ Page page = getLevelUser(partnerUser.getUserId(), partnerUser.getGrade(), partnerApp, rule);
|
|
|
+ List<JSONObject> records = page != null ? page.getRecords() : Collections.emptyList();
|
|
|
+ boolean hasRecords = CollectionUtil.isNotEmpty(records);
|
|
|
+
|
|
|
+ hashMap.put("commission", hasRecords ? sumField(records, "commission") : BigDecimal.ZERO);
|
|
|
+ hashMap.put("numberOrders", hasRecords ? records.size() : 0);
|
|
|
+ hashMap.put("totalPremium", hasRecords ? sumField(records, "premium") : BigDecimal.ZERO);
|
|
|
+
|
|
|
+ map.put("data", getPage(page));
|
|
|
+ map.put("total", hashMap);
|
|
|
+ map.put("parentStatus", partnerUser.isIdentityStatus() ? "2" : "1");
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ // 记录异常日志并跳过当前项
|
|
|
+ log.error("处理团队概览数据时发生错误:{}",e.fillInStackTrace());
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
list.add(map);
|
|
|
}
|
|
|
return HttpResult.ok(list);
|
|
|
}
|
|
|
|
|
|
+ private void setDefaultValues(HashMap<String, Object> hashMap) {
|
|
|
+ hashMap.put("commission", BigDecimal.ZERO);
|
|
|
+ hashMap.put("numberOrders", BigDecimal.ZERO);
|
|
|
+ hashMap.put("totalPremium", BigDecimal.ZERO);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public JSONObject getPage(Page page){
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
+ jsonObject.put("total",page.getTotal());
|
|
|
+ jsonObject.put("records",page.getRecords());
|
|
|
+ jsonObject.put("size",page.getSize());
|
|
|
+ jsonObject.put("current",page.getCurrent());
|
|
|
+ return jsonObject;
|
|
|
+ }
|
|
|
|
|
|
public static BigDecimal sumField(List<JSONObject> jsonList, String fieldName) {
|
|
|
return jsonList.stream()
|
|
|
@@ -561,30 +650,36 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
|
|
|
|
|
|
@Override
|
|
|
- public Object myPerformance(Map<String, String> map) {
|
|
|
- if (StringUtils.isBlank(map.get("grade"))){
|
|
|
+ public Object myPerformance(PartnerApp partnerApp) {
|
|
|
+ if (StringUtils.isBlank(partnerApp.getGrade())){
|
|
|
return HttpResult.error("用户不能为空");
|
|
|
}
|
|
|
- List<JSONObject> datalist = baseMapper.queryDataList(map);
|
|
|
+ Page<JSONObject> page = baseMapper.queryDataList(partnerApp.getPage(),partnerApp);
|
|
|
+ List<JSONObject> datalist = page.getRecords();
|
|
|
HashMap<String, Object> hashMap = new HashMap<>();
|
|
|
JSONObject totalMap = new JSONObject();
|
|
|
totalMap.put("numberOrders",datalist.size());
|
|
|
totalMap.put("totalPremium",sumField(datalist,"premium"));
|
|
|
totalMap.put("commission",sumField(datalist,"commission"));
|
|
|
- hashMap.put("data",datalist);
|
|
|
+ hashMap.put("data",page);
|
|
|
hashMap.put("total",totalMap);
|
|
|
- hashMap.put("lockData",isLockingState(map.get("userId"),map.get("grade")));
|
|
|
+ PartnerUser partnerUser = baseMapper.selectOne(new LambdaQueryWrapper<>(PartnerUser.class).eq(PartnerUser::getUserId,partnerApp.getUserId()).eq(PartnerUser::getGrade,partnerApp.getGrade()));
|
|
|
+ if (null != partnerUser){
|
|
|
+ hashMap.put("parentStatus",partnerUser.isIdentityStatus() ? "2" : "1");
|
|
|
+ if (partnerUser.isIdentityStatus()){
|
|
|
+ hashMap.put("lockData",isLockingState(partnerUser));
|
|
|
+ }else {
|
|
|
+ hashMap.put("lockData",null);
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ hashMap.put("parentStatus", "1");
|
|
|
+ }
|
|
|
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));
|
|
|
+ public JSONObject isLockingState(PartnerUser partnerUser) {
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
- if (null == partnerUser || partnerUser.isIdentityStatus()){
|
|
|
- return jsonObject;
|
|
|
- }
|
|
|
- jsonObject.put("lockingState",partnerUser.isIdentityStatus());
|
|
|
- jsonObject.put("lockCommission",new BigDecimal("12"));
|
|
|
+ jsonObject.put("lockCommission",new BigDecimal("126"));
|
|
|
jsonObject.put("zeroDays",10);
|
|
|
return jsonObject;
|
|
|
}
|
|
|
@@ -667,36 +762,23 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
}
|
|
|
|
|
|
|
|
|
- private List<JSONObject> buildUserHierarchyResult(String userId,Integer grade, Map<String,String> paeramsMap
|
|
|
- ,Map<Integer, String> rule,List<JSONObject> jsonList) {
|
|
|
- getLevelUser(userId,grade,jsonList, rule,paeramsMap);
|
|
|
- return getSort(jsonList);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- public void getLevelUser(String userId,Integer grade, List<JSONObject> list,Map<Integer, String> rule,Map<String,String> paeramsMap){
|
|
|
+ public Page getLevelUser(String userId,Integer grade,PartnerApp partnerApp, Map<Integer, String> rule){
|
|
|
Integer sort = grade + 1;
|
|
|
QueryWrapper<PartnerUser> queryWrapper = new QueryWrapper<>();
|
|
|
queryWrapper.eq("p.referrer_id",userId);
|
|
|
queryWrapper.eq("grade",sort);
|
|
|
queryWrapper.eq("u.`status`",1);
|
|
|
- if (CollectionUtil.isNotEmpty(paeramsMap)){
|
|
|
- if (paeramsMap.containsKey("startTime") && StringUtils.isNotEmpty(paeramsMap.get("startTime"))){
|
|
|
- queryWrapper.ge("p.create_time", paeramsMap.get("startTime") + " " + TimeConstants.START_TIME);
|
|
|
- }
|
|
|
- if (paeramsMap.containsKey("endTime") && StringUtils.isNotEmpty(paeramsMap.get("endTime"))){
|
|
|
- queryWrapper.le("p.create_time", paeramsMap.get("endTime") + " " + TimeConstants.END_TIME);
|
|
|
- }
|
|
|
- if (StringUtils.isNotEmpty(paeramsMap.get("startTime")) && StringUtils.isNotEmpty(paeramsMap.get("endTime"))){
|
|
|
- queryWrapper.between("p.create_time", paeramsMap.get("startTime") + " " + TimeConstants.START_TIME, paeramsMap.get("endTime") + " " + TimeConstants.END_TIME);
|
|
|
+ if (!Objects.isNull(partnerApp)){
|
|
|
+ if (StringUtils.isNotEmpty(partnerApp.getStartTime()) && StringUtils.isNotEmpty(partnerApp.getEndTime())){
|
|
|
+ queryWrapper.between("p.create_time", partnerApp.getStartTime() + " " + TimeConstants.START_TIME, partnerApp.getEndTime() + " " + TimeConstants.END_TIME);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- List<PartnerUser> partnerUsers = baseMapper.selectListVo(queryWrapper);
|
|
|
-
|
|
|
+ Page page = baseMapper.selectListVo(partnerApp.getPage(), queryWrapper);
|
|
|
+ List<PartnerUser> partnerUsers = page.getRecords();
|
|
|
// 添加空值检查
|
|
|
if (CollectionUtil.isEmpty(partnerUsers)) {
|
|
|
- return;
|
|
|
+ return page;
|
|
|
}
|
|
|
|
|
|
List<String> userIds = partnerUsers.stream().map(PartnerUser::getUserId).collect(Collectors.toList());
|
|
|
@@ -721,14 +803,17 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
premiumMapDict.put(userIdTemp, premium);
|
|
|
commissionMapDict.put(userIdTemp, commission);
|
|
|
}
|
|
|
+ List<JSONObject> jsonList = new ArrayList<>();
|
|
|
for (PartnerUser partnerUser : partnerUsers) {
|
|
|
JSONObject jsonObject = getJsonObject(rule, partnerUser);
|
|
|
jsonObject.put("number", countByUserIdLevel(partnerUser.getUserId(),partnerUser.getGrade() + 1));
|
|
|
String currentUserId = partnerUser.getUserId();
|
|
|
jsonObject.put("premium", premiumMapDict.getOrDefault(currentUserId, BigDecimal.ZERO));
|
|
|
jsonObject.put("commission", commissionMapDict.getOrDefault(currentUserId, BigDecimal.ZERO));
|
|
|
- list.add(jsonObject);
|
|
|
+ jsonList.add(jsonObject);
|
|
|
}
|
|
|
+ List<JSONObject> sort1 = getSort(jsonList);
|
|
|
+ return page.setRecords(sort1);
|
|
|
}
|
|
|
|
|
|
public BigDecimal getValue(String targetKey, List<Map<String, Object>> list){
|