diff --git a/YD_Event.Application/Event/UnifiedRegistrationService.cs b/YD_Event.Application/Event/UnifiedRegistrationService.cs index 8793e27..a43f0c8 100644 --- a/YD_Event.Application/Event/UnifiedRegistrationService.cs +++ b/YD_Event.Application/Event/UnifiedRegistrationService.cs @@ -2027,35 +2027,44 @@ public class UnifiedRegistrationService : ITransient var project = projects.FirstOrDefault(p => p.Id == eventProject.ProjectId); if (project == null) continue; - // ==================== 项目完成人数验证 ==================== - // 只要项目配置了完成人数(单一值或范围值),就进行验证 - // 不再依赖 isTeamProject 判断,确保所有类型的项目都能正确验证 - bool hasValidCompletionConfig = false; + // ==================== 项目类型判断 ==================== + // 个人项目不进行完成人数限制 + var isTeamProject = project.IsTeamProject(); + if (!isTeamProject) + { + continue; + } + + // ==================== 完成人数配置解析 ==================== + // 解析完成人数范围(单一值模式:min==max;范围值模式:min 0) { - hasValidCompletionConfig = true; completionMin = project.CompletionCount; completionMax = project.CompletionCount; + hasValidCompletionConfig = true; } } - else + else if (project.CompletionCountType == 1) { - // 范围值模式 + // 范围值模式 — 必须同时配置 Min/Max 且 Min <= Max if (project.CompletionCountMin.HasValue && project.CompletionCountMax.HasValue && - project.CompletionCountMin.Value > 0 && project.CompletionCountMax.Value > 0) + project.CompletionCountMin.Value > 0 && project.CompletionCountMax.Value > 0 && + project.CompletionCountMin.Value <= project.CompletionCountMax.Value) { - hasValidCompletionConfig = true; completionMin = project.CompletionCountMin.Value; completionMax = project.CompletionCountMax.Value; + hasValidCompletionConfig = true; } } + // 未配置有效完成人数时跳过 if (!hasValidCompletionConfig) { continue; @@ -2065,7 +2074,7 @@ public class UnifiedRegistrationService : ITransient if (teams.Count > 0) { // ========== 多团队模式 ========== - // 对每个团队单独验证人数是否在范围内(或等于单一值) + // 对每个团队单独验证人数是否在范围内 foreach (var team in teams) { var teamMemberCount = team.Persons?.Count ?? 0; diff --git a/YD_Event.Application/Event/UserEventRegistrationService.cs b/YD_Event.Application/Event/UserEventRegistrationService.cs index 8976fcc..3237e5c 100644 --- a/YD_Event.Application/Event/UserEventRegistrationService.cs +++ b/YD_Event.Application/Event/UserEventRegistrationService.cs @@ -1405,11 +1405,12 @@ public class UserEventRegistrationService : IDynamicApiController, ITransient completionMax = project.CompletionCount; } } - else + else if (project.CompletionCountType == 1) { - // 范围值模式 + // 范围值模式 — 必须同时配置 Min/Max 且 Min <= Max if (project.CompletionCountMin.HasValue && project.CompletionCountMax.HasValue && - project.CompletionCountMin.Value > 0 && project.CompletionCountMax.Value > 0) + project.CompletionCountMin.Value > 0 && project.CompletionCountMax.Value > 0 && + project.CompletionCountMin.Value <= project.CompletionCountMax.Value) { hasValidCompletionConfig = true; completionMin = project.CompletionCountMin.Value;