256 lines
6.6 KiB
Go
256 lines
6.6 KiB
Go
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
|
|
}
|