Skip to content

Commit 4779887

Browse files
committed
refactor: 调整自增 ID 为分布式 ID
使用 CosId 提供的雪花算法实现
1 parent 56f67d9 commit 4779887

File tree

7 files changed

+84
-25
lines changed

7 files changed

+84
-25
lines changed

continew-admin-common/pom.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,16 @@
1313
<description>公共模块(存放公共工具类,公共配置等)</description>
1414

1515
<dependencies>
16+
<!-- CosId(通用、灵活、高性能的分布式 ID 生成器) -->
17+
<dependency>
18+
<groupId>me.ahoo.cosid</groupId>
19+
<artifactId>cosid-spring-boot-starter</artifactId>
20+
</dependency>
21+
<dependency>
22+
<groupId>me.ahoo.cosid</groupId>
23+
<artifactId>cosid-spring-redis</artifactId>
24+
</dependency>
25+
1626
<!-- SMS4J(短信聚合框架,轻松集成多家短信服务,解决接入多个短信 SDK 的繁琐流程) -->
1727
<dependency>
1828
<groupId>org.dromara.sms4j</groupId>

continew-admin-webapi/src/main/resources/config/application.yml

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ mybatis-plus:
141141
db-config:
142142
# 主键类型(默认 assign_id,表示自行赋值)
143143
# auto 代表使用数据库自增策略(需要在表中设置好自增约束)
144-
id-type: AUTO
144+
id-type: ASSIGN_ID
145145
# 逻辑删除字段
146146
logic-delete-field: isDeleted
147147
# 逻辑删除全局值(默认 1,表示已删除)
@@ -153,6 +153,9 @@ mybatis-plus:
153153
enabled: true
154154
# Mapper 接口扫描包配置
155155
mapper-package: ${project.base-package}.**.mapper
156+
# ID 生成器配置
157+
id-generator:
158+
type: COSID
156159
# 数据权限配置
157160
data-permission:
158161
enabled: true
@@ -161,6 +164,30 @@ mybatis-plus:
161164
enabled: true
162165
db-type: MYSQL
163166

167+
--- ### CosId 配置
168+
cosid:
169+
namespace: ${spring.application.name}
170+
machine:
171+
enabled: true
172+
# 机器号分配器
173+
distributor:
174+
type: REDIS
175+
guarder:
176+
# 开启机器号守护
177+
enabled: true
178+
snowflake:
179+
enabled: true
180+
zone-id: Asia/Shanghai
181+
epoch: 1577203200000
182+
share:
183+
# 开启时钟回拨同步
184+
clock-sync: true
185+
friendly: true
186+
provider:
187+
safe-js:
188+
machine-bit: 3
189+
sequence-bit: 9
190+
164191
--- ### 服务器配置
165192
server:
166193
servlet:

continew-admin-webapi/src/main/resources/db/changelog/v1.0.0/continew-admin_data.sql

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -43,45 +43,45 @@ INSERT IGNORE INTO `sys_dept`
4343
(`id`, `name`, `parent_id`, `ancestors`, `description`, `sort`, `status`, `is_system`, `create_user`, `create_time`, `update_user`, `update_time`)
4444
VALUES
4545
(1, 'Xxx科技有限公司', 0, '0', '系统初始部门', 1, 1, b'1', 1, NOW(), NULL, NULL),
46-
(2, '天津总部', 1, '0,1', NULL, 1, 1, b'0', 1, NOW(), NULL, NULL),
47-
(3, '研发部', 2, '0,1,2', NULL, 1, 1, b'0', 1, NOW(), NULL, NULL),
48-
(4, 'UI部', 2, '0,1,2', NULL, 2, 1, b'0', 1, NOW(), NULL, NULL),
49-
(5, '测试部', 2, '0,1,2', NULL, 3, 1, b'0', 1, NOW(), NULL, NULL),
50-
(6, '运维部', 2, '0,1,2', NULL, 4, 1, b'0', 1, NOW(), NULL, NULL),
51-
(7, '研发一组', 3, '0,1,2,3', NULL, 1, 1, b'0', 1, NOW(), NULL, NULL),
52-
(8, '研发二组', 3, '0,1,2,3', NULL, 2, 2, b'0', 1, NOW(), NULL, NULL);
46+
(547887852587843590, '天津总部', 1, '0,1', NULL, 1, 1, b'0', 1, NOW(), NULL, NULL),
47+
(547888008188133385, '研发部', 547887852587843590, '0,1,2', NULL, 1, 1, b'0', 1, NOW(), NULL, NULL),
48+
(547888460711591948, 'UI部', 547887852587843590, '0,1,2', NULL, 2, 1, b'0', 1, NOW(), NULL, NULL),
49+
(547888483713155087, '测试部', 547887852587843590, '0,1,2', NULL, 3, 1, b'0', 1, NOW(), NULL, NULL),
50+
(547888505959743506, '运维部', 547887852587843590, '0,1,2', NULL, 4, 1, b'0', 1, NOW(), NULL, NULL),
51+
(547888556819873814, '研发一组', 547888008188133385, '0,1,2,3', NULL, 1, 1, b'0', 1, NOW(), NULL, NULL),
52+
(547888580614160409, '研发二组', 547888008188133385, '0,1,2,3', NULL, 2, 2, b'0', 1, NOW(), NULL, NULL);
5353

