站内信 全部完成

yun-zuoyi
yunhao.wang 7 years ago
parent b035e3170c
commit 3a8be23b6f

@ -2,6 +2,7 @@ package cn.estsh.i3plus.core.api.iservice.busi;
import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.platform.bean.RefUserMessage;
import cn.estsh.i3plus.pojo.platform.bean.SysMessage; import cn.estsh.i3plus.pojo.platform.bean.SysMessage;
import java.util.List; import java.util.List;
@ -40,7 +41,7 @@ public interface ISysMessageService {
List<SysMessage> listSysMessage(); List<SysMessage> listSysMessage();
/** /**
* id * id*
* @param id * @param id
* @return * @return
*/ */
@ -54,12 +55,12 @@ public interface ISysMessageService {
*/ */
ListPager querySysMessageByPager(SysMessage sysMessage, Pager pager); ListPager querySysMessageByPager(SysMessage sysMessage, Pager pager);
/** // /**
* id // * 根据id修改消息状态
* @param id // * @param id
* @param status // * @param status
*/ // */
void updateSysMessageStatusById(String id,Integer status); // void updateSysMessageStatusById(String id,Integer status);
/** /**
* *
@ -67,10 +68,16 @@ public interface ISysMessageService {
*/ */
void deleteSysMessageByIds(String[] ids); void deleteSysMessageByIds(String[] ids);
// /**
// * 批量修改消息状态
// * @param ids
// * @param status
// */
// void updateSysMessageStatusByIds(String[] ids,Integer status);
/** /**
* *
* @param ids * @param refUserMessage
* @param status
*/ */
void updateSysMessageStatusByIds(String[] ids,Integer status); RefUserMessage insertRefUserMessage(RefUserMessage refUserMessage);
} }

