|
@@ -1799,7 +1799,6 @@ namespace TEAMModelOS.Controllers
|
|
|
}
|
|
|
return Ok(new { expertTasks, code = 200 });
|
|
|
}
|
|
|
-
|
|
|
case bool when $"{grant_type}".Equals("update-reviewStatus", StringComparison.OrdinalIgnoreCase):
|
|
|
{
|
|
|
|
|
@@ -1836,8 +1835,6 @@ namespace TEAMModelOS.Controllers
|
|
|
else {
|
|
|
return Ok(new { code = 3, msg = "活动不存在!" });
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
//分配评审作品任务-检查,自动分配
|
|
|
case bool when $"{grant_type}".Equals("allocation-task-auto-assign", StringComparison.OrdinalIgnoreCase):
|
|
@@ -2385,6 +2382,153 @@ namespace TEAMModelOS.Controllers
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+ //修改活动成绩公示状态
|
|
|
+ case bool when $"{grant_type}".Equals("update-scoreStatus", StringComparison.OrdinalIgnoreCase):
|
|
|
+ {
|
|
|
+ if (!request.TryGetProperty("activityId", out JsonElement _activityId)) return BadRequest();
|
|
|
+ if (!request.TryGetProperty("scoreStatus", out JsonElement _scoreStatus)) return BadRequest();
|
|
|
+ Azure.Response responseContest = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).ReadItemStreamAsync(_activityId.GetString(), new PartitionKey("Contest"));
|
|
|
+ if (responseContest.Status == 200)
|
|
|
+ {
|
|
|
+ long now = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
|
|
+ Contest contest = JsonDocument.Parse(responseContest.Content).RootElement.ToObject<Contest>();
|
|
|
+ if (contest.modules.Contains("score") && contest.score != null)
|
|
|
+ {
|
|
|
+
|
|
|
+ if (now < contest.score.stime || now > contest.score.etime)
|
|
|
+ {
|
|
|
+ return Ok(new { code = 1, msg = "不在成绩公布时间范围内!" });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return Ok(new { code = 2, msg = "未配置成绩公布模块!" });
|
|
|
+ }
|
|
|
+ if (int.TryParse($"{_scoreStatus}", out int scoreStatus))
|
|
|
+ {
|
|
|
+ contest.score.scoreStatus = scoreStatus;
|
|
|
+ await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).UpsertItemAsync(contest, new PartitionKey("Contest"));
|
|
|
+ return Ok(new { code = 200, msg = "操作成功!" });
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return Ok(new { code = 4, msg = "成绩公布参数错误!" });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return Ok(new { code = 3, msg = "活动不存在!" });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //修改活动成绩公布类型或等级
|
|
|
+ case bool when $"{grant_type}".Equals("update-scoreShowTypeOrLevel", StringComparison.OrdinalIgnoreCase):
|
|
|
+ {
|
|
|
+ if (!request.TryGetProperty("activityId", out JsonElement _activityId)) return BadRequest();
|
|
|
+ if (!request.TryGetProperty("showType", out JsonElement _showType)) return BadRequest();
|
|
|
+ List<ScoreLevel> scoreLevels = new List<ScoreLevel>();
|
|
|
+ bool ok = true;
|
|
|
+ string msg = string.Empty;
|
|
|
+ int code = 200;
|
|
|
+ if (int.TryParse($"{_showType}", out int showType))
|
|
|
+ {
|
|
|
+ if (showType==1)
|
|
|
+ {
|
|
|
+ if (!request.TryGetProperty("scoreLevels", out JsonElement _scoreLevels))
|
|
|
+ {
|
|
|
+ code=1;
|
|
|
+ ok = false;
|
|
|
+ msg="参数错误";
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ scoreLevels= _scoreLevels.ToObject<List<ScoreLevel>>();
|
|
|
+ if (scoreLevels.IsNotEmpty())
|
|
|
+ {
|
|
|
+ scoreLevels= scoreLevels.OrderBy(z => z.min).ToList();
|
|
|
+ double max = 0;
|
|
|
+ foreach (ScoreLevel scoreLevel in scoreLevels)
|
|
|
+ {
|
|
|
+ //检查当前值最大大于最小
|
|
|
+ if (scoreLevel.max>scoreLevel.min)
|
|
|
+ { //当前最小大于上一轮的最大值
|
|
|
+ if (scoreLevel.min==max)
|
|
|
+ {
|
|
|
+
|
|
|
+ max = scoreLevel.max;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ok=false;
|
|
|
+ code=3;
|
|
|
+ msg=$"相邻等级的分数设置错误";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ok=false;
|
|
|
+ code=4;
|
|
|
+ msg=$"等级的最大值小于最小值";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ code=2;
|
|
|
+ ok = false;
|
|
|
+ msg="分数等级未设置!";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if (showType==0)
|
|
|
+ {
|
|
|
+ ok=true;
|
|
|
+ code=200;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ code=1;
|
|
|
+ ok = false;
|
|
|
+ msg="参数错误";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ code=1;
|
|
|
+ ok = false;
|
|
|
+ msg="参数错误";
|
|
|
+ }
|
|
|
+ if (code==200 && ok==true)
|
|
|
+ {
|
|
|
+ Azure.Response responseContest = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).ReadItemStreamAsync(_activityId.GetString(), new PartitionKey("Contest"));
|
|
|
+ if (responseContest.Status == 200)
|
|
|
+ {
|
|
|
+ long now = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
|
|
+ Contest contest = JsonDocument.Parse(responseContest.Content).RootElement.ToObject<Contest>();
|
|
|
+ if (contest.modules.Contains("score") && contest.score != null)
|
|
|
+ {
|
|
|
+ contest.score.showType=showType;
|
|
|
+ contest.score.scoreLevels=scoreLevels;
|
|
|
+ await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).UpsertItemAsync(contest, new PartitionKey("Contest"));
|
|
|
+ return Ok(new { code = 200, msg = "操作成功" });
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return Ok(new { code = 5, msg = "未配置成绩公布模块!" });
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return Ok(new { code = 6, msg = "活动不存在!" });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ return Ok(new { code, msg });
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
catch (Exception ex)
|