roimgr.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package roi
  2. import (
  3. "fmt"
  4. "sort"
  5. "time"
  6. "bet24.com/log"
  7. )
  8. var mgr *roiManager
  9. type roiManager struct {
  10. list map[string][]*roiInfo
  11. }
  12. func Run() {
  13. mgr = new(roiManager)
  14. mgr.list = make(map[string][]*roiInfo)
  15. }
  16. // 录入数据
  17. func (this *roiManager) insert(info *roiInfo) {
  18. defer this.clear()
  19. insert(info)
  20. }
  21. // 删除数据
  22. func (this *roiManager) del(id int) int {
  23. defer this.clear()
  24. return del(id)
  25. }
  26. // 获取列表
  27. func (this *roiManager) getList(beginTime, endTime string) []*roiInfo {
  28. var list []*roiInfo
  29. end, _ := time.Parse(dateFormat, endTime)
  30. for begin, _ := time.Parse(dateFormat, beginTime); !begin.After(end); begin = begin.AddDate(0, 0, 1) {
  31. dateStr := begin.Format(dateFormat)
  32. key := fmt.Sprintf("%s", dateStr)
  33. v, ok := this.list[key]
  34. if ok {
  35. list = append(list, v...)
  36. continue
  37. }
  38. for _, v := range getList(dateStr) {
  39. log.Debug("roimgr.getList ==> %+v", v)
  40. if time.Now().Sub(begin).Hours() < 72 {
  41. list = append(list, v)
  42. continue
  43. }
  44. key = fmt.Sprintf("%s", v.DateFlag)
  45. this.list[key] = append(this.list[key], v)
  46. list = append(list, v)
  47. }
  48. }
  49. sort.SliceStable(list, func(i, j int) bool {
  50. return list[i].DateFlag > list[j].DateFlag
  51. })
  52. return list
  53. }
  54. // 获取列表
  55. func (this *roiManager) getListByMonth() []*roiInfo {
  56. return getListByMonth()
  57. }
  58. // 清空缓存
  59. func (this *roiManager) clear() {
  60. this.list = make(map[string][]*roiInfo)
  61. return
  62. }