|
|
@@ -710,36 +710,25 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
@Override
|
|
|
public List<SysUser> findTree() {
|
|
|
//获取领导字段不为空的人的ID
|
|
|
- List<SysUser> list1 = lambdaQuery().isNotNull(SysUser::getLeaderId).list();
|
|
|
- if (list1 == null || list1.size() == 0){
|
|
|
+ List<SysUser> users = lambdaQuery().isNotNull(SysUser::getLeaderId).list();
|
|
|
+ if (users == null || users.size() == 0) {
|
|
|
return new ArrayList<>();
|
|
|
}
|
|
|
+ List<SysUser> topUsers = new ArrayList<>(); //存放1级用户
|
|
|
|
|
|
- List<String> collect1 = list1.stream().map(SysUser::getLeaderId).collect(Collectors.toList());
|
|
|
+ List<String> topUserId = users.stream().map(SysUser::getLeaderId).collect(Collectors.toList());
|
|
|
|
|
|
- //存放1级用户
|
|
|
- List<SysUser> sysUsers = new ArrayList<>();
|
|
|
- // 根据上面获取的ID列表,查询所有这些人的直接上级
|
|
|
- List<SysUser> list2 = lambdaQuery().in(SysUser::getId, collect1).list();
|
|
|
+ List<SysUser> list2 = lambdaQuery().in(SysUser::getId, topUserId).list();
|
|
|
// 从查询结果中筛选出没有上级的人员,作为组织结构树的顶层节点
|
|
|
for (SysUser sysUser : list2) {
|
|
|
if (Objects.isNull(sysUser.getLeaderId())) {
|
|
|
- sysUsers.add(sysUser);
|
|
|
+ topUsers.add(sysUser);
|
|
|
}
|
|
|
}
|
|
|
- // 为每个顶层节点分配其直接下级
|
|
|
- for (SysUser sysUser : sysUsers) {
|
|
|
- List<SysUser> chils = new ArrayList<>();
|
|
|
- // 遍历所有人员,为当前顶层节点找出其所有直接下级
|
|
|
- for (SysUser user : list2) {
|
|
|
- if (sysUser.getId().equals(user.getLeaderId())) {
|
|
|
- chils.add(user);
|
|
|
- }
|
|
|
- }
|
|
|
- // 将找到的直接下级列表设置到当前顶层节点用户对象中
|
|
|
- sysUser.setChildren(chils);
|
|
|
- }
|
|
|
- return sysUsers;
|
|
|
+
|
|
|
+ // 递归构建用户树结构
|
|
|
+ buildUserTree(topUsers, users);
|
|
|
+ return topUsers;
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -814,34 +803,33 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
quUserNumDto.setLevel("1");
|
|
|
wrapper.eq(SysArea::getLevel, "1");
|
|
|
}
|
|
|
-
|
|
|
- // 如果没有查询到用户ID,则直接返回空的分页对象
|
|
|
- if (strIds.size() == 0) {
|
|
|
- return new Page<>();
|
|
|
- }
|
|
|
-
|
|
|
- // 根据查询条件获取用户数量统计信息
|
|
|
- quUserNumDto.setUserIds(strIds);
|
|
|
- List<QuUserNum> userNums = sysUserMapper.getUserNum(quUserNumDto);
|
|
|
-
|
|
|
//遍历匹配区域名称
|
|
|
List<SysArea> areaList = sysAreaService.list(wrapper);
|
|
|
|
|
|
- // 根据区域名称匹配用户数量统计信息,并构造最终返回的结果列表
|
|
|
List<QuUserNum> quUserNums = new ArrayList<>();
|
|
|
- for (QuUserNum quUserNum : userNums) {
|
|
|
- for (SysArea sysArea : areaList) {
|
|
|
- if (!Objects.isNull(sysArea.getAreaCode())) {
|
|
|
- // 匹配区域名称
|
|
|
- String substring = sysArea.getAreaCode().substring(0, quUserNumDto.getGrouping());
|
|
|
- if (quUserNum.getAreaCode().equals(substring)) {
|
|
|
- quUserNum.setAreaName(sysArea.getAreaCname());
|
|
|
- quUserNums.add(quUserNum);
|
|
|
+
|
|
|
+ // 如果没有查询到用户ID,则直接返回空的分页对象
|
|
|
+ if (strIds.size() != 0) {
|
|
|
+ // 根据查询条件获取用户数量统计信息
|
|
|
+ quUserNumDto.setUserIds(strIds);
|
|
|
+ List<QuUserNum> userNums = sysUserMapper.getUserNum(quUserNumDto);
|
|
|
+
|
|
|
+ // 根据区域名称匹配用户数量统计信息,并构造最终返回的结果列表
|
|
|
+ for (QuUserNum quUserNum : userNums) {
|
|
|
+ for (SysArea sysArea : areaList) {
|
|
|
+ if (!Objects.isNull(sysArea.getAreaCode())) {
|
|
|
+ // 匹配区域名称
|
|
|
+ String substring = sysArea.getAreaCode().substring(0, quUserNumDto.getGrouping());
|
|
|
+ if (quUserNum.getAreaCode().equals(substring)) {
|
|
|
+ quUserNum.setAreaName(sysArea.getAreaCname());
|
|
|
+ quUserNums.add(quUserNum);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
// 为每个区域生成未匹配到的统计信息
|
|
|
for (SysArea sysArea : areaList) {
|
|
|
if (exists(quUserNums, sysArea)) {
|
|
|
@@ -868,8 +856,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
/**
|
|
|
* 查询用户订单数量进行区域统计详细信息
|
|
|
*
|
|
|
@@ -926,8 +912,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
* 手动对 QuUserNum 列表进行分页
|
|
|
*
|
|
|
* @param quUserNums 原始 QuUserNum 数据列表
|
|
|
- * @param pageNum 期望获取的页码(从 1 开始)
|
|
|
- * @param pageSize 每页包含的 QuUserNum 数量
|
|
|
+ * @param pageNum 期望获取的页码(从 1 开始)
|
|
|
+ * @param pageSize 每页包含的 QuUserNum 数量
|
|
|
* @return 对应页码的 QuUserNum 子列表,若输入参数无效则返回空列表
|
|
|
*/
|
|
|
public List<QuUserNum> paginate(List<QuUserNum> quUserNums, int pageNum, int pageSize) {
|
|
|
@@ -942,8 +928,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
private void findChildren(List<SysUser> SysUsers, List<SysUser> users, List<String> strIds) {
|
|
|
for (SysUser sysUser : SysUsers) {
|
|
|
List<SysUser> children = new ArrayList<>();
|
|
|
@@ -971,6 +955,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
}
|
|
|
return exist;
|
|
|
}
|
|
|
+
|
|
|
private boolean exists(List<SysUser> sysUsers, SysUser sysUser) {
|
|
|
boolean exist = false;
|
|
|
for (SysUser user : sysUsers) {
|
|
|
@@ -980,22 +965,39 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
}
|
|
|
return exist;
|
|
|
}
|
|
|
+
|
|
|
+ private void buildUserTree(List<SysUser> topUsers, List<SysUser> users) {
|
|
|
+ for (SysUser user : topUsers) {
|
|
|
+ List<SysUser> children = new ArrayList<>();
|
|
|
+ for (SysUser childUser : users) {
|
|
|
+ if (user.getId().equals(childUser.getLeaderId()) && !childUser.getId().contains("M")) {
|
|
|
+ children.add(childUser);
|
|
|
+ // 递归查找下一级
|
|
|
+ buildUserTree(children, users);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ user.setChildren(children);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
- * @version
|
|
|
- * @author: hxl
|
|
|
- * @Date: 2024/4/16 15:51
|
|
|
- * @Description: 获取待客录入的可选业务员
|
|
|
- * 查询
|
|
|
+ * @version
|
|
|
+ * @author: hxl
|
|
|
+ * @Date: 2024/4/16 15:51
|
|
|
+ * @Description: 获取待客录入的可选业务员
|
|
|
+ * 查询
|
|
|
*/
|
|
|
@Override
|
|
|
public List<SysUserBaseVO> getAllUsersByHospitality(SysUserVOExt sysUserVOExt) {
|
|
|
return super.baseMapper.getAllUsersByHospitality(sysUserVOExt);
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
- * @version
|
|
|
- * @author: hxl
|
|
|
- * @Date: 2024/4/18 16:14
|
|
|
- * @Description: 获取客服人员列表数据
|
|
|
+ * @version
|
|
|
+ * @author: hxl
|
|
|
+ * @Date: 2024/4/18 16:14
|
|
|
+ * @Description: 获取客服人员列表数据
|
|
|
*/
|
|
|
@Override
|
|
|
public List<SysUserBaseVO> getCustomerUsers(SysUserVOExt sysUserVOExt) {
|