72 lines
2.0 KiB
Go
72 lines
2.0 KiB
Go
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)
|
||
}
|