| package com.ruoyi.web.test; | 
|   | 
| import com.alibaba.fastjson2.JSONArray; | 
| import com.alibaba.fastjson2.JSONObject; | 
| import com.dingtalk.api.DefaultDingTalkClient; | 
| import com.dingtalk.api.DingTalkClient; | 
| import com.dingtalk.api.request.OapiGettokenRequest; | 
| import com.dingtalk.api.request.OapiMessageCorpconversationAsyncsendV2Request; | 
| import com.dingtalk.api.request.OapiUserListidRequest; | 
| import com.dingtalk.api.response.OapiGettokenResponse; | 
| import com.dingtalk.api.response.OapiMessageCorpconversationAsyncsendV2Response; | 
| import com.dingtalk.api.response.OapiUserListidResponse; | 
| import com.taobao.api.ApiException; | 
| import org.apache.commons.lang3.StringUtils; | 
|   | 
| import java.io.IOException; | 
| import java.util.ArrayList; | 
| import java.util.List; | 
| import java.util.regex.Matcher; | 
| import java.util.regex.Pattern; | 
|   | 
| public class DingTalkService { | 
|   | 
|     /** | 
|      * 获取AccessToken | 
|      * | 
|      * @return AccessToken | 
|      * @throws ApiException | 
|      */ | 
|     private static String getAccessToken() throws ApiException { | 
|         DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken"); | 
|         OapiGettokenRequest request = new OapiGettokenRequest(); | 
|         //Appkey | 
|         request.setAppkey("dingn8iip5ubj7clrrsv"); | 
|         //Appsecret | 
|         request.setAppsecret("qlEK8D3oOVwGPOTiBQIBYTqQVlAfy9S_qQizEQFjJdSScwemWFryg4gbneu-NqWD"); | 
|         /*请求方式*/ | 
|         request.setHttpMethod("GET"); | 
|         OapiGettokenResponse response = client.execute(request); | 
|         return response.getAccessToken(); | 
|     } | 
|   | 
|     public static void sendNotification(String mobile, String park, String alarmCode, String severityDesc) throws ApiException { | 
|         // Log.info("发送钉钉通知"); | 
|         String accessToken = getAccessToken(); | 
|         if (StringUtils.isBlank(mobile)) { | 
|             return; | 
|         } | 
|         // DingTalkClient client3 = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/user/listid"); | 
|         DingTalkClient client3 = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/user/listid"); | 
|   | 
|         OapiUserListidRequest request2 = new OapiUserListidRequest(); | 
|         request2.setDeptId(675909059L); // 设置要获取的部门 ID,这里以根部门为例 | 
|         // 设置部门 ID,如果获取所有员工手机号,可以设置为根部门的 ID | 
|         OapiUserListidResponse response2 = client3.execute(request2, accessToken); | 
|         String body = response2.getBody(); | 
|         // 解析为JSONObject | 
|         JSONObject jsonObject = JSONObject.parseObject(body); | 
|         // 提取出JSONArray | 
|         JSONArray jsonArray = new JSONArray(jsonObject.getJSONObject("result").getJSONArray("userid_list")); | 
|         // 将JSONArray转为List列表 | 
|         String str = JSONObject.toJSONString(jsonArray); | 
|         List<String> list = JSONObject.parseObject(str, List.class); | 
|   | 
|         //电话号码数组 | 
|         //   String[] split = mobile.split(","); | 
| //        for (String s : split) { | 
| //            DingTalkClient client2 = new DefaultDingTalkClient("https://oapi.dingtalk.com/user/get_by_mobile"); | 
| //            OapiUserGetByMobileRequest req = new OapiUserGetByMobileRequest(); | 
| //            req.setMobile(s); | 
| //            req.setHttpMethod("GET"); | 
| //            OapiUserGetByMobileResponse rsp = client2.execute(req, accessToken); | 
| //            //获取到Urid就是在公司里要发送到那个人的id | 
| //            String urid = rsp.getUserid(); | 
|         for (String urid : list) { | 
|             DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2"); | 
|             OapiMessageCorpconversationAsyncsendV2Request request = new OapiMessageCorpconversationAsyncsendV2Request(); | 
|             request.setUseridList(urid); | 
|             request.setAgentId(1779052814L); | 
|             request.setToAllUser(false); | 
|             OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new OapiMessageCorpconversationAsyncsendV2Request.Msg(); | 
|             msg.setOa(new OapiMessageCorpconversationAsyncsendV2Request.OA()); | 
|             msg.getOa().setMessageUrl("www.baidu.com"); | 
|             msg.getOa().setPcMessageUrl("www.baidu.com"); | 
|             msg.getOa().setHead(new OapiMessageCorpconversationAsyncsendV2Request.Head()); | 
|             msg.getOa().getHead().setText("text"); | 
|             msg.getOa().getHead().setBgcolor("FFBBBBBB"); | 
|             msg.getOa().setBody(new OapiMessageCorpconversationAsyncsendV2Request.Body()); | 
|             msg.getOa().getBody().setContent("msg信息"); | 
|             OapiMessageCorpconversationAsyncsendV2Request.Form formPark = new OapiMessageCorpconversationAsyncsendV2Request.Form(); | 
|             formPark.setKey(null); | 
|             formPark.setValue(null); | 
|             OapiMessageCorpconversationAsyncsendV2Request.Form formAlarmCode = new OapiMessageCorpconversationAsyncsendV2Request.Form(); | 
|             formAlarmCode.setKey("工工工a "); | 
|             formAlarmCode.setValue(alarmCode); | 
|             OapiMessageCorpconversationAsyncsendV2Request.Form formSeverityDesc = new OapiMessageCorpconversationAsyncsendV2Request.Form(); | 
|             formSeverityDesc.setKey("林要要要要"); | 
|             formSeverityDesc.setValue(severityDesc); | 
|             OapiMessageCorpconversationAsyncsendV2Request.Form formConner = new OapiMessageCorpconversationAsyncsendV2Request.Form(); | 
|             formConner.setKey("厅在在"); | 
|             ArrayList<OapiMessageCorpconversationAsyncsendV2Request.Form> objects = new ArrayList<>(); | 
|             objects.add(formPark); | 
|             objects.add(formSeverityDesc); | 
|             objects.add(formAlarmCode); | 
|             objects.add(formConner); | 
|             msg.getOa().getBody().setForm(objects); | 
|             msg.setMsgtype("oa"); | 
|             request.setMsg(msg); | 
|             //  log.info("获取发送通知消息体和获取发送通知人完成"); | 
|             OapiMessageCorpconversationAsyncsendV2Response response = client.execute(request, accessToken); | 
|             //  log.info("发送消息是否成功"+response.isSuccess()); | 
|             System.out.println(response.isSuccess()); | 
|             //  log.info("消息任务ID"+response.getTaskId()); | 
|             System.out.println(response.getTaskId()); | 
|         } | 
|     } | 
|   | 
|     public static void main(String[] args) throws ApiException, IOException { | 
|         String str = "我还不是没有吃过饭"; | 
|         String pattern = "[\\u4e00-\\u9fa5]*(哦|嗯|不是|做了|已经好了|完成)[\\u4e00-\\u9fa5]*"; | 
|   | 
|         Pattern r = Pattern.compile(pattern); | 
|         Matcher m = r.matcher(str); | 
|   | 
|         System.out.println(m.find()); | 
| ////        String appId = "wx1c5243d2337753f4"; | 
| ////        String appSecret = "84a2186a0d175e88345267c716516cd3"; | 
| ////        WeChatService weChatService = new WeChatService(appId, appSecret); | 
| ////        weChatService.sendMessageToFollowers("你在说啥呢????"); | 
| ////        // new com.smartor.controller.BaseSmsaccountController().sendMessageToFollowers("AIJSl-IF6M05NzaXofPYbT5wgSP3bWH7I9OBmvJqsaU","www.baidu.com"); | 
| // | 
| ////        sendNotification("17607179857", "1", "2", "3"); | 
| //        Workbook workbook = new XSSFWorkbook(); | 
| //        Sheet sheet = workbook.createSheet("Sheet1"); | 
| //        // 创建行和单元格,并设置单元格的值 | 
| //        Row row = sheet.createRow(0); | 
| //        row.createCell(0).setCellValue("姓名"); | 
| //        row.createCell(1).setCellValue("性别"); | 
| //        row.createCell(2).setCellValue("证件类型"); | 
| //        row.createCell(3).setCellValue("出生日期"); | 
| //        row.createCell(4).setCellValue("本人联系方式"); | 
| //        row.createCell(5).setCellValue("亲属联系方式"); | 
| //        row.createCell(6).setCellValue("患者标签"); | 
| //        row.createCell(7).setCellValue("错误原因"); | 
| // | 
| //        // 保存工作簿到文件 | 
| //        FileOutputStream outputStream = new FileOutputStream("example.xlsx"); | 
| //        workbook.write(outputStream); | 
| //        outputStream.close(); | 
| //        workbook.close(); | 
|     } | 
| } |