feat: opt page style

This commit is contained in:
engigu
2025-12-25 20:28:20 +08:00
parent 28b365991b
commit 52068279c6
11 changed files with 634 additions and 468 deletions
+23 -7
View File
@@ -72,11 +72,19 @@ type DailyStats struct {
Failed int `json:"failed"`
}
// GetSendStats 获取最近30天发送统计
// GetSendStats 获取发送统计
func (dc *DashboardController) GetSendStats(c *gin.Context) {
// 获取最近30天的日期范围
// 获取天数参数,默认30天
days := 30
if d := c.Query("days"); d != "" {
if parsed, err := utils.ParseInt(d); err == nil && parsed > 0 && parsed <= 90 {
days = parsed
}
}
// 获取日期范围
now := time.Now()
startDay := now.AddDate(0, 0, -29).Format("2006-01-02")
startDay := now.AddDate(0, 0, -(days - 1)).Format("2006-01-02")
var stats []models.SendStats
database.DB.Where("day >= ?", startDay).Find(&stats)
@@ -97,8 +105,8 @@ func (dc *DashboardController) GetSendStats(c *gin.Context) {
}
// 填充缺失的日期
result := make([]DailyStats, 0, 30)
for i := 29; i >= 0; i-- {
result := make([]DailyStats, 0, days)
for i := days - 1; i >= 0; i-- {
day := now.AddDate(0, 0, -i).Format("2006-01-02")
if ds, ok := dayMap[day]; ok {
result = append(result, *ds)
@@ -122,10 +130,18 @@ type TaskStats struct {
Count int `json:"count"`
}
// GetTaskStats 获取最近30天任务执行占比
// GetTaskStats 获取任务执行占比
func (dc *DashboardController) GetTaskStats(c *gin.Context) {
// 获取天数参数,默认30天
days := 30
if d := c.Query("days"); d != "" {
if parsed, err := utils.ParseInt(d); err == nil && parsed > 0 && parsed <= 90 {
days = parsed
}
}
now := time.Now()
startDay := now.AddDate(0, 0, -29).Format("2006-01-02")
startDay := now.AddDate(0, 0, -(days - 1)).Format("2006-01-02")
// 按 task_id 聚合统计
var results []struct {
+5
View File
@@ -9,6 +9,11 @@ import (
"github.com/gin-gonic/gin"
)
// ParseInt 解析字符串为整数
func ParseInt(s string) (int, error) {
return strconv.Atoi(s)
}
// Pagination 分页参数
type Pagination struct {
Page int