【7.4.0】【org】优化获取用户组织机构列表

dev-7.4.0-sync
fengshuonan 2023-04-17 18:34:30 +08:00
parent 2a3cfc07c7
commit f18d7aa8ce
1 changed files with 17 additions and 3 deletions

View File

@ -27,6 +27,7 @@ package cn.stylefeng.roses.kernel.system.modular.user.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.stylefeng.roses.kernel.auth.api.context.LoginContext;
import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser;
import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi;
import cn.stylefeng.roses.kernel.system.api.OrganizationServiceApi;
import cn.stylefeng.roses.kernel.system.api.exception.SystemModularException;
@ -192,14 +193,27 @@ public class SysUserOrgServiceServiceImpl extends ServiceImpl<SysUserOrgMapper,
@Override
public List<HrOrganizationDTO> getUserCompanyList() {
ArrayList<HrOrganizationDTO> results = new ArrayList<>();
LoginUser loginUser = LoginContext.me().getLoginUser();
// 获取当前登录用户的组织机构id放在第一位
Long currentOrgId = loginUser.getOrganizationId();
// 获取当前用户orgId的公司信息
HrOrganizationDTO currentCompanyInfo = organizationServiceApi.getOrgCompanyInfo(currentOrgId);
results.add(currentCompanyInfo);
// 获取当前用户绑定的组织机构列表
UserOrgRequest userOrgResponse = new UserOrgRequest();
userOrgResponse.setUserId(LoginContext.me().getLoginUser().getUserId());
userOrgResponse.setUserId(loginUser.getUserId());
List<SysUserOrg> sysUserOrgList = this.findList(userOrgResponse);
ArrayList<HrOrganizationDTO> results = new ArrayList<>();
for (SysUserOrg sysUserOrg : sysUserOrgList) {
if (sysUserOrg.getOrgId().equals(currentCompanyInfo.getOrgId())) {
continue;
}
// 获取用户的公司信息
HrOrganizationDTO companyInfo = organizationServiceApi.getOrgCompanyInfo(sysUserOrg.getOrgId());
results.add(companyInfo);