123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- package main
- import (
- "context"
- _ "github.com/gogf/gf/contrib/drivers/clickhouse/v2"
- _ "github.com/gogf/gf/contrib/drivers/mysql/v2"
- "github.com/gogf/gf/v2/frame/g"
- "github.com/gogf/gf/v2/os/gcron"
- "github.com/gogf/gf/v2/os/gctx"
- "time"
- "workTasks/userSign/userAnalysis"
- "workTasks/userSign/userTag"
- )
- func main() {
- ctx := gctx.New()
- if g.Cfg().MustGet(ctx, "run", false).Bool() {
- runOnce(context.TODO())
- if e := userTag.BaseUserTag(); e != nil {
- g.Log().Errorf(ctx, "BaseUserTag 异常 %v", e)
- }
- g.Dump("run once FINISH")
- }
- _, err := gcron.Add(gctx.New(), g.Cfg().MustGet(ctx, "runCron", "# 0 2 * * *").String(), func(ctx context.Context) {
- runOnce(context.TODO())
- if e := userTag.BaseUserTag(); e != nil {
- g.Log().Errorf(ctx, "BaseUserTag 异常 %v", e)
- }
- }, "userSign")
- if err != nil {
- panic(err)
- }
- select {}
- }
- func runOnce(ctx context.Context) {
- manager := userAnalysis.NewManager()
- var allRes []*userAnalysis.AnalysisRes
- if err := manager.LoadMapping(); err != nil {
- g.Log().Errorf(ctx, "加载对应关系异常 %v", err)
- }
- var (
- now = time.Now()
- nowTime = time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, now.Location())
- )
- //更新全量用户
- if len(manager.FullBaseUserId) > 0 {
- allRes = append(allRes, &userAnalysis.AnalysisRes{Name: "全量用户BaseUserId", Code: "fullBaseUserId", Data: manager.FullBaseUserId})
- }
- //订单分析
- if res, err := manager.TiDBOrderRange(ctx, nowTime); err == nil && len(res) > 0 {
- allRes = append(allRes, res...)
- }
- //加载30天内取关用户
- manager.GetMgoUnSubUser(ctx, -30)
- //会员状态分析
- if res, err := manager.GetMgoUserRes(ctx); err == nil && len(res) > 0 {
- allRes = append(allRes, res...)
- }
- // 日志标签
- g.Log().Infof(ctx, "日志标签")
- logRes, logErr := manager.GetAnalysisLogRes(ctx, nowTime)
- if logErr != nil {
- g.Log().Errorf(ctx, "日志标签异常%v", logErr)
- }
- for _, re := range logRes {
- allRes = append(allRes, re)
- }
- // 后端接口日志分析
- g.Log().Infof(ctx, "后端接口日志分析")
- backLogsRes, backLogsErr := manager.GetBackLogsTagsData(ctx, nowTime)
- if backLogsErr != nil {
- g.Log().Errorf(ctx, "接口请求日志分析异常%v", backLogsErr)
- }
- for _, re := range backLogsRes {
- allRes = append(allRes, re)
- }
- // 电销标签
- g.Log().Infof(ctx, "电销标签")
- telemarketingRes, telemarketingErr := manager.GetTelemarketingRes(ctx, nowTime)
- if telemarketingErr != nil {
- g.Log().Errorf(ctx, "电销标签异常%v", telemarketingErr)
- }
- for _, re := range telemarketingRes {
- allRes = append(allRes, re)
- }
- // 埋点数据分析
- g.Log().Infof(ctx, "埋点数据分析")
- buryPointRes, buryPointErr := manager.GetBuryPointRes(ctx, nowTime)
- if buryPointErr != nil {
- g.Log().Errorf(ctx, "埋点数据分析异常%v", buryPointErr)
- }
- for _, re := range buryPointRes {
- allRes = append(allRes, re)
- }
- // 留资数据
- g.Log().Infof(ctx, "留资数据")
- saleLeadsRes, saleLeadsErr := manager.GetSaleLeadsData(ctx, nowTime)
- if saleLeadsErr != nil {
- g.Log().Errorf(ctx, "留资数据分析异常%v", saleLeadsErr)
- }
- for _, re := range saleLeadsRes {
- allRes = append(allRes, re)
- }
- // 更新标签
- for _, re := range allRes {
- re.UpdateTag(ctx)
- }
- }
|