Просмотр исходного кода

新增查询创客上级各种信息的接口

mac 2 лет назад
Родитель
Сommit
51e60e023b

+ 7 - 7
kxs-system/kxs-system-api/src/main/java/com/kxs/system/api/vo/admin/camp/CampBonusLogVO.java

@@ -38,7 +38,7 @@ public class CampBonusLogVO implements Serializable {
      */
      */
     @TableField(fill = FieldFill.INSERT)
     @TableField(fill = FieldFill.INSERT)
     @Schema(description = "新增时间")
     @Schema(description = "新增时间")
-    @ExcelProperty("新增时间")
+    @ExcelProperty(value = "新增时间" ,index = 8)
     private LocalDateTime createTime;
     private LocalDateTime createTime;
 
 
     /**
     /**
@@ -60,7 +60,7 @@ public class CampBonusLogVO implements Serializable {
      * 备注
      * 备注
      */
      */
     @Schema(description = "备注")
     @Schema(description = "备注")
-    @ExcelProperty("来源")
+    @ExcelProperty(value = "来源", index = 10)
     private String remark;
     private String remark;
 
 
 
 
@@ -89,13 +89,13 @@ public class CampBonusLogVO implements Serializable {
      * 组 ID
      * 组 ID
      */
      */
     @Schema(description = "组 ID")
     @Schema(description = "组 ID")
-    @ExcelProperty(value = "分组编号", index = 3)
+    @ExcelProperty(value = "分组编号", index = 1)
     private String groupId;
     private String groupId;
 
 
     /**
     /**
      * 组名称
      * 组名称
      */
      */
-    @ExcelProperty(value = "小组名称", index = 4)
+    @ExcelProperty(value = "小组名称", index = 2)
     private String groupName;
     private String groupName;
 
 
 
 
@@ -103,7 +103,7 @@ public class CampBonusLogVO implements Serializable {
      * 来源类型 电签券=0 大机券=1 组合包=2 小盟主=3 大盟主=4 pos开机=5 广电卡激活=6 来客吧激活=7 大小盟主兑换券=8 来客吧活动=9 来客吧非活动=10 好哒码牌=11 好哒pos=12
      * 来源类型 电签券=0 大机券=1 组合包=2 小盟主=3 大盟主=4 pos开机=5 广电卡激活=6 来客吧激活=7 大小盟主兑换券=8 来客吧活动=9 来客吧非活动=10 好哒码牌=11 好哒pos=12
      */
      */
     @Schema(description = "来源类型 电签券=0 大机券=1 组合包=2 小盟主=3 大盟主=4 pos开机=5 广电卡激活=6 来客吧激活=7 大小盟主兑换券=8 来客吧活动=9 来客吧非活动=10 好哒码牌=11 好哒pos=12")
     @Schema(description = "来源类型 电签券=0 大机券=1 组合包=2 小盟主=3 大盟主=4 pos开机=5 广电卡激活=6 来客吧激活=7 大小盟主兑换券=8 来客吧活动=9 来客吧非活动=10 好哒码牌=11 好哒pos=12")
-    @ExcelProperty(value = "来源类型", converter = EasyExcelConvert.class)
+    @ExcelProperty(value = "来源类型", index = 9, converter = EasyExcelConvert.class)
     @EnumFiledConvert(enumMap = "0-电签券,1-大机券,2-组合包,3-小盟主,4-大盟主,5-pos开机,6-广电卡激活,7-来客吧激活,8-大小盟主兑换券,9-来客吧活动,10-来客吧非活动,11-好哒码牌,12-好哒POS",single = false)
     @EnumFiledConvert(enumMap = "0-电签券,1-大机券,2-组合包,3-小盟主,4-大盟主,5-pos开机,6-广电卡激活,7-来客吧激活,8-大小盟主兑换券,9-来客吧活动,10-来客吧非活动,11-好哒码牌,12-好哒POS",single = false)
     private Integer sourceType;
     private Integer sourceType;
 
 
@@ -111,14 +111,14 @@ public class CampBonusLogVO implements Serializable {
      * 训练营用户姓名
      * 训练营用户姓名
      */
      */
     @Schema(description = "训练营用户姓名")
     @Schema(description = "训练营用户姓名")
-    @ExcelProperty(value = "参与创客姓名", index = 1)
+    @ExcelProperty(value = "参与创客姓名", index = 3)
     private String username;
     private String username;
 
 
     /**
     /**
      * 训练营用户编号
      * 训练营用户编号
      */
      */
     @Schema(description = "训练营用户编号")
     @Schema(description = "训练营用户编号")
-    @ExcelProperty(value = "参与创客编号", index = 2)
+    @ExcelProperty(value = "参与创客编号", index = 4)
     private String userCode;
     private String userCode;
 
 
     /**
     /**

+ 3 - 0
kxs-system/kxs-system-biz/src/main/resources/mapper/KxsCampUserMapper.xml

@@ -39,6 +39,9 @@
             <if test="param.userCode != null and param.userCode != ''">
             <if test="param.userCode != null and param.userCode != ''">
                 and a.user_code = #{param.userCode}
                 and a.user_code = #{param.userCode}
             </if>
             </if>
+            <if test="param.username != null and param.username != ''">
+                and a.username = #{param.username}
+            </if>
             <if test="param.groupId != null and param.groupId != ''">
             <if test="param.groupId != null and param.groupId != ''">
                 and a.group_id = #{param.groupId}
                 and a.group_id = #{param.groupId}
             </if>
             </if>

+ 25 - 0
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/vo/admin/user/SysParentUserInfoVO.java

@@ -0,0 +1,25 @@
+package com.kxs.user.api.vo.admin.user;
+
+import lombok.Builder;
+import lombok.Data;
+
+/**
+ * 创客信息
+ * @author debao.yang
+ * @createTime 2024-06-27 14:33
+ */
+@Data
+@Builder
+public class SysParentUserInfoVO {
+
+    /**
+     * 创客姓名
+     */
+    private String username;
+
+
+    /**
+     * 创客编号
+     */
+    private String userCode;
+}

+ 0 - 2
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/vo/admin/user/SysTopUserVO.java

@@ -1,7 +1,5 @@
 package com.kxs.user.api.vo.admin.user;
 package com.kxs.user.api.vo.admin.user;
 
 
-import com.kxs.user.api.model.KxsUser;
-import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.Data;
 
 
 /**
 /**

+ 41 - 0
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/vo/admin/user/SysUserTopInfoVO.java

@@ -0,0 +1,41 @@
+package com.kxs.user.api.vo.admin.user;
+
+import lombok.Builder;
+import lombok.Data;
+
+
+/**
+ * 上级创客信息
+ *
+ * @author 没秃顶的码农
+ * @date 2024-07-17
+ */
+@Data
+@Builder
+public class SysUserTopInfoVO {
+
+    /**
+     * 创客自己信息
+     */
+    private SysParentUserInfoVO meInfo ;
+
+    /**
+     * 上级创客信息
+     */
+    private SysParentUserInfoVO parentInfo;
+
+    /**
+     * 上级盟主信息
+     */
+    private SysParentUserInfoVO leaderInfo;
+
+    /**
+     * 合作信息
+     */
+    private SysParentUserInfoVO partnerInfo;
+
+    /**
+     * 顶级创客信息
+     */
+    private SysParentUserInfoVO topInfo;
+}

+ 12 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/controller/admin/SysUserController.java

@@ -71,6 +71,18 @@ public class SysUserController {
         return R.ok(page);
         return R.ok(page);
     }
     }
 
 
+    /**
+     * 查看创客的上级信息
+     *
+     * @param userCode 用户代码
+     * @return {@link R}
+     */
+    @GetMapping("/getTopUserInfo")
+    public R getTopUserInfo(@RequestParam("userCode") String userCode){
+
+        return R.ok(kxsUserService.getTopUserInfo(userCode));
+    }
+
 
 
     /**
     /**
      * 已注销创客
      * 已注销创客

+ 13 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/mapper/KxsLeaderMapper.java

@@ -2,10 +2,12 @@ package com.kxs.user.biz.mapper;
 
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.kxs.user.api.model.KxsLeader;
 import com.kxs.user.api.model.KxsLeader;
+import com.kxs.user.api.model.KxsUser;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 
 
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
+import java.util.List;
 
 
 /**
 /**
  * 盟主表(KxsLeader)表数据库访问层
  * 盟主表(KxsLeader)表数据库访问层
@@ -23,5 +25,16 @@ public interface KxsLeaderMapper extends BaseMapper<KxsLeader> {
      * @return {@link KxsLeader}
      * @return {@link KxsLeader}
      */
      */
     KxsLeader selectByLeader(@Param("userId") Integer userId, @Param("expiredDate") LocalDateTime expiredDate);
     KxsLeader selectByLeader(@Param("userId") Integer userId, @Param("expiredDate") LocalDateTime expiredDate);
+
+    /**
+     * 查询创客上级最近的盟主信息
+     *
+     * @param pidPath PID 路径
+     * @return {@link KxsUser}
+     */
+    KxsUser selectUserTopLeaderInfo(List<String> pidPath);
+
+
+
 }
 }
 
 

+ 10 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/mapper/KxsPartnerMapper.java

@@ -2,10 +2,12 @@ package com.kxs.user.biz.mapper;
 
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.kxs.user.api.model.KxsPartner;
 import com.kxs.user.api.model.KxsPartner;
+import com.kxs.user.api.model.KxsUser;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 
 
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
+import java.util.List;
 
 
 /**
 /**
  * 合伙人表(KxsPartner)表数据库访问层
  * 合伙人表(KxsPartner)表数据库访问层
@@ -24,5 +26,13 @@ public interface KxsPartnerMapper extends BaseMapper<KxsPartner> {
      * @return {@link KxsPartner}
      * @return {@link KxsPartner}
      */
      */
     KxsPartner selectByPartner(@Param("userId") Integer userId, @Param("expiredDate") LocalDateTime expiredDate);
     KxsPartner selectByPartner(@Param("userId") Integer userId, @Param("expiredDate") LocalDateTime expiredDate);
+
+    /**
+     * 查询创客上级最近的合伙人信息
+     *
+     * @param pidPath PID 路径
+     * @return {@link KxsUser}
+     */
+    KxsUser selectUserTopPartnerInfo(List<String> pidPath);
 }
 }
 
 

