|
- package models
-
- import (
- "fmt"
- "strconv"
- "time"
-
- "code.gitea.io/gitea/modules/timeutil"
- )
-
- var DomainMap = map[string]int{
- "大模型": 0,
- "ai开发工具": 1,
- "计算机视觉": 2,
- "自然语言处理": 3,
- "机器学习": 4,
- "神经网络": 5,
- "自动驾驶": 6,
- "机器人": 7,
- "联邦学习": 8,
- "数据挖掘": 9,
- "risc-v开发": 10,
- }
-
- type SummaryStatistic struct {
- ID int64 `xorm:"pk autoincr"`
- Date string `xorm:"unique(s) NOT NULL"`
- NumUsers int64 `xorm:"NOT NULL DEFAULT 0"`
- RepoSize int64 `xorm:"NOT NULL DEFAULT 0"`
- DatasetSize int64 `xorm:"NOT NULL DEFAULT 0"`
- NumOrganizations int64 `xorm:"NOT NULL DEFAULT 0"`
- NumModels int64 `xorm:"NOT NULL DEFAULT 0"`
- NumRepos int64 `xorm:"NOT NULL DEFAULT 0"`
- NumRepoBigModel int `xorm:"NOT NULL DEFAULT 0"`
- NumRepoAI int `xorm:"NOT NULL DEFAULT 0"`
- NumRepoVision int `xorm:"NOT NULL DEFAULT 0"`
- NumRepoNLP int `xorm:"NOT NULL DEFAULT 0"`
- NumRepoML int `xorm:"NOT NULL DEFAULT 0"`
- NumRepoNN int `xorm:"NOT NULL DEFAULT 0"`
- NumRepoAutoDrive int `xorm:"NOT NULL DEFAULT 0"`
- NumRepoRobot int `xorm:"NOT NULL DEFAULT 0"`
- NumRepoLeagueLearn int `xorm:"NOT NULL DEFAULT 0"`
- NumRepoDataMining int `xorm:"NOT NULL DEFAULT 0"`
- NumRepoRISC int `xorm:"NOT NULL DEFAULT 0"`
- NumRepoPublic int64 `xorm:"NOT NULL DEFAULT 0"`
- NumRepoPrivate int64 `xorm:"NOT NULL DEFAULT 0"`
- NumRepoFork int64 `xorm:"NOT NULL DEFAULT 0"`
- NumRepoMirror int64 `xorm:"NOT NULL DEFAULT 0"`
- NumRepoSelf int64 `xorm:"NOT NULL DEFAULT 0"`
- NumRepoOrg int64 `xorm:"NOT NULL DEFAULT 0"`
- CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
- UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
- }
-
- func DeleteSummaryStatisticDaily(date string) error {
- sess := xStatistic.NewSession()
- defer sess.Close()
- if err := sess.Begin(); err != nil {
- return fmt.Errorf("Begin: %v", err)
- }
-
- if _, err := sess.Where("date = ?", date).Delete(&SummaryStatistic{}); err != nil {
- return fmt.Errorf("Delete: %v", err)
- }
-
- if err := sess.Commit(); err != nil {
- sess.Close()
- return fmt.Errorf("Commit: %v", err)
- }
-
- sess.Close()
- return nil
- }
-
- func GetLatest2SummaryStatistic() ([]*SummaryStatistic, error) {
- summaryStatistics := make([]*SummaryStatistic, 0)
- err := xStatistic.Desc("created_unix").Limit(2).Find(&summaryStatistics)
- return summaryStatistics, err
- }
-
- func GetSummaryStatisticByTimeCount(beginTime time.Time, endTime time.Time) (int64, error) {
- summaryStatistics := new(SummaryStatistic)
- total, err := xStatistic.Asc("created_unix").Where("created_unix>=" + strconv.FormatInt(beginTime.Unix(), 10) + " and created_unix<" + strconv.FormatInt(endTime.Unix(), 10)).Count(summaryStatistics)
- return total, err
- }
-
- func GetSummaryStatisticByDateCount(dates []string) (int64, error) {
- summaryStatistics := new(SummaryStatistic)
- total, err := xStatistic.Asc("created_unix").In("date", dates).Count(summaryStatistics)
- return total, err
- }
-
-
- func GetAllSummaryStatisticByTime(beginTime time.Time, endTime time.Time) ([]*SummaryStatistic, error) {
- summaryStatistics := make([]*SummaryStatistic, 0)
- err := xStatistic.Asc("created_unix").Where("created_unix>=" + strconv.FormatInt(beginTime.Unix(), 10) + " and created_unix<" + strconv.FormatInt(endTime.Unix(), 10)).Find(&summaryStatistics)
-
- return summaryStatistics, err
- }
-
- func GetSummaryStatisticByTime(beginTime time.Time, endTime time.Time, page int, pageSize int) ([]*SummaryStatistic, error) {
- summaryStatistics := make([]*SummaryStatistic, 0)
- 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)
-
- return summaryStatistics, err
- }
-
- func GetAllSummaryStatisticByDates(dates []string) ([]*SummaryStatistic, error) {
- summaryStatistics := make([]*SummaryStatistic, 0)
- err := xStatistic.Asc("created_unix").In("date", dates).Find(&summaryStatistics)
- return summaryStatistics, err
- }
-
- func GetSummaryStatisticByDates(dates []string, page int, pageSize int) ([]*SummaryStatistic, error) {
- summaryStatistics := make([]*SummaryStatistic, 0)
- err := xStatistic.Asc("created_unix").In("date", dates).Limit(pageSize+1, (page-1)*pageSize).Find(&summaryStatistics)
- return summaryStatistics, err
- }
-
- func InsertSummaryStatistic(summaryStatistic *SummaryStatistic) (int64, error) {
- return xStatistic.Insert(summaryStatistic)
- }
|