feat: 优化web

This commit is contained in:
2026-04-23 18:58:13 +08:00
commit 544a2f3428
160 changed files with 27327 additions and 0 deletions
@@ -0,0 +1,122 @@
-- 平台租户内置角色 + 平台管理员账号(与 internal/iam/service 中租户初始化逻辑对齐)
-- 依赖:已执行 001_iam.sql、002_system.sql、003_seed_platform_tenant.sql
--
-- 默认管理员(平台租户 platform):
-- 用户名:admin
-- 密码:Admin@123 bcrypt DefaultCost,与 golang.org/x/crypto/bcrypt 一致)
--
-- 内置角色:
-- tenant_admin — 与 DefaultTenantAdminRoleCode 一致,data_scope=4(全部)
-- user — 普通用户占位,data_scope=1(本人)
BEGIN;
-- 固定 UUID,便于排查与文档引用
-- platform_tenant_id = 00000000-0000-0000-0000-000000000001
-- root_dept_id = 20000000-0000-4000-8000-000000000001
-- role_admin_id = 20000000-0000-4000-8000-000000000002
-- role_user_id = 20000000-0000-4000-8000-000000000006
-- admin_user_id = 20000000-0000-4000-8000-000000000003
-- 1) 平台根部门(与 TenantService.Create 中根部门一致)
INSERT INTO iam_dept (
id, tenant_id, parent_id, dept_name, dept_path, sort_order, status, created_at, updated_at
) VALUES (
'20000000-0000-4000-8000-000000000001',
'00000000-0000-0000-0000-000000000001',
'',
'平台',
'/20000000-0000-4000-8000-000000000001/',
0,
1,
now(),
now()
)
ON CONFLICT (id) DO NOTHING;
-- 2) 内置角色:租户超级管理员(与新租户初始化角色编码一致)
INSERT INTO iam_role (
id, tenant_id, role_code, role_name, data_scope, description, is_builtin, status, created_at, updated_at
) VALUES (
'20000000-0000-4000-8000-000000000002',
'00000000-0000-0000-0000-000000000001',
'tenant_admin',
'超级管理员',
4,
'内置:租户内全部数据权限(与 DefaultTenantAdminRoleCode 一致)',
true,
1,
now(),
now()
)
ON CONFLICT (id) DO NOTHING;
-- 3) 内置角色:普通用户(占位)
INSERT INTO iam_role (
id, tenant_id, role_code, role_name, data_scope, description, is_builtin, status, created_at, updated_at
) VALUES (
'20000000-0000-4000-8000-000000000006',
'00000000-0000-0000-0000-000000000001',
'user',
'普通用户',
1,
'内置:本人数据范围(DataScopeSelf',
true,
1,
now(),
now()
)
ON CONFLICT (id) DO NOTHING;
-- 4) 平台管理员用户(密码 Admin@123)
INSERT INTO iam_user (
id, tenant_id, dept_id, user_name, real_name, password_hash, status, created_at, updated_at
) VALUES (
'20000000-0000-4000-8000-000000000003',
'00000000-0000-0000-0000-000000000001',
'20000000-0000-4000-8000-000000000001',
'admin',
'平台管理员',
'$2a$10$8p7lXpy9mr7hhnAiOA8pNOgAU128xIWFxrU90iqw.F4VSw77vDEYO',
1,
now(),
now()
)
ON CONFLICT (id) DO NOTHING;
-- 5) 用户-部门(主部门)
INSERT INTO iam_user_dept (id, user_id, dept_id, is_primary, created_at)
VALUES (
'20000000-0000-4000-8000-000000000004',
'20000000-0000-4000-8000-000000000003',
'20000000-0000-4000-8000-000000000001',
true,
now()
)
ON CONFLICT (id) DO NOTHING;
-- 6) 用户-角色(绑定 tenant_admin
INSERT INTO iam_user_role (id, user_id, role_id, created_at)
VALUES (
'20000000-0000-4000-8000-000000000005',
'20000000-0000-4000-8000-000000000003',
'20000000-0000-4000-8000-000000000002',
now()
)
ON CONFLICT (id) DO NOTHING;
-- 7) 回写租户管理员
UPDATE iam_tenant
SET admin_user_id = '20000000-0000-4000-8000-000000000003'
WHERE id = '00000000-0000-0000-0000-000000000001';
-- 8) 将「超级管理员」与当前库中全部菜单关联(与 TenantService.Create 一致;无 iam_menu 数据时本步不插入行)
INSERT INTO iam_role_menu (id, role_id, menu_id, created_at)
SELECT gen_random_uuid()::text,
'20000000-0000-4000-8000-000000000002',
m.id,
now()
FROM iam_menu m
ON CONFLICT (role_id, menu_id) DO NOTHING;
COMMIT;