From fbc0269b3c80ba4be8c82e095bd45dd7a6ae4b00 Mon Sep 17 00:00:00 2001 From: Charles7c Date: Sun, 9 Nov 2025 19:08:28 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=89=A9=E7=90=86=E5=88=A0?= =?UTF-8?q?=E9=99=A4=20=3D>=20=E9=80=BB=E8=BE=91=E5=88=A0=E9=99=A4?= =?UTF-8?q?=EF=BC=88=E9=80=82=E9=85=8D=E5=B7=B2=E6=9C=89=E5=94=AF=E4=B8=80?= =?UTF-8?q?=E7=B4=A2=E5=BC=95=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1.涉及逻辑删除调整表: main_table.sql:菜单表、部门表、角色表、用户表、用户社会化关联表、字典表、字典项表、消息表、公告表、存储表、文件表、客户端表、短信配置表 插件:应用表、租户表、租户套餐表 2.deleted 是否已删除(0:否;id:是) --- .../common/base/model/entity/BaseDO.java | 5 + .../continew/admin/open/mapper/AppMapper.java | 2 +- .../src/main/resources/config/application.yml | 6 + .../db/changelog/db.changelog-master.yaml | 4 - .../db/changelog/mysql/main_column.sql | 2 - .../db/changelog/mysql/main_table.sql | 189 ++++++++++-------- .../db/changelog/mysql/plugin/plugin_open.sql | 6 +- .../changelog/mysql/plugin/plugin_tenant.sql | 37 ++-- .../db/changelog/postgresql/main_column.sql | 2 - .../db/changelog/postgresql/main_table.sql | 99 ++++++--- .../postgresql/plugin/plugin_open.sql | 33 +-- .../postgresql/plugin/plugin_tenant.sql | 87 ++++---- .../admin/system/mapper/FileMapper.java | 2 +- .../admin/system/mapper/user/UserMapper.java | 8 +- .../admin/system/model/entity/MessageDO.java | 11 + .../model/entity/user/UserSocialDO.java | 11 + .../system/service/impl/UserServiceImpl.java | 3 +- .../main/resources/mapper/DictItemMapper.xml | 4 +- .../src/main/resources/mapper/MenuMapper.xml | 7 +- .../main/resources/mapper/MessageMapper.xml | 57 +++--- .../main/resources/mapper/NoticeMapper.xml | 54 +++-- .../main/resources/mapper/UserRoleMapper.xml | 1 - .../main/resources/mapper/user/UserMapper.xml | 1 - .../mapper/user/UserPasswordHistoryMapper.xml | 3 +- .../mapper/user/UserSocialMapper.xml | 4 +- 25 files changed, 373 insertions(+), 265 deletions(-) delete mode 100644 continew-server/src/main/resources/db/changelog/mysql/main_column.sql delete mode 100644 continew-server/src/main/resources/db/changelog/postgresql/main_column.sql diff --git a/continew-common/src/main/java/top/continew/admin/common/base/model/entity/BaseDO.java b/continew-common/src/main/java/top/continew/admin/common/base/model/entity/BaseDO.java index 5f142f01..f2d7fd46 100644 --- a/continew-common/src/main/java/top/continew/admin/common/base/model/entity/BaseDO.java +++ b/continew-common/src/main/java/top/continew/admin/common/base/model/entity/BaseDO.java @@ -63,4 +63,9 @@ public class BaseDO extends BaseIdDO { */ @TableField(fill = FieldFill.UPDATE) private LocalDateTime updateTime; + + /** + * 是否已删除(0:否;id:是) + */ + private Long deleted; } diff --git a/continew-plugin/continew-plugin-open/src/main/java/top/continew/admin/open/mapper/AppMapper.java b/continew-plugin/continew-plugin-open/src/main/java/top/continew/admin/open/mapper/AppMapper.java index dc5d1873..45480098 100644 --- a/continew-plugin/continew-plugin-open/src/main/java/top/continew/admin/open/mapper/AppMapper.java +++ b/continew-plugin/continew-plugin-open/src/main/java/top/continew/admin/open/mapper/AppMapper.java @@ -38,6 +38,6 @@ public interface AppMapper extends BaseMapper { * @param accessKey Access Key * @return 应用信息 */ - @Select("select * from sys_app where access_key = #{accessKey}") + @Select("select * from sys_app where deleted = 0 AND access_key = #{accessKey}") AppDO selectByAccessKey(@FieldEncrypt @Param("accessKey") String accessKey); } \ No newline at end of file diff --git a/continew-server/src/main/resources/config/application.yml b/continew-server/src/main/resources/config/application.yml index 08f80d68..fa786e9c 100644 --- a/continew-server/src/main/resources/config/application.yml +++ b/continew-server/src/main/resources/config/application.yml @@ -281,6 +281,12 @@ mybatis-plus: # 主键类型(默认 assign_id,表示自行赋值) # auto 代表使用数据库自增策略(需要在表中设置好自增约束) id-type: ASSIGN_ID + # 逻辑删除字段名 + logic-delete-field: deleted + # 逻辑未删除值 + logic-not-delete-value: 0 + # 逻辑已删除值(解决唯一索引冲突) + logic-delete-value: id ## 扩展配置 extension: enabled: true diff --git a/continew-server/src/main/resources/db/changelog/db.changelog-master.yaml b/continew-server/src/main/resources/db/changelog/db.changelog-master.yaml index 44a1729d..92ef3a64 100644 --- a/continew-server/src/main/resources/db/changelog/db.changelog-master.yaml +++ b/continew-server/src/main/resources/db/changelog/db.changelog-master.yaml @@ -1,8 +1,6 @@ databaseChangeLog: - include: file: db/changelog/mysql/main_table.sql - - include: - file: db/changelog/mysql/main_column.sql - include: file: db/changelog/mysql/main_data.sql - include: @@ -17,8 +15,6 @@ databaseChangeLog: # - include: # file: db/changelog/postgresql/main_table.sql # - include: -# file: db/changelog/postgresql/main_column.sql -# - include: # file: db/changelog/postgresql/main_data.sql # - include: # file: db/changelog/postgresql/plugin/plugin_open.sql diff --git a/continew-server/src/main/resources/db/changelog/mysql/main_column.sql b/continew-server/src/main/resources/db/changelog/mysql/main_column.sql deleted file mode 100644 index 874085b8..00000000 --- a/continew-server/src/main/resources/db/changelog/mysql/main_column.sql +++ /dev/null @@ -1,2 +0,0 @@ --- liquibase formatted sql - diff --git a/continew-server/src/main/resources/db/changelog/mysql/main_table.sql b/continew-server/src/main/resources/db/changelog/mysql/main_table.sql index 00bb3f7f..c18b7bcc 100644 --- a/continew-server/src/main/resources/db/changelog/mysql/main_table.sql +++ b/continew-server/src/main/resources/db/changelog/mysql/main_table.sql @@ -3,7 +3,7 @@ -- changeset charles7c:1 -- comment 初始化表结构 CREATE TABLE IF NOT EXISTS `sys_menu` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', + `id` bigint(20) AUTO_INCREMENT COMMENT 'ID', `title` varchar(30) NOT NULL COMMENT '标题', `parent_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '上级菜单ID', `type` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '类型(1:目录;2:菜单;3:按钮)', @@ -22,15 +22,17 @@ CREATE TABLE IF NOT EXISTS `sys_menu` ( `create_time` datetime NOT NULL COMMENT '创建时间', `update_user` bigint(20) DEFAULT NULL COMMENT '修改人', `update_time` datetime DEFAULT NULL COMMENT '修改时间', + `deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否已删除(0:否;id:是)', PRIMARY KEY (`id`), - UNIQUE INDEX `uk_title_parent_id`(`title`, `parent_id`), + UNIQUE INDEX `uk_title_parent_id`(`title`, `parent_id`, `deleted`), INDEX `idx_parent_id`(`parent_id`), INDEX `idx_create_user`(`create_user`), - INDEX `idx_update_user`(`update_user`) + INDEX `idx_update_user`(`update_user`), + INDEX `idx_deleted`(`deleted`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='菜单表'; CREATE TABLE IF NOT EXISTS `sys_dept` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', + `id` bigint(20) AUTO_INCREMENT COMMENT 'ID', `name` varchar(30) NOT NULL COMMENT '名称', `parent_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '上级部门ID', `ancestors` varchar(512) NOT NULL DEFAULT '' COMMENT '祖级列表', @@ -42,36 +44,40 @@ CREATE TABLE IF NOT EXISTS `sys_dept` ( `create_time` datetime NOT NULL COMMENT '创建时间', `update_user` bigint(20) DEFAULT NULL COMMENT '修改人', `update_time` datetime DEFAULT NULL COMMENT '修改时间', + `deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否已删除(0:否;id:是)', PRIMARY KEY (`id`), - UNIQUE INDEX `uk_name_parent_id`(`name`, `parent_id`), + UNIQUE INDEX `uk_name_parent_id`(`name`, `parent_id`, `deleted`), INDEX `idx_parent_id`(`parent_id`), INDEX `idx_create_user`(`create_user`), - INDEX `idx_update_user`(`update_user`) + INDEX `idx_update_user`(`update_user`), + INDEX `idx_deleted`(`deleted`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='部门表'; CREATE TABLE IF NOT EXISTS `sys_role` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', - `name` varchar(30) NOT NULL COMMENT '名称', - `code` varchar(30) NOT NULL COMMENT '编码', - `data_scope` tinyint(1) NOT NULL DEFAULT 4 COMMENT '数据权限(1:全部数据权限;2:本部门及以下数据权限;3:本部门数据权限;4:仅本人数据权限;5:自定义数据权限)', - `description` varchar(200) DEFAULT NULL COMMENT '描述', - `sort` int NOT NULL DEFAULT 999 COMMENT '排序', - `is_system` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否为系统内置数据', - `menu_check_strictly` bit(1) DEFAULT b'1' COMMENT '菜单选择是否父子节点关联', - `dept_check_strictly` bit(1) DEFAULT b'1' COMMENT '部门选择是否父子节点关联', - `create_user` bigint(20) NOT NULL COMMENT '创建人', - `create_time` datetime NOT NULL COMMENT '创建时间', - `update_user` bigint(20) DEFAULT NULL COMMENT '修改人', - `update_time` datetime DEFAULT NULL COMMENT '修改时间', + `id` bigint(20) AUTO_INCREMENT COMMENT 'ID', + `name` varchar(30) NOT NULL COMMENT '名称', + `code` varchar(30) NOT NULL COMMENT '编码', + `data_scope` tinyint(1) NOT NULL DEFAULT 4 COMMENT '数据权限(1:全部数据权限;2:本部门及以下数据权限;3:本部门数据权限;4:仅本人数据权限;5:自定义数据权限)', + `description` varchar(200) DEFAULT NULL COMMENT '描述', + `sort` int NOT NULL DEFAULT 999 COMMENT '排序', + `is_system` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否为系统内置数据', + `menu_check_strictly` bit(1) DEFAULT b'1' COMMENT '菜单选择是否父子节点关联', + `dept_check_strictly` bit(1) DEFAULT b'1' COMMENT '部门选择是否父子节点关联', + `create_user` bigint(20) NOT NULL COMMENT '创建人', + `create_time` datetime NOT NULL COMMENT '创建时间', + `update_user` bigint(20) DEFAULT NULL COMMENT '修改人', + `update_time` datetime DEFAULT NULL COMMENT '修改时间', + `deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否已删除(0:否;id:是)', PRIMARY KEY (`id`), - UNIQUE INDEX `uk_name`(`name`), - UNIQUE INDEX `uk_code`(`code`), + UNIQUE INDEX `uk_name`(`name`, `deleted`), + UNIQUE INDEX `uk_code`(`code`, `deleted`), INDEX `idx_create_user`(`create_user`), - INDEX `idx_update_user`(`update_user`) + INDEX `idx_update_user`(`update_user`), + INDEX `idx_deleted`(`deleted`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色表'; CREATE TABLE IF NOT EXISTS `sys_user` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', + `id` bigint(20) AUTO_INCREMENT COMMENT 'ID', `username` varchar(64) NOT NULL COMMENT '用户名', `nickname` varchar(30) NOT NULL COMMENT '昵称', `password` varchar(255) DEFAULT NULL COMMENT '密码', @@ -88,40 +94,45 @@ CREATE TABLE IF NOT EXISTS `sys_user` ( `create_time` datetime NOT NULL COMMENT '创建时间', `update_user` bigint(20) DEFAULT NULL COMMENT '修改人', `update_time` datetime DEFAULT NULL COMMENT '修改时间', + `deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否已删除(0:否;id:是)', PRIMARY KEY (`id`), - UNIQUE INDEX `uk_username`(`username`), - UNIQUE INDEX `uk_email`(`email`), - UNIQUE INDEX `uk_phone`(`phone`), + UNIQUE INDEX `uk_username`(`username`, `deleted`), + UNIQUE INDEX `uk_email`(`email`, `deleted`), + UNIQUE INDEX `uk_phone`(`phone`, `deleted`), INDEX `idx_dept_id`(`dept_id`), INDEX `idx_create_user`(`create_user`), - INDEX `idx_update_user`(`update_user`) + INDEX `idx_update_user`(`update_user`), + INDEX `idx_deleted`(`deleted`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表'; CREATE TABLE IF NOT EXISTS `sys_user_password_history` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', - `user_id` bigint(20) NOT NULL COMMENT '用户ID', - `password` varchar(255) NOT NULL COMMENT '密码', - `create_time` datetime NOT NULL COMMENT '创建时间', + `id` bigint(20) AUTO_INCREMENT COMMENT 'ID', + `user_id` bigint(20) NOT NULL COMMENT '用户ID', + `password` varchar(255) NOT NULL COMMENT '密码', + `create_time` datetime NOT NULL COMMENT '创建时间', PRIMARY KEY (`id`), INDEX `idx_user_id`(`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户历史密码表'; CREATE TABLE IF NOT EXISTS `sys_user_social` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', - `source` varchar(255) NOT NULL COMMENT '来源', - `open_id` varchar(255) NOT NULL COMMENT '开放ID', - `user_id` bigint(20) NOT NULL COMMENT '用户ID', - `meta_json` text DEFAULT NULL COMMENT '附加信息', - `last_login_time` datetime DEFAULT NULL COMMENT '最后登录时间', - `create_time` datetime NOT NULL COMMENT '创建时间', + `id` bigint(20) AUTO_INCREMENT COMMENT 'ID', + `source` varchar(255) NOT NULL COMMENT '来源', + `open_id` varchar(255) NOT NULL COMMENT '开放ID', + `user_id` bigint(20) NOT NULL COMMENT '用户ID', + `meta_json` text DEFAULT NULL COMMENT '附加信息', + `last_login_time` datetime DEFAULT NULL COMMENT '最后登录时间', + `create_time` datetime NOT NULL COMMENT '创建时间', + `update_time` datetime DEFAULT NULL COMMENT '修改时间', + `deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否已删除(0:否;id:是)', PRIMARY KEY (`id`), - UNIQUE INDEX `uk_source_open_id`(`source`, `open_id`) + UNIQUE INDEX `uk_source_open_id`(`source`, `open_id`, `deleted`), + INDEX `idx_deleted`(`deleted`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户社会化关联表'; CREATE TABLE IF NOT EXISTS `sys_user_role` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', - `user_id` bigint(20) NOT NULL COMMENT '用户ID', - `role_id` bigint(20) NOT NULL COMMENT '角色ID', + `id` bigint(20) AUTO_INCREMENT COMMENT 'ID', + `user_id` bigint(20) NOT NULL COMMENT '用户ID', + `role_id` bigint(20) NOT NULL COMMENT '角色ID', PRIMARY KEY (`id`), UNIQUE INDEX `uk_user_id_role_id`(`user_id`, `role_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户和角色关联表'; @@ -139,36 +150,38 @@ 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 AUTO_INCREMENT COMMENT 'ID', - `category` varchar(50) NOT NULL COMMENT '类别', - `name` varchar(50) NOT NULL COMMENT '名称', - `code` varchar(100) NOT NULL COMMENT '键', - `value` longtext DEFAULT NULL COMMENT '值', - `default_value` longtext DEFAULT NULL COMMENT '默认值', - `description` varchar(200) DEFAULT NULL COMMENT '描述', - `update_user` bigint(20) DEFAULT NULL COMMENT '修改人', - `update_time` datetime DEFAULT NULL COMMENT '修改时间', + `id` bigint(20) AUTO_INCREMENT COMMENT 'ID', + `category` varchar(50) NOT NULL COMMENT '类别', + `name` varchar(50) NOT NULL COMMENT '名称', + `code` varchar(100) NOT NULL COMMENT '键', + `value` longtext DEFAULT NULL COMMENT '值', + `default_value` longtext DEFAULT NULL COMMENT '默认值', + `description` varchar(200) DEFAULT NULL COMMENT '描述', + `update_user` bigint(20) DEFAULT NULL COMMENT '修改人', + `update_time` datetime DEFAULT NULL COMMENT '修改时间', PRIMARY KEY (`id`), UNIQUE INDEX `uk_category_code`(`category`, `code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='参数表'; CREATE TABLE IF NOT EXISTS `sys_dict` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', - `name` varchar(30) NOT NULL COMMENT '名称', - `code` varchar(30) NOT NULL COMMENT '编码', - `description` varchar(200) DEFAULT NULL COMMENT '描述', - `is_system` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否为系统内置数据', - `create_user` bigint(20) NOT NULL COMMENT '创建人', - `create_time` datetime NOT NULL COMMENT '创建时间', - `update_user` bigint(20) DEFAULT NULL COMMENT '修改人', - `update_time` datetime DEFAULT NULL COMMENT '修改时间', + `id` bigint(20) AUTO_INCREMENT COMMENT 'ID', + `name` varchar(30) NOT NULL COMMENT '名称', + `code` varchar(30) NOT NULL COMMENT '编码', + `description` varchar(200) DEFAULT NULL COMMENT '描述', + `is_system` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否为系统内置数据', + `create_user` bigint(20) NOT NULL COMMENT '创建人', + `create_time` datetime NOT NULL COMMENT '创建时间', + `update_user` bigint(20) DEFAULT NULL COMMENT '修改人', + `update_time` datetime DEFAULT NULL COMMENT '修改时间', + `deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否已删除(0:否;id:是)', PRIMARY KEY (`id`), - UNIQUE INDEX `uk_name`(`name`), - UNIQUE INDEX `uk_code`(`code`) + UNIQUE INDEX `uk_name`(`name`, `deleted`), + UNIQUE INDEX `uk_code`(`code`, `deleted`), + INDEX `idx_deleted`(`deleted`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='字典表'; CREATE TABLE IF NOT EXISTS `sys_dict_item` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', + `id` bigint(20) AUTO_INCREMENT COMMENT 'ID', `label` varchar(30) NOT NULL COMMENT '标签', `value` varchar(30) NOT NULL COMMENT '值', `color` varchar(30) DEFAULT NULL COMMENT '标签颜色', @@ -180,15 +193,17 @@ CREATE TABLE IF NOT EXISTS `sys_dict_item` ( `create_time` datetime NOT NULL COMMENT '创建时间', `update_user` bigint(20) DEFAULT NULL COMMENT '修改人', `update_time` datetime DEFAULT NULL COMMENT '修改时间', + `deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否已删除(0:否;id:是)', PRIMARY KEY (`id`), - UNIQUE INDEX `uk_value_dict_id`(`value`, `dict_id`), + UNIQUE INDEX `uk_value_dict_id`(`value`, `dict_id`, `deleted`), INDEX `idx_dict_id`(`dict_id`), INDEX `idx_create_user`(`create_user`), - INDEX `idx_update_user`(`update_user`) + INDEX `idx_update_user`(`update_user`), + INDEX `idx_deleted`(`deleted`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='字典项表'; CREATE TABLE IF NOT EXISTS `sys_log` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', + `id` bigint(20) AUTO_INCREMENT COMMENT 'ID', `trace_id` varchar(255) DEFAULT NULL COMMENT '链路ID', `description` varchar(255) NOT NULL COMMENT '日志描述', `module` varchar(100) NOT NULL COMMENT '所属模块', @@ -216,7 +231,7 @@ CREATE TABLE IF NOT EXISTS `sys_log` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统日志表'; CREATE TABLE IF NOT EXISTS `sys_message` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', + `id` bigint(20) AUTO_INCREMENT COMMENT 'ID', `title` varchar(50) NOT NULL COMMENT '标题', `content` text DEFAULT NULL COMMENT '内容', `type` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '类型(1:系统消息;2:安全消息)', @@ -224,7 +239,10 @@ CREATE TABLE IF NOT EXISTS `sys_message` ( `scope` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '通知范围(1:所有人;2:指定用户)', `users` json DEFAULT NULL COMMENT '通知用户', `create_time` datetime NOT NULL COMMENT '创建时间', - PRIMARY KEY (`id`) + `update_time` datetime DEFAULT NULL COMMENT '修改时间', + `deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否已删除(0:否;id:是)', + PRIMARY KEY (`id`), + INDEX `idx_deleted`(`deleted`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='消息表'; CREATE TABLE IF NOT EXISTS `sys_message_log` ( @@ -235,7 +253,7 @@ CREATE TABLE IF NOT EXISTS `sys_message_log` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='消息日志表'; CREATE TABLE IF NOT EXISTS `sys_notice` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', + `id` bigint(20) AUTO_INCREMENT COMMENT 'ID', `title` varchar(150) NOT NULL COMMENT '标题', `content` mediumtext NOT NULL COMMENT '内容', `type` varchar(30) NOT NULL COMMENT '分类', @@ -250,9 +268,11 @@ CREATE TABLE IF NOT EXISTS `sys_notice` ( `create_time` datetime NOT NULL COMMENT '创建时间', `update_user` bigint(20) DEFAULT NULL COMMENT '修改人', `update_time` datetime DEFAULT NULL COMMENT '修改时间', + `deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否已删除(0:否;id:是)', PRIMARY KEY (`id`), INDEX `idx_create_user`(`create_user`), - INDEX `idx_update_user`(`update_user`) + INDEX `idx_update_user`(`update_user`), + INDEX `idx_deleted`(`deleted`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='公告表'; CREATE TABLE IF NOT EXISTS `sys_notice_log` ( @@ -263,7 +283,7 @@ CREATE TABLE IF NOT EXISTS `sys_notice_log` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='公告日志表'; CREATE TABLE IF NOT EXISTS `sys_storage` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', + `id` bigint(20) AUTO_INCREMENT COMMENT 'ID', `name` varchar(100) NOT NULL COMMENT '名称', `code` varchar(30) NOT NULL COMMENT '编码', `type` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '类型(1:本地存储;2:对象存储)', @@ -280,14 +300,16 @@ CREATE TABLE IF NOT EXISTS `sys_storage` ( `create_time` datetime NOT NULL COMMENT '创建时间', `update_user` bigint(20) DEFAULT NULL COMMENT '修改人', `update_time` datetime DEFAULT NULL COMMENT '修改时间', + `deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否已删除(0:否;id:是)', PRIMARY KEY (`id`), - UNIQUE INDEX `uk_code`(`code`), + UNIQUE INDEX `uk_code`(`code`, `deleted`), INDEX `idx_create_user`(`create_user`), - INDEX `idx_update_user`(`update_user`) + INDEX `idx_update_user`(`update_user`), + INDEX `idx_deleted`(`deleted`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='存储表'; CREATE TABLE IF NOT EXISTS `sys_file` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', + `id` bigint(20) AUTO_INCREMENT COMMENT 'ID', `name` varchar(255) NOT NULL COMMENT '名称', `original_name` varchar(255) NOT NULL COMMENT '原始名称', `size` bigint(20) DEFAULT NULL COMMENT '大小(字节)', @@ -306,15 +328,18 @@ CREATE TABLE IF NOT EXISTS `sys_file` ( `create_time` datetime NOT NULL COMMENT '创建时间', `update_user` bigint(20) DEFAULT NULL COMMENT '修改人', `update_time` datetime DEFAULT NULL COMMENT '修改时间', + `deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否已删除(0:否;id:是)', PRIMARY KEY (`id`), INDEX `idx_type`(`type`), INDEX `idx_sha256`(`sha256`), INDEX `idx_storage_id`(`storage_id`), - INDEX `idx_create_user`(`create_user`) + INDEX `idx_create_user`(`create_user`), + INDEX `idx_update_user`(`update_user`), + INDEX `idx_deleted`(`deleted`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='文件表'; CREATE TABLE IF NOT EXISTS `sys_client` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', + `id` bigint(20) AUTO_INCREMENT COMMENT 'ID', `client_id` varchar(50) NOT NULL COMMENT '客户端ID', `client_type` varchar(50) NOT NULL COMMENT '客户端类型', `auth_type` json NOT NULL COMMENT '认证类型', @@ -325,14 +350,16 @@ CREATE TABLE IF NOT EXISTS `sys_client` ( `create_time` datetime NOT NULL COMMENT '创建时间', `update_user` bigint(20) DEFAULT NULL COMMENT '修改人', `update_time` datetime DEFAULT NULL COMMENT '修改时间', + `deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否已删除(0:否;id:是)', PRIMARY KEY (`id`), - UNIQUE INDEX `uk_client_id`(`client_id`), + UNIQUE INDEX `uk_client_id`(`client_id`, `deleted`), INDEX `idx_create_user`(`create_user`), - INDEX `idx_update_user`(`update_user`) + INDEX `idx_update_user`(`update_user`), + INDEX `idx_deleted`(`deleted`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='客户端表'; CREATE TABLE IF NOT EXISTS `sys_sms_config` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', + `id` bigint(20) AUTO_INCREMENT COMMENT 'ID', `name` varchar(100) NOT NULL COMMENT '名称', `supplier` varchar(50) NOT NULL COMMENT '厂商', `access_key` varchar(255) NOT NULL COMMENT 'Access Key', @@ -350,9 +377,11 @@ CREATE TABLE IF NOT EXISTS `sys_sms_config` ( `create_time` datetime NOT NULL COMMENT '创建时间', `update_user` bigint(20) DEFAULT NULL COMMENT '修改人', `update_time` datetime DEFAULT NULL COMMENT '修改时间', + `deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否已删除(0:否;id:是)', PRIMARY KEY (`id`), INDEX `idx_create_user`(`create_user`), - INDEX `idx_update_user`(`update_user`) + INDEX `idx_update_user`(`update_user`), + INDEX `idx_deleted`(`deleted`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='短信配置表'; CREATE TABLE IF NOT EXISTS `sys_sms_log` ( diff --git a/continew-server/src/main/resources/db/changelog/mysql/plugin/plugin_open.sql b/continew-server/src/main/resources/db/changelog/mysql/plugin/plugin_open.sql index 0231af95..08dce561 100644 --- a/continew-server/src/main/resources/db/changelog/mysql/plugin/plugin_open.sql +++ b/continew-server/src/main/resources/db/changelog/mysql/plugin/plugin_open.sql @@ -15,10 +15,12 @@ CREATE TABLE IF NOT EXISTS `sys_app` ( `create_time` datetime NOT NULL COMMENT '创建时间', `update_user` bigint(20) DEFAULT NULL COMMENT '修改人', `update_time` datetime DEFAULT NULL COMMENT '修改时间', + `deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否已删除(0:否;id:是)', PRIMARY KEY (`id`), - UNIQUE INDEX `uk_access_key`(`access_key`), + UNIQUE INDEX `uk_access_key`(`access_key`, `deleted`), INDEX `idx_create_user`(`create_user`), - INDEX `idx_update_user`(`update_user`) + INDEX `idx_update_user`(`update_user`), + INDEX `idx_deleted`(`deleted`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='应用表'; -- 初始化默认菜单 diff --git a/continew-server/src/main/resources/db/changelog/mysql/plugin/plugin_tenant.sql b/continew-server/src/main/resources/db/changelog/mysql/plugin/plugin_tenant.sql index 62f160d7..3516a7e0 100644 --- a/continew-server/src/main/resources/db/changelog/mysql/plugin/plugin_tenant.sql +++ b/continew-server/src/main/resources/db/changelog/mysql/plugin/plugin_tenant.sql @@ -4,7 +4,7 @@ -- comment 初始化租户插件数据表 -- 初始化表结构 CREATE TABLE IF NOT EXISTS `tenant` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', + `id` bigint(20) AUTO_INCREMENT COMMENT 'ID', `name` varchar(30) NOT NULL COMMENT '名称', `code` varchar(30) NOT NULL COMMENT '编码', `domain` varchar(255) DEFAULT NULL COMMENT '域名', @@ -18,16 +18,18 @@ CREATE TABLE IF NOT EXISTS `tenant` ( `create_time` datetime NOT NULL COMMENT '创建时间', `update_user` bigint(20) DEFAULT NULL COMMENT '修改人', `update_time` datetime DEFAULT NULL COMMENT '修改时间', + `deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否已删除(0:否;id:是)', PRIMARY KEY (`id`), - UNIQUE INDEX `uk_code`(`code`), + UNIQUE INDEX `uk_code`(`code`, `deleted`), INDEX `idx_admin_user`(`admin_user`), INDEX `idx_package_id`(`package_id`), INDEX `idx_create_user`(`create_user`), - INDEX `idx_update_user`(`update_user`) + INDEX `idx_update_user`(`update_user`), + INDEX `idx_deleted`(`deleted`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='租户表'; CREATE TABLE IF NOT EXISTS `tenant_package` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', + `id` bigint(20) AUTO_INCREMENT COMMENT 'ID', `name` varchar(30) NOT NULL COMMENT '名称', `sort` int NOT NULL DEFAULT 999 COMMENT '排序', `menu_check_strictly` bit(1) DEFAULT b'1' COMMENT '菜单选择是否父子节点关联', @@ -37,9 +39,11 @@ CREATE TABLE IF NOT EXISTS `tenant_package` ( `create_time` datetime NOT NULL COMMENT '创建时间', `update_user` bigint(20) DEFAULT NULL COMMENT '修改人', `update_time` datetime DEFAULT NULL COMMENT '修改时间', + `deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否已删除(0:否;id:是)', PRIMARY KEY (`id`), INDEX `idx_create_user`(`create_user`), - INDEX `idx_update_user`(`update_user`) + INDEX `idx_update_user`(`update_user`), + INDEX `idx_deleted`(`deleted`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='租户套餐表'; CREATE TABLE IF NOT EXISTS `tenant_package_menu` ( @@ -98,22 +102,25 @@ ALTER TABLE `sys_app` -- 调整唯一索引 ALTER TABLE `sys_dept` DROP INDEX `uk_name_parent_id`, - ADD UNIQUE INDEX `uk_name_parent_id` (`name`, `parent_id`, `tenant_id`); + ADD UNIQUE INDEX `uk_name_parent_id` (`name`, `parent_id`, `deleted`, `tenant_id`); ALTER TABLE `sys_role` DROP INDEX `uk_name`, DROP INDEX `uk_code`, - ADD UNIQUE INDEX `uk_name` (`name`, `tenant_id`), - ADD UNIQUE INDEX `uk_code` (`code`, `tenant_id`); + ADD UNIQUE INDEX `uk_name` (`name`, `deleted`, `tenant_id`), + ADD UNIQUE INDEX `uk_code` (`code`, `deleted`, `tenant_id`); ALTER TABLE `sys_user` DROP INDEX `uk_username`, DROP INDEX `uk_email`, DROP INDEX `uk_phone`, - ADD UNIQUE INDEX `uk_username` (`username`, `tenant_id`), - ADD UNIQUE INDEX `uk_email` (`email`, `tenant_id`), - ADD UNIQUE INDEX `uk_phone` (`phone`, `tenant_id`); + ADD UNIQUE INDEX `uk_username` (`username`, `deleted`, `tenant_id`), + ADD UNIQUE INDEX `uk_email` (`email`, `deleted`, `tenant_id`), + ADD UNIQUE INDEX `uk_phone` (`phone`, `deleted`, `tenant_id`); +ALTER TABLE `sys_user_social` + DROP INDEX `uk_source_open_id`, + ADD UNIQUE INDEX `uk_source_open_id` (`source`, `open_id`, `deleted`, `tenant_id`); ALTER TABLE `sys_app` DROP INDEX `uk_access_key`, - ADD UNIQUE INDEX `uk_access_key` (`access_key`, `tenant_id`); + ADD UNIQUE INDEX `uk_access_key` (`access_key`, `deleted`, `tenant_id`); -- 初始化默认菜单 INSERT INTO `sys_menu` @@ -135,9 +142,3 @@ VALUES (3023, '新增', 3020, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'tenant:package:create', 3, 1, 1, NOW()), (3024, '修改', 3020, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'tenant:package:update', 4, 1, 1, NOW()), (3025, '删除', 3020, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'tenant:package:delete', 5, 1, 1, NOW()); - --- changeset kai:20251022-01 --- comment 重置租户场景索引 -ALTER TABLE `sys_user_social` -DROP INDEX `uk_source_open_id`, - ADD UNIQUE INDEX `uk_source_open_id` (`source`, `open_id`, `tenant_id`); \ No newline at end of file diff --git a/continew-server/src/main/resources/db/changelog/postgresql/main_column.sql b/continew-server/src/main/resources/db/changelog/postgresql/main_column.sql deleted file mode 100644 index 874085b8..00000000 --- a/continew-server/src/main/resources/db/changelog/postgresql/main_column.sql +++ /dev/null @@ -1,2 +0,0 @@ --- liquibase formatted sql - diff --git a/continew-server/src/main/resources/db/changelog/postgresql/main_table.sql b/continew-server/src/main/resources/db/changelog/postgresql/main_table.sql index 84f5dd6d..b98acda3 100644 --- a/continew-server/src/main/resources/db/changelog/postgresql/main_table.sql +++ b/continew-server/src/main/resources/db/changelog/postgresql/main_table.sql @@ -22,12 +22,14 @@ CREATE TABLE IF NOT EXISTS "sys_menu" ( "create_time" timestamp NOT NULL, "update_user" int8 DEFAULT NULL, "update_time" timestamp DEFAULT NULL, + "deleted" int8 NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); -CREATE INDEX "idx_menu_parent_id" ON "sys_menu" ("parent_id"); -CREATE INDEX "idx_menu_create_user" ON "sys_menu" ("create_user"); -CREATE INDEX "idx_menu_update_user" ON "sys_menu" ("update_user"); -CREATE UNIQUE INDEX "uk_menu_title_parent_id" ON "sys_menu" ("title", "parent_id"); +CREATE UNIQUE INDEX "uk_menu_title_parent_id" ON "sys_menu" ("title", "parent_id", "deleted"); +CREATE INDEX "idx_menu_parent_id" ON "sys_menu" ("parent_id"); +CREATE INDEX "idx_menu_create_user" ON "sys_menu" ("create_user"); +CREATE INDEX "idx_menu_update_user" ON "sys_menu" ("update_user"); +CREATE INDEX "idx_menu_deleted" ON "sys_menu" ("deleted"); COMMENT ON COLUMN "sys_menu"."id" IS 'ID'; COMMENT ON COLUMN "sys_menu"."title" IS '标题'; COMMENT ON COLUMN "sys_menu"."parent_id" IS '上级菜单ID'; @@ -47,6 +49,7 @@ COMMENT ON COLUMN "sys_menu"."create_user" IS '创建人'; COMMENT ON COLUMN "sys_menu"."create_time" IS '创建时间'; COMMENT ON COLUMN "sys_menu"."update_user" IS '修改人'; COMMENT ON COLUMN "sys_menu"."update_time" IS '修改时间'; +COMMENT ON COLUMN "sys_menu"."deleted" IS '是否已删除(0:否;id:是)'; COMMENT ON TABLE "sys_menu" IS '菜单表'; CREATE TABLE IF NOT EXISTS "sys_dept" ( @@ -62,12 +65,14 @@ CREATE TABLE IF NOT EXISTS "sys_dept" ( "create_time" timestamp NOT NULL, "update_user" int8 DEFAULT NULL, "update_time" timestamp DEFAULT NULL, + "deleted" int8 NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); -CREATE INDEX "idx_dept_parent_id" ON "sys_dept" ("parent_id"); -CREATE INDEX "idx_dept_create_user" ON "sys_dept" ("create_user"); -CREATE INDEX "idx_dept_update_user" ON "sys_dept" ("update_user"); -CREATE UNIQUE INDEX "uk_dept_name_parent_id" ON "sys_dept" ("name", "parent_id"); +CREATE UNIQUE INDEX "uk_dept_name_parent_id" ON "sys_dept" ("name", "parent_id", "deleted"); +CREATE INDEX "idx_dept_parent_id" ON "sys_dept" ("parent_id"); +CREATE INDEX "idx_dept_create_user" ON "sys_dept" ("create_user"); +CREATE INDEX "idx_dept_update_user" ON "sys_dept" ("update_user"); +CREATE INDEX "idx_dept_deleted" ON "sys_dept" ("deleted"); COMMENT ON COLUMN "sys_dept"."id" IS 'ID'; COMMENT ON COLUMN "sys_dept"."name" IS '名称'; COMMENT ON COLUMN "sys_dept"."parent_id" IS '上级部门ID'; @@ -80,6 +85,7 @@ COMMENT ON COLUMN "sys_dept"."create_user" IS '创建人'; COMMENT ON COLUMN "sys_dept"."create_time" IS '创建时间'; COMMENT ON COLUMN "sys_dept"."update_user" IS '修改人'; COMMENT ON COLUMN "sys_dept"."update_time" IS '修改时间'; +COMMENT ON COLUMN "sys_dept"."deleted" IS '是否已删除(0:否;id:是)'; COMMENT ON TABLE "sys_dept" IS '部门表'; CREATE TABLE IF NOT EXISTS "sys_role" ( @@ -96,12 +102,14 @@ CREATE TABLE IF NOT EXISTS "sys_role" ( "create_time" timestamp NOT NULL, "update_user" int8 DEFAULT NULL, "update_time" timestamp DEFAULT NULL, + "deleted" int8 NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); -CREATE UNIQUE INDEX "uk_role_name" ON "sys_role" ("name"); -CREATE UNIQUE INDEX "uk_role_code" ON "sys_role" ("code"); +CREATE UNIQUE INDEX "uk_role_name" ON "sys_role" ("name", "deleted"); +CREATE UNIQUE INDEX "uk_role_code" ON "sys_role" ("code", "deleted"); CREATE INDEX "idx_role_create_user" ON "sys_role" ("create_user"); CREATE INDEX "idx_role_update_user" ON "sys_role" ("update_user"); +CREATE INDEX "idx_role_deleted" ON "sys_role" ("deleted"); COMMENT ON COLUMN "sys_role"."id" IS 'ID'; COMMENT ON COLUMN "sys_role"."name" IS '名称'; COMMENT ON COLUMN "sys_role"."code" IS '编码'; @@ -115,6 +123,7 @@ COMMENT ON COLUMN "sys_role"."create_user" IS '创建人'; COMMENT ON COLUMN "sys_role"."create_time" IS '创建时间'; COMMENT ON COLUMN "sys_role"."update_user" IS '修改人'; COMMENT ON COLUMN "sys_role"."update_time" IS '修改时间'; +COMMENT ON COLUMN "sys_role"."deleted" IS '是否已删除(0:否;id:是)'; COMMENT ON TABLE "sys_role" IS '角色表'; CREATE TABLE IF NOT EXISTS "sys_user" ( @@ -135,14 +144,16 @@ CREATE TABLE IF NOT EXISTS "sys_user" ( "create_time" timestamp NOT NULL, "update_user" int8 DEFAULT NULL, "update_time" timestamp DEFAULT NULL, + "deleted" int8 NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); -CREATE UNIQUE INDEX "uk_user_username" ON "sys_user" ("username"); -CREATE UNIQUE INDEX "uk_user_email" ON "sys_user" ("email"); -CREATE UNIQUE INDEX "uk_user_phone" ON "sys_user" ("phone"); +CREATE UNIQUE INDEX "uk_user_username" ON "sys_user" ("username", "deleted"); +CREATE UNIQUE INDEX "uk_user_email" ON "sys_user" ("email", "deleted"); +CREATE UNIQUE INDEX "uk_user_phone" ON "sys_user" ("phone", "deleted"); CREATE INDEX "idx_user_dept_id" ON "sys_user" ("dept_id"); CREATE INDEX "idx_user_create_user" ON "sys_user" ("create_user"); CREATE INDEX "idx_user_update_user" ON "sys_user" ("update_user"); +CREATE INDEX "idx_user_deleted" ON "sys_user" ("deleted"); COMMENT ON COLUMN "sys_user"."id" IS 'ID'; COMMENT ON COLUMN "sys_user"."username" IS '用户名'; COMMENT ON COLUMN "sys_user"."nickname" IS '昵称'; @@ -160,6 +171,7 @@ COMMENT ON COLUMN "sys_user"."create_user" IS '创建人'; COMMENT ON COLUMN "sys_user"."create_time" IS '创建时间'; COMMENT ON COLUMN "sys_user"."update_user" IS '修改人'; COMMENT ON COLUMN "sys_user"."update_time" IS '修改时间'; +COMMENT ON COLUMN "sys_user"."deleted" IS '是否已删除(0:否;id:是)'; COMMENT ON TABLE "sys_user" IS '用户表'; CREATE TABLE IF NOT EXISTS "sys_user_password_history" ( @@ -184,9 +196,11 @@ CREATE TABLE IF NOT EXISTS "sys_user_social" ( "meta_json" text DEFAULT NULL, "last_login_time" timestamp DEFAULT NULL, "create_time" timestamp NOT NULL, + "update_time" timestamp DEFAULT NULL, + "deleted" int8 NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); -CREATE UNIQUE INDEX "uk_user_source_open_id" ON "sys_user_social" ("source", "open_id"); +CREATE UNIQUE INDEX "uk_user_source_open_id" ON "sys_user_social" ("source", "open_id", "deleted"); COMMENT ON COLUMN "sys_user_social"."id" IS 'ID'; COMMENT ON COLUMN "sys_user_social"."source" IS '来源'; COMMENT ON COLUMN "sys_user_social"."open_id" IS '开放ID'; @@ -194,6 +208,8 @@ COMMENT ON COLUMN "sys_user_social"."user_id" IS '用户ID'; COMMENT ON COLUMN "sys_user_social"."meta_json" IS '附加信息'; COMMENT ON COLUMN "sys_user_social"."last_login_time" IS '最后登录时间'; COMMENT ON COLUMN "sys_user_social"."create_time" IS '创建时间'; +COMMENT ON COLUMN "sys_user_social"."update_time" IS '修改时间'; +COMMENT ON COLUMN "sys_user_social"."deleted" IS '是否已删除(0:否;id:是)'; COMMENT ON TABLE "sys_user_social" IS '用户社会化关联表'; CREATE TABLE IF NOT EXISTS "sys_user_role" ( @@ -260,10 +276,11 @@ CREATE TABLE IF NOT EXISTS "sys_dict" ( "create_time" timestamp NOT NULL, "update_user" int8 DEFAULT NULL, "update_time" timestamp DEFAULT NULL, + "deleted" int8 NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); -CREATE UNIQUE INDEX "uk_dict_name" ON "sys_dict" ("name"); -CREATE UNIQUE INDEX "uk_dict_code" ON "sys_dict" ("code"); +CREATE UNIQUE INDEX "uk_dict_name" ON "sys_dict" ("name", "deleted"); +CREATE UNIQUE INDEX "uk_dict_code" ON "sys_dict" ("code", "deleted"); COMMENT ON COLUMN "sys_dict"."id" IS 'ID'; COMMENT ON COLUMN "sys_dict"."name" IS '名称'; COMMENT ON COLUMN "sys_dict"."code" IS '编码'; @@ -273,6 +290,7 @@ COMMENT ON COLUMN "sys_dict"."create_user" IS '创建人'; COMMENT ON COLUMN "sys_dict"."create_time" IS '创建时间'; COMMENT ON COLUMN "sys_dict"."update_user" IS '修改人'; COMMENT ON COLUMN "sys_dict"."update_time" IS '修改时间'; +COMMENT ON COLUMN "sys_dict"."deleted" IS '是否已删除(0:否;id:是)'; COMMENT ON TABLE "sys_dict" IS '字典表'; CREATE TABLE IF NOT EXISTS "sys_dict_item" ( @@ -288,12 +306,13 @@ CREATE TABLE IF NOT EXISTS "sys_dict_item" ( "create_time" timestamp NOT NULL, "update_user" int8 DEFAULT NULL, "update_time" timestamp DEFAULT NULL, + "deleted" int8 NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); -CREATE UNIQUE INDEX "uk_dict_item_value_dict_id" ON "sys_dict_item" ("value", "dict_id"); -CREATE INDEX "idx_dict_item_dict_id" ON "sys_dict_item" ("dict_id"); -CREATE INDEX "idx_dict_item_create_user" ON "sys_dict_item" ("create_user"); -CREATE INDEX "idx_dict_item_update_user" ON "sys_dict_item" ("update_user"); +CREATE UNIQUE INDEX "uk_dict_item_value_dict_id" ON "sys_dict_item" ("value", "dict_id", "deleted"); +CREATE INDEX "idx_dict_item_dict_id" ON "sys_dict_item" ("dict_id"); +CREATE INDEX "idx_dict_item_create_user" ON "sys_dict_item" ("create_user"); +CREATE INDEX "idx_dict_item_update_user" ON "sys_dict_item" ("update_user"); COMMENT ON COLUMN "sys_dict_item"."id" IS 'ID'; COMMENT ON COLUMN "sys_dict_item"."label" IS '标签'; COMMENT ON COLUMN "sys_dict_item"."value" IS '值'; @@ -306,6 +325,7 @@ COMMENT ON COLUMN "sys_dict_item"."create_user" IS '创建人'; COMMENT ON COLUMN "sys_dict_item"."create_time" IS '创建时间'; COMMENT ON COLUMN "sys_dict_item"."update_user" IS '修改人'; COMMENT ON COLUMN "sys_dict_item"."update_time" IS '修改时间'; +COMMENT ON COLUMN "sys_dict_item"."deleted" IS '是否已删除(0:否;id:是)'; COMMENT ON TABLE "sys_dict_item" IS '字典项表'; CREATE TABLE IF NOT EXISTS "sys_log" ( @@ -366,8 +386,11 @@ CREATE TABLE IF NOT EXISTS "sys_message" ( "scope" int2 NOT NULL DEFAULT 1, "users" json DEFAULT NULL, "create_time" timestamp NOT NULL, + "update_time" timestamp DEFAULT NULL, + "deleted" int8 NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); +CREATE INDEX "idx_message_deleted" ON "sys_message" ("deleted"); COMMENT ON COLUMN "sys_message"."id" IS 'ID'; COMMENT ON COLUMN "sys_message"."title" IS '标题'; COMMENT ON COLUMN "sys_message"."content" IS '内容'; @@ -376,6 +399,8 @@ COMMENT ON COLUMN "sys_message"."path" IS '跳转路径'; COMMENT ON COLUMN "sys_message"."scope" IS '通知范围(1:所有人;2:指定用户)'; COMMENT ON COLUMN "sys_message"."users" IS '通知用户'; COMMENT ON COLUMN "sys_message"."create_time" IS '创建时间'; +COMMENT ON COLUMN "sys_message"."update_time" IS '修改时间'; +COMMENT ON COLUMN "sys_message"."deleted" IS '是否已删除(0:否;id:是)'; COMMENT ON TABLE "sys_message" IS '消息表'; CREATE TABLE IF NOT EXISTS "sys_message_log" ( @@ -405,10 +430,12 @@ CREATE TABLE IF NOT EXISTS "sys_notice" ( "create_time" timestamp NOT NULL, "update_user" int8 DEFAULT NULL, "update_time" timestamp DEFAULT NULL, + "deleted" int8 NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE INDEX "idx_notice_create_user" ON "sys_notice" ("create_user"); CREATE INDEX "idx_notice_update_user" ON "sys_notice" ("update_user"); +CREATE INDEX "idx_notice_deleted" ON "sys_notice" ("deleted"); COMMENT ON COLUMN "sys_notice"."id" IS 'ID'; COMMENT ON COLUMN "sys_notice"."title" IS '标题'; COMMENT ON COLUMN "sys_notice"."content" IS '内容'; @@ -424,6 +451,7 @@ COMMENT ON COLUMN "sys_notice"."create_user" IS '创建人'; COMMENT ON COLUMN "sys_notice"."create_time" IS '创建时间'; COMMENT ON COLUMN "sys_notice"."update_user" IS '修改人'; COMMENT ON COLUMN "sys_notice"."update_time" IS '修改时间'; +COMMENT ON COLUMN "sys_notice"."deleted" IS '是否已删除(0:否;id:是)'; COMMENT ON TABLE "sys_notice" IS '公告表'; CREATE TABLE IF NOT EXISTS "sys_notice_log" ( @@ -455,11 +483,13 @@ CREATE TABLE IF NOT EXISTS "sys_storage" ( "create_time" timestamp NOT NULL, "update_user" int8 DEFAULT NULL, "update_time" timestamp DEFAULT NULL, + "deleted" int8 NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); -CREATE UNIQUE INDEX "uk_storage_code" ON "sys_storage" ("code"); +CREATE UNIQUE INDEX "uk_storage_code" ON "sys_storage" ("code", "deleted"); CREATE INDEX "idx_storage_create_user" ON "sys_storage" ("create_user"); CREATE INDEX "idx_storage_update_user" ON "sys_storage" ("update_user"); +CREATE INDEX "idx_storage_deleted" ON "sys_storage" ("deleted"); COMMENT ON COLUMN "sys_storage"."id" IS 'ID'; COMMENT ON COLUMN "sys_storage"."name" IS '名称'; COMMENT ON COLUMN "sys_storage"."code" IS '编码'; @@ -477,6 +507,7 @@ COMMENT ON COLUMN "sys_storage"."create_user" IS '创建人'; COMMENT ON COLUMN "sys_storage"."create_time" IS '创建时间'; COMMENT ON COLUMN "sys_storage"."update_user" IS '修改人'; COMMENT ON COLUMN "sys_storage"."update_time" IS '修改时间'; +COMMENT ON COLUMN "sys_storage"."deleted" IS '是否已删除(0:否;id:是)'; COMMENT ON TABLE "sys_storage" IS '存储表'; CREATE TABLE IF NOT EXISTS "sys_file" ( @@ -499,12 +530,15 @@ CREATE TABLE IF NOT EXISTS "sys_file" ( "create_time" timestamp NOT NULL, "update_user" int8 DEFAULT NULL, "update_time" timestamp DEFAULT NULL, + "deleted" int8 NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); -CREATE INDEX "idx_file_type" ON "sys_file" ("type"); -CREATE INDEX "idx_file_sha256" ON "sys_file" ("sha256"); -CREATE INDEX "idx_file_storage_id" ON "sys_file" ("storage_id"); +CREATE INDEX "idx_file_type" ON "sys_file" ("type"); +CREATE INDEX "idx_file_sha256" ON "sys_file" ("sha256"); +CREATE INDEX "idx_file_storage_id" ON "sys_file" ("storage_id"); CREATE INDEX "idx_file_create_user" ON "sys_file" ("create_user"); +CREATE INDEX "idx_file_update_user" ON "sys_file" ("update_user"); +CREATE INDEX "idx_file_deleted" ON "sys_file" ("deleted"); COMMENT ON COLUMN "sys_file"."id" IS 'ID'; COMMENT ON COLUMN "sys_file"."name" IS '名称'; COMMENT ON COLUMN "sys_file"."original_name" IS '原始名称'; @@ -524,6 +558,7 @@ COMMENT ON COLUMN "sys_file"."create_user" IS '创建人'; COMMENT ON COLUMN "sys_file"."create_time" IS '创建时间'; COMMENT ON COLUMN "sys_file"."update_user" IS '修改人'; COMMENT ON COLUMN "sys_file"."update_time" IS '修改时间'; +COMMENT ON COLUMN "sys_file"."deleted" IS '是否已删除(0:否;id:是)'; COMMENT ON TABLE "sys_file" IS '文件表'; CREATE TABLE IF NOT EXISTS "sys_client" ( @@ -538,11 +573,13 @@ CREATE TABLE IF NOT EXISTS "sys_client" ( "create_time" timestamp NOT NULL, "update_user" int8 DEFAULT NULL, "update_time" timestamp DEFAULT NULL, + "deleted" int8 NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE UNIQUE INDEX "uk_client_client_id" ON "sys_client" ("client_id"); -CREATE INDEX "idx_client_create_user" ON "sys_client" ("create_user"); -CREATE INDEX "idx_client_update_user" ON "sys_client" ("update_user"); +CREATE INDEX "idx_client_create_user" ON "sys_client" ("create_user"); +CREATE INDEX "idx_client_update_user" ON "sys_client" ("update_user"); +CREATE INDEX "idx_client_deleted" ON "sys_client" ("deleted"); COMMENT ON COLUMN "sys_client"."id" IS 'ID'; COMMENT ON COLUMN "sys_client"."client_id" IS '客户端ID'; COMMENT ON COLUMN "sys_client"."client_type" IS '客户端类型'; @@ -554,6 +591,7 @@ COMMENT ON COLUMN "sys_client"."create_user" IS '创建人'; COMMENT ON COLUMN "sys_client"."create_time" IS '创建时间'; COMMENT ON COLUMN "sys_client"."update_user" IS '修改人'; COMMENT ON COLUMN "sys_client"."update_time" IS '修改时间'; +COMMENT ON COLUMN "sys_client"."deleted" IS '是否已删除(0:否;id:是)'; COMMENT ON TABLE "sys_client" IS '客户端表'; CREATE TABLE IF NOT EXISTS "sys_sms_config" ( @@ -575,10 +613,12 @@ CREATE TABLE IF NOT EXISTS "sys_sms_config" ( "create_time" timestamp NOT NULL, "update_user" int8 DEFAULT NULL, "update_time" timestamp DEFAULT NULL, + "deleted" int8 NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE INDEX "idx_sms_config_create_user" ON "sys_sms_config" ("create_user"); CREATE INDEX "idx_sms_config_update_user" ON "sys_sms_config" ("update_user"); +CREATE INDEX "idx_sms_config_deleted" ON "sys_sms_config" ("deleted"); COMMENT ON COLUMN "sys_sms_config"."id" IS 'ID'; COMMENT ON COLUMN "sys_sms_config"."name" IS '名称'; COMMENT ON COLUMN "sys_sms_config"."supplier" IS '厂商'; @@ -597,7 +637,8 @@ COMMENT ON COLUMN "sys_sms_config"."create_user" IS '创建人'; COMMENT ON COLUMN "sys_sms_config"."create_time" IS '创建时间'; COMMENT ON COLUMN "sys_sms_config"."update_user" IS '修改人'; COMMENT ON COLUMN "sys_sms_config"."update_time" IS '修改时间'; -COMMENT ON TABLE "sys_sms_config" IS '短信配置表'; +COMMENT ON COLUMN "sys_sms_config"."deleted" IS '是否已删除(0:否;id:是)'; +COMMENT ON TABLE "sys_sms_config" IS '短信配置表'; CREATE TABLE IF NOT EXISTS "sys_sms_log" ( "id" int8 NOT NULL, @@ -610,7 +651,7 @@ CREATE TABLE IF NOT EXISTS "sys_sms_log" ( "create_time" timestamp NOT NULL, PRIMARY KEY ("id") ); -CREATE INDEX "idx_sms_log_config_id" ON "sys_sms_log" ("config_id"); +CREATE INDEX "idx_sms_log_config_id" ON "sys_sms_log" ("config_id"); CREATE INDEX "idx_sms_log_create_user" ON "sys_sms_log" ("create_user"); COMMENT ON COLUMN "sys_sms_log"."id" IS 'ID'; COMMENT ON COLUMN "sys_sms_log"."config_id" IS '配置ID'; @@ -620,4 +661,4 @@ COMMENT ON COLUMN "sys_sms_log"."status" IS '发送状态(1:成功;2 COMMENT ON COLUMN "sys_sms_log"."res_msg" IS '返回数据'; COMMENT ON COLUMN "sys_sms_log"."create_user" IS '创建人'; COMMENT ON COLUMN "sys_sms_log"."create_time" IS '创建时间'; -COMMENT ON TABLE "sys_sms_log" IS '短信日志表'; \ No newline at end of file +COMMENT ON TABLE "sys_sms_log" IS '短信日志表'; \ No newline at end of file diff --git a/continew-server/src/main/resources/db/changelog/postgresql/plugin/plugin_open.sql b/continew-server/src/main/resources/db/changelog/postgresql/plugin/plugin_open.sql index 008c3643..b17e7352 100644 --- a/continew-server/src/main/resources/db/changelog/postgresql/plugin/plugin_open.sql +++ b/continew-server/src/main/resources/db/changelog/postgresql/plugin/plugin_open.sql @@ -15,23 +15,26 @@ CREATE TABLE IF NOT EXISTS "sys_app" ( "create_time" timestamp NOT NULL, "update_user" int8 DEFAULT NULL, "update_time" timestamp DEFAULT NULL, + "deleted" int8 NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); -CREATE UNIQUE INDEX "uk_app_access_key" ON "sys_app" ("access_key"); -CREATE INDEX "idx_app_create_user" ON "sys_app" ("create_user"); -CREATE INDEX "idx_app_update_user" ON "sys_app" ("update_user"); -COMMENT ON COLUMN "sys_app"."id" IS 'ID'; -COMMENT ON COLUMN "sys_app"."name" IS '名称'; -COMMENT ON COLUMN "sys_app"."access_key" IS 'Access Key(访问密钥)'; -COMMENT ON COLUMN "sys_app"."secret_key" IS 'Secret Key(私有密钥)'; -COMMENT ON COLUMN "sys_app"."expire_time" IS '失效时间'; -COMMENT ON COLUMN "sys_app"."description" IS '描述'; -COMMENT ON COLUMN "sys_app"."status" IS '状态(1:启用;2:禁用)'; -COMMENT ON COLUMN "sys_app"."create_user" IS '创建人'; -COMMENT ON COLUMN "sys_app"."create_time" IS '创建时间'; -COMMENT ON COLUMN "sys_app"."update_user" IS '修改人'; -COMMENT ON COLUMN "sys_app"."update_time" IS '修改时间'; -COMMENT ON TABLE "sys_app" IS '应用表'; +CREATE UNIQUE INDEX "uk_app_access_key" ON "sys_app" ("access_key", "deleted"); +CREATE INDEX "idx_app_create_user" ON "sys_app" ("create_user"); +CREATE INDEX "idx_app_update_user" ON "sys_app" ("update_user"); +CREATE INDEX "idx_app_deleted" ON "sys_app" ("deleted"); +COMMENT ON COLUMN "sys_app"."id" IS 'ID'; +COMMENT ON COLUMN "sys_app"."name" IS '名称'; +COMMENT ON COLUMN "sys_app"."access_key" IS 'Access Key(访问密钥)'; +COMMENT ON COLUMN "sys_app"."secret_key" IS 'Secret Key(私有密钥)'; +COMMENT ON COLUMN "sys_app"."expire_time" IS '失效时间'; +COMMENT ON COLUMN "sys_app"."description" IS '描述'; +COMMENT ON COLUMN "sys_app"."status" IS '状态(1:启用;2:禁用)'; +COMMENT ON COLUMN "sys_app"."create_user" IS '创建人'; +COMMENT ON COLUMN "sys_app"."create_time" IS '创建时间'; +COMMENT ON COLUMN "sys_app"."update_user" IS '修改人'; +COMMENT ON COLUMN "sys_app"."update_time" IS '修改时间'; +COMMENT ON COLUMN "sys_app"."deleted" IS '是否已删除(0:否;id:是)'; +COMMENT ON TABLE "sys_app" IS '应用表'; -- 初始化默认菜单 INSERT INTO "sys_menu" diff --git a/continew-server/src/main/resources/db/changelog/postgresql/plugin/plugin_tenant.sql b/continew-server/src/main/resources/db/changelog/postgresql/plugin/plugin_tenant.sql index 48f784e9..17f83025 100644 --- a/continew-server/src/main/resources/db/changelog/postgresql/plugin/plugin_tenant.sql +++ b/continew-server/src/main/resources/db/changelog/postgresql/plugin/plugin_tenant.sql @@ -18,27 +18,30 @@ CREATE TABLE IF NOT EXISTS "tenant" ( "create_time" timestamp NOT NULL, "update_user" int8 DEFAULT NULL, "update_time" timestamp DEFAULT NULL, + "deleted" int8 NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); -CREATE UNIQUE INDEX "uk_tenant_code" ON "tenant" ("code"); -CREATE INDEX "idx_tenant_admin_user" ON "tenant" ("admin_user"); -CREATE INDEX "idx_tenant_package_id" ON "tenant" ("package_id"); +CREATE UNIQUE INDEX "uk_tenant_code" ON "tenant" ("code", "deleted"); +CREATE INDEX "idx_tenant_admin_user" ON "tenant" ("admin_user"); +CREATE INDEX "idx_tenant_package_id" ON "tenant" ("package_id"); CREATE INDEX "idx_tenant_create_user" ON "tenant" ("create_user"); CREATE INDEX "idx_tenant_update_user" ON "tenant" ("update_user"); -COMMENT ON COLUMN "tenant"."id" IS 'ID'; -COMMENT ON COLUMN "tenant"."name" IS '名称'; -COMMENT ON COLUMN "tenant"."code" IS '编码'; -COMMENT ON COLUMN "tenant"."domain" IS '域名'; -COMMENT ON COLUMN "tenant"."expire_time" IS '过期时间'; -COMMENT ON COLUMN "tenant"."description" IS '描述'; -COMMENT ON COLUMN "tenant"."status" IS '状态(1:启用;2:禁用)'; -COMMENT ON COLUMN "tenant"."package_id" IS '套餐ID'; -COMMENT ON COLUMN "tenant"."admin_user" IS '管理员用户'; +CREATE INDEX "idx_tenant_deleted" ON "tenant" ("deleted"); +COMMENT ON COLUMN "tenant"."id" IS 'ID'; +COMMENT ON COLUMN "tenant"."name" IS '名称'; +COMMENT ON COLUMN "tenant"."code" IS '编码'; +COMMENT ON COLUMN "tenant"."domain" IS '域名'; +COMMENT ON COLUMN "tenant"."expire_time" IS '过期时间'; +COMMENT ON COLUMN "tenant"."description" IS '描述'; +COMMENT ON COLUMN "tenant"."status" IS '状态(1:启用;2:禁用)'; +COMMENT ON COLUMN "tenant"."package_id" IS '套餐ID'; +COMMENT ON COLUMN "tenant"."admin_user" IS '管理员用户'; COMMENT ON COLUMN "tenant"."admin_username" IS '管理员用户名'; -COMMENT ON COLUMN "tenant"."create_user" IS '创建人'; -COMMENT ON COLUMN "tenant"."create_time" IS '创建时间'; -COMMENT ON COLUMN "tenant"."update_user" IS '修改人'; -COMMENT ON COLUMN "tenant"."update_time" IS '修改时间'; +COMMENT ON COLUMN "tenant"."create_user" IS '创建人'; +COMMENT ON COLUMN "tenant"."create_time" IS '创建时间'; +COMMENT ON COLUMN "tenant"."update_user" IS '修改人'; +COMMENT ON COLUMN "tenant"."update_time" IS '修改时间'; +COMMENT ON COLUMN "tenant"."deleted" IS '是否已删除(0:否;id:是)'; COMMENT ON TABLE "tenant" IS '租户表'; CREATE TABLE IF NOT EXISTS "tenant_package" ( @@ -51,22 +54,25 @@ CREATE TABLE IF NOT EXISTS "tenant_package" ( "create_user" int8 NOT NULL, "create_time" timestamp NOT NULL, "update_user" int8 DEFAULT NULL, - "update_time" timestamp DEFAULT NULL, + "update_time" timestamp DEFAULT NULL, + "deleted" int8 NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE INDEX "idx_tenant_package_create_user" ON "tenant_package" ("create_user"); CREATE INDEX "idx_tenant_package_update_user" ON "tenant_package" ("update_user"); -COMMENT ON COLUMN "tenant_package"."id" IS 'ID'; -COMMENT ON COLUMN "tenant_package"."name" IS '名称'; -COMMENT ON COLUMN "tenant_package"."sort" IS '排序'; +CREATE INDEX "idx_tenant_deleted" ON "tenant_package" ("deleted"); +COMMENT ON COLUMN "tenant_package"."id" IS 'ID'; +COMMENT ON COLUMN "tenant_package"."name" IS '名称'; +COMMENT ON COLUMN "tenant_package"."sort" IS '排序'; COMMENT ON COLUMN "tenant_package"."menu_check_strictly" IS '菜单选择是否父子节点关联'; -COMMENT ON COLUMN "tenant_package"."description" IS '描述'; -COMMENT ON COLUMN "tenant_package"."status" IS '状态(1:启用;2:禁用)'; -COMMENT ON COLUMN "tenant_package"."create_user" IS '创建人'; -COMMENT ON COLUMN "tenant_package"."create_time" IS '创建时间'; -COMMENT ON COLUMN "tenant_package"."update_user" IS '修改人'; -COMMENT ON COLUMN "tenant_package"."update_time" IS '修改时间'; -COMMENT ON TABLE "tenant_package" IS '租户套餐表'; +COMMENT ON COLUMN "tenant_package"."description" IS '描述'; +COMMENT ON COLUMN "tenant_package"."status" IS '状态(1:启用;2:禁用)'; +COMMENT ON COLUMN "tenant_package"."create_user" IS '创建人'; +COMMENT ON COLUMN "tenant_package"."create_time" IS '创建时间'; +COMMENT ON COLUMN "tenant_package"."update_user" IS '修改人'; +COMMENT ON COLUMN "tenant_package"."update_time" IS '修改时间'; +COMMENT ON COLUMN "tenant_package"."deleted" IS '是否已删除(0:否;id:是)'; +COMMENT ON TABLE "tenant_package" IS '租户套餐表'; CREATE TABLE IF NOT EXISTS "tenant_package_menu" ( "package_id" int8 NOT NULL, @@ -74,8 +80,8 @@ CREATE TABLE IF NOT EXISTS "tenant_package_menu" ( PRIMARY KEY ("package_id", "menu_id") ); COMMENT ON COLUMN "tenant_package_menu"."package_id" IS '套餐ID'; -COMMENT ON COLUMN "tenant_package_menu"."menu_id" IS '菜单ID'; -COMMENT ON TABLE "tenant_package_menu" IS '租户套餐和菜单关联表'; +COMMENT ON COLUMN "tenant_package_menu"."menu_id" IS '菜单ID'; +COMMENT ON TABLE "tenant_package_menu" IS '租户套餐和菜单关联表'; -- 为已有表增加租户字段 ALTER TABLE "sys_dept" ADD COLUMN "tenant_id" int8 NOT NULL DEFAULT 0; @@ -140,19 +146,22 @@ CREATE INDEX "idx_app_tenant_id" ON "sys_app" ("tenant_id"); -- 调整唯一索引 DROP INDEX IF EXISTS "uk_dept_name_parent_id"; -CREATE UNIQUE INDEX "uk_dept_name_parent_id" ON "sys_dept" ("name", "parent_id", "tenant_id"); +CREATE UNIQUE INDEX "uk_dept_name_parent_id" ON "sys_dept" ("name", "parent_id", "deleted", "tenant_id"); DROP INDEX IF EXISTS "uk_role_name", "uk_role_code"; -CREATE UNIQUE INDEX "uk_role_name" ON "sys_role" ("name", "tenant_id"); -CREATE UNIQUE INDEX "uk_role_code" ON "sys_role" ("code", "tenant_id"); +CREATE UNIQUE INDEX "uk_role_name" ON "sys_role" ("name", "deleted", "tenant_id"); +CREATE UNIQUE INDEX "uk_role_code" ON "sys_role" ("code", "deleted", "tenant_id"); DROP INDEX IF EXISTS "uk_user_username", "uk_user_email", "uk_user_phone"; -CREATE UNIQUE INDEX "uk_user_username" ON "sys_user" ("username", "tenant_id"); -CREATE UNIQUE INDEX "uk_user_email" ON "sys_user" ("email", "tenant_id"); -CREATE UNIQUE INDEX "uk_user_phone" ON "sys_user" ("phone", "tenant_id"); +CREATE UNIQUE INDEX "uk_user_username" ON "sys_user" ("username", "deleted", "tenant_id"); +CREATE UNIQUE INDEX "uk_user_email" ON "sys_user" ("email", "deleted", "tenant_id"); +CREATE UNIQUE INDEX "uk_user_phone" ON "sys_user" ("phone", "deleted", "tenant_id"); + +DROP INDEX IF EXISTS "uk_user_source_open_id"; +CREATE UNIQUE INDEX "uk_user_source_open_id" ON "sys_user_social" ("source", "open_id", "deleted", "tenant_id"); DROP INDEX IF EXISTS "uk_app_access_key"; -CREATE UNIQUE INDEX "uk_app_access_key" ON "sys_app" ("access_key", "tenant_id"); +CREATE UNIQUE INDEX "uk_app_access_key" ON "sys_app" ("access_key", "deleted", "tenant_id"); -- 初始化默认菜单 INSERT INTO "sys_menu" ("id", "title", "parent_id", "type", "path", "name", "component", "redirect", "icon", "is_external", "is_cache", "is_hidden", "permission", "sort", "status", "create_user", "create_time") @@ -174,9 +183,3 @@ VALUES (3024, '修改', 3020, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'tenant:package:update', 4, 1, 1, NOW()), (3025, '删除', 3020, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'tenant:package:delete', 5, 1, 1, NOW()); --- changeset kai:20251022-01 --- comment 重置租户场景索引 -DROP INDEX IF EXISTS "uk_user_source_open_id"; -CREATE UNIQUE INDEX "uk_user_source_open_id" - ON "sys_user_social" ("source", "open_id", "tenant_id"); - diff --git a/continew-system/src/main/java/top/continew/admin/system/mapper/FileMapper.java b/continew-system/src/main/java/top/continew/admin/system/mapper/FileMapper.java index a6a7b809..8b8b454c 100644 --- a/continew-system/src/main/java/top/continew/admin/system/mapper/FileMapper.java +++ b/continew-system/src/main/java/top/continew/admin/system/mapper/FileMapper.java @@ -38,6 +38,6 @@ public interface FileMapper extends BaseMapper { * * @return 文件资源统计信息 */ - @Select("SELECT type, COUNT(1) number, SUM(size) size FROM sys_file WHERE type != 0 GROUP BY type") + @Select("SELECT type, COUNT(1) number, SUM(size) size FROM sys_file WHERE deleted = 0 AND type != 0 GROUP BY type") List statistics(); } \ No newline at end of file diff --git a/continew-system/src/main/java/top/continew/admin/system/mapper/user/UserMapper.java b/continew-system/src/main/java/top/continew/admin/system/mapper/user/UserMapper.java index 7958d17c..62e50c2f 100644 --- a/continew-system/src/main/java/top/continew/admin/system/mapper/user/UserMapper.java +++ b/continew-system/src/main/java/top/continew/admin/system/mapper/user/UserMapper.java @@ -65,7 +65,7 @@ public interface UserMapper extends DataPermissionMapper { * @param username 用户名 * @return 用户信息 */ - @Select("SELECT * FROM sys_user WHERE username = #{username}") + @Select("SELECT * FROM sys_user WHERE username = #{username} AND deleted = 0") UserDO selectByUsername(@Param("username") String username); /** @@ -74,7 +74,7 @@ public interface UserMapper extends DataPermissionMapper { * @param phone 手机号 * @return 用户信息 */ - @Select("SELECT * FROM sys_user WHERE phone = #{phone}") + @Select("SELECT * FROM sys_user WHERE phone = #{phone} AND deleted = 0") UserDO selectByPhone(@FieldEncrypt @Param("phone") String phone); /** @@ -83,7 +83,7 @@ public interface UserMapper extends DataPermissionMapper { * @param email 邮箱 * @return 用户信息 */ - @Select("SELECT * FROM sys_user WHERE email = #{email}") + @Select("SELECT * FROM sys_user WHERE email = #{email} AND deleted = 0") UserDO selectByEmail(@FieldEncrypt @Param("email") String email); /** @@ -92,6 +92,6 @@ public interface UserMapper extends DataPermissionMapper { * @param id ID * @return 昵称 */ - @Select("SELECT nickname FROM sys_user WHERE id = #{id}") + @Select("SELECT nickname FROM sys_user WHERE id = #{id} AND deleted = 0") String selectNicknameById(@Param("id") Long id); } diff --git a/continew-system/src/main/java/top/continew/admin/system/model/entity/MessageDO.java b/continew-system/src/main/java/top/continew/admin/system/model/entity/MessageDO.java index 8567ad90..a3063399 100644 --- a/continew-system/src/main/java/top/continew/admin/system/model/entity/MessageDO.java +++ b/continew-system/src/main/java/top/continew/admin/system/model/entity/MessageDO.java @@ -85,4 +85,15 @@ public class MessageDO implements Serializable { */ @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; + + /** + * 修改时间 + */ + @TableField(fill = FieldFill.UPDATE) + private LocalDateTime updateTime; + + /** + * 是否已删除(0:否;id:是) + */ + private Long deleted; } \ No newline at end of file diff --git a/continew-system/src/main/java/top/continew/admin/system/model/entity/user/UserSocialDO.java b/continew-system/src/main/java/top/continew/admin/system/model/entity/user/UserSocialDO.java index d8c99846..4140604e 100644 --- a/continew-system/src/main/java/top/continew/admin/system/model/entity/user/UserSocialDO.java +++ b/continew-system/src/main/java/top/continew/admin/system/model/entity/user/UserSocialDO.java @@ -75,4 +75,15 @@ public class UserSocialDO implements Serializable { */ @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; + + /** + * 修改时间 + */ + @TableField(fill = FieldFill.UPDATE) + private LocalDateTime updateTime; + + /** + * 是否已删除(0:否;id:是) + */ + private Long deleted; } diff --git a/continew-system/src/main/java/top/continew/admin/system/service/impl/UserServiceImpl.java b/continew-system/src/main/java/top/continew/admin/system/service/impl/UserServiceImpl.java index b8f98a25..218c236b 100644 --- a/continew-system/src/main/java/top/continew/admin/system/service/impl/UserServiceImpl.java +++ b/continew-system/src/main/java/top/continew/admin/system/service/impl/UserServiceImpl.java @@ -510,7 +510,8 @@ public class UserServiceImpl extends BaseServiceImpl \ No newline at end of file diff --git a/continew-system/src/main/resources/mapper/MenuMapper.xml b/continew-system/src/main/resources/mapper/MenuMapper.xml index 8007e0eb..d2597cf5 100644 --- a/continew-system/src/main/resources/mapper/MenuMapper.xml +++ b/continew-system/src/main/resources/mapper/MenuMapper.xml @@ -8,7 +8,8 @@ LEFT JOIN sys_role AS t3 ON t3.id = t2.role_id LEFT JOIN sys_user_role AS t4 ON t4.role_id = t3.id LEFT JOIN sys_user AS t5 ON t5.id = t4.user_id - WHERE t5.id = #{userId} + WHERE t1.deleted = 0 + AND t5.id = #{userId} AND t1.status = 1 AND t1.permission IS NOT NULL @@ -18,6 +19,8 @@ FROM sys_menu AS t1 LEFT JOIN sys_role_menu AS t2 ON t2.menu_id = t1.id LEFT JOIN sys_role AS t3 ON t3.id = t2.role_id - WHERE t3.id = #{roleId} AND t1.status = 1 + WHERE t1.deleted = 0 + AND t3.id = #{roleId} + AND t1.status = 1 \ No newline at end of file diff --git a/continew-system/src/main/resources/mapper/MessageMapper.xml b/continew-system/src/main/resources/mapper/MessageMapper.xml index cd8a2dd2..728796f0 100644 --- a/continew-system/src/main/resources/mapper/MessageMapper.xml +++ b/continew-system/src/main/resources/mapper/MessageMapper.xml @@ -1,7 +1,6 @@ - @@ -19,27 +18,26 @@ t2.read_time AS readTime FROM sys_message AS t1 LEFT JOIN sys_message_log AS t2 ON t2.message_id = t1.id AND t2.user_id = #{query.userId} - - - - - (t1.scope = 1 OR (t1.scope = 2 AND JSON_CONTAINS(t1.users, CONCAT('"', #{query.userId}, '"')))) - - - (t1.scope = 1 OR (t1.scope = 2 AND t1.users::jsonb @> jsonb_build_array(#{query.userId}::text))) - - - - - AND t1.title LIKE CONCAT('%', #{query.title}, '%') - - - AND t1.type = #{query.type} - - - AND t2.read_time IS NOT NULL - - + WHERE t1.deleted = 0 + + + + AND (t1.scope = 1 OR (t1.scope = 2 AND JSON_CONTAINS(t1.users, CONCAT('"', #{query.userId}, '"')))) + + + AND (t1.scope = 1 OR (t1.scope = 2 AND t1.users::jsonb @> jsonb_build_array(#{query.userId}::text))) + + + + + AND t1.title LIKE CONCAT('%', #{query.title}, '%') + + + AND t1.type = #{query.type} + + + AND t2.read_time IS NOT NULL + ORDER BY t1.create_time DESC @@ -54,7 +52,8 @@ t1.users, t1.create_time FROM sys_message AS t1 - WHERE t1.id = #{id} + WHERE t1.deleted = 0 + AND t1.id = #{id} SELECT - id, title, type, is_top - FROM sys_notice - WHERE status = 3 + t1.id, t1.title, t1.type, t1.is_top + FROM sys_notice AS t1 + WHERE t1.deleted = 0 AND t1.status = 3 - AND (notice_scope = 1 OR (notice_scope = 2 AND JSON_CONTAINS(notice_users, CONCAT('"', #{userId}, '"')))) + AND (t1.notice_scope = 1 OR (t1.notice_scope = 2 AND JSON_CONTAINS(t1.notice_users, CONCAT('"', #{userId}, '"')))) - AND (notice_scope = 1 OR (notice_scope = 2 AND notice_users::jsonb @> jsonb_build_array(#{userId}::text))) + AND (t1.notice_scope = 1 OR (t1.notice_scope = 2 AND t1.notice_users::jsonb @> jsonb_build_array(#{userId}::text))) - ORDER BY is_top DESC, publish_time DESC + ORDER BY t1.is_top DESC, t1.publish_time DESC LIMIT 5 \ No newline at end of file diff --git a/continew-system/src/main/resources/mapper/UserRoleMapper.xml b/continew-system/src/main/resources/mapper/UserRoleMapper.xml index 2d237677..18e2809b 100644 --- a/continew-system/src/main/resources/mapper/UserRoleMapper.xml +++ b/continew-system/src/main/resources/mapper/UserRoleMapper.xml @@ -1,7 +1,6 @@ - \ No newline at end of file