辣评管理员功能系统开发(九)

 

管理员系统概述

管理员功能系统为平台提供了完整的后台管理能力,包括用户管理、投稿审核、比赛配置等。

系统目标

  • 提供完整的用户管理功能
  • 实现投稿审核和管理
  • 支持比赛配置和规则设置
  • 提供数据统计和导出

用户管理功能

用户列表管理

// ListUsers 获取用户列表
func (h *AdminHandler) ListUsers(c *gin.Context) {
    page := c.DefaultQuery("page", "1")
    pageSize := c.DefaultQuery("page_size", "10")
    
    users, total, err := h.userService.ListUsers(c, page, pageSize)
    if err != nil {
        c.JSON(400, gin.H{"error": err.Error()})
        return
    }
    
    c.JSON(200, gin.H{
        "data": users,
        "total": total,
    })
}

// BanUser 禁用用户
func (h *AdminHandler) BanUser(c *gin.Context) {
    userID := c.Param("id")
    reason := c.PostForm("reason")
    
    err := h.userService.BanUser(c, userID, reason)
    if err != nil {
        c.JSON(400, gin.H{"error": err.Error()})
        return
    }
    
    c.JSON(200, gin.H{"message": "用户已禁用"})
}

投稿管理与审核

投稿审核

// ReviewSubmission 审核投稿
func (h *AdminHandler) ReviewSubmission(c *gin.Context) {
    submissionID := c.Param("id")
    status := c.PostForm("status") // approved, rejected
    reason := c.PostForm("reason")
    
    err := h.submissionService.ReviewSubmission(c, submissionID, status, reason)
    if err != nil {
        c.JSON(400, gin.H{"error": err.Error()})
        return
    }
    
    c.JSON(200, gin.H{"message": "审核完成"})
}

比赛配置管理

创建比赛

// CreateCompetition 创建比赛
func (h *AdminHandler) CreateCompetition(c *gin.Context) {
    var req CreateCompetitionRequest
    if err := c.BindJSON(&req); err != nil {
        c.JSON(400, gin.H{"error": err.Error()})
        return
    }
    
    competition, err := h.competitionService.CreateCompetition(c, &req)
    if err != nil {
        c.JSON(400, gin.H{"error": err.Error()})
        return
    }
    
    c.JSON(200, competition)
}

规则管理系统

规则配置

// UpdateRule 更新规则
func (h *AdminHandler) UpdateRule(c *gin.Context) {
    competitionID := c.Param("id")
    var req UpdateRuleRequest
    if err := c.BindJSON(&req); err != nil {
        c.JSON(400, gin.H{"error": err.Error()})
        return
    }
    
    err := h.ruleService.UpdateRule(c, competitionID, &req)
    if err != nil {
        c.JSON(400, gin.H{"error": err.Error()})
        return
    }
    
    c.JSON(200, gin.H{"message": "规则已更新"})
}

数据统计与导出

数据导出

// ExportData 导出数据
func (h *AdminHandler) ExportData(c *gin.Context) {
    competitionID := c.Query("competition_id")
    dataType := c.Query("type") // users, submissions, comments
    
    data, err := h.statisticsService.ExportData(c, competitionID, dataType)
    if err != nil {
        c.JSON(400, gin.H{"error": err.Error()})
        return
    }
    
    c.Header("Content-Type", "application/octet-stream")
    c.Header("Content-Disposition", "attachment; filename=data.csv")
    c.Data(200, "text/csv", data)
}

总结

管理员系统为平台提供了强大的后台管理能力。

本文遵守 Attribution-NonCommercial 4.0 International 许可协议。 Attribution-NonCommercial 4.0 International