11import {
2- AllTermScoresDTO ,
32 CourseScoreInfo ,
43 CurrentSemesterStudentAcademicInfo ,
54 TrainingSchemeYearInfo ,
@@ -17,6 +16,8 @@ import {
1716import { pipe , map } from 'ramda'
1817import state from '../state'
1918import {
19+ APIAllPassingScoresDTO ,
20+ APIAllPassingScoresDTOLnCj ,
2021 APISubitemScoreFxcjDTO ,
2122 APISubitemScoreLookDTO ,
2223 Result ,
@@ -31,30 +32,12 @@ import {
3132import { sleep , http } from '@/helper/util'
3233import { getChineseNumber } from '@/helper/getter'
3334import { Logger } from '@/helper/logger'
34-
35- function getPageHTML ( url : string ) : Promise < string > {
36- return $ . get ( {
37- url,
38- beforeSend : ( xhr ) =>
39- xhr . setRequestHeader ( 'X-Requested-With' , {
40- toString ( ) {
41- return ''
42- }
43- } as string )
44- } ) as unknown as Promise < string >
45- }
46-
47- async function LoadHTMLToDealWithError (
48- url : string
49- ) : Promise < { title : string ; message : string ; html : string } > {
50- const html = await getPageHTML ( url )
51- const title = $ ( 'title' , html ) . text ( )
52- const message = $ ( '.main-content .page-content' , html )
53- . text ( )
54- . replace ( / × / g, '' )
55- . trim ( )
56- return { title, message, html }
57- }
35+ import {
36+ getExamTypeNameByCode ,
37+ getPageHTML ,
38+ getThisTermScoresDataURL ,
39+ LoadHTMLToDealWithError
40+ } from './utils'
5841
5942async function requestStudentSemesterNumberList ( ) : Promise < string [ ] > {
6043 const url = '/student/courseSelect/calendarSemesterCurriculum/index'
@@ -488,59 +471,38 @@ function filterCourseScoreInfoList(list: CourseScoreInfo[]): CourseScoreInfo[] {
488471 )
489472}
490473
491- async function requestAllTermsCourseScoreInfoList ( ) : Promise <
492- CourseScoreInfo [ ]
493- > {
494- const url = '/student/integratedQuery/scoreQuery/allTermScores/data'
474+ export async function requestAllPassingScores ( ) : Promise < CourseScoreInfo [ ] > {
475+ const url = '/student/integratedQuery/scoreQuery/allPassingScores/callback'
495476 try {
496- const {
497- list : {
498- pageContext : { totalCount }
499- }
500- } = ( await $ . post ( url , {
501- zxjxjhh : '' ,
502- kch : '' ,
503- kcm : '' ,
504- pageNum : 1 ,
505- pageSize : 1
506- } ) ) as AllTermScoresDTO
507-
508- const {
509- list : { records }
510- } = ( await $ . post (
511- '/student/integratedQuery/scoreQuery/allTermScores/data' ,
512- {
513- zxjxjhh : '' ,
514- kch : '' ,
515- kcm : '' ,
516- pageNum : 1 ,
517- pageSize : totalCount
518- }
519- ) ) as AllTermScoresDTO
520- type recordType = typeof records [ 0 ]
521- const formatRecord = ( [
522- executiveEducationPlanNumber ,
523- courseNumber ,
524- courseSequenceNumber ,
477+ const { lnList } = ( await $ . get ( url ) ) as APIAllPassingScoresDTO
478+ const records = lnList . reduce (
479+ ( acc , cur ) => acc . concat ( cur . cjList ) ,
480+ [ ] as APIAllPassingScoresDTOLnCj [ ]
481+ )
482+ const formatRecord = ( {
483+ id : {
484+ executiveEducationPlanNumber,
485+ courseNumber,
486+ // 对,你没看错,教务系统把 course 打成 coure 了
487+ coureSequenceNumber : courseSequenceNumber
488+ } ,
525489 examTime,
526- inputStatusCode ,
527- coursePropertyCode ,
490+ entryStatusCode : inputStatusCode ,
491+ courseAttributeCode : coursePropertyCode ,
528492 examTypeCode,
529- inputMethodCode ,
493+ scoreEntryModeCode : inputMethodCode ,
530494 courseScore,
531- levelCode ,
532- // 缓考是 '00'
533- unpassedReasonCode ,
495+ gradeScore : levelCode ,
496+ notByReasonCode : unpassedReasonCode ,
497+ notByReasonName : unpassedReasonExplain ,
534498 courseName,
535499 englishCourseName,
536500 credit,
537- studyHour ,
538- coursePropertyName ,
539- examTypeName ,
540- levelName ,
541- // 缓考是 '申请缓考'
542- unpassedReasonExplain
543- ] : recordType ) : CourseScoreInfo => ( {
501+ cycle : studyHour ,
502+ gradeName : levelName ,
503+ courseAttributeName : coursePropertyName ,
504+ gradePointScore
505+ } : APIAllPassingScoresDTOLnCj ) : CourseScoreInfo => ( {
544506 executiveEducationPlanNumber,
545507 executiveEducationPlanName : convertSemesterNumberToText (
546508 executiveEducationPlanNumber
@@ -556,35 +518,37 @@ async function requestAllTermsCourseScoreInfoList(): Promise<
556518 // levelCode 在本学期成绩信息接口里是 string,在全部成绩信息接口里却是 number
557519 levelCode :
558520 levelCode ?. toString ( ) ||
559- getLevelCodeByScore ( courseScore , executiveEducationPlanNumber ) ||
560- '' ,
521+ getLevelCodeByScore ( courseScore , executiveEducationPlanNumber ) ,
561522 unpassedReasonCode,
562523 courseName,
563524 englishCourseName,
564- credit,
565- studyHour,
525+ credit : Number ( credit ) ,
526+ studyHour : Number ( studyHour ) ,
566527 coursePropertyName,
567- examTypeName,
528+ examTypeName : getExamTypeNameByCode ( examTypeCode ) ,
568529 levelName :
569530 levelName ||
570- getLevelNameByScore ( courseScore , executiveEducationPlanNumber ) ||
571- '' ,
531+ getLevelNameByScore ( courseScore , executiveEducationPlanNumber ) ,
572532 unpassedReasonExplain,
573- gradePoint : getPointByScore ( courseScore , executiveEducationPlanNumber )
533+ gradePoint :
534+ gradePointScore ||
535+ getPointByScore ( courseScore , executiveEducationPlanNumber )
574536 } )
575537
576538 return pipe ( map ( formatRecord ) , filterCourseScoreInfoList ) ( records )
577539 } catch ( error ) {
578- const { title, message, html } = await LoadHTMLToDealWithError ( url )
579- Logger . error ( { title, message, html } )
580- throw new Error ( `${ title } : ${ message } ` )
540+ console . log ( error )
541+ // const { title, message, html } = await LoadHTMLToDealWithError(url)
542+ // Logger.error({ title, message, html })
543+ // throw new Error(`${title}: ${message}`)
544+ throw new Error ( error )
581545 }
582546}
583547
584548async function requestThisTermCourseScoreInfoList ( ) : Promise <
585549 CourseScoreInfo [ ]
586550> {
587- const url = '/student/integratedQuery/scoreQuery/thisTermScores/data'
551+ const url = await getThisTermScoresDataURL ( )
588552 try {
589553 const data = await $ . get ( url )
590554 const [ { list } ] : TermScoresData [ ] = data
@@ -723,7 +687,6 @@ export async function requestAccessToken(): Promise<LoginResultData> {
723687
724688export {
725689 requestThisTermCourseScoreInfoList ,
726- requestAllTermsCourseScoreInfoList ,
727690 requestCurrentSemesterStudentAcademicInfo ,
728691 requestTrainingSchemeList ,
729692 requestTrainingScheme ,
0 commit comments