CrazyIter_Bin vor 1 Jahr
Ursprung
Commit
57c527eea4

+ 1 - 0
TEAMModelOS.SDK/Models/Cosmos/Common/Activity.cs

@@ -808,6 +808,7 @@ namespace TEAMModelOS.SDK.Models
     {
         public double score { get; set; } = -1;
         public List<RuleConfig> detailScore { get; set; } = new List<RuleConfig>();
+        public string uploadId { get; set; }
     }
     /// <summary>
     /// 专家在优课评选模块的任务分配

+ 40 - 0
TEAMModelOS/Controllers/Common/ActivityController.cs

@@ -1787,6 +1787,46 @@ namespace TEAMModelOS.Controllers
                             }
                             return Ok(new { expertTasks, code = 200 });
                         }
+
+                    case bool when $"{grant_type}".Equals("update-reviewStatus", StringComparison.OrdinalIgnoreCase): 
+                        {
+
+                            if (!request.TryGetProperty("activityId", out JsonElement _activityId)) return BadRequest();
+                            if (!request.TryGetProperty("reviewStatus", out JsonElement _reviewStatus)) 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("review") && contest.review != null)
+                                {
+
+                                    if (now < contest.review.stime || now > contest.review.etime)
+                                    {
+                                        return Ok(new { code = 1, msg = "不在评审时间范围内!" });
+                                    }
+                                }
+                                else
+                                {
+                                    return Ok(new { code = 2, msg = "未配置评审模块!" });
+                                }
+                                if (int.TryParse($"{_reviewStatus}", out int reviewStatus))
+                                {
+                                    contest.review.reviewStatus = reviewStatus;
+                                    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("allocation-task-auto-assign", StringComparison.OrdinalIgnoreCase):
                         {