diff --git a/riven-api/src/main/java/cn/axzo/riven/client/req/ListThirdProjectPeopleReq.java b/riven-api/src/main/java/cn/axzo/riven/client/req/ListThirdProjectPeopleReq.java index 8951831..17f10c6 100644 --- a/riven-api/src/main/java/cn/axzo/riven/client/req/ListThirdProjectPeopleReq.java +++ b/riven-api/src/main/java/cn/axzo/riven/client/req/ListThirdProjectPeopleReq.java @@ -30,5 +30,10 @@ public class ListThirdProjectPeopleReq implements Serializable { */ private Set thirdUniquePersonIds; + /** + * 人员id集合 + */ + private Set personIds; + private Boolean needThirdPerson; } diff --git a/riven-third/src/main/java/cn/axzo/riven/third/controller/ThirdPartPersonController.java b/riven-third/src/main/java/cn/axzo/riven/third/controller/ThirdPartPersonController.java index 4cdff4c..31c453d 100644 --- a/riven-third/src/main/java/cn/axzo/riven/third/controller/ThirdPartPersonController.java +++ b/riven-third/src/main/java/cn/axzo/riven/third/controller/ThirdPartPersonController.java @@ -59,6 +59,9 @@ public class ThirdPartPersonController implements ThirdPartPersonApi { if (thirdProject == null){ return ApiResult.ok(ImmutableList.of()); } + if (CollUtil.isNotEmpty(param.getPersonIds())) { + return ApiResult.ok(queryByPerson(param, thirdProject)); + } List result = thirdProjectPersonDao.lambdaQuery() .eq(ThirdProjectPerson::getThirdCode, param.getThirdCode()) .eq(ThirdProjectPerson::getThirdProjectId, param.getThirdProjectId()) @@ -75,6 +78,39 @@ public class ThirdPartPersonController implements ThirdPartPersonApi { return ApiResult.ok(result); } + private List queryByPerson(ListThirdProjectPeopleReq param, ThirdProject thirdProject) { + Map thirdPersonMap = thirdPersonDao.lambdaQuery() + .eq(ThirdPerson::getThirdCode, param.getThirdCode()) + .in(CollUtil.isNotEmpty(param.getThirdUniquePersonIds()), + ThirdPerson::getThirdUniquePersonId, param.getThirdUniquePersonIds()) + .in(CollUtil.isNotEmpty(param.getPersonIds()), ThirdPerson::getPersonId, param.getPersonIds()) + .eq(ThirdPerson::getIsDelete, TableIsDeleteEnum.NORMAL.value) + .list() + .stream() + .collect(Collectors.toMap(ThirdPerson::getThirdUniquePersonId, Function.identity())); + + if (CollUtil.isEmpty(thirdPersonMap)) { + return ImmutableList.of(); + } + + List result = thirdProjectPersonDao.lambdaQuery() + .eq(ThirdProjectPerson::getThirdCode, param.getThirdCode()) + .eq(ThirdProjectPerson::getThirdProjectId, param.getThirdProjectId()) + .in(ThirdProjectPerson::getThirdUniquePersonId, thirdPersonMap.keySet()) + .eq(ThirdProjectPerson::getIsDelete, TableIsDeleteEnum.NORMAL.value) + .list() + .stream().map(e -> { + ThirdProjectPersonRes res = BeanUtil.toBean(e, ThirdProjectPersonRes.class); + res.setWorkspaceId(thirdProject.normalizedExt().getWorkspaceId()); + + ThirdPerson thirdPerson = thirdPersonMap.get(e.getThirdUniquePersonId()); + res.setThirdPersonRes(thirdPerson == null ? null : BeanUtil.toBean(thirdPerson, ThirdPersonRes.class)); + return res; + }) + .collect(Collectors.toList()); + return result; + } + private void assembleThirdPersonIfNeed(List result, ListThirdProjectPeopleReq param) { if (result.isEmpty()) { return; @@ -92,6 +128,7 @@ public class ThirdPartPersonController implements ThirdPartPersonApi { Map thirdPersonMap = thirdPersonDao.lambdaQuery() .eq(ThirdPerson::getThirdCode, param.getThirdCode()) .in(ThirdPerson::getThirdUniquePersonId, thirdPersonIds) + .in(CollUtil.isNotEmpty(param.getPersonIds()), ThirdPerson::getPersonId, param.getPersonIds()) .eq(ThirdPerson::getIsDelete, TableIsDeleteEnum.NORMAL.value) .list().stream() .collect(Collectors.toMap(ThirdPerson::getThirdUniquePersonId, Function.identity()));