feat:feature-REQ/2129 修改ouId的清洗逻辑,

This commit is contained in:
lilong 2024-04-07 13:53:42 +08:00
parent 57d8a5ae23
commit 593aeb6899

View File

@ -1,15 +1,19 @@
package cn.axzo.im.job; 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.AccountTypeEnum;
import cn.axzo.im.center.common.enums.AppTypeEnum; import cn.axzo.im.center.common.enums.AppTypeEnum;
import cn.axzo.im.entity.AccountRegister; import cn.axzo.im.entity.AccountRegister;
import cn.axzo.im.service.AccountRegisterService; 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.feign.TyrSaasRoleUserApi;
import cn.axzo.tyr.client.model.roleuser.dto.SaasRoleUserDTO; import cn.axzo.tyr.client.model.roleuser.dto.SaasRoleUserDTO;
import cn.axzo.tyr.client.model.roleuser.req.RoleUserParam; import cn.axzo.tyr.client.model.roleuser.req.RoleUserParam;
import cn.hutool.core.lang.Pair;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.biz.model.ReturnT;
import com.xxl.job.core.handler.IJobHandler; import com.xxl.job.core.handler.IJobHandler;
import com.xxl.job.core.handler.annotation.XxlJob; import com.xxl.job.core.handler.annotation.XxlJob;
@ -46,6 +50,8 @@ public class UpdateImAccountOuIdJob extends IJobHandler {
private AccountRegisterService accountRegisterService; private AccountRegisterService accountRegisterService;
@Autowired @Autowired
private TyrSaasRoleUserApi tyrSaasRoleUserApi; private TyrSaasRoleUserApi tyrSaasRoleUserApi;
@Autowired
private OrganizationalUnitApi organizationalUnitApi;
private static final Integer DEFAULT_PAGE_SIZE = 500; private static final Integer DEFAULT_PAGE_SIZE = 500;
@ -123,13 +129,25 @@ public class UpdateImAccountOuIdJob extends IJobHandler {
return Collections.EMPTY_MAP; return Collections.EMPTY_MAP;
} }
return accountIds.stream() List<SaasRoleUserDTO> saasRoleUsers = accountIds.stream()
.map(e -> { .flatMap(e -> tyrSaasRoleUserApi.roleUserList(RoleUserParam.builder().personId(e).build()).getData().stream())
Optional<SaasRoleUserDTO> user = tyrSaasRoleUserApi.roleUserList(RoleUserParam.builder().personId(e).build()).getData().stream().findFirst(); .collect(Collectors.toList());
return Pair.of(e.toString(), user.map(SaasRoleUserDTO::getOuId).orElse(null));
}) List<Long> ouIds = Lists.transform(saasRoleUsers, SaasRoleUserDTO::getOuId);
.filter(e -> e.getValue() != null)
.collect(Collectors.toMap(Pair::getKey, Pair::getValue)); 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 @Data