From ecd1567551666509865986a7313e4b5c8473dd90 Mon Sep 17 00:00:00 2001
From: qq787203167 <787203167@qq.com>
Date: Thu, 4 Aug 2022 14:17:00 +0800
Subject: [PATCH 1/3] =?UTF-8?q?=E5=B8=83=E5=B1=80=E7=9F=A5=E8=AF=86?=
=?UTF-8?q?=E5=BA=93?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
jero-web/src/common/lang/en-us.js | 1 +
jero-web/src/common/lang/zh-cn.js | 1 +
.../components/countryCardView.vue | 9 +-
.../components/countryCardViewAdd.vue | 189 ++++++++++++++++++
4 files changed, 198 insertions(+), 2 deletions(-)
create mode 100644 jero-web/src/views/businessSupport/problemKnowledgeBase/components/countryCardViewAdd.vue
diff --git a/jero-web/src/common/lang/en-us.js b/jero-web/src/common/lang/en-us.js
index 355390f1c..5f6504752 100644
--- a/jero-web/src/common/lang/en-us.js
+++ b/jero-web/src/common/lang/en-us.js
@@ -1233,5 +1233,6 @@ module.exports = {
displayInformation:'Display information',
addComparison:'Add comparison',
showOrNot:'Show or not',
+ comparisonMarket:'Comparison Market',
share:'share',
}
\ No newline at end of file
diff --git a/jero-web/src/common/lang/zh-cn.js b/jero-web/src/common/lang/zh-cn.js
index fd8e3409e..42bcd2ad4 100644
--- a/jero-web/src/common/lang/zh-cn.js
+++ b/jero-web/src/common/lang/zh-cn.js
@@ -1336,5 +1336,6 @@ module.exports = {
displayInformation:'展示信息',
addComparison:'添加对比',
showOrNot:'是否展示',
+ comparisonMarket:'对比市场',
share:'分享',
}
\ No newline at end of file
diff --git a/jero-web/src/views/businessSupport/problemKnowledgeBase/components/countryCardView.vue b/jero-web/src/views/businessSupport/problemKnowledgeBase/components/countryCardView.vue
index e2d651aea..0992708af 100644
--- a/jero-web/src/views/businessSupport/problemKnowledgeBase/components/countryCardView.vue
+++ b/jero-web/src/views/businessSupport/problemKnowledgeBase/components/countryCardView.vue
@@ -70,17 +70,19 @@
+
+
+
\ No newline at end of file
From ec5b57fa3916c461a6b8c240f264ee967dae516c Mon Sep 17 00:00:00 2001
From: liyawei
Date: Thu, 4 Aug 2022 14:17:00 +0800
Subject: [PATCH 2/3] =?UTF-8?q?=E8=AE=A4=E8=AF=81-=E4=B8=8A=E6=8A=A5?=
=?UTF-8?q?=E5=BA=93-=E5=8F=82=E6=95=B0=E9=A1=B9=E6=9F=A5=E7=9C=8B-?=
=?UTF-8?q?=E4=BF=9D=E5=AD=98-=E5=8F=AF=E4=BB=A5=E4=BF=AE=E6=94=B9?=
=?UTF-8?q?=E6=A0=87=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../impl/ParamsCollectManifestEOServiceImpl.java | 12 ++++++++++++
.../impl/ParamsReportDetailEOServiceImpl.java | 4 ++--
2 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java
index 9da886739..9efca35d4 100644
--- a/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java
+++ b/jero-boot/jero-boot-module-certification/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java
@@ -1936,6 +1936,18 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl
Date: Thu, 4 Aug 2022 14:27:54 +0800
Subject: [PATCH 3/3] =?UTF-8?q?=E9=97=AE=E9=A2=98=E7=9F=A5=E8=AF=86?=
=?UTF-8?q?=E5=BA=93-country=5Fcard-=E7=AE=A1=E7=90=86=E5=8F=91=E5=B8=83?=
=?UTF-8?q?=E3=80=81=E6=98=8E=E7=BB=86=E5=BC=80=E5=8F=91=E3=80=82=20?=
=?UTF-8?q?=E9=A1=B9=E7=9B=AE=E9=A3=9E=E4=B9=A6=E4=BA=A4=E4=BA=92=E5=BC=80?=
=?UTF-8?q?=E5=8F=91=E3=80=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
jero-boot/db/蔚来标准sql/dev_third_record.sql | 28 +++
.../com/jero/config/shiro/ShiroConfig.java | 3 +
.../feishu/controller/LarkController.java | 91 +++++++++
.../feishu/service/IFeishuService.java | 13 ++
.../service/impl/FeishuServiceImpl.java | 173 ++++++++++++++++++
.../modules/feishu/utils/LarkDecryptUtil.java | 55 ++++++
...ryCardManageReleaseDetailEOController.java | 170 +++++++++++++++++
.../CountryCardManageReleaseEOController.java | 170 +++++++++++++++++
.../CountryCardManageReleaseDetailEO.java | 84 +++++++++
.../entity/CountryCardManageReleaseEO.java | 74 ++++++++
...ountryCardManageReleaseDetailEOMapper.java | 17 ++
.../CountryCardManageReleaseEOMapper.java | 17 ++
...CountryCardManageReleaseDetailEOMapper.xml | 16 ++
.../xml/CountryCardManageReleaseEOMapper.xml | 14 ++
...untryCardManageReleaseDetailEOService.java | 61 ++++++
.../ICountryCardManageReleaseEOService.java | 61 ++++++
...yCardManageReleaseDetailEOServiceImpl.java | 89 +++++++++
...CountryCardManageReleaseEOServiceImpl.java | 89 +++++++++
.../src/main/resources/application-dev.yml | 10 +
19 files changed, 1235 insertions(+)
create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/controller/LarkController.java
create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/utils/LarkDecryptUtil.java
create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/controller/CountryCardManageReleaseDetailEOController.java
create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/controller/CountryCardManageReleaseEOController.java
create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/entity/CountryCardManageReleaseDetailEO.java
create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/entity/CountryCardManageReleaseEO.java
create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/mapper/CountryCardManageReleaseDetailEOMapper.java
create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/mapper/CountryCardManageReleaseEOMapper.java
create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/mapper/xml/CountryCardManageReleaseDetailEOMapper.xml
create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/mapper/xml/CountryCardManageReleaseEOMapper.xml
create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/ICountryCardManageReleaseDetailEOService.java
create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/ICountryCardManageReleaseEOService.java
create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/CountryCardManageReleaseDetailEOServiceImpl.java
create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/CountryCardManageReleaseEOServiceImpl.java
diff --git a/jero-boot/db/蔚来标准sql/dev_third_record.sql b/jero-boot/db/蔚来标准sql/dev_third_record.sql
index f20a9f262..3212dfc50 100644
--- a/jero-boot/db/蔚来标准sql/dev_third_record.sql
+++ b/jero-boot/db/蔚来标准sql/dev_third_record.sql
@@ -692,3 +692,31 @@ CREATE TABLE `laws_weilai`.`problem_knowledge_base_collect` (
`collect_status` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '收藏状态',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '问题知识库收藏表' ROW_FORMAT = Dynamic;
+
+-- 问题知识库-country_card-管理发布表 2022-08-04
+CREATE TABLE `laws_weilai`.`country_card_manage_release` (
+ `id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+ `create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建日期',
+ `update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
+ `update_time` datetime NULL DEFAULT NULL COMMENT '更新日期',
+ `sys_org_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属部门',
+ `apply_market` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '适用市场',
+ `release_status` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '发布状态',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '问题知识库-country_card-管理发布表' ROW_FORMAT = Dynamic;
+
+-- 问题知识库-country_card-管理发布明细表 2022-08-04
+CREATE TABLE `laws_weilai`.`country_card_manage_release_detail` (
+ `id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+ `create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建日期',
+ `update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
+ `update_time` datetime NULL DEFAULT NULL COMMENT '更新日期',
+ `sys_org_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属部门',
+ `country_card_manage_release_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'country_card管理发布表id',
+ `country_card_temp_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模板表id',
+ `description` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '描述',
+ `content` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '内容',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '问题知识库-country_card-管理发布明细表' ROW_FORMAT = Dynamic;
diff --git a/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java b/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java
index a57e7db62..dc48bf546 100644
--- a/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java
+++ b/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java
@@ -151,6 +151,9 @@ public class ShiroConfig {
filterChainDefinitionMap.put("/lawsTechnologyEvaluation/lawsTechnologyEvaluationEO/processCall", "anon");
// 法规技术评估-条款信息评估结果表 工作流处理数据接口排除
filterChainDefinitionMap.put("/lawsTechnologyEvaluation/lawsTechnologyEvaluationItemResultEO/processCall", "anon");
+
+ filterChainDefinitionMap.put("/lark/larkEventSubscriptionConfig", "anon"); //飞书调用接口,事件订阅配置。
+ filterChainDefinitionMap.put("/lark/larkCardMessageConfig", "anon"); //飞书调用接口,卡片消息配置。
filterChainDefinitionMap.put("/sys/user/querySysUserListByIdList", "anon"); // 工作流根据用户idList获取用户信息接口
// 添加自己的过滤器并且取名为jwt
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
new file mode 100644
index 000000000..c7b51528e
--- /dev/null
+++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/controller/LarkController.java
@@ -0,0 +1,91 @@
+package com.jero.modules.feishu.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.jero.modules.feishu.service.IFeishuService;
+import com.jero.modules.feishu.utils.LarkDecryptUtil;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@Api(tags="飞书交互控制层")
+@RestController
+@RequestMapping("/lark")
+@Slf4j
+public class LarkController {
+ @Autowired
+ private IFeishuService feishuService;
+
+ //加密密钥
+ @Value("${Feishu.eventSubscription.encryptKey}")
+ private String encryptKey;
+ /**
+ * 飞书调用接口,飞书事件订阅配置。
+ * @param jsonObject
+ * @return
+ */
+ @PostMapping(value = "/larkEventSubscriptionConfig")
+ public String larkEventSubscriptionConfig(@RequestBody JSONObject jsonObject){
+ String encrypt = jsonObject.getString("encrypt");
+ log.info(encrypt);
+
+ LarkDecryptUtil d = new LarkDecryptUtil(encryptKey);
+
+ String decrypt = null;
+ try {
+ decrypt = d.decrypt(encrypt);
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ }
+ log.info("decrypt:==========================================================" + decrypt);
+
+ //解析密钥json
+ JSONObject decryptJson = JSONObject.parseObject(decrypt);
+ Object event = decryptJson.get("event");
+ if(event != null){
+ JSONObject eventJson = JSONObject.parseObject(decryptJson.get("event").toString());
+
+ // 消息类型 与飞书开放平台文档应该一致
+ String msgType = eventJson.getString("msg_type");
+
+ //如果是文本类型消息,进入处理,
+ if(StringUtils.equals(msgType,"text")){
+ //用户发送的内容
+ String textWithoutAtBot = eventJson.getString("text_without_at_bot");
+ //用户发送的内容 与上方textWithoutAtBot变量一致(迷惑行为,同样的内容,用了两个字段返回)
+ String text = eventJson.getString("text");
+ //用户id
+ String employeeId = eventJson.getString("employee_id");
+
+ //判断用户发送的消息内容,如果包含"知识库" 那么给用户推送知识库分类菜单
+ if(StringUtils.contains(text,"知识库")){
+ log.info("给"+employeeId+"用户推送知识库一级分类菜单:==========================================================");
+ feishuService.sendKnowledgeBaseTypeCard(employeeId.split(","));
+ }
+ }
+ }
+ return decrypt;
+ }
+
+ /**
+ * 飞书卡片消息配置
+ * @param jsonObject
+ * @return
+ */
+ @PostMapping(value = "/larkCardMessageConfig")
+ public JSONObject larkCardMessageConfig(@RequestBody JSONObject jsonObject){
+ JSONObject result = new JSONObject();
+ String challenge = jsonObject.getString("challenge");
+ if(StringUtils.isEmpty(challenge)){
+ this.feishuService.sendKnowledgeBaseInfoCard(jsonObject);
+ }
+ result.put("challenge",challenge);
+ log.info(result.toString());
+ return result;
+ }
+}
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 0a857879d..5c8a8d213 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
@@ -1,5 +1,6 @@
package com.jero.modules.feishu.service;
+import com.alibaba.fastjson.JSONObject;
import com.jero.modules.feishu.vo.FeishuMsgVo;
import java.io.IOException;
@@ -43,4 +44,16 @@ public interface IFeishuService {
* @return
*/
String translateText(Map params);
+
+ /**
+ * 发送知识库分类卡片消息 (用户输入知识库的时候)
+ * @param userIds
+ */
+ void sendKnowledgeBaseTypeCard(String[] userIds);
+
+ /**
+ * 发送知识库信息卡片消息 (用户点击某一个分类的时候)
+ * @param jsonObject
+ */
+ void sendKnowledgeBaseInfoCard(JSONObject jsonObject);
}
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 df3ed86d6..55e6e2429 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
@@ -3,11 +3,13 @@ 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.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.jero.modules.feishu.service.IFeishuService;
import com.jero.modules.feishu.vo.FeishuMsgVo;
import com.jero.modules.system.util.HttpRequestUtil;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@@ -306,4 +308,175 @@ public class FeishuServiceImpl implements IFeishuService {
return result;
}
+ /**
+ * 发送知识库分类卡片消息 (用户输入知识库的时候)
+ * @param userIds
+ */
+ @Override
+ public void sendKnowledgeBaseTypeCard(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" +
+ " }\n" +
+ "}";
+ JSONObject jsonObject = JSONObject.parseObject(sendJson);
+ JSONArray elements = new JSONArray();
+ JSONObject element = new JSONObject();
+ element.put("tag","action");
+ element.put("layout","bisected");
+
+ JSONArray actions = new JSONArray();
+ //组装推送过去的点击按钮
+ for (int i=0; i<5; i++){
+
+ JSONObject buttonObject = new JSONObject();
+ JSONObject text = new JSONObject();
+ JSONObject value = new JSONObject();
+ buttonObject.put("tag","button");
+
+ if(i==0){
+ text.put("tag","plain_text");
+ text.put("content","content1");
+
+ value.put("chosen","chosen1");
+ }
+ if(i==1){
+ text.put("tag","plain_text");
+ text.put("content","content2");
+
+ value.put("chosen","chosen2");
+ }
+ if(i==2){
+ text.put("tag","plain_text");
+ text.put("content","content3");
+
+ value.put("chosen","chosen3");
+ }
+ if(i==3){
+ text.put("tag","plain_text");
+ text.put("content","content4");
+
+ value.put("chosen","chosen4");
+ }
+ if(i==4){
+ text.put("tag","plain_text");
+ text.put("content","content5");
+
+ value.put("chosen","chosen5");
+ }
+ if(i==5){
+ text.put("tag","plain_text");
+ text.put("content","content6");
+
+ value.put("chosen","chosen6");
+ }
+ 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);
+ }
+ }
+
+ @Override
+ public void sendKnowledgeBaseInfoCard(JSONObject jsonObject) {
+ String[] userIds = jsonObject.getString("user_id").split(",");
+ String clickStr = JSONObject.toJSONString(JSONObject.parseObject(JSONObject.toJSONString(jsonObject.get("action"))).get("value"));
+ log.info("用户点击的数据: " + clickStr);
+
+ String sendJson = " ";
+
+ JSONObject clickJson = JSONObject.parseObject(clickStr);
+ if(StringUtils.isNotEmpty(clickJson.getString("chosen"))){
+ sendJson = clickJson.getString("chosen");
+ }
+
+ 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");
+ // 设置消息标题
+ JSONObject zh_cn = new JSONObject();
+ zh_cn.put("title", "title");
+ // 设置消息内容
+ // 第一行
+ JSONObject contentOne = new JSONObject();
+ contentOne.put("tag", "text");
+ contentOne.put("text", sendJson);
+ List contentList = new ArrayList<>();
+ contentList.add(contentOne);
+
+ List> list = new ArrayList<>();
+ list.add(contentList);
+ zh_cn.put("content", list);
+
+ JSONObject post = new JSONObject();
+ post.put("zh_cn", zh_cn);
+ JSONObject contentObj = new JSONObject();
+ contentObj.put("post", post);
+ // 设置请求参数
+ JSONObject paramsMap = new JSONObject();
+ paramsMap.put("user_ids", userIds);
+ paramsMap.put("msg_type", "post");
+ paramsMap.put("content", contentObj);
+ // 发送请求给飞书
+ String response = null;
+ try {
+ response = HttpRequestUtil.getResponseOfPOST(batchSendMessageUrl, headerMap, paramsMap.toJSONString());
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ // 返回结果样例:{"code":0,"data":{"invalid_department_ids":[],"invalid_open_ids":[],"invalid_union_ids":[],"invalid_user_ids":[],"message_id":"bm-d595567e4f448fafe397bc916f0be646"},"msg":"ok"}
+ // 获取返回结果
+ JSONObject tokenJson = JSONObject.parseObject(response);
+ if(!tokenJson.get("code").toString().equals("0")) {
+ log.error("请求出现异常:" + tokenJson.get("msg") + " " + tokenJson);
+ }
+ }
+
}
diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/utils/LarkDecryptUtil.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/utils/LarkDecryptUtil.java
new file mode 100644
index 000000000..8ef4967f1
--- /dev/null
+++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/feishu/utils/LarkDecryptUtil.java
@@ -0,0 +1,55 @@
+package com.jero.modules.feishu.utils;
+
+import javax.crypto.Cipher;
+import javax.crypto.spec.IvParameterSpec;
+import javax.crypto.spec.SecretKeySpec;
+import java.nio.charset.StandardCharsets;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.util.Base64;
+
+/**
+ * 飞书解密工具类
+ * @Author: wzj
+ * @Date: 2022/8/4 10:52
+ **/
+public class LarkDecryptUtil {
+
+ public static void main(String[] args) throws Exception {
+ LarkDecryptUtil d = new LarkDecryptUtil("test key");
+ System.out.println(d.decrypt("P37w+VZImNgPEO1RBhJ6RtKl7n6zymIbEG1pReEzghk=")); //hello world
+ }
+
+ private byte[] keyBs;
+ public LarkDecryptUtil(String key) {
+ MessageDigest digest = null;
+ try {
+ digest = MessageDigest.getInstance("SHA-256");
+ } catch (NoSuchAlgorithmException e) {
+ // won't happen
+ }
+ keyBs = digest.digest(key.getBytes(StandardCharsets.UTF_8));
+ }
+
+ public String decrypt(String base64) throws Exception {
+ byte[] decode = Base64.getDecoder().decode(base64);
+ Cipher cipher = Cipher.getInstance("AES/CBC/NOPADDING");
+ byte[] iv = new byte[16];
+ System.arraycopy(decode, 0, iv, 0, 16);
+ byte[] data = new byte[decode.length - 16];
+ System.arraycopy(decode, 16, data, 0, data.length);
+ cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(keyBs, "AES"), new IvParameterSpec(iv));
+ byte[] r = cipher.doFinal(data);
+ if (r.length > 0) {
+ int p = r.length - 1;
+ for (; p >= 0 && r[p] <= 16; p--) {
+ }
+ if (p != r.length - 1) {
+ byte[] rr = new byte[p + 1];
+ System.arraycopy(r, 0, rr, 0, p + 1);
+ r = rr;
+ }
+ }
+ return new String(r, StandardCharsets.UTF_8);
+ }
+}
diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/controller/CountryCardManageReleaseDetailEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/controller/CountryCardManageReleaseDetailEOController.java
new file mode 100644
index 000000000..685e49453
--- /dev/null
+++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/controller/CountryCardManageReleaseDetailEOController.java
@@ -0,0 +1,170 @@
+package com.jero.modules.problemKnowledgeBase.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import com.jero.common.api.vo.Result;
+import com.jero.common.system.query.QueryGenerator;
+import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseDetailEO;
+import com.jero.modules.problemKnowledgeBase.service.ICountryCardManageReleaseDetailEOService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+import com.jero.common.system.base.controller.JeroController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import com.jero.common.aspect.annotation.AutoLog;
+
+
+ /**
+ * @Description: 问题知识库-country_card-管理发布明细表
+ * @Author: jero-boot
+ * @Date: 2022-08-04
+ * @Version: V1.0
+ */
+@Api(tags="问题知识库-country_card-管理发布明细表")
+@RestController
+@RequestMapping("/problemKnowledgeBase/countryCardManageReleaseDetailEO")
+@Slf4j
+public class CountryCardManageReleaseDetailEOController extends JeroController {
+ @Autowired
+ private ICountryCardManageReleaseDetailEOService countryCardManageReleaseDetailEOService;
+
+ /**
+ * 分页列表查询
+ *
+ * @param countryCardManageReleaseDetailEO
+ * @param pageNo
+ * @param pageSize
+ * @param req
+ * @return
+ */
+ @AutoLog(value = "问题知识库-country_card-管理发布明细表-分页列表查询")
+ @ApiOperation(value="问题知识库-country_card-管理发布明细表-分页列表查询", notes="问题知识库-country_card-管理发布明细表-分页列表查询")
+ @GetMapping(value = "/page")
+ public Result> queryPageList(CountryCardManageReleaseDetailEO countryCardManageReleaseDetailEO,
+ @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+ @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+ HttpServletRequest req) {
+ QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(countryCardManageReleaseDetailEO, req.getParameterMap());
+ Page page = new Page(pageNo, pageSize);
+ IPage pageList = countryCardManageReleaseDetailEOService.page(page, queryWrapper);
+ return Result.OK(pageList);
+ }
+
+ /**
+ * 列表查询
+ *
+ * @return
+ */
+ @AutoLog(value = "问题知识库-country_card-管理发布明细表-列表查询")
+ @ApiOperation(value="问题知识库-country_card-管理发布明细表-列表查询", notes="问题知识库-country_card-管理发布明细表-列表查询")
+ @GetMapping(value = "/list")
+ public Result> queryList() {
+ List list = countryCardManageReleaseDetailEOService.queryList();
+ return Result.OK(list);
+ }
+
+ /**
+ * 添加
+ *
+ * @param countryCardManageReleaseDetailEO
+ * @return
+ */
+ @AutoLog(value = "问题知识库-country_card-管理发布明细表-添加")
+ @ApiOperation(value="问题知识库-country_card-管理发布明细表-添加", notes="问题知识库-country_card-管理发布明细表-添加")
+ @PostMapping(value = "/add")
+ public Result> add(@Validated @RequestBody CountryCardManageReleaseDetailEO countryCardManageReleaseDetailEO) {
+ countryCardManageReleaseDetailEOService.add(countryCardManageReleaseDetailEO);
+ return Result.OK("添加成功!");
+ }
+
+ /**
+ * 编辑
+ *
+ * @param countryCardManageReleaseDetailEO
+ * @return
+ */
+ @AutoLog(value = "问题知识库-country_card-管理发布明细表-编辑")
+ @ApiOperation(value="问题知识库-country_card-管理发布明细表-编辑", notes="问题知识库-country_card-管理发布明细表-编辑")
+ @PutMapping(value = "/edit")
+ public Result> edit(@Validated @RequestBody CountryCardManageReleaseDetailEO countryCardManageReleaseDetailEO) {
+ countryCardManageReleaseDetailEOService.editById(countryCardManageReleaseDetailEO);
+ return Result.OK("编辑成功!");
+ }
+
+ /**
+ * 通过id删除
+ *
+ * @param id
+ * @return
+ */
+ @AutoLog(value = "问题知识库-country_card-管理发布明细表-通过id删除")
+ @ApiOperation(value="问题知识库-country_card-管理发布明细表-通过id删除", notes="问题知识库-country_card-管理发布明细表-通过id删除")
+ @DeleteMapping(value = "/delete")
+ public Result> delete(@RequestParam(name="id",required=true) String id) {
+ countryCardManageReleaseDetailEOService.deleteById(id);
+ return Result.OK("删除成功!");
+ }
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return
+ */
+ @AutoLog(value = "问题知识库-country_card-管理发布明细表-批量删除")
+ @ApiOperation(value="问题知识库-country_card-管理发布明细表-批量删除", notes="问题知识库-country_card-管理发布明细表-批量删除")
+ @DeleteMapping(value = "/deleteBatch")
+ public Result> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+ this.countryCardManageReleaseDetailEOService.deleteByIds(Arrays.asList(ids.split(",")));
+ return Result.OK("批量删除成功!");
+ }
+
+ /**
+ * 通过id查询
+ *
+ * @param id
+ * @return
+ */
+ @AutoLog(value = "问题知识库-country_card-管理发布明细表-通过id查询")
+ @ApiOperation(value="问题知识库-country_card-管理发布明细表-通过id查询", notes="问题知识库-country_card-管理发布明细表-通过id查询")
+ @GetMapping(value = "/queryById")
+ public Result> queryById(@RequestParam(name="id",required=true) String id) {
+ CountryCardManageReleaseDetailEO countryCardManageReleaseDetailEO = countryCardManageReleaseDetailEOService.queryById(id);
+ if(countryCardManageReleaseDetailEO==null) {
+ return Result.error("未找到对应数据");
+ }
+ return Result.OK(countryCardManageReleaseDetailEO);
+ }
+
+ /**
+ * 导出excel
+ *
+ * @param request
+ * @param countryCardManageReleaseDetailEO
+ */
+ @RequestMapping(value = "/exportXls")
+ public ModelAndView exportXls(HttpServletRequest request, CountryCardManageReleaseDetailEO countryCardManageReleaseDetailEO) {
+ return super.exportXls(request, countryCardManageReleaseDetailEO, CountryCardManageReleaseDetailEO.class, "问题知识库-country_card-管理发布明细表");
+ }
+
+ /**
+ * 通过excel导入数据
+ *
+ * @param request
+ * @param response
+ * @return
+ */
+ @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+ public Result> importExcel(HttpServletRequest request, HttpServletResponse response) {
+ return super.importExcel(request, response, CountryCardManageReleaseDetailEO.class);
+ }
+
+}
diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/controller/CountryCardManageReleaseEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/controller/CountryCardManageReleaseEOController.java
new file mode 100644
index 000000000..7504e7c33
--- /dev/null
+++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/controller/CountryCardManageReleaseEOController.java
@@ -0,0 +1,170 @@
+package com.jero.modules.problemKnowledgeBase.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import com.jero.common.api.vo.Result;
+import com.jero.common.system.query.QueryGenerator;
+import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseEO;
+import com.jero.modules.problemKnowledgeBase.service.ICountryCardManageReleaseEOService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+import com.jero.common.system.base.controller.JeroController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import com.jero.common.aspect.annotation.AutoLog;
+
+
+ /**
+ * @Description: 问题知识库-country_card-管理发布表
+ * @Author: jero-boot
+ * @Date: 2022-08-04
+ * @Version: V1.0
+ */
+@Api(tags="问题知识库-country_card-管理发布表")
+@RestController
+@RequestMapping("/problemKnowledgeBase/countryCardManageReleaseEO")
+@Slf4j
+public class CountryCardManageReleaseEOController extends JeroController {
+ @Autowired
+ private ICountryCardManageReleaseEOService countryCardManageReleaseEOService;
+
+ /**
+ * 分页列表查询
+ *
+ * @param countryCardManageReleaseEO
+ * @param pageNo
+ * @param pageSize
+ * @param req
+ * @return
+ */
+ @AutoLog(value = "问题知识库-country_card-管理发布表-分页列表查询")
+ @ApiOperation(value="问题知识库-country_card-管理发布表-分页列表查询", notes="问题知识库-country_card-管理发布表-分页列表查询")
+ @GetMapping(value = "/page")
+ public Result> queryPageList(CountryCardManageReleaseEO countryCardManageReleaseEO,
+ @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+ @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+ HttpServletRequest req) {
+ QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(countryCardManageReleaseEO, req.getParameterMap());
+ Page page = new Page(pageNo, pageSize);
+ IPage pageList = countryCardManageReleaseEOService.page(page, queryWrapper);
+ return Result.OK(pageList);
+ }
+
+ /**
+ * 列表查询
+ *
+ * @return
+ */
+ @AutoLog(value = "问题知识库-country_card-管理发布表-列表查询")
+ @ApiOperation(value="问题知识库-country_card-管理发布表-列表查询", notes="问题知识库-country_card-管理发布表-列表查询")
+ @GetMapping(value = "/list")
+ public Result> queryList() {
+ List list = countryCardManageReleaseEOService.queryList();
+ return Result.OK(list);
+ }
+
+ /**
+ * 添加
+ *
+ * @param countryCardManageReleaseEO
+ * @return
+ */
+ @AutoLog(value = "问题知识库-country_card-管理发布表-添加")
+ @ApiOperation(value="问题知识库-country_card-管理发布表-添加", notes="问题知识库-country_card-管理发布表-添加")
+ @PostMapping(value = "/add")
+ public Result> add(@Validated @RequestBody CountryCardManageReleaseEO countryCardManageReleaseEO) {
+ countryCardManageReleaseEOService.add(countryCardManageReleaseEO);
+ return Result.OK("添加成功!");
+ }
+
+ /**
+ * 编辑
+ *
+ * @param countryCardManageReleaseEO
+ * @return
+ */
+ @AutoLog(value = "问题知识库-country_card-管理发布表-编辑")
+ @ApiOperation(value="问题知识库-country_card-管理发布表-编辑", notes="问题知识库-country_card-管理发布表-编辑")
+ @PutMapping(value = "/edit")
+ public Result> edit(@Validated @RequestBody CountryCardManageReleaseEO countryCardManageReleaseEO) {
+ countryCardManageReleaseEOService.editById(countryCardManageReleaseEO);
+ return Result.OK("编辑成功!");
+ }
+
+ /**
+ * 通过id删除
+ *
+ * @param id
+ * @return
+ */
+ @AutoLog(value = "问题知识库-country_card-管理发布表-通过id删除")
+ @ApiOperation(value="问题知识库-country_card-管理发布表-通过id删除", notes="问题知识库-country_card-管理发布表-通过id删除")
+ @DeleteMapping(value = "/delete")
+ public Result> delete(@RequestParam(name="id",required=true) String id) {
+ countryCardManageReleaseEOService.deleteById(id);
+ return Result.OK("删除成功!");
+ }
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return
+ */
+ @AutoLog(value = "问题知识库-country_card-管理发布表-批量删除")
+ @ApiOperation(value="问题知识库-country_card-管理发布表-批量删除", notes="问题知识库-country_card-管理发布表-批量删除")
+ @DeleteMapping(value = "/deleteBatch")
+ public Result> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+ this.countryCardManageReleaseEOService.deleteByIds(Arrays.asList(ids.split(",")));
+ return Result.OK("批量删除成功!");
+ }
+
+ /**
+ * 通过id查询
+ *
+ * @param id
+ * @return
+ */
+ @AutoLog(value = "问题知识库-country_card-管理发布表-通过id查询")
+ @ApiOperation(value="问题知识库-country_card-管理发布表-通过id查询", notes="问题知识库-country_card-管理发布表-通过id查询")
+ @GetMapping(value = "/queryById")
+ public Result> queryById(@RequestParam(name="id",required=true) String id) {
+ CountryCardManageReleaseEO countryCardManageReleaseEO = countryCardManageReleaseEOService.queryById(id);
+ if(countryCardManageReleaseEO==null) {
+ return Result.error("未找到对应数据");
+ }
+ return Result.OK(countryCardManageReleaseEO);
+ }
+
+ /**
+ * 导出excel
+ *
+ * @param request
+ * @param countryCardManageReleaseEO
+ */
+ @RequestMapping(value = "/exportXls")
+ public ModelAndView exportXls(HttpServletRequest request, CountryCardManageReleaseEO countryCardManageReleaseEO) {
+ return super.exportXls(request, countryCardManageReleaseEO, CountryCardManageReleaseEO.class, "问题知识库-country_card-管理发布表");
+ }
+
+ /**
+ * 通过excel导入数据
+ *
+ * @param request
+ * @param response
+ * @return
+ */
+ @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+ public Result> importExcel(HttpServletRequest request, HttpServletResponse response) {
+ return super.importExcel(request, response, CountryCardManageReleaseEO.class);
+ }
+
+}
diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/entity/CountryCardManageReleaseDetailEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/entity/CountryCardManageReleaseDetailEO.java
new file mode 100644
index 000000000..6df383189
--- /dev/null
+++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/entity/CountryCardManageReleaseDetailEO.java
@@ -0,0 +1,84 @@
+package com.jero.modules.problemKnowledgeBase.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import com.jero.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+
+
+/**
+ * @Description: 问题知识库-country_card-管理发布明细表
+ * @Author: jero-boot
+ * @Date: 2022-08-04
+ * @Version: V1.0
+ */
+@Data
+@TableName("country_card_manage_release_detail")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="country_card_manage_release_detail对象", description="问题知识库-country_card-管理发布明细表")
+public class CountryCardManageReleaseDetailEO implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**主键*/
+ @TableId(type = IdType.ASSIGN_ID)
+ @ApiModelProperty(value = "主键")
+ private java.lang.String id;
+
+ /**创建人*/
+ @ApiModelProperty(value = "创建人")
+ private java.lang.String createBy;
+
+ /**创建日期*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "创建日期")
+ private java.util.Date createTime;
+
+ /**更新人*/
+ @ApiModelProperty(value = "更新人")
+ private java.lang.String updateBy;
+
+ /**更新日期*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "更新日期")
+ private java.util.Date updateTime;
+
+ /**所属部门*/
+ @ApiModelProperty(value = "所属部门")
+ private java.lang.String sysOrgCode;
+
+ /**country_card管理发布表id*/
+ @Excel(name = "country_card管理发布表id", width = 15)
+ @ApiModelProperty(value = "country_card管理发布表id")
+ private java.lang.String countryCardManageReleaseId;
+
+ /**模板表id*/
+ @Excel(name = "模板表id", width = 15)
+ @ApiModelProperty(value = "模板表id")
+ private java.lang.String countryCardTempId;
+
+ /**描述*/
+ @Excel(name = "描述", width = 15)
+ @ApiModelProperty(value = "描述")
+ private java.lang.String description;
+
+ /**内容*/
+ @Excel(name = "内容", width = 15)
+ @ApiModelProperty(value = "内容")
+ private java.lang.String content;
+
+}
diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/entity/CountryCardManageReleaseEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/entity/CountryCardManageReleaseEO.java
new file mode 100644
index 000000000..03b247fc6
--- /dev/null
+++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/entity/CountryCardManageReleaseEO.java
@@ -0,0 +1,74 @@
+package com.jero.modules.problemKnowledgeBase.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import com.jero.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+
+
+/**
+ * @Description: 问题知识库-country_card-管理发布表
+ * @Author: jero-boot
+ * @Date: 2022-08-04
+ * @Version: V1.0
+ */
+@Data
+@TableName("country_card_manage_release")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="country_card_manage_release对象", description="问题知识库-country_card-管理发布表")
+public class CountryCardManageReleaseEO implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**主键*/
+ @TableId(type = IdType.ASSIGN_ID)
+ @ApiModelProperty(value = "主键")
+ private java.lang.String id;
+
+ /**创建人*/
+ @ApiModelProperty(value = "创建人")
+ private java.lang.String createBy;
+
+ /**创建日期*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "创建日期")
+ private java.util.Date createTime;
+
+ /**更新人*/
+ @ApiModelProperty(value = "更新人")
+ private java.lang.String updateBy;
+
+ /**更新日期*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "更新日期")
+ private java.util.Date updateTime;
+
+ /**所属部门*/
+ @ApiModelProperty(value = "所属部门")
+ private java.lang.String sysOrgCode;
+
+ /**适用市场*/
+ @Excel(name = "适用市场", width = 15)
+ @ApiModelProperty(value = "适用市场")
+ private java.lang.String applyMarket;
+
+ /**发布状态*/
+ @Excel(name = "发布状态", width = 15)
+ @ApiModelProperty(value = "发布状态")
+ private java.lang.String releaseStatus;
+
+}
diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/mapper/CountryCardManageReleaseDetailEOMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/mapper/CountryCardManageReleaseDetailEOMapper.java
new file mode 100644
index 000000000..90b7d3ab5
--- /dev/null
+++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/mapper/CountryCardManageReleaseDetailEOMapper.java
@@ -0,0 +1,17 @@
+package com.jero.modules.problemKnowledgeBase.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseDetailEO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 问题知识库-country_card-管理发布明细表
+ * @Author: jero-boot
+ * @Date: 2022-08-04
+ * @Version: V1.0
+ */
+public interface CountryCardManageReleaseDetailEOMapper extends BaseMapper {
+
+}
diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/mapper/CountryCardManageReleaseEOMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/mapper/CountryCardManageReleaseEOMapper.java
new file mode 100644
index 000000000..1785a2ecf
--- /dev/null
+++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/mapper/CountryCardManageReleaseEOMapper.java
@@ -0,0 +1,17 @@
+package com.jero.modules.problemKnowledgeBase.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseEO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 问题知识库-country_card-管理发布表
+ * @Author: jero-boot
+ * @Date: 2022-08-04
+ * @Version: V1.0
+ */
+public interface CountryCardManageReleaseEOMapper extends BaseMapper {
+
+}
diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/mapper/xml/CountryCardManageReleaseDetailEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/mapper/xml/CountryCardManageReleaseDetailEOMapper.xml
new file mode 100644
index 000000000..e1ba89471
--- /dev/null
+++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/mapper/xml/CountryCardManageReleaseDetailEOMapper.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/mapper/xml/CountryCardManageReleaseEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/mapper/xml/CountryCardManageReleaseEOMapper.xml
new file mode 100644
index 000000000..24321aefd
--- /dev/null
+++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/mapper/xml/CountryCardManageReleaseEOMapper.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/ICountryCardManageReleaseDetailEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/ICountryCardManageReleaseDetailEOService.java
new file mode 100644
index 000000000..9d078df1b
--- /dev/null
+++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/ICountryCardManageReleaseDetailEOService.java
@@ -0,0 +1,61 @@
+package com.jero.modules.problemKnowledgeBase.service;
+
+import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseDetailEO;
+import com.baomidou.mybatisplus.extension.service.IService;
+import java.util.List;
+
+/**
+ * @Description: 问题知识库-country_card-管理发布明细表
+ * @Author: jero-boot
+ * @Date: 2022-08-04
+ * @Version: V1.0
+ */
+public interface ICountryCardManageReleaseDetailEOService extends IService {
+
+ /**
+ * 保存
+ *
+ * @param countryCardManageReleaseDetailEO
+ * @return
+ */
+ void add(CountryCardManageReleaseDetailEO countryCardManageReleaseDetailEO);
+
+ /**
+ * 更新
+ *
+ * @param countryCardManageReleaseDetailEO
+ * @return
+ */
+ void editById(CountryCardManageReleaseDetailEO countryCardManageReleaseDetailEO);
+
+ /**
+ * 通过id删除
+ *
+ * @param id
+ * @return
+ */
+ void deleteById(String id);
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return
+ */
+ void deleteByIds(List ids);
+
+ /**
+ * 通过id查询
+ *
+ * @param id
+ * @return
+ */
+ CountryCardManageReleaseDetailEO queryById(String id);
+
+ /**
+ * 列表查询
+ *
+ * @return
+ */
+ List queryList();
+}
diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/ICountryCardManageReleaseEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/ICountryCardManageReleaseEOService.java
new file mode 100644
index 000000000..e5958d1e2
--- /dev/null
+++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/ICountryCardManageReleaseEOService.java
@@ -0,0 +1,61 @@
+package com.jero.modules.problemKnowledgeBase.service;
+
+import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseEO;
+import com.baomidou.mybatisplus.extension.service.IService;
+import java.util.List;
+
+/**
+ * @Description: 问题知识库-country_card-管理发布表
+ * @Author: jero-boot
+ * @Date: 2022-08-04
+ * @Version: V1.0
+ */
+public interface ICountryCardManageReleaseEOService extends IService {
+
+ /**
+ * 保存
+ *
+ * @param countryCardManageReleaseEO
+ * @return
+ */
+ void add(CountryCardManageReleaseEO countryCardManageReleaseEO);
+
+ /**
+ * 更新
+ *
+ * @param countryCardManageReleaseEO
+ * @return
+ */
+ void editById(CountryCardManageReleaseEO countryCardManageReleaseEO);
+
+ /**
+ * 通过id删除
+ *
+ * @param id
+ * @return
+ */
+ void deleteById(String id);
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return
+ */
+ void deleteByIds(List ids);
+
+ /**
+ * 通过id查询
+ *
+ * @param id
+ * @return
+ */
+ CountryCardManageReleaseEO queryById(String id);
+
+ /**
+ * 列表查询
+ *
+ * @return
+ */
+ List queryList();
+}
diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/CountryCardManageReleaseDetailEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/CountryCardManageReleaseDetailEOServiceImpl.java
new file mode 100644
index 000000000..af3a13a20
--- /dev/null
+++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/CountryCardManageReleaseDetailEOServiceImpl.java
@@ -0,0 +1,89 @@
+package com.jero.modules.problemKnowledgeBase.service.impl;
+
+import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseDetailEO;
+import com.jero.modules.problemKnowledgeBase.mapper.CountryCardManageReleaseDetailEOMapper;
+import com.jero.modules.problemKnowledgeBase.service.ICountryCardManageReleaseDetailEOService;
+import org.springframework.stereotype.Service;
+import java.util.List;
+import java.util.Date;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: 问题知识库-country_card-管理发布明细表
+ * @Author: jero-boot
+ * @Date: 2022-08-04
+ * @Version: V1.0
+ */
+@Service
+public class CountryCardManageReleaseDetailEOServiceImpl extends ServiceImpl implements ICountryCardManageReleaseDetailEOService {
+
+ /**
+ * 保存
+ *
+ * @param countryCardManageReleaseDetailEO
+ * @return
+ */
+ @Override
+ public void add(CountryCardManageReleaseDetailEO countryCardManageReleaseDetailEO) {
+ Date now = new Date();
+ countryCardManageReleaseDetailEO.setCreateTime(now);
+ countryCardManageReleaseDetailEO.setUpdateTime(now);
+ save(countryCardManageReleaseDetailEO);
+ }
+
+ /**
+ * 更新
+ *
+ * @param countryCardManageReleaseDetailEO
+ * @return
+ */
+ @Override
+ public void editById(CountryCardManageReleaseDetailEO countryCardManageReleaseDetailEO) {
+ Date now = new Date();
+ countryCardManageReleaseDetailEO.setUpdateTime(now);
+ saveOrUpdate(countryCardManageReleaseDetailEO);
+ }
+
+ /**
+ * 通过id删除
+ *
+ * @param id
+ * @return
+ */
+ @Override
+ public void deleteById(String id) {
+ removeById(id);
+ }
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return
+ */
+ @Override
+ public void deleteByIds(List ids) {
+ removeByIds(ids);
+ }
+
+ /**
+ * 通过id查询
+ *
+ * @param id
+ * @return
+ */
+ @Override
+ public CountryCardManageReleaseDetailEO queryById(String id) {
+ return getById(id);
+ }
+
+ /**
+ * 列表查询
+ *
+ * @return
+ */
+ @Override
+ public List queryList() {
+ return list();
+ }
+}
diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/CountryCardManageReleaseEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/CountryCardManageReleaseEOServiceImpl.java
new file mode 100644
index 000000000..2dbad6d0c
--- /dev/null
+++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/problemKnowledgeBase/service/impl/CountryCardManageReleaseEOServiceImpl.java
@@ -0,0 +1,89 @@
+package com.jero.modules.problemKnowledgeBase.service.impl;
+
+import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseEO;
+import com.jero.modules.problemKnowledgeBase.mapper.CountryCardManageReleaseEOMapper;
+import com.jero.modules.problemKnowledgeBase.service.ICountryCardManageReleaseEOService;
+import org.springframework.stereotype.Service;
+import java.util.List;
+import java.util.Date;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: 问题知识库-country_card-管理发布表
+ * @Author: jero-boot
+ * @Date: 2022-08-04
+ * @Version: V1.0
+ */
+@Service
+public class CountryCardManageReleaseEOServiceImpl extends ServiceImpl implements ICountryCardManageReleaseEOService {
+
+ /**
+ * 保存
+ *
+ * @param countryCardManageReleaseEO
+ * @return
+ */
+ @Override
+ public void add(CountryCardManageReleaseEO countryCardManageReleaseEO) {
+ Date now = new Date();
+ countryCardManageReleaseEO.setCreateTime(now);
+ countryCardManageReleaseEO.setUpdateTime(now);
+ save(countryCardManageReleaseEO);
+ }
+
+ /**
+ * 更新
+ *
+ * @param countryCardManageReleaseEO
+ * @return
+ */
+ @Override
+ public void editById(CountryCardManageReleaseEO countryCardManageReleaseEO) {
+ Date now = new Date();
+ countryCardManageReleaseEO.setUpdateTime(now);
+ saveOrUpdate(countryCardManageReleaseEO);
+ }
+
+ /**
+ * 通过id删除
+ *
+ * @param id
+ * @return
+ */
+ @Override
+ public void deleteById(String id) {
+ removeById(id);
+ }
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return
+ */
+ @Override
+ public void deleteByIds(List ids) {
+ removeByIds(ids);
+ }
+
+ /**
+ * 通过id查询
+ *
+ * @param id
+ * @return
+ */
+ @Override
+ public CountryCardManageReleaseEO queryById(String id) {
+ return getById(id);
+ }
+
+ /**
+ * 列表查询
+ *
+ * @return
+ */
+ @Override
+ public List queryList() {
+ return list();
+ }
+}
diff --git a/jero-boot/jero-boot-single-startup/src/main/resources/application-dev.yml b/jero-boot/jero-boot-single-startup/src/main/resources/application-dev.yml
index 79646a533..d8af54a19 100644
--- a/jero-boot/jero-boot-single-startup/src/main/resources/application-dev.yml
+++ b/jero-boot/jero-boot-single-startup/src/main/resources/application-dev.yml
@@ -413,15 +413,25 @@ Feishu:
# appId: cli_a16d47ca9f381013
# appSecret: DSfCrj70xku2VUjqwHBIuuY6HZnz7ppe
+ # wzj测试账号配置
appId: cli_a25c9fdae5bc100c
appSecret: zIS7BLzcWaFvlpdz7CqRJbwVml4g4ESy
+ # 事件订阅配置
+ eventSubscription:
+ # 加密密钥
+ encryptKey: EKdOsbNapPj0EFdFiBIINfn5FQrZ2QvQ
# 正式
# appId: cli_a2a1a6014679500d
# appSecret: AeHwisC82S0fhiREJg6bkdxhIZMevnZZ
+ # 事件订阅配置
+ #eventSubscription:
+ # 加密密钥 需要登录这个正式飞书账号,去事件订阅中获取
+ #encryptKey:
getTenantAccessTokenUrl: https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal
batchSendMessageUrl: https://open.feishu.cn/open-apis/message/v4/batch_send/
translateTextUrl: https://open.feishu.cn/open-apis/translation/v1/text/translate
+
local-tool:
uri: http://139.9.235.66:9022
opensso: