123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- package userAnalysis
- import (
- "context"
- "github.com/gogf/gf/v2/frame/g"
- "github.com/gogf/gf/v2/util/gconv"
- "time"
- )
- var (
- ctx = context.TODO()
- ActiveCodeMap map[string]interface{}
- )
- func init() {
- ActiveCodeMap = g.Cfg().MustGet(ctx, "activeCode.pcCode").Map()
- }
- // ActiveUserLoad 活跃用户
- func (ua *UserAnalysis) ActiveUserLoad(ctx context.Context, start time.Time, source string) (map[BaseUserId]bool, error) {
- var (
- execSql = "SELECT DISTINCT(baseUserId) as baseUserId FROM user_log_byHour WHERE create_time > ? "
- values = []interface{}{start.Format(time.DateTime)}
- )
- if source == "wx" || source == "pc" || source == "app" {
- execSql += " AND s_source =? "
- values = append(values, source)
- }
- rPc, err := g.DB().Query(ctx, execSql, values...)
- if err != nil {
- return nil, err
- }
- activeUser := map[BaseUserId]bool{}
- for _, m := range rPc.List() {
- // 插入pc30天活跃用户
- activeUser[BaseUserId(gconv.Int64(m["baseUserId"]))] = true
- }
- return activeUser, nil
- }
- // UnActiveUserLoad 未活跃用户
- func (ua *UserAnalysis) UnActiveUserLoad(ctx context.Context, start time.Time) (map[BaseUserId]bool, error) {
- rPc, err := g.DB().Query(ctx, `SELECT DISTINCT(dmp.baseUserId) as baseUserId1 FROM dwd_mgo_position dmp
- left join ( SELECT DISTINCT(baseUserId) as baseUserId
- FROM user_log_byHour ulbh
- WHERE create_time > ? ) ulog on dmp.baseUserId =ulog.baseUserId where ulog.baseUserId=0`, start.Format(time.DateTime))
- if err != nil {
- return nil, err
- }
- unActiveUser := map[BaseUserId]bool{}
- for _, m := range rPc.List() {
- // 插入pc30天活跃用户
- unActiveUser[BaseUserId(gconv.Int64(m["baseUserId1"]))] = true
- }
- return unActiveUser, nil
- }
|