|
|
|
@ -1,5 +1,6 @@
|
|
|
|
|
package weaver.interfaces.util;
|
|
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
import okhttp3.*;
|
|
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
|
@ -15,79 +16,78 @@ public class SendMailUtil{
|
|
|
|
|
public static BaseBean baseBean = new BaseBean();
|
|
|
|
|
String emailenable = baseBean.getPropValue("PORTAL_INFO","emailenable");
|
|
|
|
|
|
|
|
|
|
public void sendMail(String requestid,String emails,String notificationSubject,String notificationContent){
|
|
|
|
|
public void sendMail(String requestid, String emails, String notificationSubject, String notificationContent){
|
|
|
|
|
baseBean.writeLog("emailenable:"+emailenable);
|
|
|
|
|
if(!"1".equals(emailenable)){
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-ddHH:mm:ss");
|
|
|
|
|
String emailUrl = baseBean.getPropValue("PORTAL_INFO","emailUrl");
|
|
|
|
|
String emailMethod = baseBean.getPropValue("PORTAL_INFO","emailMethod");
|
|
|
|
|
String emailEventCode = baseBean.getPropValue("PORTAL_INFO","emailEventCode");
|
|
|
|
|
String emailNotificationType = baseBean.getPropValue("PORTAL_INFO","emailNotificationType");
|
|
|
|
|
String emailChannel = baseBean.getPropValue("PORTAL_INFO","emailChannel");
|
|
|
|
|
String emailVersion = baseBean.getPropValue("PORTAL_INFO","emailVersion");
|
|
|
|
|
String triggerTime = sdf.format(new Date());
|
|
|
|
|
|
|
|
|
|
JSONObject requestJson = new JSONObject();
|
|
|
|
|
requestJson.put("eventCode",emailEventCode);
|
|
|
|
|
requestJson.put("triggerTime",triggerTime);
|
|
|
|
|
requestJson.put("notificationType",emailNotificationType);
|
|
|
|
|
requestJson.put("email",emails);
|
|
|
|
|
requestJson.put("channel",emailChannel);
|
|
|
|
|
requestJson.put("notificationSubject",notificationSubject);
|
|
|
|
|
requestJson.put("notificationContent",notificationContent);
|
|
|
|
|
|
|
|
|
|
try{
|
|
|
|
|
String responseData = doGetAccessToken();
|
|
|
|
|
baseBean.writeLog("responseData:"+responseData);
|
|
|
|
|
String accessToken = "" ;
|
|
|
|
|
if(StringUtils.isNotEmpty(responseData)){
|
|
|
|
|
JSONObject responseObject = JSONObject.parseObject(responseData);
|
|
|
|
|
if(responseObject.containsKey("resCode") && responseObject.containsKey("data")){
|
|
|
|
|
String resCode = responseObject.getString("resCode");
|
|
|
|
|
if("00000".equals(resCode)){
|
|
|
|
|
JSONObject dataObject = responseObject.getJSONObject("data");
|
|
|
|
|
if(dataObject.containsKey("accessToken")){
|
|
|
|
|
accessToken = dataObject.getString("accessToken");
|
|
|
|
|
if("1".equals(emailenable))
|
|
|
|
|
{
|
|
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
String emailUrl = baseBean.getPropValue("PORTAL_INFO","emailUrl");
|
|
|
|
|
String emailMethod = baseBean.getPropValue("PORTAL_INFO","emailMethod");
|
|
|
|
|
String emailEventCode = baseBean.getPropValue("PORTAL_INFO","emailEventCode");
|
|
|
|
|
String emailNotificationType = baseBean.getPropValue("PORTAL_INFO","emailNotificationType");
|
|
|
|
|
String emailChannel = baseBean.getPropValue("PORTAL_INFO","emailChannel");
|
|
|
|
|
String emailVersion = baseBean.getPropValue("PORTAL_INFO","emailVersion");
|
|
|
|
|
String triggerTime = sdf.format(new Date());
|
|
|
|
|
|
|
|
|
|
JSONObject requestJson = new JSONObject();
|
|
|
|
|
requestJson.put("eventCode",emailEventCode);
|
|
|
|
|
requestJson.put("triggerTime",triggerTime);
|
|
|
|
|
requestJson.put("notificationType",emailNotificationType);
|
|
|
|
|
requestJson.put("email",emails);
|
|
|
|
|
requestJson.put("channel",emailChannel);
|
|
|
|
|
requestJson.put("notificationSubject",notificationSubject);
|
|
|
|
|
requestJson.put("notificationContent",notificationContent);
|
|
|
|
|
|
|
|
|
|
try{
|
|
|
|
|
String responseData = doGetAccessToken();
|
|
|
|
|
baseBean.writeLog("responseData:"+responseData);
|
|
|
|
|
String accessToken = "" ;
|
|
|
|
|
if(StringUtils.isNotEmpty(responseData)){
|
|
|
|
|
JSONObject responseObject = JSONObject.parseObject(responseData);
|
|
|
|
|
if(responseObject.containsKey("resCode") && responseObject.containsKey("data")){
|
|
|
|
|
String resCode = responseObject.getString("resCode");
|
|
|
|
|
if("00000".equals(resCode)){
|
|
|
|
|
JSONObject dataObject = responseObject.getJSONObject("data");
|
|
|
|
|
if(dataObject.containsKey("accessToken")){
|
|
|
|
|
accessToken = dataObject.getString("accessToken");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(StringUtils.isNotEmpty(accessToken)){
|
|
|
|
|
if(StringUtils.isNotEmpty(accessToken)){
|
|
|
|
|
|
|
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
|
|
jsonObject.put("access_token",accessToken);
|
|
|
|
|
jsonObject.put("method",emailMethod);
|
|
|
|
|
jsonObject.put("version",emailVersion);
|
|
|
|
|
jsonObject.put("content",requestJson);
|
|
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
|
|
jsonObject.put("access_token",accessToken);
|
|
|
|
|
jsonObject.put("method",emailMethod);
|
|
|
|
|
jsonObject.put("version",emailVersion);
|
|
|
|
|
jsonObject.put("content",requestJson);
|
|
|
|
|
// "{\r\n \"access_token\": \"\",\r\n \"method\": \"sendNotification\",\r\n \"version\": \"1.0\",\r\n \"content\": {\"eventCode\":\"\", \r\n \"transId\":\"\", \r\n \"triggerTime\":\"20221020094013\",\r\n \"notificationType\":\"EMAIL\",\r\n \"email\":\"798989044@qq.com\", \r\n \"channel\":\"OA\", \r\n \"notificationSubject\":\"新待办到达\",\r\n \"notificationContent\":\"新待办到达,清及时处理\" }\r\n}"
|
|
|
|
|
|
|
|
|
|
baseBean.writeLog("jsonObject:"+jsonObject.toJSONString());
|
|
|
|
|
|
|
|
|
|
OkHttpClient client = new OkHttpClient().newBuilder().build();
|
|
|
|
|
MediaType mediaType = MediaType.parse("application/json");
|
|
|
|
|
RequestBody body = RequestBody.create(mediaType,jsonObject.toJSONString());
|
|
|
|
|
Request request = new Request.Builder()
|
|
|
|
|
.url(emailUrl)
|
|
|
|
|
.method("POST", body)
|
|
|
|
|
.addHeader("Content-Type", "application/json")
|
|
|
|
|
.build();
|
|
|
|
|
Response response = client.newCall(request).execute();
|
|
|
|
|
baseBean.writeLog("response.code():"+response.code());
|
|
|
|
|
baseBean.writeLog("response.body():"+response.body().string());
|
|
|
|
|
|
|
|
|
|
if(response!=null && response.code() != 200){
|
|
|
|
|
baseBean.writeLog(response.body().string());
|
|
|
|
|
baseBean.writeLog("jsonObject:"+jsonObject.toJSONString());
|
|
|
|
|
|
|
|
|
|
OkHttpClient client = new OkHttpClient().newBuilder().build();
|
|
|
|
|
MediaType mediaType = MediaType.parse("application/json");
|
|
|
|
|
RequestBody body = RequestBody.create(mediaType,jsonObject.toJSONString());
|
|
|
|
|
Request request = new Request.Builder()
|
|
|
|
|
.url(emailUrl)
|
|
|
|
|
.method("POST", body)
|
|
|
|
|
.addHeader("Content-Type", "application/json")
|
|
|
|
|
.build();
|
|
|
|
|
Response response = client.newCall(request).execute();
|
|
|
|
|
int code = response.code();
|
|
|
|
|
String bodyMsg = response.body().string();
|
|
|
|
|
baseBean.writeLog("response.code():"+code);
|
|
|
|
|
baseBean.writeLog("response.body():"+bodyMsg);
|
|
|
|
|
}
|
|
|
|
|
}catch (IOException e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
baseBean.writeLog(e);
|
|
|
|
|
}catch (Exception e){
|
|
|
|
|
baseBean.writeLog(e);
|
|
|
|
|
}
|
|
|
|
|
}catch (IOException e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
baseBean.writeLog(e);
|
|
|
|
|
}catch (Exception e){
|
|
|
|
|
baseBean.writeLog(e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/***
|
|
|
|
@ -96,6 +96,7 @@ public class SendMailUtil{
|
|
|
|
|
*/
|
|
|
|
|
public String doGetAccessToken(){
|
|
|
|
|
|
|
|
|
|
baseBean.writeLog("doGetAccessToken == ");
|
|
|
|
|
String responseData = "" ;
|
|
|
|
|
RSAUtils RSAUtils = new RSAUtils();
|
|
|
|
|
|
|
|
|
@ -105,6 +106,8 @@ public class SendMailUtil{
|
|
|
|
|
String emailResponseType = baseBean.getPropValue("PORTAL_INFO","emailResponseType") ; //token
|
|
|
|
|
String emailPrivateKey = baseBean.getPropValue("PORTAL_INFO","emailPrivateKey") ;
|
|
|
|
|
|
|
|
|
|
baseBean.writeLog("emainAppCode == "+emainAppCode);
|
|
|
|
|
|
|
|
|
|
//String privateKey = "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCt49VVhOmTZVpWPK/bB/ZvpoxrpXt3c9h8DJtHq9vWLGPVMS0a2l+v4U+g8zFpq6Rb6G6nnJ+pYXmojygQhqKG6izWxEojdAF2znt6URsikGe1wRxUpUewRbZVse7Rs0jvJmGZeVZ08gC1iKogyHtHeRinnHJNxC4v/5yhkOBpR6oe4t2IutKNFhSmHdJP5bEkei5gWAZ4xi15pvcWBcUSVEQliW7qRTX9yQUdCq1KzCLEGYNfm27SzKvFpRUAXpgjfFftmB3u7pZ9qhAn/25b0h9sE90Xjwg/UNmLqxUerNNDbIrqWy0x6g/+2Q/c4OXKLk5FlkkEURoBINNDbYgdAgMBAAECggEAAsfZ6XwuoATG5QojZcVC05Y+OJp01vwrQhCRixvccBhVoFsg9YT4cr+PnmtFJwNvpWiaHGQMyZCdeWyQn3MHtlCYVvbcmKSKQXQb1WDmpi7Y+bcU1OWvt8nlmIk34HKVf/2FIgcmssgL6ts8nTmXfxUYp9WAnm28r1fPEWZXsFdGNilFxg6Vymct+5hfnXUA5OMm1RgSvYR/12F4aqILz7kjMBjkF4IJAJpRqR4WlU3vhJ3+FGLnOqnAKRE+rkn10LaKpfOrWY6chm6C2ddNVzGyYaDAqH+TK+9C8qLYZLjbyD8a5LlCU4xdHYbG4VoVpHz7Pop4XQWzOkP7zagvoQKBgQD1MT9K4Kt/Ms3pw/zbv0a3Wvt45OfszMHiVBYXE7Fhp11zqK6wyTUU8ePLO3XxS5GbQwBRlfYhI2aF6nWxq2iphqemD5AqC03m0tJl4g2/q/+Mr0k7ClRJHV2cs80ij9aWdHcNlCW5G37ZXfjiQ9qkiIIr1RLngO59HAEP1ePZzwKBgQC1jgJeDpFRKDZ8SCYKowjnvMgPULZ97LDofS828hgwLSzSI+tOpHOrJnFgIC08JTVxYnB5gw3ybqvPLt9Tz+soledqayTynMwlpDz4WuoQw5mEPvURIqsxkrMFqYFcMLrBbIsyJFboKkfgLpTXlOFe6wv0oe0s37Sgz9IRMe/2UwKBgGQCGUnGR80TANAHg5xx8TsaXhXacAqzHaXeHEB/ZMtrA4AIXnB3MTKA0yPy9dFcvGAyvO+KFiFAGjInBqhYPNFgvgLKuEed4sFyXiT2RhtW4V4VpO3y8Zv84VDoOZSOTL2DdYfRVG2jHGM2pCxN9uFDWKzeNN6+RQg8ouY9nLkbAoGACme1IwbatTgEx2KrK3jkjcN4A8iwbM8f5HMoPZHqaPht1S1R0xQBvRFa9hNiBExtn63wnEYyim5lUl5xVjBYXd8ZgDPbzjvGR3H+PI2ZVJShO78P9Id0IEc0E2L/kvUH/wXlhF4ozO1/aQ3CYgiaUgJOkRqmqSe5Bm5ir7GY+xkCgYBkfmFhBI9m8AxljI3oJAGv43EGw2s6wZkrQXFBStYBSxTkkS9JHMbkNrKgKvsuzPLUCD0hmdTPREh/miO/0VNXZaa05L7xhgvakezI4f2BSY6tCMXHiBmnRXE8JL4+rEvWAKUaMCTynoyGRetl+JmooLZ5Fez1250hw5vWdSUudA==";
|
|
|
|
|
//"{\"appCode\":\""+appCode+"\",\r\n\t\"appSecret\":\"9f5a519622a8790b\",\r\n\t\"responseType\":\"token\",\r\n\t\"timestamp\":\"1592212221795\",\r\n\t\"sign\":\"LE4MPesIy8BCxOa958cQxX0cW1ObvOfCn2dDUK6AzCukcvyS6EvFMLzSBFiCgcMT1w9cYAbSIOWL2SENvpC2qxXrgtWJd6B3J1dUmL5ZBtOEGZ6ymRz7IAQraA1TG82Y0ZTgVFhOGS/TtbTjdEhurwcclWdbSPEy6uZesoQpyF7MAW+hb5Y5ioqe1ky7RE15W/gwJDONgLifUoZnXhowjsJHBJ/xCwdfQi48/wu0CX+G46C+fSYHKncGbeeg7hFyaltNWsco0ScWLB/JjKA1qZv+pPFGaWGidfoTErq7Ux8fIYH3cRjRoSNknOcawi+zjy8GMBDjxIk9lX7+Oz1wYA==\"\r\n}"
|
|
|
|
|
|
|
|
|
@ -130,13 +133,20 @@ public class SendMailUtil{
|
|
|
|
|
.addHeader("Content-Type", "application/json")
|
|
|
|
|
.build();
|
|
|
|
|
Response response = client.newCall(request).execute();
|
|
|
|
|
baseBean.writeLog("response.code():"+response.code());
|
|
|
|
|
baseBean.writeLog("response.body():"+response.body().string());
|
|
|
|
|
responseData = response.body().string();
|
|
|
|
|
|
|
|
|
|
int code = response.code();
|
|
|
|
|
String bodyMsg = response.body().string();
|
|
|
|
|
baseBean.writeLog("response.code():"+code);
|
|
|
|
|
baseBean.writeLog("response.body():"+bodyMsg);
|
|
|
|
|
if(code == 200){
|
|
|
|
|
responseData = bodyMsg;
|
|
|
|
|
}
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
baseBean.writeLog(e);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
baseBean.writeLog(e);
|
|
|
|
|
}
|
|
|
|
|
return responseData;
|
|
|
|
|
}
|
|
|
|
|