feat: 解决找不到ouId的情况

This commit is contained in:
lilong 2024-02-28 10:40:56 +08:00
parent 1da5e022e3
commit 411372a28c

View File

@ -1,6 +1,5 @@
package cn.axzo.msg.center.message.migrate;
import cn.axzo.framework.domain.web.result.ApiListResult;
import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.maokai.api.client.CooperateShipQueryApi;
import cn.axzo.maokai.api.client.OrganizationalTeamOuRelationApi;
@ -13,7 +12,6 @@ import cn.axzo.msg.center.dal.PendingMessageRecordDao;
import cn.axzo.msg.center.domain.entity.PendingMessageRecord;
import cn.axzo.msg.center.domain.entity.PendingRecordExt;
import cn.axzo.msg.center.domain.persistence.BaseEntityExt;
import cn.axzo.msg.center.service.enums.IdentityTypeEnum;
import cn.axzo.msg.center.service.enums.YesOrNo;
import cn.axzo.pluto.api.TeamServiceApi;
import cn.axzo.pluto.teams.common.enums.UserTerminalPerspective;
@ -21,12 +19,7 @@ import cn.azxo.framework.common.model.CommonResponse;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.google.common.base.Throwables;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.RequiredArgsConstructor;
import lombok.ToString;
import lombok.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.jetbrains.annotations.NotNull;
@ -187,21 +180,7 @@ public class OuIdMigrateService {
DefaultTeamInfo defaultTeam = getDefaultTeamId(identityId);
log.info("zeroOuId, record:{}, defaultTeam:{}", record.getId(), JSONObject.toJSONString(defaultTeam));
if (defaultTeam == null) {
CooperateShipResp cooperateShip = cooperateShipQueryApi.genericQuery(
CooperateShipQueryReq.builder()
.workspaceId(record.getOrgId())
.personId(record.getExecutorPersonId())
.build())
.getData()
.stream()
.findFirst()
.orElse(null);
log.info("zeroOuId, record:{}, cooperateShip:{}", record.getId(), JSONObject.toJSONString(cooperateShip));
if (cooperateShip == null) {
tryUpdate(record, null, "未通过身份id找到默认团队, 跳过迁移");
} else {
tryUpdate(record, cooperateShip.getOrganizationalUnitId(), "通过cooperate ship找到对应的单位");
}
resolveOuIdByCooperateShip(record);
continue;
}
Map<Long, OrganizationalTeamOuRelationResp> teamId2OuInfo =
@ -209,8 +188,7 @@ public class OuIdMigrateService {
OrganizationalTeamOuRelationResp teamInfo = teamId2OuInfo.get(defaultTeam.teamId);
log.info("zeroOuId, record:{}, teamInfo:{}", record.getId(), JSONObject.toJSONString(teamInfo));
if (teamInfo == null) {
tryUpdate(record, null, String.format(
"找到了默认团队, 但未通过默认团队找到对应的单位. teamId=%d", defaultTeam.teamId));
resolveOuIdByCooperateShip(record);
} else {
tryUpdate(record, teamInfo.getOuId(), String.format(
"找到了默认团队, 并通过身份id找到默认团队, 再找到对应的单位. teamId=%d, ouId=%d, 视角=%s, 视角type=%s",
@ -219,6 +197,24 @@ public class OuIdMigrateService {
}
}
private void resolveOuIdByCooperateShip(PendingMessageRecord record) {
CooperateShipResp cooperateShip = cooperateShipQueryApi.genericQuery(
CooperateShipQueryReq.builder()
.workspaceId(record.getOrgId())
.personId(record.getExecutorPersonId())
.build())
.getData()
.stream()
.findFirst()
.orElse(null);
log.info("zeroOuId, record:{}, cooperateShip:{}", record.getId(), JSONObject.toJSONString(cooperateShip));
if (cooperateShip == null) {
tryUpdate(record, null, "未通过身份id找到默认团队, 跳过迁移");
} else {
tryUpdate(record, cooperateShip.getOrganizationalUnitId(), "通过cooperate ship找到对应的单位");
}
}
@Nullable
private DefaultTeamInfo getDefaultTeamId(Long identityId) {
Integer successCode = 200;