diff --git a/IRaCIS.Core.Application/TestService.cs b/IRaCIS.Core.Application/TestService.cs
index 8558b55bf..6df2e9bf2 100644
--- a/IRaCIS.Core.Application/TestService.cs
+++ b/IRaCIS.Core.Application/TestService.cs
@@ -154,6 +154,72 @@ namespace IRaCIS.Core.Application.Service
return ResponseOutput.Ok();
}
+ ///
+ /// 项目退出历史数据维护
+ ///
+ ///
+ ///
+ ///
+ [AllowAnonymous]
+ public async Task OldTrialDeleteUser([FromServices] IRepository _trialIdentityUserRepository, [FromServices] IRepository _trialUserRoleReposiotry)
+ {
+ _userInfo.IsNotNeedInspection = true;
+
+
+ if (_trialUserRoleReposiotry.Any(t => t.TrialUserId == Guid.Empty))
+ {
+ var list = _trialUserRoleReposiotry.Where(t => t.IsDeleted == true && t.TrialUserId == Guid.Empty, false, true).Select(t => new { t.TrialId, t.UserRole.IdentityUserId, t.UserId, t.JoinTime, t.RemoveTime, t.DeletedTime, t.DeleteUserId, t.CreateUserId }).ToList();
+
+
+ foreach (var item in list.GroupBy(t => new { t.IdentityUserId, t.TrialId }))
+ {
+
+ var id = NewId.NextSequentialGuid();
+
+ var userRoleList = item.ToList();
+
+ var userIdList = item.Select(t => t.UserId).ToList();
+
+ var first = userRoleList.OrderByDescending(t => t.RemoveTime).FirstOrDefault();
+
+
+ //判断在项目中是否存在
+
+ var find = _trialIdentityUserRepository.Where(t => t.IdentityUserId == first.IdentityUserId && t.TrialId == first.TrialId).FirstOrDefault();
+
+ if (find == null)
+ {
+ await _trialIdentityUserRepository.AddAsync(new TrialIdentityUser()
+ {
+ Id = id,
+ IdentityUserId = item.Key.IdentityUserId,
+ TrialId = item.Key.TrialId,
+ RemoveTime = first.RemoveTime,
+ IsDeleted = true,
+ DeletedTime = first.DeletedTime,
+ DeleteUserId = first.DeleteUserId,
+
+ });
+
+
+ await _trialUserRoleReposiotry.BatchUpdateNoTrackingAsync(t => t.TrialId == item.Key.TrialId && userIdList.Contains(t.UserId), u => new TrialUserRole() { TrialUserId = id, UpdateTime = (DateTime)first.DeletedTime });
+ }
+ else
+ {
+ await _trialUserRoleReposiotry.BatchUpdateNoTrackingAsync(t => t.TrialId == item.Key.TrialId && userIdList.Contains(t.UserId), u => new TrialUserRole() { TrialUserId = find.Id, UpdateTime = (DateTime)first.DeletedTime });
+ }
+
+
+
+ }
+
+ await _trialIdentityUserRepository.SaveChangesAsync();
+ }
+
+
+
+ return ResponseOutput.Ok();
+ }
///
/// 用户多账号,初次维护数据