REQ-3581: remove duplication

This commit is contained in:
yanglin 2025-03-03 16:03:50 +08:00
parent 7ecd198a55
commit b6e13cac83

View File

@ -24,7 +24,6 @@ import cn.axzo.nanopart.ess.api.domain.EssOrgInfo;
import cn.axzo.nanopart.ess.api.domain.EssSealInfo;
import cn.axzo.nanopart.ess.api.domain.EssSealPersonInfo;
import cn.axzo.nanopart.ess.api.domain.PersonProfileInfo;
import cn.axzo.nanopart.ess.api.enums.EssPersonState;
import cn.axzo.nanopart.ess.api.enums.EssSealState;
import cn.axzo.nanopart.ess.api.request.GetOrgAuthStatesRequest;
import cn.axzo.nanopart.ess.api.request.GetPersonAuthStateRequest;
@ -122,20 +121,8 @@ public class QueryService {
List<EssSealPerson> persons = new ArrayList<>(
essSealId2Persons.getOrDefault(sealInfo.getEssSealId(), Collections.emptyList()));
persons.sort((p1, p2) -> -Long.compare(p1.getId(), p2.getId()));
for (EssSealPerson sealPerson : persons) {
EssPerson essPerson = essPersons.getOrThrow(
OuAndPersonId.create(sealPerson.getOuId(), sealPerson.getPersonId()));
if (essPerson.getState() == EssPersonState.RESIGNED)
continue;
EssSealPersonInfo sealPersonInfo = BeanMapper.copyBean(sealPerson, EssSealPersonInfo.class);
sealPersonInfo.setSuperAdmin(org.isSuperAdmin(sealPerson.getPersonId()));
sealPersonInfo.setSealAuthorized(sealPerson.isAuthorized());
sealPersonInfo.setPersonAuthorized(essPerson.isAuthorized());
sealPersonInfo.setAuthorizeTimeMs(
sealPerson.getAuthorizeTime() == null ? null : sealPerson.getAuthorizeTime().getTime());
populatePersons(sealPerson, sealPersonInfo, personProfiles);
sealInfo.addSealPerson(sealPersonInfo);
}
for (EssSealPerson sealPerson : persons)
sealInfo.addSealPerson(createSealPersonInfo(essPersons, personProfiles, org, sealPerson));
}
}
return essOrgAndSeals;
@ -156,25 +143,21 @@ public class QueryService {
EssOrg org = essOrgDao.findOrNull(sealPersons.get(0).getOuId());
BizAssertions.assertNotNull(org, "org not found, ouId={}", sealPersons.get(0).getOuId());
ArrayList<EssSealPersonInfo> sealPersonsInfo = new ArrayList<>();
for (EssSealPerson sealPerson : sealPersons) {
EssPerson essPerson = essPersons.getOrThrow(
OuAndPersonId.create(sealPerson.getOuId(), sealPerson.getPersonId()));
if (essPerson.getState() == EssPersonState.RESIGNED)
continue;
EssSealPersonInfo sealPersonInfo = BeanMapper.copyBean(sealPerson, EssSealPersonInfo.class);
sealPersonInfo.setSuperAdmin(org.isSuperAdmin(sealPerson.getPersonId()));
sealPersonInfo.setSealAuthorized(sealPerson.isAuthorized());
sealPersonInfo.setPersonAuthorized(essPerson.isAuthorized());
sealPersonInfo.setAuthorizeTimeMs(
sealPerson.getAuthorizeTime() == null ? null : sealPerson.getAuthorizeTime().getTime());
populatePersons(sealPerson, sealPersonInfo, personProfiles);
sealPersonsInfo.add(sealPersonInfo);
}
for (EssSealPerson sealPerson : sealPersons)
sealPersonsInfo.add(createSealPersonInfo(essPersons, personProfiles, org, sealPerson));
return sealPersonsInfo;
}
private void populatePersons(EssSealPerson sealPerson, EssSealPersonInfo sealPersonInfo,
PersonProfiles personProfiles) {
private EssSealPersonInfo createSealPersonInfo(EssPersons essPersons, PersonProfiles personProfiles, EssOrg org,
EssSealPerson sealPerson) {
EssPerson essPerson = essPersons.getOrThrow(
OuAndPersonId.create(sealPerson.getOuId(), sealPerson.getPersonId()));
EssSealPersonInfo sealPersonInfo = BeanMapper.copyBean(sealPerson, EssSealPersonInfo.class);
sealPersonInfo.setSuperAdmin(org.isSuperAdmin(sealPerson.getPersonId()));
sealPersonInfo.setSealAuthorized(sealPerson.isAuthorized());
sealPersonInfo.setPersonAuthorized(essPerson.isAuthorized());
sealPersonInfo.setAuthorizeTimeMs(
sealPerson.getAuthorizeTime() == null ? null : sealPerson.getAuthorizeTime().getTime());
BiConsumer<Long, PersonProfileInfo> builder = (personId, profileInfo) -> {
PersonProfileDto profile = personProfiles.findOrNull(personId);
if (profile == null)
@ -185,6 +168,7 @@ public class QueryService {
};
builder.accept(sealPerson.getPersonId(), sealPersonInfo.getSealPerson());
builder.accept(sealPerson.getAuthorizedByPersonId(), sealPersonInfo.getAuthorizedByPerson());
return sealPersonInfo;
}
}