12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- package service
- import (
- "designs/global"
- "designs/model"
- "designs/utils"
- )
- func RemainDataBydDay(pf string, gid string, startTime string, endTime string) {
- //先计算出这个时间内 ,每天的注册用户数量
- var users []model.User
- err := global.App.DB.Table("user").
- Where("pf", pf).Where("gid", gid).
- Where("createdAt", ">=", startTime).
- Where("createdAt", "<=", endTime).
- Scan(&users).Error
- if err != nil {
- }
- var UsersId []int
- UsersBydDay := utils.GetTimeDayDate(startTime, endTime) //用户分别是在哪天注册的
- UserLoginBydDay := UsersBydDay
- for _, user := range users {
- UsersId = append(UsersId, user.UserId)
- UsersBydDay[user.CreatedAt.Format("20060102")] = append(UsersBydDay[user.CreatedAt.Format("20060102")], user.UserId)
- }
- users = nil //用完后清空内存
- //把每天的注册用户进行集合,查出后面所有天数的活跃情况
- var UserLogin []model.UserLogin
- err = global.App.DB.Table("user_login").
- Where("pf", pf).Where("gid", gid).
- WhereIn("userId", UsersId).
- Where("loginTime", ">=", startTime).
- Select("loginTime", "userId").
- Scan(&UserLogin).Error
- if err != nil {
- }
- //对这些数据进行整理
- for _, v := range UserLogin {
- //根据天进行分组,得出总共有多少
- times := v.LoginTime.Format("20060102")
- UserLoginBydDay[times] = append(UserLoginBydDay[times], v.UserId)
- }
- //逐天比较注册的数据和留存的数据,得出每天的活跃比例和人数
- }
|