mirror of
				https://github.com/continew-org/continew-admin.git
				synced 2025-10-31 00:57:13 +08:00 
			
		
		
		
	refactor: 调整自增 ID 为分布式 ID
使用 CosId 提供的雪花算法实现
This commit is contained in:
		| @@ -13,6 +13,16 @@ | |||||||
|     <description>公共模块(存放公共工具类,公共配置等)</description> |     <description>公共模块(存放公共工具类,公共配置等)</description> | ||||||
|  |  | ||||||
|     <dependencies> |     <dependencies> | ||||||
|  |         <!-- CosId(通用、灵活、高性能的分布式 ID 生成器) --> | ||||||
|  |         <dependency> | ||||||
|  |             <groupId>me.ahoo.cosid</groupId> | ||||||
|  |             <artifactId>cosid-spring-boot-starter</artifactId> | ||||||
|  |         </dependency> | ||||||
|  |         <dependency> | ||||||
|  |             <groupId>me.ahoo.cosid</groupId> | ||||||
|  |             <artifactId>cosid-spring-redis</artifactId> | ||||||
|  |         </dependency> | ||||||
|  |  | ||||||
|         <!-- SMS4J(短信聚合框架,轻松集成多家短信服务,解决接入多个短信 SDK 的繁琐流程) --> |         <!-- SMS4J(短信聚合框架,轻松集成多家短信服务,解决接入多个短信 SDK 的繁琐流程) --> | ||||||
|         <dependency> |         <dependency> | ||||||
|             <groupId>org.dromara.sms4j</groupId> |             <groupId>org.dromara.sms4j</groupId> | ||||||
|   | |||||||
| @@ -141,7 +141,7 @@ mybatis-plus: | |||||||
|     db-config: |     db-config: | ||||||
|       # 主键类型(默认 assign_id,表示自行赋值) |       # 主键类型(默认 assign_id,表示自行赋值) | ||||||
|       # auto 代表使用数据库自增策略(需要在表中设置好自增约束) |       # auto 代表使用数据库自增策略(需要在表中设置好自增约束) | ||||||
|       id-type: AUTO |       id-type: ASSIGN_ID | ||||||
|       # 逻辑删除字段 |       # 逻辑删除字段 | ||||||
|       logic-delete-field: isDeleted |       logic-delete-field: isDeleted | ||||||
|       # 逻辑删除全局值(默认 1,表示已删除) |       # 逻辑删除全局值(默认 1,表示已删除) | ||||||
| @@ -153,6 +153,9 @@ mybatis-plus: | |||||||
|     enabled: true |     enabled: true | ||||||
|     # Mapper 接口扫描包配置 |     # Mapper 接口扫描包配置 | ||||||
|     mapper-package: ${project.base-package}.**.mapper |     mapper-package: ${project.base-package}.**.mapper | ||||||
|  |     # ID 生成器配置 | ||||||
|  |     id-generator: | ||||||
|  |       type: COSID | ||||||
|     # 数据权限配置 |     # 数据权限配置 | ||||||
|     data-permission: |     data-permission: | ||||||
|       enabled: true |       enabled: true | ||||||
| @@ -161,6 +164,30 @@ mybatis-plus: | |||||||
|       enabled: true |       enabled: true | ||||||
|       db-type: MYSQL |       db-type: MYSQL | ||||||
|  |  | ||||||
|  | --- ### CosId 配置 | ||||||
|  | cosid: | ||||||
|  |   namespace: ${spring.application.name} | ||||||
|  |   machine: | ||||||
|  |     enabled: true | ||||||
|  |     # 机器号分配器 | ||||||
|  |     distributor: | ||||||
|  |       type: REDIS | ||||||
|  |     guarder: | ||||||
|  |       # 开启机器号守护 | ||||||
|  |       enabled: true | ||||||
|  |   snowflake: | ||||||
|  |     enabled: true | ||||||
|  |     zone-id: Asia/Shanghai | ||||||
|  |     epoch: 1577203200000 | ||||||
|  |     share: | ||||||
|  |       # 开启时钟回拨同步 | ||||||
|  |       clock-sync: true | ||||||
|  |       friendly: true | ||||||
|  |     provider: | ||||||
|  |       safe-js: | ||||||
|  |         machine-bit: 3 | ||||||
|  |         sequence-bit: 9 | ||||||
|  |  | ||||||
| --- ### 服务器配置 | --- ### 服务器配置 | ||||||
| server: | server: | ||||||
|   servlet: |   servlet: | ||||||
|   | |||||||
| @@ -43,45 +43,45 @@ INSERT IGNORE INTO `sys_dept` | |||||||
| (`id`, `name`, `parent_id`, `ancestors`, `description`, `sort`, `status`, `is_system`, `create_user`, `create_time`, `update_user`, `update_time`) | (`id`, `name`, `parent_id`, `ancestors`, `description`, `sort`, `status`, `is_system`, `create_user`, `create_time`, `update_user`, `update_time`) | ||||||
| VALUES | VALUES | ||||||
| (1, 'Xxx科技有限公司', 0, '0', '系统初始部门', 1, 1, b'1', 1, NOW(), NULL, NULL), | (1, 'Xxx科技有限公司', 0, '0', '系统初始部门', 1, 1, b'1', 1, NOW(), NULL, NULL), | ||||||
| (2, '天津总部', 1, '0,1', NULL, 1, 1, b'0', 1, NOW(), NULL, NULL), | (547887852587843590, '天津总部', 1, '0,1', NULL, 1, 1, b'0', 1, NOW(), NULL, NULL), | ||||||
| (3, '研发部', 2, '0,1,2', NULL, 1, 1, b'0', 1, NOW(), NULL, NULL), | (547888008188133385, '研发部', 547887852587843590, '0,1,2', NULL, 1, 1, b'0', 1, NOW(), NULL, NULL), | ||||||
| (4, 'UI部', 2, '0,1,2', NULL, 2, 1, b'0', 1, NOW(), NULL, NULL), | (547888460711591948, 'UI部', 547887852587843590, '0,1,2', NULL, 2, 1, b'0', 1, NOW(), NULL, NULL), | ||||||
| (5, '测试部', 2, '0,1,2', NULL, 3, 1, b'0', 1, NOW(), NULL, NULL), | (547888483713155087, '测试部', 547887852587843590, '0,1,2', NULL, 3, 1, b'0', 1, NOW(), NULL, NULL), | ||||||
| (6, '运维部', 2, '0,1,2', NULL, 4, 1, b'0', 1, NOW(), NULL, NULL), | (547888505959743506, '运维部', 547887852587843590, '0,1,2', NULL, 4, 1, b'0', 1, NOW(), NULL, NULL), | ||||||
| (7, '研发一组', 3, '0,1,2,3', NULL, 1, 1, b'0', 1, NOW(), NULL, NULL), | (547888556819873814, '研发一组', 547888008188133385, '0,1,2,3', NULL, 1, 1, b'0', 1, NOW(), NULL, NULL), | ||||||
| (8, '研发二组', 3, '0,1,2,3', NULL, 2, 2, b'0', 1, NOW(), NULL, NULL); | (547888580614160409, '研发二组', 547888008188133385, '0,1,2,3', NULL, 2, 2, b'0', 1, NOW(), NULL, NULL); | ||||||
|  |  | ||||||
| -- 初始化默认角色 | -- 初始化默认角色 | ||||||
| INSERT IGNORE INTO `sys_role` | INSERT IGNORE INTO `sys_role` | ||||||
| (`id`, `name`, `code`, `data_scope`, `description`, `sort`, `status`, `is_system`, `create_user`, `create_time`, `update_user`, `update_time`) | (`id`, `name`, `code`, `data_scope`, `description`, `sort`, `status`, `is_system`, `create_user`, `create_time`, `update_user`, `update_time`) | ||||||
| VALUES | VALUES | ||||||
| (1, '超级管理员', 'admin', 1, '系统初始角色', 1, 1, b'1', 1, NOW(), NULL, NULL), | (1, '超级管理员', 'admin', 1, '系统初始角色', 1, 1, b'1', 1, NOW(), NULL, NULL), | ||||||
| (2, '测试人员', 'test', 5, NULL, 2, 1, b'0', 1, NOW(), NULL, NULL); | (547888897925840928, '测试人员', 'test', 5, NULL, 2, 1, b'0', 1, NOW(), NULL, NULL); | ||||||
|  |  | ||||||
| -- 初始化默认用户:admin/admin123;test/123456 | -- 初始化默认用户:admin/admin123;test/123456 | ||||||
| INSERT IGNORE INTO `sys_user` | INSERT IGNORE INTO `sys_user` | ||||||
| (`id`, `username`, `nickname`, `password`, `gender`, `email`, `phone`, `avatar`, `description`, `status`, `is_system`, `pwd_reset_time`, `dept_id`, `create_user`, `create_time`, `update_user`, `update_time`) | (`id`, `username`, `nickname`, `password`, `gender`, `email`, `phone`, `avatar`, `description`, `status`, `is_system`, `pwd_reset_time`, `dept_id`, `create_user`, `create_time`, `update_user`, `update_time`) | ||||||
| VALUES | VALUES | ||||||
| (1, 'admin', '超级管理员', '9802815bcc5baae7feb1ae0d0566baf2', 1, 'charles7c@126.com', '18888888888', NULL, '系统初始用户', 1, b'1', NOW(), 1, 1, NOW(), NULL, NULL), | (1, 'admin', '超级管理员', '9802815bcc5baae7feb1ae0d0566baf2', 1, 'charles7c@126.com', '18888888888', NULL, '系统初始用户', 1, b'1', NOW(), 1, 1, NOW(), NULL, NULL), | ||||||
| (2, 'test', '测试员', '8e114197e1b33783a00542ad67e80516', 2, NULL, NULL, NULL, NULL, 2, b'0', NOW(), 5, 1, NOW(), NULL, NULL); | (547889293968801831, 'test', '测试员', '8e114197e1b33783a00542ad67e80516', 2, NULL, NULL, NULL, NULL, 2, b'0', NOW(), 547888483713155087, 1, NOW(), NULL, NULL); | ||||||
|  |  | ||||||
| -- 初始化默认角色和菜单关联数据 | -- 初始化默认角色和菜单关联数据 | ||||||
| INSERT IGNORE INTO `sys_role_menu` | INSERT IGNORE INTO `sys_role_menu` | ||||||
| (`role_id`, `menu_id`) | (`role_id`, `menu_id`) | ||||||
| VALUES | VALUES | ||||||
| (2, 1000), | (547889293968801831, 1000), | ||||||
| (2, 1010), | (547889293968801831, 1010), | ||||||
| (2, 1011), | (547889293968801831, 1011), | ||||||
| (2, 1012), | (547889293968801831, 1012), | ||||||
| (2, 1013), | (547889293968801831, 1013), | ||||||
| (2, 1014); | (547889293968801831, 1014); | ||||||
|  |  | ||||||
| -- 初始化默认角色和部门关联数据 | -- 初始化默认角色和部门关联数据 | ||||||
| INSERT IGNORE INTO `sys_role_dept` (`role_id`, `dept_id`) VALUES (2, 5); | INSERT IGNORE INTO `sys_role_dept` (`role_id`, `dept_id`) VALUES (547888897925840928, 547888483713155087); | ||||||
|  |  | ||||||
| -- 初始化默认用户和角色关联数据 | -- 初始化默认用户和角色关联数据 | ||||||
| INSERT IGNORE INTO `sys_user_role` | INSERT IGNORE INTO `sys_user_role` | ||||||
| (`user_id`, `role_id`) | (`user_id`, `role_id`) | ||||||
| VALUES | VALUES | ||||||
| (1, 1), | (1, 1), | ||||||
| (2, 2); | (547889293968801831, 547888897925840928); | ||||||
| @@ -2,7 +2,7 @@ | |||||||
|  |  | ||||||
| -- changeset Charles7c:1 | -- changeset Charles7c:1 | ||||||
| CREATE TABLE IF NOT EXISTS `gen_config` ( | CREATE TABLE IF NOT EXISTS `gen_config` ( | ||||||
|     `table_name`    varchar(64)                        COMMENT '表名称', |     `table_name`    varchar(64)  NOT NULL              COMMENT '表名称', | ||||||
|     `module_name`   varchar(60)  NOT NULL              COMMENT '模块名称', |     `module_name`   varchar(60)  NOT NULL              COMMENT '模块名称', | ||||||
|     `package_name`  varchar(60)  NOT NULL              COMMENT '包名称', |     `package_name`  varchar(60)  NOT NULL              COMMENT '包名称', | ||||||
|     `frontend_path` varchar(255) DEFAULT NULL          COMMENT '前端路径', |     `frontend_path` varchar(255) DEFAULT NULL          COMMENT '前端路径', | ||||||
|   | |||||||
| @@ -18,13 +18,13 @@ VALUES | |||||||
| INSERT IGNORE INTO `sys_dict` | INSERT IGNORE INTO `sys_dict` | ||||||
| (`id`, `name`, `code`, `description`, `is_system`, `create_user`, `create_time`, `update_user`, `update_time`) | (`id`, `name`, `code`, `description`, `is_system`, `create_user`, `create_time`, `update_user`, `update_time`) | ||||||
| VALUES | VALUES | ||||||
| (1, '公告类型', 'announcement_type', NULL, b'1', 1, NOW(), NULL, NULL); | (547889614262632491, '公告类型', 'announcement_type', NULL, b'1', 1, NOW(), NULL, NULL); | ||||||
|  |  | ||||||
| INSERT IGNORE INTO `sys_dict_item` | INSERT IGNORE INTO `sys_dict_item` | ||||||
| (`id`, `label`, `value`, `color`, `sort`, `description`, `dict_id`, `create_user`, `create_time`, `update_user`, `update_time`) | (`id`, `label`, `value`, `color`, `sort`, `description`, `dict_id`, `create_user`, `create_time`, `update_user`, `update_time`) | ||||||
| VALUES | VALUES | ||||||
| (1, '通知', '1', 'blue', 1, NULL, 1, 1, NOW(), NULL, NULL), | (547889649658363951, '通知', '1', 'blue', 1, NULL, 547889614262632491, 1, NOW(), NULL, NULL), | ||||||
| (2, '活动', '2', 'orangered', 2, NULL, 1, 1, NOW(), NULL, NULL); | (547890124537462835, '活动', '2', 'orangered', 2, NULL, 547889614262632491, 1, NOW(), NULL, NULL); | ||||||
|  |  | ||||||
| -- 初始化默认参数 | -- 初始化默认参数 | ||||||
| INSERT IGNORE INTO `sys_option` | INSERT IGNORE INTO `sys_option` | ||||||
|   | |||||||
| @@ -20,5 +20,5 @@ VALUES | |||||||
| INSERT IGNORE INTO `sys_storage` | INSERT IGNORE INTO `sys_storage` | ||||||
| (`id`, `name`, `code`, `type`, `access_key`, `secret_key`, `endpoint`, `bucket_name`, `domain`, `description`, `is_default`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) | (`id`, `name`, `code`, `type`, `access_key`, `secret_key`, `endpoint`, `bucket_name`, `domain`, `description`, `is_default`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) | ||||||
| VALUES | VALUES | ||||||
| (1, '开发环境', 'local_dev', 2, NULL, NULL, NULL, 'C:/continew-admin/data/file/', 'http://localhost:8000/file', '本地存储', b'1', 1, 1, 1, NOW(), NULL, NULL), | (547890346239983671, '开发环境', 'local_dev', 2, NULL, NULL, NULL, 'C:/continew-admin/data/file/', 'http://localhost:8000/file', '本地存储', b'1', 1, 1, 1, NOW(), NULL, NULL), | ||||||
| (2, '生产环境', 'local_prod', 2, NULL, NULL, NULL, '../data/file/', 'http://api.charles7c.top/file', '本地存储', b'0', 2, 2, 1, NOW(), NULL, NULL); | (547890366586552377, '生产环境', 'local_prod', 2, NULL, NULL, NULL, '../data/file/', 'http://api.charles7c.top/file', '本地存储', b'0', 2, 2, 1, NOW(), NULL, NULL); | ||||||
| @@ -9,4 +9,26 @@ ALTER TABLE `sys_user` | |||||||
|  |  | ||||||
| -- changeset Charles7c:3 | -- changeset Charles7c:3 | ||||||
| ALTER TABLE `sys_user` | ALTER TABLE `sys_user` | ||||||
|     MODIFY COLUMN `phone` varchar(255) DEFAULT NULL COMMENT '手机号码' AFTER `email`; |     MODIFY COLUMN `phone` varchar(255) DEFAULT NULL COMMENT '手机号码' AFTER `email`; | ||||||
|  |  | ||||||
|  | -- changeset Charles7c:4 | ||||||
|  | ALTER TABLE `sys_menu` | ||||||
|  |     MODIFY COLUMN `id` bigint NOT NULL COMMENT 'ID' FIRST; | ||||||
|  | ALTER TABLE `sys_dept` | ||||||
|  |     MODIFY COLUMN `id` bigint NOT NULL COMMENT 'ID' FIRST; | ||||||
|  | ALTER TABLE `sys_role` | ||||||
|  |     MODIFY COLUMN `id` bigint NOT NULL COMMENT 'ID' FIRST; | ||||||
|  | ALTER TABLE `sys_user` | ||||||
|  |     MODIFY COLUMN `id` bigint NOT NULL COMMENT 'ID' FIRST; | ||||||
|  | ALTER TABLE `sys_log` | ||||||
|  |     MODIFY COLUMN `id` bigint NOT NULL COMMENT 'ID' FIRST; | ||||||
|  | ALTER TABLE `sys_announcement` | ||||||
|  |     MODIFY COLUMN `id` bigint NOT NULL COMMENT 'ID' FIRST; | ||||||
|  | ALTER TABLE `sys_dict` | ||||||
|  |     MODIFY COLUMN `id` bigint NOT NULL COMMENT 'ID' FIRST; | ||||||
|  | ALTER TABLE `sys_dict_item` | ||||||
|  |     MODIFY COLUMN `id` bigint NOT NULL COMMENT 'ID' FIRST; | ||||||
|  | ALTER TABLE `sys_message` | ||||||
|  |     MODIFY COLUMN `id` bigint NOT NULL COMMENT 'ID' FIRST; | ||||||
|  | ALTER TABLE `sys_storage` | ||||||
|  |     MODIFY COLUMN `id` bigint NOT NULL COMMENT 'ID' FIRST; | ||||||
		Reference in New Issue
	
	Block a user