Initial commit
This commit is contained in:
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
Executable
+74
@@ -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"
|
||||
}
|
||||
@@ -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"` // 游戏提现
|
||||
}
|
||||
Reference in New Issue
Block a user