From 55c235efa0e4fc8e9ffa7d78f0c6c0b349d84d5f Mon Sep 17 00:00:00 2001 From: wangzhijiang <12345678> Date: Mon, 22 Aug 2022 14:40:29 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A3=9E=E4=B9=A6=E4=BA=A4=E4=BA=92-=E5=8F=91?= =?UTF-8?q?=E9=80=81=E9=97=AE=E9=A2=98=E7=9F=A5=E8=AF=86=E5=BA=93=E5=88=86?= =?UTF-8?q?=E7=B1=BB=E8=B4=9F=E8=B4=A3=E4=BA=BA=E5=90=8D=E7=89=87=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/FeishuServiceImpl.java | 133 ++++++++++++------ 1 file changed, 88 insertions(+), 45 deletions(-) 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 0f51306b6..b3367fda2 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 @@ -21,6 +21,7 @@ import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.util.HttpRequestUtil; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -565,69 +566,111 @@ public class FeishuServiceImpl implements IFeishuService { 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" + + //参考:https://open.feishu.cn/tool/cardbuilder?from=openplantform_mcb_entrance + /*String sendJson = "{\n" + " \"header\": {\n" + + " \"template\": \"green\",\n" + " \"title\": {\n" + - " \"tag\": \"plain_text\",\n" + - " \"content\": \"点击下方的分类查看常见问题\"\n" + - " },\n" + - " \"template\": \"green\"\n" + + " \"content\": \"知识库分类负责人\",\n" + + " \"tag\": \"plain_text\"\n" + + " }\n" + + " },\n" + + " \"elements\": [\n" + + " {\n" + + " \"fields\": [\n" + + " {\n" + + " \"is_short\": true,\n" + + " \"text\": {\n" + + " \"content\": \"**\uD83D\uDC64 提交人:**\\n\",\n" + + " \"tag\": \"lark_md\"\n" + + " }\n" + + " }\n" + + " ],\n" + + " \"tag\": \"div\"\n" + + " }\n" + + " ]\n" + + "}";*/ + + String sendJson = "{\n" + + " \"header\": {\n" + + " \"template\": \"green\",\n" + + " \"title\": {\n" + + " \"content\": \"知识库分类负责人\",\n" + + " \"tag\": \"plain_text\"\n" + + " }\n" + " }\n" + "}"; JSONObject jsonObject = JSONObject.parseObject(sendJson); JSONArray elements = new JSONArray(); JSONObject element = new JSONObject(); - element.put("tag","action"); - element.put("layout","bisected"); + JSONArray fields = new JSONArray(); //获取分类 List problemKnowledgeBaseClassifyEOList = this.problemKnowledgeBaseClassifyEOService.list(); this.problemKnowledgeBaseClassifyEOService.disposeData(problemKnowledgeBaseClassifyEOList); - JSONArray actions = new JSONArray(); - - //组装推送过去的点击按钮 + //获取所有分类下的负责人信息 + List chargePersonUserIdList = new ArrayList<>(); 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); + if(StringUtils.isNotEmpty(problemKnowledgeBaseClassifyEO.getChargePersonId())){ + String chargePersonId = problemKnowledgeBaseClassifyEO.getChargePersonId(); + for (String chargePerson : chargePersonId.split(",")) { + chargePersonUserIdList.add(chargePerson); + } + } } - element.put("actions",actions); + if(CollectionUtils.isNotEmpty(chargePersonUserIdList)){ + List chargePersonUserList = this.sysUserService.querySysUserListByIdList(chargePersonUserIdList); + //组装推送过去的知识库负责人信息 + for (ProblemKnowledgeBaseClassifyEO problemKnowledgeBaseClassifyEO : problemKnowledgeBaseClassifyEOList) { + JSONObject field = new JSONObject(); + JSONObject text = new JSONObject(); + StringBuilder atUserSb = new StringBuilder(); - 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); + if(StringUtils.isNotEmpty(problemKnowledgeBaseClassifyEO.getChargePersonId())){ + for (String chargePersonId : problemKnowledgeBaseClassifyEO.getChargePersonId().split(",")) { + for (SysUser sysUser : chargePersonUserList) { + if(StringUtils.equals(chargePersonId,sysUser.getId())){ + String thirdId = sysUser.getThirdId(); + atUserSb.append(""); + atUserSb.append(" "); + } + } + } + } - // 发送请求给飞书 - 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); + text.put("content","问题标签:" + problemKnowledgeBaseClassifyEO.getProblemLabel() + "\n" + "责任人:" + atUserSb.toString()); + text.put("tag","lark_md"); + + field.put("is_short",true); + field.put("text",text); + fields.add(field); + } + + element.put("tag","div"); + element.put("fields",fields); + 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); + } } }