Skip to content

Commit

Permalink
refactor: 调整自增 ID 为分布式 ID
Browse files Browse the repository at this point in the history
使用 CosId 提供的雪花算法实现
  • Loading branch information
Charles7c committed Feb 13, 2024
1 parent 56f67d9 commit 4779887
Show file tree
Hide file tree
Showing 7 changed files with 84 additions and 25 deletions.
10 changes: 10 additions & 0 deletions continew-admin-common/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,16 @@
<description>公共模块(存放公共工具类,公共配置等)</description>

<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 的繁琐流程) -->
<dependency>
<groupId>org.dromara.sms4j</groupId>
Expand Down
29 changes: 28 additions & 1 deletion continew-admin-webapi/src/main/resources/config/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ mybatis-plus:
db-config:
# 主键类型(默认 assign_id,表示自行赋值)
# auto 代表使用数据库自增策略(需要在表中设置好自增约束)
id-type: AUTO
id-type: ASSIGN_ID
# 逻辑删除字段
logic-delete-field: isDeleted
# 逻辑删除全局值(默认 1,表示已删除)
Expand All @@ -153,6 +153,9 @@ mybatis-plus:
enabled: true
# Mapper 接口扫描包配置
mapper-package: ${project.base-package}.**.mapper
# ID 生成器配置
id-generator:
type: COSID
# 数据权限配置
data-permission:
enabled: true
Expand All @@ -161,6 +164,30 @@ mybatis-plus:
enabled: true
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:
servlet:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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`)
VALUES
(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),
(3, '研发部', 2, '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),
(5, '测试部', 2, '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),
(7, '研发一组', 3, '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);
(547887852587843590, '天津总部', 1, '0,1', NULL, 1, 1, b'0', 1, NOW(), NULL, NULL),
(547888008188133385, '研发部', 547887852587843590, '0,1,2', NULL, 1, 1, b'0', 1, NOW(), NULL, NULL),
(547888460711591948, 'UI部', 547887852587843590, '0,1,2', NULL, 2, 1, b'0', 1, NOW(), NULL, NULL),
(547888483713155087, '测试部', 547887852587843590, '0,1,2', NULL, 3, 1, b'0', 1, NOW(), NULL, NULL),
(547888505959743506, '运维部', 547887852587843590, '0,1,2', NULL, 4, 1, b'0', 1, NOW(), NULL, NULL),
(547888556819873814, '研发一组', 547888008188133385, '0,1,2,3', NULL, 1, 1, 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`
(`id`, `name`, `code`, `data_scope`, `description`, `sort`, `status`, `is_system`, `create_user`, `create_time`, `update_user`, `update_time`)
VALUES
(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
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`)
VALUES
(1, 'admin', '超级管理员', '9802815bcc5baae7feb1ae0d0566baf2', 1, '[email protected]', '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`
(`role_id`, `menu_id`)
VALUES
(2, 1000),
(2, 1010),
(2, 1011),
(2, 1012),
(2, 1013),
(2, 1014);
(547889293968801831, 1000),
(547889293968801831, 1010),
(547889293968801831, 1011),
(547889293968801831, 1012),
(547889293968801831, 1013),
(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`
(`user_id`, `role_id`)
VALUES
(1, 1),
(2, 2);
(547889293968801831, 547888897925840928);
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

-- changeset Charles7c:1
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 '模块名称',
`package_name` varchar(60) NOT NULL COMMENT '包名称',
`frontend_path` varchar(255) DEFAULT NULL COMMENT '前端路径',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@ VALUES
INSERT IGNORE INTO `sys_dict`
(`id`, `name`, `code`, `description`, `is_system`, `create_user`, `create_time`, `update_user`, `update_time`)
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`
(`id`, `label`, `value`, `color`, `sort`, `description`, `dict_id`, `create_user`, `create_time`, `update_user`, `update_time`)
VALUES
(1, '通知', '1', 'blue', 1, NULL, 1, 1, NOW(), NULL, NULL),
(2, '活动', '2', 'orangered', 2, NULL, 1, 1, NOW(), NULL, NULL);
(547889649658363951, '通知', '1', 'blue', 1, NULL, 547889614262632491, 1, NOW(), NULL, NULL),
(547890124537462835, '活动', '2', 'orangered', 2, NULL, 547889614262632491, 1, NOW(), NULL, NULL);

-- 初始化默认参数
INSERT IGNORE INTO `sys_option`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,5 @@ VALUES
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`)
VALUES
(1, '开发环境', 'local_dev', 2, NULL, NULL, NULL, 'C:/continew-admin/data/file/', 'https://localhost:8000/file', '本地存储', b'1', 1, 1, 1, NOW(), NULL, NULL),
(2, '生产环境', 'local_prod', 2, NULL, NULL, NULL, '../data/file/', 'https://api.charles7c.top/file', '本地存储', b'0', 2, 2, 1, NOW(), NULL, NULL);
(547890346239983671, '开发环境', 'local_dev', 2, NULL, NULL, NULL, 'C:/continew-admin/data/file/', 'https://localhost:8000/file', '本地存储', b'1', 1, 1, 1, NOW(), NULL, NULL),
(547890366586552377, '生产环境', 'local_prod', 2, NULL, NULL, NULL, '../data/file/', 'https://api.charles7c.top/file', '本地存储', b'0', 2, 2, 1, NOW(), NULL, NULL);
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,26 @@ ALTER TABLE `sys_user`

-- changeset Charles7c:3
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;

0 comments on commit 4779887

Please sign in to comment.