短信通知组别字段去掉
This commit is contained in:
parent
2727033872
commit
8a9905cdb2
@ -60,7 +60,7 @@ public partial class CheckinController : IDynamicApiController
|
|||||||
{
|
{
|
||||||
var userId = await EnsureCheckerAsync();
|
var userId = await EnsureCheckerAsync();
|
||||||
var task = await GetCurrentTaskAsync(userId);
|
var task = await GetCurrentTaskAsync(userId);
|
||||||
return task == null ? null : await BuildContextAsync(task, eventProjectId, groupId);
|
return task == null ? null : await BuildContextAsync(task, eventProjectId);
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpPost("status")]
|
[HttpPost("status")]
|
||||||
@ -131,7 +131,7 @@ public partial class CheckinController : IDynamicApiController
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 保持页面当前项目筛选;UnitKey 已独立校验检录项归属。
|
// 保持页面当前项目筛选;UnitKey 已独立校验检录项归属。
|
||||||
return await BuildContextAsync(task, input.EventProjectId, null);
|
return await BuildContextAsync(task, input.EventProjectId);
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpPost("start")]
|
[HttpPost("start")]
|
||||||
@ -181,7 +181,7 @@ public partial class CheckinController : IDynamicApiController
|
|||||||
units, projectEntity.ProjectType, options.EventName, noticeName);
|
units, projectEntity.ProjectType, options.EventName, noticeName);
|
||||||
}
|
}
|
||||||
|
|
||||||
var context = await BuildContextAsync(task, input.EventProjectId, null);
|
var context = await BuildContextAsync(task, input.EventProjectId);
|
||||||
return new StartCheckinOutput
|
return new StartCheckinOutput
|
||||||
{
|
{
|
||||||
TaskId = task.Id,
|
TaskId = task.Id,
|
||||||
@ -223,7 +223,7 @@ public partial class CheckinController : IDynamicApiController
|
|||||||
await EnsurePreviousPassedAsync(task, unit.UnitKey);
|
await EnsurePreviousPassedAsync(task, unit.UnitKey);
|
||||||
await UpsertRecordAsync(task, unit, checkerUserId, true);
|
await UpsertRecordAsync(task, unit, checkerUserId, true);
|
||||||
|
|
||||||
var context = await BuildContextAsync(task, input.EventProjectId ?? unit.EventProjectId, null);
|
var context = await BuildContextAsync(task, input.EventProjectId ?? unit.EventProjectId);
|
||||||
return new ScanCheckinOutput
|
return new ScanCheckinOutput
|
||||||
{
|
{
|
||||||
Success = true,
|
Success = true,
|
||||||
@ -270,7 +270,7 @@ public partial class CheckinController : IDynamicApiController
|
|||||||
task.UpdatedTime = DateTime.Now;
|
task.UpdatedTime = DateTime.Now;
|
||||||
await _taskRepository.UpdateAsync(task);
|
await _taskRepository.UpdateAsync(task);
|
||||||
|
|
||||||
return await BuildContextAsync(task, input.EventProjectId, null);
|
return await BuildContextAsync(task, input.EventProjectId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>按扫码内容定位秩序册列;支持号码布、报名人员ID和姓名。</summary>
|
/// <summary>按扫码内容定位秩序册列;支持号码布、报名人员ID和姓名。</summary>
|
||||||
@ -340,16 +340,16 @@ public partial class CheckinController : IDynamicApiController
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 对报名了所选项目组别的人员发送检录通知;单人失败不影响整体流程。
|
/// 对报名了所选项目的人员发送检录通知;单人失败不影响整体流程。
|
||||||
/// 个人项目:通知运动员本人(从 EventRegistrationPerson 取)。
|
/// 个人项目:通知运动员本人(从 EventRegistrationPerson 取)。
|
||||||
/// 团队项目:通知教练和领队(从 TeamMember 取,因为报名表中不存储教练/领队的 RegistrationItemId)。
|
/// 团队项目:通知教练和领队(从 TeamMember 取,因为报名表中不存储教练/领队的 RegistrationItemId)。
|
||||||
/// 短信内容:您报名的{赛事名称}正在检录,当前检录至{项目-组别第1场次},您所在第{x场次},请提前前往检录区做好准备。
|
/// 短信内容:您报名的{赛事名称}正在检录,当前检录至第{x}场次,您所在第{y}场次,请提前前往检录区做好准备。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private async Task<(int Total, int Success, int Failed)> NotifyUnitsAsync(
|
private async Task<(int Total, int Success, int Failed)> NotifyUnitsAsync(
|
||||||
List<CheckinOrderBookUnitDto> units,
|
List<CheckinOrderBookUnitDto> units,
|
||||||
ProjectTypeEnum projectType,
|
ProjectTypeEnum projectType,
|
||||||
string eventName,
|
string eventName,
|
||||||
string projectGroupName)
|
string projectName)
|
||||||
{
|
{
|
||||||
var isIndividualProject = projectType is ProjectTypeEnum.PersonalSpeed or ProjectTypeEnum.PersonalFreestyle;
|
var isIndividualProject = projectType is ProjectTypeEnum.PersonalSpeed or ProjectTypeEnum.PersonalFreestyle;
|
||||||
var isTeamProject = projectType is ProjectTypeEnum.TeamSpeed or ProjectTypeEnum.TeamFreestyle;
|
var isTeamProject = projectType is ProjectTypeEnum.TeamSpeed or ProjectTypeEnum.TeamFreestyle;
|
||||||
@ -376,10 +376,10 @@ public partial class CheckinController : IDynamicApiController
|
|||||||
.Select(g => g.OrderBy(x => x.SessionOrder).First())
|
.Select(g => g.OrderBy(x => x.SessionOrder).First())
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
// 当前检录进度:获取该项目组别在秩序册中的起始场次
|
// 当前检录进度:获取该项目在秩序册中的起始场次
|
||||||
var firstSessionIndex = units.Select(x => x.SessionIndex).FirstOrDefault(x => x > 0);
|
var firstSessionIndex = units.Select(x => x.SessionIndex).FirstOrDefault(x => x > 0);
|
||||||
if (firstSessionIndex <= 0) firstSessionIndex = 1;
|
if (firstSessionIndex <= 0) firstSessionIndex = 1;
|
||||||
var currentSession = $"{projectGroupName}第{firstSessionIndex}场次";
|
var currentSession = $"第{firstSessionIndex}场次";
|
||||||
|
|
||||||
var success = 0;
|
var success = 0;
|
||||||
var failed = missingPhoneCount;
|
var failed = missingPhoneCount;
|
||||||
@ -396,7 +396,7 @@ public partial class CheckinController : IDynamicApiController
|
|||||||
{
|
{
|
||||||
failed++;
|
failed++;
|
||||||
_logger.LogWarning(ex, "检录通知发送失败:{EventName} {Project} {Phone}",
|
_logger.LogWarning(ex, "检录通知发送失败:{EventName} {Project} {Phone}",
|
||||||
eventName, projectGroupName, recipient.Phone);
|
eventName, projectName, recipient.Phone);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -573,7 +573,7 @@ public partial class CheckinController : IDynamicApiController
|
|||||||
return users.ToDictionary(x => x.Id);
|
return users.ToDictionary(x => x.Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<CheckinContextDto> BuildContextAsync(CheckinTask task, long? eventProjectId, long? groupId)
|
private async Task<CheckinContextDto> BuildContextAsync(CheckinTask task, long? eventProjectId)
|
||||||
{
|
{
|
||||||
var evt = await _eventRepository.GetFirstAsync(x => x.Id == task.EventId && !x.DeleteMark);
|
var evt = await _eventRepository.GetFirstAsync(x => x.Id == task.EventId && !x.DeleteMark);
|
||||||
var eventLockReason = "赛事未开始,不允许检录";
|
var eventLockReason = "赛事未开始,不允许检录";
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user