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 c3dcda9e0..bca8cb8c2 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 @@ -1,6 +1,7 @@ package com.jero.modules.feishu.service.impl; import cn.hutool.core.util.StrUtil; +import com.alibaba.druid.support.json.JSONUtils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.jero.modules.feishu.service.IFeishuService; @@ -135,7 +136,7 @@ public class FeishuServiceImpl implements IFeishuService { contentSb.append("{"); contentSb.append("\"tag\": \"div\","); contentSb.append("\"text\": {"); - contentSb.append("\"content\": " + feishuMsgVo.getContent() + ","); + contentSb.append("\"content\": \"" + feishuMsgVo.getContent() + "\","); contentSb.append("\"tag\": \"lark_md\""); contentSb.append("}"); contentSb.append("},"); @@ -143,52 +144,55 @@ public class FeishuServiceImpl implements IFeishuService { // 补充tasktype、project、Initiator等的外层 contentSb.append("{"); contentSb.append("\"fields\": ["); - if (StrUtil.isNotEmpty(feishuMsgVo.getTaskType())){ - contentSb.append("{"); - contentSb.append("\"is_short\": false,"); - contentSb.append("\"text\": {"); - contentSb.append("\"content\": \"**Task Type:** " + feishuMsgVo.getTaskType() + "\","); - contentSb.append("\"tag\": \"lark_md\""); - contentSb.append("}"); - contentSb.append("},"); - } + contentSb.append("{"); + contentSb.append("\"is_short\": false,"); + contentSb.append("\"text\": {"); + contentSb.append("\"content\": \"**Task Type:** " + feishuMsgVo.getTaskType() + "\","); + contentSb.append("\"tag\": \"lark_md\""); + contentSb.append("}"); + contentSb.append("}"); + if (StrUtil.isNotEmpty(feishuMsgVo.getRegulationNo())){ + contentSb.append(","); contentSb.append("{"); contentSb.append("\"is_short\": false,"); contentSb.append("\"text\": {"); contentSb.append("\"content\": \"**Regulation No:** " + feishuMsgVo.getRegulationNo() + "\","); contentSb.append("\"tag\": \"lark_md\""); contentSb.append("}"); - contentSb.append("},"); + contentSb.append("}"); } if (StrUtil.isNotEmpty(feishuMsgVo.getProject())){ + contentSb.append(","); contentSb.append("{"); contentSb.append("\"is_short\": false,"); contentSb.append("\"text\": {"); contentSb.append("\"content\": \"**Project:** " + feishuMsgVo.getProject() + "\","); contentSb.append("\"tag\": \"lark_md\""); contentSb.append("}"); - contentSb.append("},"); + contentSb.append("}"); } if (StrUtil.isNotEmpty(feishuMsgVo.getInitiator())){ + contentSb.append(","); contentSb.append("{"); contentSb.append("\"is_short\": false,"); contentSb.append("\"text\": {"); contentSb.append("\"content\": \"**Initiator:** " + feishuMsgVo.getInitiator() + "\","); contentSb.append("\"tag\": \"lark_md\""); contentSb.append("}"); - contentSb.append("},"); + contentSb.append("}"); } if (StrUtil.isNotEmpty(feishuMsgVo.getDueDate())){ + contentSb.append(","); contentSb.append("{"); contentSb.append("\"is_short\": false,"); contentSb.append("\"text\": {"); contentSb.append("\"content\": \"**Due Date:** " + feishuMsgVo.getDueDate() + "\","); contentSb.append("\"tag\": \"lark_md\""); contentSb.append("}"); - contentSb.append("},"); + contentSb.append("}"); } - contentSb.append("]"); + contentSb.append("],"); contentSb.append("\"tag\": \"div\""); contentSb.append("},"); contentSb.append("{\"tag\": \"hr\"},"); @@ -203,7 +207,7 @@ public class FeishuServiceImpl implements IFeishuService { contentSb.append("\"type\": \"primary\","); contentSb.append("\"url\": \" "+ feishuMsgVo.getUrl() +" \""); contentSb.append("}"); - contentSb.append("},"); + contentSb.append("],"); contentSb.append("\"tag\": \"action\""); contentSb.append("}"); contentSb.append("],"); @@ -216,11 +220,13 @@ public class FeishuServiceImpl implements IFeishuService { contentSb.append("}"); contentSb.append("}"); + JSONObject jsonObject = JSONObject.parseObject(contentSb.toString()); + // 设置请求参数 JSONObject paramsMap = new JSONObject(); paramsMap.put("user_ids", userIds); - paramsMap.put("msg_type", "post"); - paramsMap.put("content", contentSb.toString()); + paramsMap.put("msg_type", "interactive"); + paramsMap.put("card", jsonObject); // 发送请求给飞书 String response = HttpRequestUtil.getResponseOfPOST(batchSendMessageUrl, headerMap, paramsMap.toJSONString()); diff --git a/jero-web/src/common/lang/zh-cn.js b/jero-web/src/common/lang/zh-cn.js index 10e0e9956..a0b80bb3f 100644 --- a/jero-web/src/common/lang/zh-cn.js +++ b/jero-web/src/common/lang/zh-cn.js @@ -865,7 +865,7 @@ module.exports = { greenRequirements: '绿:确认符合或满足当前要求', blueUndeterminedState: '蓝:未判断状态', authenticationMessage: '参数收集', - taskRegulationComplianceTask: '任务信息', + taskRegulationComplianceTask: '法规符合性任务', accept: '接受', refuse: '拒绝', taskTermination: '任务终止',