Browse Source

robot

dev_shibei_match
zxc 5 years ago
parent
commit
9ab38cce7f
  1. 45
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java

45
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java

@ -8,9 +8,11 @@ import com.dingtalk.api.DingTalkClient;
import com.dingtalk.api.request.OapiRobotSendRequest; import com.dingtalk.api.request.OapiRobotSendRequest;
import com.dingtalk.api.response.OapiRobotSendResponse; import com.dingtalk.api.response.OapiRobotSendResponse;
import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.dto.form.DingTalkTextMsg;
import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.HttpClientManager; import com.epmet.commons.tools.utils.HttpClientManager;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.ModuleConstant; import com.epmet.constant.ModuleConstant;
import com.epmet.constant.ThirdRedisKeyConstant; import com.epmet.constant.ThirdRedisKeyConstant;
import com.epmet.constant.ThirdRunTimeInfoConstant; import com.epmet.constant.ThirdRunTimeInfoConstant;
@ -31,6 +33,7 @@ import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.taobao.api.ApiException; import com.taobao.api.ApiException;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.dom4j.DocumentException; import org.dom4j.DocumentException;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -38,11 +41,14 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.net.URLEncoder;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@ -156,17 +162,15 @@ public class WarrantServiceImpl implements WarrantService {
switch (event) { switch (event) {
case ModuleConstant.WEAPP_AUDIT_SUCCESS: case ModuleConstant.WEAPP_AUDIT_SUCCESS:
codeResult = ModuleConstant.AUDIT_SUCCESS; codeResult = ModuleConstant.AUDIT_SUCCESS;
this.dingDingRobot(reason,null,customerName,client);
break; break;
case ModuleConstant.WEAPP_AUDIT_FAIL: case ModuleConstant.WEAPP_AUDIT_FAIL:
codeResult = ModuleConstant.AUDIT_FAILED; codeResult = ModuleConstant.AUDIT_FAILED;
this.dingDingRobot(reason,codeResult,customerName,client);
break; break;
case ModuleConstant.WEAPP_AUDIT_DELAY: case ModuleConstant.WEAPP_AUDIT_DELAY:
codeResult = ModuleConstant.DELAY; codeResult = ModuleConstant.DELAY;
this.dingDingRobot(reason,codeResult,customerName,client);
break; break;
} }
this.dingDingRobot(reason,codeResult,customerName,client);
String codeCustomerId = codeCustomerDao.selectCodeCustomerId(codeAuditRecord); String codeCustomerId = codeCustomerDao.selectCodeCustomerId(codeAuditRecord);
codeAuditResultDao.updateAuditResult(customerId, codeCustomerId, codeResult); codeAuditResultDao.updateAuditResult(customerId, codeCustomerId, codeResult);
log.info("消息与事件接收URL【代码审核结果】结束......"); log.info("消息与事件接收URL【代码审核结果】结束......");
@ -190,18 +194,12 @@ public class WarrantServiceImpl implements WarrantService {
} }
} }
/*public static void main(String[] args) {
WarrantServiceImpl w = new WarrantServiceImpl();
w.dingDingRobot("haha","weapp_audit_fail","haha","jumian");
}*/
/** /**
* @Description 钉钉机器人报警 * @Description 钉钉机器人报警
* @author zxc * @author zxc
* @date 2020/8/5 4:33 下午 * @date 2020/8/5 4:33 下午
*/ */
public void dingDingRobot(String result,String event,String customerName,String clientType){ public void dingDingRobot(String result,String event,String customerName,String clientType){
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/robot/send?access_token=2438902efbcc15909deb7076963c5cbe2d6fdbfdb9d66750faab2f2cce6eb09f");
OapiRobotSendRequest request = new OapiRobotSendRequest(); OapiRobotSendRequest request = new OapiRobotSendRequest();
request.setMsgtype("markdown"); request.setMsgtype("markdown");
OapiRobotSendRequest.Markdown markdown = new OapiRobotSendRequest.Markdown(); OapiRobotSendRequest.Markdown markdown = new OapiRobotSendRequest.Markdown();
@ -227,12 +225,37 @@ public class WarrantServiceImpl implements WarrantService {
} }
request.setMarkdown(markdown); request.setMarkdown(markdown);
try { try {
OapiRobotSendResponse response = client.execute(request); String url = "https://oapi.dingtalk.com/robot/send?access_token=2438902efbcc15909deb7076963c5cbe2d6fdbfdb9d66750faab2f2cce6eb09f";
} catch (ApiException e) { String secret = "SECe3c785dd254659608667a4a623acc5a0395636143411617f6e36838b48941e74";
this.sendCodeMsg(request,url,secret);
} catch (Exception e) {
log.error("机器人生病了......"); log.error("机器人生病了......");
e.printStackTrace(); e.printStackTrace();
} }
} }
/*
public static void main(String[] args) {
WarrantServiceImpl w = new WarrantServiceImpl();
w.dingDingRobot("审核失败","weapp_audit_fail","机器人测试","居民端");
}*/
public Result<String> sendCodeMsg(OapiRobotSendRequest request,String url,String secret) {
Long timestamp = System.currentTimeMillis();
try {
String stringToSign = timestamp + "\n" + secret;
Mac mac = Mac.getInstance("HmacSHA256");
mac.init(new SecretKeySpec(secret.getBytes("UTF-8"), "HmacSHA256"));
byte[] signData = mac.doFinal(stringToSign.getBytes("UTF-8"));
String sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)), "UTF-8");
url = url.concat("&timestamp=" + timestamp + "&sign=" + sign);
Result<String> stringResult = HttpClientManager.getInstance().sendPostByJSON(url, JSON.toJSONString(request));
String data = stringResult.getData();
} catch (Exception e) {
e.printStackTrace();
}
return new Result<String>().error();
}
public String getClient(String clientType){ public String getClient(String clientType){
String result = clientType == "resi" ? "居民端" : "工作端"; String result = clientType == "resi" ? "居民端" : "工作端";

Loading…
Cancel
Save