@ -1,14 +1,16 @@
package cn.estsh.i3plus.core.apiservice.controller.busi; package cn.estsh.i3plus.core.apiservice.controller.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysMessageService; import cn.estsh.i3plus.core.api.iservice.busi.ISysMessageService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysUserService;
import cn.estsh.i3plus.core.apiservice.mq.I3CoreQueueConfig;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SessionUser; import cn.estsh.i3plus.pojo.platform.bean.*;
import cn.estsh.i3plus.pojo.platform.bean.SysMessage;
import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
@ -17,11 +19,15 @@ import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.estsh.impp.framework.boot.util.ValidatorBean; import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -44,21 +50,18 @@ public class SysMessageController {
@ApiOperation(value = "新增消息",notes = "新增消息") @ApiOperation(value = "新增消息",notes = "新增消息")
public ResultBean insertSysMessage(SysMessage sysMessage){ public ResultBean insertSysMessage(SysMessage sysMessage){
try { try {
// 登录用户 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SessionUser user = AuthUtil.getSessionUser();
// 条件校验 // 条件校验
ValidatorBean.beginValid(sysMessage) ValidatorBean.beginValid(sysMessage)
.notNull("messageTitle",sysMessage.getMessageTitle()) .notNull("messageTitle",sysMessage.getMessageTitle())
.notNull("messageContent",sysMessage.getMessageContent()) .notNull("messageContent",sysMessage.getMessageContent())
.checkNotZero("messageType",sysMessage.getMessageTypeId()) .checkNotZero("messageType",sysMessage.getMessageType())
.notNull("messageRecipientId",sysMessage.getMessageRecipientId()); .notNull("messageReceiversId",sysMessage.getMessageReceiversId());
// 添加初始化 // 设置发件人名称
ConvertBean.modelInitialize(sysMessage,user);
// sysMessage.setMessageSendId(user.getUser().getId()); // sysMessage.setMessageSendId(user.getUser().getId());
// sysMessage.setRedSendName(user.getUser().getName()); // sysMessage.setRedSendName(user.getUser().getName());
sysMessage.setMessageStatusId(ImppEnumUtil.USER_MESSAGE_STATUS.UNREAD.getValue()); sysMessage.setMessageSendTime(sdf.format(new Date()));
sysMessageService.insertSysMessage(sysMessage); sysMessageService.insertSysMessage(sysMessage);
return ResultBean.success("添加成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); return ResultBean.success("添加成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
@ -100,11 +103,7 @@ public class SysMessageController {
ValidatorBean.beginValid(sysMessage) ValidatorBean.beginValid(sysMessage)
.notNull("messageTitle",sysMessage.getMessageTitle()) .notNull("messageTitle",sysMessage.getMessageTitle())
.notNull("messageContent",sysMessage.getMessageContent()) .notNull("messageContent",sysMessage.getMessageContent())
.checkNotZero("messageType",sysMessage.getMessageTypeId()) .checkNotZero("messageType",sysMessage.getMessageType());
.notNull("messageRecipientId",sysMessage.getMessageRecipientId());
// 修改初始化
ConvertBean.modelUpdate(sysMessage,user);
sysMessageService.updateSysMessage(sysMessage); sysMessageService.updateSysMessage(sysMessage);
return ResultBean.success("修改成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); return ResultBean.success("修改成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
@ -166,23 +165,23 @@ public class SysMessageController {
} }
} }
@PutMapping("/status") // @PutMapping("/status")
public ResultBean updateSysMessageStatusById(String id,Integer status){ // public ResultBean updateSysMessageStatusById(String id,Integer status){
try { // try {
// 条件校验 // // 条件校验
ValidatorBean.checkNotNull(id,"id不能为空"); // ValidatorBean.checkNotNull(id,"id不能为空");
ValidatorBean.checkNotZero(status,"修改状态值不能为空"); // ValidatorBean.checkNotZero(status,"修改状态值不能为空");
//
sysMessageService.updateSysMessageStatusById(id,status); // sysMessageService.updateSysMessageStatusById(id,status);
return ResultBean.success("修改成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); // return ResultBean.success("修改成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){ // }catch(ImppBusiException busExcep){
LOGGER.error(busExcep.getErrorMsg() + "{}",busExcep.getErrorDetail(),busExcep); // LOGGER.error(busExcep.getErrorMsg() + "{}",busExcep.getErrorDetail(),busExcep);
return ResultBean.fail(busExcep.getErrorShow()); // return ResultBean.fail(busExcep.getErrorShow());
}catch(Exception e){ // }catch(Exception e){
LOGGER.error(ImppExceptionEnum.SYSTEM_EXCEPTION.getDescription() + "{}",e.getMessage(),e); // LOGGER.error(ImppExceptionEnum.SYSTEM_EXCEPTION.getDescription() + "{}",e.getMessage(),e);
return ResultBean.fail().setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode()); // return ResultBean.fail().setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode());
} // }
} // }
@DeleteMapping("/batch-delete") @DeleteMapping("/batch-delete")
@ApiOperation(value = "批量删除消息",notes = "批量删除消息") @ApiOperation(value = "批量删除消息",notes = "批量删除消息")
@ -208,28 +207,28 @@ public class SysMessageController {
} }
} }
@PutMapping("/batch-status") // @PutMapping("/batch-status")
@ApiOperation(value = "批量切换消息状态",notes = "批量切换消息状态") // @ApiOperation(value = "批量切换消息状态",notes = "批量切换消息状态")
public ResultBean updateSysMessageStatusByIds(String[] ids,Integer status){ // public ResultBean updateSysMessageStatusByIds(String[] ids,Integer status){
try{ // try{
// 条件判断 // // 条件判断
ValidatorBean.checkNotZero(status,"状态不能为空"); // ValidatorBean.checkNotZero(status,"状态不能为空");
ids = ConvertBean.modelSafeArrayNumber(ids,true); // ids = ConvertBean.modelSafeArrayNumber(ids,true);
if(ids.length == 0){ // if(ids.length == 0){
throw ImppExceptionBuilder.newInstance() // throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) // .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) // .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("请选择需要操作的资源。") // .setErrorDetail("请选择需要操作的资源。")
.build(); // .build();
} // }
sysMessageService.updateSysMessageStatusByIds(ids,status); // sysMessageService.updateSysMessageStatusByIds(ids,status);
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); // return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){ // }catch(ImppBusiException busExcep){
LOGGER.error(busExcep.getErrorMsg() + "{}",busExcep.getErrorDetail(),busExcep); // LOGGER.error(busExcep.getErrorMsg() + "{}",busExcep.getErrorDetail(),busExcep);
return ResultBean.fail(busExcep.getErrorShow()); // return ResultBean.fail(busExcep.getErrorShow());
}catch(Exception e){ // }catch(Exception e){
LOGGER.error(ImppExceptionEnum.SYSTEM_EXCEPTION.getDescription() + "{}",e.getMessage(),e); // LOGGER.error(ImppExceptionEnum.SYSTEM_EXCEPTION.getDescription() + "{}",e.getMessage(),e);
return ResultBean.fail().setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode()); // return ResultBean.fail().setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode());
} // }
} // }
} }

