|
@@ -378,6 +378,7 @@ namespace TEAMModelOS.Controllers
|
|
var client = _azureCosmos.GetCosmosClient();
|
|
var client = _azureCosmos.GetCosmosClient();
|
|
switch (true)
|
|
switch (true)
|
|
{
|
|
{
|
|
|
|
+ //修改赛课活动信息
|
|
case bool when $"{grant_type}".Equals("update-contest-base", StringComparison.OrdinalIgnoreCase):
|
|
case bool when $"{grant_type}".Equals("update-contest-base", StringComparison.OrdinalIgnoreCase):
|
|
{
|
|
{
|
|
if (!request.TryGetProperty("activityId", out JsonElement _activityId)) return BadRequest();
|
|
if (!request.TryGetProperty("activityId", out JsonElement _activityId)) return BadRequest();
|
|
@@ -586,6 +587,7 @@ namespace TEAMModelOS.Controllers
|
|
return Ok(new { code = 1, msg = "赛课模块信息未完善!" });
|
|
return Ok(new { code = 1, msg = "赛课模块信息未完善!" });
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ //修改活动基本信息
|
|
case bool when $"{grant_type}".Equals("update-activity-base", StringComparison.OrdinalIgnoreCase):
|
|
case bool when $"{grant_type}".Equals("update-activity-base", StringComparison.OrdinalIgnoreCase):
|
|
{
|
|
{
|
|
if (!request.TryGetProperty("activityId", out JsonElement _activityId)) return BadRequest();
|
|
if (!request.TryGetProperty("activityId", out JsonElement _activityId)) return BadRequest();
|
|
@@ -1001,7 +1003,6 @@ namespace TEAMModelOS.Controllers
|
|
await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Normal).DeleteItemStreamAsync(_ruleId.GetString(), new PartitionKey("ReviewRule-template"));
|
|
await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Normal).DeleteItemStreamAsync(_ruleId.GetString(), new PartitionKey("ReviewRule-template"));
|
|
return Ok(new { code = 200 });
|
|
return Ok(new { code = 200 });
|
|
}
|
|
}
|
|
-
|
|
|
|
case bool when $"{grant_type}".Equals("invite-remove-school", StringComparison.OrdinalIgnoreCase):
|
|
case bool when $"{grant_type}".Equals("invite-remove-school", StringComparison.OrdinalIgnoreCase):
|
|
{
|
|
{
|
|
if (!request.TryGetProperty("activityId", out JsonElement _activityId)) return BadRequest();
|
|
if (!request.TryGetProperty("activityId", out JsonElement _activityId)) return BadRequest();
|
|
@@ -1178,7 +1179,6 @@ namespace TEAMModelOS.Controllers
|
|
return Ok(new { code = 1, msg = "活动不存在" });
|
|
return Ok(new { code = 1, msg = "活动不存在" });
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
//获取单个教师的报名数据
|
|
//获取单个教师的报名数据
|
|
case bool when $"{grant_type}".Equals("get-teacher-enroll", StringComparison.OrdinalIgnoreCase):
|
|
case bool when $"{grant_type}".Equals("get-teacher-enroll", StringComparison.OrdinalIgnoreCase):
|
|
{
|
|
{
|
|
@@ -1706,8 +1706,8 @@ namespace TEAMModelOS.Controllers
|
|
{
|
|
{
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- //分配评审作品任务-检查
|
|
|
|
- case bool when $"{grant_type}".Equals("allocation-task-check", StringComparison.OrdinalIgnoreCase): {
|
|
|
|
|
|
+ //分配评审作品任务-检查,自动分配
|
|
|
|
+ case bool when $"{grant_type}".Equals("allocation-task-check-assign", StringComparison.OrdinalIgnoreCase): {
|
|
if (!request.TryGetProperty("activityId", out JsonElement _activityId)) return BadRequest();
|
|
if (!request.TryGetProperty("activityId", out JsonElement _activityId)) return BadRequest();
|
|
Azure.Response responseReviewRule = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Normal).ReadItemStreamAsync(_activityId.GetString(), new PartitionKey("ReviewRule-disposable"));
|
|
Azure.Response responseReviewRule = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Normal).ReadItemStreamAsync(_activityId.GetString(), new PartitionKey("ReviewRule-disposable"));
|
|
if (responseReviewRule.Status == 200)
|
|
if (responseReviewRule.Status == 200)
|
|
@@ -1728,6 +1728,7 @@ namespace TEAMModelOS.Controllers
|
|
IEnumerable<ExpertPeriodSubjectDto> experts = activityExpert.experts.Select(z => new ExpertPeriodSubjectDto { expertId = z.id, periodSubjects = z.subjects.Select(v => $"{v.period}-{v.subject}") });
|
|
IEnumerable<ExpertPeriodSubjectDto> experts = activityExpert.experts.Select(z => new ExpertPeriodSubjectDto { expertId = z.id, periodSubjects = z.subjects.Select(v => $"{v.period}-{v.subject}") });
|
|
HashSet<string> periodSubjectKey = new HashSet<string>();
|
|
HashSet<string> periodSubjectKey = new HashSet<string>();
|
|
List<dynamic> distributeInvalid = new List<dynamic>();
|
|
List<dynamic> distributeInvalid = new List<dynamic>();
|
|
|
|
+ string allocationTaskKey = $"Contest:Allocation:{_activityId}";
|
|
switch (reviewRule.distribute)
|
|
switch (reviewRule.distribute)
|
|
{
|
|
{
|
|
case "period":
|
|
case "period":
|
|
@@ -1758,7 +1759,14 @@ namespace TEAMModelOS.Controllers
|
|
else
|
|
else
|
|
{
|
|
{
|
|
var allocationResult = await ActivityService.AllocationTask(_azureCosmos, experts, contest, periodSubjectKey, reviewRule.distribute, reviewRule.taskCount);
|
|
var allocationResult = await ActivityService.AllocationTask(_azureCosmos, experts, contest, periodSubjectKey, reviewRule.distribute, reviewRule.taskCount);
|
|
- return Ok(new { code = 200, tasks = allocationResult.expertContestTasks, invalid = allocationResult.activityEnrollsInvalid.Select(z => new { invalidCode = z.Invalid, enroll = z.enroll }) });
|
|
|
|
|
|
+ if (allocationResult.expertContestTasks.IsNotEmpty())
|
|
|
|
+ {
|
|
|
|
+ await _azureRedis.GetRedisClient(8).StringSetAsync(allocationTaskKey, allocationResult.expertContestTasks.ToJsonString(), expiry:new TimeSpan(0,5,0));
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ allocationTaskKey = string.Empty;
|
|
|
|
+ }
|
|
|
|
+ return Ok(new { taskKey= allocationTaskKey, code = 200, tasksDb= allocationResult.expertContestTasksDB, tasksAdd = allocationResult.expertContestTasks, invalid = allocationResult.activityEnrollsInvalid.Select(z => new { invalidCode = z.Invalid, enroll = z.enroll }) });
|
|
}
|
|
}
|
|
}
|
|
}
|
|
case "subject":
|
|
case "subject":
|
|
@@ -1789,7 +1797,15 @@ namespace TEAMModelOS.Controllers
|
|
else
|
|
else
|
|
{
|
|
{
|
|
var allocationResult = await ActivityService.AllocationTask(_azureCosmos, experts, contest, periodSubjectKey, reviewRule.distribute, reviewRule.taskCount);
|
|
var allocationResult = await ActivityService.AllocationTask(_azureCosmos, experts, contest, periodSubjectKey, reviewRule.distribute, reviewRule.taskCount);
|
|
- return Ok(new { code = 200, tasks = allocationResult.expertContestTasks, invalid = allocationResult.activityEnrollsInvalid.Select(z => new { invalidCode = z.Invalid, enroll = z.enroll }) });
|
|
|
|
|
|
+ if (allocationResult.expertContestTasks.IsNotEmpty())
|
|
|
|
+ {
|
|
|
|
+ await _azureRedis.GetRedisClient(8).StringSetAsync(allocationTaskKey, allocationResult.expertContestTasks.ToJsonString(), expiry: new TimeSpan(0, 5, 0));
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ allocationTaskKey = string.Empty;
|
|
|
|
+ }
|
|
|
|
+ return Ok(new { taskKey = allocationTaskKey, code = 200, tasksDb = allocationResult.expertContestTasksDB, tasksAdd = allocationResult.expertContestTasks, invalid = allocationResult.activityEnrollsInvalid.Select(z => new { invalidCode = z.Invalid, enroll = z.enroll }) });
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1827,7 +1843,15 @@ namespace TEAMModelOS.Controllers
|
|
else
|
|
else
|
|
{
|
|
{
|
|
var allocationResult = await ActivityService.AllocationTask(_azureCosmos, experts, contest, periodSubjectKey, reviewRule.distribute, reviewRule.taskCount);
|
|
var allocationResult = await ActivityService.AllocationTask(_azureCosmos, experts, contest, periodSubjectKey, reviewRule.distribute, reviewRule.taskCount);
|
|
- return Ok(new { code = 200, tasks = allocationResult.expertContestTasks, invalid = allocationResult.activityEnrollsInvalid.Select(z => new { invalidCode = z.Invalid, enroll = z.enroll }) });
|
|
|
|
|
|
+ if (allocationResult.expertContestTasks.IsNotEmpty())
|
|
|
|
+ {
|
|
|
|
+ await _azureRedis.GetRedisClient(8).StringSetAsync(allocationTaskKey, allocationResult.expertContestTasks.ToJsonString(), expiry: new TimeSpan(0, 5, 0));
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ allocationTaskKey = string.Empty;
|
|
|
|
+ }
|
|
|
|
+ return Ok(new { taskKey = allocationTaskKey, code = 200, tasksDb = allocationResult.expertContestTasksDB, tasksAdd = allocationResult.expertContestTasks, invalid = allocationResult.activityEnrollsInvalid.Select(z => new { invalidCode = z.Invalid, enroll = z.enroll }) });
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -1838,7 +1862,15 @@ namespace TEAMModelOS.Controllers
|
|
{
|
|
{
|
|
periodSubjectKey.Add($"-");
|
|
periodSubjectKey.Add($"-");
|
|
var allocationResult = await ActivityService.AllocationTask(_azureCosmos, experts, contest, periodSubjectKey, reviewRule.distribute, reviewRule.taskCount);
|
|
var allocationResult = await ActivityService.AllocationTask(_azureCosmos, experts, contest, periodSubjectKey, reviewRule.distribute, reviewRule.taskCount);
|
|
- return Ok(new { code = 200, tasks = allocationResult.expertContestTasks, invalid = allocationResult.activityEnrollsInvalid.Select(z => new { invalidCode = z.Invalid, enroll = z.enroll }) });
|
|
|
|
|
|
+ if (allocationResult.expertContestTasks.IsNotEmpty())
|
|
|
|
+ {
|
|
|
|
+ await _azureRedis.GetRedisClient(8).StringSetAsync(allocationTaskKey, allocationResult.expertContestTasks.ToJsonString(), expiry: new TimeSpan(0, 5, 0));
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ allocationTaskKey = string.Empty;
|
|
|
|
+ }
|
|
|
|
+ return Ok(new { taskKey = allocationTaskKey, code = 200, tasksDb = allocationResult.expertContestTasksDB, tasksAdd = allocationResult.expertContestTasks, invalid = allocationResult.activityEnrollsInvalid.Select(z => new { invalidCode = z.Invalid, enroll = z.enroll }) });
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
@@ -1869,13 +1901,13 @@ namespace TEAMModelOS.Controllers
|
|
|
|
|
|
}
|
|
}
|
|
//分配评审作品任务-自动
|
|
//分配评审作品任务-自动
|
|
- case bool when $"{grant_type}".Equals("allocation-task-auto", StringComparison.OrdinalIgnoreCase):
|
|
|
|
|
|
+ case bool when $"{grant_type}".Equals("allocation-task-auto-save", StringComparison.OrdinalIgnoreCase):
|
|
{
|
|
{
|
|
-
|
|
|
|
|
|
+
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
//分配评审作品任务-手动
|
|
//分配评审作品任务-手动
|
|
- case bool when $"{grant_type}".Equals("allocation-task-manual", StringComparison.OrdinalIgnoreCase):
|
|
|
|
|
|
+ case bool when $"{grant_type}".Equals("allocation-task-manual-save", StringComparison.OrdinalIgnoreCase):
|
|
{
|
|
{
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
@@ -2311,6 +2343,7 @@ namespace TEAMModelOS.Controllers
|
|
}
|
|
}
|
|
switch (true)
|
|
switch (true)
|
|
{
|
|
{
|
|
|
|
+ //移除队员
|
|
case bool when $"{grant_type}".Equals("remove-member", StringComparison.OrdinalIgnoreCase):
|
|
case bool when $"{grant_type}".Equals("remove-member", StringComparison.OrdinalIgnoreCase):
|
|
{
|
|
{
|
|
if (!request.TryGetProperty("removeMember", out JsonElement _removeMember)) return BadRequest();
|
|
if (!request.TryGetProperty("removeMember", out JsonElement _removeMember)) return BadRequest();
|
|
@@ -3027,7 +3060,7 @@ namespace TEAMModelOS.Controllers
|
|
{
|
|
{
|
|
if (!contest.upload.fileType.Contains(ext))
|
|
if (!contest.upload.fileType.Contains(ext))
|
|
{
|
|
{
|
|
- return Ok(new { code = 7, msg = "上传的文件类型与活动要求的文件类型部分!" });
|
|
|
|
|
|
+ return Ok(new { code = 7, msg = "上传的文件类型与活动要求的文件类型不符!" });
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//覆盖更新
|
|
//覆盖更新
|