Browse Source

Merge remote-tracking branch 'origin/V20211115' into zouap_static

pull/851/head
zouap 3 years ago
parent
commit
0cbfdedf94
3 changed files with 25 additions and 13 deletions
  1. +1
    -0
      models/repo_statistic.go
  2. +13
    -6
      routers/api/v1/repo/repo_dashbord.go
  3. +11
    -7
      routers/repo/repo_statistic.go

+ 1
- 0
models/repo_statistic.go View File

@@ -12,6 +12,7 @@ type RepoStatistic struct {
ID int64 `xorm:"pk autoincr" json:"-"` ID int64 `xorm:"pk autoincr" json:"-"`
RepoID int64 `xorm:"unique(s) NOT NULL" json:"repo_id"` RepoID int64 `xorm:"unique(s) NOT NULL" json:"repo_id"`
Name string `xorm:"INDEX" json:"name"` Name string `xorm:"INDEX" json:"name"`
OwnerName string `json:"ownerName"`
IsPrivate bool `json:"isPrivate"` IsPrivate bool `json:"isPrivate"`
Date string `xorm:"unique(s) NOT NULL" json:"date"` Date string `xorm:"unique(s) NOT NULL" json:"date"`
NumWatches int64 `xorm:"NOT NULL DEFAULT 0" json:"watch"` NumWatches int64 `xorm:"NOT NULL DEFAULT 0" json:"watch"`


+ 13
- 6
routers/api/v1/repo/repo_dashbord.go View File

@@ -243,13 +243,20 @@ func allProjectsPeroidHeader(ctx *context.Context) []string {
} }


func allProjectsPeroidValues(rs *models.RepoStatistic, ctx *context.Context) []string { func allProjectsPeroidValues(rs *models.RepoStatistic, ctx *context.Context) []string {
return []string{strconv.FormatInt(rs.RepoID, 10), rs.Name, getIsPrivateDisplay(rs.IsPrivate, ctx), strconv.FormatFloat(rs.RadarTotal, 'f', 2, 64),
return []string{strconv.FormatInt(rs.RepoID, 10), constructDistinctName(rs), getIsPrivateDisplay(rs.IsPrivate, ctx), strconv.FormatFloat(rs.RadarTotal, 'f', 2, 64),
strconv.FormatInt(rs.NumVisits, 10), strconv.FormatInt(rs.NumDownloads, 10), strconv.FormatInt(rs.NumPulls, 10), strconv.FormatInt(rs.NumCommits, 10), strconv.FormatInt(rs.NumVisits, 10), strconv.FormatInt(rs.NumDownloads, 10), strconv.FormatInt(rs.NumPulls, 10), strconv.FormatInt(rs.NumCommits, 10),
strconv.FormatInt(rs.NumWatches, 10), strconv.FormatInt(rs.NumStars, 10), strconv.FormatInt(rs.NumForks, 10), strconv.FormatInt(rs.NumIssues, 10), strconv.FormatInt(rs.NumWatches, 10), strconv.FormatInt(rs.NumStars, 10), strconv.FormatInt(rs.NumForks, 10), strconv.FormatInt(rs.NumIssues, 10),
strconv.FormatInt(rs.NumClosedIssues, 10), strconv.FormatInt(rs.NumContributor, 10), strconv.FormatInt(rs.NumClosedIssues, 10), strconv.FormatInt(rs.NumContributor, 10),
} }
} }


func constructDistinctName(rs *models.RepoStatistic) string {
if rs.OwnerName == "" {
return rs.Name
}
return rs.OwnerName + "/" + rs.Name
}

