setup-demo-tenant.sql 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. -- ============================================================
  2. -- Demo 租户初始化脚本(幂等,可重复执行)
  3. -- 租户 ID: 1300000000888
  4. -- Demo 管理员账号: DemoAdmin (密码同主租户 Admin.NET)
  5. -- ============================================================
  6. SET @demo_tid = 1300000000888;
  7. SET @demo_orgid = 1300000000888;
  8. SET @demo_uid = 1300000000888;
  9. SET @demo_rid = 1300000000888;
  10. -- 复用主租户 Admin.NET 的密码哈希
  11. SET @pwd_hash = (SELECT Password FROM SysUser WHERE Account = 'Admin.NET' AND TenantId = 1300000000001 LIMIT 1);
  12. -- 预读主租户的连接信息
  13. SET @main_conn = (SELECT Connection FROM (SELECT Connection FROM SysTenant WHERE Id = 1300000000001) t);
  14. SET @main_cfgid = (SELECT ConfigId FROM (SELECT ConfigId FROM SysTenant WHERE Id = 1300000000001) t);
  15. -- ── 1. 租户 ──
  16. INSERT IGNORE INTO SysTenant (Id, UserId, OrgId, Host, TenantType, DbType, Connection, ConfigId,
  17. Logo, Title, ViceTitle, ViceDesc, Watermark, Copyright, Icp, IcpUrl,
  18. OrderNo, Remark, Status, CreateTime)
  19. VALUES (@demo_tid, @demo_uid, @demo_orgid, '', 0, 0,
  20. @main_conn, @main_cfgid,
  21. '/upload/logo.png', 'Demo 演示租户', 'AiDOP Demo', '演示数据隔离', 'DEMO',
  22. 'Demo Only', '', '', 10, 'Demo 租户,数据与正式隔离', 1, NOW());
  23. -- ── 2. 组织 ──
  24. INSERT IGNORE INTO SysOrg (Id, Pid, Name, Code, Level, OrderNo, Status, Remark, TenantId, CreateTime)
  25. VALUES (@demo_orgid, 0, 'Demo默认组织', 'DEMO01', 1, 100, 1, 'Demo 租户根组织', @demo_tid, NOW());
  26. -- ── 3. 角色(系统管理员) ──
  27. INSERT IGNORE INTO SysRole (Id, Name, Code, OrderNo, DataScope, Remark, Status, TenantId, CreateTime)
  28. VALUES (@demo_rid, '系统管理员', 'demo_admin', 100, 1, 'Demo 管理员角色', 1, @demo_tid, NOW());
  29. -- ── 4. 角色菜单(复制主租户管理员的菜单权限) ──
  30. DELETE FROM SysRoleMenu WHERE RoleId = @demo_rid;
  31. SET @rn = 0;
  32. INSERT INTO SysRoleMenu (Id, RoleId, MenuId)
  33. SELECT 1300000888000 + (@rn := @rn + 1), @demo_rid, MenuId
  34. FROM SysRoleMenu WHERE RoleId = 1300000000101;
  35. -- ── 5. 租户菜单(复制主租户的菜单授权) ──
  36. DELETE FROM SysTenantMenu WHERE TenantId = @demo_tid;
  37. SET @tn = 0;
  38. INSERT INTO SysTenantMenu (Id, TenantId, MenuId)
  39. SELECT 1300008880000 + (@tn := @tn + 1), @demo_tid, MenuId
  40. FROM SysTenantMenu WHERE TenantId = 1300000000001;
  41. -- ── 6. 用户 ──
  42. INSERT IGNORE INTO SysUser (Id, Account, Password, RealName, NickName, Sex, Age, CardType, OrderNo,
  43. Status, AccountType, OrgId, PosId, TenantId, CreateTime)
  44. VALUES (@demo_uid, 'DemoAdmin', @pwd_hash, 'Demo管理员', 'Demo管理员',
  45. 0, 0, 0, 100, 1, 888, @demo_orgid, 0, @demo_tid, NOW());
  46. -- ── 7. 用户角色关联 ──
  47. INSERT IGNORE INTO SysUserRole (UserId, RoleId)
  48. VALUES (@demo_uid, @demo_rid);
  49. SELECT 'Demo tenant setup complete.' AS result;