VRARLessonRecord.cs 11 KB

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