20260726225220
This commit is contained in:
1 parent
e3c7c6f8da
commit
a8478d60ed
170 files changed
+6786
-1678
No files matched your search
@@ -44,7 +44,7 @@ GO
|
||||
IF @AdminId IS NULL
|
||||
THROW 51001, N'重置会话缺少管理员 ID。', 1;
|
||||
|
||||
CREATE TABLE dbo.b_module (
|
||||
CREATE TABLE dbo.s_module (
|
||||
b_id bigint NOT NULL,
|
||||
b_code varchar(50) NOT NULL,
|
||||
b_parent_id bigint NULL,
|
||||
@@ -56,28 +56,28 @@ GO
|
||||
b_savetable varchar(128) NULL,
|
||||
b_keyfield varchar(50) NULL,
|
||||
b_orderfield varchar(500) NULL,
|
||||
b_canmenu int NOT NULL CONSTRAINT DF_b_module_canmenu DEFAULT (0),
|
||||
b_canuse int NOT NULL CONSTRAINT DF_b_module_canuse DEFAULT (1),
|
||||
b_xh int NOT NULL CONSTRAINT DF_b_module_xh DEFAULT (0),
|
||||
CONSTRAINT PK_b_module PRIMARY KEY (b_id),
|
||||
CONSTRAINT FK_b_module_parent FOREIGN KEY (b_parent_id) REFERENCES dbo.b_module (b_id),
|
||||
CONSTRAINT UQ_b_module_code UNIQUE (b_code),
|
||||
CONSTRAINT CK_b_module_code CHECK (
|
||||
b_canmenu int NOT NULL CONSTRAINT DF_s_module_canmenu DEFAULT (0),
|
||||
b_canuse int NOT NULL CONSTRAINT DF_s_module_canuse DEFAULT (1),
|
||||
b_xh int NOT NULL CONSTRAINT DF_s_module_xh DEFAULT (0),
|
||||
CONSTRAINT PK_s_module PRIMARY KEY (b_id),
|
||||
CONSTRAINT FK_s_module_parent FOREIGN KEY (b_parent_id) REFERENCES dbo.s_module (b_id),
|
||||
CONSTRAINT UQ_s_module_code UNIQUE (b_code),
|
||||
CONSTRAINT CK_s_module_code CHECK (
|
||||
LEN(b_code) BETWEEN 2 AND 50
|
||||
AND b_code COLLATE Latin1_General_100_BIN2 LIKE '[a-z]%'
|
||||
AND b_code COLLATE Latin1_General_100_BIN2 NOT LIKE '%[^a-z0-9_]%'
|
||||
),
|
||||
CONSTRAINT CK_b_module_type CHECK (b_module_type IN ('directory', 'page', 'data')),
|
||||
CONSTRAINT CK_b_module_canmenu CHECK (b_canmenu IN (0, 1)),
|
||||
CONSTRAINT CK_b_module_canuse CHECK (b_canuse IN (0, 1)),
|
||||
CONSTRAINT CK_b_module_directory CHECK (b_module_type <> 'directory' OR (b_route IS NULL AND b_viewtable IS NULL AND b_savetable IS NULL)),
|
||||
CONSTRAINT CK_b_module_page CHECK (b_module_type <> 'page' OR b_route IS NOT NULL),
|
||||
CONSTRAINT CK_b_module_data CHECK (b_module_type <> 'data' OR (b_canmenu = 0 AND b_route IS NULL))
|
||||
CONSTRAINT CK_s_module_type CHECK (b_module_type IN ('directory', 'page', 'data')),
|
||||
CONSTRAINT CK_s_module_canmenu CHECK (b_canmenu IN (0, 1)),
|
||||
CONSTRAINT CK_s_module_canuse CHECK (b_canuse IN (0, 1)),
|
||||
CONSTRAINT CK_s_module_directory CHECK (b_module_type <> 'directory' OR (b_route IS NULL AND b_viewtable IS NULL AND b_savetable IS NULL)),
|
||||
CONSTRAINT CK_s_module_page CHECK (b_module_type <> 'page' OR b_route IS NOT NULL),
|
||||
CONSTRAINT CK_s_module_data CHECK (b_module_type <> 'data' OR (b_canmenu = 0 AND b_route IS NULL))
|
||||
);
|
||||
CREATE UNIQUE INDEX UX_b_module_route ON dbo.b_module (b_route) WHERE b_route IS NOT NULL;
|
||||
CREATE INDEX IX_b_module_parent ON dbo.b_module (b_parent_id, b_xh, b_id);
|
||||
CREATE UNIQUE INDEX UX_s_module_route ON dbo.s_module (b_route) WHERE b_route IS NOT NULL;
|
||||
CREATE INDEX IX_s_module_parent ON dbo.s_module (b_parent_id, b_xh, b_id);
|
||||
|
||||
CREATE TABLE dbo.b_module_field (
|
||||
CREATE TABLE dbo.s_module_field (
|
||||
b_id bigint NOT NULL,
|
||||
b_module_id bigint NOT NULL,
|
||||
b_field varchar(50) NOT NULL,
|
||||
@@ -86,103 +86,100 @@ GO
|
||||
b_type varchar(30) NOT NULL,
|
||||
b_default_value nvarchar(500) NULL,
|
||||
b_options nvarchar(max) NULL,
|
||||
b_canuse int NOT NULL CONSTRAINT DF_b_module_field_canuse DEFAULT (1),
|
||||
CONSTRAINT PK_b_module_field PRIMARY KEY (b_id),
|
||||
CONSTRAINT FK_b_module_field_module FOREIGN KEY (b_module_id) REFERENCES dbo.b_module (b_id),
|
||||
CONSTRAINT UQ_b_module_field UNIQUE (b_module_id, b_field),
|
||||
CONSTRAINT CK_b_module_field_type CHECK (b_type IN ('input', 'textarea', 'number', 'money', 'date', 'datetime', 'switch', 'select')),
|
||||
CONSTRAINT CK_b_module_field_canuse CHECK (b_canuse IN (0, 1)),
|
||||
CONSTRAINT CK_b_module_field_options CHECK (b_options IS NULL OR ISJSON(b_options) = 1)
|
||||
b_canuse int NOT NULL CONSTRAINT DF_s_module_field_canuse DEFAULT (1),
|
||||
CONSTRAINT PK_s_module_field PRIMARY KEY (b_id),
|
||||
CONSTRAINT FK_s_module_field_module FOREIGN KEY (b_module_id) REFERENCES dbo.s_module (b_id),
|
||||
CONSTRAINT UQ_s_module_field UNIQUE (b_module_id, b_field),
|
||||
CONSTRAINT CK_s_module_field_type CHECK (b_type IN ('input', 'textarea', 'number', 'money', 'date', 'datetime', 'switch', 'select')),
|
||||
CONSTRAINT CK_s_module_field_canuse CHECK (b_canuse IN (0, 1)),
|
||||
CONSTRAINT CK_s_module_field_options CHECK (b_options IS NULL OR ISJSON(b_options) = 1)
|
||||
);
|
||||
CREATE INDEX IX_b_module_field_module ON dbo.b_module_field (b_module_id, b_canuse, b_id);
|
||||
CREATE INDEX IX_s_module_field_module ON dbo.s_module_field (b_module_id, b_canuse, b_id);
|
||||
|
||||
CREATE TABLE dbo.b_module_field_group (
|
||||
CREATE TABLE dbo.s_module_field_group (
|
||||
b_id bigint NOT NULL,
|
||||
b_module_id bigint NOT NULL,
|
||||
b_parent_id bigint NULL,
|
||||
b_title nvarchar(100) NOT NULL,
|
||||
b_i18n varchar(150) NULL,
|
||||
b_xh int NOT NULL CONSTRAINT DF_b_module_field_group_xh DEFAULT (0),
|
||||
b_canuse int NOT NULL CONSTRAINT DF_b_module_field_group_canuse DEFAULT (1),
|
||||
CONSTRAINT PK_b_module_field_group PRIMARY KEY (b_id),
|
||||
CONSTRAINT FK_b_module_field_group_module FOREIGN KEY (b_module_id) REFERENCES dbo.b_module (b_id),
|
||||
CONSTRAINT FK_b_module_field_group_parent FOREIGN KEY (b_parent_id) REFERENCES dbo.b_module_field_group (b_id),
|
||||
CONSTRAINT CK_b_module_field_group_canuse CHECK (b_canuse IN (0, 1))
|
||||
b_xh int NOT NULL CONSTRAINT DF_s_module_field_group_xh DEFAULT (0),
|
||||
b_canuse int NOT NULL CONSTRAINT DF_s_module_field_group_canuse DEFAULT (1),
|
||||
CONSTRAINT PK_s_module_field_group PRIMARY KEY (b_id),
|
||||
CONSTRAINT FK_s_module_field_group_module FOREIGN KEY (b_module_id) REFERENCES dbo.s_module (b_id),
|
||||
CONSTRAINT FK_s_module_field_group_parent FOREIGN KEY (b_parent_id) REFERENCES dbo.s_module_field_group (b_id),
|
||||
CONSTRAINT CK_s_module_field_group_canuse CHECK (b_canuse IN (0, 1))
|
||||
);
|
||||
CREATE INDEX IX_b_module_field_group_module ON dbo.b_module_field_group (b_module_id, b_canuse, b_xh, b_id);
|
||||
CREATE INDEX IX_s_module_field_group_module ON dbo.s_module_field_group (b_module_id, b_canuse, b_xh, b_id);
|
||||
|
||||
CREATE TABLE dbo.b_module_field_list (
|
||||
CREATE TABLE dbo.s_module_field_list (
|
||||
b_id bigint NOT NULL,
|
||||
b_module_id bigint NOT NULL,
|
||||
b_field_id bigint NULL,
|
||||
b_group_id bigint NULL,
|
||||
b_title nvarchar(100) NULL,
|
||||
b_i18n varchar(150) NULL,
|
||||
b_visible int NOT NULL CONSTRAINT DF_b_module_field_list_visible DEFAULT (1),
|
||||
b_xh int NOT NULL CONSTRAINT DF_b_module_field_list_xh DEFAULT (0),
|
||||
b_visible int NOT NULL CONSTRAINT DF_s_module_field_list_visible DEFAULT (1),
|
||||
b_xh int NOT NULL CONSTRAINT DF_s_module_field_list_xh DEFAULT (0),
|
||||
b_width int NULL,
|
||||
b_sortable int NOT NULL CONSTRAINT DF_b_module_field_list_sortable DEFAULT (0),
|
||||
CONSTRAINT PK_b_module_field_list PRIMARY KEY (b_id),
|
||||
CONSTRAINT FK_b_module_field_list_module FOREIGN KEY (b_module_id) REFERENCES dbo.b_module (b_id),
|
||||
CONSTRAINT FK_b_module_field_list_field FOREIGN KEY (b_field_id) REFERENCES dbo.b_module_field (b_id),
|
||||
CONSTRAINT FK_b_module_field_list_group FOREIGN KEY (b_group_id) REFERENCES dbo.b_module_field_group (b_id),
|
||||
CONSTRAINT CK_b_module_field_list_visible CHECK (b_visible IN (0, 1)),
|
||||
CONSTRAINT CK_b_module_field_list_sortable CHECK (b_sortable IN (0, 1)),
|
||||
CONSTRAINT CK_b_module_field_list_width CHECK (b_width IS NULL OR b_width > 0)
|
||||
CONSTRAINT PK_s_module_field_list PRIMARY KEY (b_id),
|
||||
CONSTRAINT FK_s_module_field_list_module FOREIGN KEY (b_module_id) REFERENCES dbo.s_module (b_id),
|
||||
CONSTRAINT FK_s_module_field_list_field FOREIGN KEY (b_field_id) REFERENCES dbo.s_module_field (b_id),
|
||||
CONSTRAINT FK_s_module_field_list_group FOREIGN KEY (b_group_id) REFERENCES dbo.s_module_field_group (b_id),
|
||||
CONSTRAINT CK_s_module_field_list_visible CHECK (b_visible IN (0, 1)),
|
||||
CONSTRAINT CK_s_module_field_list_width CHECK (b_width IS NULL OR b_width > 0)
|
||||
);
|
||||
CREATE UNIQUE INDEX UX_b_module_field_list_field ON dbo.b_module_field_list (b_module_id, b_field_id) WHERE b_field_id IS NOT NULL;
|
||||
CREATE INDEX IX_b_module_field_list_tree ON dbo.b_module_field_list (b_module_id, b_group_id, b_xh, b_id);
|
||||
CREATE UNIQUE INDEX UX_s_module_field_list_field ON dbo.s_module_field_list (b_module_id, b_field_id) WHERE b_field_id IS NOT NULL;
|
||||
CREATE INDEX IX_s_module_field_list_tree ON dbo.s_module_field_list (b_module_id, b_group_id, b_xh, b_id);
|
||||
|
||||
CREATE TABLE dbo.b_module_field_edit (
|
||||
CREATE TABLE dbo.s_module_field_edit (
|
||||
b_id bigint NOT NULL,
|
||||
b_module_id bigint NOT NULL,
|
||||
b_field_id bigint NOT NULL,
|
||||
b_required int NOT NULL CONSTRAINT DF_b_module_field_edit_required DEFAULT (0),
|
||||
b_readonly int NOT NULL CONSTRAINT DF_b_module_field_edit_readonly DEFAULT (0),
|
||||
b_disabled int NOT NULL CONSTRAINT DF_b_module_field_edit_disabled DEFAULT (0),
|
||||
b_required int NOT NULL CONSTRAINT DF_s_module_field_edit_required DEFAULT (0),
|
||||
b_readonly int NOT NULL CONSTRAINT DF_s_module_field_edit_readonly DEFAULT (0),
|
||||
b_disabled int NOT NULL CONSTRAINT DF_s_module_field_edit_disabled DEFAULT (0),
|
||||
b_group_id bigint NULL,
|
||||
b_xh int NOT NULL CONSTRAINT DF_b_module_field_edit_xh DEFAULT (0),
|
||||
CONSTRAINT PK_b_module_field_edit PRIMARY KEY (b_id),
|
||||
CONSTRAINT FK_b_module_field_edit_module FOREIGN KEY (b_module_id) REFERENCES dbo.b_module (b_id),
|
||||
CONSTRAINT FK_b_module_field_edit_field FOREIGN KEY (b_field_id) REFERENCES dbo.b_module_field (b_id),
|
||||
CONSTRAINT FK_b_module_field_edit_group FOREIGN KEY (b_group_id) REFERENCES dbo.b_module_field_group (b_id),
|
||||
CONSTRAINT UQ_b_module_field_edit UNIQUE (b_module_id, b_field_id),
|
||||
CONSTRAINT CK_b_module_field_edit_required CHECK (b_required IN (0, 1)),
|
||||
CONSTRAINT CK_b_module_field_edit_readonly CHECK (b_readonly IN (0, 1)),
|
||||
CONSTRAINT CK_b_module_field_edit_disabled CHECK (b_disabled IN (0, 1))
|
||||
b_xh int NOT NULL CONSTRAINT DF_s_module_field_edit_xh DEFAULT (0),
|
||||
CONSTRAINT PK_s_module_field_edit PRIMARY KEY (b_id),
|
||||
CONSTRAINT FK_s_module_field_edit_module FOREIGN KEY (b_module_id) REFERENCES dbo.s_module (b_id),
|
||||
CONSTRAINT FK_s_module_field_edit_field FOREIGN KEY (b_field_id) REFERENCES dbo.s_module_field (b_id),
|
||||
CONSTRAINT FK_s_module_field_edit_group FOREIGN KEY (b_group_id) REFERENCES dbo.s_module_field_group (b_id),
|
||||
CONSTRAINT UQ_s_module_field_edit UNIQUE (b_module_id, b_field_id),
|
||||
CONSTRAINT CK_s_module_field_edit_required CHECK (b_required IN (0, 1)),
|
||||
CONSTRAINT CK_s_module_field_edit_readonly CHECK (b_readonly IN (0, 1)),
|
||||
CONSTRAINT CK_s_module_field_edit_disabled CHECK (b_disabled IN (0, 1))
|
||||
);
|
||||
CREATE INDEX IX_b_module_field_edit_module ON dbo.b_module_field_edit (b_module_id, b_xh, b_id);
|
||||
CREATE INDEX IX_s_module_field_edit_module ON dbo.s_module_field_edit (b_module_id, b_xh, b_id);
|
||||
|
||||
CREATE TABLE dbo.b_module_field_query (
|
||||
CREATE TABLE dbo.s_module_field_query (
|
||||
b_id bigint NOT NULL,
|
||||
b_module_id bigint NOT NULL,
|
||||
b_field_id bigint NOT NULL,
|
||||
b_component varchar(30) NOT NULL,
|
||||
b_operator varchar(20) NOT NULL,
|
||||
b_default_value nvarchar(500) NULL,
|
||||
b_xh int NOT NULL CONSTRAINT DF_b_module_field_query_xh DEFAULT (0),
|
||||
b_canuse int NOT NULL CONSTRAINT DF_b_module_field_query_canuse DEFAULT (1),
|
||||
CONSTRAINT PK_b_module_field_query PRIMARY KEY (b_id),
|
||||
CONSTRAINT FK_b_module_field_query_module FOREIGN KEY (b_module_id) REFERENCES dbo.b_module (b_id),
|
||||
CONSTRAINT FK_b_module_field_query_field FOREIGN KEY (b_field_id) REFERENCES dbo.b_module_field (b_id),
|
||||
CONSTRAINT UQ_b_module_field_query UNIQUE (b_module_id, b_field_id),
|
||||
CONSTRAINT CK_b_module_field_query_operator CHECK (b_operator IN ('=', 'like', 'between', 'in')),
|
||||
CONSTRAINT CK_b_module_field_query_canuse CHECK (b_canuse IN (0, 1))
|
||||
b_xh int NOT NULL CONSTRAINT DF_s_module_field_query_xh DEFAULT (0),
|
||||
b_canuse int NOT NULL CONSTRAINT DF_s_module_field_query_canuse DEFAULT (1),
|
||||
CONSTRAINT PK_s_module_field_query PRIMARY KEY (b_id),
|
||||
CONSTRAINT FK_s_module_field_query_module FOREIGN KEY (b_module_id) REFERENCES dbo.s_module (b_id),
|
||||
CONSTRAINT FK_s_module_field_query_field FOREIGN KEY (b_field_id) REFERENCES dbo.s_module_field (b_id),
|
||||
CONSTRAINT UQ_s_module_field_query UNIQUE (b_module_id, b_field_id),
|
||||
CONSTRAINT CK_s_module_field_query_operator CHECK (b_operator IN ('=', 'like', 'between', 'in')),
|
||||
CONSTRAINT CK_s_module_field_query_canuse CHECK (b_canuse IN (0, 1))
|
||||
);
|
||||
CREATE INDEX IX_b_module_field_query_module ON dbo.b_module_field_query (b_module_id, b_canuse, b_xh, b_id);
|
||||
CREATE INDEX IX_s_module_field_query_module ON dbo.s_module_field_query (b_module_id, b_canuse, b_xh, b_id);
|
||||
|
||||
CREATE TABLE dbo.b_module_power (
|
||||
CREATE TABLE dbo.s_module_power (
|
||||
b_id bigint NOT NULL,
|
||||
b_module_id bigint NOT NULL,
|
||||
b_code varchar(50) NOT NULL,
|
||||
b_name nvarchar(100) NOT NULL,
|
||||
b_i18n varchar(150) NULL,
|
||||
b_xh int NOT NULL CONSTRAINT DF_b_module_power_xh DEFAULT (0),
|
||||
b_canuse int NOT NULL CONSTRAINT DF_b_module_power_canuse DEFAULT (1),
|
||||
CONSTRAINT PK_b_module_power PRIMARY KEY (b_id),
|
||||
CONSTRAINT FK_b_module_power_module FOREIGN KEY (b_module_id) REFERENCES dbo.b_module (b_id),
|
||||
CONSTRAINT UQ_b_module_power UNIQUE (b_module_id, b_code),
|
||||
CONSTRAINT CK_b_module_power_canuse CHECK (b_canuse IN (0, 1))
|
||||
b_xh int NOT NULL CONSTRAINT DF_s_module_power_xh DEFAULT (0),
|
||||
b_canuse int NOT NULL CONSTRAINT DF_s_module_power_canuse DEFAULT (1),
|
||||
CONSTRAINT PK_s_module_power PRIMARY KEY (b_id),
|
||||
CONSTRAINT FK_s_module_power_module FOREIGN KEY (b_module_id) REFERENCES dbo.s_module (b_id),
|
||||
CONSTRAINT UQ_s_module_power UNIQUE (b_module_id, b_code),
|
||||
CONSTRAINT CK_s_module_power_canuse CHECK (b_canuse IN (0, 1))
|
||||
);
|
||||
|
||||
CREATE TABLE dbo.b_user_module (
|
||||
@@ -193,7 +190,7 @@ GO
|
||||
b_inputdatetime datetime NOT NULL CONSTRAINT DF_b_user_module_inputdatetime DEFAULT (GETDATE()),
|
||||
CONSTRAINT PK_b_user_module PRIMARY KEY (b_id),
|
||||
CONSTRAINT FK_b_user_module_user FOREIGN KEY (b_user_id) REFERENCES dbo.b_user (b_id),
|
||||
CONSTRAINT FK_b_user_module_module FOREIGN KEY (b_module_id) REFERENCES dbo.b_module (b_id),
|
||||
CONSTRAINT FK_b_user_module_module FOREIGN KEY (b_module_id) REFERENCES dbo.s_module (b_id),
|
||||
CONSTRAINT FK_b_user_module_inputuser FOREIGN KEY (b_inputuser_id) REFERENCES dbo.b_user (b_id),
|
||||
CONSTRAINT UQ_b_user_module UNIQUE (b_user_id, b_module_id)
|
||||
);
|
||||
@@ -206,7 +203,7 @@ GO
|
||||
b_inputdatetime datetime NOT NULL CONSTRAINT DF_b_user_power_inputdatetime DEFAULT (GETDATE()),
|
||||
CONSTRAINT PK_b_user_power PRIMARY KEY (b_id),
|
||||
CONSTRAINT FK_b_user_power_user FOREIGN KEY (b_user_id) REFERENCES dbo.b_user (b_id),
|
||||
CONSTRAINT FK_b_user_power_power FOREIGN KEY (b_power_id) REFERENCES dbo.b_module_power (b_id),
|
||||
CONSTRAINT FK_b_user_power_power FOREIGN KEY (b_power_id) REFERENCES dbo.s_module_power (b_id),
|
||||
CONSTRAINT FK_b_user_power_inputuser FOREIGN KEY (b_inputuser_id) REFERENCES dbo.b_user (b_id),
|
||||
CONSTRAINT UQ_b_user_power UNIQUE (b_user_id, b_power_id)
|
||||
);
|
||||
@@ -223,11 +220,11 @@ GO
|
||||
|
||||
DECLARE @SystemId bigint = 910000000000000001;
|
||||
DECLARE @MetadataId bigint = 910000000000000002;
|
||||
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
|
||||
INSERT INTO dbo.s_module (b_id, b_code, b_parent_id, b_name, b_i18n, b_module_type, b_route, b_canmenu, b_canuse, b_xh) VALUES
|
||||
(@SystemId, 'm_system', NULL, N'系统管理', 'module.m_system', 'directory', NULL, 1, 1, 100),
|
||||
(@MetadataId, 'm_metadata', @SystemId, N'元数据配置', 'module.m_metadata', 'page', '/system/metadata', 1, 1, 10);
|
||||
|
||||
INSERT INTO dbo.b_module_power (b_id, b_module_id, b_code, b_name, b_i18n, b_xh, b_canuse) VALUES
|
||||
INSERT INTO dbo.s_module_power (b_id, b_module_id, b_code, b_name, b_i18n, b_xh, b_canuse) VALUES
|
||||
(910000000000000101, @MetadataId, 'create', N'新增', 'power.m_metadata.create', 10, 1),
|
||||
(910000000000000102, @MetadataId, 'update', N'保存', 'power.m_metadata.update', 20, 1),
|
||||
(910000000000000103, @MetadataId, 'delete', N'删除', 'power.m_metadata.delete', 30, 1),
|
||||
@@ -237,7 +234,7 @@ GO
|
||||
(910000000000000201, @AdminId, @MetadataId, @AdminId);
|
||||
INSERT INTO dbo.b_user_power (b_id, b_user_id, b_power_id, b_inputuser_id)
|
||||
SELECT 910000000000000300 + ROW_NUMBER() OVER (ORDER BY b_id), @AdminId, b_id, @AdminId
|
||||
FROM dbo.b_module_power;
|
||||
FROM dbo.s_module_power;
|
||||
|
||||
EXEC sys.sp_set_session_context @key = N'allow_g3soft', @value = NULL;
|
||||
EXEC sys.sp_set_session_context @key = N'reset_admin_id', @value = NULL;
|
||||
|
||||
@@ -20,7 +20,7 @@ BEGIN TRANSACTION;
|
||||
|
||||
-- 系统管理目录(000 脚本播种)
|
||||
DECLARE @SystemId bigint = (
|
||||
SELECT TOP (1) b_id FROM dbo.b_module WHERE b_code = N'm_system'
|
||||
SELECT TOP (1) b_id FROM dbo.s_module WHERE b_code = N'm_system'
|
||||
);
|
||||
|
||||
-- 1. 多语言类型表
|
||||
@@ -47,11 +47,11 @@ BEGIN TRANSACTION;
|
||||
END
|
||||
|
||||
-- 2. 注册模块与管理员权限(仅在模块不存在时播种)
|
||||
IF NOT EXISTS (SELECT 1 FROM dbo.b_module WHERE b_code = N'm_i18n_type')
|
||||
IF NOT EXISTS (SELECT 1 FROM dbo.s_module WHERE b_code = N'm_i18n_type')
|
||||
BEGIN
|
||||
DECLARE @I18nTypeId bigint = 910000000000000003;
|
||||
|
||||
INSERT INTO dbo.b_module (
|
||||
INSERT INTO dbo.s_module (
|
||||
b_id, b_code, b_parent_id, b_name, b_i18n, b_module_type,
|
||||
b_route, b_canmenu, b_canuse, b_xh
|
||||
) VALUES (
|
||||
@@ -59,7 +59,7 @@ BEGIN TRANSACTION;
|
||||
'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
|
||||
INSERT INTO dbo.s_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);
|
||||
@@ -71,7 +71,7 @@ BEGIN TRANSACTION;
|
||||
|
||||
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
|
||||
FROM dbo.s_module_power
|
||||
WHERE b_module_id = @I18nTypeId;
|
||||
END
|
||||
END
|
||||
|
||||
@@ -5,20 +5,20 @@
|
||||
- m_system 仅在其不存在时创建;
|
||||
- m_i18n_type 仅在其父级未指向系统管理目录时才更新。
|
||||
|
||||
依赖:b_module 表已存在(由 001_add_i18n_type.sql 或业务库结构保证)。
|
||||
依赖:s_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');
|
||||
DECLARE @SystemId bigint = (SELECT TOP (1) b_id FROM dbo.s_module WHERE b_code = N'm_system');
|
||||
|
||||
IF @SystemId IS NULL
|
||||
BEGIN
|
||||
SET @SystemId = 911000000000000001;
|
||||
|
||||
INSERT INTO dbo.b_module (
|
||||
INSERT INTO dbo.s_module (
|
||||
b_id, b_code, b_parent_id, b_name, b_i18n, b_module_type,
|
||||
b_canmenu, b_canuse, b_xh
|
||||
) VALUES (
|
||||
@@ -28,7 +28,7 @@ BEGIN TRANSACTION;
|
||||
END
|
||||
|
||||
-- 多语言类型挂到系统管理目录
|
||||
UPDATE dbo.b_module
|
||||
UPDATE dbo.s_module
|
||||
SET b_parent_id = @SystemId
|
||||
WHERE b_code = N'm_i18n_type'
|
||||
AND (b_parent_id IS NULL OR b_parent_id <> @SystemId);
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
登录日志表 s_log_login:记录每次登录尝试(成功/失败)的客户端环境与结果,用于登录审计。
|
||||
后端在登录时统一采集 IP、IP 归属地、浏览器/版本、操作系统/版本、设备类型、原始 User-Agent,
|
||||
并通过通用 saveobjt 接口写入本表;前端通过分页接口只读展示。
|
||||
表名使用 s_ 前缀以区别于业务模块表(b_)。
|
||||
|
||||
可重复执行:通过 sys.tables 存在性判断避免重复建表。
|
||||
*/
|
||||
SET NOCOUNT ON;
|
||||
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM sys.tables WHERE name = N's_log_login')
|
||||
BEGIN
|
||||
CREATE TABLE dbo.s_log_login (
|
||||
b_id bigint NOT NULL,
|
||||
b_org_id nvarchar(50) NULL,
|
||||
b_user_id bigint NULL,
|
||||
b_account nvarchar(50) NULL,
|
||||
b_login_time datetime NOT NULL CONSTRAINT DF_s_log_login_time DEFAULT (GETDATE()),
|
||||
b_ip nvarchar(50) NULL,
|
||||
b_ip_location nvarchar(200) NULL,
|
||||
b_browser nvarchar(100) NULL,
|
||||
b_browser_version nvarchar(50) NULL,
|
||||
b_os nvarchar(100) NULL,
|
||||
b_os_version nvarchar(50) NULL,
|
||||
b_device_type nvarchar(20) NULL,
|
||||
b_user_agent nvarchar(max) NULL,
|
||||
b_login_result int NOT NULL CONSTRAINT DF_s_log_login_result DEFAULT (0),
|
||||
b_fail_reason nvarchar(200) NULL,
|
||||
b_session_id nvarchar(50) NULL,
|
||||
CONSTRAINT PK_s_log_login PRIMARY KEY (b_id)
|
||||
);
|
||||
|
||||
CREATE INDEX IX_s_log_login_time ON dbo.s_log_login (b_login_time DESC, b_id);
|
||||
CREATE INDEX IX_s_log_login_account ON dbo.s_log_login (b_account, b_login_time DESC);
|
||||
CREATE INDEX IX_s_log_login_result ON dbo.s_log_login (b_login_result, b_login_time DESC);
|
||||
END
|
||||
|
||||
COMMIT TRANSACTION;
|
||||
@@ -0,0 +1,163 @@
|
||||
/*
|
||||
将新元数据结构的 b_module* 表无损重命名为 s_module*,与旧系统模块表前缀保持一致。
|
||||
字段名 b_module_id、b_module_type 以及用户授权表 b_user_module、b_user_power 保持不变。
|
||||
|
||||
如果数据库仍存在旧版 dbo.s_module(没有 b_code 字段),脚本会终止,避免覆盖同名旧结构。
|
||||
*/
|
||||
SET NOCOUNT ON;
|
||||
SET XACT_ABORT ON;
|
||||
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
IF OBJECT_ID(N'dbo.s_module', N'U') IS NOT NULL
|
||||
AND COL_LENGTH(N'dbo.s_module', N'b_code') IS NULL
|
||||
THROW 51020, N'检测到旧版 dbo.s_module,无法自动迁移新模块元数据表。', 1;
|
||||
|
||||
DECLARE @Tables TABLE (
|
||||
b_old_name sysname NOT NULL,
|
||||
b_new_name sysname NOT NULL,
|
||||
b_xh int NOT NULL
|
||||
);
|
||||
|
||||
INSERT INTO @Tables (b_old_name, b_new_name, b_xh) VALUES
|
||||
(N'b_module', N's_module', 10),
|
||||
(N'b_module_field', N's_module_field', 20),
|
||||
(N'b_module_field_group', N's_module_field_group', 30),
|
||||
(N'b_module_field_list', N's_module_field_list', 40),
|
||||
(N'b_module_field_edit', N's_module_field_edit', 50),
|
||||
(N'b_module_field_query', N's_module_field_query', 60),
|
||||
(N'b_module_power', N's_module_power', 70);
|
||||
|
||||
IF EXISTS (
|
||||
SELECT 1
|
||||
FROM @Tables
|
||||
WHERE OBJECT_ID(N'dbo.' + b_old_name, N'U') IS NOT NULL
|
||||
AND OBJECT_ID(N'dbo.' + b_new_name, N'U') IS NOT NULL
|
||||
)
|
||||
THROW 51021, N'模块新旧表名同时存在,已取消自动重命名。', 1;
|
||||
|
||||
DECLARE @OldName sysname;
|
||||
DECLARE @NewName sysname;
|
||||
DECLARE @QualifiedName nvarchar(517);
|
||||
|
||||
DECLARE table_cursor CURSOR LOCAL FAST_FORWARD FOR
|
||||
SELECT b_old_name, b_new_name
|
||||
FROM @Tables
|
||||
ORDER BY b_xh;
|
||||
|
||||
OPEN table_cursor;
|
||||
FETCH NEXT FROM table_cursor INTO @OldName, @NewName;
|
||||
|
||||
WHILE @@FETCH_STATUS = 0
|
||||
BEGIN
|
||||
IF OBJECT_ID(N'dbo.' + @OldName, N'U') IS NOT NULL
|
||||
BEGIN
|
||||
SET @QualifiedName = N'dbo.' + QUOTENAME(@OldName);
|
||||
EXEC sys.sp_rename @objname = @QualifiedName, @newname = @NewName, @objtype = N'OBJECT';
|
||||
END;
|
||||
FETCH NEXT FROM table_cursor INTO @OldName, @NewName;
|
||||
END;
|
||||
|
||||
CLOSE table_cursor;
|
||||
DEALLOCATE table_cursor;
|
||||
|
||||
IF OBJECT_ID(N'dbo.s_module', N'U') IS NOT NULL
|
||||
BEGIN
|
||||
UPDATE module
|
||||
SET b_viewtable = CASE
|
||||
WHEN module.b_viewtable = tables.b_old_name THEN tables.b_new_name
|
||||
ELSE N'dbo.' + tables.b_new_name
|
||||
END
|
||||
FROM dbo.s_module AS module
|
||||
INNER JOIN @Tables AS tables
|
||||
ON module.b_viewtable IN (tables.b_old_name, N'dbo.' + tables.b_old_name);
|
||||
|
||||
UPDATE module
|
||||
SET b_savetable = CASE
|
||||
WHEN module.b_savetable = tables.b_old_name THEN tables.b_new_name
|
||||
ELSE N'dbo.' + tables.b_new_name
|
||||
END
|
||||
FROM dbo.s_module AS module
|
||||
INNER JOIN @Tables AS tables
|
||||
ON module.b_savetable IN (tables.b_old_name, N'dbo.' + tables.b_old_name);
|
||||
END;
|
||||
|
||||
DECLARE @ObjectName sysname;
|
||||
DECLARE @RenamedObjectName sysname;
|
||||
|
||||
DECLARE object_cursor CURSOR LOCAL FAST_FORWARD FOR
|
||||
SELECT o.name, REPLACE(o.name, N'b_module', N's_module')
|
||||
FROM sys.objects AS o
|
||||
WHERE o.parent_object_id IN (
|
||||
OBJECT_ID(N'dbo.s_module'),
|
||||
OBJECT_ID(N'dbo.s_module_field'),
|
||||
OBJECT_ID(N'dbo.s_module_field_group'),
|
||||
OBJECT_ID(N'dbo.s_module_field_list'),
|
||||
OBJECT_ID(N'dbo.s_module_field_edit'),
|
||||
OBJECT_ID(N'dbo.s_module_field_query'),
|
||||
OBJECT_ID(N'dbo.s_module_power')
|
||||
)
|
||||
AND o.name LIKE N'%b[_]module%'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM sys.objects AS renamed
|
||||
WHERE renamed.name = REPLACE(o.name, N'b_module', N's_module')
|
||||
);
|
||||
|
||||
OPEN object_cursor;
|
||||
FETCH NEXT FROM object_cursor INTO @ObjectName, @RenamedObjectName;
|
||||
|
||||
WHILE @@FETCH_STATUS = 0
|
||||
BEGIN
|
||||
SET @QualifiedName = N'dbo.' + QUOTENAME(@ObjectName);
|
||||
EXEC sys.sp_rename
|
||||
@objname = @QualifiedName,
|
||||
@newname = @RenamedObjectName,
|
||||
@objtype = N'OBJECT';
|
||||
FETCH NEXT FROM object_cursor INTO @ObjectName, @RenamedObjectName;
|
||||
END;
|
||||
|
||||
CLOSE object_cursor;
|
||||
DEALLOCATE object_cursor;
|
||||
|
||||
DECLARE @TableName sysname;
|
||||
|
||||
DECLARE index_cursor CURSOR LOCAL FAST_FORWARD FOR
|
||||
SELECT t.name, i.name, REPLACE(i.name, N'b_module', N's_module')
|
||||
FROM sys.indexes AS i
|
||||
INNER JOIN sys.tables AS t ON t.object_id = i.object_id
|
||||
WHERE t.name IN (
|
||||
N's_module',
|
||||
N's_module_field',
|
||||
N's_module_field_group',
|
||||
N's_module_field_list',
|
||||
N's_module_field_edit',
|
||||
N's_module_field_query',
|
||||
N's_module_power'
|
||||
)
|
||||
AND i.name LIKE N'%b[_]module%'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM sys.indexes AS renamed
|
||||
WHERE renamed.object_id = i.object_id
|
||||
AND renamed.name = REPLACE(i.name, N'b_module', N's_module')
|
||||
);
|
||||
|
||||
OPEN index_cursor;
|
||||
FETCH NEXT FROM index_cursor INTO @TableName, @ObjectName, @RenamedObjectName;
|
||||
|
||||
WHILE @@FETCH_STATUS = 0
|
||||
BEGIN
|
||||
SET @QualifiedName =
|
||||
N'dbo.' + QUOTENAME(@TableName) + N'.' + QUOTENAME(@ObjectName);
|
||||
EXEC sys.sp_rename
|
||||
@objname = @QualifiedName,
|
||||
@newname = @RenamedObjectName,
|
||||
@objtype = N'INDEX';
|
||||
FETCH NEXT FROM index_cursor INTO @TableName, @ObjectName, @RenamedObjectName;
|
||||
END;
|
||||
|
||||
CLOSE index_cursor;
|
||||
DEALLOCATE index_cursor;
|
||||
|
||||
COMMIT TRANSACTION;
|
||||
Reference in new issue
Block a user