| @@ -330,7 +330,7 @@ func QueryUserStaticDataForUserDefine(opts *UserBusinessAnalysisQueryOptions, wi | |||||
| DataDate := currentTimeNow.Format("2006-01-02 15:04") | DataDate := currentTimeNow.Format("2006-01-02 15:04") | ||||
| CodeMergeCountMap := queryPullRequest(start_unix, end_unix) | CodeMergeCountMap := queryPullRequest(start_unix, end_unix) | ||||
| CommitCountMap, _ := queryCommitAction(start_unix, end_unix, 5) | |||||
| CommitCountMap := queryCommitAction(start_unix, end_unix, 5) | |||||
| IssueCountMap := queryCreateIssue(start_unix, end_unix) | IssueCountMap := queryCreateIssue(start_unix, end_unix) | ||||
| CommentCountMap := queryComment(start_unix, end_unix) | CommentCountMap := queryComment(start_unix, end_unix) | ||||
| @@ -586,7 +586,7 @@ func refreshUserStaticTable(wikiCountMap map[string]int, tableName string, pageS | |||||
| startTime := currentTimeNow.AddDate(0, 0, -1) | startTime := currentTimeNow.AddDate(0, 0, -1) | ||||
| CodeMergeCountMap := queryPullRequest(start_unix, end_unix) | CodeMergeCountMap := queryPullRequest(start_unix, end_unix) | ||||
| CommitCountMap, _ := queryCommitAction(start_unix, end_unix, 5) | |||||
| CommitCountMap := queryCommitAction(start_unix, end_unix, 5) | |||||
| IssueCountMap := queryCreateIssue(start_unix, end_unix) | IssueCountMap := queryCreateIssue(start_unix, end_unix) | ||||
| CommentCountMap := queryComment(start_unix, end_unix) | CommentCountMap := queryComment(start_unix, end_unix) | ||||
| @@ -762,7 +762,8 @@ func RefreshUserYearTable(pageStartTime time.Time, pageEndTime time.Time) { | |||||
| end_unix := pageEndTime.Unix() | end_unix := pageEndTime.Unix() | ||||
| CodeMergeCountMap := queryPullRequest(start_unix, end_unix) | CodeMergeCountMap := queryPullRequest(start_unix, end_unix) | ||||
| CommitCountMap, mostActiveMap := queryCommitAction(start_unix, end_unix, 5) | |||||
| CommitCountMap := queryCommitAction(start_unix, end_unix, 5) | |||||
| mostActiveMap := queryMostActiveCommitAction(start_unix, end_unix) | |||||
| IssueCountMap := queryCreateIssue(start_unix, end_unix) | IssueCountMap := queryCreateIssue(start_unix, end_unix) | ||||
| CommentCountMap := queryComment(start_unix, end_unix) | CommentCountMap := queryComment(start_unix, end_unix) | ||||
| @@ -1246,7 +1247,7 @@ func CounDataByDateAndReCount(wikiCountMap map[string]int, startTime time.Time, | |||||
| DataDate := CountDate.Format("2006-01-02") | DataDate := CountDate.Format("2006-01-02") | ||||
| CodeMergeCountMap := queryPullRequest(start_unix, end_unix) | CodeMergeCountMap := queryPullRequest(start_unix, end_unix) | ||||
| CommitCountMap, _ := queryCommitAction(start_unix, end_unix, 5) | |||||
| CommitCountMap := queryCommitAction(start_unix, end_unix, 5) | |||||
| IssueCountMap := queryCreateIssue(start_unix, end_unix) | IssueCountMap := queryCreateIssue(start_unix, end_unix) | ||||
| CommentCountMap := queryComment(start_unix, end_unix) | CommentCountMap := queryComment(start_unix, end_unix) | ||||
| @@ -1740,40 +1741,30 @@ func queryPullRequest(start_unix int64, end_unix int64) map[int64]int { | |||||
| return resultMap | return resultMap | ||||
| } | } | ||||
| func queryCommitAction(start_unix int64, end_unix int64, actionType int64) (map[int64]int, map[int64]map[string]int) { | |||||
| func queryMostActiveCommitAction(start_unix int64, end_unix int64) map[int64]map[string]int { | |||||
| sess := x.NewSession() | sess := x.NewSession() | ||||
| defer sess.Close() | defer sess.Close() | ||||
| resultMap := make(map[int64]int) | |||||
| mostActiveMap := make(map[int64]map[string]int) | mostActiveMap := make(map[int64]map[string]int) | ||||
| cond := "user_id=act_user_id and created_unix>=" + fmt.Sprint(start_unix) + " and created_unix<=" + fmt.Sprint(end_unix) | cond := "user_id=act_user_id and created_unix>=" + fmt.Sprint(start_unix) + " and created_unix<=" + fmt.Sprint(end_unix) | ||||
| count, err := sess.Where(cond).Count(new(Action)) | count, err := sess.Where(cond).Count(new(Action)) | ||||
| if err != nil { | if err != nil { | ||||
| log.Info("query action error. return.") | log.Info("query action error. return.") | ||||
| return resultMap, mostActiveMap | |||||
| return mostActiveMap | |||||
| } | } | ||||
| var indexTotal int64 | var indexTotal int64 | ||||
| indexTotal = 0 | indexTotal = 0 | ||||
| for { | for { | ||||
| //sess.Select("id,user_id,op_type,act_user_id,created_unix").Table("action").Where(cond).OrderBy("id asc").Limit(PAGE_SIZE, int(indexTotal)) | |||||
| //actionList := make([]*Action, 0) | |||||
| //sess.Find(&actionList) | |||||
| actionList, err := sess.QueryInterface("select id,user_id,op_type,act_user_id,created_unix from public.action where " + cond + " order by id asc limit " + fmt.Sprint(PAGE_SIZE) + " offset " + fmt.Sprint(indexTotal)) | actionList, err := sess.QueryInterface("select id,user_id,op_type,act_user_id,created_unix from public.action where " + cond + " order by id asc limit " + fmt.Sprint(PAGE_SIZE) + " offset " + fmt.Sprint(indexTotal)) | ||||
| if err != nil { | if err != nil { | ||||
| log.Info("error:" + err.Error()) | log.Info("error:" + err.Error()) | ||||
| continue | continue | ||||
| } | } | ||||
| log.Info("query action size=" + fmt.Sprint(len(actionList))) | |||||
| log.Info("query mostactive action size=" + fmt.Sprint(len(actionList))) | |||||
| for _, actionRecord := range actionList { | for _, actionRecord := range actionList { | ||||
| userId := convertInterfaceToInt64(actionRecord["user_id"]) | userId := convertInterfaceToInt64(actionRecord["user_id"]) | ||||
| if convertInterfaceToInt64(actionRecord["op_type"]) == actionType { | |||||
| if _, ok := resultMap[userId]; !ok { | |||||
| resultMap[userId] = 1 | |||||
| } else { | |||||
| resultMap[userId] += 1 | |||||
| } | |||||
| } | |||||
| created_unix := timeutil.TimeStamp(convertInterfaceToInt64(actionRecord["created_unix"])) | created_unix := timeutil.TimeStamp(convertInterfaceToInt64(actionRecord["created_unix"])) | ||||
| key := getDate(created_unix) | key := getDate(created_unix) | ||||
| if _, ok := mostActiveMap[userId]; !ok { | if _, ok := mostActiveMap[userId]; !ok { | ||||
| @@ -1800,8 +1791,44 @@ func queryCommitAction(start_unix int64, end_unix int64, actionType int64) (map[ | |||||
| break | break | ||||
| } | } | ||||
| } | } | ||||
| return mostActiveMap | |||||
| } | |||||
| return resultMap, mostActiveMap | |||||
| func queryCommitAction(start_unix int64, end_unix int64, actionType int64) map[int64]int { | |||||
| sess := x.NewSession() | |||||
| defer sess.Close() | |||||
| resultMap := make(map[int64]int) | |||||
| cond := "op_type=" + fmt.Sprint(actionType) + " and user_id=act_user_id and created_unix>=" + fmt.Sprint(start_unix) + " and created_unix<=" + fmt.Sprint(end_unix) | |||||
| count, err := sess.Where(cond).Count(new(Action)) | |||||
| if err != nil { | |||||
| log.Info("query action error. return.") | |||||
| return resultMap | |||||
| } | |||||
| var indexTotal int64 | |||||
| indexTotal = 0 | |||||
| for { | |||||
| actionList, err := sess.QueryInterface("select id,user_id,op_type,act_user_id,created_unix from public.action where " + cond + " order by id asc limit " + fmt.Sprint(PAGE_SIZE) + " offset " + fmt.Sprint(indexTotal)) | |||||
| if err != nil { | |||||
| log.Info("error:" + err.Error()) | |||||
| continue | |||||
| } | |||||
| log.Info("query action size=" + fmt.Sprint(len(actionList))) | |||||
| for _, actionRecord := range actionList { | |||||
| userId := convertInterfaceToInt64(actionRecord["user_id"]) | |||||
| if _, ok := resultMap[userId]; !ok { | |||||
| resultMap[userId] = 1 | |||||
| } else { | |||||
| resultMap[userId] += 1 | |||||
| } | |||||
| } | |||||
| indexTotal += PAGE_SIZE | |||||
| if indexTotal >= count { | |||||
| break | |||||
| } | |||||
| } | |||||
| return resultMap | |||||
| } | } | ||||
| func convertInterfaceToInt64(obj interface{}) int64 { | func convertInterfaceToInt64(obj interface{}) int64 { | ||||