From aa31a153a2758d48b92a06c88a4cf029e2c76a5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=AC=E6=A2=93=E5=BD=AD?= Date: Fri, 8 May 2026 16:04:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=82=E8=B5=9B=E8=AE=B0=E5=BD=95=E5=A4=9A?= =?UTF-8?q?=E5=9B=A2=E9=98=9F=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Event/EventRecordService.cs | 33 +++++++++++-------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/YD_Event.Application/Event/EventRecordService.cs b/YD_Event.Application/Event/EventRecordService.cs index b39e561..931cf4e 100644 --- a/YD_Event.Application/Event/EventRecordService.cs +++ b/YD_Event.Application/Event/EventRecordService.cs @@ -187,17 +187,6 @@ public class EventRecordService : BaseService, 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, 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, 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? memberIds = members.Count > 0 ? members.Select(m => m.Id).ToList() : null; var memberInfoList = members.Select(m => new MemberInfo