参赛记录多团队显示

This commit is contained in:
马梓彭 2026-05-08 16:04:22 +08:00
parent 24296764bd
commit aa31a153a2

View File

@ -187,17 +187,6 @@ public class EventRecordService : BaseService<EventRegistration>, ITransient
var registrationItems = items.Where(i => row.RegistrationIds.Contains(i.RegistrationId)).ToList();
foreach (var item in registrationItems)
{
// 查找对应的成绩
var result = results.FirstOrDefault(r =>
r.RegistrationId == item.RegistrationId &&
r.ProjectId == item.ProjectId &&
r.GroupName == item.GroupName);
// 查找该项目的所有队员
var members = registrationPersons
.Where(p => p.RegistrationId == item.RegistrationId && p.ProjectId == item.ProjectId && p.GroupName == item.GroupName)
.ToList();
// 判断项目类型
bool isIndividualProject = false;
int projectType = 0;
@ -212,13 +201,18 @@ public class EventRecordService : BaseService<EventRegistration>, ITransient
if (isIndividualProject)
{
// 个人项目:每个运动员单独一行
// 查找该项目的所有队员(按 RegistrationItemId 筛选)
var members = registrationPersons
.Where(p => p.RegistrationItemId == item.Id)
.ToList();
foreach (var member in members)
{
// 查找该成员对应的成绩
var memberResult = results.FirstOrDefault(r =>
r.RegistrationId == item.RegistrationId &&
r.ProjectId == item.ProjectId &&
r.GroupName == item.GroupName &&
r.GroupName == item.GroupName &&
r.RegistrationPersonId == member.Id);
row.Items.Add(new EventRegistrationItemOutput
@ -248,7 +242,20 @@ public class EventRecordService : BaseService<EventRegistration>, ITransient
}
else
{
// 团队项目:所有队员一行
// 团队项目:每个 RegistrationItemId 单独一行,只显示该项目的队员和成绩
// 查找该项目的所有队员(按 RegistrationItemId 筛选)
var members = registrationPersons
.Where(p => p.RegistrationItemId == item.Id)
.ToList();
// 查找团队成绩:找到该团队中任意一个队员的成绩作为团队成绩
var teamMemberIds = members.Select(m => m.Id).ToList();
var result = results.FirstOrDefault(r =>
r.RegistrationId == item.RegistrationId &&
r.ProjectId == item.ProjectId &&
r.GroupName == item.GroupName &&
teamMemberIds.Contains(r.RegistrationPersonId));
string? memberNames = members.Count > 0 ? string.Join(", ", members.Select(m => m.Name)) : null;
List<long>? memberIds = members.Count > 0 ? members.Select(m => m.Id).ToList() : null;
var memberInfoList = members.Select(m => new MemberInfo