You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

summary_statistic.go 5.0 kB

3 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. package models
  2. import (
  3. "fmt"
  4. "strconv"
  5. "time"
  6. "code.gitea.io/gitea/modules/timeutil"
  7. )
  8. var DomainMap = map[string]int{
  9. "大模型": 0,
  10. "ai开发工具": 1,
  11. "计算机视觉": 2,
  12. "自然语言处理": 3,
  13. "机器学习": 4,
  14. "神经网络": 5,
  15. "自动驾驶": 6,
  16. "机器人": 7,
  17. "联邦学习": 8,
  18. "数据挖掘": 9,
  19. "risc-v开发": 10,
  20. }
  21. type SummaryStatistic struct {
  22. ID int64 `xorm:"pk autoincr"`
  23. Date string `xorm:"unique(s) NOT NULL"`
  24. NumUsers int64 `xorm:"NOT NULL DEFAULT 0"`
  25. RepoSize int64 `xorm:"NOT NULL DEFAULT 0"`
  26. DatasetSize int64 `xorm:"NOT NULL DEFAULT 0"`
  27. NumOrganizations int64 `xorm:"NOT NULL DEFAULT 0"`
  28. NumModels int64 `xorm:"NOT NULL DEFAULT 0"`
  29. NumRepos int64 `xorm:"NOT NULL DEFAULT 0"`
  30. NumRepoBigModel int `xorm:"NOT NULL DEFAULT 0"`
  31. NumRepoAI int `xorm:"NOT NULL DEFAULT 0"`
  32. NumRepoVision int `xorm:"NOT NULL DEFAULT 0"`
  33. NumRepoNLP int `xorm:"NOT NULL DEFAULT 0"`
  34. NumRepoML int `xorm:"NOT NULL DEFAULT 0"`
  35. NumRepoNN int `xorm:"NOT NULL DEFAULT 0"`
  36. NumRepoAutoDrive int `xorm:"NOT NULL DEFAULT 0"`
  37. NumRepoRobot int `xorm:"NOT NULL DEFAULT 0"`
  38. NumRepoLeagueLearn int `xorm:"NOT NULL DEFAULT 0"`
  39. NumRepoDataMining int `xorm:"NOT NULL DEFAULT 0"`
  40. NumRepoRISC int `xorm:"NOT NULL DEFAULT 0"`
  41. NumRepoPublic int64 `xorm:"NOT NULL DEFAULT 0"`
  42. NumRepoPrivate int64 `xorm:"NOT NULL DEFAULT 0"`
  43. NumRepoFork int64 `xorm:"NOT NULL DEFAULT 0"`
  44. NumRepoMirror int64 `xorm:"NOT NULL DEFAULT 0"`
  45. NumRepoSelf int64 `xorm:"NOT NULL DEFAULT 0"`
  46. NumRepoOrg int64 `xorm:"NOT NULL DEFAULT 0"`
  47. CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
  48. UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
  49. }
  50. func DeleteSummaryStatisticDaily(date string) error {
  51. sess := xStatistic.NewSession()
  52. defer sess.Close()
  53. if err := sess.Begin(); err != nil {
  54. return fmt.Errorf("Begin: %v", err)
  55. }
  56. if _, err := sess.Where("date = ?", date).Delete(&SummaryStatistic{}); err != nil {
  57. return fmt.Errorf("Delete: %v", err)
  58. }
  59. if err := sess.Commit(); err != nil {
  60. sess.Close()
  61. return fmt.Errorf("Commit: %v", err)
  62. }
  63. sess.Close()
  64. return nil
  65. }
  66. func GetLatest2SummaryStatistic() ([]*SummaryStatistic, error) {
  67. summaryStatistics := make([]*SummaryStatistic, 0)
  68. err := xStatistic.Desc("created_unix").Limit(2).Find(&summaryStatistics)
  69. return summaryStatistics, err
  70. }
  71. func GetSummaryStatisticByTimeCount(beginTime time.Time, endTime time.Time) (int64, error) {
  72. summaryStatistics := new(SummaryStatistic)
  73. total, err := xStatistic.Asc("created_unix").Where("created_unix>=" + strconv.FormatInt(beginTime.Unix(), 10) + " and created_unix<" + strconv.FormatInt(endTime.Unix(), 10)).Count(summaryStatistics)
  74. return total, err
  75. }
  76. func GetSummaryStatisticByDateCount(dates []string) (int64, error) {
  77. summaryStatistics := new(SummaryStatistic)
  78. total, err := xStatistic.Asc("created_unix").In("date", dates).Count(summaryStatistics)
  79. return total, err
  80. }
  81. func GetAllSummaryStatisticByTime(beginTime time.Time, endTime time.Time) ([]*SummaryStatistic, error) {
  82. summaryStatistics := make([]*SummaryStatistic, 0)
  83. err := xStatistic.Asc("created_unix").Where("created_unix>=" + strconv.FormatInt(beginTime.Unix(), 10) + " and created_unix<" + strconv.FormatInt(endTime.Unix(), 10)).Find(&summaryStatistics)
  84. return summaryStatistics, err
  85. }
  86. func GetSummaryStatisticByTime(beginTime time.Time, endTime time.Time, page int, pageSize int) ([]*SummaryStatistic, error) {
  87. summaryStatistics := make([]*SummaryStatistic, 0)
  88. err := xStatistic.Asc("created_unix").Limit(pageSize+1, (page-1)*pageSize).Where("created_unix>=" + strconv.FormatInt(beginTime.Unix(), 10) + " and created_unix<" + strconv.FormatInt(endTime.Unix(), 10)).Find(&summaryStatistics)
  89. return summaryStatistics, err
  90. }
  91. func GetAllSummaryStatisticByDates(dates []string) ([]*SummaryStatistic, error) {
  92. summaryStatistics := make([]*SummaryStatistic, 0)
  93. err := xStatistic.Asc("created_unix").In("date", dates).Find(&summaryStatistics)
  94. return summaryStatistics, err
  95. }
  96. func GetSummaryStatisticByDates(dates []string, page int, pageSize int) ([]*SummaryStatistic, error) {
  97. summaryStatistics := make([]*SummaryStatistic, 0)
  98. err := xStatistic.Asc("created_unix").In("date", dates).Limit(pageSize+1, (page-1)*pageSize).Find(&summaryStatistics)
  99. return summaryStatistics, err
  100. }
  101. func InsertSummaryStatistic(summaryStatistic *SummaryStatistic) (int64, error) {
  102. return xStatistic.Insert(summaryStatistic)
  103. }