golang-yitisheng-server/server/modules/user/controller/score_controller.go

72 lines
2.0 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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)
}