From 123cf224caf2740d99d30011290a46124bb6614b Mon Sep 17 00:00:00 2001 From: caozhen <18736171426@139.com> Date: Fri, 8 Sep 2023 13:51:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=86=85=E9=83=A8=E5=B7=A5?= =?UTF-8?q?=E4=BD=9C=E7=BB=84=E6=A8=A1=E7=B3=8A=E6=90=9C=E7=B4=A2=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=BB=A1=E8=B6=B3=E6=9D=A1=E4=BB=B6=E7=9A=84=E7=94=A8?= =?UTF-8?q?=E6=88=B7id=E9=9B=86=E5=90=88=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/service/ISysUserService.java | 10 +++++ .../service/impl/SysUserServiceImpl.java | 45 +++++++++++++++++++ 2 files changed, 55 insertions(+) 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 ad5c0a11..13e787b3 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 @@ -327,4 +327,14 @@ public interface ISysUserService extends IService { List getUserListByDepIds(List departIds); SysUser getUserByWorkNo(String workNo); + + /** + * 内部工作组模糊搜索获取满足条件的用户id集合,全为空的话就返回空 + * @param userName 姓名 + * @param userWorkNo 工号 + * @param userRoleName 角色 + * @param userPostName 职位 + * @return + */ + List LawsWorkingGroupUserSearch(String userName, String userWorkNo, String userRoleName, String userPostName); } 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 9d8c4551..fa5b5060 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 @@ -24,6 +24,7 @@ import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.vo.SysUserDepNameVo; import com.jero.modules.system.vo.SysUserRoleNameVo; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheEvict; @@ -629,6 +630,50 @@ public class SysUserServiceImpl extends ServiceImpl impl return userMapper.getUserByWorkNo(workNo); } + /** + * 内部工作组模糊搜索获取满足条件的用户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::getWorkNo, 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 @Transactional(rollbackFor = Exception.class) @CacheEvict(value={CacheConstant.SYS_USERS_CACHE}, allEntries=true)