完善人员认证的处理
This commit is contained in:
parent
fbb4d9f750
commit
570a17ea10
@ -143,11 +143,20 @@ public class UnifiedPersonInput
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 身份证号
|
||||
/// 身份证号(身份证/户口本认证时使用)
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "身份证号不能为空")]
|
||||
[RegularExpression(@"^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$", ErrorMessage = "请输入正确的身份证号格式")]
|
||||
public string IdCardNumber { get; set; } = string.Empty;
|
||||
public string? IdCardNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 护照号码(护照认证时使用)
|
||||
/// </summary>
|
||||
public string? PassportNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 认证类型:0-未认证,1-身份证,2-护照,3-户口本
|
||||
/// </summary>
|
||||
public int AuthType { get; set; } = 1;
|
||||
|
||||
/// <summary>
|
||||
/// 性别
|
||||
@ -156,7 +165,7 @@ public class UnifiedPersonInput
|
||||
public Gender Gender { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 电话
|
||||
/// 电话(非必填)
|
||||
/// </summary>
|
||||
[RegularExpression(@"^1[3-9]\d{9}$", ErrorMessage = "请输入正确的手机号格式")]
|
||||
public string? Mobile { get; set; }
|
||||
|
||||
@ -642,6 +642,14 @@ public class UnifiedRegistrationService : ITransient
|
||||
return persons;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取人员证件号码(根据认证类型返回身份证号或护照号)
|
||||
/// </summary>
|
||||
private static string GetPersonCertNumber(UnifiedPersonInput person)
|
||||
{
|
||||
return person.AuthType == 2 ? (person.PassportNumber ?? "") : (person.IdCardNumber ?? "");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 验证队员资质(年龄和性别)
|
||||
/// </summary>
|
||||
@ -828,9 +836,9 @@ public class UnifiedRegistrationService : ITransient
|
||||
ProjectName = baseProject?.Name ?? "",
|
||||
Name = pInput.Name,
|
||||
Gender = pInput.Gender,
|
||||
IdCard = pInput.IdCardNumber,
|
||||
IdCard = (pInput.AuthType == 2 ? pInput.PassportNumber : pInput.IdCardNumber) ?? "",
|
||||
BirthDate = pInput.BirthDate,
|
||||
Phone = pInput.Mobile,
|
||||
Phone = pInput.Mobile ?? "",
|
||||
Age = CalculateAge(pInput.BirthDate),
|
||||
PersonType = PersonType.Athlete,
|
||||
UserId = pInput.UserId ?? 0,
|
||||
@ -1783,7 +1791,8 @@ public class UnifiedRegistrationService : ITransient
|
||||
|
||||
foreach (var person in allPersonsInItem)
|
||||
{
|
||||
var key = person.UserId.HasValue ? person.UserId.Value.ToString() : person.IdCardNumber;
|
||||
var certNumber = GetPersonCertNumber(person);
|
||||
var key = person.UserId.HasValue ? person.UserId.Value.ToString() : certNumber;
|
||||
if (string.IsNullOrEmpty(key)) continue;
|
||||
|
||||
if (!personProjectGroupMap.ContainsKey(key))
|
||||
@ -1812,7 +1821,7 @@ public class UnifiedRegistrationService : ITransient
|
||||
var groupInfo = duplicate.First();
|
||||
var person = input.Items.SelectMany(i => i.Persons).FirstOrDefault(p =>
|
||||
(p.UserId.HasValue && p.UserId.Value.ToString() == key) ||
|
||||
(!p.UserId.HasValue && p.IdCardNumber == key));
|
||||
(!p.UserId.HasValue && GetPersonCertNumber(p) == key));
|
||||
var personName = person?.Name ?? "未知人员";
|
||||
|
||||
_logger.LogWarning("人员项目组别重复,人员: {PersonName}, 项目: {ProjectName}, 组别: {GroupName}",
|
||||
|
||||
@ -383,11 +383,13 @@ public class UserEventRecordService : IDynamicApiController, ITransient
|
||||
if (newUser == null) throw Oops.Bah("新队员不存在");
|
||||
|
||||
long oldUserId = person.Id;
|
||||
|
||||
var newCertNumber = newUser.AuthType == 2 ? newUser.PassportNumber : newUser.IdCardNumber;
|
||||
|
||||
// 更新信息
|
||||
person.Name = newUser.Name;
|
||||
person.IdCard = newUser.IdCardNumber;
|
||||
person.Phone = newUser.Mobile;
|
||||
person.IdCard = newCertNumber ?? "";
|
||||
person.Phone = newUser.Mobile ?? "";
|
||||
person.UpdatedTime = DateTime.Now;
|
||||
await _registrationPersonRepository.UpdateAsync(person);
|
||||
|
||||
@ -811,13 +813,21 @@ public class UserEventRecordService : IDynamicApiController, ITransient
|
||||
var name = member.Name ?? user?.Name;
|
||||
var gender = member.Gender ?? user?.Gender ?? Gender.Male;
|
||||
var idCardNumber = member.IdCardNumber ?? user?.IdCardNumber;
|
||||
var passportNumber = user?.PassportNumber;
|
||||
var authType = user?.AuthType ?? 1;
|
||||
var birthDate = member.BirthDate ?? user?.BirthDate ?? DateTime.Now.AddYears(-20);
|
||||
var mobile = member.Mobile ?? user?.Mobile;
|
||||
|
||||
// 验证必填字段
|
||||
var certNumber = authType == 2 ? passportNumber : idCardNumber;
|
||||
var certName = authType switch
|
||||
{
|
||||
2 => "护照号码",
|
||||
3 => "身份证号(户口本认证)",
|
||||
_ => "身份证号"
|
||||
};
|
||||
|
||||
if (string.IsNullOrWhiteSpace(name)) throw Oops.Bah("队员姓名不能为空");
|
||||
if (string.IsNullOrWhiteSpace(idCardNumber)) throw Oops.Bah("队员身份证号不能为空");
|
||||
if (string.IsNullOrWhiteSpace(mobile)) throw Oops.Bah("队员手机号不能为空");
|
||||
if (string.IsNullOrWhiteSpace(certNumber)) throw Oops.Bah($"队员{certName}不能为空");
|
||||
|
||||
newPersons.Add(new EventRegistrationPerson
|
||||
{
|
||||
@ -830,9 +840,9 @@ public class UserEventRecordService : IDynamicApiController, ITransient
|
||||
ProjectName = regItem.ProjectName,
|
||||
Name = name,
|
||||
Gender = gender,
|
||||
IdCard = idCardNumber,
|
||||
IdCard = certNumber ?? "",
|
||||
BirthDate = birthDate,
|
||||
Phone = mobile,
|
||||
Phone = mobile ?? "",
|
||||
Age = CalculateAge(birthDate),
|
||||
PersonType = PersonType.Athlete,
|
||||
UserId = member.UserId ?? 0,
|
||||
@ -980,6 +990,8 @@ public class UserEventRecordService : IDynamicApiController, ITransient
|
||||
UserId = m.Id,
|
||||
Name = m.Name ?? "",
|
||||
IdCardNumber = m.IdCardNumber ?? "",
|
||||
PassportNumber = m.PassportNumber,
|
||||
AuthType = m.AuthType,
|
||||
Gender = m.Gender,
|
||||
Mobile = m.Mobile,
|
||||
BirthDate = m.BirthDate ?? DateTime.MinValue
|
||||
@ -1100,6 +1112,8 @@ public class UserEventRecordService : IDynamicApiController, ITransient
|
||||
UserId = m.Id,
|
||||
Name = m.Name ?? "",
|
||||
IdCardNumber = m.IdCardNumber ?? "",
|
||||
PassportNumber = m.PassportNumber,
|
||||
AuthType = m.AuthType,
|
||||
Gender = m.Gender,
|
||||
Mobile = m.Mobile,
|
||||
BirthDate = m.BirthDate ?? DateTime.MinValue
|
||||
@ -1116,6 +1130,8 @@ public class UserEventRecordService : IDynamicApiController, ITransient
|
||||
UserId = m.Id,
|
||||
Name = m.Name ?? "",
|
||||
IdCardNumber = m.IdCardNumber ?? "",
|
||||
PassportNumber = m.PassportNumber,
|
||||
AuthType = m.AuthType,
|
||||
Gender = m.Gender,
|
||||
Mobile = m.Mobile,
|
||||
BirthDate = m.BirthDate ?? DateTime.MinValue
|
||||
|
||||
@ -640,6 +640,8 @@ public class UserEventRegistrationService : IDynamicApiController, ITransient
|
||||
UserId = m.Id,
|
||||
Name = m.Name ?? "",
|
||||
IdCardNumber = m.IdCardNumber ?? "",
|
||||
PassportNumber = m.PassportNumber,
|
||||
AuthType = m.AuthType,
|
||||
Gender = m.Gender,
|
||||
Mobile = m.Mobile,
|
||||
BirthDate = m.BirthDate ?? DateTime.MinValue
|
||||
@ -658,6 +660,8 @@ public class UserEventRegistrationService : IDynamicApiController, ITransient
|
||||
UserId = m.Id,
|
||||
Name = m.Name ?? "",
|
||||
IdCardNumber = m.IdCardNumber ?? "",
|
||||
PassportNumber = m.PassportNumber,
|
||||
AuthType = m.AuthType,
|
||||
Gender = m.Gender,
|
||||
Mobile = m.Mobile,
|
||||
BirthDate = m.BirthDate ?? DateTime.MinValue
|
||||
@ -1143,6 +1147,8 @@ public class UserEventRegistrationService : IDynamicApiController, ITransient
|
||||
UserId = m.Id,
|
||||
Name = m.Name ?? "",
|
||||
IdCardNumber = m.IdCardNumber ?? "",
|
||||
PassportNumber = m.PassportNumber,
|
||||
AuthType = m.AuthType,
|
||||
Gender = m.Gender,
|
||||
Mobile = m.Mobile,
|
||||
BirthDate = m.BirthDate ?? DateTime.MinValue
|
||||
@ -1263,6 +1269,8 @@ public class UserEventRegistrationService : IDynamicApiController, ITransient
|
||||
UserId = m.Id,
|
||||
Name = m.Name ?? "",
|
||||
IdCardNumber = m.IdCardNumber ?? "",
|
||||
PassportNumber = m.PassportNumber,
|
||||
AuthType = m.AuthType,
|
||||
Gender = m.Gender,
|
||||
Mobile = m.Mobile,
|
||||
BirthDate = m.BirthDate ?? DateTime.MinValue
|
||||
@ -1279,6 +1287,8 @@ public class UserEventRegistrationService : IDynamicApiController, ITransient
|
||||
UserId = m.Id,
|
||||
Name = m.Name ?? "",
|
||||
IdCardNumber = m.IdCardNumber ?? "",
|
||||
PassportNumber = m.PassportNumber,
|
||||
AuthType = m.AuthType,
|
||||
Gender = m.Gender,
|
||||
Mobile = m.Mobile,
|
||||
BirthDate = m.BirthDate ?? DateTime.MinValue
|
||||
@ -1311,6 +1321,8 @@ public class UserEventRegistrationService : IDynamicApiController, ITransient
|
||||
UserId = m.Id,
|
||||
Name = m.Name ?? "",
|
||||
IdCardNumber = m.IdCardNumber ?? "",
|
||||
PassportNumber = m.PassportNumber,
|
||||
AuthType = m.AuthType,
|
||||
Gender = m.Gender,
|
||||
Mobile = m.Mobile,
|
||||
BirthDate = m.BirthDate ?? DateTime.MinValue
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user