HomeworkRecord.cs 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. using ProtoBuf;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.ComponentModel.DataAnnotations;
  5. using System.Text;
  6. using TEAMModelOS.SDK.Context.Attributes.Azure;
  7. using TEAMModelOS.SDK.Module.AzureCosmosDBV3;
  8. namespace TEAMModelOS.Service.Models
  9. {
  10. /// <summary>
  11. /// 作业数据
  12. /// </summary>
  13. [ProtoContract]
  14. [CosmosDB(RU = 400, Name = "Student")]
  15. public class HomeworkRecord : ID
  16. {
  17. /// <summary>
  18. /// 学生id
  19. /// </summary>
  20. [PartitionKey]
  21. [Required(ErrorMessage = "{0} 必须填写")]
  22. public string code { get; set; }
  23. public string pk { get; set; }
  24. public int? ttl { get; set; }
  25. public HomeworkRecord() {
  26. content = new List<HomeWorkContent>();
  27. stuCmt = new List<StudentComment>();
  28. classroom = new ClassroomItem();
  29. // nativeroom = new ClassroomItem();
  30. tchCmt = new HomeWorkComment();
  31. }
  32. /// <summary>
  33. /// 作业活动id
  34. /// </summary>
  35. [ProtoMember(1)]
  36. public string id { get; set; }
  37. /// <summary>
  38. /// 上课班级
  39. /// </summary>
  40. [ProtoMember(5)]
  41. public ClassroomItem classroom { get; set; }
  42. ///// <summary>
  43. ///// 原生班级
  44. ///// </summary>
  45. //[ProtoMember(6)]
  46. //public ClassroomItem nativeroom{ get; set; }
  47. /// <summary>
  48. /// 是否提交
  49. /// </summary>
  50. [ProtoMember(8)]
  51. public bool submit { get; set; } = false;
  52. /// <summary>
  53. /// 提交时间
  54. /// </summary>
  55. [ProtoMember(9)]
  56. public long submitTime { get; set; }
  57. /// <summary>
  58. /// 分数
  59. /// </summary>
  60. [ProtoMember(10)]
  61. public double score { get; set; }
  62. /// <summary>
  63. /// 作业内容
  64. /// </summary>
  65. [ProtoMember(11)]
  66. public List<HomeWorkContent> content { get; set; }
  67. /// <summary>
  68. /// 作业评论 (同学互评)
  69. /// </summary>
  70. [ProtoMember(12)]
  71. public List<StudentComment> stuCmt { get; set; }
  72. /// <summary>
  73. /// 教师评语
  74. /// </summary>
  75. [ProtoMember(13)]
  76. public HomeWorkComment tchCmt { get; set; }
  77. }
  78. [ProtoContract]
  79. public class ClassroomItem {
  80. [ProtoMember(1)]
  81. public string name { get; set; }
  82. [ProtoMember(2)]
  83. public string code { get; set; }
  84. }
  85. /// <summary>
  86. /// 作业内容
  87. /// </summary>
  88. [ProtoContract]
  89. public class HomeWorkContent {
  90. /// <summary>
  91. /// 作答记录
  92. /// </summary>
  93. [ProtoMember(1)]
  94. public string answers { get; set; }
  95. /// <summary>
  96. /// 其他模式url 及name
  97. /// </summary>
  98. [ProtoMember(2)]
  99. public List<ProcessRes> resource { get; set; }
  100. }
  101. [ProtoContract]
  102. public class StudentComment
  103. {
  104. public StudentComment()
  105. {
  106. reply = new List<Reply>();
  107. }
  108. /// <summary>
  109. /// 评论id
  110. /// </summary>
  111. [ProtoMember(1)]
  112. public string commentid { get; set; }
  113. /// <summary>
  114. /// 评论者id 醍摩豆或studenId
  115. /// </summary>
  116. [ProtoMember(2)]
  117. public string fromId { get; set; }
  118. /// <summary>
  119. /// 被评论者id 醍摩豆或studenId
  120. /// </summary>
  121. [ProtoMember(3)]
  122. public string toId { get; set; }
  123. /// <summary>
  124. /// 学生打分
  125. /// </summary>
  126. [ProtoMember(4)]
  127. public double? score { get; set; }
  128. /// <summary>
  129. /// 评论者身份 教师 学生
  130. /// </summary>
  131. [ProtoMember(5)]
  132. public string identity { get; set; }
  133. /// <summary>
  134. /// 评语
  135. /// </summary>
  136. [ProtoMember(6)]
  137. public string comment { get; set; }
  138. /// <summary>
  139. /// 评论时间
  140. /// </summary>
  141. [ProtoMember(7)]
  142. public long createTime { get; set; }
  143. ///// <summary>
  144. ///// 评论回复
  145. ///// </summary>
  146. [ProtoMember(8)]
  147. public List<Reply> reply { get; set; }
  148. }
  149. /// <summary>
  150. /// 作业评论
  151. /// </summary>
  152. [ProtoContract]
  153. public class HomeWorkComment {
  154. /// <summary>
  155. /// 评论者身份 教师 学生
  156. /// </summary>
  157. [ProtoMember(1)]
  158. public string identity { get; set; }
  159. /// <summary>
  160. /// 评语
  161. /// </summary>
  162. [ProtoMember(2)]
  163. public string comment { get; set; }
  164. /// <summary>
  165. /// 评论时间
  166. /// </summary>
  167. [ProtoMember(3)]
  168. public long createTime { get; set; }
  169. /// <summary>
  170. /// 醍摩豆id 或者学生id
  171. /// </summary>
  172. [ProtoMember(4)]
  173. public string TEAMModelId { get; set; }
  174. ///// <summary>
  175. ///// 评论回复
  176. ///// </summary>
  177. //public List<Reply> reply { get; set; }
  178. }
  179. /// <summary>
  180. /// 评论回复
  181. /// </summary>
  182. [ProtoContract]
  183. public class Reply
  184. {
  185. /// <summary>
  186. /// 评论者id 醍摩豆或studenId
  187. /// </summary>
  188. [ProtoMember(1)]
  189. public string fromId { get; set; }
  190. /// <summary>
  191. /// 被评论者id 醍摩豆或studenId
  192. /// </summary>
  193. [ProtoMember(2)]
  194. public string toId { get; set; }
  195. /// <summary>
  196. /// 评论者身份 教师 学生
  197. /// </summary>
  198. [ProtoMember(3)]
  199. public string identity { get; set; }
  200. /// <summary>
  201. /// 评语
  202. /// </summary>
  203. [ProtoMember(4)]
  204. public string comment { get; set; }
  205. [ProtoMember(5)]
  206. public long createTime { get; set; }
  207. }
  208. }