diff --git a/server/modules/user/controller/user_major_controller.go b/server/modules/user/controller/user_major_controller.go index bf67d6b..4443386 100644 --- a/server/modules/user/controller/user_major_controller.go +++ b/server/modules/user/controller/user_major_controller.go @@ -95,6 +95,7 @@ func (ctrl *UserMajorController) List(c *gin.Context) { Size: size, SchoolCode: c.Query("schoolCode"), Batch: c.DefaultQuery("batch", ""), + Batch2: c.DefaultQuery("batch2", ""), Probability: c.DefaultQuery("probability", ""), LoginUserId: common.GetLoginUser(c).ID, } diff --git a/server/modules/yx/dto/yx_school_major_dto.go b/server/modules/yx/dto/yx_school_major_dto.go index daa1dec..0ba3f2a 100644 --- a/server/modules/yx/dto/yx_school_major_dto.go +++ b/server/modules/yx/dto/yx_school_major_dto.go @@ -103,6 +103,7 @@ type SchoolMajorQuery struct { MajorType string `json:"majorType"` // 对应 major_type Category string `json:"category"` // 对应 category Batch string `json:"batch"` // 对应 批次 + Batch2 string `json:"batch2"` // 对应 批次2 MajorTypeChildren []string `json:"majorTypeChildren"` // 对应 major_type_child in (...) MainSubjects string `json:"mainSubjects"` // 对应 main_subjects Probability string `json:"probability"` // 对应 录取概率类型 diff --git a/server/modules/yx/mapper/yx_calculation_major_mapper.go b/server/modules/yx/mapper/yx_calculation_major_mapper.go index 24ee480..7fe4fdc 100644 --- a/server/modules/yx/mapper/yx_calculation_major_mapper.go +++ b/server/modules/yx/mapper/yx_calculation_major_mapper.go @@ -79,6 +79,12 @@ func (m *YxCalculationMajorMapper) FindRecommendList(query dto.SchoolMajorQuery) params = append(params, v) } } + + if "" != query.Batch { + baseSQL += " AND cm.batch = ?" + params = append(params, query.Batch) + } + if query.MainSubjects != "" { baseSQL += " AND cm.main_subjects = ?" params = append(params, query.MainSubjects) @@ -238,7 +244,9 @@ func (m *YxCalculationMajorMapper) FindRecommendList(query dto.SchoolMajorQuery) if queryErr != nil { return nil, 0, dto.ProbabilityCountDTO{}, fmt.Errorf("failed to query recommend major list: %w", queryErr) } - + if items == nil { + items = []dto.UserMajorDTO{} + } return items, total, probCount, nil } diff --git a/server/modules/yx/service/yx_calculation_major_service.go b/server/modules/yx/service/yx_calculation_major_service.go index a52bb95..b015566 100644 --- a/server/modules/yx/service/yx_calculation_major_service.go +++ b/server/modules/yx/service/yx_calculation_major_service.go @@ -25,9 +25,24 @@ func (s *YxCalculationMajorService) RecommendMajorList(schoolMajorQuery yxDto.Sc if schoolMajorQuery.UserScoreVO.ProfessionalCategory == "" { return nil, 0, dto.ProbabilityCountDTO{}, fmt.Errorf("专业类型错误") } - if schoolMajorQuery.Batch != "" { - schoolMajorQuery.Batch = strings.ReplaceAll(schoolMajorQuery.Batch, "批", "") + + // 根据批次类型设置批次 985/211/双一流 -> 提前批, 公办本科 -> 本科A段, 民办本科 -> 本科B段, 体育类 -> 本科 + if schoolMajorQuery.Batch != "" && "本科提前" == schoolMajorQuery.Batch { + return []yxDto.UserMajorDTO{}, 0, dto.ProbabilityCountDTO{}, nil + } else if schoolMajorQuery.Batch != "" && "高职高专" != schoolMajorQuery.Batch { + if schoolMajorQuery.Batch2 == "双一流" { + schoolMajorQuery.Batch = "提前批" + } else if schoolMajorQuery.Batch2 == "公办本科" { + schoolMajorQuery.Batch = "本科A段" + } else if schoolMajorQuery.Batch2 == "民办本科" { + schoolMajorQuery.Batch = "本科B段" + } else if schoolMajorQuery.MajorType == "体育类" { + schoolMajorQuery.Batch = "本科" + } + } else { + schoolMajorQuery.Batch = "高职高专" } + // if len(schoolMajorQuery.MajorTypeChildren) > 0 && "高职高专" != schoolMajorQuery.Batch { // if "表演类" == schoolMajorQuery.MajorType {