From 568e38a95cb6fb20fe16b53d17f610aefc6f744f Mon Sep 17 00:00:00 2001 From: rk <94314517@qq.com> Date: 星期四, 09 十月 2025 18:29:29 +0800 Subject: [PATCH] 钉钉通知 与钥匙柜开发 --- server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java | 180 +++++++++++++++++++++++++++++++---------------------------- 1 files changed, 94 insertions(+), 86 deletions(-) diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java index 0f41075..2291752 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java @@ -373,20 +373,25 @@ * api 鍦板潃 https://open.dingtalk.com/document/orgapp/asynchronous-sending-of-enterprise-session-messages * @throws ApiException */ - public void workInfoOANotice(Long agentId,String userIds,OapiMessageCorpconversationAsyncsendV2Request.Msg msg)throws ApiException { - DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2"); - OapiMessageCorpconversationAsyncsendV2Request request = new OapiMessageCorpconversationAsyncsendV2Request(); - request.setAgentId(agentId); - request.setUseridList(userIds); - request.setToAllUser(false); + public void workInfoOANotice(Long agentId,String userIds,OapiMessageCorpconversationAsyncsendV2Request.Msg msg){ + try{ + DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2"); + OapiMessageCorpconversationAsyncsendV2Request request = new OapiMessageCorpconversationAsyncsendV2Request(); + request.setAgentId(agentId); + request.setUseridList(userIds); + request.setToAllUser(false); - request.setMsg(msg); - OapiMessageCorpconversationAsyncsendV2Response rsp = client.execute(request, "60c2df248ca93d4eafb4a04a2330d3d3");//getToken()); - if(rsp.getErrcode().equals(Constants.DD_ERR_CODE)){ + request.setMsg(msg); + OapiMessageCorpconversationAsyncsendV2Response rsp = client.execute(request, "60c2df248ca93d4eafb4a04a2330d3d3");//getToken()); + if(rsp.getErrcode().equals(Constants.DD_ERR_CODE)){ - }else{ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),rsp.getMessage()); + }else{ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),rsp.getMessage()); + } + }catch (ApiException apiException){ + } + } @@ -532,79 +537,83 @@ * unionIdList 寰呭姙閫氱煡浜哄憳闆嗗悎 * @throws Exception */ - public String toDoNotice(String title,List<String> unionIdList,List<CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList> fieldList) throws Exception { - com.aliyun.dingtalktodo_1_0.Client client = DingTalk.createV1Client(); - CreateTodoTaskHeaders createTodoTaskHeaders = new CreateTodoTaskHeaders(); - createTodoTaskHeaders.xAcsDingtalkAccessToken = "43cf8213909f34ef81e7447905b822fb";//getToken(); - //寰呭姙鎴鍓嶇殑鎻愰啋 - CreateTodoTaskRequest.CreateTodoTaskRequestRemindNotifyConfigs remindNotifyConfigs = new CreateTodoTaskRequest.CreateTodoTaskRequestRemindNotifyConfigs() - .setDingNotify("1") - .setSendTodoApn("true"); - //寰呭姙閫氱煡閰嶇疆 - CreateTodoTaskRequest.CreateTodoTaskRequestNotifyConfigs notifyConfigs = new CreateTodoTaskRequest.CreateTodoTaskRequestNotifyConfigs() - .setDingNotify("1") - .setSendTodoApn("true") - .setSendAssistantChat("true"); - //鎸夐挳浜嬩欢 - CreateTodoTaskRequest.CreateTodoTaskRequestActionListParam actionList0Param = new CreateTodoTaskRequest.CreateTodoTaskRequestActionListParam() - .setBody(""); - CreateTodoTaskRequest.CreateTodoTaskRequestActionList actionList0 = new CreateTodoTaskRequest.CreateTodoTaskRequestActionList() - .setTitle("鍘诲鐞�") - .setActionType(2) - .setParam(actionList0Param) - .setUrl("https://www.baidu.com") //TODO 璇︽儏鍦板潃 - .setActionKey("ak-1-1"); - //璇︽儏椤祏rl璺宠浆鍦板潃 - CreateTodoTaskRequest.CreateTodoTaskRequestDetailUrl detailUrl = new CreateTodoTaskRequest.CreateTodoTaskRequestDetailUrl() - .setAppUrl("https://www.baidu.com") - .setPcUrl("https://www.baidu.com"); - CreateTodoTaskRequest createTodoTaskRequest = new CreateTodoTaskRequest() - .setSubject(title) - .setCreatorId(unionIdList.get(Constants.ZERO)) - .setDescription(title) - .setExecutorIds(unionIdList) - .setDetailUrl(detailUrl) - .setContentFieldList(fieldList) - .setIsOnlyShowExecutor(true) - .setPriority(20) - .setNotifyConfigs(notifyConfigs) - .setActionList(java.util.Arrays.asList(actionList0)) - .setTodoType("TODO") - .setRemindNotifyConfigs(remindNotifyConfigs); - try { - CreateTodoTaskResponse response = client.createTodoTaskWithOptions(unionIdList.get(Constants.ZERO), createTodoTaskRequest, createTodoTaskHeaders, new com.aliyun.teautil.models.RuntimeOptions()); - log.error("寰呭姙閫氱煡鍙戦�佹垚鍔燂紝鍙戦�佸唴瀹癸細{}"+JSONObject.toJSONString(response)); - return response.getBody().getId(); - } catch (TeaException err) { - if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) { - log.error("寰呭姙閫氱煡鍙戦�佸け璐ワ紝澶辫触鍘熷洜锛歿}"+err.message); + public String toDoNotice(String title,List<String> unionIdList,List<CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList> fieldList,String url) { + try{ + com.aliyun.dingtalktodo_1_0.Client client = DingTalk.createV1Client(); + CreateTodoTaskHeaders createTodoTaskHeaders = new CreateTodoTaskHeaders(); + createTodoTaskHeaders.xAcsDingtalkAccessToken = getToken(); + //寰呭姙鎴鍓嶇殑鎻愰啋 + CreateTodoTaskRequest.CreateTodoTaskRequestRemindNotifyConfigs remindNotifyConfigs = new CreateTodoTaskRequest.CreateTodoTaskRequestRemindNotifyConfigs() + .setDingNotify("1") + .setSendTodoApn("true"); + //寰呭姙閫氱煡閰嶇疆 + CreateTodoTaskRequest.CreateTodoTaskRequestNotifyConfigs notifyConfigs = new CreateTodoTaskRequest.CreateTodoTaskRequestNotifyConfigs() + .setDingNotify("1") + .setSendTodoApn("true") + .setSendAssistantChat("true"); + //鎸夐挳浜嬩欢 + CreateTodoTaskRequest.CreateTodoTaskRequestActionListParam actionList0Param = new CreateTodoTaskRequest.CreateTodoTaskRequestActionListParam() + .setBody(""); + CreateTodoTaskRequest.CreateTodoTaskRequestActionList actionList0 = new CreateTodoTaskRequest.CreateTodoTaskRequestActionList() + .setTitle("鍘诲鐞�") + .setActionType(2) + .setParam(actionList0Param) + .setUrl("https://www.baidu.com") //TODO 璇︽儏鍦板潃 + .setActionKey("ak-1-1"); + //璇︽儏椤祏rl璺宠浆鍦板潃 + CreateTodoTaskRequest.CreateTodoTaskRequestDetailUrl detailUrl = new CreateTodoTaskRequest.CreateTodoTaskRequestDetailUrl() + .setAppUrl("https://www.baidu.com") + .setPcUrl("https://www.baidu.com"); + CreateTodoTaskRequest createTodoTaskRequest = new CreateTodoTaskRequest() + .setSubject(title) + .setCreatorId(unionIdList.get(Constants.ZERO)) + .setDescription(title) + .setExecutorIds(unionIdList) + .setDetailUrl(detailUrl) + .setContentFieldList(fieldList) + .setIsOnlyShowExecutor(true) + .setPriority(20) + .setNotifyConfigs(notifyConfigs) + .setActionList(java.util.Arrays.asList(actionList0)) + .setTodoType("TODO") + .setRemindNotifyConfigs(remindNotifyConfigs); + try { + CreateTodoTaskResponse response = client.createTodoTaskWithOptions(unionIdList.get(Constants.ZERO), createTodoTaskRequest, createTodoTaskHeaders, new com.aliyun.teautil.models.RuntimeOptions()); + log.error("寰呭姙閫氱煡鍙戦�佹垚鍔燂紝鍙戦�佸唴瀹癸細{}"+JSONObject.toJSONString(response)); + return response.getBody().getId(); + } catch (TeaException err) { + if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) { + log.error("寰呭姙閫氱煡鍙戦�佸け璐ワ紝澶辫触鍘熷洜锛歿}"+err.message); + } + } catch (Exception _err) { + TeaException err = new TeaException(_err.getMessage(), _err); + if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) { + // err 涓惈鏈� code 鍜� message 灞炴�э紝鍙府鍔╁紑鍙戝畾浣嶉棶棰� + log.error("寰呭姙閫氱煡鍙戦�佸け璐ワ紝澶辫触鍘熷洜锛歿}"+err.message); + } } - } catch (Exception _err) { - TeaException err = new TeaException(_err.getMessage(), _err); - if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) { - // err 涓惈鏈� code 鍜� message 灞炴�э紝鍙府鍔╁紑鍙戝畾浣嶉棶棰� - log.error("寰呭姙閫氱煡鍙戦�佸け璐ワ紝澶辫触鍘熷洜锛歿}"+err.message); - } + return null; + }catch (Exception e){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"閽夐拤寰呭姙浠诲姟閫氱煡鍙戦�佸け璐�"); } - return null; } /** - * 澶勭悊鍏ㄩ儴浜虹殑寰呭姙淇℃伅 + * 澶勭悊鍏ㄩ儴浜虹殑寰呭姙淇℃伅 锛堟祦绋嬪鎵瑰畬鎴愩�佹湰绾у鎵瑰畬鎴� 浣跨敤锛� * @param unionId * @param taskId * api鍦板潃 https://open.dingtalk.com/document/orgapp/updates-dingtalk-to-do-tasks * @throws Exception */ - public void updToDoNoticeInfoStatus(String unionId,String taskId) throws Exception { - com.aliyun.dingtalktodo_1_0.Client client = DingTalk.createV1Client(); - UpdateTodoTaskHeaders updateTodoTaskHeaders = new UpdateTodoTaskHeaders(); - updateTodoTaskHeaders.xAcsDingtalkAccessToken = "43cf8213909f34ef81e7447905b822fb";//getToken(); - UpdateTodoTaskRequest updateTodoTaskRequest = new UpdateTodoTaskRequest() - .setOperatorId(unionId) - .setDone(true); + public void updToDoNoticeInfoStatus(String unionId,String taskId){ try { + com.aliyun.dingtalktodo_1_0.Client client = DingTalk.createV1Client(); + UpdateTodoTaskHeaders updateTodoTaskHeaders = new UpdateTodoTaskHeaders(); + updateTodoTaskHeaders.xAcsDingtalkAccessToken = getToken(); + UpdateTodoTaskRequest updateTodoTaskRequest = new UpdateTodoTaskRequest() + .setOperatorId(unionId) + .setDone(true); UpdateTodoTaskResponse response = client.updateTodoTaskWithOptions(unionId, taskId, updateTodoTaskRequest, updateTodoTaskHeaders, new RuntimeOptions()); log.error("寰呭姙閫氱煡鍙戦�佹垚鍔燂紝鍙戦�佸唴瀹癸細{}"+JSONObject.toJSONString(response)); } catch (TeaException err) { @@ -612,7 +621,6 @@ // err 涓惈鏈� code 鍜� message 灞炴�э紝鍙府鍔╁紑鍙戝畾浣嶉棶棰� log.error("寰呭姙閫氱煡鍙戦�佸け璐ワ紝澶辫触鍘熷洜锛歿}"+err.message); } - } catch (Exception _err) { TeaException err = new TeaException(_err.getMessage(), _err); if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) { @@ -630,18 +638,18 @@ * api 鍦板潃 https://open.dingtalk.com/document/orgapp/update-dingtalk-to-do-status * @throws Exception */ - public void updUserToDoNoticeInfoStatus(String unionId,String taskId,String dealUnionId) throws Exception { - com.aliyun.dingtalktodo_1_0.Client client = DingTalk.createV1Client(); - UpdateTodoTaskExecutorStatusHeaders updateTodoTaskExecutorStatusHeaders = new UpdateTodoTaskExecutorStatusHeaders(); - updateTodoTaskExecutorStatusHeaders.xAcsDingtalkAccessToken = "43cf8213909f34ef81e7447905b822fb";//getToken(); - UpdateTodoTaskExecutorStatusRequest.UpdateTodoTaskExecutorStatusRequestExecutorStatusList executorStatusList0 = new UpdateTodoTaskExecutorStatusRequest.UpdateTodoTaskExecutorStatusRequestExecutorStatusList() - .setId(dealUnionId) - .setIsDone(true); - UpdateTodoTaskExecutorStatusRequest updateTodoTaskExecutorStatusRequest = new UpdateTodoTaskExecutorStatusRequest() - .setExecutorStatusList(java.util.Arrays.asList( - executorStatusList0 - )); + public void updUserToDoNoticeInfoStatus(String unionId,String taskId,String dealUnionId){ try { + com.aliyun.dingtalktodo_1_0.Client client = DingTalk.createV1Client(); + UpdateTodoTaskExecutorStatusHeaders updateTodoTaskExecutorStatusHeaders = new UpdateTodoTaskExecutorStatusHeaders(); + updateTodoTaskExecutorStatusHeaders.xAcsDingtalkAccessToken = getToken(); + UpdateTodoTaskExecutorStatusRequest.UpdateTodoTaskExecutorStatusRequestExecutorStatusList executorStatusList0 = new UpdateTodoTaskExecutorStatusRequest.UpdateTodoTaskExecutorStatusRequestExecutorStatusList() + .setId(dealUnionId) + .setIsDone(true); + UpdateTodoTaskExecutorStatusRequest updateTodoTaskExecutorStatusRequest = new UpdateTodoTaskExecutorStatusRequest() + .setExecutorStatusList(java.util.Arrays.asList( + executorStatusList0 + )); UpdateTodoTaskExecutorStatusResponse response = client.updateTodoTaskExecutorStatusWithOptions(unionId, taskId, updateTodoTaskExecutorStatusRequest, updateTodoTaskExecutorStatusHeaders, new RuntimeOptions()); log.error("寰呭姙閫氱煡鍙戦�佹垚鍔燂紝鍙戦�佸唴瀹癸細{}"+JSONObject.toJSONString(response)); } catch (TeaException err) { @@ -729,10 +737,10 @@ carUseBook.setType(Constants.ZERO); - dingTalk.workInfoOANotice(4015267031L,"1568490244651036",dingTalk.getCarUseNoticeMsg(carUseBook,"鐢ㄨ溅鐢宠")); +// dingTalk.workInfoOANotice(4015267031L,"1568490244651036",dingTalk.getCarUseNoticeMsg(carUseBook,"鐢ㄨ溅鐢宠")); -// dingTalk.toDoNotice("灏忚眴涓佹彁浜ょ殑鍏姟杞︾敤杞�",java.util.Arrays.asList("iPsP86axviPHiSP4nm5YgQNCQiEiE","XiPYJKRAv9eCoO4UPM20HQQiEiE","eWbHiSp3uRtrMtiiOX5LXamgiEiE") ,dingTalk.getToDoCarUseBookFiledInfo(carUseBook)); + dingTalk.toDoNotice("灏忚眴涓佹彁浜ょ殑鍏姟杞︾敤杞�",java.util.Arrays.asList("iPsP86axviPHiSP4nm5YgQNCQiEiE","XiPYJKRAv9eCoO4UPM20HQQiEiE","eWbHiSp3uRtrMtiiOX5LXamgiEiE") ,dingTalk.getToDoCarUseBookFiledInfo(carUseBook),""); // // dingTalk.updUserToDoNoticeInfoStatus("iPsP86axviPHiSP4nm5YgQNCQiEiE", -- Gitblit v1.9.3