|
@@ -35,6 +35,83 @@ namespace TEAMModelFunction
|
|
_azureStorage = azureStorage;
|
|
_azureStorage = azureStorage;
|
|
_azureRedis = azureRedis;
|
|
_azureRedis = azureRedis;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 修复已存在的课程且未初始化学生课程列表的业务。
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <param name="req"></param>
|
|
|
|
+ /// <param name="log"></param>
|
|
|
|
+ /// <returns></returns>
|
|
|
|
+ [FunctionName("fix-stu-course")]
|
|
|
|
+ public async Task<IActionResult> StuCourse([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequest req, ILogger log)
|
|
|
|
+ {
|
|
|
|
+ log.LogInformation("fix-stu-course...");
|
|
|
|
+ string originCode = await new StreamReader(req.Body).ReadToEndAsync();
|
|
|
|
+ List<Course> courses = new List<Course>();
|
|
|
|
+ var client = _azureCosmos.GetCosmosClient();
|
|
|
|
+ var query = $"select * from c ";
|
|
|
|
+ await foreach (var item in client.GetContainer("TEAMModelOS", "School").GetItemQueryIterator<Course>(queryText: query,
|
|
|
|
+ requestOptions: new QueryRequestOptions() { PartitionKey = new Azure.Cosmos.PartitionKey($"Course-{originCode}") }))
|
|
|
|
+ {
|
|
|
|
+ courses.Add(item);
|
|
|
|
+ }
|
|
|
|
+ await foreach (var item in client.GetContainer("TEAMModelOS", "Teacher").GetItemQueryIterator<Course>(queryText: query,
|
|
|
|
+ requestOptions: new QueryRequestOptions() { PartitionKey = new Azure.Cosmos.PartitionKey($"Course-{originCode}") }))
|
|
|
|
+ {
|
|
|
|
+ courses.Add(item);
|
|
|
|
+ }
|
|
|
|
+ //2.获取课程的id 并尝试添加或移除对应的学生课程记录StuCourse。
|
|
|
|
+ foreach (var course in courses)
|
|
|
|
+ {
|
|
|
|
+ if (course.schedule.IsNotEmpty())
|
|
|
|
+ {
|
|
|
|
+ foreach (var sc in course.schedule)
|
|
|
|
+ {
|
|
|
|
+ if (!string.IsNullOrEmpty(sc.stulist))
|
|
|
|
+ {
|
|
|
|
+ (List<string> tmdids, List<Students> studentss) = await TriggerStuActivity.GetStuList(client, new List<string>() { sc.stulist }, course.school);
|
|
|
|
+ foreach (var addStu in studentss)
|
|
|
|
+ {
|
|
|
|
+ var stuCourse = new StuCourse
|
|
|
|
+ {
|
|
|
|
+ id = course.id,
|
|
|
|
+ scode = course.code,
|
|
|
|
+ name = course.name,
|
|
|
|
+ code = $"StuCourse-{course.school}-{addStu.id}",
|
|
|
|
+ scope = course.scope,
|
|
|
|
+ school = course.school,
|
|
|
|
+ creatorId = course.creatorId,
|
|
|
|
+ pk = "StuCourse"
|
|
|
|
+ };
|
|
|
|
+ await client.GetContainer("TEAMModelOS", "Student").UpsertItemAsync(stuCourse, new PartitionKey(stuCourse.code));
|
|
|
|
+ }
|
|
|
|
+ foreach (var addTmd in tmdids)
|
|
|
|
+ {
|
|
|
|
+ var tmdCourse = new StuCourse
|
|
|
|
+ {
|
|
|
|
+ id = course.id,
|
|
|
|
+ scode = course.code,
|
|
|
|
+ name = course.name,
|
|
|
|
+ code = $"StuCourse-{addTmd}",
|
|
|
|
+ scope = course.scope,
|
|
|
|
+ //school = courseChange.school,
|
|
|
|
+ creatorId = course.creatorId,
|
|
|
|
+ pk = "StuCourse"
|
|
|
|
+ };
|
|
|
|
+ await client.GetContainer("TEAMModelOS", "Teacher").UpsertItemAsync(tmdCourse, new PartitionKey(tmdCourse.code));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return new OkObjectResult(new { });
|
|
|
|
+ }
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 设置评测未初始化学生列表的
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <param name="req"></param>
|
|
|
|
+ /// <param name="log"></param>
|
|
|
|
+ /// <returns></returns>
|
|
[FunctionName("fix-exam-activity")]
|
|
[FunctionName("fix-exam-activity")]
|
|
public async Task<IActionResult> ExamActivity([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequest req,ILogger log)
|
|
public async Task<IActionResult> ExamActivity([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequest req,ILogger log)
|
|
{
|
|
{
|
|
@@ -121,7 +198,12 @@ namespace TEAMModelFunction
|
|
}
|
|
}
|
|
return new OkObjectResult(new { });
|
|
return new OkObjectResult(new { });
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 设置投票未初始化学生列表的业务
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <param name="req"></param>
|
|
|
|
+ /// <param name="log"></param>
|
|
|
|
+ /// <returns></returns>
|
|
[FunctionName("fix-vote-activity")]
|
|
[FunctionName("fix-vote-activity")]
|
|
public async Task<IActionResult> VoteActivity(
|
|
public async Task<IActionResult> VoteActivity(
|
|
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
|
|
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
|
|
@@ -208,6 +290,12 @@ namespace TEAMModelFunction
|
|
}
|
|
}
|
|
return new OkObjectResult(new { });
|
|
return new OkObjectResult(new { });
|
|
}
|
|
}
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 设置问卷调查未初始化学生列表的业务
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <param name="req"></param>
|
|
|
|
+ /// <param name="log"></param>
|
|
|
|
+ /// <returns></returns>
|
|
[FunctionName("fix-survey-activity")]
|
|
[FunctionName("fix-survey-activity")]
|
|
public async Task<IActionResult> SurveyActivity(
|
|
public async Task<IActionResult> SurveyActivity(
|
|
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
|
|
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
|