feat:feature-REQ/2129 修改ouId的清洗逻辑,
This commit is contained in:
parent
57d8a5ae23
commit
593aeb6899
@ -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
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user