+ 8 - 4
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/KxsUserService.java

@@ -26,10 +26,7 @@ import com.kxs.user.api.dto.kxsapp.user.UserUpdateAreaDTO;
 import com.kxs.user.api.dto.kxsapp.user.UserUpdateLoginPhoneDTO;
 import com.kxs.user.api.dto.kxsapp.user.UserUpdateLoginPhoneDTO;
 import com.kxs.user.api.dto.kxsapp.user.UserUpdatePwdDTO;
 import com.kxs.user.api.dto.kxsapp.user.UserUpdatePwdDTO;
 import com.kxs.user.api.model.KxsUser;
 import com.kxs.user.api.model.KxsUser;
-import com.kxs.user.api.vo.admin.user.SysFeignUserDetailVO;
-import com.kxs.user.api.vo.admin.user.SysTopUserVO;
-import com.kxs.user.api.vo.admin.user.SysUserPageVO;
-import com.kxs.user.api.vo.admin.user.SysUserUserAccountListVO;
+import com.kxs.user.api.vo.admin.user.*;
 import com.kxs.user.api.vo.kxsapp.user.RealUserInfoVO;
 import com.kxs.user.api.vo.kxsapp.user.RealUserInfoVO;
 import com.kxs.user.api.vo.kxsapp.user.SearchMyUserListVO;
 import com.kxs.user.api.vo.kxsapp.user.SearchMyUserListVO;
 import com.kxs.user.api.vo.kxsapp.user.UserCodeInfoVO;
 import com.kxs.user.api.vo.kxsapp.user.UserCodeInfoVO;
