Browse Source

Merge pull request '解决用户分析所有下载文件及统计未激活用户错误问题。' (#2112) from zouap into V20220519

Reviewed-on: https://git.openi.org.cn/OpenI/aiforge/pulls/2112
Reviewed-by: lewis <747342561@qq.com>
pull/2116/head
lewis 3 years ago
parent
commit
457e794038
2 changed files with 30 additions and 15 deletions
  1. +10
    -10
      models/user_business_analysis.go
  2. +20
    -5
      routers/repo/user_data_analysis.go

+ 10
- 10
models/user_business_analysis.go View File

@@ -279,11 +279,11 @@ func postDeal(userMetricsList []*UserMetrics) []*UserMetrics {
return duplicateRemovalUserMetricsList return duplicateRemovalUserMetricsList
} }


func QueryMetricsForAll() []*UserMetrics {
func QueryMetricsForAll(start int64, end int64) []*UserMetrics {
statictisSess := xStatistic.NewSession() statictisSess := xStatistic.NewSession()
defer statictisSess.Close() defer statictisSess.Close()
userMetricsList := make([]*UserMetrics, 0) userMetricsList := make([]*UserMetrics, 0)
if err := statictisSess.Table(new(UserMetrics)).OrderBy("count_date desc").
if err := statictisSess.Table(new(UserMetrics)).Where("count_date >" + fmt.Sprint(start) + " and count_date<" + fmt.Sprint(end)).OrderBy("count_date desc").
Find(&userMetricsList); err != nil { Find(&userMetricsList); err != nil {
return nil return nil
} }
@@ -291,11 +291,9 @@ func QueryMetricsForAll() []*UserMetrics {
return makeResultForMonth(duplicateRemovalUserMetricsList, len(duplicateRemovalUserMetricsList)) return makeResultForMonth(duplicateRemovalUserMetricsList, len(duplicateRemovalUserMetricsList))
} }


func QueryMetricsForYear() []*UserMetrics {
currentTimeNow := time.Now()
currentYearEndTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), currentTimeNow.Day(), 23, 59, 59, 0, currentTimeNow.Location())
currentYearStartTime := time.Date(currentTimeNow.Year(), 1, 1, 0, 0, 0, 0, currentTimeNow.Location())
allUserInfo, count := QueryMetrics(currentYearStartTime.Unix(), currentYearEndTime.Unix())
func QueryMetricsForYear(start int64, end int64) []*UserMetrics {

allUserInfo, count := QueryMetrics(start, end)


return makeResultForMonth(allUserInfo, count) return makeResultForMonth(allUserInfo, count)
} }
@@ -792,7 +790,7 @@ func CounDataByDateAndReCount(wikiCountMap map[string]int, startTime time.Time,
statictisSess := xStatistic.NewSession() statictisSess := xStatistic.NewSession()
defer statictisSess.Close() defer statictisSess.Close()


cond := "type != 1 and is_active=true"
cond := "type != 1"
count, err := sess.Where(cond).Count(new(User)) count, err := sess.Where(cond).Count(new(User))
if err != nil { if err != nil {
log.Info("query user error. return.") log.Info("query user error. return.")
@@ -814,8 +812,6 @@ func CounDataByDateAndReCount(wikiCountMap map[string]int, startTime time.Time,
log.Info("i=" + fmt.Sprint(i) + " userName=" + userRecord.Name) log.Info("i=" + fmt.Sprint(i) + " userName=" + userRecord.Name)
dateRecord.CountDate = CountDate.Unix() dateRecord.CountDate = CountDate.Unix()


statictisSess.Delete(&dateRecord)

dateRecord.Email = userRecord.Email dateRecord.Email = userRecord.Email
dateRecord.RegistDate = userRecord.CreatedUnix dateRecord.RegistDate = userRecord.CreatedUnix
dateRecord.Name = userRecord.Name dateRecord.Name = userRecord.Name
@@ -873,6 +869,10 @@ func CounDataByDateAndReCount(wikiCountMap map[string]int, startTime time.Time,
if getUserActivate(dateRecord) > 0 { if getUserActivate(dateRecord) > 0 {
addUserToMap(userNewAddActivity, userRecord.CreatedUnix, dateRecord.ID) addUserToMap(userNewAddActivity, userRecord.CreatedUnix, dateRecord.ID)
} }
if userRecord.IsActive {
continue
}
statictisSess.Delete(&dateRecord)
_, err = statictisSess.Insert(&dateRecord) _, err = statictisSess.Insert(&dateRecord)
if err != nil { if err != nil {
log.Info("insert daterecord failed." + err.Error()) log.Info("insert daterecord failed." + err.Error())


+ 20
- 5
routers/repo/user_data_analysis.go View File

@@ -47,9 +47,7 @@ func writeUserMetricsExcel(row int, xlsx *excelize.File, sheetName string, userM
rows := fmt.Sprint(row) rows := fmt.Sprint(row)
var tmp byte var tmp byte
tmp = 0 tmp = 0
dateTime := time.Unix(userMetrics.CountDate, 0)
//dateTime.Format("2006-01-02 15:04:05")
xlsx.SetCellValue(sheetName, getColumn(tmp)+rows, dateTime.Format("2006-01-02 15:04:05"))
xlsx.SetCellValue(sheetName, getColumn(tmp)+rows, userMetrics.DisplayDate)
tmp = tmp + 1 tmp = tmp + 1
xlsx.SetCellValue(sheetName, getColumn(tmp)+rows, userMetrics.ActivateRegistUser+userMetrics.NotActivateRegistUser) xlsx.SetCellValue(sheetName, getColumn(tmp)+rows, userMetrics.ActivateRegistUser+userMetrics.NotActivateRegistUser)
tmp = tmp + 1 tmp = tmp + 1
@@ -267,10 +265,10 @@ func queryMetrics(ctx *context.Context, tableName string, startTime time.Time, e
var count int64 var count int64
result := make([]*models.UserMetrics, 0) result := make([]*models.UserMetrics, 0)
if tableName == "public.user_business_analysis_current_year" { if tableName == "public.user_business_analysis_current_year" {
result = models.QueryMetricsForYear()
result = models.QueryMetricsForYear(startTime.Unix(), endTime.Unix())
count = int64(len(result)) count = int64(len(result))
} else if tableName == "public.user_business_analysis_all" { } else if tableName == "public.user_business_analysis_all" {
result = models.QueryMetricsForAll()
result = models.QueryMetricsForAll(startTime.Unix(), endTime.Unix())
count = int64(len(result)) count = int64(len(result))
} else { } else {
result, count = models.QueryMetricsPage(startTime.Unix(), endTime.Unix(), page, pageSize) result, count = models.QueryMetricsPage(startTime.Unix(), endTime.Unix(), page, pageSize)
@@ -331,14 +329,25 @@ func QueryRankingList(ctx *context.Context) {
} }


func QueryUserMetricsCurrentMonth(ctx *context.Context) { func QueryUserMetricsCurrentMonth(ctx *context.Context) {

currentTimeNow := time.Now() currentTimeNow := time.Now()
pageEndTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), currentTimeNow.Day(), 23, 59, 59, 0, currentTimeNow.Location()) pageEndTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), currentTimeNow.Day(), 23, 59, 59, 0, currentTimeNow.Location())
pageStartTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), 1, 0, 0, 0, 0, currentTimeNow.Location()) pageStartTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), 1, 0, 0, 0, 0, currentTimeNow.Location())
pageStartTime = getStartTime(pageStartTime)
queryMetrics(ctx, "public.user_business_analysis_current_month", pageStartTime, pageEndTime) queryMetrics(ctx, "public.user_business_analysis_current_month", pageStartTime, pageEndTime)
} }
func QueryUserStaticCurrentMonth(ctx *context.Context) { func QueryUserStaticCurrentMonth(ctx *context.Context) {
queryUserDataPage(ctx, "public.user_business_analysis_current_month", new(models.UserBusinessAnalysisCurrentMonth)) queryUserDataPage(ctx, "public.user_business_analysis_current_month", new(models.UserBusinessAnalysisCurrentMonth))
} }

func getStartTime(pageStartTime time.Time) time.Time {
t, _ := time.Parse("2006-01-02", setting.RadarMap.GrowthBeginTime)
if pageStartTime.Before(t) {
pageStartTime = t
}
return pageStartTime
}

func QueryUserMetricsCurrentWeek(ctx *context.Context) { func QueryUserMetricsCurrentWeek(ctx *context.Context) {
currentTimeNow := time.Now() currentTimeNow := time.Now()
offset := int(time.Monday - currentTimeNow.Weekday()) offset := int(time.Monday - currentTimeNow.Weekday())
@@ -346,6 +355,7 @@ func QueryUserMetricsCurrentWeek(ctx *context.Context) {
offset = -6 offset = -6
} }
pageStartTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), currentTimeNow.Day(), 0, 0, 0, 0, time.Local).AddDate(0, 0, offset) pageStartTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), currentTimeNow.Day(), 0, 0, 0, 0, time.Local).AddDate(0, 0, offset)
pageStartTime = getStartTime(pageStartTime)
pageEndTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), currentTimeNow.Day(), 23, 59, 59, 0, currentTimeNow.Location()) pageEndTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), currentTimeNow.Day(), 23, 59, 59, 0, currentTimeNow.Location())
queryMetrics(ctx, "public.user_business_analysis_current_week", pageStartTime, pageEndTime) queryMetrics(ctx, "public.user_business_analysis_current_week", pageStartTime, pageEndTime)
} }
@@ -355,6 +365,7 @@ func QueryUserStaticCurrentWeek(ctx *context.Context) {
func QueryUserMetricsCurrentYear(ctx *context.Context) { func QueryUserMetricsCurrentYear(ctx *context.Context) {
currentTimeNow := time.Now() currentTimeNow := time.Now()
pageStartTime := time.Date(currentTimeNow.Year(), 1, 1, 0, 0, 0, 0, currentTimeNow.Location()) pageStartTime := time.Date(currentTimeNow.Year(), 1, 1, 0, 0, 0, 0, currentTimeNow.Location())
pageStartTime = getStartTime(pageStartTime)
pageEndTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), currentTimeNow.Day(), 23, 59, 59, 0, currentTimeNow.Location()) pageEndTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), currentTimeNow.Day(), 23, 59, 59, 0, currentTimeNow.Location())
queryMetrics(ctx, "public.user_business_analysis_current_year", pageStartTime, pageEndTime) queryMetrics(ctx, "public.user_business_analysis_current_year", pageStartTime, pageEndTime)
} }
@@ -364,6 +375,7 @@ func QueryUserStaticCurrentYear(ctx *context.Context) {
func QueryUserMetricsLast30Day(ctx *context.Context) { func QueryUserMetricsLast30Day(ctx *context.Context) {
currentTimeNow := time.Now() currentTimeNow := time.Now()
pageStartTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), currentTimeNow.Day(), 0, 0, 0, 0, time.Local).AddDate(0, 0, -30) pageStartTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), currentTimeNow.Day(), 0, 0, 0, 0, time.Local).AddDate(0, 0, -30)
pageStartTime = getStartTime(pageStartTime)
pageEndTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), currentTimeNow.Day(), 23, 59, 59, 0, currentTimeNow.Location()) pageEndTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), currentTimeNow.Day(), 23, 59, 59, 0, currentTimeNow.Location())
queryMetrics(ctx, "public.user_business_analysis_last30_day", pageStartTime, pageEndTime) queryMetrics(ctx, "public.user_business_analysis_last30_day", pageStartTime, pageEndTime)
} }
@@ -374,6 +386,7 @@ func QueryUserMetricsLastMonth(ctx *context.Context) {
currentTimeNow := time.Now() currentTimeNow := time.Now()
thisMonth := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), 1, 0, 0, 0, 0, currentTimeNow.Location()) thisMonth := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), 1, 0, 0, 0, 0, currentTimeNow.Location())
pageStartTime := thisMonth.AddDate(0, -1, 0) pageStartTime := thisMonth.AddDate(0, -1, 0)
pageStartTime = getStartTime(pageStartTime)
pageEndTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), 1, 23, 59, 59, 0, currentTimeNow.Location()).AddDate(0, 0, -1) pageEndTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), 1, 23, 59, 59, 0, currentTimeNow.Location()).AddDate(0, 0, -1)
queryMetrics(ctx, "public.user_business_analysis_last_month", pageStartTime, pageEndTime) queryMetrics(ctx, "public.user_business_analysis_last_month", pageStartTime, pageEndTime)
} }
@@ -383,6 +396,7 @@ func QueryUserStaticLastMonth(ctx *context.Context) {
func QueryUserMetricsYesterday(ctx *context.Context) { func QueryUserMetricsYesterday(ctx *context.Context) {
currentTimeNow := time.Now() currentTimeNow := time.Now()
pageStartTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), currentTimeNow.Day(), 0, 0, 0, 0, time.Local) pageStartTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), currentTimeNow.Day(), 0, 0, 0, 0, time.Local)
pageStartTime = getStartTime(pageStartTime)
pageEndTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), currentTimeNow.Day(), 23, 59, 59, 0, currentTimeNow.Location()) pageEndTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), currentTimeNow.Day(), 23, 59, 59, 0, currentTimeNow.Location())
queryMetrics(ctx, "public.user_business_analysis_yesterday", pageStartTime, pageEndTime) queryMetrics(ctx, "public.user_business_analysis_yesterday", pageStartTime, pageEndTime)
} }
@@ -392,6 +406,7 @@ func QueryUserStaticYesterday(ctx *context.Context) {
func QueryUserMetricsAll(ctx *context.Context) { func QueryUserMetricsAll(ctx *context.Context) {
currentTimeNow := time.Now() currentTimeNow := time.Now()
pageStartTime := time.Date(2022, 4, 5, 0, 0, 0, 0, currentTimeNow.Location()) pageStartTime := time.Date(2022, 4, 5, 0, 0, 0, 0, currentTimeNow.Location())
pageStartTime = getStartTime(pageStartTime)
pageEndTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), currentTimeNow.Day(), 23, 59, 59, 0, currentTimeNow.Location()) pageEndTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), currentTimeNow.Day(), 23, 59, 59, 0, currentTimeNow.Location())
queryMetrics(ctx, "public.user_business_analysis_all", pageStartTime, pageEndTime) queryMetrics(ctx, "public.user_business_analysis_all", pageStartTime, pageEndTime)
} }


Loading…
Cancel
Save