投出排行排序问题
This commit is contained in:
parent
4ef9468b77
commit
b621350f6b
@ -670,9 +670,11 @@ public class WorkbenchController : IDynamicApiController
|
||||
ep.Id == input.EventProjectId.Value && ep.EventId == input.EventId && !ep.DeleteMark)
|
||||
?? throw Oops.Bah("所选项目不属于当前赛事");
|
||||
_ = eventProject;
|
||||
if (!await _groupRepository.IsAnyAsync(g => g.Id == input.EventProjectGroupId.Value &&
|
||||
g.EventProjectId == input.EventProjectId.Value && !g.DeleteMark))
|
||||
throw Oops.Bah("所选组别不属于当前赛事项目");
|
||||
var eventProjectGroup = await _groupRepository.GetFirstAsync(g =>
|
||||
g.Id == input.EventProjectGroupId.Value &&
|
||||
g.EventProjectId == input.EventProjectId.Value && !g.DeleteMark)
|
||||
?? throw Oops.Bah("所选组别不属于当前赛事项目");
|
||||
var groupName = eventProjectGroup.GroupName;
|
||||
|
||||
var results = await _resultRepository.AsQueryable()
|
||||
.InnerJoin<EventSessionEntry>((r, e) => r.SessionEntryId == e.Id)
|
||||
@ -680,10 +682,8 @@ public class WorkbenchController : IDynamicApiController
|
||||
.Where((r, e, s) => !r.DeleteMark && !e.DeleteMark && !s.DeleteMark &&
|
||||
r.EventId == input.EventId &&
|
||||
s.EventProjectId == input.EventProjectId.Value &&
|
||||
(s.EventProjectGroupId == input.EventProjectGroupId.Value ||
|
||||
e.GroupName == SqlFunc.Subqueryable<EventProjectGroup>()
|
||||
.Where(g => g.Id == input.EventProjectGroupId.Value)
|
||||
.Select(g => g.GroupName)) &&
|
||||
(s.EventProjectGroupId == input.EventProjectGroupId.Value ||
|
||||
e.GroupName == groupName) &&
|
||||
// 只投屏有效成绩(已确认20/已投屏30/已更正40),排除DQ成绩
|
||||
(r.ResultStatus == 20 || r.ResultStatus == 30 || r.ResultStatus == 40) &&
|
||||
!r.IsDisqualified)
|
||||
@ -763,17 +763,20 @@ public class WorkbenchController : IDynamicApiController
|
||||
.Where(v => !v.DeleteMark && rankedResultIds.Contains(v.EventResultId))
|
||||
.ToListAsync();
|
||||
// 只同步各成绩的当前版本,历史版本保留原状态留痕
|
||||
var currentRankedVersions = rankedVersions
|
||||
var currentRankedVersionIds = rankedVersions
|
||||
.Where(v => results.Any(r => r.Id == v.EventResultId && r.ResultVersion == v.ResultVersion))
|
||||
.Select(v => v.Id)
|
||||
.ToList();
|
||||
foreach (var version in currentRankedVersions)
|
||||
{
|
||||
version.ResultStatus = 30;
|
||||
version.UpdatedUserId = currentUserId;
|
||||
version.UpdatedTime = now;
|
||||
}
|
||||
if (currentRankedVersions.Count > 0)
|
||||
await _resultVersionRepository.UpdateRangeAsync(currentRankedVersions);
|
||||
if (currentRankedVersionIds.Count > 0)
|
||||
await _resultVersionRepository.AsUpdateable()
|
||||
.SetColumns(v => new EventResultVersion
|
||||
{
|
||||
ResultStatus = 30,
|
||||
UpdatedUserId = currentUserId,
|
||||
UpdatedTime = now
|
||||
}, appendColumnsByDataFilter: true)
|
||||
.Where(v => currentRankedVersionIds.Contains(v.Id))
|
||||
.ExecuteCommandAsync();
|
||||
await WriteAuditAsync("投出组别排名", input.EventId, input.EventProjectGroupId.Value, null, 30);
|
||||
|
||||
return new ResultScreenCastOutput
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user