From 0343073e12a23850bef7c2718950b995d1bd758e Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Fri, 31 Dec 2021 15:49:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9A=201.=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E5=BF=97=E6=84=BF=E8=80=85=E5=88=97=E8=A1=A8agencyId?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/form/resi/VolunteerCommonFormDTO.java | 4 +- .../controller/ResiVolunteerController.java | 8 +-- .../epmet/service/VolunteerInfoService.java | 12 ++++- .../impl/VolunteerInfoServiceImpl.java | 51 ++++++++++++------- .../service/impl/VolunteerServiceImpl.java | 4 +- 5 files changed, 50 insertions(+), 29 deletions(-) diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/resi/VolunteerCommonFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/resi/VolunteerCommonFormDTO.java index 9a5e2fdc7f..4a9973d735 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/resi/VolunteerCommonFormDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/resi/VolunteerCommonFormDTO.java @@ -20,9 +20,9 @@ public class VolunteerCommonFormDTO { private String customerId; /** - * 上级组织ID,使用PIDS like,查询该组织下所有志愿者,注意,是like 'agencyId:%' + * 组织ID */ - private String superiorAgencyId; + private String agencyId; private Integer pageNo = 0; diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiVolunteerController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiVolunteerController.java index ed5609eed3..39da0690af 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiVolunteerController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiVolunteerController.java @@ -141,8 +141,8 @@ public class ResiVolunteerController { Integer pageNo = input.getPageNo(); Integer pageSize = input.getPageSize(); String customerId = input.getCustomerId(); - String superiorAgencyId = input.getSuperiorAgencyId(); - List l = volunteerInfoService.queryVolunteerPage(customerId, pageNo, pageSize, superiorAgencyId); + String agencyId = input.getAgencyId(); + List l = volunteerInfoService.queryVolunteerPage(customerId, pageNo, pageSize, agencyId); return new Result>().ok(l); } @@ -154,9 +154,9 @@ public class ResiVolunteerController { @PostMapping("count") public Result getVolunteerCount(@RequestBody VolunteerCommonFormDTO input) { String customerId = input.getCustomerId(); - String pidsPrefix = input.getSuperiorAgencyId(); + String agencyId = input.getAgencyId(); - Integer volunteerCount = volunteerInfoService.getVolunteerCount(customerId, pidsPrefix); + Integer volunteerCount = volunteerInfoService.getVolunteerCount(customerId, agencyId); return new Result().ok(volunteerCount); } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/VolunteerInfoService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/VolunteerInfoService.java index adf45e6437..f9db916bbe 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/VolunteerInfoService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/VolunteerInfoService.java @@ -95,12 +95,20 @@ public interface VolunteerInfoService extends BaseService { */ List queryListVolunteer(String customerId,String staffId,String userRealName); - List queryVolunteerPage(String customerId, Integer pageNo, Integer pageSize, String superiorAgencyId); + /** + * @param customerId + * @param pageNo + * @param pageSize + * @param agencyId 组织ID,使用PIDS like,查询该组织"及下级"所有志愿者 + * @return + */ + List queryVolunteerPage(String customerId, Integer pageNo, Integer pageSize, String agencyId); /** * 查询志愿者数量 * @param customerId + * @param agencyId 组织ID,查询该组织"及下级"下所有的志愿者 * @return */ - Integer getVolunteerCount(String customerId, String pidsPrefix); + Integer getVolunteerCount(String customerId, String agencyId); } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/VolunteerInfoServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/VolunteerInfoServiceImpl.java index de63c1f712..ee7f66bc8a 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/VolunteerInfoServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/VolunteerInfoServiceImpl.java @@ -359,24 +359,11 @@ public class VolunteerInfoServiceImpl extends BaseServiceImpl queryVolunteerPage(String customerId, Integer pageNo, Integer pageSize, String superiorAgencyId) { + public List queryVolunteerPage(String customerId, Integer pageNo, Integer pageSize, String agencyId) { LambdaQueryWrapper query = new LambdaQueryWrapper<>(); Optional.ofNullable(customerId).ifPresent(cid -> query.eq(VolunteerInfoEntity::getCustomerId, cid)); - Optional.ofNullable(superiorAgencyId).ifPresent(cid -> { - - // 需要查询agency的pids:id,通过这个字符串去匹配志愿者的Pids字段来查询 - String errorMsg = "【分页查询志愿者列表】失败"; - CustomerAgencyDTO agencyInfo = getResultDataOrThrowsException(govOrgOpenFeignClient.getAgencyById(superiorAgencyId), ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), errorMsg, errorMsg); - if (agencyInfo == null) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), errorMsg, errorMsg); - } - - String pidsAndAgencyIdPath = agencyInfo.getPids().concat(":").concat(superiorAgencyId); - if (pidsAndAgencyIdPath.startsWith(":")) { - pidsAndAgencyIdPath = pidsAndAgencyIdPath.replaceFirst(":", ""); - } - - query.likeRight(VolunteerInfoEntity::getPids, pidsAndAgencyIdPath); + Optional.ofNullable(agencyId).ifPresent(aid -> { + query.likeRight(VolunteerInfoEntity::getPids, getPidsByAgencyId(aid)); }); PageHelper.startPage(pageNo, pageSize); @@ -392,17 +379,43 @@ public class VolunteerInfoServiceImpl extends BaseServiceImpl query = new LambdaQueryWrapper<>(); Optional.ofNullable(customerId).ifPresent((cId) -> { query.eq(VolunteerInfoEntity::getCustomerId, cId); }); - Optional.ofNullable(pidsPrefix).ifPresent((pidsPrefixt) -> { - query.likeRight(VolunteerInfoEntity::getPids, pidsPrefixt); + Optional.ofNullable(agencyId).ifPresent((aid) -> { + query.likeRight(VolunteerInfoEntity::getPids, getPidsByAgencyId(aid)); }); return baseDao.selectCount(query); } + + /** + * 使用agencyId,获取pids(agencyPids:agencyId) + * @param agencyId + * @return + */ + private String getPidsByAgencyId(String agencyId) { + // 需要查询agency的pids:id,通过这个字符串去匹配志愿者的Pids字段来查询 + String errorMsg = "【分页查询志愿者列表】失败"; + CustomerAgencyDTO agencyInfo = getResultDataOrThrowsException(govOrgOpenFeignClient.getAgencyById(agencyId), + ServiceConstant.GOV_ORG_SERVER, + EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), + errorMsg, + errorMsg); + + if (agencyInfo == null) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), errorMsg, errorMsg); + } + + String pidsAndAgencyIdPath = agencyInfo.getPids().concat(":").concat(agencyId); + if (pidsAndAgencyIdPath.startsWith(":")) { + pidsAndAgencyIdPath = pidsAndAgencyIdPath.replaceFirst(":", ""); + } + + return pidsAndAgencyIdPath; + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/VolunteerServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/VolunteerServiceImpl.java index 9aa05b6b27..a25f7d2ad7 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/VolunteerServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/VolunteerServiceImpl.java @@ -103,7 +103,7 @@ public class VolunteerServiceImpl implements VolunteerService, ResultDataResolve String vcErrorMsg = "【志愿者分布】查询志愿者总数出错"; VolunteerCommonFormDTO volunteerCountForm = new VolunteerCommonFormDTO(); volunteerCountForm.setCustomerId(customerId); - volunteerCountForm.setSuperiorAgencyId(agencyId); + volunteerCountForm.setAgencyId(agencyId); Integer volunteerCount = getResultDataOrThrowsException(epmetHeartOpenFeignClient.getVolunteerCount(volunteerCountForm), ServiceConstant.EPMET_HEART_SERVER, EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), @@ -237,7 +237,7 @@ public class VolunteerServiceImpl implements VolunteerService, ResultDataResolve private List listVolunteersByPage(String customerId, String agencyId, Integer pageNo, Integer pageSize) { VolunteerCommonFormDTO volunteerForm = new VolunteerCommonFormDTO(); volunteerForm.setCustomerId(customerId); - volunteerForm.setSuperiorAgencyId(agencyId); + volunteerForm.setAgencyId(agencyId); volunteerForm.setPageNo(pageNo); volunteerForm.setPageSize(pageSize);