瀏覽代碼

后端——赛课调整

XW 1 年之前
父節點
當前提交
eb4ed56723

+ 2 - 2
TEAMModelOS.SDK/Models/Cosmos/Common/Activity.cs

@@ -621,7 +621,7 @@ namespace TEAMModelOS.SDK.Models
         /// 0未提交,1 已提交
         /// </summary>
         public int contestUpload { get; set; }
-        public string uploadType { get; set; }
+       // public string uploadType { get; set; }
         public HashSet<string> uploadTypes { get; set; } = new HashSet<string>();
         public long uploadTime { get; set; } = -1;
     }
@@ -921,7 +921,7 @@ namespace TEAMModelOS.SDK.Models
         /// <summary>
         /// null没有上传模块的默认状态,file文件  sokrates 苏格拉底
         /// </summary>
-        public string uploadContestType { get; set; }
+       // public string uploadContestType { get; set; }
 
         public HashSet<string> uploadContestTypes { get; set; } = new HashSet<string>();
         /// <summary>

+ 8 - 8
TEAMModelOS.SDK/Models/Service/Common/ActivityService.cs

@@ -320,7 +320,7 @@ namespace TEAMModelOS.SDK
                             uploadId = leader.upload?.uploadId,
                             name = $"{leader.schoolName}-{name}",
                            // uploadTypes = new List<string> { leader?.upload.type },
-                            uploadTypes =leader.upload!=null ? new HashSet<string>() { leader.upload.type } : leader.upload.uploadType,
+                            uploadTypes =leader.upload.uploadType,
                             count = count,
                             cipher = leader.contest?.cipher,
                             type = 1,
@@ -412,7 +412,7 @@ namespace TEAMModelOS.SDK
                             uploadId = uploadId,
                             name = $"{enroll.schoolName}-{name}",
                             //uploadTypes = new List<string> { enroll.upload?.type },
-                            uploadTypes =enroll.upload!=null ? new HashSet<string>() { enroll.upload.type } :enroll.upload.uploadType,
+                            uploadTypes =enroll.upload.uploadType,
                             count = count,
                             cipher = enroll.contest?.cipher,
                             type = 1,
@@ -868,12 +868,12 @@ namespace TEAMModelOS.SDK
                         }
 
 
-                        if (enroll.upload!=null  && (enroll.upload.files.IsNotEmpty()  ||  enroll.upload.sokrates.IsNotEmpty() ||  enroll.upload.lessons.IsNotEmpty())  )
-                        {
-                            activityDto.contestUpload=1;
-                            activityDto.uploadTime=enroll.upload.uploadTime;
-                            activityDto.uploadType=enroll.upload.type;
-                        }
+                        //if (enroll.upload!=null  && (enroll.upload.files.IsNotEmpty()  ||  enroll.upload.sokrates.IsNotEmpty() ||  enroll.upload.lessons.IsNotEmpty())  )
+                        //{
+                        //    activityDto.contestUpload=1;
+                        //    activityDto.uploadTime=enroll.upload.uploadTime;
+                        //    activityDto.uploadType=enroll.upload.type;
+                        //}
 
 
 

+ 132 - 104
TEAMModelOS/Controllers/Common/ActivityController.cs

@@ -1341,7 +1341,7 @@ namespace TEAMModelOS.Controllers
                                     if (activityEnroll.upload!=null)
                                     {
                                         inviteEnrollTeacher.uploadContestId=activityEnroll.upload.uploadId;
-                                        inviteEnrollTeacher.uploadContestType=activityEnroll.upload.type;
+                                        //inviteEnrollTeacher.uploadContestType=activityEnroll.upload.type;
                                         inviteEnrollTeacher.uploadContestTypes= activityEnroll.upload.uploadType;
                                         inviteEnrollTeacher.uploadContestStatus=1;
                                         inviteEnrollTeacher.uploadContestTime= activityEnroll.upload.uploadTime;
@@ -2170,6 +2170,28 @@ namespace TEAMModelOS.Controllers
                             if (!request.TryGetProperty("uploadId", out JsonElement _uploadId)) return BadRequest();
                             if (!request.TryGetProperty("expertId", out JsonElement _expertId)) return BadRequest();
                             request.TryGetProperty("expertIdOld", out JsonElement _expertIdOld);
+                            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 = 12, msg = "不在评审时间范围内!" });
+                                    }
+                                }
+                                else
+                                {
+                                    return Ok(new { code = 11, msg = "未配置评审模块!" });
+                                }
+                            }
+                            else
+                            {
+                                return Ok(new { code = 13, msg = "没有赛课模块!" });
+                            }
+
                             string sql = $"select value c from c where c.upload.uploadId='{_uploadId}' and c.pk='ActivityEnroll'";
                             var result =  await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).GetList<ActivityEnroll>(sql, $"ActivityEnroll-{_activityId}");
                             if (result.list.IsNotEmpty())
