clear_statsinfo.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package cron
  2. import (
  3. "time"
  4. "github.com/bjdgyc/anylink/base"
  5. "github.com/bjdgyc/anylink/dbdata"
  6. )
  7. const siLifeDay = 30
  8. // 清除图表数据
  9. func ClearStatsInfo() {
  10. _, timesUp := isClearTime()
  11. if !timesUp {
  12. return
  13. }
  14. ts := getTimeAgo(siLifeDay)
  15. for _, item := range dbdata.StatsInfoIns.Actions {
  16. affected, err := dbdata.StatsInfoIns.ClearStatsInfo(item, ts)
  17. base.Info("Cron ClearStatsInfo "+item+": ", affected, err)
  18. }
  19. }
  20. // 是否到了"清理时间"
  21. func isClearTime() (int, bool) {
  22. dataLog, err := dbdata.SettingGetAuditLog()
  23. if err != nil {
  24. base.Error("Cron SettingGetLog: ", err)
  25. return -1, false
  26. }
  27. currentTime := time.Now().Format("15:04")
  28. // 未到"清理时间"时, 则返回
  29. if dataLog.ClearTime != currentTime {
  30. return -1, false
  31. }
  32. return dataLog.LifeDay, true
  33. }
  34. // 根据存储时长,获取清理日期
  35. func getTimeAgo(days int) string {
  36. var timeS string
  37. ts := time.Now().AddDate(0, 0, -days)
  38. tsZero := time.Date(ts.Year(), ts.Month(), ts.Day(), 0, 0, 0, 0, time.Local)
  39. timeS = tsZero.Format(dbdata.LayoutTimeFormat)
  40. return timeS
  41. }