Browse Source

创客信息管理顶级创客信息添加

杨德宝 2 years ago
parent
commit
efca2f53f7

+ 5 - 60
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/vo/admin/user/SysUserWhereListVO.java → kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/vo/admin/user/SysUserPageVO.java

@@ -1,6 +1,7 @@
 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;
 
@@ -10,75 +11,19 @@ import java.time.LocalDateTime;
 import java.util.List;
 
 /**
- * 创客信息-上下级创客vo
+ * 创客信息-列表vo
  *
  * @author 系统
- * @date 2024-06-24 09:30:01
+ * @date 2024-06-24 09:30:02
  */
 @Data
-@Schema(description = "创客信息-上下级创客返回实体")
-public class SysUserWhereListVO implements Serializable {
+@Schema(description = "创客信息-列表返回实体")
+public class SysUserPageVO extends KxsUser implements Serializable {
 
 	@Serial
 	private static final long serialVersionUID = 1L;
 
 
-    /**
-     * 主键ID
-     */
-    @Schema(description = "主键ID")
-    private Integer id;
-
-
-    /**
-     * 新增时间
-     */
-    @Schema(description = "新增时间")
-    private LocalDateTime createTime;
-
-
-    /**
-     * 用户名
-     */
-    @Schema(description = "用户名")
-    private String username;
-
-
-    /**
-     * 手机号
-     */
-    @Schema(description = "手机号")
-    private String phone;
-
-
-    /**
-     * 邀请码
-     */
-    @Schema(description = "邀请码")
-    private String userCode;
-
-
-    /**
-     * 用户等级
-     */
-    @Schema(description = "用户等级")
-    private Integer userLevel;
-
-
-    /**
-     * 状态 0注销 1正常 2锁定不可登陆和提现
-     */
-    @Schema(description = "状态 0注销 1正常 2锁定不可登陆和提现")
-    private Integer status;
-
-
-    /**
-     * 是否商户型创客 0否 1是
-     */
-    @Schema(description = "是否商户型创客 0否 1是")
-    private Integer isMerchantMaker;
-
-
     /**
      * 实名时间
      */

+ 5 - 4
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/controller/admin/SysUserController.java

@@ -12,7 +12,8 @@ import com.kxs.user.api.dto.admin.user.SysUserUnRealUserPageDTO;
 import com.kxs.user.api.dto.admin.user.SysUserUserAccountListDTO;
 import com.kxs.user.api.dto.admin.user.SysUserWhereListDTO;
 import com.kxs.user.api.model.KxsUser;
-import com.kxs.user.api.vo.admin.user.SysUserWhereListVO;
+import com.kxs.user.api.vo.admin.user.SysUserPageVO;
+import com.kxs.user.api.vo.admin.user.SysUserUserAccountListVO;
 import com.kxs.user.biz.constant.enums.UserRealStatusEnum;
 import com.kxs.user.biz.service.KxsUserReRealService;
 import com.kxs.user.biz.service.KxsUserService;
@@ -57,7 +58,7 @@ public class SysUserController {
      * @return 创客信息-上下级创客
      */
     @GetMapping("/whereList")
-    public R whereList(Page<SysUserWhereListVO> page, @Valid SysUserWhereListDTO param) {
+    public R whereList(Page<SysUserPageVO> page, @Valid SysUserWhereListDTO param) {
         kxsUserService.getUserWhereList(page, param);
         return R.ok(page);
     }
@@ -85,7 +86,7 @@ public class SysUserController {
      * @return 创客账户信息
      */
     @GetMapping("/userAccountList")
-    public R userAccountList(Page<KxsUser> page, SysUserUserAccountListDTO param) {
+    public R userAccountList(Page<SysUserUserAccountListVO> page, SysUserUserAccountListDTO param) {
         kxsUserService.userAccountPage(page, param);
         return R.ok(page);
     }
@@ -115,7 +116,7 @@ public class SysUserController {
      * @return 创客信息-列表
      */
     @GetMapping("/page")
-    public R page(Page<KxsUser> page, @ParameterObject SysUserPageDTO param) {
+    public R page(Page<SysUserPageVO> page, @ParameterObject SysUserPageDTO param) {
         kxsUserService.getUserPage(page, param);
         return R.ok(page);
     }

+ 6 - 6
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/mapper/KxsUserMapper.java

@@ -1,19 +1,19 @@
 package com.kxs.user.biz.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 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.kxsapp.user.UserMyUserListDTO;
 import com.kxs.user.api.model.KxsUser;
-import com.kxs.user.api.vo.admin.user.SysUserWhereListVO;
+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.UserMyUserListVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 
 import java.util.List;
 
@@ -71,7 +71,7 @@ public interface KxsUserMapper extends BaseMapper<KxsUser> {
      * @param param 查询参数
      * @return list
      */
-    List<KxsUser> getUserPage(Page page, @Param("query") SysUserPageDTO param);
+    List<SysUserPageVO> getUserPage(Page page, @Param("query") SysUserPageDTO param);
 
     /**
      * 分页查询上下级创客信息
@@ -79,7 +79,7 @@ public interface KxsUserMapper extends BaseMapper<KxsUser> {
      * @param param
      * @return
      */
-    List<SysUserWhereListVO> getUserWhereList(Page page, @Param("query") SysUserWhereListDTO param);
+    List<SysUserPageVO> getUserWhereList(Page page, @Param("query") SysUserWhereListDTO param);
 
     /**
      * 分页查询已注销创客
@@ -96,6 +96,6 @@ public interface KxsUserMapper extends BaseMapper<KxsUser> {
      * @param param
      * @return
      */
-    List<SysUserWhereListVO> userAccountPage(Page page, @Param("query")SysUserUserAccountListDTO param);
+    List<SysUserUserAccountListVO> userAccountPage(Page page, @Param("query")SysUserUserAccountListDTO param);
 }
 

+ 14 - 7
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/KxsUserService.java

@@ -1,6 +1,6 @@
 package com.kxs.user.biz.service;
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.kxs.common.core.constant.enums.UserStatusEnum;
 import com.kxs.common.core.util.R;
@@ -14,14 +14,21 @@ 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.MchRegisterDTO;
 import com.kxs.user.api.dto.kxsapp.app.RegisterDTO;
-import com.kxs.user.api.dto.kxsapp.user.*;
+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.KxsUser;
-import com.kxs.user.api.vo.admin.user.SysUserWhereListVO;
+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.UserCodeInfoVO;
 import com.kxs.user.api.vo.kxsapp.user.UserInfoVO;
 import com.kxs.user.api.vo.kxsapp.userLevel.LevelDetailVO;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 
 import java.util.List;
 
@@ -291,7 +298,7 @@ public interface KxsUserService extends IService<KxsUser> {
      * @param param
      * @return
      */
-    List<KxsUser> getUserPage(Page page, SysUserPageDTO param);
+    List<SysUserPageVO> getUserPage(Page page, SysUserPageDTO param);
 
     /**
      * 分页查询创客上下级列表
@@ -299,7 +306,7 @@ public interface KxsUserService extends IService<KxsUser> {
      * @param param
      * @return
      */
-    List<SysUserWhereListVO> getUserWhereList(Page page, SysUserWhereListDTO param);
+    List<SysUserPageVO> getUserWhereList(Page page, SysUserWhereListDTO param);
 
     /**
      * 分页查询已注销创客
@@ -328,7 +335,7 @@ public interface KxsUserService extends IService<KxsUser> {
      */
     void restPwd(RestPwdDTO param);
 
-    List<SysUserWhereListVO> userAccountPage(Page page, SysUserUserAccountListDTO param);
+    List<SysUserUserAccountListVO> userAccountPage(Page page, SysUserUserAccountListDTO param);
 
 }
 

+ 84 - 14
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsUserServiceImpl.java

@@ -9,8 +9,8 @@ import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.RandomUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.crypto.SecureUtil;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.kxs.common.core.constant.CacheConstants;
 import com.kxs.common.core.constant.CommonConstants;
@@ -40,26 +40,50 @@ 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.MchRegisterDTO;
 import com.kxs.user.api.dto.kxsapp.app.RegisterDTO;
-import com.kxs.user.api.dto.kxsapp.user.*;
-import com.kxs.user.api.model.*;
-import com.kxs.user.api.vo.admin.user.SysUserWhereListVO;
-import com.kxs.user.api.vo.kxsapp.user.*;
+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.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.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.vo.kxsapp.userLevel.LevelDetailVO;
 import com.kxs.user.api.vo.kxsapp.userLevel.LevelsVO;
 import com.kxs.user.biz.constant.UserConstants;
 import com.kxs.user.biz.constant.enums.KxsUserStatusEnum;
 import com.kxs.user.biz.constant.enums.UserErrorTypeEnum;
 import com.kxs.user.biz.constant.enums.UserRealStatusEnum;
-import com.kxs.user.biz.mapper.*;
+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.service.KxsUserService;
 import com.kxs.user.biz.util.SmsUtils;
+import com.kxs.user.biz.util.TopUserIdUtil;
 import io.seata.spring.annotation.GlobalTransactional;
 import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.cache.CacheManager;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.security.authentication.event.LogoutSuccessEvent;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
@@ -74,10 +98,13 @@ import org.springframework.transaction.annotation.Transactional;
 
 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.concurrent.TimeUnit;
+import java.util.stream.Collectors;
 
 /**
  * 用户表(KxsSecurityUser)表服务实现类
@@ -274,23 +301,66 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
     }
 
     @Override
-    public List<KxsUser> getUserPage(Page page, SysUserPageDTO param) {
-        List<KxsUser> list = baseMapper.getUserPage(page, param);
+    public List<SysUserPageVO> getUserPage(Page page, SysUserPageDTO param) {
+        List<SysUserPageVO> list = baseMapper.getUserPage(page, param);
+        //封装顶级创客信息
+        packageTopUser(list);
         if(page != null){
             page.setRecords(list);
         }
         return list;
     }
 
+    /**
+     * 封装顶级创客信息
+     * @param list
+     */
+    private void packageTopUser(List<SysUserPageVO> list){
+        if(CollectionUtil.isNotEmpty(list)){
+            //顶级创客的userId集合
+            List<Integer> userIds = new ArrayList<>();
+            //当前用户和顶级创客对应关系map
+            Map<Integer,Integer> map = new HashMap<>();
+            for(SysUserPageVO sysUserPageVO:list){
+                String pidPath = sysUserPageVO.getPidPath();
+                String topUserId = TopUserIdUtil.getTopUserId(pidPath);
+                if(StringUtils.isNotBlank(topUserId)){
+                    map.put(sysUserPageVO.getId(),Integer.valueOf(topUserId));
+                    userIds.add(Integer.valueOf(topUserId));
+                }
+            }
+            if(CollectionUtil.isNotEmpty(userIds)){
+                //查询顶级创客
+                List<KxsUser> kxsUsers = listByIds(userIds);
+                Map<Integer, KxsUser> topUserMap = kxsUsers.stream().collect(Collectors.toMap(o -> o.getId(), o -> o, (o1, o2) -> o2));
+                //设置顶级创客信息
+                for(SysUserPageVO sysUserPageVO:list){
+                    Integer userId = sysUserPageVO.getId();
+                    if(map.containsKey(userId)){
+                        Integer topUserId = map.get(userId);
+                        if(topUserMap.containsKey(topUserId)){
+                            KxsUser kxsUser = topUserMap.get(topUserId);
+                            sysUserPageVO.setTopUserCode(kxsUser.getUserCode());
+                            sysUserPageVO.setTopUsername(kxsUser.getUsername());
+                        }
+                    }
+                }
+            }
+
+        }
+    }
+
     @Override
-    public List<SysUserWhereListVO> getUserWhereList(Page page, SysUserWhereListDTO param) {
+    public List<SysUserPageVO> getUserWhereList(Page page, SysUserWhereListDTO param) {
         String userId = param.getUserId();
         KxsUser kxsUser = getById(userId);
         if(kxsUser == null){
             throw new GlobalCustomerException("创客信息不存在");
         }
         param.setPid(kxsUser.getPid());
-        List<SysUserWhereListVO> list = baseMapper.getUserWhereList(page, param);
+        List<SysUserPageVO> list = baseMapper.getUserWhereList(page, param);
+        //封装顶级创客信息
+        packageTopUser(list);
         if(page != null){
             page.setRecords(list);
         }
@@ -312,7 +382,7 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
         if(kxsUser == null){
             throw new GlobalCustomerException("创客信息不存在");
         }
-        kxsUser.setStatus(UserStatusEnum.REMOVE.getCode());
+        kxsUser.setStatus(userStatusEnum.getCode());
         updateById(kxsUser);
     }
 
@@ -351,8 +421,8 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
     }
 
     @Override
-    public List<SysUserWhereListVO> userAccountPage(Page page, SysUserUserAccountListDTO param) {
-        List<SysUserWhereListVO> list = baseMapper.userAccountPage(page, param);
+    public List<SysUserUserAccountListVO> userAccountPage(Page page, SysUserUserAccountListDTO param) {
+        List<SysUserUserAccountListVO> list = baseMapper.userAccountPage(page, param);
         if(page != null){
             page.setRecords(list);
         }

+ 29 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/util/TopUserIdUtil.java

@@ -0,0 +1,29 @@
+package com.kxs.user.biz.util;
+
+
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * 获取创客顶级创客
+ * @author debao.yang
+ * @createTime 2024-06-26 10:39
+ */
+public class TopUserIdUtil {
+
+    private static final  Integer topCode = 2;
+
+    private static final  String divide = ",";
+
+
+    public static String getTopUserId(String pidPath) {
+        String topUserId = "";
+        if(StringUtils.isNotBlank(pidPath)){
+            String[] split = pidPath.split(divide);
+            if(split.length>topCode){
+                topUserId = split[topCode];
+            }
+        }
+        return topUserId;
+    }
+
+}

+ 28 - 8
kxs-user/kxs-user-biz/src/main/resources/mapper/KxsUserMapper.xml

@@ -29,7 +29,7 @@
         <result column="to_merchant_maker_time" property="toMerchantMakerTime"/>
     </resultMap>
     
-    <resultMap id="WebKxsUserMap" extends="KxsUserMap" type="com.kxs.user.api.vo.admin.user.SysUserWhereListVO">
+    <resultMap id="WebKxsUserMap" extends="KxsUserMap" type="com.kxs.user.api.vo.admin.user.SysUserPageVO">
         <result column="realTime" property="realTime"/>
         <result column="pUsername" property="pUsername"/>
         <result column="pUserCode" property="pUserCode"/>
@@ -117,9 +117,28 @@
         </if>
     </select>
 
-    <select id="getUserPage" resultMap="KxsUserMap">
-        select DISTINCT ku.* from kxs_user ku
-        left join kxs_user_real kur on ku.id = kur.user_id
+    <select id="getUserPage" resultMap="WebKxsUserMap">
+        SELECT DISTINCT
+            ku.id,
+            ku.create_time,
+            ku.username,
+            ku.phone,
+            ku.user_code,
+            ku.user_level,
+            ku.STATUS,
+            ku.pid_path,
+            ku.is_merchant_maker,
+            kur.create_time AS realTime,
+            p_ku.username AS pUsername,
+            p_ku.user_code AS pUserCode,
+            IF( kl.user_id IS NOT NULL, 1, 0 ) AS isLeader,
+            IF( kp.user_id IS NOT NULL, 1, 0 ) AS isPartner
+        FROM
+            kxs_user ku
+            LEFT JOIN kxs_user_real kur ON ku.id = kur.user_id
+            LEFT JOIN kxs_user p_ku ON ku.pid = p_ku.id
+            LEFT JOIN kxs_leader kl ON ku.id = kl.user_id
+            LEFT JOIN kxs_partner kp ON ku.id = kp.user_id
         <where>
             and ku.del_flag != 1
             <if test="query.username != null and query.username != ''">
@@ -150,6 +169,7 @@
             ku.user_code,
             ku.user_level,
             ku.STATUS,
+            ku.pid_path,
             ku.is_merchant_maker,
             kur.create_time AS realTime,
             p_ku.username AS pUsername,
@@ -158,10 +178,10 @@
             IF( kp.user_id IS NOT NULL, 1, 0 ) AS isPartner
         FROM
             kxs_user ku
-            LEFT JOIN kxs_user_real kur ON ku.id = kur.user_id and kur.del_flag = 0
-            LEFT JOIN kxs_user p_ku ON ku.pid = p_ku.id and p_ku.del_flag = 0
-            LEFT JOIN kxs_leader kl ON ku.id = kl.user_id and kl.del_flag = 0
-            LEFT JOIN kxs_partner kp ON ku.id = kp.user_id  and kp.del_flag = 0
+            LEFT JOIN kxs_user_real kur ON ku.id = kur.user_id
+            LEFT JOIN kxs_user p_ku ON ku.pid = p_ku.id
+            LEFT JOIN kxs_leader kl ON ku.id = kl.user_id
+            LEFT JOIN kxs_partner kp ON ku.id = kp.user_id
         <where>
             and ku.del_flag != 1
             <if test="query.queryType != null and query.queryType != ''">