From 593aeb689965312ff470706611cbced9780c00ed Mon Sep 17 00:00:00 2001 From: lilong Date: Sun, 7 Apr 2024 13:53:42 +0800 Subject: [PATCH] =?UTF-8?q?feat:feature-REQ/2129=20=E4=BF=AE=E6=94=B9ouId?= =?UTF-8?q?=E7=9A=84=E6=B8=85=E6=B4=97=E9=80=BB=E8=BE=91=EF=BC=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../axzo/im/job/UpdateImAccountOuIdJob.java | 34 ++++++++++++++----- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/im-center-server/src/main/java/cn/axzo/im/job/UpdateImAccountOuIdJob.java b/im-center-server/src/main/java/cn/axzo/im/job/UpdateImAccountOuIdJob.java index ea0ab74..dfc0256 100644 --- a/im-center-server/src/main/java/cn/axzo/im/job/UpdateImAccountOuIdJob.java +++ b/im-center-server/src/main/java/cn/axzo/im/job/UpdateImAccountOuIdJob.java @@ -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 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 saasRoleUsers = accountIds.stream() + .flatMap(e -> tyrSaasRoleUserApi.roleUserList(RoleUserParam.builder().personId(e).build()).getData().stream()) + .collect(Collectors.toList()); + + List ouIds = Lists.transform(saasRoleUsers, SaasRoleUserDTO::getOuId); + + if (CollectionUtils.isEmpty(ouIds)) { + return Collections.EMPTY_MAP; + } + + Set 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