添加内部工作组模糊搜索获取满足条件的用户id集合方法
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
+45
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user