1
|
|
2
|
----B1
|
3
|
SET NUMERIC_ROUNDABORT OFF
|
4
|
GO
|
5
|
SET ANSI_PADDING, ANSI_WARNINGS, CONCAT_NULL_YIELDS_NULL, ARITHABORT, QUOTED_IDENTIFIER, ANSI_NULLS ON
|
6
|
GO
|
7
|
SET XACT_ABORT ON
|
8
|
GO
|
9
|
SET TRANSACTION ISOLATION LEVEL Serializable
|
10
|
GO
|
11
|
IF @@ERROR <> 0 SET NOEXEC ON
|
12
|
GO
|
13
|
BEGIN TRANSACTION
|
14
|
GO
|
15
|
DECLARE @USER_DOMAIN VARCHAR(100), @BRANCH_CODE VARCHAR(50), @ROLE VARCHAR(100), @DEP_ID VARCHAR(15), @FULLNAME NVARCHAR(500)
|
16
|
DECLARE @Role1 INT, @Role2 INT, @BRANCH_ID VARCHAR(15)
|
17
|
DECLARE CURR_USER CURSOR LOCAL FOR
|
18
|
SELECT TOP 50 LOWER(TLNANME),BRANCH_CODE,RoleName,SECUR_CODE,TLFullName FROM dbo.TL_USER_V2 tuv WHERE TLNANME NOT IN (SELECT TLNANME FROM TL_USER)
|
19
|
OPEN CURR_USER
|
20
|
FETCH NEXT FROM CURR_USER INTO @USER_DOMAIN,@BRANCH_CODE,@ROLE,@DEP_ID, @FULLNAME
|
21
|
WHILE @@FETCH_STATUS = 0
|
22
|
BEGIN
|
23
|
SET @Role1 = (SELECT TOP(1) Id FROM AbpRoles WHERE DisplayName = @ROLE)
|
24
|
SET @BRANCH_ID = (SELECT TOP(1) BRANCH_ID FROM CM_BRANCH WHERE BRANCH_CODE =@BRANCH_CODE)
|
25
|
IF(@BRANCH_ID IS NULL OR @BRANCH_ID ='')
|
26
|
BEGIN
|
27
|
--ROLLBACK TRANSACTION
|
28
|
PRINT N'Mã đơn vị: ' +@BRANCH_ID +N' không tồn tại trong hệ thống'
|
29
|
END
|
30
|
IF(@Role1 IS NULl)
|
31
|
BEGIN
|
32
|
--ROLLBACK TRANSACTION
|
33
|
--PRINT N'Mã ROLE: '+ @ROLE +N' không tồn tại trong hệ thống'
|
34
|
SET @Role1 =(SELECT TOP 1 ID FROM AbpRoles WHERE DisplayName='NVMS')
|
35
|
END
|
36
|
IF(NOT EXISTS (SELECT * FROM TL_USER WHERE TLNANME = @USER_DOMAIN))
|
37
|
BEGIN
|
38
|
--PRINT @USER_DOMAIN
|
39
|
INSERT INTO [TL_USER] ([TLID],[TLNANME],[Password],[TLFullName],[TLSUBBRID],[BRANCH_NAME],[BRANCH_TYPE],[RoleName],[EMAIL],[ADDRESS],[PHONE],[AUTH_STATUS],[MARKER_ID],[AUTH_ID],[APPROVE_DT],[ISAPPROVE],[Birthday],[ISFIRSTTIME],[SECUR_CODE],[AccessFailedCount],[AuthenticationSource],[ConcurrencyStamp],[CreatorUserId],[DeleterUserId],[EmailAddress],[EmailConfirmationCode],[IsActive],[IsDeleted],[IsEmailConfirmed],[IsLockoutEnabled],[IsPhoneNumberConfirmed],[IsTwoFactorEnabled],[LastModifierUserId],[LockoutEndDateUtc],[Name],[NormalizedEmailAddress],[NormalizedUserName],[PasswordResetCode],[PhoneNumber],[ProfilePictureId],[SecurityStamp],[ShouldChangePasswordOnNextLogin],[Surname],[TenantId],[SignInToken],[SignInTokenExpireTimeUtc],[GoogleAuthenticatorKey],[SendActivationEmail],[DEP_ID],[CreationTime],[UamFullName],[UamEmployeeId],[UamCompanyCode],[UamWfDataId],[UamCompanyName],[UamJobTitle])
|
40
|
SELECT NULL,@USER_DOMAIN,N'd41d8cd98f00b204e9800998ecf8427e',@FULLNAME,BRANCH_ID,BRANCH_NAME,BRANCH_TYPE,@ROLE,@USER_DOMAIN+'@vietcapitalbank.com.vn',N'',N'',N'A',N'tscd_hoiso',NULL,N'Jan 1 1900 12:00AM',N'1',N'Jan 1 1900 12:00AM',N'1',NULL,0,NULL,N'1360eb6c-4581-4870-aaf7-a2986428b91d',NULL,NULL,@USER_DOMAIN+'@vietcapitalbank.com.vn',NULL,1,0,1,0,1,0,810,NULL,NULL,@USER_DOMAIN+'@VIETCAPITALBANK.COM.VN',N'ABC',NULL,NULL,NULL,N'QSTE4B7VTYWRQON4JZTJST6QN4PEVVLB',1,NULL,1,NULL,NULL,NULL,0,NULL,N'Jul 4 2021 11:22AM',NULL,NULL,NULL,NULL,NULL,NULL
|
41
|
FROM CM_BRANCH
|
42
|
WHERE BRANCH_CODE = @BRANCH_CODE
|
43
|
INSERT INTO [AbpUserRoles] ([CreationTime],[CreatorUserId],[RoleId],[TenantId],[UserId])
|
44
|
SELECT N'2021-10-06 11:22:39.4900000' AS CreationTime, NULL AS CreatorUserId, @Role1 AS RoleId, 1 AS TenantId, ID AS UserId
|
45
|
FROM TL_USER
|
46
|
WHERE TLNANME = @USER_DOMAIN
|
47
|
UPDATE TL_USER SET SECUR_CODE =@DEP_ID, DEP_ID =@DEP_ID WHERE TLNANME =@USER_DOMAIN
|
48
|
END
|
49
|
ELSE
|
50
|
BEGIN
|
51
|
PRINT 'DA TON TAI'
|
52
|
--UPDATE TL_USER SET TLSUBBRID = @BRANCH_ID, DEP_ID =@DEP_ID WHERE TLNANME = @USER_DOMAIN
|
53
|
--UPDATE AbpUserRoles SET RoleId = @Role1 WHERE ID IN (SELECT TOP(1) A.ID FROM AbpUserRoles A LEFT JOIN TL_USER B ON A.UserId = B.ID WHERE B.TLNANME = @USER_DOMAIN)
|
54
|
END
|
55
|
UPDATE TL_USER SET NormalizedUserName = UPPER(TLNANME)
|
56
|
FETCH NEXT FROM CURR_USER INTO @USER_DOMAIN,@BRANCH_CODE,@ROLE,@DEP_ID, @FULLNAME
|
57
|
END
|
58
|
CLOSE CURR_USER -- Đóng Cursor
|
59
|
DEALLOCATE CURR_USER -- Giải phóng tài nguyên
|
60
|
IF @@ERROR <> 0 SET NOEXEC ON
|
61
|
GO
|
62
|
COMMIT TRANSACTION
|
63
|
GO
|
64
|
IF @@ERROR <> 0 SET NOEXEC ON
|
65
|
GO
|
66
|
-- This statement writes to the SQL Server Log so SQL Monitor can show this deployment.
|
67
|
IF HAS_PERMS_BY_NAME(N'sys.xp_logevent', N'OBJECT', N'EXECUTE') = 1
|
68
|
BEGIN
|
69
|
DECLARE @databaseName AS nvarchar(2048), @eventMessage AS nvarchar(2048)
|
70
|
SET @databaseName = REPLACE(REPLACE(DB_NAME(), N'\', N'\\'), N'"', N'\"')
|
71
|
SET @eventMessage = N'Redgate SQL Compare: { "deployment": { "description": "Redgate SQL Compare deployed to ' + @databaseName + N'", "database": "' + @databaseName + N'" }}'
|
72
|
EXECUTE sys.xp_logevent 55000, @eventMessage
|
73
|
END
|
74
|
GO
|
75
|
DECLARE @Success AS BIT
|
76
|
SET @Success = 1
|
77
|
SET NOEXEC OFF
|
78
|
IF (@Success = 1) PRINT 'The database update succeeded'
|
79
|
ELSE BEGIN
|
80
|
IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION
|
81
|
PRINT 'The database update failed'
|
82
|
END
|
83
|
GO
|
84
|
--B2
|
85
|
UPDATE TL_SYS_ROLE_MAPPING SET IS_MAIN = 1
|
86
|
-- B3
|
87
|
SELECT COUNT(*) FROM TL_SYS_ROLE_MAPPING --93
|
88
|
|
89
|
SELECT COUNT(*) FROM AbpUserRoles aur --3829
|
90
|
|
91
|
INSERT INTO TL_SYS_ROLE_MAPPING (ROLE_OLD, ROLE_NEW, TLNAME, DEP_ID, BRANCH_ID, EFF_DATE, EXP_DATE, NOTES, AUTH_STATUS, RECORD_STATUS, MAKER_ID, CHECKER_ID, IS_MAIN)
|
92
|
SELECT tu.RoleName, ar.DisplayName, tu.TLNANME,tu.DEP_ID,tu.TLSUBBRID,NULL,NULL,NULL,'A',1,'Admin','Admin',0
|
93
|
FROM TL_USER tu
|
94
|
JOIN AbpUserRoles aur ON tu.ID = aur.UserId
|
95
|
JOIN AbpRoles ar ON aur.RoleId = ar.Id
|
96
|
|
97
|
SELECT COUNT(*) FROM TL_SYS_ROLE_MAPPING
|
98
|
|
99
|
INSERT INTO AbpUserRoles (CreationTime, CreatorUserId, RoleId, TenantId, UserId)
|
100
|
SELECT DISTINCT SYSDATETIME(),678 AS CreatorUserId,ar.ID AS RoleId,0,B.ID AS UserId
|
101
|
FROM TL_SYS_ROLE_MAPPING A
|
102
|
JOIN TL_USER B ON B.TLNANME =A.TLNAME
|
103
|
LEFT JOIN AbpUserRoles aur ON B.ID = aur.UserId
|
104
|
LEFT JOIN AbpRoles ar ON ar.DisplayName = A.ROLE_NEW
|
105
|
WHERE A.IS_MAIN = 1 AND ar.Id <> aur.RoleId
|
106
|
|
107
|
|
108
|
SELECT UserId,RoleId
|
109
|
FROM AbpUserRoles
|
110
|
WHERE UserId
|
111
|
IN(SELECT UserId FROM AbpUserRoles GROUP BY UserId
|
112
|
HAVING COUNT(RoleId)>2)
|