Initial commit

This commit is contained in:
2026-05-20 16:13:58 +08:00
commit ceffbe382e
500 changed files with 157469 additions and 0 deletions
+177
View File
@@ -0,0 +1,177 @@
package dailystatmod
import (
"context"
"fmt"
"stat/common/log"
"stat/common/mongos"
"stat/common/utils"
"time"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
"go.mongodb.org/mongo-driver/bson"
)
// 初始化model
func Init() {
// 获取数据库表
db = mongos.New(mongos.MgoManager, CollDailyStat)
indexes := []mongo.IndexModel{
{
Keys: bson.D{{Key: "sumDate", Value: 1}},
},
}
if _, err := db.CreateIndex(context.Background(), indexes); err != nil {
panic(fmt.Sprintf("Model %s InitIndex error %+v", CollDailyStat, err))
}
}
// UpsertDailyStat 更新或插入一条统计记录
func UpsertDailyStat(ctx context.Context, sumDate time.Time, appId int32, doc DailyStatDoc) (err error) {
var filter = bson.M{
"sumDate": sumDate,
"appId": appId,
}
var update = mongos.ToBsonM(doc)
exists, err := db.Exists(ctx, filter)
if err != nil {
return err
}
if exists {
_, err = db.UpdateOne(ctx, filter, bson.M{"$set": update})
} else {
insertDoc := update
insertDoc["sumDate"] = sumDate
insertDoc["appId"] = appId
_, err = db.InsertOne(ctx, insertDoc)
}
return
}
// 获取日常统计列表
func GetDailyStatList(ctx context.Context, appId *[]int32, start, end *time.Time, skip, limit int64) (count int64, data []*DailyStatMod, err error) {
filter := bson.M{}
if appId != nil {
filter["appId"] = bson.M{"$in": appId}
}
if start != nil && end != nil {
filter["sumDate"] = bson.M{"$gte": start, "$lt": end}
} else if start != nil {
filter["sumDate"] = bson.M{"$gte": start}
} else if end != nil {
filter["sumDate"] = bson.M{"$lt": end}
}
sort := bson.D{{Key: "sumDate", Value: -1}}
opts := options.Find().SetSort(sort).SetSkip(skip).SetLimit(limit)
if err = db.Find(ctx, &data, filter, opts); err != nil {
log.Error("channel GetDailyStatList Find err", log.E(err))
return
}
if count, err = db.Count(ctx, filter); err != nil {
log.Error("channel GetDailyStatList Count err", log.E(err))
return
}
return
}
// 获取日常统计列表
func GetDailyStatTotalList(ctx context.Context, appId *int32, start, end *time.Time) (data []*DailyStatMod, err error) {
filter := bson.M{}
if appId != nil {
filter["appId"] = appId
}
if start != nil && end != nil {
filter["sumDate"] = bson.M{"$gte": start, "$lt": end}
} else if start != nil {
filter["sumDate"] = bson.M{"$gte": start}
} else if end != nil {
filter["sumDate"] = bson.M{"$lt": end}
}
if err = db.Find(ctx, &data, filter); err != nil {
log.Error("channel GetDailyStatList Find err", log.E(err))
return
}
return
}
type OnItem func(item *DailyStatMod)
// 获取日常统计列表
func GetDailyStatTotalListShard(ctx context.Context, appId *[]int32, start, end *time.Time, shard time.Duration, onItem OnItem) error {
if start == nil {
b := utils.DefaultStatBeginTime
start = &b
}
if end == nil {
e := time.Now()
end = &e
}
segments := utils.CalcTimeSegments(*start, *end, shard)
for _, segment := range segments {
filter := bson.M{
"sumDate": bson.M{"$gte": segment.Begin, "$lt": segment.End},
}
if appId != nil {
filter["appId"] = bson.M{"$in": appId}
}
list := make([]*DailyStatMod, 0)
if err := db.Find(ctx, &list, filter); err != nil {
log.Error("channel GetDailyStatList Find err", log.E(err))
return err
}
for _, item := range list {
onItem(item)
}
}
return nil
}
// 获取日常统计列表
func FindOneDailyStat(ctx context.Context, appId int32, sumDate time.Time) (data DailyStatMod, err error) {
filter := bson.M{
"appId": appId,
"sumDate": sumDate,
}
if err = db.FindOne(ctx, &data, filter); err != nil {
log.Error("channel GetDailyStatList Find err", log.E(err))
return
}
return
}
func FindDailyStatList(ctx context.Context, appIds []int32, sumDate time.Time) (list []DailyStatMod, err error) {
filter := bson.M{
"appId": bson.M{"$in": appIds},
"sumDate": sumDate,
}
log.Info("FindDailyStatList", log.Any("filter", filter))
list = make([]DailyStatMod, 0)
if err = db.Find(ctx, &list, filter); err != nil {
log.Error("channel GetDailyStatList Find err", log.E(err))
return
}
return
}
+24
View File
@@ -0,0 +1,24 @@
package dailystatmod
import "time"
var (
fixTime time.Time
)
func init() {
time.Local, _ = time.LoadLocation("Asia/Shanghai")
fixTime, _ = time.ParseInLocation("2006-01-02", "2023-07-14", time.Local)
}
func (s *DailyStatMod) CorrectValidData() *DailyStatMod {
if s.SumDate.Before(fixTime) {
s.TotalAmount = s.DirectAmount + s.FissionAmount + s.DeductionAmount
s.NewTotalCount = s.NewDirectCount + s.NewFissionCount + s.NewDeductionCount
s.TotalVisitCount = s.DirectVisitCount + s.FissionVisitCount + s.DeductionVisitCount
s.LightAddCount = s.LightDirectCount + s.LightFissionCount + s.LightDeductionCount
s.LightRechargeCount = s.LightDirectRechargeCount + s.LightFissionRechargeCount + s.LightDeductionRechargeCount
s.LightRechargeAmount = s.LightDirectRechargeAmount + s.LightFissionRechargeAmount + s.LightDeductionRechargeAmount
}
return s
}
+260
View File
@@ -0,0 +1,260 @@
package dailystatmod
import (
"stat/common/mongos"
"time"
)
// 表名
const CollDailyStat = "daily_stat"
var db *mongos.MongoTool
// DailyStatMod APP日常统计
type DailyStatMod struct {
SumDate time.Time `bson:"sumDate"` // 记录时间 按天对齐
AppId int32 `bson:"appId"` // appId
// 注册用户
NewTotalCount int64 `bson:"newTotalCount,omitempty"` // 注册总量
NewDirectCount int64 `bson:"newDirectCount,omitempty"` // 直推注册
NewFissionCount int64 `bson:"newFissionCount,omitempty"` // 裂变注册
NewDeductionCount int64 `bson:"newDeductionCount,omitempty"` // 扣量注册
NewNaturalCount int64 `bson:"newNaturalCount,omitempty"` // 自然注册
NewWebCount int64 `bson:"newWebCount,omitempty"` // 官网注册
NewDistrictCount int64 `bson:"newDistrictCount,omitempty"` // 渠道注册
NewNormalCount int64 `bson:"newNormalCount,omitempty"` // 自来注册
AndroidAddCount int64 `bson:"androidAddCount,omitempty"` // android注册
IosAddCount int64 `bson:"iosAddCount,omitempty"` // ios注册
// 轻量注册
LightAddCount int64 `bson:"lightAddCount,omitempty"` // ##轻量注册
LightGuestAddCount int64 `bson:"lightGuestAddCount,omitempty"` // 轻量游客注册
LightFormalAddCount int64 `bson:"lightFormalAddCount,omitempty"` // 轻量正式注册
LightDirectCount int64 `bson:"lightDirectCount,omitempty"` // 轻量直推注册
LightFissionCount int64 `bson:"lightFissionCount,omitempty"` // 轻量裂变注册
LightDeductionCount int64 `bson:"lightDeductionCount,omitempty"` // 轻量扣量注册
LightNaturalCount int64 `bson:"lightNaturalCount,omitempty"` // 轻量自然注册
LightWebCount int64 `bson:"lightWebCount,omitempty"` // 轻量官网注册
LightDistrictCount int64 `bson:"lightDistrictCount,omitempty"` // 轻量渠道注册
LightNormalCount int64 `bson:"lightNormalCount,omitempty"` // 轻量自来注册
// H5注册
H5AddCount int64 `bson:"h5AddCount,omitempty"` // H5注册
H5FormalCount int64 `bson:"h5FormalCount,omitempty"` // H5正式注册
H5PcAddCount int64 `bson:"h5PcAddCount,omitempty"` // H5Pc注册
H5IosAddCount int64 `bson:"h5IosAddCount,omitempty"` // H5Ios注册
H5AndroidAddCount int64 `bson:"h5AndroidAddCount,omitempty"` // H5Android注册
// 访问统计
TotalVisitCount int64 `bson:"totalVisitCount,omitempty"` // 总计访问数
DirectVisitCount int64 `bson:"directVisitCount,omitempty"` // 直推访问数
FissionVisitCount int64 `bson:"fissionVisitCount,omitempty"` // 裂变访问数
DeductionVisitCount int64 `bson:"deductionVisitCount,omitempty"` // 扣量访问数
NaturalVisitCount int64 `bson:"naturalVisitCount,omitempty"` // 自然访问数
TodayDistrictVisitCount int64 `bson:"todayDistrictVisitCount,omitempty"` // 当日渠道访问量
TodayWebVisitCount int64 `bson:"todayWebVisitCount,omitempty"` // 当日官网访问量
TodayNormalVisitCount int64 `bson:"todayNormalVisitCount,omitempty"` // 当日自来访问量
TodayIosVisitCount int64 `bson:"todayIosVisitCount,omitempty"` // 当日IOS访问量
TodayAndroidVisitCount int64 `bson:"todayAndroidVisitCount,omitempty"` // 当日安卓访问量
// 轻量访问
LightVisitCount int64 `bson:"lightVisitCount,omitempty"` // 当日Light访问量
LightDirectVisitCount int64 `bson:"lightDirectVisitCount,omitempty"` // 轻量直推访问
LightFissionVisitCount int64 `bson:"lightFissionVisitCount,omitempty"` // 轻量裂变访问
LightDeductionVisitCount int64 `bson:"lightDeductionVisitCount,omitempty"` // 轻量扣量访问
LightNaturalVisitCount int64 `bson:"lightNaturalVisitCount,omitempty"` // 轻量自然访问
LightWebVisitCount int64 `bson:"lightWebVisitCount,omitempty"` // 轻量官网访问
LightDistrictVisitCount int64 `bson:"lightDistrictVisitCount,omitempty"` // 轻量渠道访问
LightNormalVisitCount int64 `bson:"lightNormalVisitCount,omitempty"` // 轻量自来访问
// H5访问
TodayH5VisitCount int64 `bson:"todayH5VisitCount,omitempty"` // 当日H5访问量
TodayH5PcVisitCount int64 `bson:"todayH5PcVisitCount,omitempty"` // 当日H5Pc访问量
TodayH5IosVisitCount int64 `bson:"todayH5IosVisitCount,omitempty"` // 当日H5Ios访问量
TodayH5AndroidVisitCount int64 `bson:"todayH5AndroidVisitCount,omitempty"` // 当日H5Android访问量
// 落地页访问
LandpageAndroidClick int64 `bson:"landpageAndroidClick,omitempty"` // 落地页android访问次数
LandpageIosAppstoreClick int64 `bson:"landpageIosAppstoreClick,omitempty"` // 落地页iOS商店包访问次数
LandpageIosAthorClick int64 `bson:"landpageIosAthorClick,omitempty"` // 落地页iOS其他包访问次数
LandpageIosH5Click int64 `bson:"landpageIosH5Click,omitempty"` // 落地页H5访问次数
// 当日充值
TotalAmount int64 `bson:"totalAmount,omitempty"` // 充值金额
SuccessRechargeOrder int64 `bson:"successRechargeOrder,omitempty"` // 充值成功订单数
DirectAmount int64 `bson:"directAmount,omitempty"` // 直推充值金额
DirectAmountCount int64 `bson:"directAmountcount,omitempty"` // 直推充值订单
FissionAmount int64 `bson:"fissionAmount,omitempty"` // 裂变充值金额
FissionAmountCount int64 `bson:"fissionAmountcount,omitempty"` // 裂变充值订单
DeductionAmount int64 `bson:"deductionAmount,omitempty"` // 扣量金额
DeductionAmountCount int64 `bson:"deductionAmountCount,omitempty"` // 扣量充值订单
NaturalAmount int64 `bson:"naturalAmount,omitempty"` // 自然充值
NaturalAmountCount int64 `bson:"naturalAmountCount,omitempty"` // 自然充值订单
TodayDistrictRecharge int64 `bson:"todayDistrictRecharge,omitempty"` // 当日渠道充值新增
TodayWebRecharge int64 `bson:"todayWebRecharge,omitempty"` // 当日官网充值新增
TodayNormalRecharge int64 `bson:"todayNormalRecharge,omitempty"` // 当日自来量充值新增
TodayAndroidRecharge int64 `bson:"todayAndroidRecharge,omitempty"` // 当日android充值
TodayIosRecharge int64 `bson:"todayIosRecharge,omitempty"` // 当日Ios充值
TodayH5Recharge int64 `bson:"todayH5Recharge,omitempty"` // 当日H5充值
TodayH5FormalRecharge int64 `bson:"todayH5FormalRecharge,omitempty"` // 当日H5Formal充值
TodayH5PcRecharge int64 `bson:"todayH5PcRecharge,omitempty"` // 当日H5Pc充值
TodayH5IosRecharge int64 `bson:"todayH5IosRecharge,omitempty"` // 当日H5Ios充值
TodayH5AndroidRecharge int64 `bson:"todayH5AndroidRecharge,omitempty"` // 当日H5Android充值
// 轻量充值次数
LightRechargeCount int64 `bson:"lightRechargeCount,omitempty"` // 当日轻量充值次数
LightDirectRechargeCount int64 `bson:"lightDirectRechargeCount,omitempty"` // 轻量直推充值次数
LightFissionRechargeCount int64 `bson:"lightFissionRechargeCount,omitempty"` // 轻量裂变充值次数
LightDeductionRechargeCount int64 `bson:"lightDeductionRechargeCount,omitempty"` // 轻量扣量充值次数
LightNaturalRechargeCount int64 `bson:"lightNaturalRechargeCount,omitempty"` // 轻量自然充值次数
LightWebRechargeCount int64 `bson:"lightWebRechargeCount,omitempty"` // 轻量官网充值次数
LightDistrictRechargeCount int64 `bson:"lightDistrictRechargeCount,omitempty"` // 轻量渠道充值次数
LightNormalRechargeCount int64 `bson:"lightNormalRechargeCount,omitempty"` // 轻量自来充值次数
// 轻量充值钱数
LightRechargeAmount int64 `bson:"lightRechargeAmount,omitempty"` // 当日轻量充值钱数
LightDirectRechargeAmount int64 `bson:"lightDirectRechargeAmount,omitempty"` // 轻量直推充值钱数
LightFissionRechargeAmount int64 `bson:"lightFissionRechargeAmount,omitempty"` // 轻量裂变充值钱数
LightDeductionRechargeAmount int64 `bson:"lightDeductionRechargeAmount,omitempty"` // 轻量扣量充值钱数
LightNaturalRechargeAmount int64 `bson:"lightNaturalRechargeAmount,omitempty"` // 轻量自然充值钱数
LightWebRechargeAmount int64 `bson:"lightWebRechargeAmount,omitempty"` // 轻量官网充值钱数
LightDistrictRechargeAmount int64 `bson:"lightDistrictRechargeAmount,omitempty"` // 轻量渠道充值钱数
LightNormalRechargeAmount int64 `bson:"lightNormalRechargeAmount,omitempty"` // 轻量自来充值钱数
// 其他充值
VipPayByMoney int64 `bson:"vipPayByMoney,omitempty"` // 人民币购买
VipPayByAmount int64 `bson:"vipPayByAmount,omitempty"` // 余额购买
RepeatAmount int64 `bson:"repeatAmount,omitempty"` // 复冲金额
RepeatCount int64 `bson:"repeatCount,omitempty"` // 复冲人数
// 游戏充值
GameRechageAmount int64 `bson:"gameRechageAmount,omitempty"` // 游戏充值
GameWithdrawAmount int64 `bson:"gameWithdrawAmount,omitempty"` // 游戏提现
//
TodayVipRecharge int64 `bson:"todayVipRecharge,omitempty"` // 当日渠道充值新增
NewVipPayMoney int64 `bson:"newVipPayMoney,omitempty"` // 新增购买VIP
RepeatVipMoney int64 `bson:"repeatVipMoney,omitempty"` // 复冲VIP
// 新增充值
NewRechargeAmount int64 `bson:"newRechargeAmount,omitempty"` // 新增充值金额(新用户)
NewRechargeCount int64 `bson:"newRechargeCount,omitempty"` // 新增充值数(新用户)
// 留存率
Day1RetainRate float64 `bson:"day1RetainRate,omitempty"` // 次日留存率
Day3RetainRate float64 `bson:"day3RetainRate,omitempty"` // 3日留存率
Day7RetainRate float64 `bson:"day7RetainRate,omitempty"` // 7日留存率
// 订单
TotalRechargeOrder int64 `bson:"totalRechargeOrder,omitempty"` // 拉起订单数
// 时间
UpdatedAt time.Time `bson:"updatedAt,omitempty"` // 更新时间
}
type DailyStatDoc struct {
// 注册用户
NewTotalCount *int64 `bson:"newTotalCount,omitempty"` // **注册总量
NewDirectCount *int64 `bson:"newDirectCount,omitempty"` // 直推注册
NewFissionCount *int64 `bson:"newFissionCount,omitempty"` // 裂变注册
NewDeductionCount *int64 `bson:"newDeductionCount,omitempty"` // 扣量注册
NewNaturalCount *int64 `bson:"newNaturalCount,omitempty"` // 自然注册
NewWebCount *int64 `bson:"newWebCount,omitempty"` // 官网注册
NewDistrictCount *int64 `bson:"newDistrictCount,omitempty"` // 渠道注册
NewNormalCount *int64 `bson:"newNormalCount,omitempty"` // 自来注册
AndroidAddCount *int64 `bson:"androidAddCount,omitempty"` // android注册
IosAddCount *int64 `bson:"iosAddCount,omitempty"` // ios注册
// 轻量注册
LightAddCount *int64 `bson:"lightAddCount,omitempty"` // ##轻量注册
LightGuestAddCount *int64 `bson:"lightGuestAddCount,omitempty"` // 轻量游客注册
LightFormalAddCount *int64 `bson:"lightFormalAddCount,omitempty"` // 轻量正式注册
LightDirectCount *int64 `bson:"lightDirectCount,omitempty"` // 轻量直推注册
LightFissionCount *int64 `bson:"lightFissionCount,omitempty"` // 轻量裂变注册
LightDeductionCount *int64 `bson:"lightDeductionCount,omitempty"` // 轻量扣量注册
LightNaturalCount *int64 `bson:"lightNaturalCount,omitempty"` // 轻量自然注册
LightWebCount *int64 `bson:"lightWebCount,omitempty"` // 轻量官网注册
LightDistrictCount *int64 `bson:"lightDistrictCount,omitempty"` // 轻量渠道注册
LightNormalCount *int64 `bson:"lightNormalCount,omitempty"` // 轻量自来注册
// H5注册
H5AddCount *int64 `bson:"h5AddCount,omitempty"` // H5注册
H5FormalCount *int64 `bson:"h5FormalCount,omitempty"` // H5正式注册
H5PcAddCount *int64 `bson:"h5PcAddCount,omitempty"` // H5Pc注册
H5IosAddCount *int64 `bson:"h5IosAddCount,omitempty"` // H5Ios注册
H5AndroidAddCount *int64 `bson:"h5AndroidAddCount,omitempty"` // H5Android注册
// 访问统计
TotalVisitCount *int64 `bson:"totalVisitCount,omitempty"` // **总计访问数
DirectVisitCount *int64 `bson:"directVisitCount,omitempty"` // 直推访问数
FissionVisitCount *int64 `bson:"fissionVisitCount,omitempty"` // 裂变访问数
DeductionVisitCount *int64 `bson:"deductionVisitCount,omitempty"` // 扣量访问数
NaturalVisitCount *int64 `bson:"naturalVisitCount,omitempty"` // **自然访问数
TodayDistrictVisitCount *int64 `bson:"todayDistrictVisitCount,omitempty"` // **当日渠道访问量
TodayWebVisitCount *int64 `bson:"todayWebVisitCount,omitempty"` // **当日官网访问量
TodayNormalVisitCount *int64 `bson:"todayNormalVisitCount,omitempty"` // **当日自来访问量
TodayIosVisitCount *int64 `bson:"todayIosVisitCount,omitempty"` // 当日IOS访问量
TodayAndroidVisitCount *int64 `bson:"todayAndroidVisitCount,omitempty"` // 当日安卓访问量
// 轻量访问
LightVisitCount *int64 `bson:"lightVisitCount,omitempty"` // 当日Light访问量
LightDirectVisitCount *int64 `bson:"lightDirectVisitCount,omitempty"` // 轻量直推访问
LightFissionVisitCount *int64 `bson:"lightFissionVisitCount,omitempty"` // 轻量裂变访问
LightDeductionVisitCount *int64 `bson:"lightDeductionVisitCount,omitempty"` // 轻量扣量访问
LightNaturalVisitCount *int64 `bson:"lightNaturalVisitCount,omitempty"` // 轻量自然访问
LightWebVisitCount *int64 `bson:"lightWebVisitCount,omitempty"` // 轻量官网访问
LightDistrictVisitCount *int64 `bson:"lightDistrictVisitCount,omitempty"` // 轻量渠道访问
LightNormalVisitCount *int64 `bson:"lightNormalVisitCount,omitempty"` // 轻量自来访问
// H5访问
TodayH5VisitCount *int64 `bson:"todayH5VisitCount,omitempty"` // 当日H5访问量
TodayH5PcVisitCount *int64 `bson:"todayH5PcVisitCount,omitempty"` // 当日H5Pc访问量
TodayH5IosVisitCount *int64 `bson:"todayH5IosVisitCount,omitempty"` // 当日H5Ios访问量
TodayH5AndroidVisitCount *int64 `bson:"todayH5AndroidVisitCount,omitempty"` // 当日H5Android访问量
// 落地页访问
LandpageAndroidClick *int64 `bson:"landpageAndroidClick,omitempty"` // 落地页android访问次数
LandpageIosAppstoreClick *int64 `bson:"landpageIosAppstoreClick,omitempty"` // 落地页iOS商店包访问次数
LandpageIosAthorClick *int64 `bson:"landpageIosAthorClick,omitempty"` // 落地页iOS其他包访问次数
LandpageIosH5Click *int64 `bson:"landpageIosH5Click,omitempty"` // 落地页H5访问次数
// 当日充值
TotalAmount *int64 `bson:"totalAmount,omitempty"` // 充值金额
SuccessRechargeOrder *int64 `bson:"successRechargeOrder,omitempty"` // 充值成功订单数
DirectAmount *int64 `bson:"directAmount,omitempty"` // 直推充值金额
DirectAmountCount *int64 `bson:"directAmountcount,omitempty"` // 直推充值订单
FissionAmount *int64 `bson:"fissionAmount,omitempty"` // 裂变充值金额
FissionAmountCount *int64 `bson:"fissionAmountcount,omitempty"` // 裂变充值订单
DeductionAmount *int64 `bson:"deductionAmount,omitempty"` // 扣量金额
DeductionAmountCount *int64 `bson:"deductionAmountCount,omitempty"` // 扣量充值订单
NaturalAmount *int64 `bson:"naturalAmount,omitempty"` // 自然充值
NaturalAmountCount *int64 `bson:"naturalAmountCount,omitempty"` // **自然充值订单
TodayDistrictRecharge *int64 `bson:"todayDistrictRecharge,omitempty"` // 当日渠道充值新增
TodayWebRecharge *int64 `bson:"todayWebRecharge,omitempty"` // 当日官网充值新增
TodayNormalRecharge *int64 `bson:"todayNormalRecharge,omitempty"` // 当日自来量充值新增
TodayAndroidRecharge *int64 `bson:"todayAndroidRecharge,omitempty"` // 当日android充值
TodayIosRecharge *int64 `bson:"todayIosRecharge,omitempty"` // 当日Ios充值
TodayH5Recharge *int64 `bson:"todayH5Recharge,omitempty"` // 当日H5充值
TodayH5FormalRecharge *int64 `bson:"todayH5FormalRecharge,omitempty"` // 当日H5Formal充值
TodayH5PcRecharge *int64 `bson:"todayH5PcRecharge,omitempty"` // 当日H5Pc充值
TodayH5IosRecharge *int64 `bson:"todayH5IosRecharge,omitempty"` // 当日H5Ios充值
TodayH5AndroidRecharge *int64 `bson:"todayH5AndroidRecharge,omitempty"` // 当日H5Android充值
// 轻量充值次数
LightRechargeCount *int64 `bson:"lightRechargeCount,omitempty"` // 当日轻量充值次数
LightDirectRechargeCount *int64 `bson:"lightDirectRechargeCount,omitempty"` // 轻量直推充值次数
LightFissionRechargeCount *int64 `bson:"lightFissionRechargeCount,omitempty"` // 轻量裂变充值次数
LightDeductionRechargeCount *int64 `bson:"lightDeductionRechargeCount,omitempty"` // 轻量扣量充值次数
LightNaturalRechargeCount *int64 `bson:"lightNaturalRechargeCount,omitempty"` // 轻量自然充值次数
LightWebRechargeCount *int64 `bson:"lightWebRechargeCount,omitempty"` // 轻量官网充值次数
LightDistrictRechargeCount *int64 `bson:"lightDistrictRechargeCount,omitempty"` // 轻量渠道充值次数
LightNormalRechargeCount *int64 `bson:"lightNormalRechargeCount,omitempty"` // 轻量自来充值次数
// 轻量充值钱数
LightRechargeAmount *int64 `bson:"lightRechargeAmount,omitempty"` // 当日轻量充值钱数
LightDirectRechargeAmount *int64 `bson:"lightDirectRechargeAmount,omitempty"` // 轻量直推充值钱数
LightFissionRechargeAmount *int64 `bson:"lightFissionRechargeAmount,omitempty"` // 轻量裂变充值钱数
LightDeductionRechargeAmount *int64 `bson:"lightDeductionRechargeAmount,omitempty"` // 轻量扣量充值钱数
LightNaturalRechargeAmount *int64 `bson:"lightNaturalRechargeAmount,omitempty"` // 轻量自然充值钱数
LightWebRechargeAmount *int64 `bson:"lightWebRechargeAmount,omitempty"` // 轻量官网充值钱数
LightDistrictRechargeAmount *int64 `bson:"lightDistrictRechargeAmount,omitempty"` // 轻量渠道充值钱数
LightNormalRechargeAmount *int64 `bson:"lightNormalRechargeAmount,omitempty"` // 轻量自来充值钱数
// 其他充值
VipPayByMoney *int64 `bson:"vipPayByMoney,omitempty"` // 人民币购买
VipPayByAmount *int64 `bson:"vipPayByAmount,omitempty"` // 余额购买
RepeatAmount *int64 `bson:"repeatAmount,omitempty"` // 复冲金额
RepeatCount *int64 `bson:"repeatCount,omitempty"` // 复冲人数
// 游戏充值
GameRechageAmount *int64 `bson:"gameRechageAmount,omitempty"` // 游戏充值
GameWithdrawAmount *int64 `bson:"gameWithdrawAmount,omitempty"` // 游戏提现
//
TodayVipRecharge *int64 `bson:"todayVipRecharge,omitempty"` // 当日渠道充值新增
NewVipPayMoney *int64 `bson:"newVipPayMoney,omitempty"` // 新增购买VIP
RepeatVipMoney *int64 `bson:"repeatVipMoney,omitempty"` // 复冲VIP
// 新增充值
NewRechargeAmount *int64 `bson:"newRechargeAmount,omitempty"` // 新增充值金额(新用户)
NewRechargeCount *int64 `bson:"newRechargeCount,omitempty"` // 新增充值数(新用户)
// 留存率
Day1RetainRate *float64 `bson:"day1RetainRate,omitempty"` // 次日留存率
Day3RetainRate *float64 `bson:"day3RetainRate,omitempty"` // 3日留存率
Day7RetainRate *float64 `bson:"day7RetainRate,omitempty"` // 7日留存率
// 订单
TotalRechargeOrder *int64 `bson:"totalRechargeOrder,omitempty"` // 拉起订单数
}