package rechargemod import ( "context" "stat/common/log" "time" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo/options" ) // DirectRechargeAmount 获取直推充值金额 func DirectRechargeAmount(ctx context.Context, appid int32, start, end time.Time) (count int64, money int64, err error) { query := bson.M{"appId": appid, "successAt": bson.M{"$gte": start, "$lt": end}, "isDirect": true, "status": 3} result := make([]RechargeMod, 0) err = db.Find(ctx, &result, query) if err != nil { return } count = int64(len(result)) for _, v := range result { money += v.PayMoney } return } // FissionRechargeAmount 获取裂变充值金额 func FissionRechargeAmount(ctx context.Context, appid int32, start, end time.Time) (count int64, money int64, err error) { query := bson.M{"appId": appid, "successAt": bson.M{"$gte": start, "$lt": end}, "isDirect": false, "status": 3} result := make([]RechargeMod, 0) err = db.Find(ctx, &result, query) if err != nil { return } count = int64(len(result)) for _, v := range result { money += v.PayMoney } return } // DeductionRechargeAmount 获取扣量值金额 func DeductionRechargeAmount(ctx context.Context, appid int32, start, end time.Time) (count int64, money int64, err error) { query := bson.M{"appId": appid, "successAt": bson.M{"$gte": start, "$lt": end}, "status": 3} result := make([]RechargeMod, 0) err = db.Find(ctx, &result, query) if err != nil { return } count = int64(len(result)) for _, v := range result { money += v.PayMoney } return } // TotalRechargeAmount 获取总充值金额 func TotalRechargeAmount(ctx context.Context, appid int32, start, end time.Time) (count int64, money int64, err error) { query := bson.M{"appId": appid, "successAt": bson.M{"$gte": start, "$lt": end}, "status": 3} result := make([]RechargeMod, 0) err = db.Find(ctx, &result, query) if err != nil { return } count = int64(len(result)) for _, v := range result { money += v.PayMoney } return } // TotalDistricRechargeAmount 获取渠道总充值金额 func TotalDistricRechargeAmount(ctx context.Context, appid int32, start, end time.Time) (result []RechargeMod, err error) { query := bson.M{"appId": appid, "successAt": bson.M{"$gte": start, "$lt": end}, "status": 3} result = make([]RechargeMod, 0) err = db.Find(ctx, &result, query) if err != nil { return } return } // TotalRechargeListV1 获取渠道总充值金额 func TotalRechargeListV1(ctx context.Context, appid int32, start, end time.Time) (result []*RechargeMod, err error) { query := bson.M{"appId": appid, "successAt": bson.M{"$gte": start, "$lt": end}, "status": 3} result = make([]*RechargeMod, 0) err = db.Find(ctx, &result, query) if err != nil { return } return } // BlocTotalDistricRechargeAmount 获取渠道总充值金额 func BlocTotalDistricRechargeAmount(ctx context.Context, appid int32, start, end time.Time) (result []RechargeMod, err error) { query := bson.M{"appId": appid, "successAt": bson.M{"$gte": start, "$lt": end}, "status": 3} result = make([]RechargeMod, 0) err = db.Find(ctx, &result, query) if err != nil { return } return } // GetDaichongAmout 获取直推充值金额 func GetDaichongAmout(ctx context.Context, appid int32, start, end time.Time) (count int64, money int64, err error) { query := bson.M{"appId": appid, "successAt": bson.M{"$gte": start, "$lt": end}, "channelName": "daichong"} result := make([]RechargeMod, 0) err = db.Find(ctx, &result, query) if err != nil { return } count = int64(len(result)) for _, v := range result { money += v.PayMoney } return } // GetDaichongAmout 获取直推充值金额 func BlocGetDaichongAmout(ctx context.Context, appid int32, start, end time.Time) (count int64, money int64, err error) { query := bson.M{"appId": appid, "successAt": bson.M{"$gte": start, "$lt": end}, "channelName": "daichong"} result := make([]RechargeMod, 0) err = db.Find(ctx, &result, query) if err != nil { return } count = int64(len(result)) for _, v := range result { money += v.PayMoney } return } // GetOnlineAmount 获取直推充值金额 func GetOnlineAmount(ctx context.Context, appid int32, start, end time.Time) (count int64, money int64, err error) { query := bson.M{"appId": appid, "successAt": bson.M{"$gte": start, "$lt": end}} result := make([]RechargeMod, 0) err = db.Find(ctx, &result, query) if err != nil { return } count = int64(len(result)) for _, v := range result { money += v.PayMoney } return } // BlocGetOnlineAmount 获取直推充值金额 func BlocGetOnlineAmount(ctx context.Context, appid int32, start, end time.Time) (count int64, money int64, err error) { query := bson.M{"appId": appid, "successAt": bson.M{"$gte": start, "$lt": end}, "channelName": bson.M{"$ne": "daichong"}} result := make([]RechargeMod, 0) err = db.Find(ctx, &result, query) if err != nil { return } count = int64(len(result)) for _, v := range result { money += v.PayMoney } return } // BlocDirectRechargeAmount 获取直推充值金额 func BlocDirectRechargeAmount(ctx context.Context, appid int32, start, end time.Time) (count int64, money int64, err error) { query := bson.M{"appId": appid, "successAt": bson.M{"$gte": start, "$lt": end}, "isDirect": true, "status": 3} result := make([]RechargeMod, 0) err = db.Find(ctx, &result, query) if err != nil { return } count = int64(len(result)) for _, v := range result { money += v.PayMoney } return } // BlocFissionRechargeAmount 获取裂变充值金额 func BlocFissionRechargeAmount(ctx context.Context, appid int32, start, end time.Time) (count int64, money int64, err error) { query := bson.M{"appId": appid, "successAt": bson.M{"$gte": start, "$lt": end}, "isDirect": false, "status": 3} result := make([]RechargeMod, 0) err = db.Find(ctx, &result, query) if err != nil { return } count = int64(len(result)) for _, v := range result { money += v.PayMoney } return } // FissionRechargeAmount 获取裂变充值金额 func FissionRechargeList(ctx context.Context, appid int32, start, end time.Time) (data []RechargeMod, err error) { query := bson.M{"appId": appid, "successAt": bson.M{"$gte": start, "$lt": end}, "isDirect": false, "status": 3} err = db.Find(ctx, &data, query) if err != nil { return } return } // FindManyRechargeInfo 查找一批信息数据 func FindManyRechargeInfo(ctx context.Context, filter bson.M, opts ...*options.FindOptions) (RechargeInfoList, error) { data := make(RechargeInfoList, 0) if err := db.Find(ctx, &data, filter, opts...); err != nil { log.Warn("FindManyRechargeInfo dbChannel.Find failed", log.E(err), log.Any("filter", filter)) return nil, err } return data, nil }