修复bug

This commit is contained in:
马梓彭 2026-06-21 16:22:38 +08:00
parent b7440c99ab
commit 0041776c98
2 changed files with 23 additions and 13 deletions

View File

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

View File

@ -1405,11 +1405,12 @@ public class UserEventRegistrationService : IDynamicApiController, ITransient
completionMax = project.CompletionCount; completionMax = project.CompletionCount;
} }
} }
else else if (project.CompletionCountType == 1)
{ {
// 范围值模式 // 范围值模式 — 必须同时配置 Min/Max 且 Min <= Max
if (project.CompletionCountMin.HasValue && project.CompletionCountMax.HasValue && 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; hasValidCompletionConfig = true;
completionMin = project.CompletionCountMin.Value; completionMin = project.CompletionCountMin.Value;