From eab191d9af9e1f26f14389deb170c594e09e0de3 Mon Sep 17 00:00:00 2001 From: YXY <932687738@qq.com> Date: Sun, 12 Mar 2023 17:10:14 +0800 Subject: [PATCH] init base info --- .../com/ruoyi/common/base/LarkRequest.java | 8 +++ .../common/service/LarkOperateAbstract.java | 48 +++++++++++++ .../system/domain/LarkCallbackRequest.java | 11 +++ .../lark/strategy/ApprovalCallback.java | 41 +++++++++++ .../lark/strategy/CallbackAbstract.java | 14 ++++ sql/lark.sql | 69 +++++++++++++++++++ 6 files changed, 191 insertions(+) create mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/base/LarkRequest.java create mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/service/LarkOperateAbstract.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/LarkCallbackRequest.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/lark/strategy/ApprovalCallback.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/lark/strategy/CallbackAbstract.java create mode 100644 sql/lark.sql diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/base/LarkRequest.java b/ruoyi-common/src/main/java/com/ruoyi/common/base/LarkRequest.java new file mode 100644 index 0000000..056e542 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/base/LarkRequest.java @@ -0,0 +1,8 @@ +package com.ruoyi.common.base; + +/** + * @author yuxiangyong + * @create 2023-03-12 16:00 + */ +public class LarkRequest { +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/service/LarkOperateAbstract.java b/ruoyi-common/src/main/java/com/ruoyi/common/service/LarkOperateAbstract.java new file mode 100644 index 0000000..19cacc0 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/service/LarkOperateAbstract.java @@ -0,0 +1,48 @@ +package com.ruoyi.common.service; + +import com.ruoyi.common.base.LarkRequest; +import lombok.extern.slf4j.Slf4j; + +/** + * @author yuxiangyong + * @create 2023-03-12 15:58 + */ +@Slf4j +public abstract class LarkOperateAbstract{ + + public void execute(LarkRequest request){ + try { + if (!check(request)){ + return; + } + businessProcessing(request); + endHandle(request); + }catch (Exception e){ + log.error("{} execute error: {}",getName(),e); + } + } + + /** + * 由子类实现自己的校验逻辑,并输出对应的日志 + * 默认校验通过 + */ + protected Boolean check(LarkRequest request){ + return Boolean.TRUE; + } + + /** + * 实际业务处理阶段 + * @param request 请求参数 + */ + protected abstract void businessProcessing(LarkRequest request); + + /** + * 业务处理完成后的附加操作 + */ + protected void endHandle(LarkRequest request){ + + } + + protected abstract String getName(); + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/LarkCallbackRequest.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/LarkCallbackRequest.java new file mode 100644 index 0000000..5a11647 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/LarkCallbackRequest.java @@ -0,0 +1,11 @@ +package com.ruoyi.system.domain; + +import com.ruoyi.common.base.LarkRequest; + +/** + * @author yuxiangyong + * @create 2023-03-12 16:00 + */ +public class LarkCallbackRequest extends LarkRequest { + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/lark/strategy/ApprovalCallback.java b/ruoyi-system/src/main/java/com/ruoyi/system/lark/strategy/ApprovalCallback.java new file mode 100644 index 0000000..a28a600 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/lark/strategy/ApprovalCallback.java @@ -0,0 +1,41 @@ +package com.ruoyi.system.lark.strategy; + +import com.ruoyi.common.base.LarkRequest; +import com.ruoyi.common.service.LarkOperateAbstract; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * @author yuxiangyong + * @create 2023-03-12 15:58 + */ +@Slf4j +@Component("approvalCallback") +public class ApprovalCallback extends CallbackAbstract { + + @Override + protected Boolean check(LarkRequest request) { + Boolean result = Boolean.FALSE; + + return result; + } + + @Override + protected void businessProcessing(LarkRequest request) { + + } + + @Override + protected void endHandle(LarkRequest request) { + super.endHandle(request); + } + + + + @Override + protected String getName() { + return this.getClass().getSimpleName(); + } + + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/lark/strategy/CallbackAbstract.java b/ruoyi-system/src/main/java/com/ruoyi/system/lark/strategy/CallbackAbstract.java new file mode 100644 index 0000000..f3e061e --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/lark/strategy/CallbackAbstract.java @@ -0,0 +1,14 @@ +package com.ruoyi.system.lark.strategy; + +import com.ruoyi.common.service.LarkOperateAbstract; +import lombok.extern.slf4j.Slf4j; + +/** + * @author yuxiangyong + * @create 2023-03-12 15:58 + */ +@Slf4j +public abstract class CallbackAbstract extends LarkOperateAbstract { + + +} diff --git a/sql/lark.sql b/sql/lark.sql new file mode 100644 index 0000000..3e5b745 --- /dev/null +++ b/sql/lark.sql @@ -0,0 +1,69 @@ +-- 飞书-公司关联表 +CREATE TABLE `lark_company_relation` +( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '唯一主键', + `company_id` bigint DEFAULT NULL COMMENT '公司id', + `company_name` varchar(255) DEFAULT NULL COMMENT '公司名称', + `app_id` varchar(255) NOT NULL COMMENT '飞书的appId', + `secret` varchar(255) NOT NULL COMMENT '公司+appId对应的唯一密钥', + `create_by` varchar(255) NOT NULL, + `create_time` datetime NOT NULL, + `update_by` varchar(255) DEFAULT NULL, + `update_time` datetime DEFAULT NULL, + `flag` tinyint NOT NULL DEFAULT '0' COMMENT '删除标记(0未删除、1已删除)', + `remark` varchar(255) DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`id`) +) ENGINE=InnoDB; +-- AppId-table关联表 +CREATE TABLE `lark_table_relation` +( + `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '唯一主键', + `lark_company_relation_id` BIGINT DEFAULT NULL COMMENT '公司与飞书关联表id', + `from_table_id` VARCHAR(255) DEFAULT NULL COMMENT '来源表', + `to_table_id` VARCHAR(255) DEFAULT NULL COMMENT '对应更新表', + `url` BIGINT DEFAULT NULL COMMENT 'url地址', + `create_by` VARCHAR(255) NOT NULL, + `create_time` datetime NOT NULL, + `update_by` VARCHAR(255) DEFAULT NULL, + `update_time` datetime DEFAULT NULL, + `flag` TINYINT NOT NULL DEFAULT '0' COMMENT '删除标记(0未删除、1已删除)', + `remark` VARCHAR(255) DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`id`) +) ENGINE = INNODB; + +-- 事务操作日志 +CREATE TABLE `event_log` ( + `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '唯一主键', + `table_id` VARCHAR (255) DEFAULT NULL COMMENT '多维表格id', + `record_id` VARCHAR (255) DEFAULT NULL COMMENT '实际行id', + `event_id` VARCHAR (255) DEFAULT NULL COMMENT '实际事务id', + `operate_type` VARCHAR (255) DEFAULT NULL COMMENT '操作类型', + `operate_status` VARCHAR (255) DEFAULT NULL COMMENT '操作编码', + `error_code` VARCHAR (255) DEFAULT NULL COMMENT '错误编码', + `error_message` VARCHAR (255) DEFAULT NULL COMMENT '错误信息', + `create_by` VARCHAR (255) NOT NULL, + `create_time` datetime NOT NULL, + `update_by` VARCHAR (255) DEFAULT NULL, + `update_time` datetime DEFAULT NULL, + `flag` TINYINT NOT NULL DEFAULT '0' COMMENT '删除标记(0未删除、1已删除)', + `remark` VARCHAR (255) DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`id`) +) ENGINE = INNODB; + +-- 事务详情 +CREATE TABLE `event` ( + `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '唯一主键', + `message` text DEFAULT NULL COMMENT '回调信息', + `create_by` VARCHAR (255) NOT NULL, + `create_time` datetime NOT NULL, + `update_by` VARCHAR (255) DEFAULT NULL, + `update_time` datetime DEFAULT NULL, + `flag` VARCHAR (20) NOT NULL COMMENT '状态标记(pending处理中、success成功、faild失败)', + `remark` VARCHAR (255) DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`id`) +) ENGINE = INNODB; + + + + +