@@ -2216,7 +2238,7 @@ namespace TEAMModelOS.Controllers
                                         var subject = leader?.contest?.enrollInfos?.Find(z => z.code.Equals("subject"));
                                         contestTask.name= $"{leader?.schoolName}-{name}";
                                         //contestTask.uploadTypes=new List<string> { leader.upload?.type };
-                                        contestTask.uploadTypes =leader.upload!=null ? new HashSet<string>() { leader.upload.type } : leader.upload.uploadType;
+                                        contestTask.uploadTypes =leader.upload.uploadType;
                                         contestTask.count=count;
                                         contestTask.cipher=leader.contest?.cipher;
                                         contestTask.type=leader.contest.type;
@@ -2251,7 +2273,7 @@ namespace TEAMModelOS.Controllers
                                     var period = leader?.contest?.enrollInfos?.Find(z => z.code.Equals("period"));
                                     var subject = leader?.contest?.enrollInfos?.Find(z => z.code.Equals("subject"));
                                     contestTask.name= $"{leader?.schoolName}-{name}";
-                                    contestTask.uploadTypes=leader.upload!=null ? new HashSet<string>() { leader.upload.type } : leader.upload.uploadType;
+                                    contestTask.uploadTypes= leader.upload.uploadType;
                                     contestTask.count=count;
                                     contestTask.type=leader.contest.type;
                                     contestTask.tmdid=leader.id;
@@ -4185,7 +4207,7 @@ namespace TEAMModelOS.Controllers
                                                 {
                                                     uploadTime=now,
                                                     complexes=uploadContest.complexes,
-                                                    uploadType=uploadContest.complexes.Select(x=>x.type).ToHashSet(),
+                                                    uploadType=uploadContest.complexes.Select(x => x.type).ToHashSet(),
                                                     uploadId=Guid.NewGuid().ToString(),
                                                     name=uploadContest.name,
                                                 };
@@ -4207,109 +4229,115 @@ namespace TEAMModelOS.Controllers
                                                 }
                                                 return Ok(new { code = 200, });
                                             }
