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