Browse Source

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

合并
pull/943/head
liuzx 3 years ago
parent
commit
884d6a765b
5 changed files with 28 additions and 29 deletions
  1. +12
    -11
      models/repo_activity_custom.go
  2. +4
    -14
      models/user_business_analysis.go
  3. +1
    -1
      routers/api/v1/repo/repo_dashbord.go
  4. +9
    -2
      web_src/js/components/ProAnalysis.vue
  5. +2
    -1
      web_src/js/components/UserAnalysis.vue

+ 12
- 11
models/repo_activity_custom.go View File

@@ -14,7 +14,6 @@ type ContributorWithUserId struct {
UserId int64
IsAdmin bool
RelAvatarLink string
Email string
}

func GetRepoKPIStats(repo *Repository) (*git.RepoKPIStats, error) {
@@ -127,12 +126,12 @@ func getRepoKPIStats(repoPath string, wikiPath string) (*git.RepoKPIStats, error

}

func GetTop10Contributor(repoPath string) ([]ContributorWithUserId, error) {
func GetTop10Contributor(repoPath string) ([]*ContributorWithUserId, error) {
contributors, err := git.GetContributors(repoPath)
if err != nil {
return make([]ContributorWithUserId, 0), err
return make([]*ContributorWithUserId, 0), err
}
contributorDistinctDict := make(map[string]ContributorWithUserId, 0)
contributorDistinctDict := make(map[string]*ContributorWithUserId, 0)
if contributors != nil {
for _, contributor := range contributors {
if strings.Compare(contributor.Email, "") == 0 {
@@ -144,12 +143,15 @@ func GetTop10Contributor(repoPath string) ([]ContributorWithUserId, error) {

value, ok := contributorDistinctDict[user.Email]
if !ok {
contributorDistinctDict[user.Email] = ContributorWithUserId{
contributor,
contributorDistinctDict[user.Email] = &ContributorWithUserId{
git.Contributor{
contributor.CommitCnt,
user.Name,
user.Email,
},
user.ID,
user.IsAdmin,
user.RelAvatarLink(),
user.Email,
}
} else {

@@ -159,12 +161,11 @@ func GetTop10Contributor(repoPath string) ([]ContributorWithUserId, error) {
} else {
value, ok := contributorDistinctDict[contributor.Email]
if !ok {
contributorDistinctDict[contributor.Email] = ContributorWithUserId{
contributorDistinctDict[contributor.Email] = &ContributorWithUserId{
contributor,
-1,
false,
"",
contributor.Email,
}
} else {
value.CommitCnt += contributor.CommitCnt
@@ -173,7 +174,7 @@ func GetTop10Contributor(repoPath string) ([]ContributorWithUserId, error) {
}

}
v := make([]ContributorWithUserId, 0, len(contributorDistinctDict))
v := make([]*ContributorWithUserId, 0, len(contributorDistinctDict))
for _, value := range contributorDistinctDict {
v = append(v, value)
}
@@ -188,7 +189,7 @@ func GetTop10Contributor(repoPath string) ([]ContributorWithUserId, error) {
return v[0:10], nil
}
}
return make([]ContributorWithUserId, 0), nil
return make([]*ContributorWithUserId, 0), nil
}

func setKeyContributerDict(contributorDistinctDict map[string]int, email string, keyContributorsDict map[string]struct{}) {


+ 4
- 14
models/user_business_analysis.go View File

@@ -90,15 +90,7 @@ type UserBusinessAnalysisList []*UserBusinessAnalysis
func (ulist UserBusinessAnalysisList) Swap(i, j int) { ulist[i], ulist[j] = ulist[j], ulist[i] }
func (ulist UserBusinessAnalysisList) Len() int { return len(ulist) }
func (ulist UserBusinessAnalysisList) Less(i, j int) bool {
if ulist[i].CommitCount > ulist[j].CommitCount {
return true
} else {
if ulist[i].CommitCount == ulist[j].CommitCount {
return ulist[i].ID > ulist[j].ID
} else {
return false
}
}
return ulist[i].ID > ulist[j].ID
}

func QueryUserStaticData(startTime int64, endTime int64) []*UserBusinessAnalysis {
@@ -199,17 +191,16 @@ func QueryUserStaticDataPage(opts *UserBusinessAnalysisQueryOptions) ([]*UserBus
}
statictisSess.Limit(opts.PageSize, start)
}
statictisSess.OrderBy("count_date desc")

userBusinessAnalysisList := make([]*UserBusinessAnalysis, 0)
if err := statictisSess.Table("user_business_analysis").Where(cond).
if err := statictisSess.Table("user_business_analysis").Where(cond).OrderBy("id desc").
Find(&userBusinessAnalysisList); err != nil {
return nil, 0
}

resultMap := make(map[int64]*UserBusinessAnalysis)

if opts.Page >= 0 && opts.PageSize > 0 && len(userBusinessAnalysisList) > 0 {
if len(userBusinessAnalysisList) > 0 {
var newAndCond = builder.NewCond()
var newOrCond = builder.NewCond()
for _, userRecord := range userBusinessAnalysisList {
@@ -228,9 +219,8 @@ func QueryUserStaticDataPage(opts *UserBusinessAnalysisQueryOptions) ([]*UserBus
builder.Lte{"count_date": opts.EndTime},
)
}

userBusinessAnalysisList = make([]*UserBusinessAnalysis, 0)
if err := statictisSess.Table("user_business_analysis").Where(newAndCond).
if err := statictisSess.Table("user_business_analysis").Where(newAndCond).OrderBy("count_date desc").
Find(&userBusinessAnalysisList); err != nil {
return nil, 0
}


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

@@ -362,7 +362,7 @@ func generateRadarSql(beginTime time.Time, endTime time.Time, repoId int64) stri
}

func generateTargetSql(beginTime time.Time, endTime time.Time, repoId int64) string {
sql := "SELECT date, num_visits,num_downloads,num_commits FROM repo_statistic" +
sql := "SELECT date, num_visits,num_downloads_added as num_downloads,num_commits_added as num_commits FROM repo_statistic" +
" where repo_id=" + strconv.FormatInt(repoId, 10) + " and created_unix >=" + strconv.FormatInt(beginTime.Unix(), 10) +
" and created_unix<" + strconv.FormatInt(endTime.Unix(), 10) + " order by created_unix desc"



+ 9
- 2
web_src/js/components/ProAnalysis.vue View File

@@ -217,7 +217,7 @@
>
<el-table-column
label="用户名"
align="center"
align="left"
prop="user">
<template slot-scope="scope">
<a v-if="scope.row.mode!=-1" :href="AppSubUrl +'../../../'+ scope.row.user"><img class="ui avatar s16 image js-popover-card" :src="scope.row.relAvatarLink">{{scope.row.user}} </a>
@@ -1144,6 +1144,11 @@

created() {
// this.download_a=document.getElementById("download_file")
},
updated(){
if(document.querySelectorAll('img[avatar]').length!==0){
window.LetterAvatar.transform()
}
}
}
</script>
@@ -1201,7 +1206,7 @@
}
.items{
text-align: center;
border-right:2px solid rgba(219, 219, 219, 100);
border-right:1px solid rgba(219, 219, 219, 100);
}
.item_l{
margin-right: 5px;
@@ -1213,6 +1218,7 @@
margin-right:5px;
border:1px solid rgba(219, 219, 219, 100);
height: 370px;
overflow:auto
}
.item_echart{
margin-top: 10px;
@@ -1224,5 +1230,6 @@
.item_content{
color: #409eff;
margin-top: 10px;
font-weight:bold;
}
</style>

+ 2
- 1
web_src/js/components/UserAnalysis.vue View File

@@ -149,7 +149,7 @@
@current-change="handleCurrentChange"
:current-page="page"
:page-size="pageSize"
:page-sizes="[2,5,10,20]"
:page-sizes="[5,10,20]"
layout="total, sizes, prev, pager, next,jumper"
:total="totalNum">
</el-pagination>
@@ -423,6 +423,7 @@
mounted() {
// document.getElementById("all_usr").style.outline="none"
// document.getElementById("all_usr").focus()
this.getUpdateTime()
this.getUserList("all_usr",7)
},
created() {


Loading…
Cancel
Save