@@ -366,5 +363,12 @@ public interface KxsUserService extends IService<KxsUser> {
      */
      */
     Map<Integer, SysFeignUserDetailVO> topUserList(List<Integer> userIds);
     Map<Integer, SysFeignUserDetailVO> topUserList(List<Integer> userIds);
 
 
+    /**
+     * 创客上级信息
+     *
+     * @param userCode 用户代码
+     * @return {@link SysUserTopInfoVO}
+     */
+    SysUserTopInfoVO getTopUserInfo(String userCode);
 }
 }
 
 

+ 47 - 51
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsUserServiceImpl.java

@@ -1,8 +1,6 @@
 package com.kxs.user.biz.service.impl;
 package com.kxs.user.biz.service.impl;
 
 
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.collection.CollectionUtil;
-import cn.hutool.core.date.DatePattern;
-import cn.hutool.core.date.LocalDateTimeUtil;
 import cn.hutool.core.text.CharSequenceUtil;
 import cn.hutool.core.text.CharSequenceUtil;
 import cn.hutool.core.util.IdcardUtil;
 import cn.hutool.core.util.IdcardUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.ObjectUtil;
@@ -13,7 +11,6 @@ import cn.hutool.http.HttpRequest;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -27,7 +24,6 @@ import com.kxs.common.core.exception.ValidateCodeException;
 import com.kxs.common.core.util.AssertUtil;
 import com.kxs.common.core.util.AssertUtil;
 import com.kxs.common.core.util.R;
 import com.kxs.common.core.util.R;
 import com.kxs.common.core.util.SpringContextHolder;
 import com.kxs.common.core.util.SpringContextHolder;
