Browse Source

提交代码。

Signed-off-by: zouap <zouap@pcl.ac.cn>
pull/618/head
zouap 3 years ago
parent
commit
d739407e0d
2 changed files with 25 additions and 12 deletions
  1. +25
    -0
      models/user_business_analysis.go
  2. +0
    -12
      models/user_login_log.go

+ 25
- 0
models/user_business_analysis.go View File

@@ -153,6 +153,7 @@ func CountData(wikiCountMap map[string]int) {
CommitDatasetSizeMap := queryDatasetSize(start_unix, end_unix) CommitDatasetSizeMap := queryDatasetSize(start_unix, end_unix)
SolveIssueCountMap := querySolveIssue(start_unix, end_unix) SolveIssueCountMap := querySolveIssue(start_unix, end_unix)
CreateRepoCountMap := queryUserCreateRepo(start_unix, end_unix) CreateRepoCountMap := queryUserCreateRepo(start_unix, end_unix)
LoginCountMap := queryLoginCount(start_unix, end_unix)


for i, userRecord := range userList { for i, userRecord := range userList {
var dateRecord UserBusinessAnalysis var dateRecord UserBusinessAnalysis
@@ -235,6 +236,12 @@ func CountData(wikiCountMap map[string]int) {
dateRecord.CreateRepoCount = CreateRepoCountMap[dateRecord.ID] dateRecord.CreateRepoCount = CreateRepoCountMap[dateRecord.ID]
} }


if _, ok := LoginCountMap[dateRecord.ID]; !ok {
dateRecord.LoginCount = 0
} else {
dateRecord.LoginCount = LoginCountMap[dateRecord.ID]
}

dateRecord.CommitModelCount = 0 dateRecord.CommitModelCount = 0


statictisSess := xStatistic.NewSession() statictisSess := xStatistic.NewSession()
@@ -421,6 +428,24 @@ func queryUserCreateRepo(start_unix int64, end_unix int64) map[int64]int {
return resultMap 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) { func subMonth(t1, t2 time.Time) (month int) {
y1 := t1.Year() y1 := t1.Year()
y2 := t2.Year() y2 := t2.Year()


+ 0
- 12
models/user_login_log.go View File

@@ -1,11 +1,8 @@
package models package models


import ( import (
"encoding/json"
"fmt"
"net/http" "net/http"


"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/timeutil" "code.gitea.io/gitea/modules/timeutil"
) )


@@ -24,23 +21,14 @@ func SaveLoginInfoToDb(r *http.Request, u *User) {


dateRecord.UId = u.ID dateRecord.UId = u.ID
dateRecord.IpAddr = getIP(r) dateRecord.IpAddr = getIP(r)
log.Info("uid=" + fmt.Sprint(dateRecord.UId))
log.Info("ip=" + dateRecord.IpAddr)


statictisSess.Insert(&dateRecord) statictisSess.Insert(&dateRecord)
} }


func getIP(r *http.Request) string { 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") forwarded := r.Header.Get("X-FORWARDED-FOR")
if forwarded != "" { if forwarded != "" {
return forwarded return forwarded
} }

return r.RemoteAddr return r.RemoteAddr
} }

Loading…
Cancel
Save