5454
-- 初始化默认角色
5555
INSERT IGNORE INTO `sys_role`
5656
(`id`, `name`, `code`, `data_scope`, `description`, `sort`, `status`, `is_system`, `create_user`, `create_time`, `update_user`, `update_time`)
5757
VALUES
5858
(1, '超级管理员', 'admin', 1, '系统初始角色', 1, 1, b'1', 1, NOW(), NULL, NULL),
59-
(2, '测试人员', 'test', 5, NULL, 2, 1, b'0', 1, NOW(), NULL, NULL);
59+
(547888897925840928, '测试人员', 'test', 5, NULL, 2, 1, b'0', 1, NOW(), NULL, NULL);
6060

6161
-- 初始化默认用户:admin/admin123;test/123456
6262
INSERT IGNORE INTO `sys_user`
6363
(`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`)
6464
VALUES
6565
(1, 'admin', '超级管理员', '9802815bcc5baae7feb1ae0d0566baf2', 1, '[email protected]', '18888888888', NULL, '系统初始用户', 1, b'1', NOW(), 1, 1, NOW(), NULL, NULL),
66-
(2, 'test', '测试员', '8e114197e1b33783a00542ad67e80516', 2, NULL, NULL, NULL, NULL, 2, b'0', NOW(), 5, 1, NOW(), NULL, NULL);
66+
(547889293968801831, 'test', '测试员', '8e114197e1b33783a00542ad67e80516', 2, NULL, NULL, NULL, NULL, 2, b'0', NOW(), 547888483713155087, 1, NOW(), NULL, NULL);
6767

6868
-- 初始化默认角色和菜单关联数据
6969
INSERT IGNORE INTO `sys_role_menu`
7070
(`role_id`, `menu_id`)
7171
VALUES
72-
(2, 1000),
73-
(2, 1010),
74-
(2, 1011),
75-
(2, 1012),
76-
(2, 1013),
77-
(2, 1014);
72+
(547889293968801831, 1000),
73+
(547889293968801831, 1010),
74+
(547889293968801831, 1011),
75+
(547889293968801831, 1012),
76+
(547889293968801831, 1013),
77+
(547889293968801831, 1014);
7878

7979
-- 初始化默认角色和部门关联数据
80-
INSERT IGNORE INTO `sys_role_dept` (`role_id`, `dept_id`) VALUES (2, 5);
80+
INSERT IGNORE INTO `sys_role_dept` (`role_id`, `dept_id`) VALUES (547888897925840928, 547888483713155087);
8181

8282
-- 初始化默认用户和角色关联数据
8383
INSERT IGNORE INTO `sys_user_role`
8484
(`user_id`, `role_id`)
8585
VALUES
8686
(1, 1),
87-
(2, 2);
87+
(547889293968801831, 547888897925840928);