-import com.kxs.common.core.util.TotalDateUtil;
 import com.kxs.common.security.util.SecurityUtils;
 import com.kxs.common.security.util.SecurityUtils;
 import com.kxs.product.api.feign.RemoteKxsProductService;
 import com.kxs.product.api.feign.RemoteKxsProductService;
 import com.kxs.product.api.model.KxsMerchant;
 import com.kxs.product.api.model.KxsMerchant;
@@ -37,62 +33,28 @@ import com.kxs.store.api.model.KxsWarehouseLimit;
 import com.kxs.system.api.feign.RemoteUserMsgService;
 import com.kxs.system.api.feign.RemoteUserMsgService;
 import com.kxs.system.api.model.KxsUserMsg;
 import com.kxs.system.api.model.KxsUserMsg;
 import com.kxs.system.api.util.MsgTemplateUtil;
 import com.kxs.system.api.util.MsgTemplateUtil;
-import com.kxs.user.api.dto.admin.user.RestPwdDTO;
-import com.kxs.user.api.dto.admin.user.SysUserLogoutListDTO;
-import com.kxs.user.api.dto.admin.user.SysUserPageDTO;
-import com.kxs.user.api.dto.admin.user.SysUserUserAccountListDTO;
-import com.kxs.user.api.dto.admin.user.SysUserWhereListDTO;
-import com.kxs.user.api.dto.admin.user.UserSearchDTO;
+import com.kxs.user.api.dto.admin.user.*;
 import com.kxs.user.api.dto.kxsapp.ConcealParentDTO;
 import com.kxs.user.api.dto.kxsapp.ConcealParentDTO;
 import com.kxs.user.api.dto.kxsapp.app.ForgetPwdDTO;
 import com.kxs.user.api.dto.kxsapp.app.ForgetPwdDTO;
 import com.kxs.user.api.dto.kxsapp.app.MchRegisterDTO;
 import com.kxs.user.api.dto.kxsapp.app.MchRegisterDTO;
 import com.kxs.user.api.dto.kxsapp.app.RegisterDTO;
 import com.kxs.user.api.dto.kxsapp.app.RegisterDTO;
