将消息推送实现类移动到core项目下。

This commit is contained in:
thinkgem
2019-03-18 22:53:01 +08:00
parent c50d07b949
commit fce1cf8082
2 changed files with 157 additions and 0 deletions

View File

@@ -0,0 +1,78 @@
/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
*/
package com.jeesite.modules.msg.send;
import org.apache.commons.mail.HtmlEmail;
import org.springframework.stereotype.Service;
import com.jeesite.common.config.Global;
import com.jeesite.common.lang.ExceptionUtils;
import com.jeesite.common.lang.StringUtils;
import com.jeesite.common.service.BaseService;
import com.jeesite.modules.msg.entity.MsgPush;
import com.jeesite.modules.msg.entity.content.EmailMsgContent;
import com.jeesite.modules.msg.send.MsgSendService;
/**
* 电子邮件发送服务实现
* @author ThinkGem
* @version 2018年5月13日
*/
@Service
public class EmailSendService extends BaseService implements MsgSendService{
@Override
public void sendMessage(MsgPush msgPush) {
try{
String fromAddress = Global.getProperty("msg.email.fromAddress");
String fromPassword = Global.getProperty("msg.email.fromPassword");
String fromHostName = Global.getProperty("msg.email.fromHostName");
Integer smtpPort = Global.getPropertyToInteger("msg.email.smtpPort", "25");
String sslOnConnect = Global.getProperty("msg.email.sslOnConnect", "false");
String sslSmtpPort = Global.getProperty("msg.email.sslSmtpPort", "465");
HtmlEmail htmlEmail = new HtmlEmail();
htmlEmail.setCharset("utf-8");
htmlEmail.setFrom(fromAddress);
htmlEmail.setAuthentication(fromAddress, fromPassword);
htmlEmail.setHostName(fromHostName);
htmlEmail.setSmtpPort(smtpPort);
if ("true".equals(sslOnConnect)) {
htmlEmail.setSSLOnConnect(true);
htmlEmail.setSslSmtpPort(sslSmtpPort);
}
htmlEmail.addTo(msgPush.getReceiveCode(), msgPush.getReceiveUserName());
// 内容
EmailMsgContent content = msgPush.parseMsgContent(EmailMsgContent.class);
htmlEmail.setSubject(content.getTitle());
htmlEmail.setMsg(content.getContent());
// 抄送
if (StringUtils.isNotBlank(content.getCc())) {
for (String email : content.getCc().split(";")) {
htmlEmail.addCc(email);
}
}
// 密送
if (StringUtils.isNotBlank(content.getBcc())) {
for (String email : content.getBcc().split(";")) {
htmlEmail.addBcc(email);
}
}
// 发送邮件
String result = htmlEmail.send();
// 发送成功
msgPush.setPushStatus(MsgPush.PUSH_STATUS_SUCCESS);
msgPush.addPushReturnContent(result);
} catch (Exception ex) {
logger.error("发送邮件失败! ", ex);
msgPush.setPushStatus(MsgPush.PUSH_STATUS_FAIL);
msgPush.addPushReturnContent(ExceptionUtils.getStackTraceAsString(ex));
}
}
}

View File

@@ -0,0 +1,79 @@
/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
*/
package com.jeesite.modules.msg.send;
import java.util.Date;
import java.util.Map;
import org.springframework.stereotype.Service;
import com.jeesite.common.lang.ExceptionUtils;
import com.jeesite.common.lang.ObjectUtils;
import com.jeesite.common.mapper.JsonMapper;
import com.jeesite.common.msg.SmsUtils;
import com.jeesite.common.service.BaseService;
import com.jeesite.modules.msg.entity.MsgPush;
import com.jeesite.modules.msg.entity.content.SmsMsgContent;
import com.jeesite.modules.msg.send.MsgSendService;
/**
* 短信发送服务实现
* @author ThinkGem
* @version 2018年5月13日
*/
@Service
public class SmsSendService extends BaseService implements MsgSendService{
@Override
public void sendMessage(MsgPush msgPush) {
try{
// String url = Global.getProperty("msg.sms.url");
// String data = Global.getProperty("msg.sms.data");
// String prefix = Global.getProperty("msg.sms.prefix", "");
// String suffix = Global.getProperty("msg.sms.suffix", "");
// Connection conn = Jsoup.connect(url);
// conn.postDataCharset("UTF-8");
// conn.method(Method.POST);
// for (String param : StringUtils.split(data, "&")){
// String[] ss = StringUtils.split(param, "=");
// if (ss.length == 1){
// conn.data(ss[0], "");
// }else if (ss.length == 2){
// conn.data(ss[0], ss[1]);
// }
// }
// // 手机号码
// conn.data("mobile", msgPush.getReceiveCode());
// // 短信内容
// SmsMsgContent content = msgPush.parseMsgContent(SmsMsgContent.class);
// conn.data("content", prefix + content.getContent() + suffix);
// // 发送短信
// String result = conn.execute().body();
// String result = "{result:0,message:\"ok\"}"; // 模拟发送结果
// Map<String, Object> map = JsonMapper.fromJson(result, Map.class);
// 发送短信
SmsMsgContent content = msgPush.parseMsgContent(SmsMsgContent.class);
String result = SmsUtils.send(content.getContent(), msgPush.getReceiveCode());
Map<String, Object> map = JsonMapper.fromJson(result, Map.class);
// 发送成功
if (ObjectUtils.toInteger(map.get("result")) == 0){
msgPush.setPushStatus(MsgPush.PUSH_STATUS_SUCCESS);
msgPush.addPushReturnContent(result);
}
// 发送失败
else{
throw new RuntimeException(result);
}
} catch (Exception ex) {
logger.error("发送短信失败! ", ex);
msgPush.setPushDate(new Date());
msgPush.setPushStatus(MsgPush.PUSH_STATUS_FAIL);
msgPush.addPushReturnContent(ExceptionUtils.getStackTraceAsString(ex));
}
}
}