1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- package main
- import (
- "context"
- "fmt"
- _ "github.com/gogf/gf/contrib/drivers/clickhouse/v2"
- _ "github.com/gogf/gf/contrib/drivers/mysql/v2"
- "github.com/gogf/gf/v2/frame/g"
- "time"
- "workTasks/userSign/userAnalysis"
- )
- func main() {
- runOnce(context.TODO())
- }
- func runOnce(ctx context.Context) {
- manager := userAnalysis.NewManager()
- var allRes []*userAnalysis.AnalysisRes
- if err := manager.LoadMapping(); err != nil {
- g.Log().Errorf(ctx, "加载对应关系异常 %v", err)
- }
- //订单分析
- if res, err := manager.TiDBOrderRange(ctx); err == nil && len(res) > 0 {
- allRes = append(allRes, res...)
- }
- //会员状态分析
- if res, err := manager.GetMgoUserRes(ctx); err == nil && len(res) > 0 {
- allRes = append(allRes, res...)
- }
- var (
- sourceArr = []string{"pc", "wx", "app"}
- nowTime = time.Now()
- unActiveTime = []int{30, 90}
- )
- //活跃用户分析
- for _, source := range sourceArr {
- if res, err := manager.ActiveUserLoad(ctx, nowTime.AddDate(0, 0, -30), source); err == nil && len(res) > 0 {
- allRes = append(allRes, &userAnalysis.AnalysisRes{Name: fmt.Sprintf("30天%s活跃用户", source), Code: fmt.Sprintf("active_%s_%d", source, 30), Data: res})
- }
- }
- //未活跃用户占比
- for _, day := range unActiveTime {
- if res, err := manager.UnActiveUserLoad(ctx, nowTime.AddDate(0, 0, -day)); err == nil && len(res) > 0 {
- allRes = append(allRes, &userAnalysis.AnalysisRes{Name: fmt.Sprintf("%d天未活跃用户", day), Code: fmt.Sprintf("unActive_%d", day), Data: res})
- }
- }
- for _, re := range allRes {
- re.UpdateTag(ctx)
- }
- }
|