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