package controller import ( "server/common" user_service "server/modules/user/service" "server/modules/yx/dto" yx_service "server/modules/yx/service" "github.com/gin-gonic/gin" ) type UserScoreController struct { userScoreService *user_service.UserScoreService yxUserScoreService *yx_service.YxUserScoreService } func NewUserScoreController() *UserScoreController { return &UserScoreController{ yxUserScoreService: yx_service.NewYxUserScoreService(), userScoreService: user_service.NewUserScoreService(), } } // RegisterRoutes 注册路由 func (ctrl *UserScoreController) RegisterRoutes(rg *gin.RouterGroup) { group := rg.Group("/user/score") { group.GET("/:id", ctrl.Get) group.POST("/save-score", ctrl.SaveUserScore) // 新增接口 } } // SaveUserScore 保存用户成绩 // @Summary 保存用户成绩 // @Tags 用户分数 // @Param request body dto.SaveScoreRequest true "成绩信息" // @Success 200 {object} common.Response // @Router /user/score/save-score [post] func (ctrl *UserScoreController) SaveUserScore(c *gin.Context) { var req dto.SaveScoreRequest if err := c.ShouldBindJSON(&req); err != nil { common.Error(c, 400, "参数错误") return } if err := req.Validate(); err != nil { common.Error(c, 400, "校验失败: "+err.Error()) return } req.CreateBy = common.GetLoginUser(c).ID // 直接调用 Service,不处理具体业务逻辑 result, err := ctrl.userScoreService.SaveUserScore(&req) if err != nil { common.Error(c, 500, "保存失败: "+err.Error()) return } common.Success(c, result) } // Get 获取当前用户的当前分数 // @Summary 获取当前用户的当前分数 // @Tags 用户分数 // @Success 200 {object} common.Response // @Router /user/score/{id} [get] func (ctrl *UserScoreController) Get(c *gin.Context) { item, err := ctrl.userScoreService.GetActiveByID(common.GetLoginUser(c).ID) if err != nil { common.Error(c, 404, "未找到记录") return } common.Success(c, item) }