package controller import ( "server/common" user_service "server/modules/user/service" yxDto "server/modules/yx/dto" yx_service "server/modules/yx/service" "strconv" "github.com/gin-gonic/gin" ) type UserMajorController struct { userScoreService *user_service.UserScoreService yxUserScoreService *yx_service.YxUserScoreService yxCalculationMajorService *yx_service.YxCalculationMajorService } func NewUserMajorController() *UserMajorController { return &UserMajorController{ yxUserScoreService: yx_service.NewYxUserScoreService(), userScoreService: user_service.NewUserScoreService(), yxCalculationMajorService: yx_service.NewYxCalculationMajorService(), } } // RegisterRoutes 注册路由 func (ctrl *UserMajorController) RegisterRoutes(rg *gin.RouterGroup) { group := rg.Group("/user/major") { // group.GET("/", ctrl.GetActive) // group.GET("/:id", ctrl.GetByID) group.GET("/list", ctrl.List) } } // List 获取当前用户可检索列表 // @Summary 获取当前用户可检索列表 // @Tags 用户专业 // @Param page query int false "页码" default(1) // @Param size query int false "每页数量" default(10) // @Success 200 {object} common.Response // @Router /user/major/list [get] func (ctrl *UserMajorController) List(c *gin.Context) { page, _ := strconv.Atoi(c.DefaultQuery("page", "1")) size, _ := strconv.Atoi(c.DefaultQuery("size", "10")) schoolMajorQuery := yxDto.SchoolMajorQuery{ Page: page, Size: size, LoginUserId: common.GetLoginUser(c).ID, } userScoreVO, err := ctrl.userScoreService.GetActiveByID(schoolMajorQuery.LoginUserId) if err != nil { common.Error(c, 500, err.Error()) return } schoolMajorQuery.UserScoreVO = userScoreVO items, total, err := ctrl.yxCalculationMajorService.RecommendMajorList(schoolMajorQuery) if err != nil { common.Error(c, 500, err.Error()) return } common.SuccessPage(c, items, total, page, size) }