|
|
|
@@ -407,6 +407,65 @@ func QueryUserStaticDataAll(opts *UserBusinessAnalysisQueryOptions) ([]*UserBusi |
|
|
|
return userBusinessAnalysisReturnList, allCount |
|
|
|
} |
|
|
|
|
|
|
|
func QueryUserStaticDataForUserDefine(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() |
|
|
|
var cond = builder.NewCond() |
|
|
|
cond = cond.And( |
|
|
|
builder.Gte{"count_date": opts.StartTime}, |
|
|
|
) |
|
|
|
cond = cond.And( |
|
|
|
builder.Lte{"count_date": opts.EndTime}, |
|
|
|
) |
|
|
|
count, err := statictisSess.Where(cond).Count(new(UserBusinessAnalysis)) |
|
|
|
if err != nil { |
|
|
|
log.Info("query error." + err.Error()) |
|
|
|
return nil, 0 |
|
|
|
} |
|
|
|
resultMap := make(map[int64]*UserBusinessAnalysis) |
|
|
|
if count > 0 { |
|
|
|
pageSize := 1000 |
|
|
|
totalPage := int(count) / pageSize |
|
|
|
for i := 0; i <= int(totalPage); i++ { |
|
|
|
userBusinessAnalysisList := make([]*UserBusinessAnalysis, 0) |
|
|
|
if err := statictisSess.Table("user_business_analysis").Where(cond).OrderBy("count_date desc").Limit(pageSize, i*pageSize). |
|
|
|
Find(&userBusinessAnalysisList); err != nil { |
|
|
|
return nil, 0 |
|
|
|
} |
|
|
|
log.Info("query 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].CommitDatasetNum += userRecord.CommitDatasetNum |
|
|
|
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, count |
|
|
|
} |
|
|
|
|
|
|
|
func QueryUserStaticDataPage(opts *UserBusinessAnalysisQueryOptions) ([]*UserBusinessAnalysis, int64) { |
|
|
|
|
|
|
|
log.Info("query startTime =" + fmt.Sprint(opts.StartTime) + " endTime=" + fmt.Sprint(opts.EndTime) + " isAll=" + fmt.Sprint(opts.IsAll)) |
|
|
|
|