添加内部工作组模糊搜索获取满足条件的用户id集合方法

This commit is contained in:
caozhen
2023-09-08 13:51:16 +08:00
parent d519eee703
commit 123cf224ca
2 changed files with 55 additions and 0 deletions
@@ -327,4 +327,14 @@ public interface ISysUserService extends IService<SysUser> {
List<SysUser> getUserListByDepIds(List<String> departIds);
SysUser getUserByWorkNo(String workNo);
/**
* 内部工作组模糊搜索获取满足条件的用户id集合,全为空的话就返回空
* @param userName 姓名
* @param userWorkNo 工号
* @param userRoleName 角色
* @param userPostName 职位
* @return
*/
List<String> LawsWorkingGroupUserSearch(String userName, String userWorkNo, String userRoleName, String userPostName);
}
@@ -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<SysUserMapper, SysUser> impl
return userMapper.getUserByWorkNo(workNo);
}
/**
* 内部工作组模糊搜索获取满足条件的用户id集合
* @param userName 姓名
* @param userWorkNo 工号
* @param userRoleName 角色
* @param userPostName 职位
* @return 满足条件的用户id集合
*/
@Override
public List<String> LawsWorkingGroupUserSearch(String userName, String userWorkNo, String userRoleName, String userPostName) {
if (StringUtils.isAllBlank(userName, userWorkNo, userRoleName, userPostName)) {
return new ArrayList<>();
}
List<SysRole> roles = new ArrayList<>();
List<String> userIds = new ArrayList<>();
if (StringUtils.isNotBlank(userRoleName)) {
LambdaQueryWrapper<SysRole> wrapper = new LambdaQueryWrapper<>();
wrapper.like(SysRole::getRoleName, userRoleName);
roles = sysRoleMapper.selectList(wrapper);
if (roles.isEmpty()) {
return new ArrayList<>();
}
List<SysUserRole> sysUserRoles = sysUserRoleMapper.selectList(new LambdaQueryWrapper<SysUserRole>().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<SysUser> 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<SysUser> 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)