-import com.kxs.user.api.dto.kxsapp.user.ForgetPayPwdDTO;
-import com.kxs.user.api.dto.kxsapp.user.RealUserDTO;
-import com.kxs.user.api.dto.kxsapp.user.UserCheckUserInfoDTO;
-import com.kxs.user.api.dto.kxsapp.user.UserHandPwdDTO;
-import com.kxs.user.api.dto.kxsapp.user.UserMyUserListDTO;
-import com.kxs.user.api.dto.kxsapp.user.UserUpdateAreaDTO;
-import com.kxs.user.api.dto.kxsapp.user.UserUpdateLoginPhoneDTO;
-import com.kxs.user.api.dto.kxsapp.user.UserUpdatePwdDTO;
-import com.kxs.user.api.model.KxsLeader;
-import com.kxs.user.api.model.KxsPartner;
-import com.kxs.user.api.model.KxsUser;
-import com.kxs.user.api.model.KxsUserAmount;
-import com.kxs.user.api.model.KxsUserBank;
-import com.kxs.user.api.model.KxsUserPresetLog;
-import com.kxs.user.api.model.KxsUserReal;
-import com.kxs.user.api.vo.admin.user.SysFeignUserDetailVO;
-import com.kxs.user.api.vo.admin.user.SysTopUserVO;
-import com.kxs.user.api.vo.admin.user.SysUserPageVO;
-import com.kxs.user.api.vo.admin.user.SysUserUserAccountListVO;
-import com.kxs.user.api.vo.kxsapp.user.RealUserInfoVO;
-import com.kxs.user.api.vo.kxsapp.user.SearchMyUserListVO;
-import com.kxs.user.api.vo.kxsapp.user.UserCodeInfoVO;
-import com.kxs.user.api.vo.kxsapp.user.UserInfoVO;
-import com.kxs.user.api.vo.kxsapp.user.UserMyUserDetailVO;
-import com.kxs.user.api.vo.kxsapp.user.UserMyUserStatisticsVO;
+import com.kxs.user.api.dto.kxsapp.user.*;
+import com.kxs.user.api.model.*;
+import com.kxs.user.api.vo.admin.user.*;
+import com.kxs.user.api.vo.kxsapp.user.*;
 import com.kxs.user.api.vo.kxsapp.userLevel.LevelDetailVO;
 import com.kxs.user.api.vo.kxsapp.userLevel.LevelDetailVO;
 import com.kxs.user.api.vo.kxsapp.userLevel.LevelsVO;
 import com.kxs.user.api.vo.kxsapp.userLevel.LevelsVO;
 import com.kxs.user.biz.constant.UserConstants;
 import com.kxs.user.biz.constant.UserConstants;
 import com.kxs.user.biz.constant.enums.KxsUserStatusEnum;
 import com.kxs.user.biz.constant.enums.KxsUserStatusEnum;
 import com.kxs.user.biz.constant.enums.UserErrorTypeEnum;
 import com.kxs.user.biz.constant.enums.UserErrorTypeEnum;
 import com.kxs.user.biz.constant.enums.UserRealStatusEnum;
 import com.kxs.user.biz.constant.enums.UserRealStatusEnum;
-import com.kxs.user.biz.mapper.KxsLeaderMapper;
-import com.kxs.user.biz.mapper.KxsPartnerMapper;
-import com.kxs.user.biz.mapper.KxsUserAmountMapper;
-import com.kxs.user.biz.mapper.KxsUserBankMapper;
-import com.kxs.user.biz.mapper.KxsUserMapper;
-import com.kxs.user.biz.mapper.KxsUserPresetLogMapper;
-import com.kxs.user.biz.mapper.KxsUserRealMapper;
+import com.kxs.user.biz.mapper.*;
 import com.kxs.user.biz.service.KxsUserRealService;
 import com.kxs.user.biz.service.KxsUserRealService;
 import com.kxs.user.biz.service.KxsUserService;
 import com.kxs.user.biz.service.KxsUserService;
 import com.kxs.user.biz.util.SmsUtils;
 import com.kxs.user.biz.util.SmsUtils;
 import com.kxs.user.biz.util.TopUserIdUtil;
 import com.kxs.user.biz.util.TopUserIdUtil;
 import io.seata.spring.annotation.GlobalTransactional;
 import io.seata.spring.annotation.GlobalTransactional;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
-import nonapi.io.github.classgraph.json.JSONUtils;
-import org.checkerframework.checker.units.qual.K;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.beans.factory.annotation.Value;
@@ -109,14 +71,8 @@ import org.springframework.security.web.authentication.preauth.PreAuthenticatedA
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
-import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.UUID;
+import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
@@ -519,6 +475,46 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
         return map;
         return map;
     }
     }
 
 