-                                           
-
-                                            if (contest.upload.type.Equals(uploadContest.type))
-                                            {
-                                                if (uploadContest.type.Equals("sokrates"))
-                                                {
-                                                    //校验苏格拉底
-
-                                                    //var httpClient = _httpClientFactory.CreateClient();
-                                                    //if (!httpClient.DefaultRequestHeaders.Contains("x-functions-key"))
-                                                    //{
-                                                    //    httpClient.DefaultRequestHeaders.Add("x-functions-key", "2BcXFR_hvzG1pZjqIkaM7Dx74Hcu6m0PwwOacFpDpq44AzFuHJBRXA==");
-                                                    //}
-                                                    //string paramJson = JsonConvert.SerializeObject(new { fmt = "0" });
-                                                    //var content = new StringContent(paramJson, Encoding.UTF8, "application/json");
-                                                    //HttpResponseMessage httpResponse = await httpClient.PostAsync("https://malearn.teammodel.cn/api/txtwc", content);
-                                                    //if (httpResponse.IsSuccessStatusCode)
-                                                    //{
-                                                    //    string str = await httpResponse.Content.ReadAsStringAsync();
-                                                    //}
-                                                    //  处理队长统一上传
-                                                    return Ok(new { code = 200 });
-                                                }
-                                                else if (uploadContest.type.Equals("lesson"))
-                                                {
-                                                    foreach (var ext in uploadContest.lessons.Select(z => z.extension).ToHashSet())
-                                                    {
-                                                        if (!contest.upload.fileType.Contains(ext))
-                                                        {
-                                                            return Ok(new { code = 7, msg = "上传的文件类型与活动要求的文件类型不符!" });
-                                                        }
-                                                    }
-                                                    //覆盖更新
-                                                    enroll.upload= new EnrollUpload
-                                                    {
-                                                        uploadTime=now,
-                                                        lessons=uploadContest.lessons,
-                                                        type=uploadContest.type,
-                                                        uploadId=Guid.NewGuid().ToString(),
-                                                        name=uploadContest.name,
-                                                    };
-                                                    await client.GetContainer(Constant.TEAMModelOS, Constant.Teacher).UpsertItemAsync(enroll, new PartitionKey($"ActivityEnroll-{_activityId.GetString()}"));
-                                                    if (captainUpload==1&& !string.IsNullOrWhiteSpace(enroll.contest.cipher))
-                                                    {
-                                                        //获取队员报名信息
-                                                        string cipherSQL = $"select value  c  from c where c.contest!=null  and c.activityId='{_activityId.GetString()}' and c.contest.type=1 and  c.contest.cipher='{enroll.contest.cipher}' ";
-                                                        var cipherResult = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).GetList<ActivityEnroll>(cipherSQL, $"ActivityEnroll-{_activityId}");
-                                                        //队长统一上传
-                                                        cipherResult.list.RemoveAll(z => z.contest.leader==1);
-                                                        foreach (var z in cipherResult.list)
-                                                        {
-                                                            z.upload=enroll.upload;
-                                                            //队长统一上传的作品不需要单独生成作品id.
-                                                            // z.upload.uploadId=Guid.NewGuid().ToString();
-                                                            await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).UpsertItemAsync(z, new PartitionKey(z.code));
-                                                        }
-                                                    }
-                                                    return Ok(new { code = 200, });
-                                                }
-                                                else if (uploadContest.type.Equals("file"))
-                                                {
-                                                    foreach (var ext in uploadContest.files.Select(z => z.extension).ToHashSet())
-                                                    {
-                                                        if (!contest.upload.fileType.Contains(ext))
-                                                        {
-                                                            return Ok(new { code = 7, msg = "上传的文件类型与活动要求的文件类型不符!" });
-                                                        }
-                                                    }
-                                                    //覆盖更新
-                                                    enroll.upload= new EnrollUpload
-                                                    {
-                                                        uploadTime=now,
-                                                        files=uploadContest.files,
-                                                        type=uploadContest.type,
-                                                        uploadId=Guid.NewGuid().ToString(),
-                                                        name=uploadContest.name,
-                                                    };
-                                                    await client.GetContainer(Constant.TEAMModelOS, Constant.Teacher).UpsertItemAsync(enroll, new PartitionKey($"ActivityEnroll-{_activityId.GetString()}"));
-                                                    if (captainUpload==1&& !string.IsNullOrWhiteSpace(enroll.contest.cipher))
-                                                    {
-                                                        //获取队员报名信息
-                                                        string cipherSQL = $"select value  c  from c where c.contest!=null  and c.activityId='{_activityId.GetString()}' and c.contest.type=1 and  c.contest.cipher='{enroll.contest.cipher}' ";
-                                                        var cipherResult = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).GetList<ActivityEnroll>(cipherSQL, $"ActivityEnroll-{_activityId}");
-                                                        //队长统一上传
-                                                        cipherResult.list.RemoveAll(z => z.contest.leader==1);
-                                                        foreach (var z in cipherResult.list)
-                                                        {
-                                                            z.upload=enroll.upload;
-                                                            //队长统一上传的作品不需要单独生成作品id.
-                                                            // z.upload.uploadId=Guid.NewGuid().ToString();
-                                                            await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).UpsertItemAsync(z, new PartitionKey(z.code));
-                                                        }
-                                                    }
-                                                    return Ok(new { code = 200, });
-                                                }
-                                                else {
-                                                    return Ok(new { code = 8, msg="上传类型不一致!"});
-                                                }
-                                            }
                                             else
                                             {
-                                                return Ok(new { code = 5, msg = "上传的作品类型与活动要求的作品类型不符!" });
+                                                return Ok(new { code = 6, msg = "未通过作品验证!" });
                                             }
