diff --git a/models/user_business_analysis.go b/models/user_business_analysis.go index 8b7691677..406cc36f1 100644 --- a/models/user_business_analysis.go +++ b/models/user_business_analysis.go @@ -153,6 +153,7 @@ func CountData(wikiCountMap map[string]int) { CommitDatasetSizeMap := queryDatasetSize(start_unix, end_unix) SolveIssueCountMap := querySolveIssue(start_unix, end_unix) CreateRepoCountMap := queryUserCreateRepo(start_unix, end_unix) + LoginCountMap := queryLoginCount(start_unix, end_unix) for i, userRecord := range userList { var dateRecord UserBusinessAnalysis @@ -235,6 +236,12 @@ func CountData(wikiCountMap map[string]int) { dateRecord.CreateRepoCount = CreateRepoCountMap[dateRecord.ID] } + if _, ok := LoginCountMap[dateRecord.ID]; !ok { + dateRecord.LoginCount = 0 + } else { + dateRecord.LoginCount = LoginCountMap[dateRecord.ID] + } + dateRecord.CommitModelCount = 0 statictisSess := xStatistic.NewSession() @@ -421,6 +428,24 @@ func queryUserCreateRepo(start_unix int64, end_unix int64) map[int64]int { return resultMap } +func queryLoginCount(start_unix int64, end_unix int64) map[int64]int { + statictisSess := xStatistic.NewSession() + defer statictisSess.Close() + statictisSess.Select("id,u_id").Table("user_login_log").Where("created_unix>=" + fmt.Sprint(start_unix) + " and created_unix<=" + fmt.Sprint(end_unix)) + userLoginLogList := make([]*UserLoginLog, 0) + statictisSess.Find(&userLoginLogList) + resultMap := make(map[int64]int) + log.Info("query user login size=" + fmt.Sprint(len(userLoginLogList))) + for _, loginRecord := range userLoginLogList { + if _, ok := resultMap[loginRecord.UId]; !ok { + resultMap[loginRecord.UId] = 1 + } else { + resultMap[loginRecord.UId] += 1 + } + } + return resultMap +} + func subMonth(t1, t2 time.Time) (month int) { y1 := t1.Year() y2 := t2.Year() diff --git a/models/user_login_log.go b/models/user_login_log.go index 299cd48af..4a499d527 100644 --- a/models/user_login_log.go +++ b/models/user_login_log.go @@ -1,11 +1,8 @@ package models import ( - "encoding/json" - "fmt" "net/http" - "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/timeutil" ) @@ -24,23 +21,14 @@ func SaveLoginInfoToDb(r *http.Request, u *User) { dateRecord.UId = u.ID dateRecord.IpAddr = getIP(r) - log.Info("uid=" + fmt.Sprint(dateRecord.UId)) - log.Info("ip=" + dateRecord.IpAddr) statictisSess.Insert(&dateRecord) } func getIP(r *http.Request) string { - headerjson, _ := json.Marshal(r.Header) - log.Info("header json=" + string(headerjson)) - - trailerjson, _ := json.Marshal(r.Trailer) - log.Info("trailerjson=" + string(trailerjson)) - forwarded := r.Header.Get("X-FORWARDED-FOR") if forwarded != "" { return forwarded } - return r.RemoteAddr }