ai优化,删除未使用代码,提取重复代码。

This commit is contained in:
2026-08-12 11:12:23 +08:00
parent 043bf8773b
commit 60869ec214
10 changed files with 108 additions and 201 deletions
+24 -30
View File
@@ -103,6 +103,24 @@ func CreateComment(c *gin.Context) {
c.JSON(http.StatusCreated, gin.H{"data": comment})
}
// loadAndVerifyComment 加载评论并校验权限,成功返回评论,失败直接写响应并返回 nil
func loadAndVerifyComment(c *gin.Context) *models.Comment {
id := c.Param("id")
var comment models.Comment
if err := database.DB.First(&comment, id).Error; err != nil {
c.JSON(http.StatusNotFound, gin.H{"error": "评论不存在"})
return nil
}
if !canManageComment(c, &comment) {
c.JSON(http.StatusForbidden, gin.H{"error": "无权管理该评论"})
return nil
}
return &comment
}
// canManageComment 检查当前用户是否有权管理该评论(管理员始终可以,普通用户只能管理自己文章上的评论)
func canManageComment(c *gin.Context, comment *models.Comment) bool {
if isAdmin(c) {
@@ -120,16 +138,8 @@ func canManageComment(c *gin.Context, comment *models.Comment) bool {
// 审核评论
func ApproveComment(c *gin.Context) {
id := c.Param("id")
var comment models.Comment
if err := database.DB.First(&comment, id).Error; err != nil {
c.JSON(http.StatusNotFound, gin.H{"error": "评论不存在"})
return
}
if !canManageComment(c, &comment) {
c.JSON(http.StatusForbidden, gin.H{"error": "无权管理该评论"})
comment := loadAndVerifyComment(c)
if comment == nil {
return
}
@@ -144,16 +154,8 @@ func ApproveComment(c *gin.Context) {
// 标记为垃圾评论
func MarkSpamComment(c *gin.Context) {
id := c.Param("id")
var comment models.Comment
if err := database.DB.First(&comment, id).Error; err != nil {
c.JSON(http.StatusNotFound, gin.H{"error": "评论不存在"})
return
}
if !canManageComment(c, &comment) {
c.JSON(http.StatusForbidden, gin.H{"error": "无权管理该评论"})
comment := loadAndVerifyComment(c)
if comment == nil {
return
}
@@ -168,16 +170,8 @@ func MarkSpamComment(c *gin.Context) {
// 删除评论
func DeleteComment(c *gin.Context) {
id := c.Param("id")
var comment models.Comment
if err := database.DB.First(&comment, id).Error; err != nil {
c.JSON(http.StatusNotFound, gin.H{"error": "评论不存在"})
return
}
if !canManageComment(c, &comment) {
c.JSON(http.StatusForbidden, gin.H{"error": "无权管理该评论"})
comment := loadAndVerifyComment(c)
if comment == nil {
return
}