+
+
+
+                                            //if (contest.upload.type.Equals(uploadContest.type))
+                                            //{
+                                            //    if (uploadContest.type.Equals("sokrates"))
+                                            //    {
+                                            //        //校验苏格拉底
+
+                                            //        //var httpClient = _httpClientFactory.CreateClient();
+                                            //        //if (!httpClient.DefaultRequestHeaders.Contains("x-functions-key"))
+                                            //        //{
+                                            //        //    httpClient.DefaultRequestHeaders.Add("x-functions-key", "2BcXFR_hvzG1pZjqIkaM7Dx74Hcu6m0PwwOacFpDpq44AzFuHJBRXA==");
+                                            //        //}
+                                            //        //string paramJson = JsonConvert.SerializeObject(new { fmt = "0" });
+                                            //        //var content = new StringContent(paramJson, Encoding.UTF8, "application/json");
+                                            //        //HttpResponseMessage httpResponse = await httpClient.PostAsync("https://malearn.teammodel.cn/api/txtwc", content);
+                                            //        //if (httpResponse.IsSuccessStatusCode)
+                                            //        //{
+                                            //        //    string str = await httpResponse.Content.ReadAsStringAsync();
+                                            //        //}
+                                            //        //  处理队长统一上传
+                                            //        return Ok(new { code = 200 });
+                                            //    }
+                                            //    else if (uploadContest.type.Equals("lesson"))
+                                            //    {
+                                            //        foreach (var ext in uploadContest.lessons.Select(z => z.extension).ToHashSet())
+                                            //        {
+                                            //            if (!contest.upload.fileType.Contains(ext))
+                                            //            {
+                                            //                return Ok(new { code = 7, msg = "上传的文件类型与活动要求的文件类型不符!" });
+                                            //            }
+                                            //        }
+                                            //        //覆盖更新
+                                            //        enroll.upload= new EnrollUpload
+                                            //        {
+                                            //            uploadTime=now,
+                                            //            lessons=uploadContest.lessons,
+                                            //            type=uploadContest.type,
+                                            //            uploadId=Guid.NewGuid().ToString(),
+                                            //            name=uploadContest.name,
+                                            //        };
+                                            //        await client.GetContainer(Constant.TEAMModelOS, Constant.Teacher).UpsertItemAsync(enroll, new PartitionKey($"ActivityEnroll-{_activityId.GetString()}"));
+                                            //        if (captainUpload==1&& !string.IsNullOrWhiteSpace(enroll.contest.cipher))
+                                            //        {
+                                            //            //获取队员报名信息
+                                            //            string cipherSQL = $"select value  c  from c where c.contest!=null  and c.activityId='{_activityId.GetString()}' and c.contest.type=1 and  c.contest.cipher='{enroll.contest.cipher}' ";
+                                            //            var cipherResult = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).GetList<ActivityEnroll>(cipherSQL, $"ActivityEnroll-{_activityId}");
+                                            //            //队长统一上传
+                                            //            cipherResult.list.RemoveAll(z => z.contest.leader==1);
+                                            //            foreach (var z in cipherResult.list)
+                                            //            {
+                                            //                z.upload=enroll.upload;
+                                            //                //队长统一上传的作品不需要单独生成作品id.
+                                            //                // z.upload.uploadId=Guid.NewGuid().ToString();
+                                            //                await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).UpsertItemAsync(z, new PartitionKey(z.code));
+                                            //            }
+                                            //        }
+                                            //        return Ok(new { code = 200, });
+                                            //    }
+                                            //    else if (uploadContest.type.Equals("file"))
+                                            //    {
+                                            //        foreach (var ext in uploadContest.files.Select(z => z.extension).ToHashSet())
+                                            //        {
+                                            //            if (!contest.upload.fileType.Contains(ext))
+                                            //            {
+                                            //                return Ok(new { code = 7, msg = "上传的文件类型与活动要求的文件类型不符!" });
+                                            //            }
+                                            //        }
+                                            //        //覆盖更新
+                                            //        enroll.upload= new EnrollUpload
+                                            //        {
+                                            //            uploadTime=now,
+                                            //            files=uploadContest.files,
+                                            //            type=uploadContest.type,
+                                            //            uploadId=Guid.NewGuid().ToString(),
+                                            //            name=uploadContest.name,
+                                            //        };
+                                            //        await client.GetContainer(Constant.TEAMModelOS, Constant.Teacher).UpsertItemAsync(enroll, new PartitionKey($"ActivityEnroll-{_activityId.GetString()}"));
+                                            //        if (captainUpload==1&& !string.IsNullOrWhiteSpace(enroll.contest.cipher))
+                                            //        {
+                                            //            //获取队员报名信息
+                                            //            string cipherSQL = $"select value  c  from c where c.contest!=null  and c.activityId='{_activityId.GetString()}' and c.contest.type=1 and  c.contest.cipher='{enroll.contest.cipher}' ";
+                                            //            var cipherResult = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).GetList<ActivityEnroll>(cipherSQL, $"ActivityEnroll-{_activityId}");
+                                            //            //队长统一上传
+                                            //            cipherResult.list.RemoveAll(z => z.contest.leader==1);
+                                            //            foreach (var z in cipherResult.list)
+                                            //            {
+                                            //                z.upload=enroll.upload;
+                                            //                //队长统一上传的作品不需要单独生成作品id.
+                                            //                // z.upload.uploadId=Guid.NewGuid().ToString();
+                                            //                await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).UpsertItemAsync(z, new PartitionKey(z.code));
+                                            //            }
+                                            //        }
+                                            //        return Ok(new { code = 200, });
+                                            //    }
+                                            //    else
+                                            //    {
+                                            //        return Ok(new { code = 8, msg = "上传类型不一致!" });
+                                            //    }
+                                            //}
+                                            //else
+                                            //{
+                                            //    return Ok(new { code = 5, msg = "上传的作品类型与活动要求的作品类型不符!" });
+                                            //}
                                         }
                                         else
                                         {