feat: 评论系统补充功能完成——图片上传、后台管理、通知跳转高亮
- 评论图片上传(LV4+,经验≥1500),JPEG/PNG 自动转 WebP,二进制搜索质量优化 - 后台评论管理页面,支持关键词搜索、分页、删除,侧边栏新增入口 - 通知跳转高亮:评论通知 RelatedID 改为 postID,消息页链接到 #comments,前端自动滚动 - 新增 adminCommentUseCase/commentStore 接口(遵循 ISP),AdminCommentRow 移至 model 层 - 前端 @mention 联想/图片上传光标插入/评论展开收起/内联回复交互完善
This commit is contained in:
@ -30,6 +30,7 @@ func setupAdminRoutes(r *gin.Engine, cfg *config.Config, d *dependencies) {
|
||||
middleware.RequirePageRole(model.RoleOwner))
|
||||
adminPages.GET("/energy", d.adminEnergyCtrl.EnergyPage)
|
||||
adminPages.GET("/energy/logs", d.adminEnergyCtrl.EnergyLogPage)
|
||||
adminPages.GET("/comments", d.adminCommentCtrl.CommentsPage)
|
||||
}
|
||||
|
||||
// --- 管理后台 API ---
|
||||
@ -85,4 +86,15 @@ func setupAdminRoutes(r *gin.Engine, cfg *config.Config, d *dependencies) {
|
||||
middleware.RequireMinRole(model.RoleOwner))
|
||||
adminEnergyAPI.GET("/logs", d.adminEnergyCtrl.ListEnergyLogs)
|
||||
}
|
||||
|
||||
// --- 评论管理 API(admin+) ---
|
||||
adminCommentAPI := r.Group("/api/admin/comments")
|
||||
adminCommentAPI.Use(d.authMdw.Required())
|
||||
adminCommentAPI.Use(middleware.RequireMinRole(model.RoleAdmin))
|
||||
adminCommentAPI.Use(d.authMdw.BannedWriteGuard())
|
||||
adminCommentAPI.Use(middleware.CSRF(cfg))
|
||||
{
|
||||
adminCommentAPI.GET("", d.adminCommentCtrl.ListComments)
|
||||
adminCommentAPI.DELETE("/:id", d.adminCommentCtrl.Delete)
|
||||
}
|
||||
}
|
||||
|
||||
@ -116,5 +116,6 @@ func setupAPIRoutes(r *gin.Engine, cfg *config.Config, d *dependencies) {
|
||||
commentsAPI.POST("/comments/:id/reply", d.commentCtrl.CreateReply)
|
||||
commentsAPI.DELETE("/comments/:id", d.commentCtrl.Delete)
|
||||
commentsAPI.GET("/users/search", d.commentCtrl.SearchUsers)
|
||||
commentsAPI.POST("/comments/upload-image", d.commentCtrl.UploadImage)
|
||||
}
|
||||
}
|
||||
|
||||
@ -36,6 +36,7 @@ type dependencies struct {
|
||||
energyService *service.EnergyService
|
||||
commentCtrl *controller.CommentController
|
||||
commentService *service.CommentService
|
||||
adminCommentCtrl *adminCtrl.AdminCommentController
|
||||
}
|
||||
|
||||
func buildDepsCore(db *gorm.DB, cfg *config.Config, siteSettings *config.SiteSettings, redisClient *redis.Client) (
|
||||
|
||||
@ -64,6 +64,9 @@ func buildDeps(db *gorm.DB, cfg *config.Config, siteSettings *config.SiteSetting
|
||||
commentService := service.NewCommentService(commentRepo, notificationService)
|
||||
commentCtrl := controller.NewCommentController(commentService)
|
||||
|
||||
// 后台评论管理
|
||||
adminCommentCtrl := adminCtrl.NewAdminCommentController(commentService)
|
||||
|
||||
// 用户空间
|
||||
spaceService := service.NewSpaceService(userRepo, postRepo)
|
||||
spaceCtrl := controller.NewSpaceController(spaceService)
|
||||
@ -84,5 +87,6 @@ func buildDeps(db *gorm.DB, cfg *config.Config, siteSettings *config.SiteSetting
|
||||
energyService: energyService,
|
||||
commentCtrl: commentCtrl,
|
||||
commentService: commentService,
|
||||
adminCommentCtrl: adminCommentCtrl,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user