From a49401ab96f6c453468d7ad8421bbc241269a461 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Thu, 16 Jun 2022 16:09:21 +0800 Subject: [PATCH 1/2] =?UTF-8?q?bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/IcUserDemandRecController.java | 52 +++++++++------- .../impl/VolunteerInfoServiceImpl.java | 51 ++++------------ .../resources/mapper/IcPartyActivityDao.xml | 1 + .../epmet/feign/EpmetUserOpenFeignClient.java | 7 +++ .../EpmetUserOpenFeignClientFallback.java | 11 ++++ .../controller/IcResiUserController.java | 27 +++++++++ .../com/epmet/service/IcResiUserService.java | 22 +++++++ .../service/impl/IcResiUserServiceImpl.java | 60 +++++++++++++++++++ .../resources/mapper/IcVolunteerPolyDao.xml | 8 +-- 9 files changed, 172 insertions(+), 67 deletions(-) diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcUserDemandRecController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcUserDemandRecController.java index 9c53742254..3405c0c019 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcUserDemandRecController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcUserDemandRecController.java @@ -44,9 +44,9 @@ import com.epmet.feign.EpmetMessageOpenFeignClient; import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.service.*; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -83,6 +83,7 @@ public class IcUserDemandRecController implements ResultDataResolver { @Autowired private EpmetUserOpenFeignClient userOpenFeignClient; + /** * 根据服务方类型查询 下拉框 * 服务方类型:志愿者:volunteer;社会组织:social_org;社区自组织:community_org;区域党建单位:party_unit; @@ -219,28 +220,33 @@ public class IcUserDemandRecController implements ResultDataResolver { && null != finishResultDTO.getAwardPoint() && finishResultDTO.getAwardPoint() > NumConstant.ZERO && UserDemandConstant.RESOLVED.equals(finishResultDTO.getFinishResult())) { - // 志愿者发放积分 - List actPointEventMsgList = new ArrayList<>(); - BasePointEventMsg actPointEventMsg = new BasePointEventMsg(); - actPointEventMsg.setCustomerId(formDTO.getCustomerId()); - actPointEventMsg.setSourceType(MqConstant.SOURCE_TYPE_DEMAND); - actPointEventMsg.setSourceId(formDTO.getDemandRecId()); - actPointEventMsg.setUserId(finishResultDTO.getServerId()); - actPointEventMsg.setActionFlag(MqConstant.PLUS); - actPointEventMsg.setIsCommon(false); - actPointEventMsg.setRemark(finishResultDTO.getRemark()); - actPointEventMsg.setEventTag(EventEnum.FINISH_USER_DEMAND.getEventTag()); - actPointEventMsg.setEventClass(EventEnum.FINISH_USER_DEMAND.getEventClass()); - actPointEventMsg.setEventName(finishResultDTO.getFirstCategoryName()); - actPointEventMsg.setObjectId(finishResultDTO.getCategoryCode()); - actPointEventMsg.setPoint(finishResultDTO.getAwardPoint()); - actPointEventMsgList.add(actPointEventMsg); - SystemMsgFormDTO sendMsgForm = new SystemMsgFormDTO(); - sendMsgForm.setContent(actPointEventMsgList); - sendMsgForm.setMessageType(SystemMessageType.FINISH_USER_DEMAND); - Result mqResult = epmetMessageOpenFeignClient.sendSystemMsgByMQ(sendMsgForm); - if (!mqResult.success()) { - log.error(String.format("demandRecId:%s,给志愿者发放积分失败", formDTO.getDemandRecId())); + Result> userIdRes = userOpenFeignClient.getUserId(finishResultDTO.getServerId()); + if (userIdRes.success() && CollectionUtils.isNotEmpty(userIdRes.getData())) { + userIdRes.getData().forEach(userId -> { + // 志愿者发放积分 + List actPointEventMsgList = new ArrayList<>(); + BasePointEventMsg actPointEventMsg = new BasePointEventMsg(); + actPointEventMsg.setCustomerId(formDTO.getCustomerId()); + actPointEventMsg.setSourceType(MqConstant.SOURCE_TYPE_DEMAND); + actPointEventMsg.setSourceId(formDTO.getDemandRecId()); + actPointEventMsg.setUserId(userId); + actPointEventMsg.setActionFlag(MqConstant.PLUS); + actPointEventMsg.setIsCommon(false); + actPointEventMsg.setRemark(finishResultDTO.getRemark()); + actPointEventMsg.setEventTag(EventEnum.FINISH_USER_DEMAND.getEventTag()); + actPointEventMsg.setEventClass(EventEnum.FINISH_USER_DEMAND.getEventClass()); + actPointEventMsg.setEventName(finishResultDTO.getFirstCategoryName()); + actPointEventMsg.setObjectId(finishResultDTO.getCategoryCode()); + actPointEventMsg.setPoint(finishResultDTO.getAwardPoint()); + actPointEventMsgList.add(actPointEventMsg); + SystemMsgFormDTO sendMsgForm = new SystemMsgFormDTO(); + sendMsgForm.setContent(actPointEventMsgList); + sendMsgForm.setMessageType(SystemMessageType.FINISH_USER_DEMAND); + Result mqResult = epmetMessageOpenFeignClient.sendSystemMsgByMQ(sendMsgForm); + if (!mqResult.success()) { + log.error(String.format("demandRecId:%s,给志愿者发放积分失败", formDTO.getDemandRecId())); + } + }); } } } 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 b5aab903d0..c7d4d6139a 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 @@ -21,11 +21,10 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.MqConstant; -import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.ServiceConstant; -import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.form.mq.eventmsg.BasePointEventMsg; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; +import com.epmet.commons.tools.dto.result.OptionDataResultDTO; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; @@ -45,7 +44,6 @@ import com.epmet.dto.form.resi.ResiSendSmsCodeFormDTO; import com.epmet.dto.form.resi.ResiVolunteerAuthenticateFormDTO; import com.epmet.dto.result.ResiUserBaseInfoResultDTO; import com.epmet.dto.result.SendVerificationCodeResultDTO; -import com.epmet.dto.result.UserBaseInfoResultDTO; import com.epmet.dto.result.demand.OptionDTO; import com.epmet.dto.result.resi.PageVolunteerInfoResultDTO; import com.epmet.dto.result.resi.ResiVolunteerInfoResultDTO; @@ -64,8 +62,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.text.Collator; import java.util.*; -import java.util.function.Function; import java.util.stream.Collectors; /** @@ -337,43 +335,16 @@ public class VolunteerInfoServiceImpl extends BaseServiceImpl query=new LambdaQueryWrapper<>(); - query.eq(VolunteerInfoEntity::getCustomerId,customerId); - query.likeRight(VolunteerInfoEntity::getPids,pids); - query.select(VolunteerInfoEntity::getUserId); - query.orderByAsc(VolunteerInfoEntity::getCreatedTime); - Set userIds = baseDao.selectObjs(query).stream().map(o->o.toString()).collect(Collectors.toSet()); List resultList = new ArrayList<>(); - if (CollectionUtils.isEmpty(userIds)) { - return resultList; - } - Result> userInfoRes = epmetUserOpenFeignClient.queryUserBaseInfo(new ArrayList<>(userIds)); - if (userInfoRes.success() && CollectionUtils.isNotEmpty(userInfoRes.getData())) { - Map userMap = userInfoRes.getData().stream().collect(Collectors.toMap(UserBaseInfoResultDTO::getUserId, Function.identity())); - for (String userId : userIds) { - if (userMap.containsKey(userId)) { - if (StringUtils.isNoneBlank(userRealName)) { - if (userMap.get(userId).getRealName().contains(userRealName)) { - OptionDTO optionDTO = new OptionDTO(); - optionDTO.setLabel(userMap.get(userId).getRealName().concat("(").concat(userMap.get(userId).getMobile().concat(")"))); - optionDTO.setValue(userId); - resultList.add(optionDTO); - } - } else { - OptionDTO optionDTO = new OptionDTO(); - optionDTO.setLabel(userMap.get(userId).getRealName().concat("(").concat(userMap.get(userId).getMobile().concat(")"))); - optionDTO.setValue(userId); - resultList.add(optionDTO); - } - } - } + IcResiUserDTO icUser = new IcResiUserDTO(); + icUser.setCustomerId(customerId); + icUser.setAgencyId(staffInfo.getAgencyId()); + Result> volunteerRes = epmetUserOpenFeignClient.getVolunteerList(icUser); + if (volunteerRes.success() && CollectionUtils.isNotEmpty(volunteerRes.getData())) { + resultList = ConvertUtils.sourceToTarget(volunteerRes.getData(), OptionDTO.class); + resultList = resultList.stream().sorted((o1, o2) -> + Collator.getInstance(Locale.TRADITIONAL_CHINESE).compare(o1.getLabel(),o2.getLabel())) + .collect(Collectors.toList()); } return resultList; } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPartyActivityDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPartyActivityDao.xml index acfb99d309..0c5c86d30d 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPartyActivityDao.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcPartyActivityDao.xml @@ -166,6 +166,7 @@ AND ACTIVITY_TIME BETWEEN #{startTime} AND #{endTime} + ORDER BY ACTIVITY_TIME DESC diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java index e5952a2726..b130cab02f 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java @@ -2,6 +2,7 @@ package com.epmet.feign; import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.dto.result.OptionDataResultDTO; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.*; @@ -806,4 +807,10 @@ public interface EpmetUserOpenFeignClient { @PostMapping("/epmetuser/icVolunteerPoly/volunteerDataExtraction/{customerId}") Result volunteerDataExtraction(@PathVariable("customerId") String customerId); + + @PostMapping("/epmetuser/icresiuser/getVolunteerList") + Result> getVolunteerList(@RequestBody IcResiUserDTO formDTO); + + @PostMapping("/epmetuser/icresiuser/getUserId/{icUserId}") + Result> getUserId(@PathVariable("icUserId") String icUserId); } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java index 404ba7d0c3..f93adfdd0e 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java @@ -1,6 +1,7 @@ package com.epmet.feign.fallback; import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.dto.result.OptionDataResultDTO; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; @@ -595,4 +596,14 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "volunteerDataExtraction", customerId); } + @Override + public Result> getVolunteerList(IcResiUserDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getVolunteerList", formDTO); + } + + @Override + public Result> getUserId(String icUserId) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getUserId", icUserId); + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java index ed4f055713..8e9e6a41c7 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java @@ -53,6 +53,7 @@ import com.epmet.constants.ImportTaskConstants; import com.epmet.dto.IcResiUserDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; +import com.epmet.dto.result.demand.OptionDTO; import com.epmet.enums.IcResiUserTableEnum; import com.epmet.excel.PartyMemberAgeExportExcel; import com.epmet.excel.PartyMemberEducationExportExcel; @@ -1161,4 +1162,30 @@ public class IcResiUserController implements ResultDataResolver { formDTO.setCustomerId(tokenDto.getCustomerId()); return new Result().ok(icResiUserService.getUserRoleByIdCard(formDTO)); } + + /** + * 获取组织下的志愿者 + * + * @Param formDTO + * @Return {@link Result>} + * @Author zhaoqifeng + * @Date 2022/6/16 15:22 + */ + @PostMapping("getVolunteerList") + public Result> getVolunteerList(@RequestBody IcResiUserDTO formDTO) { + return new Result>().ok(icResiUserService.getVolunteerList(formDTO.getCustomerId(), formDTO.getAgencyId())); + } + + /** + * 获取居民信息对应的居民用户ID + * + * @Param icUserId + * @Return {@link Result>} + * @Author zhaoqifeng + * @Date 2022/6/16 15:40 + */ + @PostMapping("getUserId/{icUserId}") + public Result> getUserId(@PathVariable("icUserId") String icUserId) { + return new Result>().ok(icResiUserService.getUserId(icUserId)); + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java index 407e9e614e..86864a438f 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java @@ -25,6 +25,7 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.dto.IcResiUserDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; +import com.epmet.dto.result.demand.OptionDTO; import com.epmet.entity.IcResiUserEntity; import com.epmet.excel.support.ExportResiUserItemDTO; import com.epmet.resi.partymember.dto.partymember.IcPartyMemberDTO; @@ -405,4 +406,25 @@ public interface IcResiUserService extends BaseService { * @params [dto] */ Result editMember(IcResiUserConfirmSubmitDTO dto); + + /** + * 获取组织下志愿者列表 + * + * @Param customerId 客户 + * @Param agencyId 组织 + * @Return {@link List} + * @Author zhaoqifeng + * @Date 2022/6/16 14:58 + */ + List getVolunteerList(String customerId, String agencyId); + + /** + * 获取居民信息对应的居民用户ID + * + * @Param icResiUserId + * @Return {@link String} + * @Author zhaoqifeng + * @Date 2022/6/16 15:30 + */ + List getUserId(String icResiUserId); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java index 4f1e856899..08411e39e2 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java @@ -61,6 +61,7 @@ import com.epmet.excel.support.ExportResiUserItemDTO; import com.epmet.feign.*; import com.epmet.resi.partymember.feign.ResiPartyMemberOpenFeignClient; import com.epmet.service.*; +import com.epmet.dto.result.demand.OptionDTO; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -2384,6 +2385,65 @@ public class IcResiUserServiceImpl extends BaseServiceImpl} + * @Author zhaoqifeng + * @Date 2022/6/16 14:58 + */ + @Override + public List getVolunteerList(String customerId, String agencyId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcResiUserEntity::getCustomerId, customerId); + wrapper.and(wq -> wq.eq(IcResiUserEntity::getAgencyId, agencyId).or().like(IcResiUserEntity::getPids, agencyId)); + wrapper.eq(IcResiUserEntity::getIsVolunteer, NumConstant.ONE_STR); + List list = baseDao.selectList(wrapper); + if (CollectionUtils.isEmpty(list)) { + return Collections.emptyList(); + } + return list.stream().map(item -> { + OptionDataResultDTO dto = new OptionDataResultDTO(); + dto.setValue(item.getId()); + if (StringUtils.isNotBlank(item.getMobile())) { + dto.setLabel(item.getName().concat("(").concat(item.getMobile().concat(")"))); + } else { + dto.setLabel(item.getName()); + } + return dto; + }).collect(Collectors.toList()); + } + + /** + * 获取居民信息对应的居民用户ID + * + * @param icResiUserId + * @Param icResiUserId + * @Return {@link String} + * @Author zhaoqifeng + * @Date 2022/6/16 15:30 + */ + @Override + public List getUserId(String icResiUserId) { + IcResiUserEntity entity = baseDao.selectById(icResiUserId); + if (null == entity) { + return null; + } + //根据身份证获取小程序端居民信息 + LambdaQueryWrapper baseInfoWrapper = new LambdaQueryWrapper<>(); + baseInfoWrapper.eq(UserBaseInfoEntity::getCustomerId, entity.getCustomerId()); + baseInfoWrapper.eq(UserBaseInfoEntity::getIdNum, entity.getIdCard()); + List baseInfoList = userBaseInfoDao.selectList(baseInfoWrapper); + if (CollectionUtils.isEmpty(baseInfoList)) { + return null; + } + return baseInfoList.stream().map(UserBaseInfoEntity::getUserId).collect(Collectors.toList()); + } + /** * 根据身份证获取居民角色(目前只有是否是志愿者) * diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcVolunteerPolyDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcVolunteerPolyDao.xml index acfca0cf16..68439048b8 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcVolunteerPolyDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcVolunteerPolyDao.xml @@ -61,7 +61,7 @@