Parcourir la source

合伙人升级bug修改

xuqiang il y a 1 an
Parent
commit
23627d7eca

+ 13 - 7
src/main/java/com/ydtech/modules/partner/dao/PartnerPremiumDetailsMapper.java

@@ -1,27 +1,31 @@
 package com.ydtech.modules.partner.dao;
 
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ydtech.modules.partner.model.PartnerPremiumDetails;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.*;
+import org.apache.ibatis.type.JdbcType;
+
 import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
 
 @Mapper
 public interface PartnerPremiumDetailsMapper extends BaseMapper<PartnerPremiumDetails> {
 
 
+    @Select("SELECT user_id AS userId, SUM(DISTINCT sumpremium) AS num  FROM partner_premium_details ${ew.customSqlSegment}")
+    List<Map<String,Object>> selectTotalSumPremiumGroupBy(@Param("ew") QueryWrapper<PartnerPremiumDetails> queryWrapper);
+
 
     @Select("SELECT SUM(DISTINCT sumpremium) FROM partner_premium_details ${ew.customSqlSegment} ")
     BigDecimal selectTotalSumPremium(@Param("ew") QueryWrapper<PartnerPremiumDetails> queryWrapper);
 
-
-
     @Select("SELECT " +
             " d.orderno, " +
             " d.company_id, " +
@@ -42,6 +46,8 @@ public interface PartnerPremiumDetailsMapper extends BaseMapper<PartnerPremiumDe
             " LEFT JOIN sys_user u ON u.id = d.user_id  ${ew.customSqlSegment}")
     Page<PartnerPremiumDetails> queryPage(@Param("page") Page page, @Param("ew") Wrapper<PartnerPremiumDetails> queryWrapper);
 
-    @Select("SELECT SUM(extract_fee) FROM partner_premium_details ${ew.customSqlSegment} ")
-    BigDecimal selectTotalCommission(@Param("ew")QueryWrapper<PartnerPremiumDetails> wrapper);
+    @Select("SELECT user_id AS userId,SUM(DISTINCT sumpremium) AS premium,SUM(extract_fee) AS commission FROM partner_premium_details ${ew.customSqlSegment} ")
+    List<Map<String,Object>> selectCombinedStatistics(@Param("ew")QueryWrapper<PartnerPremiumDetails> wrapper);
+
+
 }

+ 3 - 3
src/main/java/com/ydtech/modules/partner/dao/PartnerUserMapper.java

@@ -39,11 +39,11 @@ public interface PartnerUserMapper extends BaseMapper<PartnerUser> {
     SelectUserVo selectUser(AppHomeParams params);
 
 
-    Integer userCountVo(@Param("userId")String userId,@Param("params")AppHomeParams params);
+    Integer userCountVo(@Param("userId")String userId,@Param("params")AppHomeParams params,@Param("grade")Integer grade);
 
 
-    @Select("select  MIN(grade) as grade,user_id,`name` from partner_user where user_id= #{userId} GROUP BY `name`  ")
-    PartnerUser selectGradeMin(String userId);
+    @Select("select  MIN(grade) as grade from partner_user where user_id= #{userId}  ")
+    Integer selectGradeMin(String userId);
 
     @Select("select  MIN(grade) as grade from partner_user where user_id=  #{userId}  ")
     Integer selectGradeIntMin(String userId);

+ 122 - 75
src/main/java/com/ydtech/modules/partner/service/Impl/PartnerUserServiceImpl.java

@@ -47,6 +47,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 import static net.sf.jsqlparser.parser.feature.Feature.values;
 
@@ -417,7 +418,7 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
 
     @Override
     public HttpResult userCountVo(AppHomeParams params) {
-        PartnerUser minGrade = baseMapper.selectGradeMin(params.getUserId());
+       /* PartnerUser minGrade = baseMapper.selectGradeMin(params.getUserId());
         if (minGrade == null) {
             return HttpResult.error("人员不存在");
         }
@@ -426,8 +427,8 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
         vo.put("vo1", getV1(minGrade, params, rule));
         vo.put("vo2", getVo2(minGrade, params, rule));
         vo.put("vo3", getVo3(minGrade, params, rule));
-        vo.put("vo4", getVo4(minGrade, params, rule));
-        return HttpResult.ok(vo);
+        vo.put("vo4", getVo4(minGrade, params, rule));*/
+        return HttpResult.ok();
     }
 
 
@@ -465,11 +466,27 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
         referrerInfo.put("mobile",partnerUser.getMobile());
         referrerInfo.put("userName",partnerUser.getName());
         HashMap<String, Object> map = new HashMap<>();
-        map.put("list",buildUserHierarchyResult(partnerUser.getUserId(), null));
+        List<JSONObject> list = new ArrayList<>();
+        getLevelData(partnerUser.getUserId(),partnerUser.getGrade(),list, getRule());
+        map.put("list",list);
         map.put("referrer",referrerInfo);
         return HttpResult.ok(map);
     }
 
