diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java index 6a0c43f14c..f3003fc047 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java @@ -6,6 +6,7 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.resi.group.dto.group.ResiGroupDTO; import com.epmet.resi.group.dto.group.form.*; import com.epmet.resi.group.dto.group.result.*; +import com.epmet.resi.group.dto.member.ResiGroupMemberDTO; import com.epmet.resi.group.dto.topic.MyCreateTopicsFormDTO; import com.epmet.resi.group.dto.topic.ResiTopicDTO; import com.epmet.resi.group.dto.topic.form.*; @@ -333,4 +334,12 @@ public interface ResiGroupOpenFeignClient { */ @PostMapping("/resi/group/group/getBranchGroupList") Result>> getBranchGroupList(); + + /** + * @Author sun + * @Description 查询小组成员列表 + **/ + @PostMapping("/resi/group/member/getmemberlist") + Result> getMemberList(@RequestBody List groupIdList); + } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java index 98cddc7d9b..f42d54799f 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java @@ -6,6 +6,7 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.resi.group.dto.group.ResiGroupDTO; import com.epmet.resi.group.dto.group.form.*; import com.epmet.resi.group.dto.group.result.*; +import com.epmet.resi.group.dto.member.ResiGroupMemberDTO; import com.epmet.resi.group.dto.topic.MyCreateTopicsFormDTO; import com.epmet.resi.group.dto.topic.ResiTopicDTO; import com.epmet.resi.group.dto.topic.form.*; @@ -241,4 +242,9 @@ public class ResiGroupOpenFeignClientFallback implements ResiGroupOpenFeignClien public Result>> getBranchGroupList() { return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "getBranchGroupList", null); } + + @Override + public Result> getMemberList(String groupId) { + return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "getMemberList", groupId); + } } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/controller/ResiGroupMemberController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/controller/ResiGroupMemberController.java index c3d7547d07..b931bab11c 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/controller/ResiGroupMemberController.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/controller/ResiGroupMemberController.java @@ -24,16 +24,14 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.modules.member.service.GroupMemeberOperationService; import com.epmet.modules.member.service.ResiGroupMemberService; +import com.epmet.resi.group.dto.member.ResiGroupMemberDTO; import com.epmet.resi.group.dto.member.form.*; import com.epmet.resi.group.dto.member.result.ApplyingMemberResultDTO; import com.epmet.resi.group.dto.member.result.GridVotableCountResultDTO; import com.epmet.resi.group.dto.member.result.GroupMemberListResultDTO; import com.epmet.resi.group.dto.member.result.JoinGroupApplyRealTimeResultDTO; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.List; @@ -206,4 +204,10 @@ public class ResiGroupMemberController { ValidatorUtils.validateEntity(param); return new Result().ok(operationService.applyEnterByLink(param)); } + + @PostMapping("getmemberlist") + public Result> groupMemberList(@RequestBody List groupIdList){ + return new Result>().ok(resiGroupMemberService.groupMemberList(groupIdList)); + } + } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/dao/ResiGroupMemberDao.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/dao/ResiGroupMemberDao.java index daf4e23248..c6c5501de7 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/dao/ResiGroupMemberDao.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/dao/ResiGroupMemberDao.java @@ -181,4 +181,6 @@ public interface ResiGroupMemberDao extends BaseDao { int countAllMembers(@Param("customerId") String customerId, @Param("groupId") String groupId); int exitGroupById(@Param("id") String id, @Param("updatedBy") String updatedBy); + + List groupMemberList(@Param("groupIdList") List groupIdList); } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/ResiGroupMemberService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/ResiGroupMemberService.java index 8027971cb6..2355fd5a2a 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/ResiGroupMemberService.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/ResiGroupMemberService.java @@ -262,4 +262,6 @@ public interface ResiGroupMemberService extends BaseService groupMemberList(List groupIdList); } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java index a933306cb2..773bf9ebf1 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java @@ -1036,4 +1036,9 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl groupMemberList(List groupIdList) { + return baseDao.groupMemberList(groupIdList); + } + } diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/member/ResiGroupMemberDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/member/ResiGroupMemberDao.xml index ff7060f839..af37ca8cc6 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/member/ResiGroupMemberDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/member/ResiGroupMemberDao.xml @@ -250,4 +250,19 @@ WHERE id = #{id} + + diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/IcPartyActService.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/IcPartyActService.java index d0f1d68d65..100c47fead 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/IcPartyActService.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/IcPartyActService.java @@ -1,6 +1,8 @@ package com.epmet.modules.partyOrg.service; import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.rocketmq.messages.PartyMeetingMessageMQMsg; +import com.epmet.commons.tools.dto.form.mq.MqBaseFormDTO; import com.epmet.commons.tools.page.PageData; import com.epmet.modules.partyOrg.entity.IcPartyActEntity; import com.epmet.resi.partymember.dto.icpartyact.form.IcPartyActAddOrUpdateFormDTO; @@ -62,6 +64,8 @@ public interface IcPartyActService extends BaseService { */ IcPartyActDetailResDTO queryActDetail(String customerId, String userId, String icPartyActId); + void partyMeetingMessage(PartyMeetingMessageMQMsg dto); + /** * Desc: 【党建日历】活动、日程列表 * @param formDTO diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcPartyActServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcPartyActServiceImpl.java index fdefb4989a..9021a6a90d 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcPartyActServiceImpl.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcPartyActServiceImpl.java @@ -1,23 +1,33 @@ package com.epmet.modules.partyOrg.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.rocketmq.messages.PartyMeetingMessageMQMsg; import com.epmet.commons.tools.constant.Constant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.DateUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.modules.partyOrg.dao.IcPartyActDao; +import com.epmet.modules.partyOrg.dao.IcPartyActOrgDao; +import com.epmet.modules.partyOrg.dao.IcScheduleDao; import com.epmet.commons.tools.utils.SpringContextUtils; import com.epmet.modules.partyOrg.dao.*; import com.epmet.modules.partyOrg.entity.IcPartyActEntity; import com.epmet.modules.partyOrg.entity.IcPartyActOrgEntity; +import com.epmet.modules.partyOrg.entity.IcPartyActOrgEntity; import com.epmet.modules.partyOrg.entity.ResiPartymemberAttachmentEntity; import com.epmet.modules.partyOrg.service.IcPartyActOrgService; import com.epmet.modules.partyOrg.service.IcPartyActService; import com.epmet.modules.partyOrg.service.IcPartyOrgService; +import com.epmet.resi.group.dto.member.ResiGroupMemberDTO; +import com.epmet.resi.group.feign.ResiGroupOpenFeignClient; import com.epmet.modules.partyOrg.service.ResiPartymemberAttachmentService; import com.epmet.resi.partymember.dto.icpartyact.form.IcPartyActAddOrUpdateFormDTO; import com.epmet.resi.partymember.dto.icpartyact.form.IcPartyActPageFormDTO; @@ -36,6 +46,11 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; import java.util.*; import java.util.stream.Collectors; @@ -47,7 +62,8 @@ import java.util.stream.Collectors; */ @Service public class IcPartyActServiceImpl extends BaseServiceImpl implements IcPartyActService { - + @Autowired + private ResiGroupOpenFeignClient resiGroupOpenFeignClient; @Autowired private IcScheduleDao scheduleDao; @Autowired @@ -262,4 +278,45 @@ public class IcPartyActServiceImpl extends BaseServiceImpl homeSearch(ActAndScheduleListFormDTO formDTO) { return null; } + + /** + * 党建小助手活动触发为用户推送消息 + */ + @Override + public void partyMeetingMessage(PartyMeetingMessageMQMsg formDTO) { + //1.校验活动数据是否存在 + IcPartyActEntity entity = baseDao.selectById(formDTO.getIcPartyActId()); + if(null==entity){ + String msg = "活动信息不存在,活动Id:" + formDTO.getIcPartyActId(); + throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), msg, msg); + } + //2.根据不同类型消息触发不同处理逻辑 + //2-1.发布活动给居民端涉及党员已经工作端活动发布站推送党建活动消息 + if("publish".equals(formDTO.getType())){ + //查询活动对应的发布范围信息 + LambdaQueryWrapper orgWrapper = new LambdaQueryWrapper<>(); + orgWrapper.eq(IcPartyActOrgEntity::getDelFlag, NumConstant.ZERO_STR); + orgWrapper.eq(IcPartyActOrgEntity::getIcPartyActId, formDTO.getIcPartyActId()); + List list = icPartyActOrgDao.selectList(orgWrapper); + List groupIdList = list.stream().filter(ca -> ca.getOrgType().equals("6")).map(m -> m.getJoinOrgId()).collect(Collectors.toList()); + List partyOrgIdList = list.stream().filter(ca -> !ca.getOrgType().equals("6")).map(m -> m.getJoinOrgId()).collect(Collectors.toList()); + //分别查询党组织、党小组下的人 + List userIdList = new ArrayList<>(); + if(!CollectionUtils.isEmpty(groupIdList)){ + Result> result = resiGroupOpenFeignClient.getMemberList(groupIdList); + if (!result.success()) { + throw new RenException("调用common service查询secret失败"); + } + userIdList = result.getData().stream().map(ResiGroupMemberDTO::getCustomerUserId).collect(Collectors.toList()); + } + if(!CollectionUtils.isEmpty(groupIdList)){ + //TODO + } + + //组装消息 + + } + + } + } \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/mq/listener/PartyMeetingMessageListener.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/mq/listener/PartyMeetingMessageListener.java index 8c044e3f5a..d968dac4a1 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/mq/listener/PartyMeetingMessageListener.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/mq/listener/PartyMeetingMessageListener.java @@ -9,6 +9,7 @@ import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisUtils; import com.epmet.commons.tools.utils.SpringContextUtils; +import com.epmet.modules.partyOrg.service.IcPartyActService; import org.apache.commons.lang.StringUtils; import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext; import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus; @@ -69,7 +70,7 @@ public class PartyMeetingMessageListener implements MessageListenerConcurrently lock = distributedLock.getLock(String.format("lock:ic_warn_stats:%s", obj.getCustomerId()), 30L, 30L, TimeUnit.SECONDS); //待执行方法 - //SpringContextUtils.getBean(IcVolunteerPolyService.class).volunteerChanged(obj); + SpringContextUtils.getBean(IcPartyActService.class).partyMeetingMessage(obj); } catch (EpmetException e) { // 如果是我们手动抛出的异常,说明在业务可控范围内。目前不需要MQ重试