Commit b496c9ce by shenjinzhu

检测解耦

parent d9c47959
...@@ -192,7 +192,23 @@ ...@@ -192,7 +192,23 @@
<scope>provided</scope> <scope>provided</scope>
<version>7.0.47</version> <version>7.0.47</version>
</dependency> </dependency>
<dependency>
<groupId>com.github.liyiorg</groupId>
<artifactId>weixin-popular</artifactId>
<version>2.8.10</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.sun.mail/javax.mail -->
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
</dependencies> </dependencies>
<build> <build>
<plugins> <plugins>
......
package com.zhiwei.manage.bean;
import java.io.Serializable;
import java.util.Date;
/**
* 信息类
* @author Administrator
*
*/
public class Messages implements Serializable{
/**
*
*/
private static final long serialVersionUID = 2229310064062059979L;
private String content;
private String title;
private String msg;
private String date;
private String other;
private String tempName;
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getOther() {
return other;
}
public void setOther(String other) {
this.other = other;
}
public String getTempName() {
return tempName;
}
public void setTempName(String tempName) {
this.tempName = tempName;
}
@Override
public String toString() {
return "Messages [content=" + content + ", title=" + title + ", msg=" + msg + ", date=" + date + ", other="
+ other + ", tempName=" + tempName + "]";
}
}
...@@ -22,6 +22,7 @@ public class Template implements Serializable { ...@@ -22,6 +22,7 @@ public class Template implements Serializable {
@Id @Id
private String templateId; private String templateId;
private String tempName;// 模板名 private String tempName;// 模板名
private boolean mailPush;
private String mail;// 错误信息邮箱 private String mail;// 错误信息邮箱
private boolean needPing;// 是否需要检测连通性 private boolean needPing;// 是否需要检测连通性
private int pingInterval;// 连通性测试间隔 private int pingInterval;// 连通性测试间隔
...@@ -56,197 +57,286 @@ public class Template implements Serializable { ...@@ -56,197 +57,286 @@ public class Template implements Serializable {
private String time; private String time;
private String savetime; private String savetime;
private String spyderInfoId; private String spyderInfoId;
private boolean wechatPush;
private String openid;
public String getTemplateId() { public String getTemplateId() {
return templateId; return templateId;
} }
public void setTemplateId(String templateId) { public void setTemplateId(String templateId) {
this.templateId = templateId; this.templateId = templateId;
} }
public String getTempName() { public String getTempName() {
return tempName; return tempName;
} }
public void setTempName(String tempName) { public void setTempName(String tempName) {
this.tempName = tempName; this.tempName = tempName;
} }
public String getMail() { public String getMail() {
return mail; return mail;
} }
public void setMail(String mail) { public void setMail(String mail) {
this.mail = mail; this.mail = mail;
} }
public boolean isNeedPing() { public boolean isNeedPing() {
return needPing; return needPing;
} }
public void setNeedPing(boolean needPing) { public void setNeedPing(boolean needPing) {
this.needPing = needPing; this.needPing = needPing;
} }
public int getPingInterval() { public int getPingInterval() {
return pingInterval; return pingInterval;
} }
public void setPingInterval(int pingInterval) { public void setPingInterval(int pingInterval) {
this.pingInterval = pingInterval; this.pingInterval = pingInterval;
} }
public String getPingUrlOne() { public String getPingUrlOne() {
return pingUrlOne; return pingUrlOne;
} }
public void setPingUrlOne(String pingUrlOne) { public void setPingUrlOne(String pingUrlOne) {
this.pingUrlOne = pingUrlOne; this.pingUrlOne = pingUrlOne;
} }
public String getPingUrlTwo() { public String getPingUrlTwo() {
return pingUrlTwo; return pingUrlTwo;
} }
public void setPingUrlTwo(String pingUrlTwo) { public void setPingUrlTwo(String pingUrlTwo) {
this.pingUrlTwo = pingUrlTwo; this.pingUrlTwo = pingUrlTwo;
} }
public int getNewsNumber() { public int getNewsNumber() {
return newsNumber; return newsNumber;
} }
public void setNewsNumber(int newsNumber) { public void setNewsNumber(int newsNumber) {
this.newsNumber = newsNumber; this.newsNumber = newsNumber;
} }
public boolean isNeedDelayed() { public boolean isNeedDelayed() {
return needDelayed; return needDelayed;
} }
public void setNeedDelayed(boolean needDelayed) { public void setNeedDelayed(boolean needDelayed) {
this.needDelayed = needDelayed; this.needDelayed = needDelayed;
} }
public double getNewsDelayed() { public double getNewsDelayed() {
return newsDelayed; return newsDelayed;
} }
public void setNewsDelayed(double newsDelayed) { public void setNewsDelayed(double newsDelayed) {
this.newsDelayed = newsDelayed; this.newsDelayed = newsDelayed;
} }
public int getDelayedInterval() { public int getDelayedInterval() {
return delayedInterval; return delayedInterval;
} }
public void setDelayedInterval(int delayedInterval) { public void setDelayedInterval(int delayedInterval) {
this.delayedInterval = delayedInterval; this.delayedInterval = delayedInterval;
} }
public int getTestCount() { public int getTestCount() {
return testCount; return testCount;
} }
public void setTestCount(int testCount) { public void setTestCount(int testCount) {
this.testCount = testCount; this.testCount = testCount;
} }
public boolean isNeedField() { public boolean isNeedField() {
return needField; return needField;
} }
public void setNeedField(boolean needField) { public void setNeedField(boolean needField) {
this.needField = needField; this.needField = needField;
} }
public String getField() { public String getField() {
return field; return field;
} }
public void setField(String field) { public void setField(String field) {
this.field = field; this.field = field;
} }
public double getFieldIntegrityRate() { public double getFieldIntegrityRate() {
return fieldIntegrityRate; return fieldIntegrityRate;
} }
public void setFieldIntegrityRate(double fieldIntegrityRate) { public void setFieldIntegrityRate(double fieldIntegrityRate) {
this.fieldIntegrityRate = fieldIntegrityRate; this.fieldIntegrityRate = fieldIntegrityRate;
} }
public int getFieldInterval() { public int getFieldInterval() {
return fieldInterval; return fieldInterval;
} }
public void setFieldInterval(int fieldInterval) { public void setFieldInterval(int fieldInterval) {
this.fieldInterval = fieldInterval; this.fieldInterval = fieldInterval;
} }
public String getCreator() { public String getCreator() {
return creator; return creator;
} }
public void setCreator(String creator) { public void setCreator(String creator) {
this.creator = creator; this.creator = creator;
} }
public Date getCreateDate() { public Date getCreateDate() {
return createDate; return createDate;
} }
public void setCreateDate(Date createDate) { public void setCreateDate(Date createDate) {
this.createDate = createDate; this.createDate = createDate;
} }
public int getTemplateLv() { public int getTemplateLv() {
return templateLv; return templateLv;
} }
public void setTemplateLv(int templateLv) { public void setTemplateLv(int templateLv) {
this.templateLv = templateLv; this.templateLv = templateLv;
} }
public String getType() { public String getType() {
return type; return type;
} }
public void setType(String type) { public void setType(String type) {
this.type = type; this.type = type;
} }
public String getSource() { public String getSource() {
return source; return source;
} }
public void setSource(String source) { public void setSource(String source) {
this.source = source; this.source = source;
} }
public String getPt() { public String getPt() {
return pt; return pt;
} }
public void setPt(String pt) { public void setPt(String pt) {
this.pt = pt; this.pt = pt;
} }
public boolean isOpen() { public boolean isOpen() {
return open; return open;
} }
public void setOpen(boolean open) { public void setOpen(boolean open) {
this.open = open; this.open = open;
} }
public String getHost() { public String getHost() {
return host; return host;
} }
public void setHost(String host) { public void setHost(String host) {
this.host = host; this.host = host;
} }
public int getPort() { public int getPort() {
return port; return port;
} }
public void setPort(int port) { public void setPort(int port) {
this.port = port; this.port = port;
} }
public String getCollection() { public String getCollection() {
return collection; return collection;
} }
public void setCollection(String collection) { public void setCollection(String collection) {
this.collection = collection; this.collection = collection;
} }
public String getdBName() { public String getdBName() {
return dBName; return dBName;
} }
public void setdBName(String dBName) { public void setdBName(String dBName) {
this.dBName = dBName; this.dBName = dBName;
} }
public String getTime() { public String getTime() {
return time; return time;
} }
public void setTime(String time) { public void setTime(String time) {
this.time = time; this.time = time;
} }
public String getSavetime() { public String getSavetime() {
return savetime; return savetime;
} }
public void setSavetime(String savetime) { public void setSavetime(String savetime) {
this.savetime = savetime; this.savetime = savetime;
} }
public String getSpyderInfoId() { public String getSpyderInfoId() {
return spyderInfoId; return spyderInfoId;
} }
public void setSpyderInfoId(String spyderInfoId) { public void setSpyderInfoId(String spyderInfoId) {
this.spyderInfoId = spyderInfoId; this.spyderInfoId = spyderInfoId;
} }
public boolean isMailPush() {
return mailPush;
}
public void setMailPush(boolean mailPush) {
this.mailPush = mailPush;
}
public boolean isWechatPush() {
return wechatPush;
}
public void setWechatPush(boolean wechatPush) {
this.wechatPush = wechatPush;
}
public String getOpenid() {
return openid;
}
public void setOpenid(String openid) {
this.openid = openid;
}
@Override @Override
public String toString() { public String toString() {
return "Template [templateId=" + templateId + ", tempName=" + tempName + ", mail=" + mail + ", needPing=" return "Template [templateId=" + templateId + ", tempName=" + tempName + ", mailPush=" + mailPush + ", mail="
+ needPing + ", pingInterval=" + pingInterval + ", pingUrlOne=" + pingUrlOne + ", pingUrlTwo=" + mail + ", needPing=" + needPing + ", pingInterval=" + pingInterval + ", pingUrlOne=" + pingUrlOne
+ pingUrlTwo + ", newsNumber=" + newsNumber + ", needDelayed=" + needDelayed + ", newsDelayed=" + ", pingUrlTwo=" + pingUrlTwo + ", newsNumber=" + newsNumber + ", needDelayed=" + needDelayed
+ newsDelayed + ", delayedInterval=" + delayedInterval + ", testCount=" + testCount + ", needField=" + ", newsDelayed=" + newsDelayed + ", delayedInterval=" + delayedInterval + ", testCount=" + testCount
+ needField + ", field=" + field + ", fieldIntegrityRate=" + fieldIntegrityRate + ", fieldInterval=" + ", needField=" + needField + ", field=" + field + ", fieldIntegrityRate=" + fieldIntegrityRate
+ fieldInterval + ", creator=" + creator + ", createDate=" + createDate + ", templateLv=" + templateLv + ", fieldInterval=" + fieldInterval + ", creator=" + creator + ", createDate=" + createDate
+ ", type=" + type + ", source=" + source + ", pt=" + pt + ", open=" + open + ", host=" + host + ", templateLv=" + templateLv + ", type=" + type + ", source=" + source + ", pt=" + pt + ", open="
+ ", port=" + port + ", collection=" + collection + ", dBName=" + dBName + ", time=" + time + open + ", host=" + host + ", port=" + port + ", collection=" + collection + ", dBName=" + dBName
+ ", savetime=" + savetime + ", spyderInfoId=" + spyderInfoId + "]"; + ", time=" + time + ", savetime=" + savetime + ", spyderInfoId=" + spyderInfoId + ", wechatPush="
+ wechatPush + ", openid=" + openid + "]";
} }
} }
...@@ -180,7 +180,7 @@ public class DataDaoImpl implements DataDao { ...@@ -180,7 +180,7 @@ public class DataDaoImpl implements DataDao {
System.out.println(end); System.out.println(end);
} }
MongoClient mongoClient = null; MongoClient mongoClient = null;
if (ser.getDbUsername() != null) { if (ser.getDbUsername() != null&&ser.getDbUsername().length()>2) {
ServerAddress sa = new ServerAddress(ser.getDbHost(), ser.getDbPort()); ServerAddress sa = new ServerAddress(ser.getDbHost(), ser.getDbPort());
List<MongoCredential> mongoCredentialList = new ArrayList<MongoCredential>(); List<MongoCredential> mongoCredentialList = new ArrayList<MongoCredential>();
mongoCredentialList.add(MongoCredential.createMongoCRCredential(ser.getDbUsername(), mongoCredentialList.add(MongoCredential.createMongoCRCredential(ser.getDbUsername(),
...@@ -210,7 +210,6 @@ public class DataDaoImpl implements DataDao { ...@@ -210,7 +210,6 @@ public class DataDaoImpl implements DataDao {
List<MongoCredential> mongoCredentialList = new ArrayList<MongoCredential>(); List<MongoCredential> mongoCredentialList = new ArrayList<MongoCredential>();
mongoCredentialList.add(MongoCredential.createMongoCRCredential(ser.getDbUsername(), ser.getDbName(), mongoCredentialList.add(MongoCredential.createMongoCRCredential(ser.getDbUsername(), ser.getDbName(),
ser.getDbPassword().toCharArray())); ser.getDbPassword().toCharArray()));
new MongoClient(sa, mongoCredentialList);
mongoClient = new MongoClient(sa, mongoCredentialList); mongoClient = new MongoClient(sa, mongoCredentialList);
} else } else
mongoClient = new MongoClient(ser.getDbHost(), ser.getDbPort()); mongoClient = new MongoClient(ser.getDbHost(), ser.getDbPort());
...@@ -222,16 +221,12 @@ public class DataDaoImpl implements DataDao { ...@@ -222,16 +221,12 @@ public class DataDaoImpl implements DataDao {
public static void main(String[] args) { public static void main(String[] args) {
// 连接到数据库 // 连接到数据库
ServerAddress sa = new ServerAddress("106.14.249.240", 26807); ServerAddress sa = new ServerAddress("115.236.59.91", 27017);
List<MongoCredential> mongoCredentialList = new ArrayList<MongoCredential>(); List<MongoCredential> mongoCredentialList = new ArrayList<MongoCredential>();
mongoCredentialList
.add(MongoCredential.createMongoCRCredential("zhiweidata", "spyPlat", "1q2w3e4r".toCharArray()));
new MongoClient(sa, mongoCredentialList);
MongoClient mongoClient = new MongoClient(sa, mongoCredentialList); MongoClient mongoClient = new MongoClient(sa, mongoCredentialList);
MongoDatabase mongo = mongoClient.getDatabase("spyPlat"); MongoDatabase mongo = mongoClient.getDatabase("mediaspider");
MongoCollection<Document> col = mongo.getCollection("indexOfA"); MongoCollection<Document> col = mongo.getCollection("net_media_201801");
Bson query = new BasicDBObject("code", "300104"); System.out.println(col.count());
System.out.println(col.count(query));
} }
@Override @Override
......
...@@ -151,6 +151,8 @@ public class MainThread extends Thread { ...@@ -151,6 +151,8 @@ public class MainThread extends Thread {
Calendar countTest = Calendar.getInstance(); Calendar countTest = Calendar.getInstance();
Calendar start = Calendar.getInstance(); Calendar start = Calendar.getInstance();
Calendar end = Calendar.getInstance(); Calendar end = Calendar.getInstance();
// start.set(Calendar.HOUR_OF_DAY, 0);
// end.set(Calendar.HOUR_OF_DAY, 0);
if (start.get(Calendar.HOUR_OF_DAY) < 1) { if (start.get(Calendar.HOUR_OF_DAY) < 1) {
try { try {
countTest.setTime(sdf.parse(sdf.format(countTest.getTime()))); countTest.setTime(sdf.parse(sdf.format(countTest.getTime())));
...@@ -186,6 +188,16 @@ public class MainThread extends Thread { ...@@ -186,6 +188,16 @@ public class MainThread extends Thread {
int cwCount = 0; int cwCount = 0;
String pt = crawService.findPt(tmp.getSpyderInfoId()); String pt = crawService.findPt(tmp.getSpyderInfoId());
cwCount = (int) dataService.finCountByDayData(start.getTime(), end.getTime(), tmp); cwCount = (int) dataService.finCountByDayData(start.getTime(), end.getTime(), tmp);
try {
Data data = new Data();
data.setCount(cwCount);
data.setTime(start.getTime());
data.setTempName(tmp.getTempName());
dataService.insert(data);
log.info(TimeUtil.yearToDay(start.getTime()) + "|" + tmp.getTempName() + "|入库");
} catch (Exception e) {
log.error(tmp.getTempName()+"入库出错,错误信息{}",e);
}
if (cwCount < tmp.getNewsNumber()) { if (cwCount < tmp.getNewsNumber()) {
Message m = new Message(); Message m = new Message();
m.setHandle(false); m.setHandle(false);
......
...@@ -46,7 +46,7 @@ public class Task implements Runnable { ...@@ -46,7 +46,7 @@ public class Task implements Runnable {
HttpURLConnection conn = (HttpURLConnection) url.openConnection(); HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(1000 * 10); conn.setConnectTimeout(1000 * 10);
int code = conn.getResponseCode(); int code = conn.getResponseCode();
if (code != 200) { if (code > 399 || code <200) {
Template tp = MainThread.mainMap.get(ping.getTemplateId()); Template tp = MainThread.mainMap.get(ping.getTemplateId());
Message msg = new Message(); Message msg = new Message();
msg.setCreateDate(new Date()); msg.setCreateDate(new Date());
......
package com.zhiwei.manage.util;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.io.UnsupportedEncodingException;
import java.util.Arrays;
/**
* @author
* @version V1.0
* @Description
* @date 2017-12-28 14:26
**/
public class AESUtils {
private AESUtils() {
}
/**
* 加密
*
* @param secret 密钥
* @param value 待加密的字符串
* @return 加密后的字符串
*/
public static String encrypt(String secret, String value) {
SecretKeySpec keySpec = getKey(secret);
IvParameterSpec iv = new IvParameterSpec("0102030405060708".getBytes());
try {
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, keySpec, iv);
byte[] encrypted = cipher.doFinal(value.getBytes("UTF-8"));
return parseByte2HexStr(encrypted);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public static void main(String[] args) {
AESUtils ac=new AESUtils();
String jsm=AESUtils.encrypt("wechat", "shenjinzhu");
System.out.println(jsm);
String jm=AESUtils.decrypt("wechat", jsm);
System.out.println(jm);
}
/**
* 解密
*
* @param secret 密钥
* @param value 待解密字符串
* @return 解密后的字符串
*/
public static String decrypt(String secret, String value) {
SecretKeySpec keySpec = getKey(secret);
IvParameterSpec iv = new IvParameterSpec("0102030405060708".getBytes());
try {
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, keySpec, iv);
byte[] encrypted1 = parseHexStr2Byte(value);
byte[] original = cipher.doFinal(encrypted1);
return new String(original, "UTF-8");
} catch (Exception e) {
throw new RuntimeException(e);
}
}
/**
* 生成加密的密钥,保证长度为16位
*
* @param secret 用户的密钥
* @return 生成的密钥
*/
private static SecretKeySpec getKey(String secret) {
byte[] bytes;
try {
bytes = secret.getBytes("UTF-8");
return new SecretKeySpec(Arrays.copyOf(bytes, 16), "AES");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return null;
}
/**
* 将二进制转换成16进制
*
* @param buf
* @return
*/
public static String parseByte2HexStr(byte buf[]) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < buf.length; i++) {
String hex = Integer.toHexString(buf[i] & 0xFF);
if (hex.length() == 1) {
hex = '0' + hex;
}
sb.append(hex.toUpperCase());
}
return sb.toString();
}
/**
* 将16进制转换为二进制
*
* @param hexStr
* @return
*/
public static byte[] parseHexStr2Byte(String hexStr) {
if (hexStr.length() < 1)
return null;
byte[] result = new byte[hexStr.length() / 2];
for (int i = 0; i < hexStr.length() / 2; i++) {
int high = Integer.parseInt(hexStr.substring(i * 2, i * 2 + 1), 16);
int low = Integer.parseInt(hexStr.substring(i * 2 + 1, i * 2 + 2),
16);
result[i] = (byte) (high * 16 + low);
}
return result;
}
}
package com.zhiwei.manage.util;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import net.sf.json.JSONObject;
public class JsonToObject {
public static String getToken() {
String token="";
String appId="wxd1f40dde7e15845f";
String jmAppId=AESUtils.encrypt("wechat", appId);
String path = "http://test.zhiweidata.com/WechatPublic/common/getToken?appId="+jmAppId;
BufferedReader in = null;
try {
String result = "";
URL url = new URL(path);
URLConnection connection = url.openConnection();
connection.setConnectTimeout(3000);
connection.connect();
in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
JSONObject jsonObject = JSONObject.fromObject(result);
JSONObject inJson = JSONObject.fromObject(jsonObject.getString("data"));
token=inJson.getString("accessToken");
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return token;
}
}
package com.zhiwei.manage.util;
import java.util.Date;
import java.util.Properties;
import javax.mail.BodyPart;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Component;
import com.zhiwei.manage.bean.Messages;
/**
* 邮件发送工具类
* @author shenjinzhu
*/
@Component
public class SendMailUtil {
public static String emailAccount = "shenjinzhu999@163.com";// "ccxerisk@sina.com";//"yuhongbo@ccxe.com.cn";
public static String emailPassword = "sjz123";
public static String emailSMTPHost = "smtp.163.com";
public static String receiveMailAccount = "****@**.com";
/**
* 指数用于发送邮件
* @param mail
* @param url
*/
public static void sendMessage(String mail,Messages msg) {
Properties props = new Properties();
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.smtp.host", "smtp.163.com");
props.setProperty("mail.smtp.auth", "true");
Session session = Session.getInstance(props);
session.setDebug(false);
MimeMessage message;
try {
message = createMimeMessage(session, "shenjinzhu999@163.com", mail,msg);
Transport transport = session.getTransport();
transport.connect("shenjinzhu999@163.com", "shenjinzhu123");
transport.sendMessage(message, message.getAllRecipients());
transport.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Messages m=new Messages();
m.setTitle("title");
m.setContent("content");
sendMessage("shenjinzhu999@163.com", m);
}
/**
* 只包含附件,指数专用
*
* @param session
* @param sendMail
* @param receiveMail
* @param url
* @return
* @throws Exception
*/
public static MimeMessage createMimeMessage(Session session, String sendMail, String receiveMail,Messages msg)
throws Exception {
MimeMessage message = new MimeMessage(session);
String str = msg.getDate();
message.setFrom(new InternetAddress(sendMail, "数据管理预警", "UTF-8"));
message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(receiveMail, "UTF-8"));
message.setSubject(str+msg.getTitle(), "UTF-8");
BodyPart messageBodyPart = new MimeBodyPart();
String content = msg.getContent();
messageBodyPart.setText(content);
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
message.setContent(multipart);
message.setSentDate(new Date());
message.saveChanges();
return message;
}
}
package com.zhiwei.manage.util;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.zhiwei.manage.bean.Messages;
import weixin.popular.api.MessageAPI;
import weixin.popular.bean.message.templatemessage.TemplateMessage;
import weixin.popular.bean.message.templatemessage.TemplateMessageItem;
import weixin.popular.bean.message.templatemessage.TemplateMessageResult;
public class WechatPush {
private static final Logger log = LoggerFactory.getLogger(WechatPush.class);
/**
* 指定分组的的指定用户进行模板发送
* @param idNum
* 分组编号
* @param temp_id
* 模板编号
* @param content
* 内容信息
* @param openid
*/
public void sendUseTemp(Messages content, String openid) {
String access_token = JsonToObject.getToken();
TemplateMessage templateMessage = new TemplateMessage();
templateMessage.setTemplate_id("2jWpk0N1CC-fQQdJnXJQuc2WOh7yh_Ozn0-T0K9mExQ");
templateMessage.setUrl(null);
LinkedHashMap<String, TemplateMessageItem> datamap = new LinkedHashMap<String, TemplateMessageItem>();
datamap.put("first", new TemplateMessageItem(content.getTitle(), "RED"));
datamap.put("keyword1", new TemplateMessageItem(content.getDate(), null));
datamap.put("keyword2", new TemplateMessageItem(content.getMsg(), null));
templateMessage.setTouser(openid);
templateMessage.setData(datamap);
TemplateMessageResult result = MessageAPI.messageTemplateSend(access_token, templateMessage);
if (result.getErrmsg() == null || !"ok".equals(result.getErrmsg())) {
log.debug("发送触发消息失败," + result.getErrmsg());
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment