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