func getIsPrivateDisplay(private bool, ctx *context.Context) string { func getIsPrivateDisplay(private bool, ctx *context.Context) string {
if private { if private {
return ctx.Tr("admin.repos.yes") return ctx.Tr("admin.repos.yes")
@@ -390,11 +397,11 @@ func generateCountSql(beginTime time.Time, endTime time.Time, latestDate string,
} }


func generateTypeAllSql(beginTime time.Time, endTime time.Time, latestDate string, q string, orderBy string, page int, pageSize int) string { func generateTypeAllSql(beginTime time.Time, endTime time.Time, latestDate string, q string, orderBy string, page int, pageSize int) string {
sql := "SELECT A.repo_id,name,is_private,radar_total,num_watches,num_visits,num_downloads,num_pulls,num_commits,num_stars,num_forks,num_issues,num_closed_issues,num_contributor FROM " +
sql := "SELECT A.repo_id,name,owner_name,is_private,radar_total,num_watches,num_visits,num_downloads,num_pulls,num_commits,num_stars,num_forks,num_issues,num_closed_issues,num_contributor FROM " +
"(SELECT repo_id,sum(num_visits) as num_visits " + "(SELECT repo_id,sum(num_visits) as num_visits " +
" FROM repo_statistic where created_unix >=" + strconv.FormatInt(beginTime.Unix(), 10) + " FROM repo_statistic where created_unix >=" + strconv.FormatInt(beginTime.Unix(), 10) +
" and created_unix<" + strconv.FormatInt(endTime.Unix(), 10) + " group by repo_id) A," + " and created_unix<" + strconv.FormatInt(endTime.Unix(), 10) + " group by repo_id) A," +
"(SELECT repo_id,name,is_private,radar_total,num_watches,num_downloads,num_pulls,num_commits,num_stars,num_forks,num_issues,num_closed_issues,num_contributor from public.repo_statistic where date='" + latestDate + "') B" +
"(SELECT repo_id,name,owner_name,is_private,radar_total,num_watches,num_downloads,num_pulls,num_commits,num_stars,num_forks,num_issues,num_closed_issues,num_contributor from public.repo_statistic where date='" + latestDate + "') B" +
" where A.repo_id=B.repo_id" " where A.repo_id=B.repo_id"


if q != "" { if q != "" {
@@ -406,11 +413,11 @@ func generateTypeAllSql(beginTime time.Time, endTime time.Time, latestDate strin


func generatePageSql(beginTime time.Time, endTime time.Time, latestDate string, q string, orderBy string, page int, pageSize int) string { func generatePageSql(beginTime time.Time, endTime time.Time, latestDate string, q string, orderBy string, page int, pageSize int) string {


sql := "SELECT A.repo_id,name,is_private,radar_total,num_watches,num_visits,num_downloads,num_pulls,num_commits,num_stars,num_forks,num_issues,num_closed_issues,num_contributor FROM " +
sql := "SELECT A.repo_id,name,owner_name,is_private,radar_total,num_watches,num_visits,num_downloads,num_pulls,num_commits,num_stars,num_forks,num_issues,num_closed_issues,num_contributor FROM " +
"(SELECT repo_id,sum(num_watches_added) as num_watches,sum(num_visits) as num_visits, sum(num_downloads_added) as num_downloads,sum(num_pulls_added) as num_pulls,sum(num_commits_added) as num_commits,sum(num_stars_added) as num_stars,sum(num_forks_added) num_forks,sum(num_issues_added) as num_issues,sum(num_closed_issues_added) as num_closed_issues,sum(num_contributor_added) as num_contributor " + "(SELECT repo_id,sum(num_watches_added) as num_watches,sum(num_visits) as num_visits, sum(num_downloads_added) as num_downloads,sum(num_pulls_added) as num_pulls,sum(num_commits_added) as num_commits,sum(num_stars_added) as num_stars,sum(num_forks_added) num_forks,sum(num_issues_added) as num_issues,sum(num_closed_issues_added) as num_closed_issues,sum(num_contributor_added) as num_contributor " +
" FROM repo_statistic where created_unix >=" + strconv.FormatInt(beginTime.Unix(), 10) + " FROM repo_statistic where created_unix >=" + strconv.FormatInt(beginTime.Unix(), 10) +
" and created_unix<" + strconv.FormatInt(endTime.Unix(), 10) + " group by repo_id) A," + " and created_unix<" + strconv.FormatInt(endTime.Unix(), 10) + " group by repo_id) A," +
"(SELECT repo_id,name,is_private,radar_total from public.repo_statistic where date='" + latestDate + "') B" +
"(SELECT repo_id,name,owner_name,is_private,radar_total from public.repo_statistic where date='" + latestDate + "') B" +
" where A.repo_id=B.repo_id" " where A.repo_id=B.repo_id"
if q != "" { if q != "" {
sql = sql + " and B.name like '%" + q + "%'" sql = sql + " and B.name like '%" + q + "%'"
@@ -470,7 +477,7 @@ func getTimePeroid(ctx *context.Context, recordBeginTime time.Time) (time.Time,
beginTime = time.Date(endTime.Year(), endTime.Month(), endTime.Day(), 0, 0, 0, 0, now.Location()) beginTime = time.Date(endTime.Year(), endTime.Month(), endTime.Day(), 0, 0, 0, 0, now.Location())


} else if queryType == "current_week" { } else if queryType == "current_week" {
beginTime = now.AddDate(0, 0, -int(time.Now().Weekday())+1)
beginTime = now.AddDate(0, 0, -int(time.Now().Weekday())+2) //begin from monday
beginTime = time.Date(beginTime.Year(), beginTime.Month(), beginTime.Day(), 0, 0, 0, 0, now.Location()) beginTime = time.Date(beginTime.Year(), beginTime.Month(), beginTime.Day(), 0, 0, 0, 0, now.Location())
endTime = now endTime = now
} else if queryType == "current_month" { } else if queryType == "current_month" {


+ 11
- 7
routers/repo/repo_statistic.go View File

@@ -61,6 +61,8 @@ func RepoStatisticDaily(date string) {
var issueFixedRate float32 var issueFixedRate float32
if repo.NumIssues != 0 { if repo.NumIssues != 0 {
issueFixedRate = float32(repo.NumClosedIssues) / float32(repo.NumIssues) issueFixedRate = float32(repo.NumClosedIssues) / float32(repo.NumIssues)
} else {
issueFixedRate = 1.0
} }


var numVersions int64 var numVersions int64
@@ -89,13 +91,15 @@ func RepoStatisticDaily(date string) {
} }


repoStat := models.RepoStatistic{ repoStat := models.RepoStatistic{
RepoID: repo.ID,
Date: date,
Name: repo.Name,
IsPrivate: repo.IsPrivate,
NumWatches: int64(repo.NumWatches),
NumStars: int64(repo.NumStars),
NumForks: int64(repo.NumForks),
RepoID: repo.ID,
Date: date,
Name: repo.Name,
IsPrivate: repo.IsPrivate,
OwnerName: repo.OwnerName,
NumWatches: int64(repo.NumWatches),
NumStars: int64(repo.NumStars),
NumForks: int64(repo.NumForks),

NumDownloads: repo.CloneCnt, NumDownloads: repo.CloneCnt,
NumComments: numComments, NumComments: numComments,
NumVisits: int64(numVisits), NumVisits: int64(numVisits),


Loading…
Cancel
Save