From 775d6a51cbcaaca6a193be2a3a9200d08ec5970a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=BE=99?= Date: Wed, 20 Nov 2024 11:14:02 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20(feature/REQ-3167)=20=20=E5=89=8D?= =?UTF-8?q?=E7=AB=AF=E8=B5=84=E6=BA=90=E8=A1=A8=E5=A2=9E=E5=8A=A0ext?= =?UTF-8?q?=E6=89=A9=E5=B1=95=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .reviewboardrc | 1 + .../repository/entity/SaasPageElement.java | 68 +++++++++++++++++++ .../src/test/resources/mysql/schema.sql | 5 +- 3 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 .reviewboardrc diff --git a/.reviewboardrc b/.reviewboardrc new file mode 100644 index 00000000..9739256a --- /dev/null +++ b/.reviewboardrc @@ -0,0 +1 @@ +REPOSITORY = 'tyr' \ No newline at end of file diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/SaasPageElement.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/SaasPageElement.java index 95cd1994..5c3b839b 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/SaasPageElement.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/SaasPageElement.java @@ -1,10 +1,16 @@ package cn.axzo.tyr.server.repository.entity; import cn.axzo.pokonyan.config.mybatisplus.BaseEntity; +import cn.axzo.tyr.client.model.base.FeatureResourceExtraDO; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler; import lombok.*; +import java.util.List; +import java.util.Optional; + /** * 页面元素表 * @@ -94,4 +100,66 @@ public class SaasPageElement extends BaseEntity { * H5的应用ID */ private String appId; + + /** + * 扩展字段 + */ + @TableField(value = "extra", typeHandler = FastjsonTypeHandler.class) + private JSONObject ext; + + @Data + @Builder + @AllArgsConstructor + @NoArgsConstructor + public static class Ext { + + /** + * 端上的相关信息 + */ + private List terminals; + + public JSONObject toJSONObject() { + return JSONObject.parseObject(JSONObject.toJSONString(this)); + } + } + + @Data + @Builder + @AllArgsConstructor + @NoArgsConstructor + public static class Terminals { + + /** + * 端的系统:ios、android + */ + private String system; + + /** + * 最低版本要求 + */ + private Long minVersion; + + /** + * 最高版本要求 + */ + private Long maxVersion; + + /** + * 是否开启最高版本要求:true-开启;false-关闭 + */ + private Boolean maxVersionEnabled; + } + + public JSONObject normalizedExt() { + return Optional.ofNullable(ext).orElse(new JSONObject()); + } + + public Ext covertToExt() { + return JSONObject.toJavaObject(normalizedExt(), Ext.class); + } + + public JSONObject buildMergedExt(Ext ext) { + return normalizedExt() + .fluentPutAll(ext.toJSONObject()); + } } diff --git a/tyr-server/src/test/resources/mysql/schema.sql b/tyr-server/src/test/resources/mysql/schema.sql index b0911559..ae055b12 100644 --- a/tyr-server/src/test/resources/mysql/schema.sql +++ b/tyr-server/src/test/resources/mysql/schema.sql @@ -312,4 +312,7 @@ CREATE TABLE `permission_rule` ( UNIQUE KEY `uk_permission_rule_name` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COMMENT='权限系统规则定义表'; -alter table saas_role_group add column `path` varchar(255) DEFAULT '0' COMMENT 'ID层级路径, 逗号分隔'; \ No newline at end of file +alter table saas_role_group add column `path` varchar(255) DEFAULT '0' COMMENT 'ID层级路径, 逗号分隔'; + +-- alter table saas_page_element add column `ext` JSON NULL COMMENT '额外信息, 使用json便于查询'; +alter table saas_page_element add column `ext` VARCHAR(2048) NOT NULL DEFAULT '{}' COMMENT '额外信息'; \ No newline at end of file