feat:feature-REQ/2129 修改ouId的清洗逻辑,
This commit is contained in:
parent
57d8a5ae23
commit
593aeb6899
@ -1,15 +1,19 @@
|
||||
package cn.axzo.im.job;
|
||||
|
||||
import cn.axzo.basics.common.constant.enums.OrganizationalUnitTypeEnum;
|
||||
import cn.axzo.im.center.common.enums.AccountTypeEnum;
|
||||
import cn.axzo.im.center.common.enums.AppTypeEnum;
|
||||
import cn.axzo.im.entity.AccountRegister;
|
||||
import cn.axzo.im.service.AccountRegisterService;
|
||||
import cn.axzo.maokai.api.client.OrganizationalUnitApi;
|
||||
import cn.axzo.maokai.api.vo.request.OrganizationalUnitQuery;
|
||||
import cn.axzo.maokai.api.vo.response.OrganizationalUnitVO;
|
||||
import cn.axzo.tyr.client.feign.TyrSaasRoleUserApi;
|
||||
import cn.axzo.tyr.client.model.roleuser.dto.SaasRoleUserDTO;
|
||||
import cn.axzo.tyr.client.model.roleuser.req.RoleUserParam;
|
||||
import cn.hutool.core.lang.Pair;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.xxl.job.core.biz.model.ReturnT;
|
||||
import com.xxl.job.core.handler.IJobHandler;
|
||||
import com.xxl.job.core.handler.annotation.XxlJob;
|
||||
@ -46,6 +50,8 @@ public class UpdateImAccountOuIdJob extends IJobHandler {
|
||||
private AccountRegisterService accountRegisterService;
|
||||
@Autowired
|
||||
private TyrSaasRoleUserApi tyrSaasRoleUserApi;
|
||||
@Autowired
|
||||
private OrganizationalUnitApi organizationalUnitApi;
|
||||
|
||||
private static final Integer DEFAULT_PAGE_SIZE = 500;
|
||||
|
||||
@ -123,13 +129,25 @@ public class UpdateImAccountOuIdJob extends IJobHandler {
|
||||
return Collections.EMPTY_MAP;
|
||||
}
|
||||
|
||||
return accountIds.stream()
|
||||
.map(e -> {
|
||||
Optional<SaasRoleUserDTO> user = tyrSaasRoleUserApi.roleUserList(RoleUserParam.builder().personId(e).build()).getData().stream().findFirst();
|
||||
return Pair.of(e.toString(), user.map(SaasRoleUserDTO::getOuId).orElse(null));
|
||||
})
|
||||
.filter(e -> e.getValue() != null)
|
||||
.collect(Collectors.toMap(Pair::getKey, Pair::getValue));
|
||||
List<SaasRoleUserDTO> saasRoleUsers = accountIds.stream()
|
||||
.flatMap(e -> tyrSaasRoleUserApi.roleUserList(RoleUserParam.builder().personId(e).build()).getData().stream())
|
||||
.collect(Collectors.toList());
|
||||
|
||||
List<Long> ouIds = Lists.transform(saasRoleUsers, SaasRoleUserDTO::getOuId);
|
||||
|
||||
if (CollectionUtils.isEmpty(ouIds)) {
|
||||
return Collections.EMPTY_MAP;
|
||||
}
|
||||
|
||||
Set<Long> effectOuIds = organizationalUnitApi.list(OrganizationalUnitQuery.builder().unitIds(ouIds).build()).getData()
|
||||
.stream()
|
||||
.filter(e -> !Objects.equals(e.getType(), OrganizationalUnitTypeEnum.PROJECT_OUT_TEAM.getValue()))
|
||||
.map(OrganizationalUnitVO::getId)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
return saasRoleUsers.stream()
|
||||
.filter(e -> effectOuIds.contains(e.getOuId()))
|
||||
.collect(Collectors.toMap(e -> e.getNaturalPersonId().toString(), SaasRoleUserDTO::getOuId, (f, s) -> f));
|
||||
}
|
||||
|
||||
@Data
|
||||
|
||||
Loading…
Reference in New Issue
Block a user