删除报名项

This commit is contained in:
马梓彭 2026-04-28 09:13:17 +08:00
parent e8e0c3f9de
commit daf573b94d

View File

@ -2877,8 +2877,19 @@ public class UnifiedRegistrationService : ITransient
await _registrationPersonRepository.DeleteAsync(x => allCancelMemberIds.Contains(x.Id)); await _registrationPersonRepository.DeleteAsync(x => allCancelMemberIds.Contains(x.Id));
_logger.LogInformation("已删除队员:报名ID={RegistrationId}, 队员ID列表={PersonIds}", _logger.LogInformation("已删除队员:报名ID={RegistrationId}, 队员ID列表={PersonIds}",
registration.Id, string.Join(", ", allCancelMemberIds)); registration.Id, string.Join(", ", allCancelMemberIds));
// 检查并删除空的 RegistrationItem(所有成员都被删除的项)
var remainingPersons = await _registrationPersonRepository.GetListAsync(x => x.RegistrationId == registration.Id);
var remainingRegistrationItemIds = new HashSet<long>(remainingPersons.Select(p => p.RegistrationItemId));
var itemsToDelete = items.Where(item => !remainingRegistrationItemIds.Contains(item.Id)).ToList();
if (itemsToDelete.Count > 0)
{
await _registrationItemRepository.DeleteAsync(itemsToDelete);
_logger.LogInformation("已删除空团队:报名ID={RegistrationId}, 团队ID列表={ItemIds}",
registration.Id, string.Join(", ", itemsToDelete.Select(i => i.Id)));
}
var remainingPersonsCount = await _registrationPersonRepository.CountAsync(x => x.RegistrationId == registration.Id); var remainingPersonsCount = remainingPersons.Count;
registration.TotalPersonCount = remainingPersonsCount; registration.TotalPersonCount = remainingPersonsCount;
if (remainingPersonsCount > 0) if (remainingPersonsCount > 0)
@ -2935,8 +2946,19 @@ public class UnifiedRegistrationService : ITransient
await _registrationPersonRepository.DeleteAsync(x => allCancelMemberIds.Contains(x.Id)); await _registrationPersonRepository.DeleteAsync(x => allCancelMemberIds.Contains(x.Id));
_logger.LogInformation("已删除队员:报名ID={RegistrationId}, 队员ID列表={PersonIds}", _logger.LogInformation("已删除队员:报名ID={RegistrationId}, 队员ID列表={PersonIds}",
registration.Id, string.Join(", ", allCancelMemberIds)); registration.Id, string.Join(", ", allCancelMemberIds));
// 检查并删除空的 RegistrationItem(所有成员都被删除的项)
var remainingPersons = await _registrationPersonRepository.GetListAsync(x => x.RegistrationId == registration.Id);
var remainingRegistrationItemIds = new HashSet<long>(remainingPersons.Select(p => p.RegistrationItemId));
var itemsToDelete = items.Where(item => !remainingRegistrationItemIds.Contains(item.Id)).ToList();
if (itemsToDelete.Count > 0)
{
await _registrationItemRepository.DeleteAsync(itemsToDelete);
_logger.LogInformation("已删除空团队:报名ID={RegistrationId}, 团队ID列表={ItemIds}",
registration.Id, string.Join(", ", itemsToDelete.Select(i => i.Id)));
}
var remainingPersonsCount = await _registrationPersonRepository.CountAsync(x => x.RegistrationId == registration.Id); var remainingPersonsCount = remainingPersons.Count;
registration.TotalPersonCount = remainingPersonsCount; registration.TotalPersonCount = remainingPersonsCount;
if (remainingPersonsCount > 0) if (remainingPersonsCount > 0)