+    public void getLevelData(String userId,Integer grade, List<JSONObject> list,Map<Integer, String> rule){
+        LambdaQueryWrapper<PartnerUser> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(PartnerUser::getReferrerId,userId);
+        queryWrapper.eq(PartnerUser::getGrade,grade + 1);
+        List<PartnerUser> partnerUsers = baseMapper.selectList(queryWrapper);
+        for (PartnerUser partnerUser : partnerUsers) {
+            JSONObject jsonObject = getJsonObject(rule, partnerUser);
+            jsonObject.put("number", baseMapper.userCountVo(partnerUser.getUserId(), null,partnerUser.getGrade()));
+            list.add(jsonObject);
+        }
+    }
+
+
+
     @Override
     public HttpResult selectByGradeList(Map<String,String> paeramsMap, String userId) {
         if (StringUtils.isEmpty(userId) || StringUtils.isEmpty(paeramsMap.get("grade"))) {
@@ -479,20 +496,19 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
         params.setUserId(userId);
         List<TeamOverviewVo> teamOverviewVos = baseMapper.selectTeamOverview(params);
         List<Object> list = new ArrayList<>();
+        Map<Integer, String> rule = getRule();
+
         for (TeamOverviewVo overviewVo : teamOverviewVos) {
             HashMap<String, Object> map = new HashMap<>();
             map.put("grade",overviewVo.getGrade());
             map.put("gradeName",overviewVo.getGradeName());
             PartnerUser partnerUser = baseMapper.selectOne(new LambdaQueryWrapper<>(PartnerUser.class)
                     .eq(PartnerUser::getUserId, userId)
-                    .ge((CollectionUtil.isNotEmpty(paeramsMap) && paeramsMap.containsKey("startTime") && StringUtils.isNotEmpty(paeramsMap.get("startTime"))),
-                            PartnerUser::getCreateTime, paeramsMap.get("startTime") + " " + TimeConstants.START_TIME)
-                    .le((CollectionUtil.isNotEmpty(paeramsMap) && paeramsMap.containsKey("endTime") && StringUtils.isNotEmpty(paeramsMap.get("endTime"))),
-                            PartnerUser::getCreateTime, paeramsMap.get("endTime") + " " + TimeConstants.END_TIME)
-                    .eq(PartnerUser::getGrade, paeramsMap.get("grade")));
+                    .eq(PartnerUser::getGrade, overviewVo.getGrade()));
             List<JSONObject> object = new ArrayList<>();
             if (ObjectUtils.isNotEmpty(partnerUser)) {
-                object = buildUserHierarchyResult(partnerUser.getUserId(),paeramsMap);
+                List<JSONObject> jsonList = new ArrayList<>();
+                object = buildUserHierarchyResult(partnerUser.getUserId(),partnerUser.getGrade(),paeramsMap,rule,jsonList);
             }
             map.put("data",object);
             list.add(map);
@@ -550,7 +566,7 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
 
     @Override
     public HttpResult userCountStatisticsVo(AppHomeParams params) {
-        PartnerUser minGrade = baseMapper.selectGradeMin(params.getUserId());
+        Integer minGrade = baseMapper.selectGradeMin(params.getUserId());
         if (minGrade == null) {
             return HttpResult.error("人员不存在");
         }
@@ -563,7 +579,7 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
 
     @Override
     public HttpResult userCountProportionVo(AppHomeParams params) {
-        PartnerUser minGrade = baseMapper.selectGradeMin(params.getUserId());
+        Integer minGrade = baseMapper.selectGradeMin(params.getUserId());
         if (minGrade == null) {
             return HttpResult.error("人员不存在");
         }
@@ -574,7 +590,7 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
 
     @Override
     public HttpResult userCountRankingVo(AppHomeParams params) {
-        PartnerUser minGrade = baseMapper.selectGradeMin(params.getUserId());
+        Integer minGrade = baseMapper.selectGradeMin(params.getUserId());
         if (minGrade == null) {
             return HttpResult.error("人员不存在");
         }
@@ -584,11 +600,78 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
     }
 
 
-    private List<JSONObject> buildUserHierarchyResult(String userId, Map<String,String> paeramsMap) {
-        Map<Integer, String> rule = getRule();
-        List<JSONObject> list = new ArrayList<>();
-        getLevelUser(userId,list, rule,paeramsMap);
-        return  getSort(list);
+    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){
+        Integer sort = grade + 1;
+        LambdaQueryWrapper<PartnerUser> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(PartnerUser::getReferrerId,userId);
+        queryWrapper.eq(PartnerUser::getGrade,sort);
+        if (CollectionUtil.isNotEmpty(paeramsMap)){
+            if (paeramsMap.containsKey("startTime") && StringUtils.isNotEmpty(paeramsMap.get("startTime"))){
+                queryWrapper.ge(PartnerUser::getCreateTime, paeramsMap.get("startTime") + " " + TimeConstants.START_TIME);
+            }
+            if (paeramsMap.containsKey("endTime") && StringUtils.isNotEmpty(paeramsMap.get("endTime"))){
+                queryWrapper.le(PartnerUser::getCreateTime, paeramsMap.get("endTime") + " " + TimeConstants.END_TIME);
+            }
+            if (StringUtils.isNotEmpty(paeramsMap.get("startTime")) && StringUtils.isNotEmpty(paeramsMap.get("endTime"))){
+                queryWrapper.between(PartnerUser::getCreateTime, paeramsMap.get("startTime") + " " + TimeConstants.START_TIME, paeramsMap.get("endTime") + " " + TimeConstants.END_TIME);
+            }
+        }
+
+        List<PartnerUser> partnerUsers = baseMapper.selectList(queryWrapper);
+        
+        // 添加空值检查
+        if (CollectionUtil.isEmpty(partnerUsers)) {
+            return;
+        }
+        
+        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);
+        }
+        for (PartnerUser partnerUser : partnerUsers) {
+            JSONObject jsonObject = getJsonObject(rule, partnerUser);
+            jsonObject.put("number", countByUserIdLevel(partnerUser.getUserId()));
+            String currentUserId = partnerUser.getUserId();
+            jsonObject.put("premium", premiumMapDict.getOrDefault(currentUserId, BigDecimal.ZERO));
+            jsonObject.put("commission", commissionMapDict.getOrDefault(currentUserId, BigDecimal.ZERO));
+            list.add(jsonObject);
+        }
+    }
+
+    public BigDecimal getValue(String targetKey, List<Map<String, Object>> list){
+        if (targetKey == null || list == null) {
+            return BigDecimal.ZERO;
+        }
+        return list.stream()
+                .filter(map -> StringUtils.equals(targetKey, String.valueOf(map.get("userId"))))
+                .findFirst()
+                .map(map -> new BigDecimal(String.valueOf(map.get("num"))))
+                .orElse(BigDecimal.ZERO);
     }
 
     @Override
@@ -671,38 +754,14 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
     }
 
 
-
-    public void getLevelUser(String userId, List<JSONObject> list,Map<Integer, String> rule,Map<String,String> paeramsMap){
-        LambdaQueryWrapper<PartnerUser> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(PartnerUser::getReferrerId,userId);
-        if (CollectionUtil.isNotEmpty(paeramsMap) && paeramsMap.containsKey("startTime") && StringUtils.isNotEmpty(paeramsMap.get("startTime"))){
-            queryWrapper.ge(PartnerUser::getCreateTime, paeramsMap.get("startTime") + " " + TimeConstants.START_TIME);
-        }
-        if (CollectionUtil.isNotEmpty(paeramsMap) && paeramsMap.containsKey("endTime") && StringUtils.isNotEmpty(paeramsMap.get("endTime"))){
-            queryWrapper.le(PartnerUser::getCreateTime, paeramsMap.get("endTime") + " " + TimeConstants.END_TIME);
-        }
-        List<PartnerUser> partnerUsers = baseMapper.selectList(queryWrapper);
-        for (PartnerUser partnerUser : partnerUsers) {
-            Set<String> set = new HashSet<>();
-            set.add(partnerUser.getUserId());
-            getLevelUserId(partnerUser.getUserId(), set);
-            QueryWrapper<PartnerPremiumDetails> wrapper = new QueryWrapper<>();
-            wrapper.in("user_id",set);
-            JSONObject jsonObject = new JSONObject();
-            jsonObject.put("id",partnerUser.getId());
-            jsonObject.put("userName", partnerUser.getName());
-            jsonObject.put("grade", partnerUser.getGrade());
-            jsonObject.put("createTime", partnerUser.getCreateTime());
-            jsonObject.put("gradeName", rule.getOrDefault(Integer.valueOf(partnerUser.getGrade() + 1), ""));
-            jsonObject.put("number", countByUserIdLevel(partnerUser.getUserId()));
-            BigDecimal premium = detailsMapper.selectTotalSumPremium(wrapper);
-            jsonObject.put("premium", premium == null ? BigDecimal.ZERO : premium);
-            BigDecimal commission = detailsMapper.selectTotalCommission(wrapper);
-            jsonObject.put("commission",commission == null ? BigDecimal.ZERO : commission);
-            list.add(jsonObject);
-            //getLevelUser( partnerUser.getUserId(), list, rule);
-        }
-
+    private JSONObject getJsonObject(Map<Integer, String> rule, PartnerUser partnerUser) {
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("id",partnerUser.getId());
+        jsonObject.put("userName", partnerUser.getName());
+        jsonObject.put("grade", partnerUser.getGrade());
+        jsonObject.put("createTime", partnerUser.getCreateTime());
+        jsonObject.put("gradeName", rule.getOrDefault(Integer.valueOf(partnerUser.getGrade() + 1), ""));
+        return jsonObject;
     }
 
     public Long countByUserIdLevel(String userId){
@@ -714,11 +773,11 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
 
 
 
-    public List<JSONObject> getVo4(PartnerUser minGrade, AppHomeParams params, Map<Integer, String> rule) {
-        Integer grade = queryLevel(minGrade.getGrade());
+    public List<JSONObject> getVo4(Integer minGrade, AppHomeParams params, Map<Integer, String> rule) {
+        Integer grade = queryLevel(minGrade);
         List<JSONObject> list = new ArrayList<>();
         List<String> currentUserIds = new ArrayList<>();
-        currentUserIds.add(minGrade.getUserId());
+        currentUserIds.add(params.getUserId());
 
         while (grade < 7) {
             List<PartnerUser> currentUserList = new ArrayList<>();
@@ -727,10 +786,6 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
                 currentUserIds = currentUserList.stream().map(PartnerUser::getUserId).collect(Collectors.toList());
             }
             getVo4Data(list, grade, currentUserList, params, rule);
-            if ((minGrade.getGrade() >= 1 && minGrade.getGrade() <= 3 && grade == 4) ||
-                    (minGrade.getGrade() == 4 && grade == 5)) {
-                break;
-            }
             grade++;
         }
         return list;
@@ -746,7 +801,7 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
             JSONObject jsonObject = new JSONObject();
             jsonObject.put("id", user.getId());
             jsonObject.put("userName", user.getName());
-            jsonObject.put("number", baseMapper.userCountVo(user.getUserId(), params));
+            jsonObject.put("number", baseMapper.userCountVo(user.getUserId(), params,(user.getGrade() + 1)));
             arrayList.add(jsonObject);
         }
 
@@ -755,21 +810,17 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
         list.add(object);
     }
 
-    public List<JSONObject> getVo3(PartnerUser minGrade, AppHomeParams params, Map<Integer, String> rule) {
-        Integer grade = queryLevel(minGrade.getGrade());
+    public List<JSONObject> getVo3(Integer minGrade, AppHomeParams params, Map<Integer, String> rule) {
+        Integer grade = queryLevel(minGrade);
         List<JSONObject> list = new ArrayList<>();
         List<String> currentUserIds = new ArrayList<>();
-        currentUserIds.add(minGrade.getUserId());
+        currentUserIds.add(params.getUserId());
 
         while (grade < 7) {
             if (CollectionUtil.isNotEmpty(currentUserIds)) {
                 currentUserIds = baseMapper.selectJuniorList(grade, currentUserIds, params);
             }
             getVo3Data(list, grade, currentUserIds, params, rule);
-            if ((minGrade.getGrade() >= 1 && minGrade.getGrade() <= 3 && grade == 4) ||
-                    (minGrade.getGrade() == 4 && grade == 5)) {
-                break;
-            }
             grade++;
         }
         return list;
@@ -815,20 +866,16 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
     }
 
 
-    public List<Map<String, Object>> getVo2(PartnerUser minGrade, AppHomeParams params, Map<Integer, String> rule) {
-        Integer grade = queryLevel(minGrade.getGrade());
+    public List<Map<String, Object>> getVo2(Integer minGrade, AppHomeParams params, Map<Integer, String> rule) {
+        Integer grade = queryLevel(minGrade);
         List<Map<String, Object>> list = new ArrayList<>();
         List<String> currentUserIds = new ArrayList<>();
-        currentUserIds.add(minGrade.getUserId());
+        currentUserIds.add(params.getUserId());
         while (grade < 7) {
             if (CollectionUtil.isNotEmpty(currentUserIds)) {
                 currentUserIds = baseMapper.selectJuniorList(grade, currentUserIds, params);
             }
             processGradeVo2(list, grade, currentUserIds, params, rule);
-            if ((minGrade.getGrade() >= 1 && minGrade.getGrade() <= 3 && grade == 4) ||
-                    (minGrade.getGrade() == 4 && grade == 5)) {
-                break;
-            }
             grade++;
         }
         return list;
@@ -872,11 +919,11 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
         list.add(voMap);
     }
 
-    public List<Map<String, Object>> getV1(PartnerUser minGrade, AppHomeParams params, Map<Integer, String> rule) {
-        Integer grade = queryLevel(minGrade.getGrade());
+    public List<Map<String, Object>> getV1(Integer minGrade, AppHomeParams params, Map<Integer, String> rule) {
+        Integer grade = queryLevel(minGrade);
         List<Map<String, Object>> list = new ArrayList<>();
         List<String> currentUserIds = new ArrayList<>();
-        currentUserIds.add(minGrade.getUserId());
+        currentUserIds.add(params.getUserId());
 
         while (grade < 7) {
             if (CollectionUtil.isNotEmpty(currentUserIds)) {

+ 5 - 5
src/main/resources/mapper/modules/partner/PartnerUserMapper.xml

@@ -469,10 +469,10 @@ select grade,grade_name from  partner_rule
 
     <select id="userCountVo" resultType="java.lang.Integer">
         WITH RECURSIVE sub_partners AS (
-        SELECT p1.id, p1.user_id, CAST(p1.user_id AS CHAR(200)) AS path
+        SELECT p1.id, p1.user_id,p1.grade, CAST(p1.user_id AS CHAR(200)) AS path
         FROM partner_user p1
         LEFT JOIN sys_user u ON u.id = p1.user_id
-        WHERE u.STATUS = 1 AND p1.referrer_id = #{userId}
+        WHERE u.STATUS = 1 AND p1.referrer_id = #{userId} and p1.grade = #{grade}
         <if test="params != null">
             <if test="params.timeFrame != null and params.timeFrame.length > 0">
                 AND p1.create_time BETWEEN #{params.timeFrame[0]} AND #{params.timeFrame[1]}
@@ -490,11 +490,11 @@ select grade,grade_name from  partner_rule
             </if>
         </if>
         UNION ALL
-        SELECT p.id, p.user_id,CONCAT(sp.path, '->', p.user_id)
+        SELECT p.id, p.user_id,p.grade,CONCAT(sp.path, '->', p.user_id)
         FROM partner_user p
         LEFT JOIN sys_user u1 ON u1.id = p.user_id
         INNER JOIN sub_partners sp ON p.referrer_id = sp.user_id
-        WHERE u1.STATUS = 1  AND sp.path NOT LIKE CONCAT('%->', p.user_id, '%')
+        WHERE u1.STATUS = 1 AND p.grade = (sp.grade + 1) AND sp.path NOT LIKE CONCAT('%->', p.user_id, '%')
         <if test="params != null">
             <if test="params.timeFrame != null and params.timeFrame.length > 0">
                 AND p.create_time BETWEEN #{params.timeFrame[0]} AND #{params.timeFrame[1]}
@@ -624,7 +624,7 @@ select grade,grade_name from  partner_rule
 
 
     <select id="selectJuniorListUser" resultType="com.ydtech.modules.partner.model.PartnerUser">
-        select id,user_id,`name` from partner_user where grade = #{grade} AND referrer_id in
+        select id,user_id,`name`,grade from partner_user where grade = #{grade} AND referrer_id in
         <foreach collection="ids" item="item" index="index" separator="," open="(" close=")">
             #{item}
         </foreach>