20260723225202
This commit is contained in:
1 parent
5f73b54802
commit
4d118a0037
22 files changed
+1403
-259
No files matched your search
@@ -0,0 +1,79 @@
|
||||
/*
|
||||
新增「多语言类型」表 dbo.b_i18n_type,并注册独立模块 m_i18n_type 与其权限、管理员授权。
|
||||
用于维护系统支持的语言清单(简称、名称、是否默认、是否启用、排序),默认中文为内置默认语言。
|
||||
|
||||
本脚本可重复执行:表、模块、权限均通过存在性判断避免重复播种;
|
||||
配合 000_reset_metadata.sql 使用(先跑 000 重置,再跑本脚本)即可重建。
|
||||
|
||||
注意:b_user 表由 000 脚本保留,本脚本依赖其中 g3soft 管理员账号授于权限。
|
||||
*/
|
||||
SET NOCOUNT ON;
|
||||
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
-- 管理员账号(与 000 脚本保持一致)
|
||||
DECLARE @AdminId bigint = (
|
||||
SELECT TOP (1) b_id
|
||||
FROM dbo.b_user
|
||||
WHERE b_account = N'g3soft' AND b_canuse = 1
|
||||
);
|
||||
|
||||
-- 系统管理目录(000 脚本播种)
|
||||
DECLARE @SystemId bigint = (
|
||||
SELECT TOP (1) b_id FROM dbo.b_module WHERE b_code = N'm_system'
|
||||
);
|
||||
|
||||
-- 1. 多语言类型表
|
||||
IF NOT EXISTS (SELECT 1 FROM sys.tables WHERE name = N'b_i18n_type')
|
||||
BEGIN
|
||||
CREATE TABLE dbo.b_i18n_type (
|
||||
b_id bigint NOT NULL,
|
||||
b_code varchar(20) NOT NULL,
|
||||
b_name nvarchar(100) NOT NULL,
|
||||
b_canuse int NOT NULL CONSTRAINT DF_b_i18n_type_canuse DEFAULT (1),
|
||||
b_default int NOT NULL CONSTRAINT DF_b_i18n_type_default DEFAULT (0),
|
||||
b_xh int NOT NULL CONSTRAINT DF_b_i18n_type_xh DEFAULT (0),
|
||||
CONSTRAINT PK_b_i18n_type PRIMARY KEY (b_id),
|
||||
CONSTRAINT UQ_b_i18n_type_code UNIQUE (b_code),
|
||||
CONSTRAINT CK_b_i18n_type_canuse CHECK (b_canuse IN (0, 1)),
|
||||
CONSTRAINT CK_b_i18n_type_default CHECK (b_default IN (0, 1))
|
||||
);
|
||||
CREATE INDEX IX_b_i18n_type_xh ON dbo.b_i18n_type (b_xh, b_id);
|
||||
|
||||
-- 预置数据:默认中文不可删除,可选英文
|
||||
INSERT INTO dbo.b_i18n_type (b_id, b_code, b_name, b_canuse, b_default, b_xh) VALUES
|
||||
(920000000000000001, N'zh-CN', N'简体中文', 1, 1, 0),
|
||||
(920000000000000002, N'en-US', N'English', 1, 0, 10);
|
||||
END
|
||||
|
||||
-- 2. 注册模块与管理员权限(仅在模块不存在时播种)
|
||||
IF NOT EXISTS (SELECT 1 FROM dbo.b_module WHERE b_code = N'm_i18n_type')
|
||||
BEGIN
|
||||
DECLARE @I18nTypeId bigint = 910000000000000003;
|
||||
|
||||
INSERT INTO dbo.b_module (
|
||||
b_id, b_code, b_parent_id, b_name, b_i18n, b_module_type,
|
||||
b_route, b_canmenu, b_canuse, b_xh
|
||||
) VALUES (
|
||||
@I18nTypeId, N'm_i18n_type', @SystemId, N'多语言类型', 'module.m_i18n_type',
|
||||
'page', N'/system/i18n-type', 1, 1, 20
|
||||
);
|
||||
|
||||
INSERT INTO dbo.b_module_power (b_id, b_module_id, b_code, b_name, b_i18n, b_xh, b_canuse) VALUES
|
||||
(910000000000000105, @I18nTypeId, 'create', N'新增', 'power.m_i18n_type.create', 10, 1),
|
||||
(910000000000000106, @I18nTypeId, 'update', N'保存', 'power.m_i18n_type.update', 20, 1),
|
||||
(910000000000000107, @I18nTypeId, 'delete', N'删除', 'power.m_i18n_type.delete', 30, 1);
|
||||
|
||||
IF @AdminId IS NOT NULL
|
||||
BEGIN
|
||||
INSERT INTO dbo.b_user_module (b_id, b_user_id, b_module_id, b_inputuser_id) VALUES
|
||||
(910000000000000202, @AdminId, @I18nTypeId, @AdminId);
|
||||
|
||||
INSERT INTO dbo.b_user_power (b_id, b_user_id, b_power_id, b_inputuser_id)
|
||||
SELECT 910000000000000303 + ROW_NUMBER() OVER (ORDER BY b_id), @AdminId, b_id, @AdminId
|
||||
FROM dbo.b_module_power
|
||||
WHERE b_module_id = @I18nTypeId;
|
||||
END
|
||||
END
|
||||
|
||||
COMMIT TRANSACTION;
|
||||
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
新增「系统管理」目录(m_system),并将「多语言类型」模块(m_i18n_type)挂到其下。
|
||||
|
||||
本脚本可重复执行:
|
||||
- m_system 仅在其不存在时创建;
|
||||
- m_i18n_type 仅在其父级未指向系统管理目录时才更新。
|
||||
|
||||
依赖:b_module 表已存在(由 001_add_i18n_type.sql 或业务库结构保证)。
|
||||
*/
|
||||
|
||||
SET NOCOUNT ON;
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
-- 系统管理目录(若不存在则创建)
|
||||
DECLARE @SystemId bigint = (SELECT TOP (1) b_id FROM dbo.b_module WHERE b_code = N'm_system');
|
||||
|
||||
IF @SystemId IS NULL
|
||||
BEGIN
|
||||
SET @SystemId = 911000000000000001;
|
||||
|
||||
INSERT INTO dbo.b_module (
|
||||
b_id, b_code, b_parent_id, b_name, b_i18n, b_module_type,
|
||||
b_canmenu, b_canuse, b_xh
|
||||
) VALUES (
|
||||
@SystemId, N'm_system', NULL, N'系统管理', 'module.m_system',
|
||||
'directory', 1, 1, 10
|
||||
);
|
||||
END
|
||||
|
||||
-- 多语言类型挂到系统管理目录
|
||||
UPDATE dbo.b_module
|
||||
SET b_parent_id = @SystemId
|
||||
WHERE b_code = N'm_i18n_type'
|
||||
AND (b_parent_id IS NULL OR b_parent_id <> @SystemId);
|
||||
|
||||
COMMIT TRANSACTION;
|
||||
Reference in new issue
Block a user