|
|
@@ -153,6 +153,76 @@ func getLastCountDate() int64 { |
|
|
|
return pageStartTime.Unix() |
|
|
|
} |
|
|
|
|
|
|
|
func QueryUserStaticDataAll(opts *UserBusinessAnalysisQueryOptions) ([]*UserBusinessAnalysis, int64) { |
|
|
|
log.Info("query startTime =" + fmt.Sprint(opts.StartTime) + " endTime=" + fmt.Sprint(opts.EndTime) + " isAll=" + fmt.Sprint(opts.IsAll)) |
|
|
|
|
|
|
|
statictisSess := xStatistic.NewSession() |
|
|
|
defer statictisSess.Close() |
|
|
|
|
|
|
|
resultMap := make(map[int64]*UserBusinessAnalysis) |
|
|
|
|
|
|
|
var newAndCond = builder.NewCond() |
|
|
|
if len(opts.UserName) > 0 { |
|
|
|
newAndCond = newAndCond.And( |
|
|
|
builder.Like{"name", opts.UserName}, |
|
|
|
) |
|
|
|
} |
|
|
|
if !opts.IsAll { |
|
|
|
newAndCond = newAndCond.And( |
|
|
|
builder.Gte{"count_date": opts.StartTime}, |
|
|
|
) |
|
|
|
newAndCond = newAndCond.And( |
|
|
|
builder.Lte{"count_date": opts.EndTime}, |
|
|
|
) |
|
|
|
} |
|
|
|
|
|
|
|
allCount, err := statictisSess.Where(newAndCond).Count(new(UserBusinessAnalysis)) |
|
|
|
if err != nil { |
|
|
|
log.Info("query error." + err.Error()) |
|
|
|
return nil, 0 |
|
|
|
} |
|
|
|
log.Info("query return total:" + fmt.Sprint(allCount)) |
|
|
|
pageSize := 200 |
|
|
|
totalPage := int(allCount) / pageSize |
|
|
|
|
|
|
|
for i := 0; i <= int(totalPage); i++ { |
|
|
|
userBusinessAnalysisList := make([]*UserBusinessAnalysis, 0) |
|
|
|
if err := statictisSess.Table("user_business_analysis").Where(newAndCond).OrderBy("count_date desc").Limit(pageSize, i*pageSize). |
|
|
|
Find(&userBusinessAnalysisList); err != nil { |
|
|
|
return nil, 0 |
|
|
|
} |
|
|
|
log.Info("query " + fmt.Sprint(i+1) + " result size=" + fmt.Sprint(len(userBusinessAnalysisList))) |
|
|
|
for _, userRecord := range userBusinessAnalysisList { |
|
|
|
if _, ok := resultMap[userRecord.ID]; !ok { |
|
|
|
resultMap[userRecord.ID] = userRecord |
|
|
|
} else { |
|
|
|
resultMap[userRecord.ID].CodeMergeCount += userRecord.CodeMergeCount |
|
|
|
resultMap[userRecord.ID].CommitCount += userRecord.CommitCount |
|
|
|
resultMap[userRecord.ID].IssueCount += userRecord.IssueCount |
|
|
|
resultMap[userRecord.ID].CommentCount += userRecord.CommentCount |
|
|
|
resultMap[userRecord.ID].FocusRepoCount += userRecord.FocusRepoCount |
|
|
|
resultMap[userRecord.ID].StarRepoCount += userRecord.StarRepoCount |
|
|
|
resultMap[userRecord.ID].WatchedCount += userRecord.WatchedCount |
|
|
|
resultMap[userRecord.ID].CommitCodeSize += userRecord.CommitCodeSize |
|
|
|
resultMap[userRecord.ID].CommitDatasetSize += userRecord.CommitDatasetSize |
|
|
|
resultMap[userRecord.ID].CommitModelCount += userRecord.CommitModelCount |
|
|
|
resultMap[userRecord.ID].SolveIssueCount += userRecord.SolveIssueCount |
|
|
|
resultMap[userRecord.ID].EncyclopediasCount += userRecord.EncyclopediasCount |
|
|
|
resultMap[userRecord.ID].CreateRepoCount += userRecord.CreateRepoCount |
|
|
|
resultMap[userRecord.ID].LoginCount += userRecord.LoginCount |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
userBusinessAnalysisReturnList := UserBusinessAnalysisList{} |
|
|
|
for _, v := range resultMap { |
|
|
|
userBusinessAnalysisReturnList = append(userBusinessAnalysisReturnList, v) |
|
|
|
} |
|
|
|
sort.Sort(userBusinessAnalysisReturnList) |
|
|
|
log.Info("return size=" + fmt.Sprint(len(userBusinessAnalysisReturnList))) |
|
|
|
return userBusinessAnalysisReturnList, allCount |
|
|
|
} |
|
|
|
|
|
|
|
func QueryUserStaticDataPage(opts *UserBusinessAnalysisQueryOptions) ([]*UserBusinessAnalysis, int64) { |
|
|
|
|
|
|
|
log.Info("query startTime =" + fmt.Sprint(opts.StartTime) + " endTime=" + fmt.Sprint(opts.EndTime) + " isAll=" + fmt.Sprint(opts.IsAll)) |
|
|
|