Răsfoiți Sursa

合伙人升级bug修改

xuqiang 1 an în urmă
părinte
comite
985d4b6d3a

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

@@ -1,6 +1,8 @@
 package com.ydtech.modules.partner.dao;
 
 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.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -66,9 +68,6 @@ public interface PartnerUserMapper extends BaseMapper<PartnerUser> {
     Integer userCountIdsVo(@Param("ids") List<String> ids,@Param("params")  AppHomeParams params);
 
 
-    @Select(" SELECT COUNT(1) FROM partner_user WHERE referrer_id = #{userId} AND grade = #{grade} ")
-    Integer userCountLevel(String userId, int grade);
-
     List<RelationalVo> selectByReferrerId(@Param("userId") String userId,@Param("grade") Integer grade);
 
     List<RelationalVo> selectQuerySuperiors(@Param("userId") String userId,@Param("grade") Integer grade);
@@ -140,9 +139,6 @@ public interface PartnerUserMapper extends BaseMapper<PartnerUser> {
     @Select("SELECT * FROM partner_user WHERE user_id = #{userId} AND grade = #{grade}")
     PartnerUser getLevelUserId(@Param("userId") String userId,@Param("grade") Integer grade);
 
-    @Select("SELECT user_id FROM partner_user WHERE user_id = (SELECT referrer_id FROM partner_user WHERE user_id = #{userId} AND grade = #{grade}) AND grade = 3")
-    String searchRecommenders(@Param("userId") String userId,@Param("grade") String grade);
-
     Set<String> querySubordinateUserId(@Param("levelUserId") String levelUserId);
 
     Set<String> querySubordinate(String levelUserId);
@@ -150,4 +146,6 @@ public interface PartnerUserMapper extends BaseMapper<PartnerUser> {
     Set<String> getLevelAllUserId(String userId);
 
 
+    @Select(" SELECT p.id,p.user_id,p.grade,p.name,p.create_time FROM partner_user p LEFT JOIN sys_user u ON u.id = p .user_id ${ew.customSqlSegment}")
+    List<PartnerUser> selectListVo(@Param("ew") QueryWrapper<PartnerUser> queryWrapper);
 }

+ 17 - 25
src/main/java/com/ydtech/modules/partner/service/Impl/PartnerUserServiceImpl.java

@@ -448,25 +448,16 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
         referrerInfo.put("userName",partnerUser.getName());
         HashMap<String, Object> map = new HashMap<>();
         List<JSONObject> list = new ArrayList<>();
-        getLevelData(partnerUser.getUserId(),partnerUser.getGrade(),list, getRule());
+
+        buildUserHierarchyResult(partnerUser.getUserId(),partnerUser.getGrade(),null,getRule(),list);
+
+
+        //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) {
@@ -627,22 +618,23 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
 
     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);
+        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(PartnerUser::getCreateTime, paeramsMap.get("startTime") + " " + TimeConstants.START_TIME);
+                queryWrapper.ge("p.create_time", 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);
+                queryWrapper.le("p.create_time", 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);
+                queryWrapper.between("p.create_time", paeramsMap.get("startTime") + " " + TimeConstants.START_TIME, paeramsMap.get("endTime") + " " + TimeConstants.END_TIME);
             }
         }
 
-        List<PartnerUser> partnerUsers = baseMapper.selectList(queryWrapper);
+        List<PartnerUser> partnerUsers = baseMapper.selectListVo(queryWrapper);
         
         // 添加空值检查
         if (CollectionUtil.isEmpty(partnerUsers)) {
@@ -673,7 +665,7 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
         }
         for (PartnerUser partnerUser : partnerUsers) {
             JSONObject jsonObject = getJsonObject(rule, partnerUser);
-            jsonObject.put("number", countByUserIdLevel(partnerUser.getUserId()));
+            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));
@@ -778,15 +770,15 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
         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("gradeName", "他的" + rule.getOrDefault(Integer.valueOf(partnerUser.getGrade() + 1), ""));
         return jsonObject;
     }
 
-    public Long countByUserIdLevel(String userId){
+    public Long countByUserIdLevel(String userId,Integer grade){
         if (Objects.isNull(userId)){
             return Long.parseLong("0");
         }
-        return baseMapper.selectCount(new LambdaQueryWrapper<PartnerUser>().eq(PartnerUser::getReferrerId, userId));
+        return baseMapper.selectCount(new LambdaQueryWrapper<PartnerUser>().eq(PartnerUser::getReferrerId, userId).eq(PartnerUser::getGrade, grade));
     }