jobLogsAnalysis.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package userAnalysis
  2. import (
  3. "context"
  4. "github.com/gogf/gf/v2/frame/g"
  5. "github.com/gogf/gf/v2/util/gconv"
  6. "time"
  7. )
  8. var (
  9. ctx = context.TODO()
  10. ActiveCodeMap map[string]interface{}
  11. )
  12. func init() {
  13. ActiveCodeMap = g.Cfg().MustGet(ctx, "activeCode.pcCode").Map()
  14. }
  15. // ActiveUserLoad 活跃用户
  16. func (ua *UserAnalysis) ActiveUserLoad(ctx context.Context, start time.Time, source string) (map[BaseUserId]bool, error) {
  17. rPc, err := g.DB().Query(ctx, "SELECT DISTINCT(baseUserId) as baseUserId FROM user_log_byHour WHERE create_time > ? AND s_source =?;", start.Format(time.DateTime), source)
  18. if err != nil {
  19. return nil, err
  20. }
  21. activeUser := map[BaseUserId]bool{}
  22. for _, m := range rPc.List() {
  23. // 插入pc30天活跃用户
  24. activeUser[BaseUserId(gconv.Int64(m["baseUserId"]))] = true
  25. }
  26. return activeUser, nil
  27. }
  28. // UnActiveUserLoad 未活跃用户
  29. func (ua *UserAnalysis) UnActiveUserLoad(ctx context.Context, start time.Time) (map[BaseUserId]bool, error) {
  30. rPc, err := g.DB().Query(ctx, `SELECT DISTINCT(dmp.baseUserId) as baseUserId1 FROM dwd_mgo_position dmp
  31. left join ( SELECT DISTINCT(baseUserId) as baseUserId
  32. FROM user_log_byHour ulbh
  33. WHERE create_time > ? ) ulog on dmp.baseUserId =ulog.baseUserId where ulog.baseUserId=0`, start.Format(time.DateTime))
  34. if err != nil {
  35. return nil, err
  36. }
  37. unActiveUser := map[BaseUserId]bool{}
  38. for _, m := range rPc.List() {
  39. // 插入pc30天活跃用户
  40. unActiveUser[BaseUserId(gconv.Int64(m["baseUserId1"]))] = true
  41. }
  42. return unActiveUser, nil
  43. }