|
@@ -2599,7 +2599,7 @@ namespace TEAMModelOS.Controllers
|
|
|
Azure.Response responseContest = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).ReadItemStreamAsync(_activityId.GetString(), new PartitionKey("Contest"));
|
|
|
if (responseContest.Status == 200)
|
|
|
{
|
|
|
- List<ActivityTeacherScore> teacherScores = new List<ActivityTeacherScore>();
|
|
|
+ List<ActivityTeacherScoreMask> teacherScores = new List<ActivityTeacherScoreMask>();
|
|
|
long now = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
|
|
Contest contest = JsonDocument.Parse(responseContest.Content).RootElement.ToObject<Contest>();
|
|
|
if (contest.score?.stime<now)
|
|
@@ -2617,7 +2617,7 @@ namespace TEAMModelOS.Controllers
|
|
|
{
|
|
|
leader=members.First();
|
|
|
}
|
|
|
- teacherScores.Add(new ActivityTeacherScore
|
|
|
+ teacherScores.Add(new ActivityTeacherScoreMask
|
|
|
{
|
|
|
uploadId=leader.upload?.uploadId,
|
|
|
uploadName=!string.IsNullOrWhiteSpace(leader.upload?.name) ? leader.upload?.name : $"{leader.contest.teamName}",
|
|
@@ -2643,7 +2643,7 @@ namespace TEAMModelOS.Controllers
|
|
|
///个人组
|
|
|
foreach (var item in reslut.list)
|
|
|
{
|
|
|
- teacherScores.Add(new ActivityTeacherScore
|
|
|
+ teacherScores.Add(new ActivityTeacherScoreMask
|
|
|
{
|
|
|
uploadId=item.upload?.uploadId,
|
|
|
uploadName=!string.IsNullOrWhiteSpace(item.upload?.name) ? item.upload?.name : $"{item.contest.enrollInfos.Find(z => z.code.Equals("name"))?.val}",
|
|
@@ -2671,6 +2671,105 @@ namespace TEAMModelOS.Controllers
|
|
|
}
|
|
|
case bool when $"{grant_type}".Equals("preview-scores", StringComparison.OrdinalIgnoreCase):
|
|
|
{
|
|
|
+ if (!request.TryGetProperty("activityId", out JsonElement _activityId)) return BadRequest();
|
|
|
+ Azure.Response responseContest = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).ReadItemStreamAsync(_activityId.GetString(), new PartitionKey("Contest"));
|
|
|
+ if (responseContest.Status == 200) {
|
|
|
+ IList<ActivityTeacherScore> teacherScores = new List<ActivityTeacherScore>();
|
|
|
+ long now = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
|
|
+ Contest contest = JsonDocument.Parse(responseContest.Content).RootElement.ToObject<Contest>();
|
|
|
+ string sql = $"select value c from c ";
|
|
|
+ var result = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).GetList<ActivityEnroll>(sql, $"ActivityEnroll-{_activityId}");
|
|
|
+ if (result.list.IsNotEmpty())
|
|
|
+ {
|
|
|
+ if (contest.sign.type==1)
|
|
|
+ {
|
|
|
+ var teams = result.list.Where(x => !string.IsNullOrEmpty(x.contest?.cipher)).GroupBy(z => z.contest.cipher);
|
|
|
+ foreach (var team in teams)
|
|
|
+ {
|
|
|
+ var members = team.ToList();
|
|
|
+ var leader = members.FindAll(z => z.contest.leader==1)?.FirstOrDefault();
|
|
|
+ if (leader==null)
|
|
|
+ {
|
|
|
+ leader=members.First();
|
|
|
+ }
|
|
|
+ double score = leader.upload?.score??-1;
|
|
|
+ if (leader.upload?.showScore==1) {
|
|
|
+ score= leader.upload.maskScore;
|
|
|
+ }
|
|
|
+ teacherScores.Add(new ActivityTeacherScore
|
|
|
+ {
|
|
|
+ uploadId=leader.upload?.uploadId,
|
|
|
+ uploadName=!string.IsNullOrWhiteSpace(leader.upload?.name) ? leader.upload?.name : $"{leader.contest.teamName}",
|
|
|
+ score=score,
|
|
|
+ tmdid=leader.id,
|
|
|
+ nickname=leader.tmdName,
|
|
|
+ name=leader.contest.enrollInfos.Find(z => z.code.Equals("name"))?.val,
|
|
|
+ picture=leader.tmdPicture,
|
|
|
+ school=leader.schoolId,
|
|
|
+ schoolName=leader.schoolName,
|
|
|
+ schoolPicture=leader.schoolPicture,
|
|
|
+ cipher=leader.contest.cipher,
|
|
|
+ teamName=leader.contest.teamName,
|
|
|
+ type=leader.contest.type,
|
|
|
+ members=members.Select(z => new IdNameCode { id=z.id, name=z.contest.enrollInfos.Find(x => x.code.Equals("name"))?.val, picture=z.tmdPicture, nickname=z.tmdName }).ToList(),
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ///个人组
|
|
|
+ foreach (var item in result.list)
|
|
|
+ {
|
|
|
+ double score = item.upload?.score??-1;
|
|
|
+ if (item.upload?.showScore==1)
|
|
|
+ {
|
|
|
+ score= item.upload.maskScore;
|
|
|
+ }
|
|
|
+ teacherScores.Add(new ActivityTeacherScore
|
|
|
+ {
|
|
|
+ uploadId=item.upload?.uploadId,
|
|
|
+ uploadName=!string.IsNullOrWhiteSpace(item.upload?.name) ? item.upload?.name : $"{item.contest.enrollInfos.Find(z => z.code.Equals("name"))?.val}",
|
|
|
+ score=score,
|
|
|
+ tmdid=item.id,
|
|
|
+ nickname=item.tmdName,
|
|
|
+ name=item.contest.enrollInfos.Find(z => z.code.Equals("name"))?.val,
|
|
|
+ picture=item.tmdPicture,
|
|
|
+ school=item.schoolId,
|
|
|
+ schoolName=item.schoolName,
|
|
|
+ schoolPicture=item.schoolPicture,
|
|
|
+ type=item.contest.type,
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (contest.score.top>-1)
|
|
|
+ {
|
|
|
+ teacherScores= teacherScores.Where(x => x.score>=0).OrderByDescending(x => x.score).Take(contest.score.top).ToList();
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ teacherScores= teacherScores.Where(x => x.score>=0).ToList();
|
|
|
+ }
|
|
|
+ if (contest.score.showType==1)
|
|
|
+ {
|
|
|
+ foreach (var item in teacherScores) {
|
|
|
+ string label = string.Empty;
|
|
|
+ foreach (var level in contest.score.scoreLevels) {
|
|
|
+ if (level.max==100) {
|
|
|
+ if (item.score>level.min && item.score<=level.max) {
|
|
|
+ label=level.lable;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
break;
|
|
|
}
|
|
|
}
|