VRARLessonRecord.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Text.Json;
  5. namespace TEAMModelOS.SDK.Models
  6. {
  7. /// <summary>
  8. /// 课堂记录简要信息。
  9. /// </summary>
  10. public class VRARLessonRecord : CosmosEntity
  11. {
  12. /// <summary>
  13. ///手机号
  14. /// </summary>
  15. public string mobile { get; set; }
  16. /// <summary>
  17. ///必填 教师醍摩豆id
  18. /// </summary>
  19. public string tmdid { get; set; }
  20. /// <summary>
  21. /// 教师醍摩豆id名称
  22. /// </summary>
  23. public string tmdname { get; set; }
  24. /// <summary>
  25. /// 教师醍摩豆id名称
  26. /// </summary>
  27. public string tmdpicture { get; set; }
  28. /// <summary>
  29. ///必填 课堂名称
  30. /// </summary>
  31. public string name { get; set; }
  32. /// <summary>
  33. ///必填 scope==school必填 | string | 学校id
  34. /// </summary>
  35. public string school { get; set; }
  36. /// <summary>
  37. ///必填 private/school|
  38. /// </summary>
  39. public string scope { get; set; }
  40. /// <summary>
  41. ///选填 视频封面地址
  42. /// </summary>
  43. public string poster { get; set; }
  44. /// <summary>
  45. ///必填 开始时间(时间戳) 1606393763434
  46. /// </summary>
  47. public long startTime { get; set; }
  48. /// <summary>
  49. ///必填 上课时长,最后更新
  50. /// </summary>
  51. public double duration { get; set; }
  52. /// <summary>
  53. ///选填 t分,科技应用 ,最后更新
  54. /// </summary>
  55. public int tScore { get; set; }
  56. /// <summary>
  57. ///选填 p分,教法应用 ,最后更新
  58. /// </summary>
  59. public int pScore { get; set; }
  60. /// <summary>
  61. ///选填 t灯,科技应用 0红灯,1 黄灯,2绿灯
  62. /// </summary>
  63. public int tLevel { get; set; } = -1;
  64. /// <summary>
  65. ///选填 p灯,教法应用 0红灯,1 黄灯,2绿灯
  66. /// </summary>
  67. public int pLevel { get; set; } = -1;
  68. /// <summary>
  69. ///选填 选用IES5的课程id
  70. /// </summary>
  71. public string courseId { get; set; }
  72. /// <summary>
  73. /// 选填 课程名称 是因支持VR/AR那边课例
  74. /// </summary>
  75. public string courseName { get; set; }
  76. /// <summary>
  77. ///选填 选用IES5固定名单的id
  78. /// </summary>
  79. public List<string> groupIds { get; set; } = new List<string>();
  80. public List<string> groupNames { get; set; } = new List<string>();
  81. /// <summary>
  82. ///选填 学生人数 ,最后更新
  83. /// </summary>
  84. public int mCount { get; set; }
  85. /// <summary>
  86. ///选填 议课次数,大于1则是优课,苏格拉底获取
  87. /// </summary>
  88. public int discuss { get; set; }
  89. /// <summary>
  90. ///选填 科技互动次数,
  91. /// </summary>
  92. public int techCount { get; set; }
  93. /// <summary>
  94. /// 学 不填 段id,由课程或者名单获取
  95. /// </summary>
  96. public string periodId { get; set; }
  97. /// <summary>
  98. /// 选填 学段名称 是因支持VR/AR那边课例
  99. /// </summary>
  100. public string periodName { get; set; }
  101. /// <summary>
  102. /// 不填 科目id,由课程id获取
  103. /// </summary>
  104. public string subjectId { get; set; }
  105. /// <summary>
  106. /// 选填 科目名称 是因支持VR/AR那边课例
  107. /// </summary>
  108. public string subjecName { get; set; }
  109. /// <summary>
  110. /// 不填 年级id,由名单id获取
  111. /// </summary>
  112. public List<string> grade { get; set; } = new List<string>();
  113. public List<string> gradeName { get; set; } = new List<string>();
  114. /// <summary>
  115. /// 不填 ["混合学习","语文教研"]课例类别,tag标签,IES5维护
  116. /// </summary>
  117. public List<string> category { get; set; } = new List<string>();
  118. /// <summary>
  119. /// 0 是否包含视频,1包含视频
  120. /// </summary>
  121. public int hasVideo { get; set; }=0;
  122. public int status { get; set; } = 0;
  123. /// <summary>
  124. /// 出席人数
  125. /// </summary>
  126. public int attendCount { get; set; } = 0;
  127. /// <summary>
  128. /// 总人数
  129. /// </summary>
  130. public int clientCount { get; set; } = 0;
  131. /// <summary>
  132. ///出席率
  133. /// </summary>
  134. public double attendRate { get; set; } = 0;
  135. /// <summary>
  136. /// 小组数
  137. /// </summary>
  138. public int groupCount { get; set; } = 0;
  139. /// <summary>
  140. /// 任务总数,作品收集任务数
  141. /// </summary>
  142. public int collateTaskCount { get; set; } = 0;
  143. /// <summary>
  144. /// 作品总数
  145. /// </summary>
  146. public int collateCount { get; set; } = 0;
  147. /// <summary>
  148. /// 推送总数(页面,资源,讯息,差异化)
  149. /// </summary>
  150. public int pushCount { get; set; } = 0;
  151. /// <summary>
  152. /// 总计分
  153. /// </summary>
  154. public double totalPoint { get; set; } = 0;
  155. /// <summary>
  156. /// 测验总题数
  157. /// </summary>
  158. public int examQuizCount { get; set; } = 0;
  159. /// <summary>
  160. /// 互动题数
  161. /// </summary>
  162. public int interactionCount { get; set; } = 0;
  163. /// <summary>
  164. /// 测验得分率
  165. /// </summary>
  166. public double examPointRate { get; set; } = 0;
  167. /// <summary>
  168. /// 学生互动总数
  169. /// </summary>
  170. public int clientInteractionCount { get; set; } = 0;
  171. /// <summary>
  172. /// 学生互动率
  173. /// </summary>
  174. public double clientInteractionAverge { get; set; } = 0;
  175. public int examCount { get; set; }
  176. /// <summary>
  177. /// 总互动分
  178. /// </summary>
  179. public double totalInteractPoint { get; set; } = 0;
  180. /// <summary>
  181. /// 过期时间,-1永不过期, 1577808000000 2020-01-01
  182. /// </summary>
  183. public long expire { get; set; } = -1;
  184. public LearningCategory learningCategory { get; set; } = new LearningCategory();
  185. public int hitaClientCmpCount { get; set; }
  186. /// <summary>
  187. /// 课例来源 0 hiteach 1 VR/AR课例
  188. /// </summary>
  189. public int source { get; set; } = 0;
  190. }
  191. public class VRARGroupList
  192. {
  193. /// <summary>
  194. /// 学生名称
  195. /// </summary>
  196. public string name { get; set; }
  197. /// <summary>
  198. /// 分组名称
  199. /// </summary>
  200. public string groupName { get; set; }
  201. /// <summary>
  202. /// 头像
  203. /// </summary>
  204. public string picture { get; set; }
  205. /// <summary>
  206. /// 是否出席 0缺席 1 出席
  207. /// </summary>
  208. public int attend { get; set; } = 1;
  209. }
  210. public class VRARTimeLine {
  211. public List<VRAREvent> events { get; set; } = new List<VRAREvent>();
  212. public List<string> screens { get; set; } = new List<string>();
  213. }
  214. /// <summary>
  215. /// 事件
  216. /// </summary>
  217. public class VRAREvent
  218. {
  219. public double time { get; set; }
  220. public long eventId { get; set; }
  221. public string @event { get; set; }
  222. public string optRole { get; set; }
  223. public string optUser { get; set; }
  224. public string screen { get; set; }
  225. public List<VRARWork> work{get;set;}=new List<VRARWork>();
  226. }
  227. /// <summary>
  228. /// 操作的资源,如打开PPT ,网站链接,播放视频,答题,选项
  229. /// doc question image answer
  230. /// </summary>
  231. public class VRARWork
  232. {
  233. public string type { get; set; }
  234. public List<string> link { get; set; }
  235. }
  236. /*
  237. {
  238. "id": "08fcc236-3d8b-42fa-98d3-b4b3fce4ecff", //课例id,可选,不传则新增,传递尝试检查是否存在,不存在则新增。
  239. "tmdname": "罗老师", //上课教师昵称,必填
  240. "tmdpicture": "https://teammodelstorage.blob.core.chinacloudapi.cn/0-public/school%2F08fcc236-3d8b-42fa-98d3-b4b3fce4ecff.png", //头像,可选
  241. "name": "2022-12-06-罗老师-杉达VR/AR虚拟教程实践", //本次课堂课例的名称,必填
  242. "poster": "https://img.zcool.cn/community/01ec775ae9379ca801207fa1668efc.jpg", //课例封面图片,可选
  243. "video": "https://teammodelstorage.blob.core.chinacloudapi.cn/0-public/video%2F%E4%B8%93%E5%A1.mp4", //虚拟课程的视频,可选
  244. "duration": 300.55, //课例视频时长,video不为空则 必填
  245. "courseName": "杉达VR/AR虚拟教程实践", //关联课程名称,必填
  246. "groupNames": [ //分组 可选。
  247. "第一组",
  248. "第二组"
  249. ],
  250. "mCount": 56, //上课人数,必填。
  251. "attendCount": 55, //出席人数,必填。
  252. "periodName": "杉达学院", //学段名称,可选。
  253. "subjecName": "VR/AR技术", //科目名称,可选。
  254. "gradeName": [ //年级,可选。
  255. "一年级",
  256. "二年级"
  257. ]
  258. }
  259. //eventType:timing 计时类型的事件。 action 触发类型的事件。
  260. //说明:同一eventId 出现多次 以time最小的为开始时间,最大的为结束时间
  261. //event 出现多次,代表出现频次。
  262. {
  263. "events": [
  264. {
  265. "time": 0.0000,//时间秒.毫秒
  266. "eventId": 100001,//事件id
  267. "event": "lesson-start",//开课
  268. "screen": "屏幕1-id",//在那个屏幕进行操作
  269. "optRole": "T",//操作角色
  270. "optUser": "罗老师"//谁在操作
  271. },
  272. {
  273. "time": 1.000,
  274. "eventId": 602528,
  275. "event": "play-doc",//教师在屏幕1播放文档
  276. "screen": "屏幕1-id",
  277. "optRole": "T",
  278. "optUser": "罗老师",
  279. "work": //操作的资源,如打开PPT ,网站链接,播放视频,学生推送作品或答题
  280. {
  281. "type": "doc",//任务类型
  282. "link": [//资源链接 ,名称或者 学生作答的答案
  283. "杉达VR/AR虚拟教程实践.pptx"
  284. ]
  285. }
  286. },
  287. {
  288. "time": 5.0006,
  289. "eventId": 705528,
  290. "event": "play-question",//教师在屏幕1提问
  291. "screen": "屏幕1-id",
  292. "optRole": "T",
  293. "optUser": "罗老师",
  294. "work": {
  295. "type": "question",
  296. "link": [
  297. "题目信息的文档.doc"
  298. ]
  299. }
  300. },
  301. {
  302. "time": 6.0006,
  303. "eventId": 8282258,
  304. "event": "push-answer",//学生在屏幕1提交答案
  305. "optRole": "S",
  306. "optUser": "李同学",
  307. "screen": "屏幕1-id",
  308. "work": {
  309. "type": "answer",
  310. "link": [
  311. "A",
  312. "B",
  313. "俱往矣,数风流人物,还看今朝。"
  314. ]
  315. }
  316. },
  317. {
  318. "time": 7.0006,
  319. "eventId": 589825,
  320. "event": "push-image",//学生在屏幕1推送作品
  321. "optRole": "S",
  322. "optUser": "李同学",
  323. "screen": "屏幕1-id",
  324. "work": //操作的资源,如打开PPT ,网站链接,播放视频,答题,选项
  325. {
  326. "type": "image",
  327. "link": [
  328. "xxxx.png"
  329. ]
  330. }
  331. },
  332. {
  333. "time": 20.0000,
  334. "eventId": 100001,
  335. "optRole": "T",
  336. "optUser": "罗老师",
  337. "event": "lesson-finish",//结束课堂
  338. "screen": "屏幕1-id"
  339. },
  340. ],
  341. "screens": [ //VR虚拟教室的屏幕编号
  342. "屏幕1-id",
  343. "屏幕2-id",
  344. "屏幕2-id"
  345. ]
  346. }
  347. */
  348. }