多参赛人员判断
This commit is contained in:
parent
dcd3414c54
commit
da8d63734f
@ -1119,6 +1119,11 @@ public class MemberValidateInput
|
|||||||
[Required]
|
[Required]
|
||||||
public long MemberId { get; set; }
|
public long MemberId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 当前组内已选队员ID列表(用于年龄跨组等整组校验,兼容旧接口可不传)
|
||||||
|
/// </summary>
|
||||||
|
public List<long>? MemberIds { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 组别ID
|
/// 组别ID
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -889,15 +889,24 @@ public class UserEventRecordService : IDynamicApiController, ITransient
|
|||||||
Message = "验证通过"
|
Message = "验证通过"
|
||||||
};
|
};
|
||||||
|
|
||||||
// 添加调试:查看接收的ID
|
var validationMemberIds = input.MemberIds?
|
||||||
var memberId = input.MemberId;
|
.Where(id => id > 0)
|
||||||
var member = await _userRepository.GetByIdAsync(memberId);
|
.Distinct()
|
||||||
|
.ToList() ?? new List<long>();
|
||||||
|
|
||||||
|
if (!validationMemberIds.Contains(input.MemberId))
|
||||||
|
{
|
||||||
|
validationMemberIds.Add(input.MemberId);
|
||||||
|
}
|
||||||
|
|
||||||
|
var members = await _userRepository.GetListAsync(x => validationMemberIds.Contains(x.Id));
|
||||||
|
var member = members.FirstOrDefault(x => x.Id == input.MemberId);
|
||||||
|
|
||||||
// 添加调试:如果找不到,尝试不删除标记查询
|
// 添加调试:如果找不到,尝试不删除标记查询
|
||||||
if (member == null)
|
if (member == null)
|
||||||
{
|
{
|
||||||
var memberWithoutDelete = await _db.Queryable<YD_Event.Core.Entities.AppUser>()
|
var memberWithoutDelete = await _db.Queryable<YD_Event.Core.Entities.AppUser>()
|
||||||
.FirstAsync(m => m.Id == memberId);
|
.FirstAsync(m => m.Id == input.MemberId);
|
||||||
|
|
||||||
if (memberWithoutDelete != null)
|
if (memberWithoutDelete != null)
|
||||||
{
|
{
|
||||||
@ -928,19 +937,7 @@ public class UserEventRecordService : IDynamicApiController, ITransient
|
|||||||
var baseProject = eventProject != null ? await _projectRepository.GetByIdAsync(eventProject.ProjectId) : null;
|
var baseProject = eventProject != null ? await _projectRepository.GetByIdAsync(eventProject.ProjectId) : null;
|
||||||
var isTeamProject = baseProject?.IsTeamProject() ?? false;
|
var isTeamProject = baseProject?.IsTeamProject() ?? false;
|
||||||
|
|
||||||
// 创建单个队员的验证输入
|
var persons = BuildValidationPersons(members, input.MemberId);
|
||||||
var persons = new List<UnifiedPersonInput>
|
|
||||||
{
|
|
||||||
new UnifiedPersonInput
|
|
||||||
{
|
|
||||||
UserId = member.Id,
|
|
||||||
Name = member.Name ?? "",
|
|
||||||
IdCardNumber = member.IdCardNumber ?? "",
|
|
||||||
Gender = member.Gender,
|
|
||||||
Mobile = member.Mobile,
|
|
||||||
BirthDate = member.BirthDate.Value
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// 使用统一的验证方法进行验证
|
// 使用统一的验证方法进行验证
|
||||||
var validationResult = _unifiedRegistrationService.ValidatePersonQualifications(persons, eventProjectGroup, isTeamProject);
|
var validationResult = _unifiedRegistrationService.ValidatePersonQualifications(persons, eventProjectGroup, isTeamProject);
|
||||||
@ -951,7 +948,10 @@ public class UserEventRecordService : IDynamicApiController, ITransient
|
|||||||
result.Message = validationResult.ErrorMessage ?? "验证失败";
|
result.Message = validationResult.ErrorMessage ?? "验证失败";
|
||||||
|
|
||||||
// 根据验证详情设置具体的验证状态
|
// 根据验证详情设置具体的验证状态
|
||||||
var ageDetail = validationResult.Details?.FirstOrDefault(d => d.ItemName == "年龄验证" || d.ItemName == "年龄跨组验证");
|
var ageDetail = validationResult.Details?.FirstOrDefault(d =>
|
||||||
|
d.ItemName == "年龄验证" ||
|
||||||
|
d.ItemName == "年龄跨组" ||
|
||||||
|
d.ItemName.StartsWith("年龄跨组验证"));
|
||||||
var genderDetail = validationResult.Details?.FirstOrDefault(d => d.ItemName == "性别验证");
|
var genderDetail = validationResult.Details?.FirstOrDefault(d => d.ItemName == "性别验证");
|
||||||
|
|
||||||
if (ageDetail != null && !ageDetail.IsPassed)
|
if (ageDetail != null && !ageDetail.IsPassed)
|
||||||
@ -969,6 +969,23 @@ public class UserEventRecordService : IDynamicApiController, ITransient
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static List<UnifiedPersonInput> BuildValidationPersons(List<YD_Event.Core.Entities.AppUser> members, long currentMemberId)
|
||||||
|
{
|
||||||
|
var orderedMembers = members
|
||||||
|
.OrderByDescending(x => x.Id == currentMemberId)
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
return orderedMembers.Select(m => new UnifiedPersonInput
|
||||||
|
{
|
||||||
|
UserId = m.Id,
|
||||||
|
Name = m.Name ?? "",
|
||||||
|
IdCardNumber = m.IdCardNumber ?? "",
|
||||||
|
Gender = m.Gender,
|
||||||
|
Mobile = m.Mobile,
|
||||||
|
BirthDate = m.BirthDate ?? DateTime.MinValue
|
||||||
|
}).ToList();
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 检查报名限制
|
/// 检查报名限制
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -1065,7 +1065,18 @@ public class UserEventRegistrationService : IDynamicApiController, ITransient
|
|||||||
Message = "验证通过"
|
Message = "验证通过"
|
||||||
};
|
};
|
||||||
|
|
||||||
var member = await _userRepository.GetByIdAsync(input.MemberId);
|
var validationMemberIds = input.MemberIds?
|
||||||
|
.Where(id => id > 0)
|
||||||
|
.Distinct()
|
||||||
|
.ToList() ?? new List<long>();
|
||||||
|
|
||||||
|
if (!validationMemberIds.Contains(input.MemberId))
|
||||||
|
{
|
||||||
|
validationMemberIds.Add(input.MemberId);
|
||||||
|
}
|
||||||
|
|
||||||
|
var members = await _userRepository.GetListAsync(x => validationMemberIds.Contains(x.Id));
|
||||||
|
var member = members.FirstOrDefault(x => x.Id == input.MemberId);
|
||||||
if (member == null)
|
if (member == null)
|
||||||
{
|
{
|
||||||
result.IsValid = false;
|
result.IsValid = false;
|
||||||
@ -1089,19 +1100,7 @@ public class UserEventRegistrationService : IDynamicApiController, ITransient
|
|||||||
var baseProject = eventProject != null ? await _projectRepository.GetByIdAsync(eventProject.ProjectId) : null;
|
var baseProject = eventProject != null ? await _projectRepository.GetByIdAsync(eventProject.ProjectId) : null;
|
||||||
var isTeamProject = baseProject?.IsTeamProject() ?? false;
|
var isTeamProject = baseProject?.IsTeamProject() ?? false;
|
||||||
|
|
||||||
// 创建单个队员的验证输入
|
var persons = BuildValidationPersons(members, input.MemberId);
|
||||||
var persons = new List<UnifiedPersonInput>
|
|
||||||
{
|
|
||||||
new UnifiedPersonInput
|
|
||||||
{
|
|
||||||
UserId = member.Id,
|
|
||||||
Name = member.Name ?? "",
|
|
||||||
IdCardNumber = member.IdCardNumber ?? "",
|
|
||||||
Gender = member.Gender,
|
|
||||||
Mobile = member.Mobile,
|
|
||||||
BirthDate = member.BirthDate.Value
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// 使用统一的验证方法进行验证
|
// 使用统一的验证方法进行验证
|
||||||
var validationResult = _unifiedRegistrationService.ValidatePersonQualifications(persons, eventProjectGroup, isTeamProject);
|
var validationResult = _unifiedRegistrationService.ValidatePersonQualifications(persons, eventProjectGroup, isTeamProject);
|
||||||
@ -1112,7 +1111,10 @@ public class UserEventRegistrationService : IDynamicApiController, ITransient
|
|||||||
result.Message = validationResult.ErrorMessage ?? "验证失败";
|
result.Message = validationResult.ErrorMessage ?? "验证失败";
|
||||||
|
|
||||||
// 根据验证详情设置具体的验证状态
|
// 根据验证详情设置具体的验证状态
|
||||||
var ageDetail = validationResult.Details?.FirstOrDefault(d => d.ItemName == "年龄验证" || d.ItemName == "年龄跨组验证");
|
var ageDetail = validationResult.Details?.FirstOrDefault(d =>
|
||||||
|
d.ItemName == "年龄验证" ||
|
||||||
|
d.ItemName == "年龄跨组" ||
|
||||||
|
d.ItemName.StartsWith("年龄跨组验证"));
|
||||||
var genderDetail = validationResult.Details?.FirstOrDefault(d => d.ItemName == "性别验证");
|
var genderDetail = validationResult.Details?.FirstOrDefault(d => d.ItemName == "性别验证");
|
||||||
|
|
||||||
if (ageDetail != null && !ageDetail.IsPassed)
|
if (ageDetail != null && !ageDetail.IsPassed)
|
||||||
@ -1130,6 +1132,23 @@ public class UserEventRegistrationService : IDynamicApiController, ITransient
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static List<UnifiedPersonInput> BuildValidationPersons(List<YD_Event.Core.Entities.AppUser> members, long currentMemberId)
|
||||||
|
{
|
||||||
|
var orderedMembers = members
|
||||||
|
.OrderByDescending(x => x.Id == currentMemberId)
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
return orderedMembers.Select(m => new UnifiedPersonInput
|
||||||
|
{
|
||||||
|
UserId = m.Id,
|
||||||
|
Name = m.Name ?? "",
|
||||||
|
IdCardNumber = m.IdCardNumber ?? "",
|
||||||
|
Gender = m.Gender,
|
||||||
|
Mobile = m.Mobile,
|
||||||
|
BirthDate = m.BirthDate ?? DateTime.MinValue
|
||||||
|
}).ToList();
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 检查报名限制
|
/// 检查报名限制
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user