|
@@ -399,7 +399,7 @@ namespace TEAMModelOS.Controllers.Learn
|
|
|
{
|
|
|
if (!HttpContext.Items.TryGetValue("Scope", out object _scope)) return BadRequest();
|
|
|
var client = _azureCosmos.GetCosmosClient();
|
|
|
- var (userid, _, _, school) = HttpContext.GetAuthTokenInfo();
|
|
|
+ var (userid, name, _, school) = HttpContext.GetAuthTokenInfo();
|
|
|
long now = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
|
|
|
if (!request.TryGetProperty("opt", out JsonElement _opt)) return BadRequest();
|
|
|
if (!request.TryGetProperty("id", out JsonElement _id)) return BadRequest();
|
|
@@ -533,13 +533,87 @@ namespace TEAMModelOS.Controllers.Learn
|
|
|
}
|
|
|
if (!request.TryGetProperty("comment", out JsonElement _comment)) return BadRequest();
|
|
|
if (!request.TryGetProperty("star", out JsonElement _star)) return BadRequest();
|
|
|
+ double star = -1;
|
|
|
+ double.TryParse($"{_star}",out star);
|
|
|
HomeworkRecord record = await client.GetContainer(Constant.TEAMModelOS, tbname).ReadItemAsync<HomeworkRecord>($"{_id}", new PartitionKey(_partition));
|
|
|
///话题对象,id为学生的作答记录的comid ,根据scope确定, code 为Debate-{schoolId},作业活动所在的学校编码|Debate-{teacherId},作业活动所在的教师编码
|
|
|
Homework homework= await client.GetContainer(Constant.TEAMModelOS, tbname).ReadItemAsync<Homework>($"{_id}", new PartitionKey(_partition));
|
|
|
- if(homework.scope.Equals("school"))
|
|
|
- {
|
|
|
-
|
|
|
+ string debateCode = "";
|
|
|
+ if (homework.scope.Equals("school"))
|
|
|
+ {
|
|
|
+ debateCode = $"Debate-{homework.school}";
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ debateCode = $"Debate-{homework.creatorId}";
|
|
|
+ }
|
|
|
+ string replyId = Guid.NewGuid().ToString();
|
|
|
+ DebateReply debateReply = new DebateReply
|
|
|
+ {
|
|
|
+ atUserType = $"{__userType}",
|
|
|
+ userType =$"{_scope}".Equals("student")?"student":"tmdid",
|
|
|
+ id = replyId,
|
|
|
+ pid = $"{record.comid}",
|
|
|
+ tmdid = userid,
|
|
|
+ tmdname = name,
|
|
|
+ school=homework.school,
|
|
|
+ comment = $"{_comment}",
|
|
|
+ atTmdid = $"{__userid}",
|
|
|
+ atTmdname = $"{__userName}" ,
|
|
|
+ time = now
|
|
|
+ };
|
|
|
+ Debate debate = null;
|
|
|
+ try
|
|
|
+ {
|
|
|
+ debate = await client.GetContainer(Constant.TEAMModelOS, tbname).ReadItemAsync<Debate>($"{record.comid}", new PartitionKey(debateCode));
|
|
|
+ debate.replies.Add(debateReply);
|
|
|
+ await client.GetContainer(Constant.TEAMModelOS, tbname).ReplaceItemAsync<Debate>(debate,$"{record.comid}", new PartitionKey(debateCode));
|
|
|
+ } catch (CosmosException ex) {
|
|
|
+ debate = new Debate
|
|
|
+ {
|
|
|
+ userType = $"{__userType}",
|
|
|
+ comid = $"{homework.id}",
|
|
|
+ code = debateCode,
|
|
|
+ id = $"{record.comid}",
|
|
|
+ tmdid = $"{__userid}",
|
|
|
+ tmdname = $"{__userName}",
|
|
|
+ title = $"{__userName}-{homework.name}",
|
|
|
+ time = now,
|
|
|
+ comment = "",
|
|
|
+ school =homework.school,
|
|
|
+ replies = new List<DebateReply>() { debateReply },
|
|
|
+ source = "homework",
|
|
|
+ openType = 0,
|
|
|
+ ttl = -1,
|
|
|
+ pk = "Debate"
|
|
|
+ };
|
|
|
+ await client.GetContainer(Constant.TEAMModelOS, tbname).CreateItemAsync<Debate>(debate, new PartitionKey(debateCode));
|
|
|
+ }
|
|
|
+ string identity = "student";
|
|
|
+ if (userid.Equals($"{_code}"))
|
|
|
+ {
|
|
|
+ identity = "teacher";
|
|
|
}
|
|
|
+ HomeworkComment homeworkComment = record.comments.Find(x => x.userid.Equals(userid));
|
|
|
+ if (homeworkComment != null)
|
|
|
+ {
|
|
|
+ homeworkComment.star = star;
|
|
|
+ homeworkComment.replyIds.Add(replyId);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ homeworkComment = new HomeworkComment
|
|
|
+ {
|
|
|
+ star= star,
|
|
|
+ identity = identity,
|
|
|
+ userType = $"{_scope}".Equals("student") ? "student" : "tmdid",
|
|
|
+ userid = userid,
|
|
|
+ username = name,
|
|
|
+ school = school,
|
|
|
+ replyIds = new List<string> { replyId }
|
|
|
+ };
|
|
|
+ record.comments.Add(homeworkComment);
|
|
|
+ }
|
|
|
+ record = await client.GetContainer(Constant.TEAMModelOS, tbname).ReplaceItemAsync<HomeworkRecord>(record,$"{_id}", new PartitionKey(_partition));
|
|
|
return Ok(new { error = 404 });
|
|
|
}
|
|
|
catch (CosmosException ex)
|
|
@@ -585,7 +659,18 @@ namespace TEAMModelOS.Controllers.Learn
|
|
|
}
|
|
|
return Ok();
|
|
|
}
|
|
|
-
|
|
|
+ public class HomeworkReply
|
|
|
+ {
|
|
|
+ /// <summary>
|
|
|
+ /// 角色类型 成员 student 学校 teacher
|
|
|
+ /// </summary>
|
|
|
+ public string roleType { get; set; }
|
|
|
+ /// <summary>
|
|
|
+ /// 某人对你这个能力点的学习评价的的评语记录的Id集合。
|
|
|
+ /// </summary>
|
|
|
+ public string reply { get; set; }
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
// /// <summary>
|
|
|
// /// 撤消作业
|