ScoreCalc.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace TEAMModelOS.SDK.Models.Cosmos.School
  7. {
  8. /// <summary>
  9. /// 成績計算總覽
  10. /// </summary>
  11. public class ScoreCalcBase : CosmosEntity
  12. {
  13. public ScoreCalcBase()
  14. {
  15. pk = "ScoreCalc";
  16. members = new List<ScoreCalcMember>();
  17. scores = new List<double>();
  18. scoresOrg = new List<double>();
  19. }
  20. /// <summary>
  21. /// 名稱
  22. /// </summary>
  23. public string name { get; set; }
  24. /// <summary>
  25. /// 課程ID
  26. /// </summary>
  27. public string courseId { get; set; }
  28. /// <summary>
  29. /// 班級ID(行政班)
  30. /// </summary>
  31. public string classId { get; set; }
  32. /// <summary>
  33. /// 班級ID(選課班、個人課程ID)
  34. /// </summary>
  35. public string grouplistId { get; set; }
  36. /// <summary>
  37. /// 成員名單
  38. /// </summary>
  39. public List<ScoreCalcMember> members { get; set; }
  40. /// <summary>
  41. /// 各成員成績總覽
  42. /// </summary>
  43. public List<double> scores { get; set; }
  44. /// <summary>
  45. /// 各成員成績總覽最初系統計算結果
  46. /// </summary>
  47. public List<double> scoresOrg { get; set; }
  48. /// <summary>
  49. /// 總覽分項權重類型 count:加權 | percentage:百分比
  50. /// </summary>
  51. public string rateType { get; set; }
  52. }
  53. /// <summary>
  54. /// 成績計算總覽分項-活動基底Class
  55. /// </summary>
  56. public class ScoreCalcActivityBase : CosmosEntity
  57. {
  58. public ScoreCalcActivityBase()
  59. {
  60. pk = "ScoreCalc";
  61. itemRates = new List<double>();
  62. itemScores = new List<double>();
  63. itemScoresOrg = new List<double>();
  64. stuScores = new List<double>();
  65. stuActScores = new List<List<double>>();
  66. stuActScoresOrg = new List<List<double>>();
  67. }
  68. /// <summary>
  69. /// 成績計算ID
  70. /// </summary>
  71. public string scorecalcId { get; set; }
  72. /// <summary>
  73. /// 類型 exam:評量 | homework:作業 | lessonrecord:課堂紀錄
  74. /// </summary>
  75. public string type { get; set; }
  76. /// <summary>
  77. /// 各活動權重
  78. /// </summary>
  79. public List<double> itemRates { get; set; }
  80. /// <summary>
  81. /// 各活動權重類型 count:加權 | percentage:百分比
  82. /// </summary>
  83. public string itemRateType { get; set; }
  84. /// <summary>
  85. /// 各活動分數最終結果
  86. /// </summary>
  87. public List<double> itemScores { get; set; }
  88. /// <summary>
  89. /// 各活動分數最初系統計算結果
  90. /// </summary>
  91. public List<double> itemScoresOrg { get; set; }
  92. /// <summary>
  93. /// 最終成績
  94. /// </summary>
  95. public double score { get; set; }
  96. /// <summary>
  97. /// 最終成績系統計算結果
  98. /// </summary>
  99. public double scoreOrg { get; set; }
  100. /// <summary>
  101. /// 總加權數
  102. /// </summary>
  103. public double rate { get; set; }
  104. /// <summary>
  105. /// 各學生所有活動結算成績
  106. /// </summary>
  107. public List<double> stuScores { get; set; }
  108. /// <summary>
  109. /// 各活動所屬學生成績
  110. /// </summary>
  111. public List<List<double>> stuActScores { get; set; }
  112. /// <summary>
  113. /// 各活動所屬學生成績最初系統計算結果
  114. /// </summary>
  115. public List<List<double>> stuActScoresOrg { get; set; }
  116. }
  117. /// <summary>
  118. /// 成績計算總覽分項-評量、作業
  119. /// </summary>
  120. public class ScoreCalcActivity : ScoreCalcActivityBase
  121. {
  122. public ScoreCalcActivity()
  123. {
  124. items = new List<ScoreCalcActivityItems>();
  125. }
  126. /// <summary>
  127. /// 被選取的活動列表
  128. /// </summary>
  129. public List<ScoreCalcActivityItems> items { get; set; }
  130. }
  131. /// <summary>
  132. /// 成績計算總覽分項-課堂紀錄
  133. /// </summary>
  134. public class ScoreCalcLsRecord : CosmosEntity
  135. {
  136. public ScoreCalcLsRecord()
  137. {
  138. items = new List<ScoreCalcActivityItems>();
  139. stuActAttendOrgVals = new List<List<string>>();
  140. stuActAttendScores = new List<List<double>>();
  141. stuAttendScores = new List<double>();
  142. stuActPointOrgVals = new List<List<int>>();
  143. stuActPointScores = new List<List<double>>();
  144. stuPointScores = new List<double>();
  145. stuActItactOrgVals = new List<List<int>>();
  146. stuActItactScores = new List<List<double>>();
  147. stuItactScores = new List<double>();
  148. }
  149. /// <summary>
  150. /// 被選取的課堂紀錄列表
  151. /// </summary>
  152. public List<ScoreCalcActivityItems> items { get; set; }
  153. /// <summary>
  154. /// 課堂紀錄出席 採用的公式ID (依照items順序 第一個課堂紀錄公式 第二個...)
  155. /// </summary>
  156. public string stuAttendFunctionId { get; set; }
  157. /// <summary>
  158. /// 各學生各課堂紀錄出席 系統原值
  159. /// </summary>
  160. public List<List<string>> stuActAttendOrgVals { get; set; }
  161. /// <summary>
  162. /// 各學生各課堂紀錄出席 分數
  163. /// </summary>
  164. public List<List<double>> stuActAttendScores { get; set; }
  165. /// <summary>
  166. /// 各學生所有課堂紀錄出席 分數
  167. /// </summary>
  168. public List<double> stuAttendScores { get; set; }
  169. /// <summary>
  170. /// 課堂紀錄記分板 採用的公式ID
  171. /// </summary>
  172. public string stuPointFunctionId { get; set; }
  173. /// <summary>
  174. /// 各學生各課堂紀錄記分板 系統原值
  175. /// </summary>
  176. public List<List<int>> stuActPointOrgVals { get; set; }
  177. /// <summary>
  178. /// 各學生各課堂紀錄記分板 分數
  179. /// </summary>
  180. public List<List<double>> stuActPointScores { get; set; }
  181. /// <summary>
  182. /// 各學生所有課堂紀錄記分板 分數
  183. /// </summary>
  184. public List<double> stuPointScores { get; set; }
  185. /// <summary>
  186. /// 課堂紀錄互動 採用的公式ID
  187. /// </summary>
  188. public string stuItactFunctionId { get; set; }
  189. /// <summary>
  190. /// 各學生各課堂紀錄互動 系統原值
  191. /// </summary>
  192. public List<List<int>> stuActItactOrgVals { get; set; }
  193. /// <summary>
  194. /// 各學生各課堂紀錄互動 分數
  195. /// </summary>
  196. public List<List<double>> stuActItactScores { get; set; }
  197. /// <summary>
  198. /// 各學生所有課堂紀錄互動 分數
  199. /// </summary>
  200. public List<double> stuItactScores { get; set; }
  201. /// <summary>
  202. /// 出席加權數
  203. /// </summary>
  204. public double attendRate { get; set; }
  205. /// <summary>
  206. /// 記分板加權數
  207. /// </summary>
  208. public double pointRate { get; set; }
  209. /// <summary>
  210. /// 互動加權數
  211. /// </summary>
  212. public double itactRate { get; set; }
  213. }
  214. public class ScoreCalcMember
  215. {
  216. /// <summary>
  217. /// ID(學生ID、TMID)
  218. /// </summary>
  219. public string id { get; set; }
  220. public string name { get; set; }
  221. /// <summary>
  222. /// 座號
  223. /// </summary>
  224. public string no { get; set; }
  225. }
  226. /// <summary>
  227. /// 測驗、作業
  228. /// </summary>
  229. public class ScoreCalcActivityItems
  230. {
  231. /// <summary>
  232. /// 活動ID (測驗:examId 作業:homeworkId)
  233. /// </summary>
  234. public string id { get; set; }
  235. /// <summary>
  236. /// 活動分區鍵
  237. /// </summary>
  238. public string code { get; set; }
  239. /// <summary>
  240. /// 發布對象 學校(school)/個人(private)
  241. /// </summary>
  242. public string scope { get; set; }
  243. /// <summary>
  244. /// (評量專有)擁有者 學校(school)/個人(teacher)
  245. /// </summary>
  246. public string owner { get; set; }
  247. /// <summary>
  248. /// 活動名稱
  249. /// </summary>
  250. public string name { get; set; }
  251. /// <summary>
  252. /// 活動進度 pending 待发布 | going 已发布 | finish 已结束
  253. /// </summary>
  254. public string progress { get; set; }
  255. /// <summary>
  256. /// 活動評分狀態(評量專用) 0未评分,1已评分
  257. /// </summary>
  258. public int sStatus { get; set; } = 0;
  259. /// <summary>
  260. /// 評測類型(評量專用) 0:線上評量 | 1:課中評量 | 2.卷卡合一
  261. /// </summary>
  262. public string source { get; set; }
  263. /// <summary>
  264. /// 創建時間 (milliseconds 13位數)
  265. /// </summary>
  266. public long createTime { get; set; }
  267. /// <summary>
  268. /// 是否使用(是否被勾選) true:使用
  269. /// </summary>
  270. public bool use { get; set; }
  271. }
  272. /// <summary>
  273. /// 課堂紀錄
  274. /// </summary>
  275. public class ScoreCalcLsRecordItems
  276. {
  277. /// <summary>
  278. /// 課堂紀錄ID
  279. /// </summary>
  280. public string id { get; set; }
  281. /// <summary>
  282. /// 課堂紀錄分區鍵
  283. /// </summary>
  284. public string code { get; set; }
  285. /// <summary>
  286. /// 課堂紀錄名稱
  287. /// </summary>
  288. public string name { get; set; }
  289. /// <summary>
  290. /// 學校ID
  291. /// </summary>
  292. public string school { get; set; }
  293. /// <summary>
  294. /// 上課時長(分)
  295. /// </summary>
  296. public double duration { get; set; } = 0;
  297. /// <summary>
  298. /// 總計分
  299. /// </summary>
  300. public double totalPoint { get; set; } = 0;
  301. /// <summary>
  302. /// 學生總數(出席人數)
  303. /// </summary>
  304. public int mCount { get; set; } = 0;
  305. /// <summary>
  306. /// 作品總數
  307. /// </summary>
  308. public int collateCount { get; set; } = 0;
  309. /// <summary>
  310. /// 學生互動總數
  311. /// </summary>
  312. public int clientInteractionCount { get; set; } = 0;
  313. /// <summary>
  314. /// 測驗得分率
  315. /// </summary>
  316. public double examPointRate { get; set; } = 0;
  317. /// <summary>
  318. /// 是否使用(是否被勾選) true:使用
  319. /// </summary>
  320. public bool use { get; set; }
  321. }
  322. /// <summary>
  323. /// 老師成績計算公式 code:"ScoreCalcFunc-{TMID}"
  324. /// </summary>
  325. public class ScoreCalcFunc : CosmosEntity
  326. {
  327. public ScoreCalcFunc()
  328. {
  329. pk = "ScoreCalc";
  330. }
  331. public string id { get; set; }
  332. public string name { get; set; }
  333. /// <summary>
  334. /// 類型 exam:評量 | homework:作業 | lessonrecord:課堂紀錄
  335. /// </summary>
  336. public string type { get; set; }
  337. /// <summary>
  338. /// 種類 attend:出席 | point:得分版 | interaction:互動
  339. /// </summary>
  340. public string method { get; set; }
  341. /// <summary>
  342. /// 公式內容
  343. /// </summary>
  344. public string content { get; set; }
  345. }
  346. }