72 lines
1.9 KiB
Go
72 lines
1.9 KiB
Go
// Package mapper 数据访问层
|
|
package mapper
|
|
|
|
import (
|
|
"server/common"
|
|
"server/modules/yx/dto"
|
|
"server/modules/yx/entity"
|
|
)
|
|
|
|
type YxSchoolMajorMapper struct {
|
|
*common.BaseMapper[entity.YxSchoolMajor]
|
|
}
|
|
|
|
func NewYxSchoolMajorMapper() *YxSchoolMajorMapper {
|
|
return &YxSchoolMajorMapper{
|
|
BaseMapper: common.NewBaseMapper[entity.YxSchoolMajor](),
|
|
}
|
|
}
|
|
|
|
// SelectSchoolMajor 查询院校专业信息(包含学校信息)
|
|
func (m *YxSchoolMajorMapper) SelectSchoolMajor(query dto.SchoolMajorQuery) ([]dto.SchoolMajorDTO, error) {
|
|
var items []dto.SchoolMajorDTO
|
|
|
|
queryBuilder := m.GetDB().Table("yx_school_major sm").
|
|
Select(`
|
|
sm.school_code,
|
|
sc.school_name,
|
|
sm.major_code,
|
|
sm.major_name,
|
|
sm.major_type,
|
|
sm.major_type_child,
|
|
sm.plan_num,
|
|
sm.main_subjects,
|
|
sm.limitation,
|
|
sm.chinese_score_limitation,
|
|
sm.english_score_limitation,
|
|
sm.cultural_score_limitation,
|
|
sm.professional_score_limitation,
|
|
sm.enrollment_code,
|
|
sm.tuition,
|
|
sm.detail,
|
|
sm.category,
|
|
sm.batch,
|
|
sm.rules_enroll_probability,
|
|
sm.probability_operator,
|
|
sm.private_rules_enroll_probability,
|
|
sm.private_probability_operator,
|
|
sm.rules_enroll_probability_sx,
|
|
sm.kslx,
|
|
sm.state
|
|
`).
|
|
Joins("LEFT JOIN (SELECT school_id,school_name,school_code FROM yx_school_child group by school_code) sc ON sc.school_code = sm.school_code").
|
|
Joins("LEFT JOIN yx_school s ON s.id = sc.school_id").
|
|
Where("sm.state > 0")
|
|
|
|
if query.MajorType != "" {
|
|
queryBuilder = queryBuilder.Where("sm.major_type = ?", query.MajorType)
|
|
}
|
|
if query.Category != "" {
|
|
queryBuilder = queryBuilder.Where("sm.category = ?", query.Category)
|
|
}
|
|
if len(query.MajorTypeChildren) > 0 {
|
|
queryBuilder = queryBuilder.Where("sm.major_type_child IN ?", query.MajorTypeChildren)
|
|
}
|
|
if query.MainSubjects != "" {
|
|
queryBuilder = queryBuilder.Where("sm.main_subjects = ?", query.MainSubjects)
|
|
}
|
|
|
|
err := queryBuilder.Scan(&items).Error
|
|
return items, err
|
|
}
|