+    @Override
+    public SysUserTopInfoVO getTopUserInfo(String userCode) {
+
+        SysUserTopInfoVO.SysUserTopInfoVOBuilder builder = SysUserTopInfoVO.builder();
+
+        //查询自己
+        KxsUser meUser = getOne(Wrappers.<KxsUser>lambdaQuery().eq(KxsUser::getUserCode, userCode));
+        Optional.ofNullable(meUser).orElseThrow(() -> new GlobalCustomerException(ErrorTypeEnum.USER_NOT_FOUND.getDescription()));
+
+        builder.meInfo(SysParentUserInfoVO.builder().userCode(meUser.getUserCode()).username(meUser.getUsername()).build());
+        List<String> pidPath = Arrays.asList(meUser.getPidPath().split(StrUtil.COMMA));
+        Collections.reverse(pidPath);
+
+        //查询上级
+        KxsUser parentUser = getById(meUser.getPid());
+        if(parentUser != null){
+            builder.parentInfo(SysParentUserInfoVO.builder().userCode(parentUser.getUserCode()).username(parentUser.getUsername()).build());
+        }
+
+        //查询上级盟主
+        KxsUser leaderUser = kxsLeaderMapper.selectUserTopLeaderInfo(pidPath);
+        if(leaderUser != null){
+            builder.leaderInfo(SysParentUserInfoVO.builder().userCode(leaderUser.getUserCode()).username(leaderUser.getUsername()).build());
+        }
+
+        //查询上级的合伙人
+        KxsUser partnerUser = kxsPartnerMapper.selectUserTopPartnerInfo(pidPath);
+        if(leaderUser != null){
+            builder.partnerInfo(SysParentUserInfoVO.builder().userCode(partnerUser.getUserCode()).username(partnerUser.getUsername()).build());
+        }
+        
+        //查询顶级
+        KxsUser topUser = getById(meUser.getPidPath().split(StrUtil.COMMA)[2]);
+        if(topUser != null){
+            builder.topInfo(SysParentUserInfoVO.builder().userCode(topUser.getUserCode()).username(topUser.getUsername()).build());
+        }
+
+        return builder.build();
+    }
+
     @Override
     @Override
     public Boolean sendCode(String mobile) {
     public Boolean sendCode(String mobile) {
 
 

+ 17 - 0
kxs-user/kxs-user-biz/src/main/resources/mapper/KxsLeaderMapper.xml

@@ -22,5 +22,22 @@
           and expired_date > #{expiredDate}
           and expired_date > #{expiredDate}
           and del_flag = 0
           and del_flag = 0
     </select>
     </select>
+    <select id="selectUserTopLeaderInfo" resultType="com.kxs.user.api.model.KxsUser">
+        select ku.*
+        from kxs_leader kl
+        left join kxs_user ku on kl.user_id = ku.id
+        <where>
+            and kl.del_flag = 0
+            and kl.leader_type &lt;= 2
+            and kl.user_id in
+            <foreach collection="pidPath" item="userId" open="(" separator="," close=")">
+                #{userId}
+            </foreach>
+            and kl.expired_date > NOW()
+        </where>
+        ORDER BY FIELD(kl.user_id, <foreach collection="pidPath" item="userId" separator=",">#{userId}</foreach>)
+        limit 1
+    </select>
+
 
 
 </mapper>
 </mapper>

+ 15 - 0
kxs-user/kxs-user-biz/src/main/resources/mapper/KxsPartnerMapper.xml

@@ -24,5 +24,20 @@
           and expired_date > #{expiredDate}
           and expired_date > #{expiredDate}
           and del_flag = 0
           and del_flag = 0
     </select>
     </select>
+    <select id="selectUserTopPartnerInfo" resultType="com.kxs.user.api.model.KxsUser">
+        select ku.*
+        from kxs_partner kp
+        left join kxs_user ku on kp.user_id = ku.id
+        <where>
+            and kp.del_flag = 0
+            and kp.user_id in
+            <foreach collection="pidPath" item="userId" open="(" separator="," close=")">
+                #{userId}
+            </foreach>
+            and kp.expired_date > NOW()
+        </where>
+        ORDER BY FIELD(kp.user_id, <foreach collection="pidPath" item="userId" separator=",">#{userId}</foreach>)
+        limit 1
+    </select>
 
 
 </mapper>
 </mapper>