@ -3,6 +3,7 @@ package cn.estsh.i3plus.core.apiservice.mq;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.Queue; import org.springframework.amqp.core.Queue;
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@ -13,11 +14,16 @@ import org.springframework.context.annotation.Configuration;
* @CreateDate : 2018-09-26 16:57 * @CreateDate : 2018-09-26 16:57
* @Modify: * @Modify:
**/ **/
@ConditionalOnExpression("'${spring.core.rabbitmq:true}' == 'true'")
@Configuration @Configuration
public class I3CoreQueueConfig { public class I3CoreQueueConfig {
private static final Logger LOGGER = LoggerFactory.getLogger(I3CoreQueueConfig.class); private static final Logger LOGGER = LoggerFactory.getLogger(I3CoreQueueConfig.class);
public static final String IMPP_MESSAGE_QUEUE = "IMPP_MESSAGE_QUEUE"; public static final String IMPP_MESSAGE_QUEUE = "IMPP_MESSAGE_QUEUE";
public static final String IMPP_MESSAGE_MAIL_QUEUE = "IMPP_MESSAGE_MAIL_QUEUE";
public static final String IMPP_MESSAGE_LETTER_QUEUE = "IMPP_MESSAGE_LETTER_QUEUE";
@Bean @Bean
public Queue getImppMessageQueue() { public Queue getImppMessageQueue() {
LOGGER.info("【开启平台消息队列】"); LOGGER.info("【开启平台消息队列】");

@ -0,0 +1,61 @@
package cn.estsh.i3plus.core.apiservice.mq;
import cn.estsh.i3plus.core.api.iservice.busi.ISysMessageService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysUserService;
import cn.estsh.i3plus.pojo.platform.bean.RefUserMessage;
import cn.estsh.i3plus.pojo.platform.bean.SysMessage;
import com.rabbitmq.client.Channel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.IOException;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2018-11-15 22:35
* @Modify:
**/
@Component
public class LetterQueueReceiver {
private static final Logger LOGGER = LoggerFactory.getLogger(LetterQueueReceiver.class);
@Autowired
ISysMessageService sysMessageService;
@Autowired
ISysUserService sysUserService;
/**
*
* @param msg
* @param channel
* @param message
* rabbitTemplate.convertAndSend(I3CoreQueueConfig.IMPP_MESSAGE_QUEUE, new SysMessage(....));
*/
// @RabbitListener(queues = I3CoreQueueConfig.IMPP_MESSAGE_QUEUE)
@RabbitListener(queues = I3CoreQueueConfig.IMPP_MESSAGE_LETTER_QUEUE)
public void processImppMessage(RefUserMessage msg, Channel channel, Message message) {
try {
LOGGER.info("【MQ-IMPP_MESSAGE_QUEUE】数据接收成功{}",msg);
sysMessageService.insertRefUserMessage(msg);
//信息已处理
channel.basicAck(message.getMessageProperties().getDeliveryTag(),false);
} catch (IOException e) {
LOGGER.error("【MQ-IMPP_MESSAGE_QUEUE】处理出错{}",e.getMessage(),e);
//丢弃这条消息
try {
// 未成功处理,重新发送
channel.basicNack(message.getMessageProperties().getDeliveryTag(),false,true);
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}

@ -0,0 +1,80 @@
package cn.estsh.i3plus.core.apiservice.mq;
import cn.estsh.i3plus.core.api.iservice.busi.ISysMessageService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysUserService;
import cn.estsh.i3plus.core.apiservice.serviceimpl.busi.SysMessageService;
import cn.estsh.i3plus.core.apiservice.util.MailUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.RefUserMessage;
import cn.estsh.i3plus.pojo.platform.bean.SysMessage;
import cn.estsh.i3plus.pojo.platform.bean.SysUser;
import cn.estsh.i3plus.pojo.platform.repository.RefUserMessageRepository;
import com.rabbitmq.client.Channel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2018-11-15 22:15
* @Modify:
**/
@Component
public class MailQueueReceiver {
private static final Logger LOGGER = LoggerFactory.getLogger(MailQueueReceiver.class);
@Autowired
ISysMessageService sysMessageService;
@Autowired
ISysUserService sysUserService;
/**
*
* @param msg
* @param channel
* @param message
*/
@RabbitListener(queues = I3CoreQueueConfig.IMPP_MESSAGE_MAIL_QUEUE)
public void processImppMail(RefUserMessage msg, Channel channel, Message message) {
try {
Thread.sleep(18000);
LOGGER.info("【MQ-IMPP_MESSAGE_QUEUE】数据接收成功{}",msg);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
msg.setReceiverTime(sdf.format(new Date()));
sysMessageService.insertRefUserMessage(msg);
SysMessage sysMessage = sysMessageService.getSysMessageById(msg.getMessageId().toString());
SysUser sysUser = sysUserService.getSysUserById(msg.getReceiverId().toString());
MailUtil mailUtil = new MailUtil();
mailUtil.setSubject(sysMessage.getMessageTitle());
mailUtil.setContentType(ImppEnumUtil.MESSAGE_CONTENT_TYPE.valueOfDescription(sysMessage.getMessageContentType()));
mailUtil.setBody(sysMessage.getMessageContent());
mailUtil.setTo(sysUser.getUserEmail());
mailUtil.send();
//信息已处理
channel.basicAck(message.getMessageProperties().getDeliveryTag(),false);
} catch (IOException e) {
LOGGER.error("【MQ-IMPP_MESSAGE_QUEUE】处理出错{}",e.getMessage(),e);
//丢弃这条消息
try {
// 未成功处理,重新发送
channel.basicNack(message.getMessageProperties().getDeliveryTag(),false,true);
} catch (IOException e1) {
e1.printStackTrace();
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

@ -1,23 +1,22 @@
package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysMessageService; import cn.estsh.i3plus.core.api.iservice.busi.ISysMessageService;
import cn.estsh.i3plus.core.apiservice.mq.I3CoreQueueConfig;
import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.common.PagerHelper; import cn.estsh.i3plus.pojo.base.common.PagerHelper;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.HqlPack; import cn.estsh.i3plus.pojo.platform.bean.RefUserMessage;
import cn.estsh.i3plus.pojo.platform.bean.SysMessage; import cn.estsh.i3plus.pojo.platform.bean.SysMessage;
import cn.estsh.i3plus.pojo.platform.bean.SysUser; import cn.estsh.i3plus.pojo.platform.bean.SysUser;
import cn.estsh.i3plus.pojo.platform.bean.SysUserInfo; import cn.estsh.i3plus.pojo.platform.repository.RefUserMessageRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysMessageRepository; import cn.estsh.i3plus.pojo.platform.repository.SysMessageRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysUserInfoRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysUserRepository; import cn.estsh.i3plus.pojo.platform.repository.SysUserRepository;
import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack; import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import org.apache.commons.lang3.StringUtils;
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -35,45 +34,61 @@ public class SysMessageService implements ISysMessageService {
public static final Logger LOGGER = LoggerFactory.getLogger(SysMessageService.class); public static final Logger LOGGER = LoggerFactory.getLogger(SysMessageService.class);
@Autowired @Autowired
public SysMessageRepository sysMessageRDao; private SysMessageRepository sysMessageRDao;
@Autowired
private RefUserMessageRepository refUserMessageRDao;
@Autowired @Autowired
public SysUserRepository sysUserRDao; private SysUserRepository sysUserRDao;
/**
* rabbitMQ
*/
@Autowired @Autowired
private SysUserInfoRepository userInfoRDao; private RabbitTemplate rabbitTemplate;
@Override @Override
public SysMessage insertSysMessage(SysMessage sysMessage) { public SysMessage insertSysMessage(SysMessage sysMessage) {
// 查询接收人名称 sysMessage = sysMessageRDao.insert(sysMessage);
if (sysMessage.getMessageRecipientId() != null && sysMessage.getMessageRecipientId() > 0) {
LOGGER.info("用户信息 SYSUSER id:{}", sysMessage.getMessageRecipientId()); String[] messageReceiver = sysMessage.getMessageReceiversId().split(",");
SysUserInfo userInfo = userInfoRDao.getById(sysMessage.getMessageRecipientId()); // 收件人名称集合
String[] receiverName = new String[messageReceiver.length];
sysMessage.setRedMessageRecipientName(userInfo.getName()); RefUserMessage refUserMessage;
SysUser sysUser;
for (int i = 0; i < messageReceiver.length; i++) {
sysUser = sysUserRDao.getById(Long.parseLong(messageReceiver[i]));
receiverName[i] = sysUser.getUserName();
refUserMessage = new RefUserMessage();
refUserMessage.setMessageId(sysMessage.getId());
refUserMessage.setMessageTitleRdd(sysMessage.getMessageTitle());
refUserMessage.setMessageTypeRdd(sysMessage.getMessageType());
refUserMessage.setReceiverId(sysUser.getId());
refUserMessage.setReceiverNameRdd(sysUser.getUserName());
// 判断消息类型推送到对应的队列
if(ImppEnumUtil.USER_MESSAGE_TYPE.MAIL.getValue() == sysMessage.getMessageType().intValue()){
rabbitTemplate.convertAndSend(I3CoreQueueConfig.IMPP_MESSAGE_MAIL_QUEUE,refUserMessage);
}else{
rabbitTemplate.convertAndSend(I3CoreQueueConfig.IMPP_MESSAGE_LETTER_QUEUE,refUserMessage);
}
} }
LOGGER.info("消息 SYS_MESSAGE :{}",sysMessage); sysMessage.setMessageSenderNameRdd(StringUtils.join(receiverName, ","));
return sysMessageRDao.insert(sysMessage); sysMessageRDao.update(sysMessage);
return sysMessage;
} }
@Override @Override
public void deleteSysMessageById(String id) { public void deleteSysMessageById(String id) {
LOGGER.info("消息 SYS_MESSAGE id:{}",id); LOGGER.info("消息 SYS_MESSAGE id:{}",id);
refUserMessageRDao.deleteByProperty("messageId",Long.parseLong(id));
sysMessageRDao.deleteById(Long.parseLong(id)); sysMessageRDao.deleteById(Long.parseLong(id));
} }
@Override @Override
public void updateSysMessage(SysMessage sysMessage){ public void updateSysMessage(SysMessage sysMessage){
// 查询接收人名称
if (sysMessage.getMessageRecipientId() != null && sysMessage.getMessageRecipientId() > 0) {
LOGGER.info("用户信息 SYSUSER id:{}", sysMessage.getMessageRecipientId());
SysUserInfo userInfo = userInfoRDao.getById(sysMessage.getMessageRecipientId());
sysMessage.setRedMessageRecipientName(userInfo.getName());
}
LOGGER.info("消息 SYS_MESSAGE :{}",sysMessage); LOGGER.info("消息 SYS_MESSAGE :{}",sysMessage);
sysMessageRDao.update(sysMessage); sysMessageRDao.update(sysMessage);
} }
@ -103,11 +118,11 @@ public class SysMessageService implements ISysMessageService {
} }
} }
@Override // @Override
public void updateSysMessageStatusById(String id, Integer status) { // public void updateSysMessageStatusById(String id, Integer status) {
LOGGER.info("消息 SYS_MESSAGE id:{}status:{}",id,status); // LOGGER.info("消息 SYS_MESSAGE id:{}status:{}",id,status);
sysMessageRDao.updateByProperties("id",Long.parseLong(id),"messageStatusId", status); // sysMessageRDao.updateByProperties("id",Long.parseLong(id),"messageStatusId", status);
} // }
@Override @Override
public void deleteSysMessageByIds(String[] ids) { public void deleteSysMessageByIds(String[] ids) {
@ -120,12 +135,17 @@ public class SysMessageService implements ISysMessageService {
sysMessageRDao.deleteByIds(array); sysMessageRDao.deleteByIds(array);
} }
@Override // @Override
public void updateSysMessageStatusByIds(String[] ids,Integer status) { // public void updateSysMessageStatusByIds(String[] ids,Integer status) {
LOGGER.info("消息 SYS_MESSAGE ids{}status{}",ids,status); // LOGGER.info("消息 SYS_MESSAGE ids{}status{}",ids,status);
StringBuffer where = new StringBuffer(); // StringBuffer where = new StringBuffer();
HqlPack.getInPack(String.join(",", ids), "id", where); // HqlPack.getInPack(String.join(",", ids), "id", where);
//
// sysMessageRDao.updateByHqlWhere(where.toString(), "messageStatusId", status);
// }
sysMessageRDao.updateByHqlWhere(where.toString(), "messageStatusId", status); @Override
public RefUserMessage insertRefUserMessage(RefUserMessage refUserMessage) {
return refUserMessageRDao.insert(refUserMessage);
} }
} }

@ -1,16 +1,17 @@
package cn.estsh.i3plus.core.apiservice.util; package cn.estsh.i3plus.core.apiservice.util;
import cn.estsh.i3plus.platform.common.util.CommonConstWords; import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.core.io.support.PropertiesLoaderUtils; import org.springframework.core.io.support.PropertiesLoaderUtils;
import sun.misc.BASE64Encoder;
import javax.mail.*; import javax.mail.*;
import javax.mail.internet.AddressException; import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress; import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;
import java.io.IOException; import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Properties; import java.util.Properties;
/** /**
@ -145,9 +146,6 @@ public class MailUtil {
*/ */
public void send() { public void send() {
try { try {
// 乱码
BASE64Encoder enc = new BASE64Encoder();
Properties server = new Properties(); Properties server = new Properties();
server.put("mail.smtp.port", String.valueOf(this.smtpPort)); server.put("mail.smtp.port", String.valueOf(this.smtpPort));
server.put("mail.smtp.host", this.smtpHost); server.put("mail.smtp.host", this.smtpHost);
@ -159,7 +157,8 @@ public class MailUtil {
MimeMessage msg = new MimeMessage(conn); MimeMessage msg = new MimeMessage(conn);
if (nick != null && !"".equals(nick)) { if (nick != null && !"".equals(nick)) {
msg.setSubject("=?GB2312?B?" + enc.encode(nick.getBytes())+ "?=");
msg.setSubject( MimeUtility.encodeText(nick, MimeUtility.mimeCharset("gb2312"), null));
msg.setFrom(new InternetAddress(nick + " <" + from + ">")); msg.setFrom(new InternetAddress(nick + " <" + from + ">"));
} else { } else {
msg.setFrom(new InternetAddress(this.from)); msg.setFrom(new InternetAddress(this.from));
@ -173,10 +172,9 @@ public class MailUtil {
msg.setRecipients(Message.RecipientType.CC, this.cc); msg.setRecipients(Message.RecipientType.CC, this.cc);
} }
msg.setSubject("=?GB2312?B?" + enc.encode(this.title.getBytes())+ "?="); msg.setSubject( MimeUtility.encodeText(this.title, MimeUtility.mimeCharset("gb2312"), null));
msg.setSubject(this.title); msg.setSubject(this.title);
// 是HTML格式的邮件
msg.setContent(this.content, this.content_type); msg.setContent(this.content, this.content_type);
msg.saveChanges(); msg.saveChanges();
@ -193,10 +191,17 @@ public class MailUtil {
e.printStackTrace(); e.printStackTrace();
} catch (MessagingException e) { } catch (MessagingException e) {
e.printStackTrace(); e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} }
} }
public boolean isHtmlModeMail() { public static void main(String[] args) {
return this.content_type.equals(CommonConstWords.MAIL_MODE_HTML); MailUtil mail = new MailUtil();
mail.setTo("yunhao.wang@estsh.com");
mail.setSubject("中文");
mail.setContentType(ImppEnumUtil.MESSAGE_CONTENT_TYPE.HTML.getDescription());
mail.setBody("内容");
mail.send();
} }
} }

@ -29,4 +29,7 @@ server.tomcat.uri-encoding=UTF-8
spring.mvc.view.prefix=/upload_demo spring.mvc.view.prefix=/upload_demo
spring.mvc.view.suffix=.jsp spring.mvc.view.suffix=.jsp
#静态文件访问配置 #静态文件访问配置
spring.resources.static-locations=/static/**,/** spring.resources.static-locations=/static/**,/**
########## CORE-MQ ########
spring.core.rabbitmq=false

@ -0,0 +1,45 @@
package cn.estsh.i3plus.core.apiservice.mq;
import cn.estsh.i3plus.core.apiservice.serviceimpl.busi.TestBase;
import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysMessage;
import org.junit.Test;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2018-11-15 13:22
* @Modify:
**/
public class MailUtil extends TestBase {
/**
* rabbitMQ
*/
@Autowired
private RabbitTemplate rabbitTemplate;
@Test
public void sendMail() throws InterruptedException {
SysMessage sysMessage = new SysMessage();
sysMessage.setMessageTitle("test-系统通知");
sysMessage.setMessageSenderNameRdd("system");
sysMessage.setMessageSenderId(-1L);
sysMessage.setMessageType(ImppEnumUtil.USER_MESSAGE_TYPE.MAIL.getValue());
sysMessage.setMessageSendTime("2018-11-01 16:58:00");
for (int i = 0; i < 50; i++) {
sysMessage = new SysMessage();
sysMessage.setId(null);
sysMessage.setMessageTitle( i + "mail测试");
sysMessage.setMessageSenderNameRdd(i+"");
rabbitTemplate.convertAndSend("WYH_MESSAGE_QUEUE", new SysMessage());
System.out.println("第" + i + "次");
}
}
}

@ -56,13 +56,10 @@ public class TestMessageServiceImpl extends TestBase {
public void testInsertSysMessage() { public void testInsertSysMessage() {
SysMessage sysMessage = new SysMessage(); SysMessage sysMessage = new SysMessage();
sysMessage.setMessageTitle("test-系统通知"); sysMessage.setMessageTitle("test-系统通知");
sysMessage.setRedSendName("system"); sysMessage.setMessageSenderNameRdd("system");
sysMessage.setMessageSendId(-1L); sysMessage.setMessageSenderId(-1L);
sysMessage.setRedMessageRecipientName("admin"); sysMessage.setMessageType(ImppEnumUtil.USER_MESSAGE_TYPE.MAIL.getValue());
sysMessage.setMessageRecipientId(-1L); sysMessage.setMessageSendTime("2018-11-01 16:58:00");
sysMessage.setMessageTypeId(ImppEnumUtil.USER_MESSAGE_TYPE.NOTICE.getValue());
sysMessage.setMessageStatusId(ImppEnumUtil.USER_MESSAGE_STATUS.UNREAD.getValue());
sysMessage.setCreateDatetime("2018-11-01 16:58:00");
for (int i = 0; i < 50; i++) { for (int i = 0; i < 50; i++) {
sysMessage.setId(null); sysMessage.setId(null);

Loading…
Cancel
Save