study.ts 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324
  1. import { ApiResponse, ApiResponseList } from "@/types";
  2. import flyio from "../flyio";
  3. import { Batch, ClassKnowledgeRecord, DirectedSchool, Examinee, ExamPaper, ExamPaperSubmit, GetExamPaperRequestDTO, Knowledge, KnowledgeListRequestDTO, KnowledgeRecord, OpenExamineeRequestDTO, PaperWork, PaperWorkRecord, PaperWorkRecordDetail, PaperWorkRecordQuery, PracticeHistory, PracticeRecord, SimulatedRecord, SimulationExamSubject, SimulationTestInfo, StudentExamRecord, StudentPlanStudyRecord, StudentVideoRecord, StudyPlan, Subject, SubjectListRequestDTO, TeachClass, VHSPaper, VHSPaperListRequestDTO, VideoStudy } from "@/types/study";
  4. import { EnumPaperWorkState } from "@/common/enum";
  5. /**
  6. * 获取学习计划
  7. * @param params
  8. * @returns
  9. */
  10. export function getStudyPlan() {
  11. return flyio.get('/front/student/plan') as Promise<ApiResponse<StudyPlan>>;
  12. }
  13. /**
  14. * 保存学习计划
  15. * @param params
  16. * @returns
  17. */
  18. export function saveStudyPlan(params: StudyPlan) {
  19. return flyio.post('/front/student/plan', params) as Promise<ApiResponse<any>>;
  20. }
  21. /**
  22. * 获取学习计划统计
  23. * @param params
  24. * @returns
  25. */
  26. export function getStudyPlanStats(params: any) {
  27. return flyio.get('/front/student/plan/stats', params) as Promise<ApiResponse<any>>;
  28. }
  29. /**
  30. * 获取定向学校列表
  31. * @param params
  32. * @returns
  33. */
  34. export function getDirectedSchool() {
  35. return flyio.get('/front/student/directed/school') as Promise<ApiResponse<DirectedSchool[]>>;
  36. }
  37. /**
  38. * 保存定向学校
  39. * @param params
  40. * @returns
  41. */
  42. export function saveDirectedSchool(params: DirectedSchool[]) {
  43. return flyio.post('/front/student/directed/school', params) as Promise<ApiResponse<any>>;
  44. }
  45. /**
  46. * 获取科目列表
  47. * @param params
  48. * @returns
  49. */
  50. export function getSubjectList(params: SubjectListRequestDTO) {
  51. return flyio.get('/front/paper/subject', params) as Promise<ApiResponse<Subject[]>>;
  52. }
  53. /**
  54. * 获取科目下的知识点
  55. * @param params
  56. * @returns
  57. */
  58. export function getKnowledgeList(params: KnowledgeListRequestDTO) {
  59. return flyio.get('/front/paper/knowledge', params) as Promise<ApiResponse<Knowledge[]>>;
  60. }
  61. /**
  62. * 获取教材同步知识点
  63. * @param params
  64. * @returns
  65. */
  66. export function getTextbooksKnowledgeList() {
  67. return flyio.get('/front/paper/courseKnowledge', {}) as Promise<ApiResponse<Knowledge[]>>;
  68. }
  69. /**
  70. * 开卷
  71. * @param params
  72. * @returns
  73. */
  74. export function getOpenExaminee(params: OpenExamineeRequestDTO) {
  75. return flyio.post('/front/exam/openExaminee', null, { params }, {
  76. headers: {
  77. 'Content-Type': 'application/www-form-urlencoded'
  78. }
  79. }) as Promise<ApiResponse<Examinee>>;
  80. }
  81. /**
  82. * 获取试卷
  83. * @param params
  84. * @returns
  85. */
  86. export function getPaper(params: GetExamPaperRequestDTO) {
  87. return flyio.get('/front/paper/paper', params) as Promise<ApiResponse<ExamPaper>>;
  88. }
  89. /**
  90. * 提交试卷
  91. * @param params
  92. * @returns
  93. */
  94. export function commitExamineePaper(params: ExamPaperSubmit) {
  95. return flyio.post('/front/exam/commitExamineePaper', params) as Promise<ApiResponse<any>>;
  96. }
  97. /**
  98. * 获取试卷结果
  99. */
  100. export function getExamineeResult(examineeId: number) {
  101. return flyio.get('/front/exam/loadExaminee', { examineeId }) as Promise<ApiResponse<Examinee>>;
  102. }
  103. /**
  104. * 对口升学-获取真题&模拟试卷
  105. * @param params
  106. * @returns
  107. */
  108. export function getVHSPaperList(params: VHSPaperListRequestDTO) {
  109. return flyio.get('/front/paper/list', params) as Promise<ApiResponse<VHSPaper[]>>;
  110. }
  111. /**
  112. * 获取模拟考试信息
  113. * @param params
  114. * @returns
  115. */
  116. export function getSimulationInfo() {
  117. return flyio.get('/front/student/simulated/info') as Promise<ApiResponse<SimulationTestInfo>>;
  118. }
  119. /**
  120. * 收藏题目
  121. */
  122. export function collectQuestion(questionId: number) {
  123. return flyio.post('/front/questions/collect', null, { params: { questionId } }) as Promise<ApiResponse<any>>;
  124. }
  125. /**
  126. * 取消收藏题目
  127. */
  128. export function cancelCollectQuestion(questionId: number) {
  129. return flyio.post('/front/questions/cancelCollect', null, { params: { questionId } }) as Promise<ApiResponse<any>>;
  130. }
  131. /**
  132. * 获取知识点学习记录
  133. * @param params
  134. * @returns
  135. */
  136. export function getKnowledgeRecord() {
  137. return flyio.get('/front/student/record/knowledge') as Promise<ApiResponseList<KnowledgeRecord>>;
  138. }
  139. /**
  140. * 获取模拟考试记录
  141. * @param params
  142. * @returns
  143. */
  144. export function getSimulatedRecord() {
  145. return flyio.get('/front/student/record/simulated') as Promise<ApiResponse<SimulatedRecord[]>>;
  146. }
  147. /**
  148. * 获取计划学习记录
  149. * @param params
  150. * @returns
  151. */
  152. export function getPlanStudyRecord(params: { year: number, month: number }) {
  153. return flyio.get('/front/student/record/planStudy', params) as Promise<ApiResponse<PracticeRecord>>;
  154. }
  155. /**
  156. * 获取视频学习记录
  157. * @param params
  158. * @returns
  159. */
  160. export function getVideoStudyRecord() {
  161. return flyio.get('/front/student/record/video') as Promise<ApiResponse<VideoStudy>>;
  162. }
  163. /**
  164. * 获取模拟考试科目
  165. * @param params
  166. * @returns
  167. */
  168. export function getSimulationExamSubjects() {
  169. return flyio.get('/front/exam/subjects') as Promise<ApiResponse<SimulationExamSubject[]>>;
  170. }
  171. /**
  172. * 开始考试
  173. * @param paperId
  174. * @returns
  175. */
  176. export function beginExaminee(examineeId: number) {
  177. return flyio.get('/front/exam/beginExaminee', { examineeId }) as Promise<ApiResponse<Examinee>>;
  178. }
  179. /**
  180. * 纠错
  181. * @param params
  182. * @returns
  183. */
  184. export function correctQuestion(params: { questionid: number, remark: string }) {
  185. return flyio.post('/front/adjustWrong/correctQuestion', params) as Promise<ApiResponse<any>>;
  186. }
  187. /**
  188. * 获取计划学习记录
  189. * @param params
  190. * @returns
  191. */
  192. export function getPracticeHistory({pageNum, pageSize}: {pageNum: number, pageSize: number}) {
  193. return flyio.get('/front/student/record/practice', {
  194. pageNum,
  195. pageSize
  196. }) as Promise<ApiResponseList<PracticeHistory>>;
  197. }
  198. /**
  199. * 获取教材同步练习记录
  200. * @param params
  201. * @returns
  202. */
  203. export function getTextbooksPracticeHistory() {
  204. return flyio.get('/front/student/record/coursePractice', {}) as Promise<ApiResponseList<PracticeHistory>>;
  205. }
  206. export function getPaperWorkList(parmas: {state?: EnumPaperWorkState}) {
  207. return flyio.get('/front/student/record/test', parmas) as Promise<ApiResponseList<PaperWork>>;
  208. }
  209. export function getPaperWorkDetail(id: number) {
  210. return flyio.get(`/front/student/record/test/${id}`) as Promise<ApiResponse<Examinee>>;
  211. }
  212. export function getPaperWorkStatistic() {
  213. return flyio.get('/front/student/paperStats', {}) as Promise<ApiResponse<Record<string, number>[]>>;
  214. }
  215. // 老师端 API
  216. /**
  217. * 获取教学班级列表
  218. */
  219. export function getTeachClassList(params: any) {
  220. return flyio.get('/front/teacher/classes', params) as Promise<ApiResponse<TeachClass[]>>;
  221. }
  222. export function getClassKnowledgeRecord(params: any) {
  223. return flyio.get('/front/teacher/record/knowledge', params) as Promise<ApiResponse<ClassKnowledgeRecord>>;
  224. }
  225. export function getStudentKnowledgeRecord(params: any) {
  226. return flyio.get(`/front/teacher/record/knowledge/${params.recordId}`, params) as Promise<ApiResponseList<KnowledgeRecord>>;
  227. }
  228. export function getClassPlanStudyRecord(params: any) {
  229. return flyio.get('/front/teacher/record/planStudy', params) as Promise<ApiResponseList<StudentPlanStudyRecord>>;
  230. }
  231. export function getStudentPracticeRecord(params: any) {
  232. return flyio.get(`/front/teacher/record/planStudy/${params.recordId}`, params) as Promise<ApiResponse<PracticeRecord>>;
  233. }
  234. export function getClassVideoStudyRecord(params: any) {
  235. return flyio.get('/front/teacher/record/video', params) as Promise<ApiResponseList<StudentVideoRecord>>;
  236. }
  237. export function getStudentVideoStudyRecord(params: any) {
  238. return flyio.get(`/front/teacher/record/video/${params.recordId}`, params) as Promise<ApiResponse<VideoStudy>>;
  239. }
  240. export function getClassExamRecord(params: any) {
  241. return flyio.get('/front/teacher/record/simulated', params) as Promise<ApiResponse<StudentExamRecord[]>>;
  242. }
  243. export function getStudentExamRecord(params: any) {
  244. return flyio.get(`/front/teacher/record/simulated/${params.classId}`, params) as Promise<ApiResponse<StudentExamRecord[]>>;
  245. }
  246. export function getStudentExamSubjectRecord(params: any) {
  247. return flyio.get(`/front/teacher/record/simulated/subject/${params.studentId}`, params) as Promise<ApiResponse<StudentExamRecord[]>>;
  248. }
  249. export function getStudentExamSubjectDetail(params: any) {
  250. return flyio.get('/front/teacher/record/simulated/knowledge', params) as Promise<ApiResponse<StudentExamRecord[]>>;
  251. }
  252. export function getBatchList(params: any) {
  253. return flyio.get('/front/teacher/batchs', params) as Promise<ApiResponse<Batch[]>>;
  254. }
  255. /**
  256. * 获取教师科目列表
  257. * @param params
  258. * @returns
  259. */
  260. export function getTeacherSubjectList(params: any) {
  261. return flyio.get('/front/teacher/subjects', params) as Promise<ApiResponse<Subject[]>>;
  262. }
  263. export function getTeacherTestRecord(params: any) {
  264. return flyio.get('/front/teacher/record/test', params) as Promise<ApiResponse<PaperWorkRecord[]>>;
  265. }
  266. export function getTeacherTestRecordDetail(params: any) {
  267. return flyio.get('/front/teacher/record/test/detail', params) as Promise<ApiResponse<PaperWorkRecordDetail[]>>;
  268. }
  269. export function getTeacherTestRecordCondition(params: any) {
  270. return flyio.get('/front/teacher/record/test/cond', params) as Promise<ApiResponse<PaperWorkRecordQuery>>;
  271. }