continew-admin-webapi/src/main/resources/db/changelog/v1.1.0/continew-admin_table.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
-- changeset Charles7c:1
44
CREATE TABLE IF NOT EXISTS `gen_config` (
5-
`table_name` varchar(64) COMMENT '表名称',
5+
`table_name` varchar(64) NOT NULL COMMENT '表名称',
66
`module_name` varchar(60) NOT NULL COMMENT '模块名称',
77
`package_name` varchar(60) NOT NULL COMMENT '包名称',
88
`frontend_path` varchar(255) DEFAULT NULL COMMENT '前端路径',

continew-admin-webapi/src/main/resources/db/changelog/v1.2.0/continew-admin_data.sql

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ VALUES
1818
INSERT IGNORE INTO `sys_dict`
1919
(`id`, `name`, `code`, `description`, `is_system`, `create_user`, `create_time`, `update_user`, `update_time`)
2020
VALUES
21-
(1, '公告类型', 'announcement_type', NULL, b'1', 1, NOW(), NULL, NULL);
21+
(547889614262632491, '公告类型', 'announcement_type', NULL, b'1', 1, NOW(), NULL, NULL);
2222

2323
INSERT IGNORE INTO `sys_dict_item`
2424
(`id`, `label`, `value`, `color`, `sort`, `description`, `dict_id`, `create_user`, `create_time`, `update_user`, `update_time`)
2525
VALUES
26-
(1, '通知', '1', 'blue', 1, NULL, 1, 1, NOW(), NULL, NULL),
27-
(2, '活动', '2', 'orangered', 2, NULL, 1, 1, NOW(), NULL, NULL);
26+
(547889649658363951, '通知', '1', 'blue', 1, NULL, 547889614262632491, 1, NOW(), NULL, NULL),
27+
(547890124537462835, '活动', '2', 'orangered', 2, NULL, 547889614262632491, 1, NOW(), NULL, NULL);
2828

2929
-- 初始化默认参数
3030
INSERT IGNORE INTO `sys_option`

continew-admin-webapi/src/main/resources/db/changelog/v2.2.0/continew-admin_data.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,5 @@ VALUES
2020
INSERT IGNORE INTO `sys_storage`
2121
(`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`)
2222
VALUES
23-
(1, '开发环境', 'local_dev', 2, NULL, NULL, NULL, 'C:/continew-admin/data/file/', 'http://localhost:8000/file', '本地存储', b'1', 1, 1, 1, NOW(), NULL, NULL),
24-
(2, '生产环境', 'local_prod', 2, NULL, NULL, NULL, '../data/file/', 'http://api.charles7c.top/file', '本地存储', b'0', 2, 2, 1, NOW(), NULL, NULL);
23+
(547890346239983671, '开发环境', 'local_dev', 2, NULL, NULL, NULL, 'C:/continew-admin/data/file/', 'http://localhost:8000/file', '本地存储', b'1', 1, 1, 1, NOW(), NULL, NULL),
24+
(547890366586552377, '生产环境', 'local_prod', 2, NULL, NULL, NULL, '../data/file/', 'http://api.charles7c.top/file', '本地存储', b'0', 2, 2, 1, NOW(), NULL, NULL);

continew-admin-webapi/src/main/resources/db/changelog/v2.4.0/continew-admin_column.sql

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,26 @@ ALTER TABLE `sys_user`
99

1010
-- changeset Charles7c:3
1111
ALTER TABLE `sys_user`
12-
MODIFY COLUMN `phone` varchar(255) DEFAULT NULL COMMENT '手机号码' AFTER `email`;
12+
MODIFY COLUMN `phone` varchar(255) DEFAULT NULL COMMENT '手机号码' AFTER `email`;
13+
14+
-- changeset Charles7c:4
15+
ALTER TABLE `sys_menu`
16+
MODIFY COLUMN `id` bigint NOT NULL COMMENT 'ID' FIRST;
17+
ALTER TABLE `sys_dept`
18+
MODIFY COLUMN `id` bigint NOT NULL COMMENT 'ID' FIRST;
19+
ALTER TABLE `sys_role`
20+
MODIFY COLUMN `id` bigint NOT NULL COMMENT 'ID' FIRST;
21+
ALTER TABLE `sys_user`
22+
MODIFY COLUMN `id` bigint NOT NULL COMMENT 'ID' FIRST;
23+
ALTER TABLE `sys_log`
24+
MODIFY COLUMN `id` bigint NOT NULL COMMENT 'ID' FIRST;
25+
ALTER TABLE `sys_announcement`
26+
MODIFY COLUMN `id` bigint NOT NULL COMMENT 'ID' FIRST;
27+
ALTER TABLE `sys_dict`
28+
MODIFY COLUMN `id` bigint NOT NULL COMMENT 'ID' FIRST;
29+
ALTER TABLE `sys_dict_item`
30+
MODIFY COLUMN `id` bigint NOT NULL COMMENT 'ID' FIRST;
31+
ALTER TABLE `sys_message`
32+
MODIFY COLUMN `id` bigint NOT NULL COMMENT 'ID' FIRST;
33+
ALTER TABLE `sys_storage`
34+
MODIFY COLUMN `id` bigint NOT NULL COMMENT 'ID' FIRST;

0 commit comments

Comments
 (0)