From ca22f5f5a2cf7f1bc085c321049372832deeaff4 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Mon, 10 Aug 2020 14:50:03 +0800 Subject: [PATCH] =?UTF-8?q?=E9=92=89=E9=92=89=E6=96=B9=E6=B3=95=E6=8F=90?= =?UTF-8?q?=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tools/utils/HttpClientManager.java | 28 +++++++++++++++++ .../service/impl/WarrantServiceImpl.java | 30 ++----------------- 2 files changed, 30 insertions(+), 28 deletions(-) diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpClientManager.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpClientManager.java index 8777143097..0c6c4cb9ae 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpClientManager.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpClientManager.java @@ -240,6 +240,34 @@ public class HttpClientManager { return new Result().error(); } + /** + * @Desc 发送钉钉消息 content需为 OapiRobotSendRequest 设定msgType格式,根据相应的格式填写 标题 内容 + * @param content OapiRobotSendRequest转换为String + * @param url webhook地址 + * @param secret 加签串 + * @author zxc + */ + public Result sendDingMsg(String content,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"); + log.info("sign为:"+sign); + url = url.concat("×tamp=" + timestamp + "&sign=" + sign); + log.info("发送url:"+url); + Result stringResult = HttpClientManager.getInstance().sendPostByJSON(url, content); + log.info("robot发送消息结果为:"+stringResult.getData()); + return stringResult; + } catch (Exception e) { + e.printStackTrace(); + } + return new Result().error(); + } + + /** * desc: 发送get请求 * param:url, params diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java index 19b6d0d8a5..85b15f296d 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java @@ -163,7 +163,7 @@ public class WarrantServiceImpl implements WarrantService { break; } log.info("开始寻找机器人发送消息"); - this.dingDingRobot(reason,codeResult,customerName,client); + this.dingDingRobot(reason,event,customerName,client); log.info("已找到robot,并发送消息......"); String codeCustomerId = codeCustomerDao.selectCodeCustomerId(codeAuditRecord); codeAuditResultDao.updateAuditResult(customerId, codeCustomerId, codeResult); @@ -193,7 +193,6 @@ public class WarrantServiceImpl implements WarrantService { PrintWriter pw = response.getWriter();//需在5秒内返回空串表明暂时不回复,然后再立即使用客服消息接口发送消息回复粉丝 pw.write(""); pw.flush(); - log.info(String.format(ThirdRunTimeInfoConstant.TEXT_MESSAGE_LOG_INFO,content,content.split(ThirdRedisKeyConstant.COLON)[NumConstant.ONE],fromUserName,toUserName)); //接下来客服API再回复一次消息 String[] split = content.split(ThirdRedisKeyConstant.COLON); @@ -239,34 +238,9 @@ public class WarrantServiceImpl implements WarrantService { log.info("robot需要发送的内容为:"+markdown.getText()); String url = "https://oapi.dingtalk.com/robot/send?access_token=2438902efbcc15909deb7076963c5cbe2d6fdbfdb9d66750faab2f2cce6eb09f"; String secret = "SECe3c785dd254659608667a4a623acc5a0395636143411617f6e36838b48941e74"; - this.sendCodeMsg(request,url,secret); + HttpClientManager.getInstance().sendDingMsg(JSON.toJSONString(request),url,secret); } -// public static void main(String[] args) { -// WarrantServiceImpl w = new WarrantServiceImpl(); -// w.dingDingRobot("审核失败","weapp_audit_fail","机器人测试","居民端"); -// } - public Result 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"); - log.info("sign为:"+sign); - url = url.concat("×tamp=" + timestamp + "&sign=" + sign); - log.info("发送url:"+url); - String requestString = JSON.toJSONString(request); - log.info("发送内容:"+requestString); - Result stringResult = HttpClientManager.getInstance().sendPostByJSON(url, requestString); - log.info("robot发送消息结果为:"+stringResult.getData()); - return stringResult; - } catch (Exception e) { - e.printStackTrace(); - } - return new Result().error(); - } /** * 方法描述: 类型为event的时候,拼接