138 lines
4.9 KiB
Transact-SQL
138 lines
4.9 KiB
Transact-SQL
SET NOCOUNT ON;
|
|
SET XACT_ABORT ON;
|
|
|
|
BEGIN TRY
|
|
BEGIN TRANSACTION;
|
|
|
|
DECLARE @SystemModuleId bigint = (SELECT TOP (1) b_id FROM dbo.b_module WHERE b_code = 'm_system');
|
|
DECLARE @I18nModuleId bigint = 205000000000000013;
|
|
|
|
IF @SystemModuleId IS NULL
|
|
THROW 51000, '未找到系统管理模块 m_system,多语言管理初始化已取消。', 1;
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM dbo.b_module WHERE b_code = 'm_i18n')
|
|
INSERT INTO dbo.b_module (
|
|
b_id, b_code, b_parent_id, b_name, b_i18n, b_type, b_route,
|
|
b_canmenu, b_canuse, b_xh
|
|
)
|
|
VALUES (
|
|
@I18nModuleId, 'm_i18n', @SystemModuleId, N'多语言管理', 'module.m_i18n',
|
|
'page', '/system/i18n', 1, 1, 20
|
|
);
|
|
ELSE
|
|
SET @I18nModuleId = (SELECT TOP (1) b_id FROM dbo.b_module WHERE b_code = 'm_i18n');
|
|
|
|
DECLARE @Powers TABLE (
|
|
b_id bigint,
|
|
b_code varchar(50),
|
|
b_name nvarchar(100),
|
|
b_i18n varchar(150),
|
|
b_xh int
|
|
);
|
|
INSERT INTO @Powers VALUES
|
|
(205000000000000005, 'create', N'新增', 'power.m_i18n.create', 10),
|
|
(205000000000000006, 'update', N'修改', 'power.m_i18n.update', 20),
|
|
(205000000000000007, 'delete', N'删除', 'power.m_i18n.delete', 30);
|
|
|
|
INSERT INTO dbo.b_module_power (b_id, b_module_id, b_code, b_name, b_i18n, b_xh, b_canuse)
|
|
SELECT source.b_id, @I18nModuleId, source.b_code, source.b_name, source.b_i18n, source.b_xh, 1
|
|
FROM @Powers source
|
|
WHERE NOT EXISTS (
|
|
SELECT 1
|
|
FROM dbo.b_module_power target
|
|
WHERE target.b_module_id = @I18nModuleId
|
|
AND target.b_code = source.b_code
|
|
);
|
|
|
|
EXEC sys.sp_set_session_context @key = N'allow_g3soft', @value = 1;
|
|
DECLARE @AdminId bigint = (
|
|
SELECT TOP (1) b_id
|
|
FROM dbo.b_user
|
|
WHERE b_account = N'g3soft'
|
|
AND b_canuse = 1
|
|
);
|
|
IF @AdminId IS NULL
|
|
THROW 51000, '未找到已启用的管理员账号 g3soft,多语言管理初始化已取消。', 1;
|
|
|
|
IF NOT EXISTS (
|
|
SELECT 1
|
|
FROM dbo.b_user_module
|
|
WHERE b_user_id = @AdminId
|
|
AND b_module_id = @I18nModuleId
|
|
)
|
|
INSERT INTO dbo.b_user_module (
|
|
b_id, b_user_id, b_module_id, b_inputuser_id, b_inputdatetime
|
|
)
|
|
VALUES (
|
|
205000000000000102, @AdminId, @I18nModuleId, @AdminId, GETDATE()
|
|
);
|
|
|
|
INSERT INTO dbo.b_user_power (b_id, b_user_id, b_power_id, b_inputuser_id, b_inputdatetime)
|
|
SELECT
|
|
CASE power.b_code
|
|
WHEN 'create' THEN 205000000000000211
|
|
WHEN 'update' THEN 205000000000000212
|
|
WHEN 'delete' THEN 205000000000000213
|
|
END,
|
|
@AdminId,
|
|
power.b_id,
|
|
@AdminId,
|
|
GETDATE()
|
|
FROM dbo.b_module_power power
|
|
WHERE power.b_module_id = @I18nModuleId
|
|
AND power.b_code IN ('create', 'update', 'delete')
|
|
AND NOT EXISTS (
|
|
SELECT 1
|
|
FROM dbo.b_user_power target
|
|
WHERE target.b_user_id = @AdminId
|
|
AND target.b_power_id = power.b_id
|
|
);
|
|
|
|
DECLARE @Translations TABLE (
|
|
b_id bigint,
|
|
b_key varchar(150),
|
|
b_locale varchar(20),
|
|
b_value nvarchar(500)
|
|
);
|
|
INSERT INTO @Translations VALUES
|
|
(205000000000000301, 'module.m_i18n', 'zh-CN', N'多语言管理'),
|
|
(205000000000000302, 'module.m_i18n', 'en-US', N'Language Resources'),
|
|
(205000000000000303, 'module.m_i18n', 'zh-TW', N'多語言管理'),
|
|
(205000000000000304, 'power.m_i18n.create', 'zh-CN', N'新增'),
|
|
(205000000000000305, 'power.m_i18n.create', 'en-US', N'Create'),
|
|
(205000000000000306, 'power.m_i18n.create', 'zh-TW', N'新增'),
|
|
(205000000000000307, 'power.m_i18n.update', 'zh-CN', N'修改'),
|
|
(205000000000000308, 'power.m_i18n.update', 'en-US', N'Update'),
|
|
(205000000000000309, 'power.m_i18n.update', 'zh-TW', N'修改'),
|
|
(205000000000000310, 'power.m_i18n.delete', 'zh-CN', N'删除'),
|
|
(205000000000000311, 'power.m_i18n.delete', 'en-US', N'Delete'),
|
|
(205000000000000312, 'power.m_i18n.delete', 'zh-TW', N'刪除');
|
|
|
|
INSERT INTO dbo.b_i18n (
|
|
b_id, b_key, b_locale, b_value, b_inputuser_id, b_inputdatetime,
|
|
b_updateuser_id, b_updatedatetime
|
|
)
|
|
SELECT
|
|
source.b_id, source.b_key, source.b_locale, source.b_value,
|
|
@AdminId, GETDATE(), NULL, NULL
|
|
FROM @Translations source
|
|
WHERE NOT EXISTS (
|
|
SELECT 1
|
|
FROM dbo.b_i18n target
|
|
WHERE target.b_key = source.b_key
|
|
AND target.b_locale = source.b_locale
|
|
);
|
|
|
|
EXEC sys.sp_set_session_context @key = N'allow_g3soft', @value = NULL;
|
|
COMMIT TRANSACTION;
|
|
END TRY
|
|
BEGIN CATCH
|
|
IF XACT_STATE() <> 0 ROLLBACK TRANSACTION;
|
|
BEGIN TRY
|
|
EXEC sys.sp_set_session_context @key = N'allow_g3soft', @value = NULL;
|
|
END TRY
|
|
BEGIN CATCH
|
|
END CATCH;
|
|
THROW;
|
|
END CATCH;
|