From e6efa896a18df82ce974a28dc9a76dad2facb3fc Mon Sep 17 00:00:00 2001 From: zhouwentao Date: Sat, 24 Jan 2026 16:44:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E6=89=B9=E6=AC=A1=20?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E4=B8=93=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../user/controller/user_major_controller.go | 1 + server/modules/yx/dto/yx_school_major_dto.go | 1 + .../yx/mapper/yx_calculation_major_mapper.go | 10 +++++++++- .../service/yx_calculation_major_service.go | 19 +++++++++++++++++-- 4 files changed, 28 insertions(+), 3 deletions(-) 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 {