|
@@ -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
|
|
|
{
|