/* * Shutdown Statistics API List * /dashboard/shutdownStatistics/date - GET shutdown统计最新日期 * /dashboard/shutdownStatistics - GET shutdown统计 */ package controllers import ( "fwh-toolbox-server/dto" "fwh-toolbox-server/services" "time" "github.com/gofiber/fiber/v2" ) // 获取shutdown统计最新日期 // /dashboard/shutdownStatistics/date func GetShutdownStatisticsDate(c *fiber.Ctx) error { date, err := services.GetShutdownStatisticsDate() if err != nil { return Error(c, "Shutdown statistics date read failed.") } return Success(c, date) } // 获取shutdown统计 // /dashboard/shutdownStatistics func GetShutdownStatistics(c *fiber.Ctx) error { date := c.Query("date", "") var pDate *string = nil if date != "" { pDate = &date } // 提取月份 t, err := time.Parse(time.DateOnly, date) if err != nil { return Fail(c, "Invalid request para date.") } month := t.Month() data, err := services.GetShutdownStatistics(pDate) if err != nil { return Error(c, "Shutdown statistics read failed.") } // 转换数据输出结构 return Success(c, dto.ShutdownStatisticsInfo{ Date: data.Date, DayTotal: dto.ShutdownStatisticsDayItem{ Count: data.Weekly.ALL[6], Growth: int(int64(data.Weekly.ALL[6]) - int64(data.Weekly.ALL[5])), Weekly: data.Weekly.ALL, MonthCount: data.Yearly.ALL[month-1], Year: data.Yearly.ALL, }, UsTotal: dto.ShutdownStatisticsDayItem{ Count: data.Weekly.US[6], Growth: int(int64(data.Weekly.US[6]) - int64(data.Weekly.US[5])), Weekly: data.Weekly.US, MonthCount: data.Yearly.US[month-1], Year: data.Yearly.US, }, AuTotal: dto.ShutdownStatisticsDayItem{ Count: data.Weekly.AU[6], Growth: int(int64(data.Weekly.AU[6]) - int64(data.Weekly.AU[5])), Weekly: data.Weekly.AU, MonthCount: data.Yearly.AU[month-1], Year: data.Yearly.AU, }, }) }