From 45396f2dc23b4de47912c1d77b05711c839672ce Mon Sep 17 00:00:00 2001 From: Charles7c Date: Mon, 27 May 2024 23:55:57 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=B3=BB=E7=BB=9F=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E8=A1=A8=E7=BB=93=E6=9E=84=E6=96=B0=E5=A2=9EID?= =?UTF-8?q?=E3=80=81=E7=B1=BB=E5=88=AB=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/system/model/entity/OptionDO.java | 26 ++++--------- .../admin/system/model/query/OptionQuery.java | 9 ++++- .../changelog/mysql/continew-admin_data.sql | 37 +++++++++++-------- .../changelog/mysql/continew-admin_table.sql | 5 ++- .../postgresql/continew-admin_data.sql | 37 +++++++++++-------- .../postgresql/continew-admin_table.sql | 8 +++- 6 files changed, 68 insertions(+), 54 deletions(-) diff --git a/continew-admin-system/src/main/java/top/continew/admin/system/model/entity/OptionDO.java b/continew-admin-system/src/main/java/top/continew/admin/system/model/entity/OptionDO.java index 34d7a874..40944636 100644 --- a/continew-admin-system/src/main/java/top/continew/admin/system/model/entity/OptionDO.java +++ b/continew-admin-system/src/main/java/top/continew/admin/system/model/entity/OptionDO.java @@ -16,15 +16,11 @@ package top.continew.admin.system.model.entity; -import com.baomidou.mybatisplus.annotation.FieldFill; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; +import top.continew.starter.extension.crud.model.entity.BaseUpdateDO; import java.io.Serial; -import java.io.Serializable; -import java.time.LocalDateTime; /** * 参数实体 @@ -34,11 +30,16 @@ import java.time.LocalDateTime; */ @Data @TableName("sys_option") -public class OptionDO implements Serializable { +public class OptionDO extends BaseUpdateDO { @Serial private static final long serialVersionUID = 1L; + /** + * 类别 + */ + private String category; + /** * 名称 */ @@ -47,7 +48,6 @@ public class OptionDO implements Serializable { /** * 键 */ - @TableId private String code; /** @@ -64,16 +64,4 @@ public class OptionDO implements Serializable { * 描述 */ private String description; - - /** - * 修改人 - */ - @TableField(fill = FieldFill.UPDATE) - private Long updateUser; - - /** - * 修改时间 - */ - @TableField(fill = FieldFill.UPDATE) - private LocalDateTime updateTime; } diff --git a/continew-admin-system/src/main/java/top/continew/admin/system/model/query/OptionQuery.java b/continew-admin-system/src/main/java/top/continew/admin/system/model/query/OptionQuery.java index d84d11f3..e24a52f8 100644 --- a/continew-admin-system/src/main/java/top/continew/admin/system/model/query/OptionQuery.java +++ b/continew-admin-system/src/main/java/top/continew/admin/system/model/query/OptionQuery.java @@ -17,7 +17,6 @@ package top.continew.admin.system.model.query; import io.swagger.v3.oas.annotations.media.Schema; -import jakarta.validation.constraints.NotEmpty; import lombok.Data; import top.continew.starter.data.core.annotation.Query; import top.continew.starter.data.core.enums.QueryType; @@ -43,7 +42,13 @@ public class OptionQuery implements Serializable { * 键列表 */ @Schema(description = "键列表", example = "site_title,site_copyright") - @NotEmpty(message = "键不能为空") @Query(type = QueryType.IN) private List code; + + /** + * 类别 + */ + @Schema(description = "类别", example = "SITE") + @Query + private String category; } \ No newline at end of file diff --git a/continew-admin-webapi/src/main/resources/db/changelog/mysql/continew-admin_data.sql b/continew-admin-webapi/src/main/resources/db/changelog/mysql/continew-admin_data.sql index b5c0718c..749b35fb 100644 --- a/continew-admin-webapi/src/main/resources/db/changelog/mysql/continew-admin_data.sql +++ b/continew-admin-webapi/src/main/resources/db/changelog/mysql/continew-admin_data.sql @@ -107,22 +107,29 @@ VALUES -- 初始化默认参数 INSERT INTO `sys_option` -(`name`, `code`, `value`, `default_value`, `description`, `update_user`, `update_time`) +(`id`, `category`, `name`, `code`, `value`, `default_value`, `description`, `update_user`, `update_time`) VALUES -('系统标题', 'SITE_TITLE', NULL, 'ContiNew Admin', '用于显示登录页面的系统标题。', NULL, NULL), -('版权信息', 'SITE_COPYRIGHT', NULL, - 'Copyright © 2022-present Charles7c  ContiNew Admin  津ICP备2022005864号-3', - '用于显示登录页面的底部版权信息。', NULL, NULL), -('系统LOGO(16*16)', 'SITE_FAVICON', NULL, '/favicon.ico', '用于显示浏览器地址栏的系统LOGO。', NULL, NULL), -('系统LOGO(33*33)', 'SITE_LOGO', NULL, '/logo.svg', '用于显示登录页面的系统LOGO。', NULL, NULL), -('登录密码错误锁定账号的次数', 'PASSWORD_ERROR_LOCK_COUNT', NULL, '5', '取值范围为 0-10(0 表示不锁定)。', NULL, NULL), -('登录密码错误锁定账号的时间(min)', 'PASSWORD_ERROR_LOCK_MINUTES', NULL, '5', '取值范围为 1-1440(一天)。', NULL, NULL), -('密码有效期(天)', 'PASSWORD_EXPIRATION_DAYS', NULL, '0', '取值范围为 0-999(0 表示永久有效)。', NULL, NULL), -('密码到期提前提示(天)', 'PASSWORD_EXPIRATION_WARNING_DAYS', NULL, '0', '密码到期 N 天前进行提示(0 表示不提示)。', NULL, NULL), -('密码重复使用规则', 'PASSWORD_REUSE_POLICY', NULL, '5', '不允许使用最近 N 次密码,取值范围为 3-32。', NULL, NULL), -('密码最小长度', 'PASSWORD_MIN_LENGTH', NULL, '8', '取值范围为 8-32。', NULL, NULL), -('密码是否允许包含正反序账号名', 'PASSWORD_ALLOW_CONTAIN_USERNAME', NULL, '1', '', NULL, NULL), -('密码是否必须包含特殊字符', 'PASSWORD_CONTAIN_SPECIAL_CHARACTERS', NULL, '0', '', NULL, NULL); +(1, 'SITE', '系统标题', 'SITE_TITLE', NULL, 'ContiNew Admin', '用于显示登录页面的系统标题。', NULL, NULL), +(2, 'SITE', '系统描述', 'SITE_DESCRIPTION', NULL, '持续迭代优化的前后端分离中后台管理系统框架', NULL, NULL, NULL), +(3, 'SITE', '版权信息', 'SITE_COPYRIGHT', NULL, 'Copyright © 2022 - present ContiNew Admin 版权所有', '用于显示登录页面的底部版权信息。', NULL, NULL), +(4, 'SITE', '备案号', 'SITE_BEIAN', NULL, '津ICP备2022005864号-3', 'ICP备案号', NULL, NULL), +(5, 'SITE', 'favicon', 'SITE_FAVICON', NULL, '/favicon.ico', '用于显示浏览器地址栏的系统LOGO。', NULL, NULL), +(6, 'SITE', '系统LOGO', 'SITE_LOGO', NULL, '/logo.svg', '用于显示登录页面的系统LOGO。', NULL, NULL), +(7, 'PASSWORD', '登录密码错误锁定账号的次数', 'PASSWORD_ERROR_LOCK_COUNT', NULL, '5', '取值范围为 0-10(0 表示不锁定)。', NULL, NULL), +(8, 'PASSWORD', '登录密码错误锁定账号的时间(min)', 'PASSWORD_ERROR_LOCK_MINUTES', NULL, '5', '取值范围为 1-1440(一天)。', NULL, NULL), +(9, 'PASSWORD', '密码有效期(天)', 'PASSWORD_EXPIRATION_DAYS', NULL, '0', '取值范围为 0-999(0 表示永久有效)。', NULL, NULL), +(10, 'PASSWORD', '密码到期提前提示(天)', 'PASSWORD_EXPIRATION_WARNING_DAYS', NULL, '0', '密码到期 N 天前进行提示(0 表示不提示)。', NULL, NULL), +(11, 'PASSWORD', '密码重复使用规则', 'PASSWORD_REUSE_POLICY', NULL, '3', '不允许使用最近 N 次密码,取值范围为 3-32。', NULL, NULL), +(12, 'PASSWORD', '密码最小长度', 'PASSWORD_MIN_LENGTH', NULL, '8', '取值范围为 8-32。', NULL, NULL), +(13, 'PASSWORD', '密码是否允许包含正反序账号名', 'PASSWORD_ALLOW_CONTAIN_USERNAME', NULL, '1', NULL, NULL, NULL), +(14, 'PASSWORD', '密码是否必须包含特殊字符', 'PASSWORD_CONTAIN_SPECIAL_CHARACTERS', NULL, '0', NULL, NULL, NULL), +(15, 'MAIL', '发件人邮箱', 'MAIL_FROM', NULL, 'charles7c@126.com', NULL, NULL, NULL), +(16, 'MAIL', 'SMTP服务器', 'MAIL_SMTP_HOST', NULL, 'smtp.126.com', NULL, NULL, NULL), +(17, 'MAIL', 'SMTP端口', 'MAIL_SMTP_PORT', NULL, '465', NULL, NULL, NULL), +(18, 'MAIL', 'SMTP用户名', 'MAIL_SMTP_USERNAME', NULL, 'charles7c@126.com', NULL, NULL, NULL), +(19, 'MAIL', 'SMTP密码', 'MAIL_SMTP_PASSWORD', NULL, NULL, NULL, NULL, NULL), +(20, 'MAIL', '是否启用SSL', 'MAIL_SSL_ENABLED', NULL, '1', NULL, NULL, NULL), +(21, 'MAIL', 'SSL端口', 'MAIL_SSL_PORT', NULL, '465', NULL, NULL, NULL); -- 初始化默认字典 INSERT INTO `sys_dict` diff --git a/continew-admin-webapi/src/main/resources/db/changelog/mysql/continew-admin_table.sql b/continew-admin-webapi/src/main/resources/db/changelog/mysql/continew-admin_table.sql index 5533915d..22ce9287 100644 --- a/continew-admin-webapi/src/main/resources/db/changelog/mysql/continew-admin_table.sql +++ b/continew-admin-webapi/src/main/resources/db/changelog/mysql/continew-admin_table.sql @@ -133,6 +133,8 @@ CREATE TABLE IF NOT EXISTS `sys_role_dept` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色和部门关联表'; CREATE TABLE IF NOT EXISTS `sys_option` ( + `id` bigint(20) NOT NULL COMMENT 'ID', + `category` varchar(50) DEFAULT NULL COMMENT '类别', `name` varchar(50) NOT NULL COMMENT '名称', `code` varchar(100) NOT NULL COMMENT '键', `value` text DEFAULT NULL COMMENT '值', @@ -140,7 +142,8 @@ CREATE TABLE IF NOT EXISTS `sys_option` ( `description` varchar(200) DEFAULT NULL COMMENT '描述', `update_user` bigint(20) DEFAULT NULL COMMENT '修改人', `update_time` datetime DEFAULT NULL COMMENT '修改时间', - PRIMARY KEY (`code`) USING BTREE + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `uk_category_code`(`category`, `code`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='参数表'; CREATE TABLE IF NOT EXISTS `sys_dict` ( diff --git a/continew-admin-webapi/src/main/resources/db/changelog/postgresql/continew-admin_data.sql b/continew-admin-webapi/src/main/resources/db/changelog/postgresql/continew-admin_data.sql index 37b1670c..d97dfed6 100644 --- a/continew-admin-webapi/src/main/resources/db/changelog/postgresql/continew-admin_data.sql +++ b/continew-admin-webapi/src/main/resources/db/changelog/postgresql/continew-admin_data.sql @@ -107,22 +107,29 @@ VALUES -- 初始化默认参数 INSERT INTO "sys_option" -("name", "code", "value", "default_value", "description", "update_user", "update_time") +("id", "category", "name", "code", "value", "default_value", "description", "update_user", "update_time") VALUES -('系统标题', 'SITE_TITLE', NULL, 'ContiNew Admin', '用于显示登录页面的系统标题。', NULL, NULL), -('版权信息', 'SITE_COPYRIGHT', NULL, - 'Copyright © 2022-present Charles7c  ContiNew Admin  津ICP备2022005864号-3', - '用于显示登录页面的底部版权信息。', NULL, NULL), -('系统LOGO(16*16)', 'SITE_FAVICON', NULL, '/favicon.ico', '用于显示浏览器地址栏的系统LOGO。', NULL, NULL), -('系统LOGO(33*33)', 'SITE_LOGO', NULL, '/logo.svg', '用于显示登录页面的系统LOGO。', NULL, NULL), -('登录密码错误锁定账号的次数', 'PASSWORD_ERROR_LOCK_COUNT', NULL, '5', '取值范围为 0-10(0 表示不锁定)。', NULL, NULL), -('登录密码错误锁定账号的时间(min)', 'PASSWORD_ERROR_LOCK_MINUTES', NULL, '5', '取值范围为 1-1440(一天)。', NULL, NULL), -('密码有效期(天)', 'PASSWORD_EXPIRATION_DAYS', NULL, '0', '取值范围为 0-999(0 表示永久有效)。', NULL, NULL), -('密码到期提前提示(天)', 'PASSWORD_EXPIRATION_WARNING_DAYS', NULL, '0', '密码到期 N 天前进行提示(0 表示不提示)。', NULL, NULL), -('密码重复使用规则', 'PASSWORD_REUSE_POLICY', NULL, '5', '不允许使用最近 N 次密码,取值范围为 3-32。', NULL, NULL), -('密码最小长度', 'PASSWORD_MIN_LENGTH', NULL, '8', '取值范围为 8-32。', NULL, NULL), -('密码是否允许包含正反序账号名', 'PASSWORD_ALLOW_CONTAIN_USERNAME', NULL, '1', '', NULL, NULL), -('密码是否必须包含特殊字符', 'PASSWORD_CONTAIN_SPECIAL_CHARACTERS', NULL, '0', '', NULL, NULL); +(1, 'SITE', '系统标题', 'SITE_TITLE', NULL, 'ContiNew Admin', '用于显示登录页面的系统标题。', NULL, NULL), +(2, 'SITE', '系统描述', 'SITE_DESCRIPTION', NULL, '持续迭代优化的前后端分离中后台管理系统框架', NULL, NULL, NULL), +(3, 'SITE', '版权信息', 'SITE_COPYRIGHT', NULL, 'Copyright © 2022 - present ContiNew Admin 版权所有', '用于显示登录页面的底部版权信息。', NULL, NULL), +(4, 'SITE', '备案号', 'SITE_BEIAN', NULL, '津ICP备2022005864号-3', 'ICP备案号', NULL, NULL), +(5, 'SITE', 'favicon', 'SITE_FAVICON', NULL, '/favicon.ico', '用于显示浏览器地址栏的系统LOGO。', NULL, NULL), +(6, 'SITE', '系统LOGO', 'SITE_LOGO', NULL, '/logo.svg', '用于显示登录页面的系统LOGO。', NULL, NULL), +(7, 'PASSWORD', '登录密码错误锁定账号的次数', 'PASSWORD_ERROR_LOCK_COUNT', NULL, '5', '取值范围为 0-10(0 表示不锁定)。', NULL, NULL), +(8, 'PASSWORD', '登录密码错误锁定账号的时间(min)', 'PASSWORD_ERROR_LOCK_MINUTES', NULL, '5', '取值范围为 1-1440(一天)。', NULL, NULL), +(9, 'PASSWORD', '密码有效期(天)', 'PASSWORD_EXPIRATION_DAYS', NULL, '0', '取值范围为 0-999(0 表示永久有效)。', NULL, NULL), +(10, 'PASSWORD', '密码到期提前提示(天)', 'PASSWORD_EXPIRATION_WARNING_DAYS', NULL, '0', '密码到期 N 天前进行提示(0 表示不提示)。', NULL, NULL), +(11, 'PASSWORD', '密码重复使用规则', 'PASSWORD_REUSE_POLICY', NULL, '3', '不允许使用最近 N 次密码,取值范围为 3-32。', NULL, NULL), +(12, 'PASSWORD', '密码最小长度', 'PASSWORD_MIN_LENGTH', NULL, '8', '取值范围为 8-32。', NULL, NULL), +(13, 'PASSWORD', '密码是否允许包含正反序账号名', 'PASSWORD_ALLOW_CONTAIN_USERNAME', NULL, '1', NULL, NULL, NULL), +(14, 'PASSWORD', '密码是否必须包含特殊字符', 'PASSWORD_CONTAIN_SPECIAL_CHARACTERS', NULL, '0', NULL, NULL, NULL), +(15, 'MAIL', '发件人邮箱', 'MAIL_FROM', NULL, 'charles7c@126.com', NULL, NULL, NULL), +(16, 'MAIL', 'SMTP服务器', 'MAIL_SMTP_HOST', NULL, 'smtp.126.com', NULL, NULL, NULL), +(17, 'MAIL', 'SMTP端口', 'MAIL_SMTP_PORT', NULL, '465', NULL, NULL, NULL), +(18, 'MAIL', 'SMTP用户名', 'MAIL_SMTP_USERNAME', NULL, 'charles7c@126.com', NULL, NULL, NULL), +(19, 'MAIL', 'SMTP密码', 'MAIL_SMTP_PASSWORD', NULL, NULL, NULL, NULL, NULL), +(20, 'MAIL', '是否启用SSL', 'MAIL_SSL_ENABLED', NULL, '1', NULL, NULL, NULL), +(21, 'MAIL', 'SSL端口', 'MAIL_SSL_PORT', NULL, '465', NULL, NULL, NULL); -- 初始化默认字典 INSERT INTO "sys_dict" diff --git a/continew-admin-webapi/src/main/resources/db/changelog/postgresql/continew-admin_table.sql b/continew-admin-webapi/src/main/resources/db/changelog/postgresql/continew-admin_table.sql index b7396aa8..db81d87b 100644 --- a/continew-admin-webapi/src/main/resources/db/changelog/postgresql/continew-admin_table.sql +++ b/continew-admin-webapi/src/main/resources/db/changelog/postgresql/continew-admin_table.sql @@ -217,6 +217,8 @@ COMMENT ON COLUMN "sys_role_dept"."dept_id" IS '部门ID'; COMMENT ON TABLE "sys_role_dept" IS '角色和部门关联表'; CREATE TABLE IF NOT EXISTS "sys_option" ( + "id" int8 NOT NULL, + "category" varchar(50) DEFAULT NULL, "name" varchar(50) NOT NULL, "code" varchar(100) NOT NULL, "value" text DEFAULT NULL, @@ -224,9 +226,11 @@ CREATE TABLE IF NOT EXISTS "sys_option" ( "description" varchar(200) DEFAULT NULL, "update_user" int8 DEFAULT NULL, "update_time" timestamp DEFAULT NULL, - PRIMARY KEY ("code") + PRIMARY KEY ("id") ); -CREATE INDEX "idx_option_update_user" ON "sys_option" ("update_user"); +CREATE UNIQUE INDEX "uk_option_category_code" ON "sys_option" ("category", "code"); +COMMENT ON COLUMN "sys_option"."id" IS 'ID'; +COMMENT ON COLUMN "sys_option"."category" IS '类别'; COMMENT ON COLUMN "sys_option"."name" IS '名称'; COMMENT ON COLUMN "sys_option"."code" IS '键'; COMMENT ON COLUMN "sys_option"."value" IS '值';