ScoreCalc.cs 31 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126
  1. using System.Collections.Generic;
  2. namespace TEAMModelOS.SDK.Models.Cosmos.School
  3. {
  4. /// <summary>
  5. /// 成績計算總覽
  6. /// </summary>
  7. public class ScoreCalcBase : CosmosEntity
  8. {
  9. public ScoreCalcBase()
  10. {
  11. pk = "ScoreCalc";
  12. members = new List<ScoreCalcMember>();
  13. //scores = new List<double>();
  14. //scoresOrg = new List<double>();
  15. editScores = new List<double>();
  16. }
  17. /// <summary>
  18. /// 名稱
  19. /// </summary>
  20. public string name { get; set; }
  21. /// <summary>
  22. /// 課程ID
  23. /// </summary>
  24. public string courseId { get; set; }
  25. /// <summary>
  26. /// 班級ID(行政班)
  27. /// </summary>
  28. public string classId { get; set; }
  29. /// <summary>
  30. /// 班級ID(選課班、個人課程ID)
  31. /// </summary>
  32. public string grouplistId { get; set; }
  33. /// <summary>
  34. /// 成員名單
  35. /// </summary>
  36. public List<ScoreCalcMember> members { get; set; }
  37. /// <summary>
  38. /// 各成員成績總覽
  39. /// </summary>
  40. //public List<double> scores { get; set; }
  41. /// <summary>
  42. /// 各成員成績總覽最初系統計算結果
  43. /// </summary>
  44. //public List<double> scoresOrg { get; set; }
  45. /// <summary>
  46. /// 各學生最後成績的加減分
  47. /// </summary>
  48. public List<double> editScores { get; set; }
  49. /// <summary>
  50. /// 總覽分項權重類型 count:加權 | percentage:百分比
  51. /// </summary>
  52. public string rateType { get; set; }
  53. /// <summary>
  54. /// 排序
  55. /// </summary>
  56. public int sort { get; set; }
  57. /// <summary>
  58. /// 學年
  59. /// </summary>
  60. public int year { get; set; }
  61. /// <summary>
  62. /// 創建時間 (milliseconds 13位數)
  63. /// </summary>
  64. public long createTime { get; set; }
  65. }
  66. /// <summary>
  67. /// 成績計算總覽分項-活動基底Class
  68. /// </summary>
  69. public class ScoreCalcActivityBase : CosmosEntity
  70. {
  71. public ScoreCalcActivityBase()
  72. {
  73. pk = "ScoreCalcAct";
  74. itemRates = new List<double>();
  75. items = new List<ScoreCalcActivityItems>();
  76. //itemScores = new List<double>();
  77. //itemScoresOrg = new List<double>();
  78. //stuScores = new List<double>();
  79. }
  80. /// <summary>
  81. /// 成績計算ID
  82. /// </summary>
  83. public string scorecalcId { get; set; }
  84. /// <summary>
  85. /// 活動名稱
  86. /// </summary>
  87. public string name { get; set; }
  88. /// <summary>
  89. /// 類型 exam:評量 | homework:作業 | lessonrecord:課堂紀錄
  90. /// </summary>
  91. public string type { get; set; }
  92. /// <summary>
  93. /// 總加權數
  94. /// </summary>
  95. public double rate { get; set; }
  96. /// <summary>
  97. /// 個學生最後成績的加減分
  98. /// </summary>
  99. public List<double> editScores { get; set; }
  100. /// <summary>
  101. /// 各活動權重
  102. /// </summary>
  103. public List<double> itemRates { get; set; }
  104. /// <summary>
  105. /// 排序
  106. /// </summary>
  107. public int sort { get; set; }
  108. /// <summary>
  109. /// 子項目資料
  110. /// </summary>
  111. public List<ScoreCalcActivityItems> items { get; set; }
  112. /// <summary>
  113. /// 各活動權重類型 count:加權 | percentage:百分比
  114. /// </summary>
  115. //public string itemRateType { get; set; }
  116. /// <summary>
  117. /// 各活動分數最終結果 - 一門課全部學生的平均 - 編輯後
  118. /// </summary>
  119. //public List<double> itemScores { get; set; }
  120. /// <summary>
  121. /// 各活動分數最初系統計算結果 - 一門課全部學生的平均 - 原始
  122. /// </summary>
  123. //public List<double> itemScoresOrg { get; set; }
  124. /// <summary>
  125. /// 最終成績 - 一個項目總平均 - 編輯後
  126. /// </summary>
  127. //public double score { get; set; }
  128. /// <summary>
  129. /// 最終成績系統計算結果 - 一個項目總平均 - 原始
  130. /// </summary>
  131. //public double scoreOrg { get; set; }
  132. /// <summary>
  133. /// 各學生所有活動結算成績 - 此項目所有學生的計算後分數
  134. /// </summary>
  135. //public List<double> stuScores { get; set; }
  136. }
  137. /// <summary>
  138. /// 成績計算總覽分項-評量、作業
  139. /// </summary>
  140. public class ScoreCalcActivity : ScoreCalcActivityBase
  141. {
  142. public ScoreCalcActivity()
  143. {
  144. stuActScores = new List<List<double>>();
  145. stuActScoresOrg = new List<List<double>>();
  146. }
  147. /// <summary>
  148. /// 各活動所屬學生成績
  149. /// </summary>
  150. public List<List<double>> stuActScores { get; set; }
  151. /// <summary>
  152. /// 各活動所屬學生成績最初系統計算結果
  153. /// </summary>
  154. public List<List<double>> stuActScoresOrg { get; set; }
  155. }
  156. /// <summary>
  157. /// 成績計算總覽分項-課堂紀錄
  158. /// </summary>
  159. public class ScoreCalcLsRecord : ScoreCalcActivityBase
  160. {
  161. public ScoreCalcLsRecord()
  162. {
  163. items = new List<ScoreCalcActivityItems>();
  164. stuActAttendOrgVals = new List<List<double>>();
  165. stuActAttendScores = new List<List<double>>();
  166. //stuAttendScores = new List<double>();
  167. stuActPointOrgVals = new List<List<double>>();
  168. stuActPointScores = new List<List<double>>();
  169. //stuPointScores = new List<double>();
  170. stuActItactOrgVals = new List<List<double>>();
  171. stuActItactScores = new List<List<double>>();
  172. //stuItactScores = new List<double>();
  173. }
  174. /// <summary>
  175. /// 出席加權數
  176. /// </summary>
  177. public double attendRate { get; set; }
  178. /// <summary>
  179. /// 記分板加權數
  180. /// </summary>
  181. public double pointRate { get; set; }
  182. /// <summary>
  183. /// 互動加權數
  184. /// </summary>
  185. public double itactRate { get; set; }
  186. #region ==========出席==========
  187. /// <summary>
  188. /// 課堂紀錄出席 採用的公式ID (依照items順序 第一個課堂紀錄公式 第二個...)
  189. /// </summary>
  190. public string stuAttendFunctionId { get; set; }
  191. /// <summary>
  192. /// 各學生各課堂紀錄出席 系統原值
  193. /// </summary>
  194. public List<List<double>> stuActAttendOrgVals { get; set; }
  195. /// <summary>
  196. /// 各學生各課堂紀錄出席 分數
  197. /// </summary>
  198. public List<List<double>> stuActAttendScores { get; set; }
  199. /// <summary>
  200. /// 各學生所有課堂紀錄出席 分數
  201. /// </summary>
  202. //public List<double> stuAttendScores { get; set; }
  203. #endregion
  204. #region ==========記分板==========
  205. /// <summary>
  206. /// 課堂紀錄記分板 採用的公式ID
  207. /// </summary>
  208. public string stuPointFunctionId { get; set; }
  209. /// <summary>
  210. /// 各學生各課堂紀錄記分板 系統原值
  211. /// </summary>
  212. public List<List<double>> stuActPointOrgVals { get; set; }
  213. /// <summary>
  214. /// 各學生各課堂紀錄記分板 分數
  215. /// </summary>
  216. public List<List<double>> stuActPointScores { get; set; }
  217. /// <summary>
  218. /// 各學生所有課堂紀錄記分板 分數
  219. /// </summary>
  220. //public List<double> stuPointScores { get; set; }
  221. #endregion
  222. #region ==========互動==========
  223. /// <summary>
  224. /// 課堂紀錄互動 採用的公式ID
  225. /// </summary>
  226. public string stuItactFunctionId { get; set; }
  227. /// <summary>
  228. /// 各學生各課堂紀錄互動 系統原值
  229. /// </summary>
  230. public List<List<double>> stuActItactOrgVals { get; set; }
  231. /// <summary>
  232. /// 各學生各課堂紀錄互動 分數
  233. /// </summary>
  234. public List<List<double>> stuActItactScores { get; set; }
  235. /// <summary>
  236. /// 各學生所有課堂紀錄互動 分數
  237. /// </summary>
  238. //public List<double> stuItactScores { get; set; }
  239. #endregion
  240. }
  241. public class ScoreCalcMember
  242. {
  243. /// <summary>
  244. /// ID(學生ID、TMID)
  245. /// </summary>
  246. public string id { get; set; }
  247. public string name { get; set; }
  248. /// <summary>
  249. /// 座號
  250. /// </summary>
  251. public string no { get; set; }
  252. /// <summary>
  253. /// IRS號碼
  254. /// </summary>
  255. public string irs { get; set; }
  256. }
  257. /// <summary>
  258. /// 測驗、作業
  259. /// </summary>
  260. public class ScoreCalcActivityItems
  261. {
  262. /// <summary>
  263. /// 活動ID (測驗:examId 作業:homeworkId)
  264. /// </summary>
  265. public string id { get; set; }
  266. /// <summary>
  267. /// 活動分區鍵
  268. /// </summary>
  269. public string code { get; set; }
  270. /// <summary>
  271. /// 發布對象 學校(school)/個人(private)
  272. /// </summary>
  273. //public string scope { get; set; }
  274. /// <summary>
  275. /// (評量專有)擁有者 學校(school)/個人(teacher)
  276. /// </summary>
  277. //public string owner { get; set; }
  278. /// <summary>
  279. /// 活動名稱
  280. /// </summary>
  281. public string name { get; set; }
  282. /// <summary>
  283. /// 活動進度 pending 待发布 | going 已发布 | finish 已结束
  284. /// </summary>
  285. //public string progress { get; set; }
  286. /// <summary>
  287. /// 活動評分狀態(評量專用) 0未评分,1已评分
  288. /// </summary>
  289. //public int sStatus { get; set; } = 0;
  290. /// <summary>
  291. /// 評測類型(評量專用) 0:線上評量 | 1:課中評量 | 2.卷卡合一
  292. /// </summary>
  293. //public string source { get; set; }
  294. /// <summary>
  295. /// 創建時間 (milliseconds 13位數)
  296. /// </summary>
  297. public long createTime { get; set; }
  298. /// <summary>
  299. /// 是否使用(是否被勾選) true:使用
  300. /// </summary>
  301. public bool use { get; set; }
  302. /// <summary>
  303. /// 排序
  304. /// </summary>
  305. public int sort { get; set; }
  306. /// <summary>
  307. /// 是否為自訂子項目
  308. /// </summary>
  309. public bool custom { get; set; }
  310. }
  311. /// <summary>
  312. /// 老師成績計算公式 code:"ScoreCalcFunc-{TMID}"
  313. /// </summary>
  314. public class ScoreCalcFunc : CosmosEntity
  315. {
  316. public ScoreCalcFunc()
  317. {
  318. pk = "ScoreCalcActFormula";
  319. keyvals = new List<ScoreCalcFuncTemplateKeyval>();
  320. }
  321. public string name { get; set; }
  322. public string scorecalcActId { get; set; }
  323. /// <summary>
  324. /// 類型 exam:評量 | homework:作業 | lessonrecord:課堂紀錄
  325. /// </summary>
  326. public string type { get; set; }
  327. /// <summary>
  328. /// 種類 attend:出席 | point:得分版 | interaction:互動
  329. /// </summary>
  330. public string method { get; set; }
  331. /// <summary>
  332. /// 模板 simpleAttend: 簡單出席計算法 | attendRate:出席率計算法 | custom:自訂
  333. /// </summary>
  334. public string template { get; set; }
  335. /// <summary>
  336. /// 公式鍵值定義
  337. /// </summary>
  338. public List<ScoreCalcFuncTemplateKeyval> keyvals { get; set; }
  339. /// <summary>
  340. /// 公式內容
  341. /// </summary>
  342. public string content { get; set; }
  343. }
  344. public class ScoreCalcFuncTemplateKeyval
  345. {
  346. public string key { get; set; }
  347. public string val { get; set; }
  348. //public string type { get; set; }
  349. //public string describe { get; set; }
  350. }
  351. /// <summary>
  352. /// 評量活動取系統資料
  353. /// </summary>
  354. public class ExamItem
  355. {
  356. public ExamItem()
  357. {
  358. point = new List<double>();
  359. }
  360. /// <summary>
  361. /// 評量id
  362. /// </summary>
  363. public string examId { get; set; }
  364. /// <summary>
  365. /// 評量名稱
  366. /// </summary>
  367. public string name { get; set; }
  368. /// <summary>
  369. /// 評量學生Id列表
  370. /// </summary>
  371. public List<string> studentIds { get; set; }
  372. /// <summary>
  373. /// 評量分數列表
  374. /// </summary>
  375. public List<double> sum { get; set; }
  376. /// <summary>
  377. /// 開始時間
  378. /// </summary>
  379. public long startTime { get; set; }
  380. /// <summary>
  381. /// 每題的滿分分數
  382. /// </summary>
  383. public List<double> point { get; set; }
  384. }
  385. /// <summary>
  386. /// 取作業活動Id
  387. /// </summary>
  388. public class HomeworkItem
  389. {
  390. /// <summary>
  391. /// 作業id
  392. /// </summary>
  393. public string id { get; set; }
  394. /// <summary>
  395. /// 作業名稱
  396. /// </summary>
  397. public string name { get; set; }
  398. /// <summary>
  399. /// 作業代碼 包含學生座號
  400. /// </summary>
  401. public string code { get; set; }
  402. /// <summary>
  403. /// 分數
  404. /// </summary>
  405. public double score { get; set; }
  406. /// <summary>
  407. /// pk
  408. /// </summary>
  409. public string pk { get; set; }
  410. /// <summary>
  411. /// school id
  412. /// </summary>
  413. public string school { get; set; }
  414. /// <summary>
  415. /// 開始時間
  416. /// </summary>
  417. public long startTime { get; set; }
  418. }
  419. #region (四)更新成績統計首頁表資料用
  420. /// <summary>
  421. /// 更新成績統計首頁表資料 參數
  422. /// </summary>
  423. public class UpdateSscoreCalcRq
  424. {
  425. public UpdateSscoreCalcRq()
  426. {
  427. ScoreCalcAct = new List<ScoreCalcAct>();
  428. editScores = new List<double>();
  429. }
  430. /// <summary>
  431. /// 成績統計id
  432. /// </summary>
  433. public string id { get; set; }
  434. /// <summary>
  435. /// teammodelId
  436. /// </summary>
  437. public string teammodelId { get; set; }
  438. /// <summary>
  439. /// 成績統計名稱
  440. /// </summary>
  441. public string name { get; set; }
  442. /// <summary>
  443. /// 成績統計名稱
  444. /// </summary>
  445. public List<ScoreCalcAct> ScoreCalcAct { get; set; }
  446. /// <summary>
  447. /// 成績統計的加減分
  448. /// </summary>
  449. public List<double> editScores { get; set; }
  450. }
  451. /// <summary>
  452. /// 更新成績統計首頁表資料 參數ScoreCalcAct
  453. /// </summary>
  454. public class ScoreCalcAct
  455. {
  456. public ScoreCalcAct()
  457. {
  458. editScores = new List<double>();
  459. }
  460. /// <summary>
  461. /// 項目id
  462. /// </summary>
  463. public string id { get; set; }
  464. /// <summary>
  465. /// 項目類別
  466. /// </summary>
  467. public string type { get; set; }
  468. /// <summary>
  469. /// 出席比重
  470. /// </summary>
  471. public double attendRate { get; set; }
  472. /// <summary>
  473. /// 記分比重
  474. /// </summary>
  475. public double pointRate { get; set; }
  476. /// <summary>
  477. /// 互動比重
  478. /// </summary>
  479. public double itactRate { get; set; }
  480. /// <summary>
  481. /// 總比重
  482. /// </summary>
  483. public double rate { get; set; }
  484. /// <summary>
  485. /// 項目成績的加減分
  486. /// </summary>
  487. public List<double> editScores { get; set; }
  488. }
  489. #endregion
  490. // 取物件Id用
  491. public class ItemId
  492. {
  493. /// <summary>
  494. /// id
  495. /// </summary>
  496. public string id { get; set; }
  497. }
  498. #region (六)更新公式設定(一次可以處理多個公式)資料用
  499. /// <summary>
  500. /// 更新公式資料 參數
  501. /// </summary>
  502. public class UpdateFormulaRq
  503. {
  504. public UpdateFormulaRq()
  505. {
  506. scoreCalcFunc = new List<ScoreCalcFuncRq>();
  507. }
  508. /// <summary>
  509. /// 項目id
  510. /// </summary>
  511. public string scoreCalcActId { get; set; }
  512. /// <summary>
  513. /// teammodelId
  514. /// </summary>
  515. public string teammodelId { get; set; }
  516. /// <summary>
  517. /// 種類 attend:出席 | point:得分版 | interaction:互動
  518. /// </summary>
  519. public string method { get; set; }
  520. /// <summary>
  521. /// 公式資料列表
  522. /// </summary>
  523. public List<ScoreCalcFuncRq> scoreCalcFunc { get; set; }
  524. }
  525. /// <summary>
  526. /// 更新公式資料用的 細項參數
  527. /// </summary>
  528. public class ScoreCalcFuncRq : ScoreCalcFunc
  529. {
  530. /// <summary>
  531. /// 是否為使用中的公式
  532. /// </summary>
  533. public bool use { get; set; }
  534. }
  535. #endregion
  536. #region (九)更新項目及子項目資料
  537. /// <summary>
  538. /// Request 參數
  539. /// </summary>
  540. public class UpdateScoreCalcActRqBase
  541. {
  542. /// <summary>
  543. /// 活動id
  544. /// </summary>
  545. public string scoreCalcActId { get; set; }
  546. /// <summary>
  547. /// 活動名稱
  548. /// </summary>
  549. public string name { get; set; }
  550. /// <summary>
  551. /// 活動加權數
  552. /// </summary>
  553. public double rate { get; set; }
  554. }
  555. public class UpdateActivityActRq : UpdateScoreCalcActRqBase
  556. {
  557. public UpdateActivityActRq()
  558. {
  559. items = new List<SubActActivity>();
  560. }
  561. /// <summary>
  562. /// 活動子項目資料列表
  563. /// </summary>
  564. public List<SubActActivity> items { get; set; }
  565. }
  566. public class UpdateLsRecordActRq : UpdateScoreCalcActRqBase
  567. {
  568. public UpdateLsRecordActRq()
  569. {
  570. items = new List<SubActLsRecord>();
  571. }
  572. /// <summary>
  573. /// 子項目資料列表
  574. /// </summary>
  575. public List<SubActLsRecord> items { get; set; }
  576. }
  577. #endregion
  578. #region(十三)匯出原始成績資料
  579. /// <summary>
  580. /// 原始成績Base
  581. /// </summary>
  582. public class ExportOrgDataBase
  583. {
  584. /// <summary>
  585. /// 名稱
  586. /// </summary>
  587. public string name { get; set; }
  588. }
  589. /// <summary>
  590. /// 活動成績大項
  591. /// </summary>
  592. public class ExportOrgActivityData : ExportOrgDataBase
  593. {
  594. public ExportOrgActivityData()
  595. {
  596. data = new List<ActivityScores>();
  597. }
  598. /// <summary>
  599. /// 活動子項目資料列表
  600. /// </summary>
  601. public List<ActivityScores> data { get; set; }
  602. }
  603. /// <summary>
  604. /// 課堂成績大項
  605. /// </summary>
  606. public class ExportOrgLsRecordData : ExportOrgDataBase
  607. {
  608. public ExportOrgLsRecordData()
  609. {
  610. data = new List<LessonScores>();
  611. }
  612. /// <summary>
  613. /// 課程原始分數資料
  614. /// </summary>
  615. public List<LessonScores> data { get; set; }
  616. }
  617. /// <summary>
  618. /// 課堂分數欄位
  619. /// </summary>
  620. public class LessonScores
  621. {
  622. /// <summary>
  623. /// 學生id
  624. /// </summary>
  625. public string id { get; set; }
  626. /// <summary>
  627. /// 名稱
  628. /// </summary>
  629. public string name { get; set; }
  630. /// <summary>
  631. /// 座號
  632. /// </summary>
  633. public string no { get; set; }
  634. /// <summary>
  635. /// 出席
  636. /// </summary>
  637. public double attend { get; set; }
  638. /// <summary>
  639. /// 記分板
  640. /// </summary>
  641. public double point { get; set; }
  642. /// <summary>
  643. ///互動
  644. /// </summary>
  645. public double interaction { get; set; }
  646. }
  647. /// <summary>
  648. /// 活動分數欄位
  649. /// </summary>
  650. public class ActivityScores
  651. {
  652. /// <summary>
  653. /// 學生id
  654. /// </summary>
  655. public string id { get; set; }
  656. /// <summary>
  657. /// 名稱
  658. /// </summary>
  659. public string name { get; set; }
  660. /// <summary>
  661. /// 座號
  662. /// </summary>
  663. public string no { get; set; }
  664. /// <summary>
  665. /// 分數
  666. /// </summary>
  667. public double score { get; set; }
  668. }
  669. #endregion
  670. #region (十二)登錄指定子項目成績資料用
  671. /// <summary>
  672. /// 更新成績 參數
  673. /// </summary>
  674. public class UpdateScoreBase
  675. {
  676. /// <summary>
  677. /// 活動項目id
  678. /// </summary>
  679. public string scoreCalcActId { get; set; }
  680. /// <summary>
  681. /// teammodelId
  682. /// </summary>
  683. public string teammodelId { get; set; }
  684. /// <summary>
  685. /// 子項目id
  686. /// </summary>
  687. public string id { get; set; }
  688. }
  689. /// <summary>
  690. /// 更新課堂子項目成績 參數
  691. /// </summary>
  692. public class UpdateScoreLessonRq : UpdateScoreBase
  693. {
  694. public UpdateScoreLessonRq()
  695. {
  696. stuActAttendScores = new List<double>();
  697. stuActPointScores = new List<double>();
  698. stuActItactScores = new List<double>();
  699. }
  700. /// <summary>
  701. /// 出席分數
  702. /// </summary>
  703. public List<double> stuActAttendScores { get; set; }
  704. /// <summary>
  705. /// 記分板分數
  706. /// </summary>
  707. public List<double> stuActPointScores { get; set; }
  708. /// <summary>
  709. /// 互動分數
  710. /// </summary>
  711. public List<double> stuActItactScores { get; set; }
  712. }
  713. /// <summary>
  714. /// 更新活動子項目成績 參數
  715. /// </summary>
  716. public class UpdateScoreActivityRq : UpdateScoreBase
  717. {
  718. public UpdateScoreActivityRq()
  719. {
  720. scores = new List<double>();
  721. }
  722. /// <summary>
  723. /// 分數
  724. /// </summary>
  725. public List<double> scores { get; set; }
  726. }
  727. #endregion
  728. #region (十七)查詢項目屬性資料
  729. public class ItemProps
  730. {
  731. /// <summary>
  732. /// 項目id
  733. /// </summary>
  734. public string id { get; set; }
  735. /// <summary>
  736. /// 項目名稱
  737. /// </summary>
  738. public string name { get; set; }
  739. /// <summary>
  740. /// 時間
  741. /// </summary>
  742. public long startTime { get; set; }
  743. /// <summary>
  744. /// 項目類別
  745. /// </summary>
  746. public string type { get; set; }
  747. }
  748. #endregion
  749. #region API回傳資料用
  750. #region (二)查詢成績統計首頁表資料用
  751. /// <summary>
  752. /// 查詢總表-活動資料的Base
  753. /// </summary>
  754. public class ScoreCalcActDtoBase
  755. {
  756. public ScoreCalcActDtoBase()
  757. {
  758. editScores = new List<double>();
  759. }
  760. /// <summary>
  761. /// 活動id
  762. /// </summary>
  763. public string id { get; set; }
  764. /// <summary>
  765. /// 活動名稱
  766. /// </summary>
  767. public string name { get; set; }
  768. /// <summary>
  769. /// 類型 exam:評量 | homework:作業 | lessonrecord:課堂紀錄
  770. /// </summary>
  771. public string type { get; set; }
  772. /// <summary>
  773. /// 活動加權數
  774. /// </summary>
  775. public double rate { get; set; }
  776. /// <summary>
  777. /// 排序
  778. /// </summary>
  779. public int sort { get; set; }
  780. /// <summary>
  781. /// 個學生最後成績的加減分
  782. /// </summary>
  783. public List<double> editScores { get; set; }
  784. }
  785. /// <summary>
  786. /// 查詢總表-活動資料的詳細列表資料
  787. /// </summary>
  788. public class ScoreCalcActivityActDto : ScoreCalcActDtoBase
  789. {
  790. public ScoreCalcActivityActDto()
  791. {
  792. items = new List<SubActActivity>();
  793. }
  794. /// <summary>
  795. /// 活動子項目資料列表
  796. /// </summary>
  797. public List<SubActActivity> items { get; set; }
  798. }
  799. /// <summary>
  800. /// 查詢總表-活動資料課堂紀錄的詳細列表資料
  801. /// </summary>
  802. public class ScoreCalcLsRecordActDto : ScoreCalcActDtoBase
  803. {
  804. public ScoreCalcLsRecordActDto()
  805. {
  806. items = new List<SubActLsRecord>();
  807. attendStates = new List<AttendStatesCalc>();
  808. }
  809. /// <summary>
  810. /// 出席占比重
  811. /// </summary>
  812. public double attendRate { get; set; }
  813. /// <summary>
  814. /// 記分板占比重
  815. /// </summary>
  816. public double pointRate { get; set; }
  817. /// <summary>
  818. /// 互動占比重
  819. /// </summary>
  820. public double itactRate { get; set; }
  821. /// <summary>
  822. /// 出席公式
  823. /// </summary>
  824. public string stuAttendFunctionId { get; set; }
  825. /// <summary>
  826. /// 記分公式
  827. /// </summary>
  828. public string stuPointFunctionId { get; set; }
  829. /// <summary>
  830. /// 互動公式
  831. /// </summary>
  832. public string stuItactFunctionId { get; set; }
  833. /// <summary>
  834. /// 出席狀態統計資料
  835. /// </summary>
  836. public List<AttendStatesCalc> attendStates { get; set; }
  837. /// <summary>
  838. /// 子項目資料列表
  839. /// </summary>
  840. public List<SubActLsRecord> items { get; set; }
  841. /// <summary>
  842. /// 排序
  843. /// </summary>
  844. public int sort { get; set; }
  845. }
  846. /// <summary>
  847. /// 統計出席狀態
  848. /// Uncall,0(未點名)
  849. /// Attended,1(出席)
  850. /// Absent,2(缺席)
  851. /// DayOff,3(請假)
  852. /// Absent_Sick,4(病假)
  853. /// Absent_Personal,5(事假)
  854. /// Absent_Official,6(公假)
  855. /// </summary>
  856. public class AttendStatesCalc
  857. {
  858. /// <summary>
  859. /// 病假次數
  860. /// </summary>
  861. public int Absent_Sick { get; set; }
  862. /// <summary>
  863. /// 缺席次數
  864. /// </summary>
  865. public int Absent { get; set; }
  866. /// <summary>
  867. /// 事假次數
  868. /// </summary>
  869. public int Absent_Personal { get; set; }
  870. /// <summary>
  871. /// 公假次數
  872. /// </summary>
  873. public int Absent_Official { get; set; }
  874. }
  875. /// <summary>
  876. /// 子項目欄位的Base
  877. /// </summary>
  878. public class SubActBase
  879. {
  880. /// <summary>
  881. /// 子項目id
  882. /// </summary>
  883. public string id { get; set; }
  884. /// <summary>
  885. /// 子項目名稱
  886. /// </summary>
  887. public string name { get; set; }
  888. /// <summary>
  889. /// 子項目加權數
  890. /// </summary>
  891. public double rate { get; set; }
  892. /// <summary>
  893. /// 是否為勾選的項目
  894. /// </summary>
  895. public bool use { get; set; }
  896. /// <summary>
  897. /// 排序
  898. /// </summary>
  899. public int sort { get; set; }
  900. /// <summary>
  901. /// 是否為自訂子項目
  902. /// </summary>
  903. public bool custom { get; set; }
  904. /// <summary>
  905. /// 開始時間
  906. /// </summary>
  907. public long startTime { get; set; }
  908. }
  909. /// <summary>
  910. /// 活動子項目欄位
  911. /// </summary>
  912. public class SubActActivity : SubActBase
  913. {
  914. public SubActActivity()
  915. {
  916. scores = new List<double>();
  917. }
  918. public List<double> scores { get; set; }
  919. }
  920. /// <summary>
  921. /// 課堂紀錄子項目欄位
  922. /// </summary>
  923. public class SubActLsRecord : SubActBase
  924. {
  925. public SubActLsRecord()
  926. {
  927. stuActAttendScores = new List<double>();
  928. stuActPointScores = new List<double>();
  929. stuActItactScores = new List<double>();
  930. }
  931. /// <summary>
  932. /// 出席分數
  933. /// </summary>
  934. public List<double> stuActAttendScores { get; set; }
  935. /// <summary>
  936. /// 記分板分數
  937. /// </summary>
  938. public List<double> stuActPointScores { get; set; }
  939. /// <summary>
  940. /// 互動分數
  941. /// </summary>
  942. public List<double> stuActItactScores { get; set; }
  943. }
  944. /// <summary>
  945. /// 成績統計列表用資料
  946. /// </summary>
  947. public class Calc
  948. {
  949. /// <summary>
  950. /// 成績統計id
  951. /// </summary>
  952. public string id { get; set; }
  953. /// <summary>
  954. /// 成績統計名稱
  955. /// </summary>
  956. public string name { get; set; }
  957. /// <summary>
  958. /// 排序
  959. /// </summary>
  960. public int sort { get; set; }
  961. /// <summary>
  962. /// 創建時間 (milliseconds 13位數)
  963. /// </summary>
  964. public long createTime { get; set; }
  965. }
  966. /// <summary>
  967. /// 成績統計列表用資料-總評分
  968. /// </summary>
  969. public class EditScores
  970. {
  971. public EditScores()
  972. {
  973. editScores = new List<double>();
  974. }
  975. /// <summary>
  976. /// 總評分
  977. /// </summary>
  978. public List<double> editScores { get; set; }
  979. }
  980. #region (十四)更新成績統計順序 (十五)更新活動項目順序 (十六)更新活動子項目順序
  981. /// <summary>
  982. /// 更新成績統計順序Request
  983. /// </summary>
  984. public class UpdateCalcSortRq
  985. {
  986. /// <summary>
  987. /// teammodelId
  988. /// </summary>
  989. public string teammodelId { get; set; }
  990. /// <summary>
  991. /// 成績統計要更新的資料list
  992. /// </summary>
  993. public List<sortItem> sortItems { get; set; }
  994. }
  995. /// <summary>
  996. /// 更新活動項目順序Request
  997. /// </summary>
  998. public class UpdateActSortRq
  999. {
  1000. /// <summary>
  1001. /// teammodelId
  1002. /// </summary>
  1003. public string teammodelId { get; set; }
  1004. /// <summary>
  1005. /// 成績統計Id
  1006. /// </summary>
  1007. public string scoreCalcId { get; set; }
  1008. /// <summary>
  1009. /// 成績統計要更新的資料list
  1010. /// </summary>
  1011. public List<sortItem> sortItems { get; set; }
  1012. }
  1013. /// <summary>
  1014. /// 更新活動子項目順序Request
  1015. /// </summary>
  1016. public class UpdateActItemSortRq
  1017. {
  1018. /// <summary>
  1019. /// teammodelId
  1020. /// </summary>
  1021. public string teammodelId { get; set; }
  1022. /// <summary>
  1023. /// 活動項目Id
  1024. /// </summary>
  1025. public string scoreCalcActId { get; set; }
  1026. /// <summary>
  1027. /// 子項目要更新的資料list
  1028. /// </summary>
  1029. public List<sortItem> sortItems { get; set; }
  1030. }
  1031. public class sortItem
  1032. {
  1033. /// <summary>
  1034. /// 成績統計id
  1035. /// </summary>
  1036. public string id { get; set; }
  1037. /// <summary>
  1038. /// 排序
  1039. /// </summary>
  1040. public int sort { get; set; }
  1041. }
  1042. #endregion
  1043. #endregion
  1044. #endregion
  1045. #region 接課堂紀錄blob資料用類別
  1046. public class ScoreClientSummaryList: ClientSummaryList
  1047. {
  1048. /// <summary>
  1049. /// 互動總得分
  1050. /// </summary>
  1051. public double interactScore { get; set; }
  1052. }
  1053. /// <summary>
  1054. /// /{_lessonId}/IES/TimeLine.json 课堂记录基础信息
  1055. /// </summary>
  1056. public class ScoreLessonBase
  1057. {
  1058. public Summary summary { get; set; }
  1059. public ScoreReport report { get; set; }
  1060. public List<LessonStudent> student { get; set; }
  1061. }
  1062. public class ScoreReport
  1063. {
  1064. /// <summary>
  1065. ///
  1066. /// </summary>
  1067. public List<QuizSummaryList> quizSummaryList { get; set; }
  1068. /// <summary>
  1069. ///
  1070. /// </summary>
  1071. public List<ScoreClientSummaryList> clientSummaryList { get; set; }
  1072. }
  1073. #endregion
  1074. }