短信通知组别字段去掉

This commit is contained in:
马梓彭 2026-09-21 14:15:52 +08:00
parent 2727033872
commit 8a9905cdb2

View File

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