Browse Source

消息推送接口

master
syc 3 years ago
parent
commit
fc94ca79b5
  1. 68
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcPartyActServiceImpl.java

68
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partyOrg/service/impl/IcPartyActServiceImpl.java

@ -25,6 +25,7 @@ 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.IcScheduleEntity;
import com.epmet.modules.partyOrg.entity.ResiPartymemberAttachmentEntity;
import com.epmet.modules.partyOrg.service.IcPartyActOrgService;
import com.epmet.modules.partyOrg.service.IcPartyActService;
@ -341,16 +342,27 @@ public class IcPartyActServiceImpl extends BaseServiceImpl<IcPartyActDao, IcPart
*/
@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);
//1.校验活动/日程数据是否存在
IcPartyActEntity entity = null;
IcScheduleEntity schedule = null;
if (!"notify".equals(formDTO.getType())) {
entity = baseDao.selectById(formDTO.getIcPartyActId());
if (null == entity) {
String msg = "活动信息不存在,活动Id:" + formDTO.getIcPartyActId();
throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), msg, msg);
}
} else {
schedule = scheduleDao.selectById(formDTO.getIcPartyActId());
if (null == schedule) {
String msg = "日程信息不存在,活动Id:" + formDTO.getIcPartyActId();
throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), msg, msg);
}
}
List<UserMessageFormDTO> msgList = new ArrayList<>();
//2.根据不同类型消息触发不同处理逻辑
//2-1.发布活动给居民端涉及党员已经工作端活动发布站推送党建活动消息
if("publish".equals(formDTO.getType())){
if ("publish".equals(formDTO.getType())) {
//查询活动对应的发布范围信息
LambdaQueryWrapper<IcPartyActOrgEntity> orgWrapper = new LambdaQueryWrapper<>();
orgWrapper.eq(IcPartyActOrgEntity::getDelFlag, NumConstant.ZERO_STR);
@ -360,19 +372,19 @@ public class IcPartyActServiceImpl extends BaseServiceImpl<IcPartyActDao, IcPart
List<String> partyOrgIdList = list.stream().filter(ca -> !ca.getOrgType().equals("6")).map(m -> m.getJoinOrgId()).collect(Collectors.toList());
//分别查询党组织、党小组下的人
List<String> userIdList = new ArrayList<>();
if(!CollectionUtils.isEmpty(groupIdList)){
if (!CollectionUtils.isEmpty(groupIdList)) {
Result<List<ResiGroupMemberDTO>> result = resiGroupOpenFeignClient.groupMemberList(groupIdList);
if (!result.success()) {
throw new RenException("调用common service查询secret失败");
}
userIdList = result.getData().stream().map(ResiGroupMemberDTO::getCustomerUserId).collect(Collectors.toList());
}
if(!CollectionUtils.isEmpty(groupIdList)){
if (!CollectionUtils.isEmpty(groupIdList)) {
//TODO
}
//组装消息
userIdList.forEach(id->{
for (String id : userIdList){
UserMessageFormDTO msg = new UserMessageFormDTO();
msg.setCustomerId(formDTO.getCustomerId());
msg.setApp(AppClientConstant.APP_RESI);
@ -385,7 +397,7 @@ public class IcPartyActServiceImpl extends BaseServiceImpl<IcPartyActDao, IcPart
msg.setTargetId(formDTO.getIcPartyActId());
msg.setUserId(id);
msgList.add(msg);
});
}
//工作人员
UserMessageFormDTO msg = new UserMessageFormDTO();
msg.setCustomerId(formDTO.getCustomerId());
@ -400,10 +412,42 @@ public class IcPartyActServiceImpl extends BaseServiceImpl<IcPartyActDao, IcPart
msg.setUserId(entity.getPublishStaffId());
msgList.add(msg);
}
//2-2.活动开始前三天给工作人员推送提醒类消息
if ("remind".equals(formDTO.getType())) {
UserMessageFormDTO msg = new UserMessageFormDTO();
msg.setCustomerId(formDTO.getCustomerId());
msg.setApp(AppClientConstant.APP_GOV);
msg.setTitle("您有一个活动3天后即将自动发布");
msg.setReadFlag(ReadFlagConstant.UN_READ);
StringBuffer str = new StringBuffer();
str.append("主题:").append(entity.getTopic()).append("\n").append("时间:").append(entity.getHoldTime()).append("\n").append("地点:").append(entity.getAddress());
msg.setMessageContent(str.toString());
msg.setMessageType("party");
msg.setTargetId(formDTO.getIcPartyActId());
msg.setUserId(entity.getPublishStaffId());
msgList.add(msg);
}
//2-2.给工作人员推送日程消息
if ("remind".equals(formDTO.getType())) {
UserMessageFormDTO msg = new UserMessageFormDTO();
msg.setCustomerId(formDTO.getCustomerId());
msg.setApp(AppClientConstant.APP_GOV);
msg.setTitle("您有一个日程提醒");
msg.setReadFlag(ReadFlagConstant.UN_READ);
StringBuffer str = new StringBuffer();
str.append("日程:").append(schedule.getTitle()).append("\n").append("时间:").append(schedule.getRemindTime());
msg.setMessageContent(str.toString());
msg.setMessageType("party");
msg.setTargetId(formDTO.getIcPartyActId());
msg.setUserId(schedule.getStaffId());
msgList.add(msg);
}
//推送消息
//3.推送消息
Result sendMessageRes = messageOpenFeignClient.saveIcMessageList(msgList);
if (!sendMessageRes.success()) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "党建小助手推送消息失败");
}
}
}
Loading…
Cancel
Save