From e8d452721eb4b91b24ce3884b111e68fc2509f54 Mon Sep 17 00:00:00 2001 From: wangzhijiang <12345678> Date: Fri, 12 Aug 2022 09:11:32 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A3=9E=E4=B9=A6=E4=BA=A4=E4=BA=92-=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E7=94=A8=E6=88=B7=E7=BB=99=E9=A3=9E=E4=B9=A6=E6=9C=BA?= =?UTF-8?q?=E5=99=A8=E4=BA=BA=E5=8F=91=E9=80=81=E8=B4=9F=E8=B4=A3=E4=BA=BA?= =?UTF-8?q?=EF=BC=8C=E7=BB=99=E6=9C=BA=E5=99=A8=E4=BA=BA=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E5=88=86=E7=B1=BB=E8=B4=A3=E4=BB=BB=E4=BA=BA=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feishu/controller/LarkController.java | 5 ++ .../feishu/service/IFeishuService.java | 6 ++ .../service/impl/FeishuServiceImpl.java | 79 +++++++++++++++++++ 3 files changed, 90 insertions(+) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/controller/LarkController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/controller/LarkController.java index c7b51528e..2f2ab5bf6 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/controller/LarkController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/controller/LarkController.java @@ -67,6 +67,11 @@ public class LarkController { log.info("给"+employeeId+"用户推送知识库一级分类菜单:=========================================================="); feishuService.sendKnowledgeBaseTypeCard(employeeId.split(",")); } + //判断用户发送的消息内容,如果包含"负责人" 那么给用户推送知识库分类负责人信息 + if(StringUtils.contains(text,"负责人")){ + log.info("给"+employeeId+"用户推送知识库负责人:=========================================================="); + feishuService.sendKnowledgeBaseTypeChargePersonCard(employeeId.split(",")); + } } } return decrypt; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/service/IFeishuService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/service/IFeishuService.java index 5c8a8d213..a1999a118 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/service/IFeishuService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/service/IFeishuService.java @@ -56,4 +56,10 @@ public interface IFeishuService { * @param jsonObject */ void sendKnowledgeBaseInfoCard(JSONObject jsonObject); + + /** + * 发送知识库分类负责人卡片消息 (用户输入负责人的时候) + * @param split + */ + void sendKnowledgeBaseTypeChargePersonCard(String[] split); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/service/impl/FeishuServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/service/impl/FeishuServiceImpl.java index b1d6f2b43..32c13eaf0 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/service/impl/FeishuServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/service/impl/FeishuServiceImpl.java @@ -542,4 +542,83 @@ public class FeishuServiceImpl implements IFeishuService { } } + @Override + public void sendKnowledgeBaseTypeChargePersonCard(String[] userIds) { + String token = null; + try { + token = getTenantAccessToken(); + } catch (IOException e) { + e.printStackTrace(); + } + // 设置请求头 + Map headerMap = new HashMap<>(); + headerMap.put("Authorization", "Bearer " + token); + headerMap.put("Content-Type", "application/json; charset=utf-8"); + + String sendJson = " {\n" + + " \"config\": {\n" + + " \"wide_screen_mode\": true\n" + + " },\n" + + " \"header\": {\n" + + " \"title\": {\n" + + " \"tag\": \"plain_text\",\n" + + " \"content\": \"点击下方的分类查看常见问题\"\n" + + " },\n" + + " \"template\": \"green\"\n" + + " }\n" + + "}"; + JSONObject jsonObject = JSONObject.parseObject(sendJson); + JSONArray elements = new JSONArray(); + JSONObject element = new JSONObject(); + element.put("tag","action"); + element.put("layout","bisected"); + + //获取分类 + List problemKnowledgeBaseClassifyEOList = this.problemKnowledgeBaseClassifyEOService.list(); + this.problemKnowledgeBaseClassifyEOService.disposeData(problemKnowledgeBaseClassifyEOList); + + JSONArray actions = new JSONArray(); + + //组装推送过去的点击按钮 + for (ProblemKnowledgeBaseClassifyEO problemKnowledgeBaseClassifyEO : problemKnowledgeBaseClassifyEOList) { + JSONObject buttonObject = new JSONObject(); + JSONObject text = new JSONObject(); + JSONObject value = new JSONObject(); + buttonObject.put("tag","button"); + + text.put("tag","plain_text"); + text.put("content",problemKnowledgeBaseClassifyEO.getProblemLabel() + " [" + problemKnowledgeBaseClassifyEO.getChargePersonIdName() + "]"); + value.put("chosen",problemKnowledgeBaseClassifyEO.getChargePersonId()); + + buttonObject.put("text",text); + buttonObject.put("type","primary"); + buttonObject.put("value",value); + actions.add(buttonObject); + } + + element.put("actions",actions); + + + elements.add(element); + jsonObject.put("elements",elements); + // 设置请求参数 + JSONObject paramsMap = new JSONObject(); + paramsMap.put("user_ids", userIds); + paramsMap.put("msg_type", "interactive"); + paramsMap.put("card", jsonObject); + + // 发送请求给飞书 + String response = null; + try { + response = HttpRequestUtil.getResponseOfPOST(batchSendMessageUrl, headerMap, paramsMap.toJSONString()); + } catch (IOException e) { + e.printStackTrace(); + } + // 获取返回结果 + JSONObject tokenJson = JSONObject.parseObject(response); + if(!tokenJson.get("code").toString().equals("0")) { + log.error("请求出现异常:" + tokenJson.get("msg") + " " + tokenJson); + } + } + }