LessonRecord.cs 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659
  1. using Google.Protobuf.Collections;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Text;
  5. using System.Text.Json;
  6. namespace TEAMModelOS.SDK.Models
  7. {
  8. /// <summary>
  9. /// 课堂记录简要信息。
  10. /// </summary>
  11. public class LessonRecord : CosmosEntity
  12. {
  13. /// <summary>
  14. ///必填 教师醍摩豆id
  15. /// </summary>
  16. public string tmdid { get; set; }
  17. /// <summary>
  18. /// 教师醍摩豆id名称
  19. /// </summary>
  20. public string tmdname { get; set; }
  21. /// <summary>
  22. /// 教师醍摩豆id名称
  23. /// </summary>
  24. public string tmdpicture { get; set; }
  25. /// <summary>
  26. ///必填 课堂名称
  27. /// </summary>
  28. public string name { get; set; }
  29. /// <summary>
  30. ///必填 scope==school必填 | string | 学校id
  31. /// </summary>
  32. public string school { get; set; }
  33. /// <summary>
  34. ///必填 private/school|
  35. /// </summary>
  36. public string scope { get; set; }
  37. /// <summary>
  38. ///必填 视频封面地址
  39. /// </summary>
  40. // public string poster { get; set; }
  41. /// <summary>
  42. ///必填 开始时间(时间戳) 1606393763434
  43. /// </summary>
  44. public long startTime { get; set; }
  45. /// <summary>
  46. ///必填 上课时长,最后更新
  47. /// </summary>
  48. public double duration { get; set; }
  49. /// <summary>
  50. ///选填 t分,科技应用 ,最后更新
  51. /// </summary>
  52. public int tScore { get; set; }
  53. /// <summary>
  54. ///选填 p分,教法应用 ,最后更新
  55. /// </summary>
  56. public int pScore { get; set; }
  57. /// <summary>
  58. ///选填 t灯,科技应用 0红灯,1 黄灯,2绿灯
  59. /// </summary>
  60. public int tLevel { get; set; } = -1;
  61. /// <summary>
  62. ///选填 p灯,教法应用 0红灯,1 黄灯,2绿灯
  63. /// </summary>
  64. public int pLevel { get; set; } = -1;
  65. /// <summary>
  66. ///选填 选用IES5的课程id
  67. /// </summary>
  68. public string courseId { get; set; }
  69. /// <summary>
  70. /// 选填 课程名称 是因支持VR/AR那边课例
  71. /// </summary>
  72. public string courseName { get; set; }
  73. /// <summary>
  74. ///选填 选用IES5固定名单的id
  75. /// </summary>
  76. public List<string> groupIds { get; set; } = new List<string>();
  77. public List<string> groupNames { get; set; } = new List<string>();
  78. /// <summary>
  79. ///选填 学生人数 ,最后更新
  80. /// </summary>
  81. public int mCount { get; set; }
  82. /// <summary>
  83. ///选填 议课次数,大于1则是优课,苏格拉底获取
  84. /// </summary>
  85. public int discuss { get; set; }
  86. /// <summary>
  87. ///选填 科技互动次数,
  88. /// </summary>
  89. public int techCount { get; set; }
  90. /// <summary>
  91. /// 学 不填 段id,由课程或者名单获取
  92. /// </summary>
  93. public string periodId { get; set; }
  94. /// <summary>
  95. /// 选填 学段名称 是因支持VR/AR那边课例
  96. /// </summary>
  97. public string periodName { get; set; }
  98. /// <summary>
  99. /// 不填 科目id,由课程id获取
  100. /// </summary>
  101. public string subjectId { get; set; }
  102. /// <summary>
  103. /// 选填 科目名称 是因支持VR/AR那边课例
  104. /// </summary>
  105. public string subjecName { get; set; }
  106. /// <summary>
  107. /// 不填 年级id,由名单id获取
  108. /// </summary>
  109. public List<string> grade { get; set; } = new List<string>();
  110. public List<string> gradeName { get; set; } = new List<string>();
  111. /// <summary>
  112. /// 不填 收藏次数,IES5更新
  113. /// </summary>
  114. public int favorite { get; set; }
  115. /// <summary>
  116. /// 不填 点赞数
  117. /// </summary>
  118. public int like { get; set; }
  119. /// <summary>
  120. /// 不填 分享转发数
  121. /// </summary>
  122. public int share { get; set; }
  123. /// <summary>
  124. /// 不填 ["混合学习","语文教研"]课例类别,tag标签,IES5维护
  125. /// </summary>
  126. public List<string> category { get; set; } = new List<string>();
  127. /// <summary>
  128. /// 0 是否包含视频,1包含视频
  129. /// </summary>
  130. public int hasVideo { get; set; }
  131. //public long videoSize { get; set; }
  132. /// <summary>
  133. ///
  134. /// 科技互动详细次数。[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49]
  135. /// </summary>
  136. public List<int> tech { get; set; } = new List<int>();
  137. public int status { get; set; } = 0;
  138. /// <summary>
  139. /// 专家好课,默认0, 1 是好课
  140. /// </summary>
  141. public int excellent { get; set; } = 0;
  142. /// <summary>
  143. /// 出席人数
  144. /// </summary>
  145. public int attendCount { get; set; } = 0;
  146. /// <summary>
  147. /// 总人数
  148. /// </summary>
  149. public int clientCount { get; set; } = 0;
  150. /// <summary>
  151. ///出席率
  152. /// </summary>
  153. public double attendRate { get; set; } = 0;
  154. /// <summary>
  155. /// 小组数
  156. /// </summary>
  157. public int groupCount { get; set; } = 0;
  158. /// <summary>
  159. /// 任务总数,作品收集任务数
  160. /// </summary>
  161. public int collateTaskCount { get; set; } = 0;
  162. /// <summary>
  163. /// 作品总数
  164. /// </summary>
  165. public int collateCount { get; set; } = 0;
  166. /// <summary>
  167. /// 推送总数(页面,资源,讯息,差异化)
  168. /// </summary>
  169. public int pushCount { get; set; } = 0;
  170. /// <summary>
  171. /// 总计分
  172. /// </summary>
  173. public double totalPoint { get; set; } = 0;
  174. /// <summary>
  175. /// 测验总题数
  176. /// </summary>
  177. public int examQuizCount { get; set; } = 0;
  178. /// <summary>
  179. /// 互动题数
  180. /// </summary>
  181. public int interactionCount { get; set; } = 0;
  182. /// <summary>
  183. /// 测验得分率
  184. /// </summary>
  185. public double examPointRate { get; set; } = 0;
  186. /// <summary>
  187. /// 学生互动总数
  188. /// </summary>
  189. public int clientInteractionCount { get; set; } = 0;
  190. /// <summary>
  191. /// 学生互动率
  192. /// </summary>
  193. public double clientInteractionAverge { get; set; } = 0;
  194. public int examCount { get; set; }
  195. /// <summary>
  196. /// 总互动分
  197. /// </summary>
  198. public double totalInteractPoint { get; set; } = 0;
  199. /// <summary>
  200. /// 过期时间,-1永不过期, 1577808000000 2020-01-01
  201. /// </summary>
  202. public long expire { get; set; } = -1;
  203. /// <summary>
  204. /// 先使用这种模式,["all","student"], 暂不 开放 school【开放给部分学校查看】,teacher【开放给部分教师查看】 ["all","school","teacher","student"]
  205. /// </summary>
  206. public List<string> show { get; set; } = new List<string>();
  207. /// <summary>
  208. /// 暂不 开放 school【开放给部分学校查看】学校编码
  209. /// </summary>
  210. public List<string> showSchs { get; set; } = new List<string>();
  211. /// <summary>
  212. /// 暂不 开放 teacher【开放给部分教师查看】醍摩豆id
  213. /// </summary>
  214. public List<string> showTchs { get; set; } = new List<string>();
  215. /// <summary>
  216. /// 设置强制保留的 =1 ,不会被自动清理的。但是可以被手动清理。
  217. /// </summary>
  218. public int save { get; set; } = -1;
  219. /// <summary>
  220. /// 默认未上传
  221. /// </summary>
  222. public int upload { get; set; }
  223. public LearningCategory learningCategory { get; set; } = new LearningCategory();
  224. public int hitaClientCmpCount { get; set; }
  225. /// <summary>
  226. /// 课例来源 0 本公司 1 第三方公司 是因支持VR/AR那边课例
  227. /// </summary>
  228. public int source { get; set; } = 0;
  229. }
  230. public class TaskData {
  231. public string jobName { get; set; }
  232. public string pageID { get; set; }
  233. public int reciveCount { get; set; }
  234. public string duration { get; set; }
  235. public string collateType { get; set; }
  236. public List<ClientWork> clientWorks { get; set; } = new List<ClientWork>();
  237. }
  238. public class ClientWork {
  239. public List<string> blobFiles { get; set; }= new List<string>();
  240. public int seatID { get; set; }
  241. public string groupID { get; set; }
  242. public bool isGroupItem { get; set; }
  243. public string reciveTime { get; set; }
  244. public int displayIndex { get; set; }
  245. }
  246. public class IRSData
  247. {
  248. public string pageID { get; set; }
  249. public bool isBuzz { get; set; }
  250. public List<string> buzzClients { get; set; } = new List<string>();
  251. public Dictionary<string, List<List<string>>> clientAnswers { get; set; } = new Dictionary<string, List<List<string>>>();
  252. }
  253. public class TimeLineData {
  254. public List<TimeLineEvent> events { get; set; } = new List<TimeLineEvent>();
  255. }
  256. public class TimeLineEvent
  257. {
  258. public double Time{ get; set; }
  259. public int EventId { get; set; }
  260. public string Event { get; set; }
  261. public string WrkCmpSrcType { get; set; }
  262. public int WrkCmpCount { get; set; }
  263. public int WrkType { get; set; }
  264. public string PickupMemberId { get; set; }
  265. }
  266. public class LearningCategory {
  267. /// <summary>
  268. /// //合作學習
  269. /// </summary>
  270. public int cooperation { get; set; } = 0;
  271. /// <summary>
  272. /// 互動學習
  273. /// </summary>
  274. public int interaction { get; set; } = 0;
  275. /// <summary>
  276. /// 任務學習
  277. /// </summary>
  278. public int task { get; set; } = 0;
  279. /// <summary>
  280. /// 測驗學習
  281. /// </summary>
  282. public int exam { get; set; } = 0;
  283. /// <summary>
  284. /// 差異化學習
  285. /// </summary>
  286. public int diffential { get; set; } = 0;
  287. /// <summary>
  288. /// 只會有 1跟0,有進行1個以上的智慧評分活動就是1,反之是0
  289. /// </summary>
  290. public int smartRating { get; set; } = 0;
  291. /// <summary>
  292. /// 只會有 1跟0,有進行1個以上的協作活動就是1,反之是0
  293. /// </summary>
  294. public int cowork { get; set; }
  295. }
  296. public class LessonTC
  297. {
  298. public string t { get; set; }
  299. public double c { get; set; }
  300. }
  301. public class LessonUpdate
  302. {
  303. public string grant_type { get; set; }
  304. public object data { get; set; }
  305. }
  306. /// <summary>
  307. /// 课堂记录更新前后差值
  308. /// </summary>
  309. public class LessonDis
  310. {
  311. /// <summary>
  312. /// 开课数量差
  313. /// </summary>
  314. public int record { get; set; } = 0;
  315. /// <summary>
  316. /// T分数量差
  317. /// </summary>
  318. public int disTCount { get; set; } = 0;
  319. /// <summary>
  320. /// P分数量差
  321. /// </summary>
  322. public int disPCount { get; set; } = 0;
  323. /// <summary>
  324. /// 双绿灯数量差
  325. /// </summary>
  326. public int disDCount { get; set; } = 0;
  327. }
  328. /// <summary>
  329. /// /{_lessonId}/IES/TimeLine.json 课堂记录基础信息
  330. /// </summary>
  331. public class LessonBase {
  332. /// <summary>
  333. ///
  334. /// </summary>
  335. public Summary summary { get; set; }
  336. /// <summary>
  337. ///
  338. /// </summary>
  339. public Report report { get; set; }
  340. /// <summary>
  341. ///
  342. /// </summary>
  343. public List<LessonTC> teacheract { get; set; } = new List<LessonTC>();
  344. /// <summary>
  345. ///
  346. /// </summary>
  347. public List<LessonStudent> student { get; set; }= new List<LessonStudent> ();
  348. public List<LessonGroup> group { get; set;}= new List<LessonGroup>();
  349. }
  350. public class LessonGroup
  351. {
  352. public string groupName { get; set; }
  353. public string groupId { get; set; }
  354. }
  355. public class Summary
  356. {
  357. /// <summary>
  358. /// 测试新版名单222-罗老师 小课堂
  359. /// </summary>
  360. public string activityName { get; set; }
  361. /// <summary>
  362. /// 罗老师
  363. /// </summary>
  364. public string hostName { get; set; }
  365. /// <summary>
  366. /// 教材文件名
  367. /// </summary>
  368. public string meterialName { get; set; }
  369. /// <summary>
  370. ///
  371. /// </summary>
  372. public string date { get; set; }
  373. /// <summary>
  374. ///
  375. /// </summary>
  376. public string startTime { get; set; }
  377. /// <summary>
  378. ///
  379. /// </summary>
  380. public string endTime { get; set; }
  381. /// <summary>
  382. /// 出席人数
  383. /// </summary>
  384. public int attendCount { get; set; } = 0;
  385. /// <summary>
  386. /// 总人数
  387. /// </summary>
  388. public int clientCount { get; set; } = 0;
  389. /// <summary>
  390. ///出席率
  391. /// </summary>
  392. public double attendRate { get; set; } = 0;
  393. /// <summary>
  394. /// 小组数
  395. /// </summary>
  396. public int groupCount { get; set; } = 0;
  397. /// <summary>
  398. /// 任务总数,作品收集任务数
  399. /// </summary>
  400. public int collateTaskCount { get; set; } = 0;
  401. /// <summary>
  402. /// 互动总分
  403. /// </summary>
  404. public double totalInteractPoint { get; set; } = 0;
  405. /// <summary>
  406. /// 作品总数
  407. /// </summary>
  408. public int collateCount { get; set; } = 0;
  409. /// <summary>
  410. /// 推送总数(页面,资源,讯息,差异化)
  411. /// </summary>
  412. public int pushCount { get; set; } = 0;
  413. /// <summary>
  414. /// 总计分
  415. /// </summary>
  416. public double totalPoint { get; set; } = 0;
  417. /// <summary>
  418. /// 测验总题数
  419. /// </summary>
  420. public int examQuizCount { get; set; } = 0;
  421. /// <summary>
  422. /// 互动题数
  423. /// </summary>
  424. public int interactionCount { get; set; } = 0;
  425. /// <summary>
  426. /// 测验得分率
  427. /// </summary>
  428. public double examPointRate { get; set; } = 0;
  429. /// <summary>
  430. /// 学生互动总数
  431. /// </summary>
  432. public int clientInteractionCount { get; set; } = 0;
  433. /// <summary>
  434. /// 学生互动率
  435. /// </summary>
  436. public double clientInteractionAverge { get; set; } = 0;
  437. /// <summary>
  438. /// 测验次数
  439. /// </summary>
  440. public int examCount { get; set; }
  441. /// <summary>
  442. /// 互动分类
  443. /// </summary>
  444. public LearningCategory learningCategory { get; set; }
  445. /// <summary>
  446. /// 差異化推送總數
  447. /// </summary>
  448. public int diffPushCount { get; set; }
  449. /// <summary>
  450. /// 挑人總數
  451. /// </summary>
  452. public int pickOutCount { get; set;}
  453. /// <summary>
  454. /// 搶權總數
  455. /// </summary>
  456. public int buzzInCount { get; set; }
  457. /// <summary>
  458. /// 智慧評分活動數
  459. /// </summary>
  460. public int smartRatingCount { get; set;}
  461. /// <summary>
  462. /// 智慧評分活動參與人數
  463. /// </summary>
  464. public int clientSmartRatingCount { get; set;}
  465. /// <summary>
  466. /// 协作任务数
  467. /// </summary>
  468. public int coworkTaskCount { get; set;}
  469. /// <summary>
  470. /// 协作成果数
  471. /// </summary>
  472. public int coworkGroupCount { get; set;}
  473. /// <summary>
  474. /// 全班参与度
  475. /// </summary>
  476. public int engagementIndexAverge { get; set;}
  477. /// <summary>
  478. /// 分組平均參與率
  479. /// </summary>
  480. public List<double> grpEngagement { get; set; } = new List<double>();
  481. /// <summary>
  482. /// 個人計分排名
  483. /// </summary>
  484. public List<string> highRankPerPoint { get; set;}= new List<string>();
  485. /// <summary>
  486. /// 小組計分排名
  487. /// </summary>
  488. public List<string> highRankGrpPoint { get; set; } = new List<string>();
  489. /// <summary>
  490. /// 測驗表現較好者排名
  491. /// </summary>
  492. public List<string> highRankExam { get; set; } = new List<string>();
  493. /// <summary>
  494. /// 測驗表現較弱者排名
  495. /// </summary>
  496. public List<string> lowRankExam { get; set; } = new List<string>();
  497. /// <summary>
  498. /// 參與率較高者
  499. /// </summary>
  500. public List<string> highRankEngagement { get; set; } = new List<string>();
  501. /// <summary>
  502. /// 參與率較低者
  503. /// </summary>
  504. public List<string> lowRankEngagement { get; set; } = new List<string>();
  505. /// <summary>
  506. /// 參與率分布圖數據(HT畫圖表用)
  507. /// </summary>
  508. public List<string> engagmentDistribution { get; set; } = new List<string>();
  509. }
  510. public class QuizSummaryList
  511. {
  512. /// <summary>
  513. ///
  514. /// </summary>
  515. public string quizID { get; set; }
  516. /// <summary>
  517. ///
  518. /// </summary>
  519. public string pageOrderStr { get; set; }
  520. /// <summary>
  521. ///
  522. /// </summary>
  523. public string score { get; set; }
  524. /// <summary>
  525. ///
  526. /// </summary>
  527. public string correctAnswer { get; set; }
  528. /// <summary>
  529. ///
  530. /// </summary>
  531. public string correctRateStr { get; set; }
  532. }
  533. public class ClientSummaryList
  534. {
  535. public string groupName { get; set; }//組名
  536. public double groupScore { get; set; }//組記分
  537. public int groupTaskCompleteCount { get; set; }//組任務數完成數
  538. public int attendState { get; set; } //出席狀態
  539. public double score { get; set; }//個人記分
  540. public int taskCompleteCount { get; set; }//任務完成數
  541. public List<double> examScoreList { get; set; } = new List<double>();//課堂測驗分數Array
  542. public double interactScore { get; set; }//互動總得分
  543. // public List<string> answerLis { get; set; } = new List<string>(); //逐題回答內容Array
  544. public int seatID { get; set; } //座位號
  545. public string name { get; set; }//學生姓名
  546. /// <summary>
  547. /// 學生個人智慧評分參與度
  548. /// </summary>
  549. public double smartRatingContribute { get; set; }
  550. /// <summary>
  551. /// 學生個人協作參與度
  552. /// </summary>
  553. public double coworkContribute { get; set; }
  554. /// <summary>
  555. /// 學生個人總參與度
  556. /// </summary>
  557. public double engagementIndex { get; set; }
  558. }
  559. public class Report
  560. {
  561. /// <summary>
  562. ///
  563. /// </summary>
  564. public List<QuizSummaryList> quizSummaryList { get; set; }
  565. /// <summary>
  566. ///
  567. /// </summary>
  568. public List<ClientSummaryList> clientSummaryList { get; set; }
  569. }
  570. public class LessonStudent
  571. {
  572. public string school { get; set; }//学校编码
  573. /// <summary>
  574. /// 学生id
  575. /// </summary>
  576. public string id { get; set; }
  577. /// <summary>
  578. /// 座号
  579. /// </summary>
  580. public int seatID { get; set; }
  581. /// <summary>
  582. /// 李镇希
  583. /// </summary>
  584. public string name { get; set; }
  585. /// <summary>
  586. /// 学生类型
  587. /// </summary>
  588. public int type { get; set; }
  589. /// <summary>
  590. /// 头像
  591. /// </summary>
  592. public string picture { get; set; }
  593. }
  594. //public class LessonActivityInfo
  595. //{
  596. // /// <summary>
  597. // /// 时间点
  598. // /// </summary>
  599. // public List<LessonTC> count { get; set; } = new List<LessonTC>();
  600. // /// <summary>
  601. // /// 事件类型
  602. // /// </summary>
  603. // public string @event { get; set; }
  604. // /// <summary>
  605. // /// 页面id
  606. // /// </summary>
  607. // public string pgId { get; set; }
  608. //}
  609. //public class LessonStudent
  610. //{
  611. // public string id { get; set; }
  612. // public string name { get; set; }
  613. // public string type { get; set; }
  614. // public string code { get; set; }
  615. // public string picture { get; set; }
  616. // public string irs { get; set; }
  617. //}
  618. //public class LessonTimeLine
  619. //{
  620. // /// <summary>
  621. // /// 时间点
  622. // /// </summary>
  623. // public double time { get; set; }
  624. // /// <summary>
  625. // /// 事件类型
  626. // /// </summary>
  627. // public string @event { get; set; }
  628. // /// <summary>
  629. // /// 页面id
  630. // /// </summary>
  631. // public string pgId { get; set; }
  632. //}
  633. }