Pārlūkot izejas kodu

场景计算统计

dsx 1 gadu atpakaļ
vecāks
revīzija
7a61cf7950

+ 52 - 5
src/main/java/com/fdkankan/job/job/SceneCallCountHandler.java

@@ -4,7 +4,12 @@ import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.img.ImgUtil;
 import cn.hutool.core.img.ImgUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.dingtalk.api.DefaultDingTalkClient;
+import com.dingtalk.api.DingTalkClient;
+import com.dingtalk.api.request.OapiRobotSendRequest;
+import com.dingtalk.api.response.OapiRobotSendResponse;
 import com.fdkankan.common.constant.CommonOperStatus;
 import com.fdkankan.common.constant.CommonOperStatus;
+import com.fdkankan.common.util.Base64Converter;
 import com.fdkankan.common.util.DateExtUtil;
 import com.fdkankan.common.util.DateExtUtil;
 import com.fdkankan.dingtalk.DingTalkSendUtils;
 import com.fdkankan.dingtalk.DingTalkSendUtils;
 import com.fdkankan.job.entity.SceneBuildProcessLog;
 import com.fdkankan.job.entity.SceneBuildProcessLog;
@@ -14,6 +19,7 @@ import com.fdkankan.job.service.ISceneBuildProcessLogService;
 import com.fdkankan.job.service.IScenePlusService;
 import com.fdkankan.job.service.IScenePlusService;
 import com.fdkankan.job.service.ISceneProService;
 import com.fdkankan.job.service.ISceneProService;
 import com.fdkankan.model.constants.SceneBuildProcessType;
 import com.fdkankan.model.constants.SceneBuildProcessType;
+import com.taobao.api.ApiException;
 import com.xxl.job.core.context.XxlJobHelper;
 import com.xxl.job.core.context.XxlJobHelper;
 import com.xxl.job.core.handler.annotation.XxlJob;
 import com.xxl.job.core.handler.annotation.XxlJob;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -21,12 +27,15 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.cloud.context.config.annotation.RefreshScope;
 import org.springframework.cloud.context.config.annotation.RefreshScope;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
+import javax.crypto.Mac;
+import javax.crypto.spec.SecretKeySpec;
 import java.io.File;
 import java.io.File;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
 import java.sql.SQLException;
 import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
@@ -263,10 +272,48 @@ public class SceneCallCountHandler {
                 errorMsg);
                 errorMsg);
 
 
         XxlJobHelper.log(ddMsg);
         XxlJobHelper.log(ddMsg);
-        dingTalkSendUtils.sendActioncardMsgToDingRobot(ddMsg, "场景计算统计");
+        this.sendActioncardMsgToDingRobot(ddMsg, "场景计算统计");
         XxlJobHelper.log("sceneCallCountHandler end.....");
         XxlJobHelper.log("sceneCallCountHandler end.....");
     }
     }
 
 
+    public void sendActioncardMsgToDingRobot(String content,String title) throws ApiException, UnsupportedEncodingException, NoSuchAlgorithmException, InvalidKeyException {
+        Long timestamp = System.currentTimeMillis();
+        String sign = getSign(timestamp);
+        DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/robot/send?" +
+                "access_token="+token +
+                "&timestamp=".concat(String.valueOf(timestamp)).concat("&sign=").concat(sign));
+
+        OapiRobotSendRequest request = new OapiRobotSendRequest();
+        request.setMsgtype("text");
+        OapiRobotSendRequest.Text text = new OapiRobotSendRequest.Text();
+
+        text.setContent("@18683904472");
+
+        request.setText(text);
+        OapiRobotSendRequest.At at = new OapiRobotSendRequest.At();
+        at.setAtMobiles(Arrays.asList("18683904472"));
+        // isAtAll类型如果不为Boolean,请升级至最新SDK
+        at.setIsAtAll(false);
+        request.setAt(at);
+        OapiRobotSendResponse re = client.execute(request);
+        System.out.println(re.getBody());
+    }
+
+    @Value("${dingtalk.token:e712c41d917b303e21c1550ad9966b33dad874043f2f73fb347dce67a0a201bc}")
+    private String token;
+
+    @Value("${dingtalk.secret:SECca5af660ed882a67d8bda469095bf8454831528bd25bc7b1a3ff5f686109b9e5}")
+    private String secret;
+
+    public String getSign(Long timestamp) throws NoSuchAlgorithmException, UnsupportedEncodingException, InvalidKeyException {
+        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"));
+        System.out.println(new String(signData));
+        return URLEncoder.encode(Base64Converter.encode(signData));
+    }
+
     public static void main(String[] args) throws SQLException {
     public static void main(String[] args) throws SQLException {
 
 
         System.out.println("ggg  123123");
         System.out.println("ggg  123123");