package controller import ( "github.com/gin-gonic/gin" "filestoragesystem/internal/middleware" "filestoragesystem/internal/utils" ) // StatsController 统计控制器 type StatsController struct { *Base } // NewStatsController 创建统计控制器 func NewStatsController(b *Base) *StatsController { return &StatsController{Base: b} } // UserStats 用户存储统计 func (ctl *StatsController) UserStats(c *gin.Context) { userID := middleware.CurrentUserID(c) stats, err := ctl.svc.Stats.UserStats(userID) if err != nil { utils.ServerError(c, err.Error()) return } utils.OK(c, stats) } // ProjectStats 项目存储统计 func (ctl *StatsController) ProjectStats(c *gin.Context) { id, ok := paramID(c) if !ok { return } userID := middleware.CurrentUserID(c) stats, err := ctl.svc.Stats.ProjectStats(userID, id, middleware.IsAdmin(c)) if err != nil { utils.FailMsg(c, err.Error()) return } utils.OK(c, stats) } // TrafficStats 流量统计 func (ctl *StatsController) TrafficStats(c *gin.Context) { userID := middleware.CurrentUserID(c) days := parseIntQuery(c, "days", 30) stats, err := ctl.svc.Stats.TrafficStats(userID, days) if err != nil { utils.ServerError(c, err.Error()) return } utils.OK(c, stats) }