|
@@ -1366,7 +1366,7 @@ namespace TEAMModelOS.Controllers
|
|
|
{
|
|
|
foreach (var task in item.contestTasks)
|
|
|
{
|
|
|
- var teachers = inviteEnrollTeachers.FindAll(z => z.uploadContestId.Equals(task.uploadId));
|
|
|
+ var teachers = inviteEnrollTeachers.FindAll(z => !string.IsNullOrWhiteSpace(z.uploadContestId) && z.uploadContestId.Equals(task.uploadId));
|
|
|
if (teachers!=null)
|
|
|
{
|
|
|
teachers.ForEach(z => { z.reviewContestAssignCount+=1; z.reviewContestExperts.Add(new IdNameCode { id= item.id, name=item.name, nickname=item.tmdname, picture=item.picture }); });
|
|
@@ -1757,7 +1757,7 @@ namespace TEAMModelOS.Controllers
|
|
|
{
|
|
|
contest = JsonDocument.Parse(contestResponse.Content).RootElement.ToObject<Contest>();
|
|
|
}
|
|
|
- var expertDtos = activityExpert.experts.Select(z => z.ToJsonString().ToObject<ExpertDto>());
|
|
|
+ List<ExpertDto> expertDtos = activityExpert.experts.Select(z => z.ToJsonString().ToObject<ExpertDto>()).ToList();
|
|
|
long now = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
|
|
//进入评审环节
|
|
|
if (contest.review!= null && now > contest.review.stime) {
|
|
@@ -1769,17 +1769,18 @@ namespace TEAMModelOS.Controllers
|
|
|
{
|
|
|
string taskSql = $"select value c from c where c.id in ({string.Join(",", hasIds.Select(z => $"'{z.id}'"))})";
|
|
|
var taskResults = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).GetList<ActivityExpertTask>(taskSql, $"ActivityExpertTask-{_activityId}");
|
|
|
- foreach (var dto in expertDtos)
|
|
|
- {
|
|
|
- var task = taskResults.list.Find(z => z.id.Equals(dto.id));
|
|
|
- if (task!=null)
|
|
|
+
|
|
|
+ foreach (var item in taskResults.list) {
|
|
|
+ var dto = expertDtos.Find(z => !string.IsNullOrWhiteSpace(z.id) && z.id.Equals(item.id));
|
|
|
+ if (dto!=null )
|
|
|
{
|
|
|
- dto.taskCount =task.contestTasks.Count();
|
|
|
- dto.teacherCount=task.contestTasks.SelectMany(z => z.members).Count();
|
|
|
- dto.completeCount=task.contestTasks.Where(z => z.status==1).Count();
|
|
|
- dto.uploads= task.contestTasks.Select(z => new IdCodeCount { name = z.name, id=z.uploadId, code=string.Join(",", z.uploadTypes), count=z.count }).ToList();
|
|
|
+ dto.taskCount =item.contestTasks.Count();
|
|
|
+ dto.teacherCount=item.contestTasks.SelectMany(z => z.members).Count();
|
|
|
+ dto.completeCount=item.contestTasks.Where(z => z.status==1).Count();
|
|
|
+ dto.uploads= item.contestTasks.Select(z => new IdCodeCount { name = z.name, id=z.uploadId, code=string.Join(",", z.uploadTypes), count=z.count }).ToList();
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -2033,7 +2034,7 @@ namespace TEAMModelOS.Controllers
|
|
|
if (expertIds != null && expertIds.Count > 0)
|
|
|
{
|
|
|
string taskSQL = $"select value c from c where c.pk='ActivityExpertTask' and c.id in ({string.Join(",", expertIds.Select(z => $"'{z}'"))})";
|
|
|
- List<ExpertContestTaskDto> worksDB = new List<ExpertContestTaskDto>();
|
|
|
+
|
|
|
var result = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).GetList<ActivityExpertTask>(taskSQL, $"ActivityExpertTask-{_activityId}");
|
|
|
if (result.list.IsNotEmpty())
|
|
|
{
|
|
@@ -2041,12 +2042,28 @@ namespace TEAMModelOS.Controllers
|
|
|
}
|
|
|
}
|
|
|
HashSet<ActivityExpertTask> expertTasksChange = new HashSet<ActivityExpertTask>();
|
|
|
+ Azure.Response responseContest = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).ReadItemStreamAsync(_activityId.GetString(), new PartitionKey("Contest"));
|
|
|
+ Contest contest = null;
|
|
|
+ if (responseContest.Status == 200)
|
|
|
+ {
|
|
|
+ long now = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
|
|
+ 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 = "不在评审时间范围内!" });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
foreach (var contestTask in contestTasks)
|
|
|
{
|
|
|
ExpertContestTask expertContestTask = contestTask.ToJsonString().ToObject<ExpertContestTask>();
|
|
|
var expertTask = expertTasks.Find(z => z.id.Equals(contestTask.expertId));
|
|
|
if (expertTask != null)
|
|
|
{
|
|
|
+
|
|
|
var task = expertTask.contestTasks.Find(z => z.uploadId.Equals(contestTask.uploadId));
|
|
|
if (task == null)
|
|
|
{
|
|
@@ -2107,6 +2124,7 @@ namespace TEAMModelOS.Controllers
|
|
|
score=z.score,
|
|
|
status=z.status,
|
|
|
detailScore=z.detailScore,
|
|
|
+
|
|
|
activityId=_activityId.GetString()
|
|
|
}));
|
|
|
}
|
|
@@ -2643,6 +2661,16 @@ namespace TEAMModelOS.Controllers
|
|
|
//获取分配的任务
|
|
|
case bool when $"{grant_type}".Equals("list-task", StringComparison.OrdinalIgnoreCase):
|
|
|
{
|
|
|
+ string sql = $"select c.activityId as code ,array_length(c.contestTasks) as 'value' from c where c.id='{tmdid}' and c.pk='ActivityExpertTask'";
|
|
|
+ var result = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).GetList<CodeLong>(sql);
|
|
|
+ if (result.list.IsNotEmpty()) {
|
|
|
+ string baseSQL = $"select value c from c where c.id in ({string.Join(",",result.list.Select(z=>$"'{z}'"))}) ";
|
|
|
+ var activityResult = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).GetList<Activity>(baseSQL, "Activity");
|
|
|
+ var contestResult = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).GetList<Contest>(baseSQL, "Contest");
|
|
|
+ foreach (var item in activityResult.list) {
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
break;
|
|
|
}
|
|
|
///评分
|