消息队列参数改为json字符串

yun-zuoyi
yunhao.wang 6 years ago
parent 725ed07621
commit 19e4fe21c1

@ -4,6 +4,7 @@ import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysMessageService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysUserService;
import cn.estsh.i3plus.core.apiservice.websocket.MessageWebSocket;
import cn.estsh.i3plus.platform.common.tool.JsonUtilTool;
import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
@ -12,6 +13,7 @@ import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysMessage;
import cn.estsh.i3plus.pojo.platform.bean.SysRefUserMessage;
import cn.estsh.i3plus.pojo.platform.bean.SysUser;
import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.rabbitmq.client.Channel;
import org.apache.commons.lang3.StringUtils;
@ -57,14 +59,15 @@ public class MessageLetterQueueReceiver {
/**
*
*
* @param msg
* @param data
* @param channel
* @param message rabbitTemplate.convertAndSend(I3CoreQueueConfig.IMPP_MESSAGE_QUEUE, new SysMessage(....));
*/
@RabbitListener(queues = PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE)
public void processImppMessage(SysMessage msg, Channel channel, Message message) {
LOGGER.info("【MQ-{}】 数据接收成功:{}", PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE, msg);
public void processImppMessage(String data, Channel channel, Message message) {
LOGGER.info("【MQ-{}】 数据接收成功:{}", PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE, data);
try {
SysMessage msg = JsonUtilTool.decode(data, SysMessage.class);
msg = sysMessageService.insertSysMessage(msg);
if (!StringUtils.isBlank(msg.getMessageReceiversId())) {
@ -110,7 +113,7 @@ public class MessageLetterQueueReceiver {
msg, message.getMessageProperties().getDeliveryTag());
channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
} catch (IOException e) {
printErrorMessage(e, Exception.class, msg);
printErrorMessage(e, Exception.class, data);
try {
// 未成功处理,重新发送
@ -121,7 +124,7 @@ public class MessageLetterQueueReceiver {
}
}
private void printErrorMessage(Exception e, Class zlass, SysMessage msg) {
private void printErrorMessage(Exception e, Class zlass, String msg) {
Long time = System.currentTimeMillis();
LOGGER.error("【MQ-{}】{} 异常代码:{} 消息内容{},处理出错:{}", PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE, time, zlass, msg, e.getMessage());
e.printStackTrace();
@ -136,7 +139,7 @@ public class MessageLetterQueueReceiver {
sysMessage.setIsSystem(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
sysMessage.setMessageReceiverType(ImppEnumUtil.MESSAGE_RECEIVER_TYPE.EXTERNAL.getValue());
sysMessage.setMessageReceiversNameRdd("yunhao.wang@estsh.com,wei.peng@estsh.com");
rabbitTemplate.convertAndSend(PlatformConstWords.IMPP_MESSAGE_MAIL_QUEUE, sysMessage);
rabbitTemplate.convertAndSend(PlatformConstWords.IMPP_MESSAGE_MAIL_QUEUE, JSON.toJSONString(sysMessage));
}

@ -4,6 +4,7 @@ import cn.estsh.i3plus.core.api.iservice.busi.ISysConfigService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysMessageService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysUserService;
import cn.estsh.i3plus.core.apiservice.util.MailUtil;
import cn.estsh.i3plus.platform.common.tool.JsonUtilTool;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
@ -11,8 +12,10 @@ import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysMessage;
import cn.estsh.i3plus.pojo.platform.bean.SysRefUserMessage;
import cn.estsh.i3plus.pojo.platform.bean.SysUser;
import com.alibaba.fastjson.JSON;
import com.rabbitmq.client.Channel;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.core.util.JsonUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.Message;
@ -47,13 +50,14 @@ public class MessageMailQueueReceiver {
/**
*
*
* @param msg
* @param data
* @param channel
* @param message
*/
@RabbitListener(queues = PlatformConstWords.IMPP_MESSAGE_MAIL_QUEUE)
public void processImppMail(SysMessage msg, Channel channel, Message message) {
public void processImppMail(String data, Channel channel, Message message) {
try {
SysMessage msg = JsonUtilTool.decode(data, SysMessage.class);
LOGGER.info("【MQ-IMPP_MESSAGE_MAIL_QUEUE】数据接收成功{}", msg);
if (msg.getMessageSendTime() == null) {
msg.setMessageSendTime(TimeTool.getNowTime(true));

@ -4,6 +4,7 @@ import cn.estsh.i3plus.core.api.iservice.busi.ISysFileAttachService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysFileService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysMessageService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.tool.JsonUtilTool;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
@ -52,15 +53,16 @@ public class MessageSWebNoticeQueueReceiver {
/**
* SWEB
*
* @param msg
* @param data
* @param channel
* @param message
*/
@RabbitListener(queues = PlatformConstWords.SWEB_NOTICE_QUEUE)
public void processImppMail(SysMessage msg, Channel channel, Message message) {
LOGGER.info("【MQ-{}】 数据接收成功:{}", PlatformConstWords.SWEB_NOTICE_QUEUE, msg);
public void processImppMail(String data, Channel channel, Message message) {
LOGGER.info("【MQ-{}】 数据接收成功:{}", PlatformConstWords.SWEB_NOTICE_QUEUE, data);
try {
// 添加消息
SysMessage msg = JsonUtilTool.decode(data, SysMessage.class);
msg = sysMessageService.insertSysMessage(msg);
// 添加附件信息

@ -2,6 +2,7 @@ package cn.estsh.i3plus.core.apiservice.mq;
import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskPlanService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysUserService;
import cn.estsh.i3plus.platform.common.tool.JsonUtilTool;
import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
@ -10,6 +11,7 @@ import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysMessage;
import cn.estsh.i3plus.pojo.platform.bean.SysTaskPlan;
import cn.estsh.i3plus.pojo.platform.platbean.SysLogTaskTime;
import com.alibaba.fastjson.JSON;
import com.rabbitmq.client.Channel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -48,13 +50,14 @@ public class ScheduleQueueReceiver {
/**
*
*
* @param logTaskTime
* @param data
* @param channel
* @param message
*/
@RabbitListener(queues = PlatformConstWords.IMPP_SCHEDULE_QUEUE)
public void processSchedule(SysLogTaskTime logTaskTime, Channel channel, Message message) {
public void processSchedule(String data, Channel channel, Message message) {
try {
SysLogTaskTime logTaskTime = JsonUtilTool.decode(data, SysLogTaskTime.class);
LOGGER.info("【MQ-IMPP_SCHEDULE_QUEUE】数据接收成功{}", logTaskTime);
// 跟新最后执行时间 及 任务状态
SysTaskPlan taskPlan = sysTaskPlanService.getSysTaskPlanByNameAndGroup(logTaskTime.getName(), logTaskTime.getGroupName());
@ -105,9 +108,9 @@ public class ScheduleQueueReceiver {
// 发送到对应处理队列
if (taskPlan.getNoticeMethod() != null && ImppEnumUtil.MESSAGE_TYPE.MAIL.getValue() == taskPlan.getNoticeMethod().intValue()) {
rabbitTemplate.convertAndSend(PlatformConstWords.IMPP_MESSAGE_MAIL_QUEUE, sysMessage);
rabbitTemplate.convertAndSend(PlatformConstWords.IMPP_MESSAGE_MAIL_QUEUE, JSON.toJSONString(sysMessage));
} else {
rabbitTemplate.convertAndSend(PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE, sysMessage);
rabbitTemplate.convertAndSend(PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE, JSON.toJSONString(sysMessage));
}
}
}

@ -19,6 +19,7 @@ import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
import cn.estsh.impp.framework.boot.util.ImppRedis;
import com.alibaba.fastjson.JSON;
import com.netflix.discovery.converters.Auto;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
@ -158,12 +159,11 @@ public class SysMessageService implements ISysMessageService {
public void doSendSysMessage(SysMessage sysMessage) {
// 判断消息类型推送到对应的队列
if(ImppEnumUtil.MESSAGE_TYPE.MAIL.getValue() == sysMessage.getMessageTypeValue()){
rabbitTemplate.convertAndSend(PlatformConstWords.IMPP_MESSAGE_MAIL_QUEUE,sysMessage);
rabbitTemplate.convertAndSend(PlatformConstWords.IMPP_MESSAGE_MAIL_QUEUE, JSON.toJSONString(sysMessage));
}else if(ImppEnumUtil.MESSAGE_TYPE.LETTER.getValue() == sysMessage.getMessageTypeValue()){
rabbitTemplate.convertAndSend(PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE,sysMessage);
rabbitTemplate.convertAndSend(PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE_BAK,sysMessage);
rabbitTemplate.convertAndSend(PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE,JSON.toJSONString(sysMessage));
rabbitTemplate.convertAndSend(PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE_BAK,JSON.toJSONString(sysMessage));
} else if(ImppEnumUtil.MESSAGE_TYPE.SWEB_NOTICE.getValue() == sysMessage.getMessageTypeValue()){
rabbitTemplate.convertAndSend(PlatformConstWords.SWEB_NOTICE_QUEUE,sysMessage);
} else {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())

@ -14,6 +14,7 @@ import cn.estsh.i3plus.pojo.platform.bean.SysFile;
import cn.estsh.i3plus.pojo.platform.bean.SysMessage;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFRow;
@ -438,7 +439,7 @@ public class ExcelUtil {
sysMessage.setIsSystem(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
sysMessage.setMessageReceiversId(String.valueOf(userId));
rabbitTemplate.convertAndSend(PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE,sysMessage);
rabbitTemplate.convertAndSend(PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE, JSON.toJSONString(sysMessage));
}
}

Loading…
Cancel
Save