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
+24
View File
@@ -0,0 +1,24 @@
package dailyhourstatmod
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 *DailyHourStat) CorrectValidData() *DailyHourStat {
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.NewLightCount = s.NewLightDirectCount + s.NewLightFissionCount + s.NewLightDeductionCount
s.LightAmount = s.LightDirectAmount + s.LightFissionAmount + s.LightDeductionAmount
s.LightAmountCount = s.LightDirectAmountCount + s.LightFissionAmountCount + s.LightDeductionAmountCount
}
return s
}
+155
View File
@@ -0,0 +1,155 @@
package dailyhourstatmod
import (
"context"
"fmt"
"stat/common/log"
"stat/common/mongos"
"time"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
)
var db *mongos.MongoTool
func Init(ctx context.Context) {
// 获取数据库表
db = mongos.New(mongos.MgoManager, TN.DailyHourStat)
// 初始化索引
indexes := []mongo.IndexModel{
{
Keys: bson.D{
{Key: FN.DailyHourStat.SumDate, Value: 1},
{Key: FN.DailyHourStat.AppId, Value: 1},
},
},
}
if _, err := db.CreateIndex(ctx, indexes); err != nil {
panic(fmt.Sprintf("(DailyHourStat:initDailyHourStatIndex) Create DailyHourStat Index failed! err:%+v:", err))
}
}
//InsertOneDailyHourStat 插入一个VIP购买记录
func InsertOneDailyHourStat(ctx context.Context, DailyHourStat *DailyHourStat) error {
if _, err := db.InsertOne(ctx, DailyHourStat); err != nil {
log.Warn("DailyHourStat:InsertOneDailyHourStat db.InsertOne failed", log.E(err))
return err
}
return nil
}
//FindOneDailyHourStat 查找一个VIP购买记录
func FindOneDailyHourStat(ctx context.Context, filter bson.M) (
*DailyHourStat, error) {
var DailyHourStat DailyHourStat
if err := db.FindOne(ctx, &DailyHourStat, filter); err != nil {
return nil, err
}
return &DailyHourStat, nil
}
//DelOneDailyHourStat 删除一个VIP购买记录
func DelOneDailyHourStat(ctx context.Context, filter bson.M) (
int64, error) {
count, err := db.DeleteOne(ctx, filter)
if err != nil {
log.Warn("DailyHourStat:DelOneDailyHourStat db.DeleteOne failed",
log.E(err), log.Any("filter", filter))
return 0, err
}
return count, nil
}
//UpdateOneDailyHourStat 更新一个VIP购买记录
func UpdateOneDailyHourStat(ctx context.Context, filter bson.M, update bson.M) error {
_, err := db.UpdateOne(ctx, filter, update)
if err != nil {
log.Warn("user:UpdateOneDailyHourStat db.UpdateOne failed",
log.E(err), log.Any("filter", filter))
return err
}
return nil
}
//CountDailyHourStats 统计VIP购买记录数量
func CountDailyHourStats(ctx context.Context, filter bson.M) (
int64, error) {
count, err := db.Count(ctx, filter)
if err != nil {
log.Warn("DailyHourStat:CountDailyHourStats db.Count failed",
log.E(err), log.Any("filter", filter))
return 0, err
}
return count, nil
}
//UpdateManyDailyHourStat 更新满足条件的VIP购买记录
func UpdateManyDailyHourStat(ctx context.Context, filter bson.M, update bson.M) error {
_, err := db.UpdateMany(ctx, filter, update)
if err != nil {
log.Warn("user:UpdateManyDailyHourStat db.UpdateMany failed",
log.E(err), log.Any("filter", filter))
return err
}
return nil
}
//FindManyDailyHourStat 查找一批每小时统计
func FindManyDailyHourStat(ctx context.Context, filter bson.M,
opts ...*options.FindOptions) (DailyHourStatList, error) {
data := make(DailyHourStatList, 0)
if err := db.Find(ctx, &data, filter, opts...); err != nil {
log.Warn("DailyHourStat:FindManyDailyHourStat db.Find failed", log.E(err), log.Any("filter", filter))
return nil, err
}
return data, nil
}
//FindManyDailyHourStatWithBind 用自己定义结构查找一批每小时统计
func FindManyDailyHourStatWithBind(ctx context.Context, bind interface{}, filter bson.M,
opts ...*options.FindOptions) error {
if err := db.Find(ctx, bind, filter, opts...); err != nil {
log.Warn("DailyHourStat:FindManyDailyHourStatWithBind db.Find failed", log.E(err), log.Any("filter", filter))
return err
}
return nil
}
//AggregateDailyHourStats 聚合查找一批VIP购买记录信息
func AggregateDailyHourStats(ctx context.Context,
bind interface{}, pipeline []bson.M) error {
if err := db.Aggregate(ctx, bind, pipeline); err != nil {
log.Warn("feedback:AggregateDailyHourStats db.Aggregate failed",
log.E(err), log.Any("pipeline", pipeline))
return err
}
return nil
}
// UpsertDailyStat 更新或插入一条统计记录
func UpsertDailyHourStat(ctx context.Context, sumDate time.Time, appId int32, doc DailyHourStatDoc) (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
}
+74
View File
@@ -0,0 +1,74 @@
package dailyhourstatmod
type TagDailyHourStat struct {
AppId string
DirectAmount string
DirectVisitCount string
FissionAmount string
FissionVisitCount string
GameRechageAmount string
GameWithdrawAmount string
ID string
LandpageAndroidClick string
LandpageIosAppstoreClick string
LandpageIosAthorClick string
NaturalAmount string
NewAndroidCount string
NewDeductionCount string
NewDirectCount string
NewFissionCount string
NewH5Count string
NewIosCount string
NewNaturalCount string
NewRechargeAmount string
RepeatAmount string
SuccessRechargeOrder string
SumDate string
SumHour string
TotalRechargeOrder string
UpdatedAt string
VipPayByAmount string
VipPayByMoney string
VipRepeatAmount string
}
var FN struct {
DailyHourStat TagDailyHourStat
}
var TN struct {
DailyHourStat string
}
func init() {
FN.DailyHourStat.AppId = "appId"
FN.DailyHourStat.DirectAmount = "directAmount"
FN.DailyHourStat.DirectVisitCount = "directVisitCount"
FN.DailyHourStat.FissionAmount = "fissionAmount"
FN.DailyHourStat.FissionVisitCount = "fissionVisitCount"
FN.DailyHourStat.GameRechageAmount = "gameRechageAmount"
FN.DailyHourStat.GameWithdrawAmount = "gameWithdrawAmount"
FN.DailyHourStat.ID = "_id"
FN.DailyHourStat.LandpageAndroidClick = "landpageAndroidClick"
FN.DailyHourStat.LandpageIosAppstoreClick = "landpageIosAppstoreClick"
FN.DailyHourStat.LandpageIosAthorClick = "landpageIosAthorClick"
FN.DailyHourStat.NaturalAmount = "naturalAmount"
FN.DailyHourStat.NewAndroidCount = "newAndroidCount"
FN.DailyHourStat.NewDeductionCount = "newDeductionCount"
FN.DailyHourStat.NewDirectCount = "newDirectCount"
FN.DailyHourStat.NewFissionCount = "newFissionCount"
FN.DailyHourStat.NewH5Count = "newH5Count"
FN.DailyHourStat.NewIosCount = "newIosCount"
FN.DailyHourStat.NewNaturalCount = "newNaturalCount"
FN.DailyHourStat.NewRechargeAmount = "newRechargeAmount"
FN.DailyHourStat.RepeatAmount = "repeatAmount"
FN.DailyHourStat.SuccessRechargeOrder = "successRechargeOrder"
FN.DailyHourStat.SumDate = "sumDate"
FN.DailyHourStat.SumHour = "sumHour"
FN.DailyHourStat.TotalRechargeOrder = "totalRechargeOrder"
FN.DailyHourStat.UpdatedAt = "updatedAt"
FN.DailyHourStat.VipPayByAmount = "vipPayByAmount"
FN.DailyHourStat.VipPayByMoney = "vipPayByMoney"
FN.DailyHourStat.VipRepeatAmount = "vipRepeatAmount"
TN.DailyHourStat = "daily_hour_stat"
}
+285
View File
@@ -0,0 +1,285 @@
package dailyhourstatmod
import (
"time"
"go.mongodb.org/mongo-driver/bson/primitive"
)
// 帖子模型,数据库中的
// @table:daily_hour_stat
type DailyHourStat struct {
ID primitive.ObjectID `bson:"_id,omitempty"` // ID
SumDate time.Time `bson:"sumDate"` // 记录时间 按天对齐
AppId int32 `bson:"appId"` // appId
SumHour int `bson:"sumHour,omitempty"` // 小时数
// 注册用户
NewTotalCount int64 `bson:"newTotalCount,omitempty"` // **新增总量
// ------分类1
NewDirectCount int64 `bson:"newDirectCount,omitempty"` // 新增直推
NewFissionCount int64 `bson:"newFissionCount,omitempty"` // 新增裂变
NewDeductionCount int64 `bson:"newDeductionCount,omitempty"` // 新增扣量
NewNaturalCount int64 `bson:"newNaturalCount,omitempty"` // 自然新增
DeductionVisitCount int64 `bson:"deductionVisitCount,omitempty"` // 新增扣量
// ------分类2
NewAndroidCount int64 `bson:"newAndroidCount,omitempty"` // android新增
NewIosCount int64 `bson:"newIosCount,omitempty"` // ios新增
// ------分类3
NewLightCount int64 `bson:"newLightCount,omitempty"` // light新增
NewLightGuestCount int64 `bson:"newLightGuestCount,omitempty"` // light新增安装
NewLightFormalCount int64 `bson:"newLightFormalCount,omitempty"` // light新增注册
NewLightDirectCount int64 `bson:"newLightDirectCount,omitempty"` // light新增直推
NewLightFissionCount int64 `bson:"newLightFissionCount,omitempty"` // light新增裂变
NewLightDeductionCount int64 `bson:"newLightDeductionCount,omitempty"` // light新增扣量
NewLightNaturalCount int64 `bson:"newLightNaturalCount,omitempty"` // light自然新增
NewLightWebCount int64 `bson:"newLightWebCount,omitempty"` // light官网新增
NewLightNormalCount int64 `bson:"newLightNormalCount,omitempty"` // light自来新增
NewLightDistrictCount int64 `bson:"newLightDistrictCount,omitempty"` // light渠道新增
// ------分类4
NewH5Count int64 `bson:"newH5Count,omitempty"` // H5新增
NewH5FormalCount int64 `bson:"newH5FormalCount,omitempty"` // H5注册新增
NewH5PcCount int64 `bson:"newH5PcCount,omitempty"` // +H5PC新增
NewH5IosCount int64 `bson:"NewH5IosCount,omitempty"` // +H5IOS新增
NewH5AndroidCount int64 `bson:"newH5AndroidCount,omitempty"` // +H5Android新增
// ------分类4
NewWebCount int64 `bson:"newWebCount,omitempty"` // **官网新增
NewNormalCount int64 `bson:"newNormalCount,omitempty"` // **自来新增
NewDistrictCount int64 `bson:"newDistrictCount,omitempty"` // **渠道新增
// 访问统计
TotalVisitCount int64 `bson:"totalVisitCount,omitempty"` // **访问总量
// ------分类1
DirectVisitCount int64 `bson:"directVisitCount,omitempty"` // 直推访问数
FissionVisitCount int64 `bson:"fissionVisitCount,omitempty"` // 裂变访问数
NaturalVisitCount int64 `bson:"naturalVisitCount,omitempty"` // **自然访问数
// ------分类2
IosVisitCount int64 `bson:"iosVisitCount,omitempty"` // +Ios访问量
AndroidVisitCount int64 `bson:"androidVisitCount,omitempty"` // +Android访问量
// ------分类3
LightVisitCount int64 `bson:"lightVisitCount,omitempty"` // light访问量
LightVisitDirectCount int64 `bson:"lightVisitDirectCount,omitempty"` // light访问量直推
LightVisitFissionCount int64 `bson:"lightVisitFissionCount,omitempty"` // light访问量裂变
LightVisitDeductionCount int64 `bson:"lightVisitDeductionCount,omitempty"` // light访问量扣量
LightVisitNaturalCount int64 `bson:"lightVisitNaturalCount,omitempty"` // light访问量自然
LightVisitWebCount int64 `bson:"lightVisitWebCount,omitempty"` // light访问量官网
LightVisitNormalCount int64 `bson:"lightVisitNormalCount,omitempty"` // light访问量自来
LightVisitDistrictCount int64 `bson:"lightVisitDistrictCount,omitempty"` // light访问量渠道
// ------分类3
H5VisitCount int64 `bson:"h5VisitCount,omitempty"` // H5访问量
H5PcVisitCount int64 `bson:"h5PcVisitCount,omitempty"` // +H5Pc访问量
H5IosVisitCount int64 `bson:"h5IosVisitCount,omitempty"` // +H5Ios访问量
H5AndroidVisitCount int64 `bson:"h5AndroidVisitCount,omitempty"` // +H5Android访问量
// ------分类4
WebVisitCount int64 `bson:"webVisitCount,omitempty"` // **官网访问
NormalVisitCount int64 `bson:"normalVisitCount,omitempty"` // **自来访问
DistrictVisitCount int64 `bson:"districtVisitCount,omitempty"` // **渠道访问
// 落地页访问
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"` // **充值金额总量
// ------分类1
DirectAmount int64 `bson:"directAmount,omitempty"` // 直推充值金额
DirectAmountCount int64 `bson:"directAmountCount,omitempty"` // 直推充值订单数
FissionAmount int64 `bson:"fissionAmount,omitempty"` // 裂变充值金额
FissionAmountCount int64 `bson:"fissionAmountCount,omitempty"` // 裂变充值订单数
NaturalAmount int64 `bson:"naturalAmount,omitempty"` // 自然充值
NaturalAmountCount int64 `bson:"naturalAmountCount,omitempty"` // 自然充值订单数
DeductionAmount int64 `bson:"deductionAmount,omitempty"` // 充值扣量
DeductionAmountCount int64 `bson:"deductionAmountCount,omitempty"` // 充值扣量次数
// ------分类2
AndroidAmount int64 `bson:"androidAmount,omitempty"` // +安卓充值金额
AndroidAmountCount int64 `bson:"androidAmountCount,omitempty"` // +安卓充值次数
IosAmount int64 `bson:"iosAmount,omitempty"` // +Ios充值金额
IosAmountCount int64 `bson:"iosAmountCount,omitempty"` // +Ios充值次数
// ------分类3
LightAmount int64 `bson:"lightAmount,omitempty"` // light充值金额
LightAmountCount int64 `bson:"lightAmountCount,omitempty"` // light充值次数
LightDirectAmount int64 `bson:"lightDirectAmount,omitempty"` // light充值金额直推
LightDirectAmountCount int64 `bson:"lightDirectAmountCount,omitempty"` // light充值次数直推
LightFissionAmount int64 `bson:"lightFissionAmount,omitempty"` // light充值金额裂变
LightFissionAmountCount int64 `bson:"lightFissionAmountCount,omitempty"` // light充值次数裂变
LightDeductionAmount int64 `bson:"lightDeductionAmount,omitempty"` // light充值金额扣量
LightDeductionAmountCount int64 `bson:"lightDeductionAmountCount,omitempty"` // light充值次数扣量
LightNaturalAmount int64 `bson:"lightNaturalAmount,omitempty"` // light充值金额自然
LightNaturalAmountCount int64 `bson:"lightNaturalAmountCount,omitempty"` // light充值次数自然
LightWebAmount int64 `bson:"lightWebAmount,omitempty"` // light充值金额官网
LightWebAmountCount int64 `bson:"lightWebAmountCount,omitempty"` // light充值次数官网
LightNormalAmount int64 `bson:"lightNormalAmount,omitempty"` // light充值金额自来
LightNormalAmountCount int64 `bson:"lightNormalAmountCount,omitempty"` // light充值次数自来
LightDistrictAmount int64 `bson:"lightDistrictAmount,omitempty"` // light充值金额渠道
LightDistrictAmountCount int64 `bson:"lightDistrictAmountCount,omitempty"` // light充值次数渠道
// ------分类5
H5Amount int64 `bson:"h5Amount,omitempty"` // +H5充值金额
H5AmountCount int64 `bson:"h5AmountCount,omitempty"` // +H5充值次数
H5FormalAmount int64 `bson:"h5FormalAmount,omitempty"` // 当日H5Formal充值
H5FormalAmountCount int64 `bson:"h5FormalAmountCount,omitempty"` // 当日H5Formal充值次数
H5PcAmount int64 `bson:"h5PcAmount,omitempty"` // 当日H5Pc充值
H5PcAmountCount int64 `bson:"h5PcAmountCount,omitempty"` // 当日H5Pc充值次数
H5IosAmount int64 `bson:"todayH5IosRecharge,omitempty"` // 当日H5Ios充值
H5IosAmountCount int64 `bson:"h5IosAmountCount,omitempty"` // 当日H5Ios充值次数
H5AndroidAmount int64 `bson:"h5AndroidAmount,omitempty"` // 当日H5Android充值
H5AndroidAmountCount int64 `bson:"h5AndroidAmountCount,omitempty"` // 当日H5Android充值次数
// ------分类6
WebAmount int64 `bson:"webAmount,omitempty"` // **官网充值
WebAmountCount int64 `bson:"webAmountCount,omitempty"` // **官网充值次数
NormalAmount int64 `bson:"normalAmount,omitempty"` // **自来充值
NormalAmountCount int64 `bson:"normalAmountCount,omitempty"` // **自来充值次数
DistrictAmount int64 `bson:"districtAmount,omitempty"` // **渠道充值
DistrictAmountCount int64 `bson:"districtAmountCount,omitempty"` // **渠道充值次数
// ------分类7
RepeatAmount int64 `bson:"repeatAmount,omitempty"` // 复冲金额
RepeatAmountCount int64 `bson:"repeatAmountCount,omitempty"` // +复冲订单数
SuccessRechargeOrder int64 `bson:"successRechargeOrder,omitempty"` // 充值成功订单数
NewRechargeAmount int64 `bson:"newRechargeAmount,omitempty"` // 新增充值金额
NewRechargeCount int64 `bson:"newRechargeCount,omitempty"` // +新增充值订单
VipPayByMoney int64 `bson:"vipPayByMoney,omitempty"` // 人民币购买
VipPayByAmount int64 `bson:"vipPayByAmount,omitempty"` // 余额购买
VipRepeatAmount int64 `bson:"vipRepeatAmount,omitempty"` // VIP复冲金额
TotalRechargeOrder int64 `bson:"totalRechargeOrder,omitempty"` // 拉起订单数
// 游戏
GameRechageAmount int64 `bson:"gameRechageAmount,omitempty"` // 游戏充值
GameWithdrawAmount int64 `bson:"gameWithdrawAmount,omitempty"` // 游戏提现
// 更新时间
UpdatedAt time.Time `bson:"updatedAt,omitempty"` // 更新时间
}
type DailyHourStatList []*DailyHourStat
type DailyHourStatDoc struct {
SumHour *int `bson:"sumHour,omitempty"` // 小时数
// 注册用户
NewTotalCount *int64 `bson:"newTotalCount,omitempty"` // **新增总量
// ------分类1
NewDirectCount *int64 `bson:"newDirectCount,omitempty"` // 新增直推
NewFissionCount *int64 `bson:"newFissionCount,omitempty"` // 新增裂变
NewDeductionCount *int64 `bson:"newDeductionCount,omitempty"` // 新增扣量
NewNaturalCount *int64 `bson:"newNaturalCount,omitempty"` // 自然新增
// ------分类2
NewAndroidCount *int64 `bson:"newAndroidCount,omitempty"` // android新增
NewIosCount *int64 `bson:"newIosCount,omitempty"` // ios新增
// ------分类3
NewLightCount *int64 `bson:"newLightCount,omitempty"` // light新增
NewLightGuestCount *int64 `bson:"newLightGuestCount,omitempty"` // light新增安装
NewLightFormalCount *int64 `bson:"newLightFormalCount,omitempty"` // light新增注册
NewLightDirectCount *int64 `bson:"newLightDirectCount,omitempty"` // light新增直推
NewLightFissionCount *int64 `bson:"newLightFissionCount,omitempty"` // light新增裂变
NewLightDeductionCount *int64 `bson:"newLightDeductionCount,omitempty"` // light新增扣量
NewLightNaturalCount *int64 `bson:"newLightNaturalCount,omitempty"` // light自然新增
NewLightWebCount *int64 `bson:"newLightWebCount,omitempty"` // light官网新增
NewLightNormalCount *int64 `bson:"newLightNormalCount,omitempty"` // light自来新增
NewLightDistrictCount *int64 `bson:"newLightDistrictCount,omitempty"` // light渠道新增
// ------分类4
NewH5Count *int64 `bson:"newH5Count,omitempty"` // H5新增
NewH5FormalCount *int64 `bson:"newH5FormalCount,omitempty"` // H5注册新增
NewH5PcCount *int64 `bson:"newH5PcCount,omitempty"` // +H5PC新增
NewH5IosCount *int64 `bson:"NewH5IosCount,omitempty"` // +H5IOS新增
NewH5AndroidCount *int64 `bson:"newH5AndroidCount,omitempty"` // +H5Android新增
// ------分类4
NewWebCount *int64 `bson:"newWebCount,omitempty"` // **官网新增
NewNormalCount *int64 `bson:"newNormalCount,omitempty"` // **自来新增
NewDistrictCount *int64 `bson:"newDistrictCount,omitempty"` // **渠道新增
// 访问统计
TotalVisitCount *int64 `bson:"totalVisitCount,omitempty"` // **访问总量
// ------分类1
DirectVisitCount *int64 `bson:"directVisitCount,omitempty"` // 直推访问数
FissionVisitCount *int64 `bson:"fissionVisitCount,omitempty"` // 裂变访问数
NaturalVisitCount *int64 `bson:"naturalVisitCount,omitempty"` // **自然访问数
DeductionVisitCount *int64 `bson:"deductionVisitCount,omitempty"` // 新增扣量
// ------分类2
IosVisitCount *int64 `bson:"iosVisitCount,omitempty"` // +Ios访问量
AndroidVisitCount *int64 `bson:"androidVisitCount,omitempty"` // +Android访问量
// ------分类3
LightVisitCount *int64 `bson:"lightVisitCount,omitempty"` // light访问量
LightVisitDirectCount *int64 `bson:"lightVisitDirectCount,omitempty"` // light访问量直推
LightVisitFissionCount *int64 `bson:"lightVisitFissionCount,omitempty"` // light访问量裂变
LightVisitDeductionCount *int64 `bson:"lightVisitDeductionCount,omitempty"` // light访问量扣量
LightVisitNaturalCount *int64 `bson:"lightVisitNaturalCount,omitempty"` // light访问量自然
LightVisitWebCount *int64 `bson:"lightVisitWebCount,omitempty"` // light访问量官网
LightVisitNormalCount *int64 `bson:"lightVisitNormalCount,omitempty"` // light访问量自来
LightVisitDistrictCount *int64 `bson:"lightVisitDistrictCount,omitempty"` // light访问量渠道
// ------分类3
H5VisitCount *int64 `bson:"h5VisitCount,omitempty"` // H5访问量
H5PcVisitCount *int64 `bson:"h5PcVisitCount,omitempty"` // +H5Pc访问量
H5IosVisitCount *int64 `bson:"h5IosVisitCount,omitempty"` // +H5Ios访问量
H5AndroidVisitCount *int64 `bson:"h5AndroidVisitCount,omitempty"` // +H5Android访问量
// ------分类4
WebVisitCount *int64 `bson:"webVisitCount,omitempty"` // **官网访问
NormalVisitCount *int64 `bson:"normalVisitCount,omitempty"` // **自来访问
DistrictVisitCount *int64 `bson:"districtVisitCount,omitempty"` // **渠道访问
// 落地页访问
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"` // **充值金额总量
// ------分类1
DirectAmount *int64 `bson:"directAmount,omitempty"` // 直推充值金额
DirectAmountCount *int64 `bson:"directAmountCount,omitempty"` // +直推充值订单数
FissionAmount *int64 `bson:"fissionAmount,omitempty"` // 裂变充值金额
FissionAmountCount *int64 `bson:"fissionAmountCount,omitempty"` // +裂变充值订单数
NaturalAmount *int64 `bson:"naturalAmount,omitempty"` // 自然充值
NaturalAmountCount *int64 `bson:"naturalAmountCount,omitempty"` // +自然充值订单数
DeductionAmount *int64 `bson:"deductionAmount,omitempty"` // 充值扣量
DeductionAmountCount *int64 `bson:"deductionAmountCount,omitempty"` // 充值扣量次数
// ------分类2
AndroidAmount *int64 `bson:"androidAmount,omitempty"` // +安卓充值金额
AndroidAmountCount *int64 `bson:"androidAmountCount,omitempty"` // +安卓充值次数
IosAmount *int64 `bson:"iosAmount,omitempty"` // +Ios充值金额
IosAmountCount *int64 `bson:"iosAmountCount,omitempty"` // +Ios充值次数
// ------分类3
LightAmount *int64 `bson:"lightAmount,omitempty"` // light充值金额
LightAmountCount *int64 `bson:"lightAmountCount,omitempty"` // light充值次数
LightDirectAmount *int64 `bson:"lightDirectAmount,omitempty"` // light充值金额直推
LightDirectAmountCount *int64 `bson:"lightDirectAmountCount,omitempty"` // light充值次数直推
LightFissionAmount *int64 `bson:"lightFissionAmount,omitempty"` // light充值金额裂变
LightFissionAmountCount *int64 `bson:"lightFissionAmountCount,omitempty"` // light充值次数裂变
LightDeductionAmount *int64 `bson:"lightDeductionAmount,omitempty"` // light充值金额扣量
LightDeductionAmountCount *int64 `bson:"lightDeductionAmountCount,omitempty"` // light充值次数扣量
LightNaturalAmount *int64 `bson:"lightNaturalAmount,omitempty"` // light充值金额自然
LightNaturalAmountCount *int64 `bson:"lightNaturalAmountCount,omitempty"` // light充值次数自然
LightWebAmount *int64 `bson:"lightWebAmount,omitempty"` // light充值金额官网
LightWebAmountCount *int64 `bson:"lightWebAmountCount,omitempty"` // light充值次数官网
LightNormalAmount *int64 `bson:"lightNormalAmount,omitempty"` // light充值金额自来
LightNormalAmountCount *int64 `bson:"lightNormalAmountCount,omitempty"` // light充值次数自来
LightDistrictAmount *int64 `bson:"lightDistrictAmount,omitempty"` // light充值金额渠道
LightDistrictAmountCount *int64 `bson:"lightDistrictAmountCount,omitempty"` // light充值次数渠道
// ------分类5
H5Amount *int64 `bson:"h5Amount,omitempty"` // +H5充值金额
H5AmountCount *int64 `bson:"h5AmountCount,omitempty"` // +H5充值次数
H5FormalAmount *int64 `bson:"h5FormalAmount,omitempty"` // 当日H5Formal充值
H5FormalAmountCount *int64 `bson:"h5FormalAmountCount,omitempty"` // 当日H5Formal充值次数
H5PcAmount *int64 `bson:"h5PcAmount,omitempty"` // 当日H5Pc充值
H5PcAmountCount *int64 `bson:"h5PcAmountCount,omitempty"` // 当日H5Pc充值次数
H5IosAmount *int64 `bson:"todayH5IosRecharge,omitempty"` // 当日H5Ios充值
H5IosAmountCount *int64 `bson:"h5IosAmountCount,omitempty"` // 当日H5Ios充值次数
H5AndroidAmount *int64 `bson:"h5AndroidAmount,omitempty"` // 当日H5Android充值
H5AndroidAmountCount *int64 `bson:"h5AndroidAmountCount,omitempty"` // 当日H5Android充值次数
// ------分类6
WebAmount *int64 `bson:"webAmount,omitempty"` // **官网充值
WebAmountCount *int64 `bson:"webAmountCount,omitempty"` // **官网充值次数
NormalAmount *int64 `bson:"normalAmount,omitempty"` // **自来充值
NormalAmountCount *int64 `bson:"normalAmountCount,omitempty"` // **自来充值次数
DistrictAmount *int64 `bson:"districtAmount,omitempty"` // **渠道充值
DistrictAmountCount *int64 `bson:"districtAmountCount,omitempty"` // **渠道充值次数
// ------分类7
RepeatAmount *int64 `bson:"repeatAmount,omitempty"` // 复冲金额
RepeatAmountCount *int64 `bson:"repeatAmountCount,omitempty"` // +复冲订单数
SuccessRechargeOrder *int64 `bson:"successRechargeOrder,omitempty"` // 充值成功订单数
NewRechargeAmount *int64 `bson:"newRechargeAmount,omitempty"` // 新增充值金额
NewRechargeCount *int64 `bson:"newRechargeCount,omitempty"` // +新增充值订单
VipPayByMoney *int64 `bson:"vipPayByMoney,omitempty"` // 人民币购买
VipPayByAmount *int64 `bson:"vipPayByAmount,omitempty"` // 余额购买
VipRepeatAmount *int64 `bson:"vipRepeatAmount,omitempty"` // VIP复冲金额
TotalRechargeOrder *int64 `bson:"totalRechargeOrder,omitempty"` // 拉起订单数
// 游戏
GameRechageAmount *int64 `bson:"gameRechageAmount,omitempty"` // 游戏充值
GameWithdrawAmount *int64 `bson:"gameWithdrawAmount,omitempty"` // 游戏提现
}