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