init
This commit is contained in:
114
internal/handler/score_handler.go
Normal file
114
internal/handler/score_handler.go
Normal file
@@ -0,0 +1,114 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"exam_registration/internal/model"
|
||||
"exam_registration/internal/service"
|
||||
"exam_registration/pkg/response"
|
||||
"github.com/gin-gonic/gin"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
type ScoreHandler struct {
|
||||
scoreService *service.ScoreService
|
||||
}
|
||||
|
||||
func NewScoreHandler() *ScoreHandler {
|
||||
return &ScoreHandler{
|
||||
scoreService: &service.ScoreService{},
|
||||
}
|
||||
}
|
||||
|
||||
// CreateScore 录入成绩
|
||||
func (h *ScoreHandler) CreateScore(c *gin.Context) {
|
||||
var score model.ExamScore
|
||||
if err := c.ShouldBindJSON(&score); err != nil {
|
||||
response.Error(c, response.BAD_REQUEST, "参数错误")
|
||||
return
|
||||
}
|
||||
|
||||
if err := h.scoreService.CreateScore(&score); err != nil {
|
||||
response.Error(c, response.ERROR, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
response.Success(c, score)
|
||||
}
|
||||
|
||||
// BatchCreateScores 批量录入成绩
|
||||
func (h *ScoreHandler) BatchCreateScores(c *gin.Context) {
|
||||
var scores []model.ExamScore
|
||||
if err := c.ShouldBindJSON(&scores); err != nil {
|
||||
response.Error(c, response.BAD_REQUEST, "参数错误")
|
||||
return
|
||||
}
|
||||
|
||||
if err := h.scoreService.BatchCreateScores(scores); err != nil {
|
||||
response.Error(c, response.ERROR, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
response.Success(c, nil)
|
||||
}
|
||||
|
||||
// GetScoreByUserAndExam 查询个人成绩
|
||||
func (h *ScoreHandler) GetScoreByUserAndExam(c *gin.Context) {
|
||||
userID, _ := c.Get("user_id")
|
||||
examID, _ := strconv.ParseUint(c.Param("exam_id"), 10, 64)
|
||||
|
||||
score, err := h.scoreService.GetScoreByUserAndExam(userID.(uint64), examID)
|
||||
if err != nil {
|
||||
response.Error(c, response.ERROR, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
response.Success(c, score)
|
||||
}
|
||||
|
||||
// GetScoreList 获取成绩列表(管理员)
|
||||
func (h *ScoreHandler) GetScoreList(c *gin.Context) {
|
||||
examIDStr := c.Query("exam_id")
|
||||
page, _ := strconv.Atoi(c.DefaultQuery("page", "1"))
|
||||
pageSize, _ := strconv.Atoi(c.DefaultQuery("pageSize", "10"))
|
||||
|
||||
var examID int
|
||||
if examIDStr != "" {
|
||||
examID, _ = strconv.Atoi(examIDStr)
|
||||
}
|
||||
|
||||
scores, total, err := h.scoreService.GetScoreList(examID, page, pageSize)
|
||||
if err != nil {
|
||||
response.Error(c, response.ERROR, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
response.Success(c, gin.H{
|
||||
"list": scores,
|
||||
"total": total,
|
||||
"page": page,
|
||||
"pageSize": pageSize,
|
||||
})
|
||||
}
|
||||
|
||||
// PublishScore 发布成绩
|
||||
func (h *ScoreHandler) PublishScore(c *gin.Context) {
|
||||
id, _ := strconv.ParseUint(c.Param("id"), 10, 64)
|
||||
|
||||
if err := h.scoreService.PublishScore(id); err != nil {
|
||||
response.Error(c, response.ERROR, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
response.Success(c, nil)
|
||||
}
|
||||
|
||||
// DeleteScore 删除成绩
|
||||
func (h *ScoreHandler) DeleteScore(c *gin.Context) {
|
||||
id, _ := strconv.ParseUint(c.Param("id"), 10, 64)
|
||||
|
||||
if err := h.scoreService.DeleteScore(id); err != nil {
|
||||
response.Error(c, response.ERROR, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
response.Success(c, nil)
|
||||
}
|
||||
Reference in New Issue
Block a user