站内信 全部完成

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

@ -1,14 +1,16 @@
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.ISysUserService;
import cn.estsh.i3plus.core.apiservice.mq.I3CoreQueueConfig;
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.common.Pager;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
import cn.estsh.i3plus.pojo.platform.bean.SysMessage;
import cn.estsh.i3plus.pojo.platform.bean.*;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
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 io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
/**
@ -44,21 +50,18 @@ public class SysMessageController {
@ApiOperation(value = "新增消息",notes = "新增消息")
public ResultBean insertSysMessage(SysMessage sysMessage){
try {
// 登录用户
SessionUser user = AuthUtil.getSessionUser();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 条件校验
ValidatorBean.beginValid(sysMessage)
.notNull("messageTitle",sysMessage.getMessageTitle())
.notNull("messageContent",sysMessage.getMessageContent())
.checkNotZero("messageType",sysMessage.getMessageTypeId())
.notNull("messageRecipientId",sysMessage.getMessageRecipientId());
.checkNotZero("messageType",sysMessage.getMessageType())
.notNull("messageReceiversId",sysMessage.getMessageReceiversId());
// 添加初始化
ConvertBean.modelInitialize(sysMessage,user);
// 设置发件人名称
// sysMessage.setMessageSendId(user.getUser().getId());
// sysMessage.setRedSendName(user.getUser().getName());
sysMessage.setMessageStatusId(ImppEnumUtil.USER_MESSAGE_STATUS.UNREAD.getValue());
sysMessage.setMessageSendTime(sdf.format(new Date()));
sysMessageService.insertSysMessage(sysMessage);
return ResultBean.success("添加成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
@ -100,11 +103,7 @@ public class SysMessageController {
ValidatorBean.beginValid(sysMessage)
.notNull("messageTitle",sysMessage.getMessageTitle())
.notNull("messageContent",sysMessage.getMessageContent())
.checkNotZero("messageType",sysMessage.getMessageTypeId())
.notNull("messageRecipientId",sysMessage.getMessageRecipientId());
// 修改初始化
ConvertBean.modelUpdate(sysMessage,user);
.checkNotZero("messageType",sysMessage.getMessageType());
sysMessageService.updateSysMessage(sysMessage);
return ResultBean.success("修改成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
@ -166,23 +165,23 @@ public class SysMessageController {
}
}
@PutMapping("/status")
public ResultBean updateSysMessageStatusById(String id,Integer status){
try {
// 条件校验
ValidatorBean.checkNotNull(id,"id不能为空");
ValidatorBean.checkNotZero(status,"修改状态值不能为空");
sysMessageService.updateSysMessageStatusById(id,status);
return ResultBean.success("修改成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
LOGGER.error(busExcep.getErrorMsg() + "{}",busExcep.getErrorDetail(),busExcep);
return ResultBean.fail(busExcep.getErrorShow());
}catch(Exception e){
LOGGER.error(ImppExceptionEnum.SYSTEM_EXCEPTION.getDescription() + "{}",e.getMessage(),e);
return ResultBean.fail().setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode());
}
}
// @PutMapping("/status")
// public ResultBean updateSysMessageStatusById(String id,Integer status){
// try {
// // 条件校验
// ValidatorBean.checkNotNull(id,"id不能为空");
// ValidatorBean.checkNotZero(status,"修改状态值不能为空");
//
// sysMessageService.updateSysMessageStatusById(id,status);
// return ResultBean.success("修改成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// }catch(ImppBusiException busExcep){
// LOGGER.error(busExcep.getErrorMsg() + "{}",busExcep.getErrorDetail(),busExcep);
// return ResultBean.fail(busExcep.getErrorShow());
// }catch(Exception e){
// LOGGER.error(ImppExceptionEnum.SYSTEM_EXCEPTION.getDescription() + "{}",e.getMessage(),e);
// return ResultBean.fail().setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode());
// }
// }
@DeleteMapping("/batch-delete")
@ApiOperation(value = "批量删除消息",notes = "批量删除消息")
@ -208,28 +207,28 @@ public class SysMessageController {
}
}
@PutMapping("/batch-status")
@ApiOperation(value = "批量切换消息状态",notes = "批量切换消息状态")
public ResultBean updateSysMessageStatusByIds(String[] ids,Integer status){
try{
// 条件判断
ValidatorBean.checkNotZero(status,"状态不能为空");
ids = ConvertBean.modelSafeArrayNumber(ids,true);
if(ids.length == 0){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("请选择需要操作的资源。")
.build();
}
sysMessageService.updateSysMessageStatusByIds(ids,status);
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
LOGGER.error(busExcep.getErrorMsg() + "{}",busExcep.getErrorDetail(),busExcep);
return ResultBean.fail(busExcep.getErrorShow());
}catch(Exception e){
LOGGER.error(ImppExceptionEnum.SYSTEM_EXCEPTION.getDescription() + "{}",e.getMessage(),e);
return ResultBean.fail().setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode());
}
}
// @PutMapping("/batch-status")
// @ApiOperation(value = "批量切换消息状态",notes = "批量切换消息状态")
// public ResultBean updateSysMessageStatusByIds(String[] ids,Integer status){
// try{
// // 条件判断
// ValidatorBean.checkNotZero(status,"状态不能为空");
// ids = ConvertBean.modelSafeArrayNumber(ids,true);
// if(ids.length == 0){
// throw ImppExceptionBuilder.newInstance()
// .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
// .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
// .setErrorDetail("请选择需要操作的资源。")
// .build();
// }
// sysMessageService.updateSysMessageStatusByIds(ids,status);
// return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// }catch(ImppBusiException busExcep){
// LOGGER.error(busExcep.getErrorMsg() + "{}",busExcep.getErrorDetail(),busExcep);
// return ResultBean.fail(busExcep.getErrorShow());
// }catch(Exception e){
// LOGGER.error(ImppExceptionEnum.SYSTEM_EXCEPTION.getDescription() + "{}",e.getMessage(),e);
// 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.LoggerFactory;
import org.springframework.amqp.core.Queue;
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@ -13,11 +14,16 @@ import org.springframework.context.annotation.Configuration;
* @CreateDate : 2018-09-26 16:57
* @Modify:
**/
@ConditionalOnExpression("'${spring.core.rabbitmq:true}' == 'true'")
@Configuration
public class I3CoreQueueConfig {
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_MAIL_QUEUE = "IMPP_MESSAGE_MAIL_QUEUE";
public static final String IMPP_MESSAGE_LETTER_QUEUE = "IMPP_MESSAGE_LETTER_QUEUE";
@Bean
public Queue getImppMessageQueue() {
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;
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.common.Pager;
import cn.estsh.i3plus.pojo.base.common.PagerHelper;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.HqlPack;
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.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.SysUserInfoRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysUserRepository;
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.ValidatorBean;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -35,45 +34,61 @@ public class SysMessageService implements ISysMessageService {
public static final Logger LOGGER = LoggerFactory.getLogger(SysMessageService.class);
@Autowired
public SysMessageRepository sysMessageRDao;
private SysMessageRepository sysMessageRDao;
@Autowired
private RefUserMessageRepository refUserMessageRDao;
@Autowired
public SysUserRepository sysUserRDao;
private SysUserRepository sysUserRDao;
/**
* rabbitMQ
*/
@Autowired
private SysUserInfoRepository userInfoRDao;
private RabbitTemplate rabbitTemplate;
@Override
public SysMessage insertSysMessage(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());
sysMessage = sysMessageRDao.insert(sysMessage);
String[] messageReceiver = sysMessage.getMessageReceiversId().split(",");
// 收件人名称集合
String[] receiverName = new String[messageReceiver.length];
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);
return sysMessageRDao.insert(sysMessage);
sysMessage.setMessageSenderNameRdd(StringUtils.join(receiverName, ","));
sysMessageRDao.update(sysMessage);
return sysMessage;
}
@Override
public void deleteSysMessageById(String id) {
LOGGER.info("消息 SYS_MESSAGE id:{}",id);
refUserMessageRDao.deleteByProperty("messageId",Long.parseLong(id));
sysMessageRDao.deleteById(Long.parseLong(id));
}
@Override
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);
sysMessageRDao.update(sysMessage);
}
@ -103,11 +118,11 @@ public class SysMessageService implements ISysMessageService {
}
}
@Override
public void updateSysMessageStatusById(String id, Integer status) {
LOGGER.info("消息 SYS_MESSAGE id:{}status:{}",id,status);
sysMessageRDao.updateByProperties("id",Long.parseLong(id),"messageStatusId", status);
}
// @Override
// public void updateSysMessageStatusById(String id, Integer status) {
// LOGGER.info("消息 SYS_MESSAGE id:{}status:{}",id,status);
// sysMessageRDao.updateByProperties("id",Long.parseLong(id),"messageStatusId", status);
// }
@Override
public void deleteSysMessageByIds(String[] ids) {
@ -120,12 +135,17 @@ public class SysMessageService implements ISysMessageService {
sysMessageRDao.deleteByIds(array);
}
@Override
public void updateSysMessageStatusByIds(String[] ids,Integer status) {
LOGGER.info("消息 SYS_MESSAGE ids{}status{}",ids,status);
StringBuffer where = new StringBuffer();
HqlPack.getInPack(String.join(",", ids), "id", where);
// @Override
// public void updateSysMessageStatusByIds(String[] ids,Integer status) {
// LOGGER.info("消息 SYS_MESSAGE ids{}status{}",ids,status);
// StringBuffer where = new StringBuffer();
// 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;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.io.support.PropertiesLoaderUtils;
import sun.misc.BASE64Encoder;
import javax.mail.*;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Properties;
/**
@ -145,9 +146,6 @@ public class MailUtil {
*/
public void send() {
try {
// 乱码
BASE64Encoder enc = new BASE64Encoder();
Properties server = new Properties();
server.put("mail.smtp.port", String.valueOf(this.smtpPort));
server.put("mail.smtp.host", this.smtpHost);
@ -159,7 +157,8 @@ public class MailUtil {
MimeMessage msg = new MimeMessage(conn);
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 + ">"));
} else {
msg.setFrom(new InternetAddress(this.from));
@ -173,10 +172,9 @@ public class MailUtil {
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);
// 是HTML格式的邮件
msg.setContent(this.content, this.content_type);
msg.saveChanges();
@ -193,10 +191,17 @@ public class MailUtil {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
public boolean isHtmlModeMail() {
return this.content_type.equals(CommonConstWords.MAIL_MODE_HTML);
public static void main(String[] args) {
MailUtil mail = new MailUtil();
mail.setTo("yunhao.wang@estsh.com");
mail.setSubject("中文");
mail.setContentType(ImppEnumUtil.MESSAGE_CONTENT_TYPE.HTML.getDescription());
mail.setBody("内容");
mail.send();
}
}

@ -30,3 +30,6 @@ spring.mvc.view.prefix=/upload_demo
spring.mvc.view.suffix=.jsp
#静态文件访问配置
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() {
SysMessage sysMessage = new SysMessage();
sysMessage.setMessageTitle("test-系统通知");
sysMessage.setRedSendName("system");
sysMessage.setMessageSendId(-1L);
sysMessage.setRedMessageRecipientName("admin");
sysMessage.setMessageRecipientId(-1L);
sysMessage.setMessageTypeId(ImppEnumUtil.USER_MESSAGE_TYPE.NOTICE.getValue());
sysMessage.setMessageStatusId(ImppEnumUtil.USER_MESSAGE_STATUS.UNREAD.getValue());
sysMessage.setCreateDatetime("2018-11-01 16:58:00");
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.setId(null);

Loading…
Cancel
Save