|
@@ -463,7 +463,7 @@ namespace TEAMModelOS.Controllers.Learn
|
|
|
try
|
|
|
{ // userType 为student 时,userid 为校内账号,且userSchool 需要有学校编码。
|
|
|
//userType 为tmdid 时,userid 为醍摩豆账号,且userSchool 可以为空。
|
|
|
- // if (!request.TryGetProperty("typeUsers", out JsonElement _typeUsers)) return BadRequest();
|
|
|
+ // if (!request.TryGetProperty("typeUsers", out JsonElement _typeUsers)) return BadRequest();
|
|
|
if (!request.TryGetProperty("listIds", out JsonElement _listIds)) return BadRequest();
|
|
|
List<string> listIds = _listIds.ToJsonString().ToObject<List<string>>();
|
|
|
List<TypeUser> typeUsers = new List<TypeUser>();
|
|
@@ -472,14 +472,14 @@ namespace TEAMModelOS.Controllers.Learn
|
|
|
var addTmdidsCls = tmdinfos.FindAll(x => x.type == 1);
|
|
|
if ($"{_targetType}".Equals("research", StringComparison.OrdinalIgnoreCase) || $"{_targetType}".Equals("yxtrain", StringComparison.OrdinalIgnoreCase))
|
|
|
{
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
if (tmdinfos.IsNotEmpty())
|
|
|
{
|
|
|
-
|
|
|
+
|
|
|
tmdinfos.ForEach(x => {
|
|
|
- var clases= classInfo.Where(y => y.members.Select(z => z.id).Contains(x.id)).ToList() ;
|
|
|
- typeUsers.Add(new TypeUser() { userid = x.id, userType = "tmdid", username = x.name, classes = clases.Select(x=>new TypeUserClass{id= x.id,name=x.name}).ToList() });
|
|
|
+ var clases = classInfo.Where(y => y.members.Select(z => z.id).Contains(x.id)).ToList();
|
|
|
+ typeUsers.Add(new TypeUser() { userid = x.id, userType = "tmdid", username = x.name, classes = clases.Select(x => new TypeUserClass { id = x.id, name = x.name }).ToList() });
|
|
|
});
|
|
|
}
|
|
|
}
|
|
@@ -499,9 +499,9 @@ namespace TEAMModelOS.Controllers.Learn
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
List<dynamic> rscs = new List<dynamic>();
|
|
|
-
|
|
|
+
|
|
|
string debateCode = "";
|
|
|
string debateTbname = "";
|
|
|
if (homework.scope.Equals("school"))
|
|
@@ -516,15 +516,15 @@ namespace TEAMModelOS.Controllers.Learn
|
|
|
}
|
|
|
List<Debate> debates = new List<Debate>();
|
|
|
string sql = $"select value(c) from c where c.comid='{_id}'";
|
|
|
- await foreach (var item in client.GetContainer(Constant.TEAMModelOS, debateTbname).GetItemQueryIterator<Debate>(queryText: sql, requestOptions: new QueryRequestOptions { PartitionKey = new PartitionKey(debateCode) }))
|
|
|
+ await foreach (var item in client.GetContainer(Constant.TEAMModelOS, debateTbname).GetItemQueryIterator<Debate>(queryText: sql, requestOptions: new QueryRequestOptions { PartitionKey = new PartitionKey(debateCode) }))
|
|
|
{
|
|
|
debates.Add(item);
|
|
|
}
|
|
|
List<HomeworkUser> users = new List<HomeworkUser>();
|
|
|
foreach (var typeuser in typeUsers) {
|
|
|
- var us= users.Find(x => x.userid.Equals(typeuser.userid));
|
|
|
+ var us = users.Find(x => x.userid.Equals(typeuser.userid));
|
|
|
if (us != null) { continue; }
|
|
|
- HomeworkUser user = new HomeworkUser() { userid=typeuser.userid,userSchool=typeuser.userSchool,userType=typeuser.userType,username=typeuser.username,classes=typeuser.classes};
|
|
|
+ HomeworkUser user = new HomeworkUser() { userid = typeuser.userid, userSchool = typeuser.userSchool, userType = typeuser.userType, username = typeuser.username, classes = typeuser.classes };
|
|
|
string partition = $"HomeworkRecord-{typeuser.userid}";
|
|
|
if (typeuser.userType.Equals("student"))
|
|
|
{
|
|
@@ -595,7 +595,7 @@ namespace TEAMModelOS.Controllers.Learn
|
|
|
return Ok(new { record });
|
|
|
}
|
|
|
catch (CosmosException ex) {
|
|
|
- return Ok(new {error=404 });
|
|
|
+ return Ok(new { error = 404 });
|
|
|
}
|
|
|
//提交答案
|
|
|
case bool when $"{_opt}".Equals("SubmitAnswer", StringComparison.OrdinalIgnoreCase):
|
|
@@ -607,72 +607,141 @@ namespace TEAMModelOS.Controllers.Learn
|
|
|
partitionKey = $"HomeworkRecord-{school}-{userid}";
|
|
|
}
|
|
|
List<Attachment> content = _content.ToObject<List<Attachment>>();
|
|
|
+
|
|
|
int taskStatus = -1;
|
|
|
byte msgid = 0;
|
|
|
if (content != null)
|
|
|
{
|
|
|
- try
|
|
|
+ bool falge = true;
|
|
|
+ if (homework.leaderSubmit == 1 && content.Exists(x => x.prime == true))
|
|
|
{
|
|
|
- HomeworkRecord record = await client.GetContainer(Constant.TEAMModelOS, tbname).ReadItemAsync<HomeworkRecord>($"{_id}", new PartitionKey(partitionKey));
|
|
|
- record.content = content;
|
|
|
- record.answer = $"{_answer}";
|
|
|
- record.submitCount += 1;
|
|
|
- await client.GetContainer(Constant.TEAMModelOS, tbname).ReplaceItemAsync<HomeworkRecord>(record, $"{_id}", new PartitionKey(partitionKey));
|
|
|
- taskStatus = 1;
|
|
|
- msgid = 1;
|
|
|
+ List<RGroupList> yxtrain = await GroupListService.GetGroupListMemberByType(client, "yxtrain", new List<string> { "school" }, $"{school}", _dingDing);
|
|
|
+ var members = yxtrain.SelectMany(x => x.members).ToList();
|
|
|
+ var leader = members.Find(x => x.tag!=null && x.id.Equals(userid) && x.tag.Equals("leader"));
|
|
|
+ if (leader != null && !string.IsNullOrEmpty(leader.groupName))
|
|
|
+ {
|
|
|
+ falge = false;
|
|
|
+ var our = members.ToList().FindAll(x =>x.groupName!=null && x.groupName.Equals(leader.groupName));
|
|
|
+ foreach (var one in our) {
|
|
|
+ string pk = $"HomeworkRecord-{one.id}";
|
|
|
+ try
|
|
|
+ {
|
|
|
+ HomeworkRecord record = await client.GetContainer(Constant.TEAMModelOS, tbname).ReadItemAsync<HomeworkRecord>($"{_id}", new PartitionKey(pk));
|
|
|
+ record.content = content;
|
|
|
+ record.answer = $"{_answer}";
|
|
|
+ record.submitCount += 1;
|
|
|
+ await client.GetContainer(Constant.TEAMModelOS, tbname).ReplaceItemAsync<HomeworkRecord>(record, $"{_id}", new PartitionKey(pk));
|
|
|
+ taskStatus = 1;
|
|
|
+ msgid = 1;
|
|
|
+ }
|
|
|
+ catch (CosmosException ex)
|
|
|
+ {
|
|
|
+ if (ex.Status == 404)
|
|
|
+ {
|
|
|
+ HomeworkRecord record = new HomeworkRecord
|
|
|
+ {
|
|
|
+ teacher = $"{teacher}",
|
|
|
+ school = school,
|
|
|
+ id = $"{_id}",
|
|
|
+ code = pk,
|
|
|
+ content = content,
|
|
|
+ answer = $"{_answer}",
|
|
|
+ pk = "HomeworkRecord",
|
|
|
+ ttl = -1,
|
|
|
+ time = now,
|
|
|
+ submitCount = 1,
|
|
|
+ comid = Guid.NewGuid().ToString()
|
|
|
+ };
|
|
|
+ record = await client.GetContainer(Constant.TEAMModelOS, tbname).CreateItemAsync<HomeworkRecord>(record, new PartitionKey(pk));
|
|
|
+ taskStatus = 1;
|
|
|
+ msgid = 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO 写入方便教师查看的作答记录
|
|
|
+ try
|
|
|
+ {
|
|
|
+ StuActivity activity = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "Teacher").ReadItemAsync<StuActivity>($"{_id}", new PartitionKey($"Activity-{one.id}"));
|
|
|
+ activity.taskStatus = taskStatus;
|
|
|
+ await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "Teacher").ReplaceItemAsync<StuActivity>(activity, $"{_id}", new PartitionKey($"Activity-{one.id}"));
|
|
|
+ }
|
|
|
+ catch (CosmosException ex)
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+ await StatisticsService.SendServiceBus($"{standard}", $"{one.id}", $"{school}", StatisticsService.TeacherClass, 1, _configuration, _serviceBus);
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- catch (CosmosException ex)
|
|
|
- {
|
|
|
- if (ex.Status == 404)
|
|
|
+
|
|
|
+ if (falge) {
|
|
|
+ try
|
|
|
{
|
|
|
- HomeworkRecord record = new HomeworkRecord
|
|
|
- {
|
|
|
- teacher = $"{teacher}",
|
|
|
- school = school,
|
|
|
- id = $"{_id}",
|
|
|
- code = partitionKey,
|
|
|
- content = content,
|
|
|
- answer = $"{_answer}",
|
|
|
- pk = "HomeworkRecord",
|
|
|
- ttl = -1,
|
|
|
- time = now,
|
|
|
- submitCount = 1,
|
|
|
- comid = Guid.NewGuid().ToString()
|
|
|
- };
|
|
|
- record = await client.GetContainer(Constant.TEAMModelOS, tbname).CreateItemAsync<HomeworkRecord>(record, new PartitionKey(partitionKey));
|
|
|
+ HomeworkRecord record = await client.GetContainer(Constant.TEAMModelOS, tbname).ReadItemAsync<HomeworkRecord>($"{_id}", new PartitionKey(partitionKey));
|
|
|
+ record.content = content;
|
|
|
+ record.answer = $"{_answer}";
|
|
|
+ record.submitCount += 1;
|
|
|
+ await client.GetContainer(Constant.TEAMModelOS, tbname).ReplaceItemAsync<HomeworkRecord>(record, $"{_id}", new PartitionKey(partitionKey));
|
|
|
taskStatus = 1;
|
|
|
msgid = 1;
|
|
|
}
|
|
|
- if (content.Exists(x => x.prime == true)) {
|
|
|
- await StatisticsService.SendServiceBus($"{standard}", $"{userid}", $"{school}", StatisticsService.TeacherClass, 1, _configuration, _serviceBus);
|
|
|
- }
|
|
|
+ catch (CosmosException ex)
|
|
|
+ {
|
|
|
+ if (ex.Status == 404)
|
|
|
+ {
|
|
|
+ HomeworkRecord record = new HomeworkRecord
|
|
|
+ {
|
|
|
+ teacher = $"{teacher}",
|
|
|
+ school = school,
|
|
|
+ id = $"{_id}",
|
|
|
+ code = partitionKey,
|
|
|
+ content = content,
|
|
|
+ answer = $"{_answer}",
|
|
|
+ pk = "HomeworkRecord",
|
|
|
+ ttl = -1,
|
|
|
+ time = now,
|
|
|
+ submitCount = 1,
|
|
|
+ comid = Guid.NewGuid().ToString()
|
|
|
+ };
|
|
|
+ record = await client.GetContainer(Constant.TEAMModelOS, tbname).CreateItemAsync<HomeworkRecord>(record, new PartitionKey(partitionKey));
|
|
|
+ taskStatus = 1;
|
|
|
+ msgid = 1;
|
|
|
+ }
|
|
|
|
|
|
- }
|
|
|
- //TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO 写入方便教师查看的作答记录
|
|
|
- try
|
|
|
- {
|
|
|
- if ($"{_scope}".Equals(Constant.ScopeStudent)) {
|
|
|
- StuActivity activity = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "Student").ReadItemAsync<StuActivity>($"{_id}", new PartitionKey($"Activity-{school}-{userid}"));
|
|
|
- activity.taskStatus = taskStatus;
|
|
|
- await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "Student").ReplaceItemAsync<StuActivity>(activity, $"{_id}", new PartitionKey($"Activity-{school}-{userid}"));
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ //TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO 写入方便教师查看的作答记录
|
|
|
+ try
|
|
|
+ {
|
|
|
+ if ($"{_scope}".Equals(Constant.ScopeStudent))
|
|
|
+ {
|
|
|
+ StuActivity activity = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "Student").ReadItemAsync<StuActivity>($"{_id}", new PartitionKey($"Activity-{school}-{userid}"));
|
|
|
+ activity.taskStatus = taskStatus;
|
|
|
+ await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "Student").ReplaceItemAsync<StuActivity>(activity, $"{_id}", new PartitionKey($"Activity-{school}-{userid}"));
|
|
|
+ }
|
|
|
+ if ($"{_scope}".Equals(Constant.ScopeTmdUser))
|
|
|
+ {
|
|
|
+ StuActivity activity = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "Student").ReadItemAsync<StuActivity>($"{_id}", new PartitionKey($"Activity-{userid}"));
|
|
|
+ activity.taskStatus = taskStatus;
|
|
|
+ await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "Student").ReplaceItemAsync<StuActivity>(activity, $"{_id}", new PartitionKey($"Activity-{userid}"));
|
|
|
+ }
|
|
|
+ if ($"{_scope}".Equals(Constant.ScopeTeacher))
|
|
|
+ {
|
|
|
+ StuActivity activity = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "Teacher").ReadItemAsync<StuActivity>($"{_id}", new PartitionKey($"Activity-{userid}"));
|
|
|
+ activity.taskStatus = taskStatus;
|
|
|
+ await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "Teacher").ReplaceItemAsync<StuActivity>(activity, $"{_id}", new PartitionKey($"Activity-{userid}"));
|
|
|
+ }
|
|
|
}
|
|
|
- if ($"{_scope}".Equals(Constant.ScopeTmdUser))
|
|
|
+ catch (CosmosException ex)
|
|
|
{
|
|
|
- StuActivity activity = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "Student").ReadItemAsync<StuActivity>($"{_id}", new PartitionKey($"Activity-{userid}"));
|
|
|
- activity.taskStatus = taskStatus;
|
|
|
- await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "Student").ReplaceItemAsync<StuActivity>(activity, $"{_id}", new PartitionKey($"Activity-{userid}"));
|
|
|
+ taskStatus = -1;
|
|
|
}
|
|
|
- if ($"{_scope}".Equals(Constant.ScopeTeacher))
|
|
|
+ if (content.Exists(x => x.prime == true))
|
|
|
{
|
|
|
- StuActivity activity = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "Teacher").ReadItemAsync<StuActivity>($"{_id}", new PartitionKey($"Activity-{userid}"));
|
|
|
- activity.taskStatus = taskStatus;
|
|
|
- await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "Teacher").ReplaceItemAsync<StuActivity>(activity, $"{_id}", new PartitionKey($"Activity-{userid}"));
|
|
|
+ await StatisticsService.SendServiceBus($"{standard}", $"{userid}", $"{school}", StatisticsService.TeacherClass, 1, _configuration, _serviceBus);
|
|
|
}
|
|
|
}
|
|
|
- catch (CosmosException ex)
|
|
|
- {
|
|
|
- taskStatus = -1;
|
|
|
- }
|
|
|
return Ok(new { msgid, taskStatus });
|
|
|
}
|
|
|
else {
|