From 4403d2a767c0f88edcecb25481e3bfaf011a839e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Wed, 8 Nov 2023 10:03:50 +0800 Subject: [PATCH] fix:78288 --- .../system/service/ISysUserService.java | 10 ---- .../service/impl/SysUserServiceImpl.java | 43 ---------------- .../LawsWorkingGroupUserController.java | 10 ++-- .../service/ILawsWorkingGroupUserService.java | 10 ++++ .../impl/LawsWorkingGroupUserServiceImpl.java | 50 ++++++++++++++++++- 5 files changed, 64 insertions(+), 59 deletions(-) diff --git a/laws-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java b/laws-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java index 238ea76b..2daf2a11 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java @@ -326,16 +326,6 @@ public interface ISysUserService extends IService { List getUserListByDepIds(List departIds); - /** - * 内部工作组模糊搜索获取满足条件的用户id集合,全为空的话就返回空 - * @param realname 姓名 - * @param username 工号 - * @param userRoleName 角色 - * @param userPostName 职位 - * @return - */ - List LawsWorkingGroupUserSearch(String realname, String username, String userRoleName, String userPostName); - /** * 根据username"登陆账号"返回"用户名(工号)" */ diff --git a/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java b/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java index 86c42df6..2571a68b 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java @@ -625,49 +625,6 @@ public class SysUserServiceImpl extends ServiceImpl impl return userMapper.getUserListByDepIds(departIds); } - /** - * 内部工作组模糊搜索获取满足条件的用户id集合 - * @param userName 姓名 - * @param userWorkNo 工号 - * @param userRoleName 角色 - * @param userPostName 职位 - * @return 满足条件的用户id集合 - */ - @Override - public List LawsWorkingGroupUserSearch(String userName, String userWorkNo, String userRoleName, String userPostName) { - if (StringUtils.isAllBlank(userName, userWorkNo, userRoleName, userPostName)) { - return new ArrayList<>(); - } - - List roles = new ArrayList<>(); - List userIds = new ArrayList<>(); - if (StringUtils.isNotBlank(userRoleName)) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.like(SysRole::getRoleName, userRoleName); - roles = sysRoleMapper.selectList(wrapper); - if (roles.isEmpty()) { - return new ArrayList<>(); - } - List sysUserRoles = sysUserRoleMapper.selectList(new LambdaQueryWrapper().in(SysUserRole::getRoleId, roles.stream().map(SysRole::getId).collect(Collectors.toList()))); - if (sysUserRoles.isEmpty()) { - return new ArrayList<>(); - } - userIds = sysUserRoles.stream().map(SysUserRole::getUserId).distinct().collect(Collectors.toList()); - if (userIds.isEmpty()) { - return new ArrayList<>(); - } - } - - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.like(StringUtils.isNotBlank(userName), SysUser::getRealname, userName) - .like(StringUtils.isNotBlank(userWorkNo), SysUser::getUsername, userWorkNo) - .in(!userIds.isEmpty() && StringUtils.isNotBlank(userRoleName), SysUser::getId, userIds); -// .like(StringUtils.isNotBlank(userPostName), SysUser::getPostName, userPostName); //目前没有岗位字段 - - List userRoles = list(wrapper); - return userRoles.stream().map(SysUser::getId).distinct().collect(Collectors.toList()); - } - @Override public String getNameNoByUsername(String userName) { if (StringUtils.isBlank(userName)){ diff --git a/laws-modules/src/main/java/com/jero/modules/sys/controller/LawsWorkingGroupUserController.java b/laws-modules/src/main/java/com/jero/modules/sys/controller/LawsWorkingGroupUserController.java index ab37887f..0bdda256 100644 --- a/laws-modules/src/main/java/com/jero/modules/sys/controller/LawsWorkingGroupUserController.java +++ b/laws-modules/src/main/java/com/jero/modules/sys/controller/LawsWorkingGroupUserController.java @@ -209,7 +209,7 @@ public class LawsWorkingGroupUserController extends JeroController template(@RequestParam(required = false) String workingGroupId, @RequestParam(required = false) String userName, @RequestParam(required = false) String userWorkNo, @RequestParam(required = false) String userRoleName, @RequestParam(required = false) String userPostName, HttpServletRequest request, HttpServletResponse response) { + public Result template(@RequestParam(required = false) String workingGroupId, @RequestParam(required = false) String realname, @RequestParam(required = false) String username, @RequestParam(required = false) String userRoleName, @RequestParam(required = false) String userPostName, HttpServletRequest request, HttpServletResponse response) { if (StringUtils.isBlank(workingGroupId)){ throw new JeroBootException(ResultCommon.PLEASE_SELECT_A_WORKGROUP_TO_EXPORT); } @@ -228,10 +228,10 @@ public class LawsWorkingGroupUserController extends JeroController queryDataByConditions(String userName, String userWorkNo, String userRoleName, String userPostName, String workingGroupId) { - List ids = sysUserService.LawsWorkingGroupUserSearch(userName, userWorkNo, userRoleName, userPostName); + List ids = lawsWorkingGroupUserService.lawsWorkingGroupUserSearch(userName, userWorkNo, userRoleName, userPostName); List list = new ArrayList<>(); if (!ids.isEmpty()) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); diff --git a/laws-modules/src/main/java/com/jero/modules/sys/service/ILawsWorkingGroupUserService.java b/laws-modules/src/main/java/com/jero/modules/sys/service/ILawsWorkingGroupUserService.java index 78958d31..afdd0bc0 100644 --- a/laws-modules/src/main/java/com/jero/modules/sys/service/ILawsWorkingGroupUserService.java +++ b/laws-modules/src/main/java/com/jero/modules/sys/service/ILawsWorkingGroupUserService.java @@ -79,4 +79,14 @@ public interface ILawsWorkingGroupUserService extends IService list); + + /** + * 内部工作组模糊搜索获取满足条件的用户id集合,全为空的话就返回空 + * @param realname 姓名 + * @param username 工号 + * @param userRoleName 角色 + * @param userPostName 职位 + * @return + */ + List lawsWorkingGroupUserSearch(String realname, String username, String userRoleName, String userPostName); } diff --git a/laws-modules/src/main/java/com/jero/modules/sys/service/impl/LawsWorkingGroupUserServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/sys/service/impl/LawsWorkingGroupUserServiceImpl.java index 9b90d44d..5f11f807 100644 --- a/laws-modules/src/main/java/com/jero/modules/sys/service/impl/LawsWorkingGroupUserServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/sys/service/impl/LawsWorkingGroupUserServiceImpl.java @@ -19,6 +19,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.jero.common.exception.JeroBootException; +import java.util.ArrayList; import java.util.List; import java.util.Date; import java.util.Map; @@ -27,6 +28,8 @@ import java.util.stream.Collectors; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.system.query.QueryGenerator; + +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -49,6 +52,7 @@ public class LawsWorkingGroupUserServiceImpl extends ServiceImpl ids = sysUserService.LawsWorkingGroupUserSearch(realname, userName, userRoleName, userPostName); + List ids = lawsWorkingGroupUserSearch(realname, userName, userRoleName, userPostName); if (ids.isEmpty()){ return new Page<>(); } @@ -77,6 +81,50 @@ public class LawsWorkingGroupUserServiceImpl extends ServiceImpl lawsWorkingGroupUserSearch(String userName, String userWorkNo, String userRoleName, String userPostName) { + if (StringUtils.isAllBlank(userName, userWorkNo, userRoleName, userPostName)) { + return new ArrayList<>(); + } + + List roles; + List userIds = new ArrayList<>(); + userIds.add("-1"); + if (StringUtils.isNotBlank(userRoleName)) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.like(SysRole::getRoleName, userRoleName); + roles = sysRoleService.list(wrapper); + if (roles.isEmpty()) { + return new ArrayList<>(); + } + List sysUserRoles = sysUserRoleService.list(new LambdaQueryWrapper().in(SysUserRole::getRoleId, roles.stream().map(SysRole::getId).collect(Collectors.toList()))); + if (sysUserRoles.isEmpty()) { + return new ArrayList<>(); + } + userIds = sysUserRoles.stream().map(SysUserRole::getUserId).distinct().collect(Collectors.toList()); + if (userIds.isEmpty()) { + return new ArrayList<>(); + } + } + + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.like(StringUtils.isNotBlank(userName), SysUser::getRealname, userName) + .like(StringUtils.isNotBlank(userWorkNo), SysUser::getUsername, userWorkNo) + .in(!userIds.isEmpty() && StringUtils.isNotBlank(userRoleName), SysUser::getId, userIds) + .like(StringUtils.isNotBlank(userPostName), SysUser::getPost, userPostName); + + List userRoles = sysUserService.list(wrapper); + return userRoles.stream().map(SysUser::getId).distinct().collect(Collectors.toList()); + } + /** * 列表查询 */