From b6e13cac835ccb00ba7a66d11c39533d7af618ce Mon Sep 17 00:00:00 2001 From: yanglin Date: Mon, 3 Mar 2025 16:03:50 +0800 Subject: [PATCH] REQ-3581: remove duplication --- .../nanopart/ess/server/ess/QueryService.java | 46 ++++++------------- 1 file changed, 15 insertions(+), 31 deletions(-) diff --git a/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/QueryService.java b/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/QueryService.java index 0579f8bc..4d258393 100644 --- a/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/QueryService.java +++ b/ess/ess-server/src/main/java/cn/axzo/nanopart/ess/server/ess/QueryService.java @@ -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 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 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 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; } }