添加内部工作组模糊搜索获取满足条件的用户id集合方法
This commit is contained in:
@@ -327,4 +327,14 @@ public interface ISysUserService extends IService<SysUser> {
|
|||||||
List<SysUser> getUserListByDepIds(List<String> departIds);
|
List<SysUser> getUserListByDepIds(List<String> departIds);
|
||||||
|
|
||||||
SysUser getUserByWorkNo(String workNo);
|
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.SysUserDepNameVo;
|
||||||
import com.jero.modules.system.vo.SysUserRoleNameVo;
|
import com.jero.modules.system.vo.SysUserRoleNameVo;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.poi.ss.formula.functions.T;
|
import org.apache.poi.ss.formula.functions.T;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.cache.annotation.CacheEvict;
|
import org.springframework.cache.annotation.CacheEvict;
|
||||||
@@ -629,6 +630,50 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||||||
return userMapper.getUserByWorkNo(workNo);
|
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
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@CacheEvict(value={CacheConstant.SYS_USERS_CACHE}, allEntries=true)
|
@CacheEvict(value={CacheConstant.SYS_USERS_CACHE}, allEntries=true)
|
||||||
|
|||||||
Reference in New Issue
Block a user