|
|
@@ -712,9 +712,6 @@ 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();
|
|
|
map.put("grade",overviewVo.getGrade());
|
|
|
@@ -730,12 +727,12 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
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);
|
|
|
+ List<JSONObject> levelAllUser = getLevelAllUser(partnerUser.getUserId(), partnerUser.getGrade(), partnerApp, rule);
|
|
|
+ boolean hasRecords = CollectionUtil.isNotEmpty(levelAllUser);
|
|
|
+ hashMap.put("commission", hasRecords ? sumField(levelAllUser, "commission") : BigDecimal.ZERO);
|
|
|
+ hashMap.put("numberOrders", hasRecords ? levelAllUser.size() : 0);
|
|
|
+ hashMap.put("totalPremium", hasRecords ? sumField(levelAllUser, "premium") : BigDecimal.ZERO);
|
|
|
|
|
|
map.put("data", getPage(page));
|
|
|
map.put("total", hashMap);
|
|
|
@@ -777,10 +774,11 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
|
|
|
public JSONObject getPage(Page page){
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
- jsonObject.put("total",page.getTotal());
|
|
|
+ jsonObject.put("pageNum",page.getCurrent());
|
|
|
jsonObject.put("records",page.getRecords());
|
|
|
- jsonObject.put("size",page.getSize());
|
|
|
- jsonObject.put("current",page.getCurrent());
|
|
|
+ jsonObject.put("pageSize",page.getSize());
|
|
|
+ jsonObject.put("totalSize",page.getTotal());
|
|
|
+ jsonObject.put("totalPages",page.getPages());
|
|
|
return jsonObject;
|
|
|
}
|
|
|
|
|
|
@@ -818,7 +816,7 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
totalMap.put("numberOrders",datalist.size());
|
|
|
totalMap.put("totalPremium",sumField(datalist,"premium"));
|
|
|
totalMap.put("commission",sumField(datalist,"commission"));
|
|
|
- hashMap.put("data",page);
|
|
|
+ hashMap.put("data",getPage(page));
|
|
|
hashMap.put("total",totalMap);
|
|
|
PartnerUser partnerUser = baseMapper.selectOne(new LambdaQueryWrapper<>(PartnerUser.class).eq(PartnerUser::getUserId,partnerApp.getUserId()).eq(PartnerUser::getGrade,partnerApp.getGrade()));
|
|
|
if (null != partnerUser){
|
|
|
@@ -919,6 +917,60 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
|
|
|
}
|
|
|
|
|
|
|
|
|
+ public List<JSONObject> getLevelAllUser(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 (!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.selectAllListVo(queryWrapper);
|
|
|
+ // 添加空值检查
|
|
|
+ if (CollectionUtil.isEmpty(partnerUsers)) {
|
|
|
+ return new ArrayList<>(0);
|
|
|
+ }
|
|
|
+
|
|
|
+ List<String> userIds = partnerUsers.stream().map(PartnerUser::getUserId).collect(Collectors.toList());
|
|
|
+
|
|
|
+ // 使用参数绑定防止SQL注入,合并查询条件
|
|
|
+ QueryWrapper<PartnerPremiumDetails> wrapper = new QueryWrapper<>();
|
|
|
+ wrapper.in("user_id", userIds);
|
|
|
+ wrapper.eq("source", sort);
|
|
|
+ wrapper.groupBy("user_id");
|
|
|
+
|
|
|
+ // 合并查询结果处理
|
|
|
+ List<Map<String, Object>> resultMapList = detailsMapper.selectCombinedStatistics(wrapper);
|
|
|
+
|
|
|
+ // 简化Map转换逻辑
|
|
|
+ Map<String, BigDecimal> premiumMapDict = new HashMap<>();
|
|
|
+ Map<String, BigDecimal> commissionMapDict = new HashMap<>();
|
|
|
+
|
|
|
+ for (Map<String, Object> map : resultMapList) {
|
|
|
+ String userIdTemp = String.valueOf(map.get("userId"));
|
|
|
+ BigDecimal premium = new BigDecimal(String.valueOf(map.get("premium")));
|
|
|
+ BigDecimal commission = new BigDecimal(String.valueOf(map.get("commission")));
|
|
|
+ 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));
|
|
|
+ jsonList.add(jsonObject);
|
|
|
+ }
|
|
|
+ List<JSONObject> sort1 = getSort(jsonList);
|
|
|
+ return sort1;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
public Page getLevelUser(String userId,Integer grade,PartnerApp partnerApp, Map<Integer, String> rule){
|
|
|
Integer sort = grade + 1;
|
|
|
QueryWrapper<PartnerUser> queryWrapper = new QueryWrapper<>();
|