YD_Event.Admin/二期需求/20260904_repair_wire_e2e_entries.sql

77 lines
4.4 KiB
SQL

SET NOCOUNT ON;
SET XACT_ABORT ON;
BEGIN TRANSACTION;
IF NOT EXISTS (SELECT 1 FROM dbo.EventSessionEntry WHERE Id = 468424869007365 AND SessionId = 468424868974597)
OR NOT EXISTS (SELECT 1 FROM dbo.EventSessionEntry WHERE Id = 468424869011461 AND SessionId = 468424868974597)
THROW 51100, N'目标 QA 出场记录不存在。', 1;
IF NOT EXISTS (SELECT 1 FROM dbo.EventRegistrationItem WHERE Id = 466884849647621 AND DeleteMark = 0)
OR NOT EXISTS (SELECT 1 FROM dbo.EventRegistrationPerson WHERE Id = 466885642186757 AND DeleteMark = 0)
OR NOT EXISTS (SELECT 1 FROM dbo.EventRegistrationPerson WHERE Id = 466885642182661 AND DeleteMark = 0)
THROW 51101, N'用于复制的 QA 报名数据不存在。', 1;
IF EXISTS (SELECT 1 FROM dbo.EventRegistrationItem WHERE Id IN (9301,9302) AND ISNULL(Remark,'') NOT LIKE N'%交互绳端到端QA%')
OR EXISTS (SELECT 1 FROM dbo.EventRegistrationPerson WHERE Id IN (9401,9402) AND ISNULL(Remark,'') NOT LIKE N'%交互绳端到端QA%')
THROW 51102, N'预留 QA 报名数据 ID 已被其他数据占用。', 1;
IF NOT EXISTS (SELECT 1 FROM dbo.EventRegistrationItem WHERE Id = 9301)
BEGIN
INSERT dbo.EventRegistrationItem
(Id,RegistrationId,ProjectId,EventProjectGroupId,ProjectName,ProjectTypeName,GroupName,
UnitPrice,PersonCount,TotalPrice,Remark,RefundOrderId,DeleteMark,CreatedUserId,CreatedTime,UpdatedUserId,UpdatedTime)
SELECT 9301,RegistrationId,ProjectId,EventProjectGroupId,ProjectName,ProjectTypeName,GroupName,
0,1,0,N'交互绳端到端QA-出场1',NULL,0,0,GETDATE(),NULL,NULL
FROM dbo.EventRegistrationItem WHERE Id = 466884849647621;
END;
IF NOT EXISTS (SELECT 1 FROM dbo.EventRegistrationItem WHERE Id = 9302)
BEGIN
INSERT dbo.EventRegistrationItem
(Id,RegistrationId,ProjectId,EventProjectGroupId,ProjectName,ProjectTypeName,GroupName,
UnitPrice,PersonCount,TotalPrice,Remark,RefundOrderId,DeleteMark,CreatedUserId,CreatedTime,UpdatedUserId,UpdatedTime)
SELECT 9302,RegistrationId,ProjectId,EventProjectGroupId,ProjectName,ProjectTypeName,GroupName,
0,1,0,N'交互绳端到端QA-出场2',NULL,0,0,GETDATE(),NULL,NULL
FROM dbo.EventRegistrationItem WHERE Id = 466884849647621;
END;
IF NOT EXISTS (SELECT 1 FROM dbo.EventRegistrationPerson WHERE Id = 9401)
BEGIN
INSERT dbo.EventRegistrationPerson
(Id,RegistrationId,RegistrationItemId,ProjectId,EventProjectGroupId,PersonType,UserId,Name,Gender,
IdCard,BirthDate,Phone,Age,Email,GroupName,ProjectName,CustomFieldValue,Remark,RefundOrderId,
DeleteMark,CreatedUserId,CreatedTime,UpdatedUserId,UpdatedTime)
SELECT 9401,RegistrationId,9301,ProjectId,EventProjectGroupId,PersonType,UserId,Name,Gender,
IdCard,BirthDate,Phone,Age,Email,GroupName,ProjectName,CustomFieldValue,N'交互绳端到端QA-出场1',NULL,
0,0,GETDATE(),NULL,NULL
FROM dbo.EventRegistrationPerson WHERE Id = 466885642186757;
END;
IF NOT EXISTS (SELECT 1 FROM dbo.EventRegistrationPerson WHERE Id = 9402)
BEGIN
INSERT dbo.EventRegistrationPerson
(Id,RegistrationId,RegistrationItemId,ProjectId,EventProjectGroupId,PersonType,UserId,Name,Gender,
IdCard,BirthDate,Phone,Age,Email,GroupName,ProjectName,CustomFieldValue,Remark,RefundOrderId,
DeleteMark,CreatedUserId,CreatedTime,UpdatedUserId,UpdatedTime)
SELECT 9402,RegistrationId,9302,ProjectId,EventProjectGroupId,PersonType,UserId,Name,Gender,
IdCard,BirthDate,Phone,Age,Email,GroupName,ProjectName,CustomFieldValue,N'交互绳端到端QA-出场2',NULL,
0,0,GETDATE(),NULL,NULL
FROM dbo.EventRegistrationPerson WHERE Id = 466885642182661;
END;
UPDATE dbo.EventSessionEntry SET RegistrationItemId = 9301, UpdatedUserId = 0, UpdatedTime = GETDATE()
WHERE Id = 468424869007365 AND RegistrationItemId <> 9301;
UPDATE dbo.EventSessionEntry SET RegistrationItemId = 9302, UpdatedUserId = 0, UpdatedTime = GETDATE()
WHERE Id = 468424869011461 AND RegistrationItemId <> 9302;
IF (SELECT COUNT(*) FROM dbo.EventRegistrationPerson WHERE RegistrationItemId IN (9301,9302) AND DeleteMark = 0) <> 2
THROW 51103, N'QA 出场报名人员校验失败。', 1;
COMMIT TRANSACTION;
SELECT e.Id,e.EntryNo,e.RegistrationItemId,p.Id RegistrationPersonId,p.Name
FROM dbo.EventSessionEntry e
JOIN dbo.EventRegistrationPerson p ON p.RegistrationItemId = e.RegistrationItemId AND p.DeleteMark = 0
WHERE e.Id IN (468424869007365,468424869011461)
ORDER BY e.PlayOrder;