【增强】用户、机构选择器优化

pull/124/head
徐玉祥 2023-06-29 23:33:57 +08:00
parent ad34706ad1
commit bc813b0ede
3 changed files with 8 additions and 18 deletions

View File

@ -91,7 +91,7 @@ public interface BizOrgService extends IService<BizOrg> {
* @author xuyuxiang
* @date 2022/7/25 19:42
**/
List<BizOrg> getCachedAllOrgList();
List<BizOrg> getAllOrgList();
/**
* id

View File

@ -257,23 +257,13 @@ public class BizOrgServiceImpl extends ServiceImpl<BizOrgMapper, BizOrg> impleme
}
@Override
public List<BizOrg> getCachedAllOrgList() {
// 从缓存中取
Object cacheValue = commonCacheOperator.get(ORG_CACHE_ALL_KEY);
if(ObjectUtil.isNotEmpty(cacheValue)) {
return JSONUtil.toList(JSONUtil.parseArray(cacheValue), BizOrg.class);
}
List<BizOrg> orgList = this.list(new LambdaQueryWrapper<BizOrg>().orderByAsc(BizOrg::getSortCode));
if(ObjectUtil.isNotEmpty(orgList)) {
// 更新到缓存
commonCacheOperator.put(ORG_CACHE_ALL_KEY, JSONUtil.toJsonStr(orgList));
}
return orgList;
public List<BizOrg> getAllOrgList() {
return this.list(new LambdaQueryWrapper<BizOrg>().orderByAsc(BizOrg::getSortCode));
}
@Override
public String getOrgIdByOrgFullNameWithCreate(String orgFullName) {
List<BizOrg> cachedAllOrgList = this.getCachedAllOrgList();
List<BizOrg> cachedAllOrgList = this.getAllOrgList();
List<Tree<String>> treeList = TreeUtil.build(cachedAllOrgList.stream().map(bizOrg ->
new TreeNode<>(bizOrg.getId(), bizOrg.getParentId(), bizOrg.getName(), bizOrg.getSortCode()))
.collect(Collectors.toList()), "0");

View File

@ -1501,11 +1501,11 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
return this.getAllUserSelectorList();
} else {
if (ObjectUtil.isNotEmpty(sysUserSelectorUserParam.getOrgId())) {
// 如果机构id不为空则查询该机构所在顶级机构下的所有人
List<String> parentAndChildOrgIdList = CollStreamUtil.toList(sysOrgService.getParentAndChildListById(sysOrgService
// 如果机构id不为空则查询该机构极其子机构下的所有人
List<String> childOrgIdList = CollStreamUtil.toList(sysOrgService.getChildListById(sysOrgService
.getCachedAllOrgList(), sysUserSelectorUserParam.getOrgId(), true), SysOrg::getId);
if (ObjectUtil.isNotEmpty(parentAndChildOrgIdList)) {
lambdaQueryWrapper.in(SysUser::getOrgId, parentAndChildOrgIdList);
if (ObjectUtil.isNotEmpty(childOrgIdList)) {
lambdaQueryWrapper.in(SysUser::getOrgId, childOrgIdList);
} else {
return new Page<>();
}