Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
datamanage
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
shenjinzhu
datamanage
Commits
b496c9ce
Commit
b496c9ce
authored
Jan 24, 2018
by
shenjinzhu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
检测解耦
parent
d9c47959
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
508 additions
and
21 deletions
+508
-21
pom.xml
+17
-1
src/main/java/com/zhiwei/manage/bean/Messages.java
+64
-0
src/main/java/com/zhiwei/manage/bean/Template.java
+99
-9
src/main/java/com/zhiwei/manage/dao/DataDaoImpl.java
+5
-10
src/main/java/com/zhiwei/manage/handle/MainThread.java
+12
-0
src/main/java/com/zhiwei/manage/handle/Task.java
+1
-1
src/main/java/com/zhiwei/manage/util/AESUtils.java
+121
-0
src/main/java/com/zhiwei/manage/util/JsonToObject.java
+45
-0
src/main/java/com/zhiwei/manage/util/SendMailUtil.java
+91
-0
src/main/java/com/zhiwei/manage/util/WechatPush.java
+53
-0
No files found.
pom.xml
View file @
b496c9ce
...
...
@@ -192,7 +192,23 @@
<scope>
provided
</scope>
<version>
7.0.47
</version>
</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>
<build>
<plugins>
...
...
src/main/java/com/zhiwei/manage/bean/Messages.java
0 → 100644
View file @
b496c9ce
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
+
"]"
;
}
}
src/main/java/com/zhiwei/manage/bean/Template.java
View file @
b496c9ce
...
...
@@ -22,6 +22,7 @@ public class Template implements Serializable {
@Id
private
String
templateId
;
private
String
tempName
;
// 模板名
private
boolean
mailPush
;
private
String
mail
;
// 错误信息邮箱
private
boolean
needPing
;
// 是否需要检测连通性
private
int
pingInterval
;
// 连通性测试间隔
...
...
@@ -56,197 +57,286 @@ public class Template implements Serializable {
private
String
time
;
private
String
savetime
;
private
String
spyderInfoId
;
private
boolean
wechatPush
;
private
String
openid
;
public
String
getTemplateId
()
{
return
templateId
;
}
public
void
setTemplateId
(
String
templateId
)
{
this
.
templateId
=
templateId
;
}
public
String
getTempName
()
{
return
tempName
;
}
public
void
setTempName
(
String
tempName
)
{
this
.
tempName
=
tempName
;
}
public
String
getMail
()
{
return
mail
;
}
public
void
setMail
(
String
mail
)
{
this
.
mail
=
mail
;
}
public
boolean
isNeedPing
()
{
return
needPing
;
}
public
void
setNeedPing
(
boolean
needPing
)
{
this
.
needPing
=
needPing
;
}
public
int
getPingInterval
()
{
return
pingInterval
;
}
public
void
setPingInterval
(
int
pingInterval
)
{
this
.
pingInterval
=
pingInterval
;
}
public
String
getPingUrlOne
()
{
return
pingUrlOne
;
}
public
void
setPingUrlOne
(
String
pingUrlOne
)
{
this
.
pingUrlOne
=
pingUrlOne
;
}
public
String
getPingUrlTwo
()
{
return
pingUrlTwo
;
}
public
void
setPingUrlTwo
(
String
pingUrlTwo
)
{
this
.
pingUrlTwo
=
pingUrlTwo
;
}
public
int
getNewsNumber
()
{
return
newsNumber
;
}
public
void
setNewsNumber
(
int
newsNumber
)
{
this
.
newsNumber
=
newsNumber
;
}
public
boolean
isNeedDelayed
()
{
return
needDelayed
;
}
public
void
setNeedDelayed
(
boolean
needDelayed
)
{
this
.
needDelayed
=
needDelayed
;
}
public
double
getNewsDelayed
()
{
return
newsDelayed
;
}
public
void
setNewsDelayed
(
double
newsDelayed
)
{
this
.
newsDelayed
=
newsDelayed
;
}
public
int
getDelayedInterval
()
{
return
delayedInterval
;
}
public
void
setDelayedInterval
(
int
delayedInterval
)
{
this
.
delayedInterval
=
delayedInterval
;
}
public
int
getTestCount
()
{
return
testCount
;
}
public
void
setTestCount
(
int
testCount
)
{
this
.
testCount
=
testCount
;
}
public
boolean
isNeedField
()
{
return
needField
;
}
public
void
setNeedField
(
boolean
needField
)
{
this
.
needField
=
needField
;
}
public
String
getField
()
{
return
field
;
}
public
void
setField
(
String
field
)
{
this
.
field
=
field
;
}
public
double
getFieldIntegrityRate
()
{
return
fieldIntegrityRate
;
}
public
void
setFieldIntegrityRate
(
double
fieldIntegrityRate
)
{
this
.
fieldIntegrityRate
=
fieldIntegrityRate
;
}
public
int
getFieldInterval
()
{
return
fieldInterval
;
}
public
void
setFieldInterval
(
int
fieldInterval
)
{
this
.
fieldInterval
=
fieldInterval
;
}
public
String
getCreator
()
{
return
creator
;
}
public
void
setCreator
(
String
creator
)
{
this
.
creator
=
creator
;
}
public
Date
getCreateDate
()
{
return
createDate
;
}
public
void
setCreateDate
(
Date
createDate
)
{
this
.
createDate
=
createDate
;
}
public
int
getTemplateLv
()
{
return
templateLv
;
}
public
void
setTemplateLv
(
int
templateLv
)
{
this
.
templateLv
=
templateLv
;
}
public
String
getType
()
{
return
type
;
}
public
void
setType
(
String
type
)
{
this
.
type
=
type
;
}
public
String
getSource
()
{
return
source
;
}
public
void
setSource
(
String
source
)
{
this
.
source
=
source
;
}
public
String
getPt
()
{
return
pt
;
}
public
void
setPt
(
String
pt
)
{
this
.
pt
=
pt
;
}
public
boolean
isOpen
()
{
return
open
;
}
public
void
setOpen
(
boolean
open
)
{
this
.
open
=
open
;
}
public
String
getHost
()
{
return
host
;
}
public
void
setHost
(
String
host
)
{
this
.
host
=
host
;
}
public
int
getPort
()
{
return
port
;
}
public
void
setPort
(
int
port
)
{
this
.
port
=
port
;
}
public
String
getCollection
()
{
return
collection
;
}
public
void
setCollection
(
String
collection
)
{
this
.
collection
=
collection
;
}
public
String
getdBName
()
{
return
dBName
;
}
public
void
setdBName
(
String
dBName
)
{
this
.
dBName
=
dBName
;
}
public
String
getTime
()
{
return
time
;
}
public
void
setTime
(
String
time
)
{
this
.
time
=
time
;
}
public
String
getSavetime
()
{
return
savetime
;
}
public
void
setSavetime
(
String
savetime
)
{
this
.
savetime
=
savetime
;
}
public
String
getSpyderInfoId
()
{
return
spyderInfoId
;
}
public
void
setSpyderInfoId
(
String
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
public
String
toString
()
{
return
"Template [templateId="
+
templateId
+
", tempName="
+
tempName
+
", mail="
+
mail
+
", needPing="
+
needPing
+
", pingInterval="
+
pingInterval
+
", pingUrlOne="
+
pingUrlOne
+
", pingUrlTwo="
+
pingUrlTwo
+
", newsNumber="
+
newsNumber
+
", needDelayed="
+
needDelayed
+
", newsDelayed="
+
newsDelayed
+
", delayedInterval="
+
delayedInterval
+
", testCount="
+
testCount
+
", needField="
+
needField
+
", field="
+
field
+
", fieldIntegrityRate="
+
fieldIntegrityRate
+
", fieldInterval="
+
fieldInterval
+
", creator="
+
creator
+
", createDate="
+
createDate
+
", templateLv="
+
templateLv
+
", type="
+
type
+
", source="
+
source
+
", pt="
+
pt
+
", open="
+
open
+
", host="
+
host
+
", port="
+
port
+
", collection="
+
collection
+
", dBName="
+
dBName
+
", time="
+
time
+
", savetime="
+
savetime
+
", spyderInfoId="
+
spyderInfoId
+
"]"
;
return
"Template [templateId="
+
templateId
+
", tempName="
+
tempName
+
", mailPush="
+
mailPush
+
", mail="
+
mail
+
", needPing="
+
needPing
+
", pingInterval="
+
pingInterval
+
", pingUrlOne="
+
pingUrlOne
+
", pingUrlTwo="
+
pingUrlTwo
+
", newsNumber="
+
newsNumber
+
", needDelayed="
+
needDelayed
+
", newsDelayed="
+
newsDelayed
+
", delayedInterval="
+
delayedInterval
+
", testCount="
+
testCount
+
", needField="
+
needField
+
", field="
+
field
+
", fieldIntegrityRate="
+
fieldIntegrityRate
+
", fieldInterval="
+
fieldInterval
+
", creator="
+
creator
+
", createDate="
+
createDate
+
", templateLv="
+
templateLv
+
", type="
+
type
+
", source="
+
source
+
", pt="
+
pt
+
", open="
+
open
+
", host="
+
host
+
", port="
+
port
+
", collection="
+
collection
+
", dBName="
+
dBName
+
", time="
+
time
+
", savetime="
+
savetime
+
", spyderInfoId="
+
spyderInfoId
+
", wechatPush="
+
wechatPush
+
", openid="
+
openid
+
"]"
;
}
}
src/main/java/com/zhiwei/manage/dao/DataDaoImpl.java
View file @
b496c9ce
...
...
@@ -180,7 +180,7 @@ public class DataDaoImpl implements DataDao {
System
.
out
.
println
(
end
);
}
MongoClient
mongoClient
=
null
;
if
(
ser
.
getDbUsername
()
!=
null
)
{
if
(
ser
.
getDbUsername
()
!=
null
&&
ser
.
getDbUsername
().
length
()>
2
)
{
ServerAddress
sa
=
new
ServerAddress
(
ser
.
getDbHost
(),
ser
.
getDbPort
());
List
<
MongoCredential
>
mongoCredentialList
=
new
ArrayList
<
MongoCredential
>();
mongoCredentialList
.
add
(
MongoCredential
.
createMongoCRCredential
(
ser
.
getDbUsername
(),
...
...
@@ -210,7 +210,6 @@ public class DataDaoImpl implements DataDao {
List
<
MongoCredential
>
mongoCredentialList
=
new
ArrayList
<
MongoCredential
>();
mongoCredentialList
.
add
(
MongoCredential
.
createMongoCRCredential
(
ser
.
getDbUsername
(),
ser
.
getDbName
(),
ser
.
getDbPassword
().
toCharArray
()));
new
MongoClient
(
sa
,
mongoCredentialList
);
mongoClient
=
new
MongoClient
(
sa
,
mongoCredentialList
);
}
else
mongoClient
=
new
MongoClient
(
ser
.
getDbHost
(),
ser
.
getDbPort
());
...
...
@@ -222,16 +221,12 @@ public class DataDaoImpl implements DataDao {
public
static
void
main
(
String
[]
args
)
{
// 连接到数据库
ServerAddress
sa
=
new
ServerAddress
(
"1
06.14.249.240"
,
2680
7
);
ServerAddress
sa
=
new
ServerAddress
(
"1
15.236.59.91"
,
2701
7
);
List
<
MongoCredential
>
mongoCredentialList
=
new
ArrayList
<
MongoCredential
>();
mongoCredentialList
.
add
(
MongoCredential
.
createMongoCRCredential
(
"zhiweidata"
,
"spyPlat"
,
"1q2w3e4r"
.
toCharArray
()));
new
MongoClient
(
sa
,
mongoCredentialList
);
MongoClient
mongoClient
=
new
MongoClient
(
sa
,
mongoCredentialList
);
MongoDatabase
mongo
=
mongoClient
.
getDatabase
(
"spyPlat"
);
MongoCollection
<
Document
>
col
=
mongo
.
getCollection
(
"indexOfA"
);
Bson
query
=
new
BasicDBObject
(
"code"
,
"300104"
);
System
.
out
.
println
(
col
.
count
(
query
));
MongoDatabase
mongo
=
mongoClient
.
getDatabase
(
"mediaspider"
);
MongoCollection
<
Document
>
col
=
mongo
.
getCollection
(
"net_media_201801"
);
System
.
out
.
println
(
col
.
count
());
}
@Override
...
...
src/main/java/com/zhiwei/manage/handle/MainThread.java
View file @
b496c9ce
...
...
@@ -151,6 +151,8 @@ public class MainThread extends Thread {
Calendar
countTest
=
Calendar
.
getInstance
();
Calendar
start
=
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
)
{
try
{
countTest
.
setTime
(
sdf
.
parse
(
sdf
.
format
(
countTest
.
getTime
())));
...
...
@@ -186,6 +188,16 @@ public class MainThread extends Thread {
int
cwCount
=
0
;
String
pt
=
crawService
.
findPt
(
tmp
.
getSpyderInfoId
());
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
())
{
Message
m
=
new
Message
();
m
.
setHandle
(
false
);
...
...
src/main/java/com/zhiwei/manage/handle/Task.java
View file @
b496c9ce
...
...
@@ -46,7 +46,7 @@ public class Task implements Runnable {
HttpURLConnection
conn
=
(
HttpURLConnection
)
url
.
openConnection
();
conn
.
setConnectTimeout
(
1000
*
10
);
int
code
=
conn
.
getResponseCode
();
if
(
code
!=
200
)
{
if
(
code
>
399
||
code
<
200
)
{
Template
tp
=
MainThread
.
mainMap
.
get
(
ping
.
getTemplateId
());
Message
msg
=
new
Message
();
msg
.
setCreateDate
(
new
Date
());
...
...
src/main/java/com/zhiwei/manage/util/AESUtils.java
0 → 100644
View file @
b496c9ce
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
;
}
}
src/main/java/com/zhiwei/manage/util/JsonToObject.java
0 → 100644
View file @
b496c9ce
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
;
}
}
src/main/java/com/zhiwei/manage/util/SendMailUtil.java
0 → 100644
View file @
b496c9ce
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
;
}
}
src/main/java/com/zhiwei/manage/util/WechatPush.java
0 → 100644
View file @
b496c9ce
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
());
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment