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 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 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(); } }