main.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package main
  2. import (
  3. "context"
  4. "fmt"
  5. _ "github.com/gogf/gf/contrib/drivers/clickhouse/v2"
  6. _ "github.com/gogf/gf/contrib/drivers/mysql/v2"
  7. "github.com/gogf/gf/v2/frame/g"
  8. "time"
  9. "workTasks/userSign/userAnalysis"
  10. )
  11. func main() {
  12. runOnce(context.TODO())
  13. }
  14. func runOnce(ctx context.Context) {
  15. manager := userAnalysis.NewManager()
  16. var allRes []*userAnalysis.AnalysisRes
  17. if err := manager.LoadMapping(); err != nil {
  18. g.Log().Errorf(ctx, "加载对应关系异常 %v", err)
  19. }
  20. //更新全量用户
  21. if len(manager.FullBaseUserId) > 0 {
  22. allRes = append(allRes, &userAnalysis.AnalysisRes{Name: "全量用户BaseUserId", Code: "fullBaseUserId", Data: manager.FullBaseUserId})
  23. }
  24. //订单分析
  25. if res, err := manager.TiDBOrderRange(ctx); err == nil && len(res) > 0 {
  26. allRes = append(allRes, res...)
  27. }
  28. //会员状态分析
  29. if res, err := manager.GetMgoUserRes(ctx); err == nil && len(res) > 0 {
  30. allRes = append(allRes, res...)
  31. }
  32. var (
  33. sourceArr = []string{"pc", "wx", "app"}
  34. nowTime = time.Now()
  35. unActiveTime = []int{30, 90}
  36. )
  37. //活跃用户分析
  38. for _, day := range unActiveTime {
  39. if day == 30 { //30天活跃用户各端
  40. for _, source := range sourceArr {
  41. if res, err := manager.ActiveUserLoad(ctx, nowTime.AddDate(0, 0, -day), source); err == nil && len(res) > 0 {
  42. allRes = append(allRes, &userAnalysis.AnalysisRes{Name: fmt.Sprintf("30天%s活跃用户", source), Code: fmt.Sprintf("active_%s_%d", source, 30), Data: res})
  43. }
  44. }
  45. }
  46. if res, err := manager.ActiveUserLoad(ctx, nowTime.AddDate(0, 0, -day), ""); err == nil && len(res) > 0 {
  47. allRes = append(allRes, &userAnalysis.AnalysisRes{Name: fmt.Sprintf("%d天活跃用户", day), Code: fmt.Sprintf("active_%d", day), Data: res})
  48. }
  49. }
  50. for _, re := range allRes {
  51. re.UpdateTag(ctx)
  52. }
  53. }