forked from all_user/stat_center
Initial commit
This commit is contained in:
@@ -0,0 +1,710 @@
|
||||
package channelmod
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"stat/common/log"
|
||||
"stat/common/mongos"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson"
|
||||
"go.mongodb.org/mongo-driver/mongo"
|
||||
"go.mongodb.org/mongo-driver/mongo/options"
|
||||
)
|
||||
|
||||
var dbChannel *mongos.MongoTool
|
||||
var dbRule *mongos.MongoTool
|
||||
var dbStat *mongos.MongoTool
|
||||
var dbSettlement *mongos.MongoTool
|
||||
var dbChannelOwnerChange *mongos.MongoTool
|
||||
|
||||
var dbStatYestoday *mongos.MongoTool
|
||||
|
||||
func Init() {
|
||||
ctx := context.Background()
|
||||
InitChannel(ctx)
|
||||
InitStat(ctx)
|
||||
InitRule(ctx)
|
||||
InitSettlement(ctx)
|
||||
InitStatYestoday(ctx)
|
||||
InitChannelOwnerChange(ctx)
|
||||
}
|
||||
|
||||
func InitRule(ctx context.Context) {
|
||||
// 获取数据库表
|
||||
dbRule = mongos.New(mongos.MgoManager, TN.ChannelDeductionRule)
|
||||
|
||||
// 初始化
|
||||
indexes := []mongo.IndexModel{
|
||||
{
|
||||
Keys: bson.D{{Key: FN.ChannelDeductionRule.Channel, Value: 1}, {Key: FN.ChannelDeductionRule.AppId, Value: 1}},
|
||||
Options: options.Index().SetUnique(true),
|
||||
},
|
||||
}
|
||||
if _, err := dbRule.CreateIndex(context.Background(), indexes); err != nil {
|
||||
panic(fmt.Sprintf("%s model set index err ==>[%+v]", TN.ChannelDeductionRule, err))
|
||||
}
|
||||
}
|
||||
|
||||
func InitStat(ctx context.Context) {
|
||||
// 获取数据库表
|
||||
dbStat = mongos.New(mongos.MgoManager, TN.ChannelStat)
|
||||
|
||||
// 初始化
|
||||
indexes := []mongo.IndexModel{
|
||||
{
|
||||
Keys: bson.D{{Key: FN.ChannelStat.Channel, Value: 1}, {Key: FN.ChannelStat.AppId, Value: 1}, {Key: FN.ChannelStat.SumDate, Value: 1}},
|
||||
Options: options.Index().SetUnique(true),
|
||||
},
|
||||
{
|
||||
Keys: bson.D{{Key: FN.ChannelStat.SumDate, Value: -1}, {Key: FN.ChannelStat.NewDirectCount, Value: -1}},
|
||||
},
|
||||
{
|
||||
Keys: bson.D{{Key: FN.ChannelStat.CreatedAt, Value: -1}},
|
||||
},
|
||||
// {
|
||||
// Keys: bson.D{{Key: FN.ChannelStat.NewDirectCount, Value: -1}},
|
||||
// },
|
||||
{
|
||||
Keys: bson.D{
|
||||
{Key: FN.ChannelStat.Channel, Value: 1},
|
||||
{Key: FN.ChannelStat.ParentChannel, Value: 1},
|
||||
{Key: FN.ChannelStat.AppId, Value: 1},
|
||||
{Key: FN.ChannelStat.SumDate, Value: -1},
|
||||
{Key: FN.ChannelStat.Type, Value: 1},
|
||||
},
|
||||
},
|
||||
{
|
||||
Keys: bson.D{{Key: FN.ChannelStat.Type, Value: 1}},
|
||||
},
|
||||
// {
|
||||
// Keys: bson.D{{Key: FN.ChannelStat.IsPay, Value: 1}},
|
||||
// },
|
||||
// {
|
||||
// Keys: bson.D{{Key: FN.ChannelStat.SumDate, Value: -1}},
|
||||
// },
|
||||
// {
|
||||
// Keys: bson.D{{Key: FN.ChannelStat.AppId, Value: 1}},
|
||||
// },
|
||||
{
|
||||
Keys: bson.D{
|
||||
{Key: FN.ChannelStat.AppId, Value: 1},
|
||||
{Key: FN.ChannelStat.SumDate, Value: -1},
|
||||
},
|
||||
},
|
||||
}
|
||||
if _, err := dbStat.CreateIndex(context.Background(), indexes); err != nil {
|
||||
panic(fmt.Sprintf("%s model set index err ==>[%+v]", TN.ChannelStat, err))
|
||||
}
|
||||
}
|
||||
|
||||
func InitStatYestoday(ctx context.Context) {
|
||||
// 获取数据库表
|
||||
dbStatYestoday = mongos.New(mongos.MgoManager, TN.ChannelStatYestoday)
|
||||
|
||||
// 初始化
|
||||
indexes := []mongo.IndexModel{
|
||||
{
|
||||
Keys: bson.D{{Key: FN.ChannelStatYestoday.Channel, Value: 1}, {Key: FN.ChannelStatYestoday.AppId, Value: 1}, {Key: FN.ChannelStatYestoday.SumDate, Value: 1}},
|
||||
Options: options.Index().SetUnique(true),
|
||||
},
|
||||
{
|
||||
Keys: bson.D{{Key: FN.ChannelStatYestoday.SumDate, Value: -1}, {Key: FN.ChannelStatYestoday.NewCount, Value: -1}},
|
||||
},
|
||||
{
|
||||
Keys: bson.D{
|
||||
{Key: FN.ChannelStatYestoday.SumDate, Value: -1},
|
||||
},
|
||||
Options: options.Index().SetExpireAfterSeconds(3 * 24 * 60 * 60),
|
||||
},
|
||||
}
|
||||
if _, err := dbStatYestoday.CreateIndex(context.Background(), indexes); err != nil {
|
||||
panic(fmt.Sprintf("%s model set index err ==>[%+v]", TN.ChannelStatYestoday, err))
|
||||
}
|
||||
}
|
||||
|
||||
func InitSettlement(ctx context.Context) {
|
||||
// 获取数据库表
|
||||
dbSettlement = mongos.New(mongos.MgoManager, TN.ChannelSettlement)
|
||||
|
||||
// 初始化
|
||||
indexes := []mongo.IndexModel{
|
||||
{
|
||||
Keys: bson.D{{Key: FN.ChannelSettlement.Channel, Value: 1}, {Key: FN.ChannelSettlement.AppId, Value: 1}, {Key: FN.ChannelSettlement.SumDate, Value: 1}},
|
||||
Options: options.Index().SetUnique(true),
|
||||
},
|
||||
{
|
||||
Keys: bson.D{{Key: FN.ChannelSettlement.CreatedAt, Value: -1}},
|
||||
Options: options.Index().SetExpireAfterSeconds(5 * 24 * 60 * 60),
|
||||
},
|
||||
}
|
||||
if _, err := dbSettlement.CreateIndex(context.Background(), indexes); err != nil {
|
||||
panic(fmt.Sprintf("%s model set index err ==>[%+v]", TN.ChannelSettlement, err))
|
||||
}
|
||||
}
|
||||
|
||||
func InitChannel(ctx context.Context) {
|
||||
// 获取数据库表
|
||||
dbChannel = mongos.New(mongos.MgoManager, TN.ChannelInfo)
|
||||
|
||||
// 初始化
|
||||
indexes := []mongo.IndexModel{
|
||||
{
|
||||
Keys: bson.D{{Key: FN.ChannelInfo.Channel, Value: 1}},
|
||||
Options: options.Index().SetUnique(true),
|
||||
},
|
||||
{
|
||||
Keys: bson.D{
|
||||
{Key: FN.ChannelInfo.ParentAgent, Value: 1},
|
||||
},
|
||||
},
|
||||
{
|
||||
Keys: bson.D{
|
||||
{Key: FN.ChannelInfo.ParentChannel, Value: 1},
|
||||
},
|
||||
},
|
||||
}
|
||||
if _, err := dbChannel.CreateIndex(context.Background(), indexes); err != nil {
|
||||
panic(fmt.Sprintf("%s model set index err ==>[%+v]", TN.ChannelInfo, err))
|
||||
}
|
||||
}
|
||||
|
||||
func InitChannelOwnerChange(ctx context.Context) {
|
||||
// 获取数据库表
|
||||
dbChannelOwnerChange = mongos.New(mongos.MgoManager, TN.ChannelOwnerChange)
|
||||
|
||||
// 初始化
|
||||
indexes := []mongo.IndexModel{
|
||||
{
|
||||
Keys: bson.D{{Key: FN.ChannelOwnerChange.Channel, Value: -1}},
|
||||
},
|
||||
{
|
||||
Keys: bson.D{
|
||||
{Key: FN.ChannelOwnerChange.NewUser, Value: -1},
|
||||
{Key: FN.ChannelOwnerChange.OldUser, Value: -1},
|
||||
},
|
||||
},
|
||||
}
|
||||
if _, err := dbChannelOwnerChange.CreateIndex(context.Background(), indexes); err != nil {
|
||||
panic(fmt.Sprintf("%s model set index err ==>[%+v]", TN.ChannelOwnerChange, err))
|
||||
}
|
||||
}
|
||||
|
||||
// InsertOneChannelInfo 插入一个渠道信息
|
||||
func InsertOneChannelInfo(ctx context.Context, media *ChannelInfo) error {
|
||||
if _, err := dbChannel.InsertOne(ctx, media); err != nil {
|
||||
log.Warn("media:InsertOneChannelInfo db.InsertOne failed", log.E(err))
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// FindOneChannelInfo 查找一个渠道信息
|
||||
func FindOneChannelInfo(ctx context.Context, filter bson.M) (*ChannelInfo, error) {
|
||||
var ChannelInfo ChannelInfo
|
||||
if err := dbChannel.FindOne(ctx, &ChannelInfo, filter); err != nil {
|
||||
log.Warn("ChannelInfo:FindOneChannelInfo dbChannel.FindOne failed",
|
||||
log.E(err), log.Any("filter", filter))
|
||||
return nil, err
|
||||
}
|
||||
return &ChannelInfo, nil
|
||||
}
|
||||
|
||||
// FindOneChannelInfo 查找一个渠道信息
|
||||
func FindOneChannelInfoEx(ctx context.Context, filter bson.M) (*ChannelInfo, error) {
|
||||
var ChannelInfo ChannelInfo
|
||||
if err := dbChannel.FindOneEx(ctx, &ChannelInfo, filter); err != nil {
|
||||
log.Warn("ChannelInfo:FindOneChannelInfoEx dbChannel.FindOneEx failed",
|
||||
log.E(err), log.Any("filter", filter))
|
||||
return nil, err
|
||||
}
|
||||
return &ChannelInfo, nil
|
||||
}
|
||||
|
||||
// DelOneChannelInfo 删除一个渠道信息
|
||||
func DelOneChannelInfo(ctx context.Context, filter bson.M) (int64, error) {
|
||||
count, err := dbChannel.DeleteOne(ctx, filter)
|
||||
if err != nil {
|
||||
log.Warn("ChannelInfo:DelOneChannelInfo dbChannel.DeleteOne failed",
|
||||
log.E(err), log.Any("filter", filter))
|
||||
return 0, err
|
||||
}
|
||||
return count, nil
|
||||
}
|
||||
|
||||
// UpdateOneChannelInfo 更新一个渠道信息
|
||||
func UpdateOneChannelInfo(ctx context.Context, filter bson.M, update bson.M) error {
|
||||
_, err := dbChannel.UpdateOne(ctx, filter, update)
|
||||
if err != nil {
|
||||
log.Warn("user:UpdateOneChannelInfo dbChannel.UpdateOne failed",
|
||||
log.E(err), log.Any("filter", filter))
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// CountChannelInfos 统计渠道信息数量
|
||||
func CountChannelInfos(ctx context.Context, filter bson.M) (int64, error) {
|
||||
count, err := dbChannel.Count(ctx, filter)
|
||||
if err != nil {
|
||||
log.Warn("ChannelInfo:CountChannelInfos dbChannel.Count failed",
|
||||
log.E(err), log.Any("filter", filter))
|
||||
return 0, err
|
||||
}
|
||||
return count, nil
|
||||
}
|
||||
|
||||
// UpdateManyChannelInfo 更新满足条件的渠道信息
|
||||
func UpdateManyChannelInfo(ctx context.Context, filter bson.M, update bson.M) error {
|
||||
_, err := dbChannel.UpdateMany(ctx, filter, update)
|
||||
if err != nil {
|
||||
log.Warn("user:UpdateManyChannelInfo dbChannel.UpdateMany failed",
|
||||
log.E(err), log.Any("filter", filter))
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// FindManyChannelInfo 查找一批渠道信息数据
|
||||
func FindManyChannelInfo(ctx context.Context, filter bson.M, opts ...*options.FindOptions) (ChannelInfoList, error) {
|
||||
data := make(ChannelInfoList, 0)
|
||||
if err := dbChannel.Find(ctx, &data, filter, opts...); err != nil {
|
||||
log.Warn("ChannelInfo:FindManyChannelInfo dbChannel.Find failed", log.E(err), log.Any("filter", filter))
|
||||
return nil, err
|
||||
}
|
||||
return data, nil
|
||||
}
|
||||
|
||||
// FindManyChannelInfoWithBind 用自己定义结构查找一批渠道信息数据
|
||||
func FindManyChannelInfoWithBind(ctx context.Context, bind interface{}, filter bson.M, opts ...*options.FindOptions) error {
|
||||
if err := dbChannel.Find(ctx, bind, filter, opts...); err != nil {
|
||||
log.Warn("ChannelInfo:FindManyChannelInfoWithBind dbChannel.Find failed", log.E(err), log.Any("filter", filter))
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// InsertOneChannelDeductionRule 插入一个渠道扣量规则
|
||||
func InsertOneChannelDeductionRule(ctx context.Context, media *ChannelDeductionRule) error {
|
||||
if _, err := dbRule.InsertOne(ctx, media); err != nil {
|
||||
log.Warn("media:InsertOneChannelDeductionRule db.InsertOne failed", log.E(err))
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// FindOneChannelDeductionRule 查找一个渠道扣量规则
|
||||
func FindOneChannelDeductionRule(ctx context.Context, filter bson.M) (*ChannelDeductionRule, error) {
|
||||
var ChannelDeductionRule ChannelDeductionRule
|
||||
if err := dbRule.FindOne(ctx, &ChannelDeductionRule, filter); err != nil {
|
||||
log.Warn("ChannelDeductionRule:FindOneChannelDeductionRule dbChannel.FindOne failed",
|
||||
log.E(err), log.Any("filter", filter))
|
||||
return nil, err
|
||||
}
|
||||
return &ChannelDeductionRule, nil
|
||||
}
|
||||
|
||||
// FindOneChannelDeductionRuleEx 查找一个渠道扣量规则
|
||||
func FindOneChannelDeductionRuleEx(ctx context.Context, filter bson.M) (*ChannelDeductionRule, error) {
|
||||
var ChannelDeductionRule ChannelDeductionRule
|
||||
if err := dbRule.FindOneEx(ctx, &ChannelDeductionRule, filter); err != nil {
|
||||
log.Warn("ChannelDeductionRule:FindOneChannelDeductionRuleEx dbChannel.FindOneEx failed",
|
||||
log.E(err), log.Any("filter", filter))
|
||||
return nil, err
|
||||
}
|
||||
return &ChannelDeductionRule, nil
|
||||
}
|
||||
|
||||
// DelOneChannelDeductionRule 删除一个渠道扣量规则
|
||||
func DelOneChannelDeductionRule(ctx context.Context, filter bson.M) (int64, error) {
|
||||
count, err := dbRule.DeleteOne(ctx, filter)
|
||||
if err != nil {
|
||||
log.Warn("ChannelDeductionRule:DelOneChannelDeductionRule dbChannel.DeleteOne failed",
|
||||
log.E(err), log.Any("filter", filter))
|
||||
return 0, err
|
||||
}
|
||||
return count, nil
|
||||
}
|
||||
|
||||
// UpdateOneChannelDeductionRule 更新一个渠道扣量规则
|
||||
func UpdateOneChannelDeductionRule(ctx context.Context, filter bson.M, update bson.M) error {
|
||||
_, err := dbRule.UpdateOne(ctx, filter, update)
|
||||
if err != nil {
|
||||
log.Warn("UpdateOneChannelDeductionRule dbChannel.UpdateOne failed",
|
||||
log.E(err), log.Any("filter", filter))
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// CountChannelDeductionRules 统计渠道扣量规则数量
|
||||
func CountChannelDeductionRules(ctx context.Context, filter bson.M) (int64, error) {
|
||||
count, err := dbRule.Count(ctx, filter)
|
||||
if err != nil {
|
||||
log.Warn("ChannelDeductionRule:CountChannelDeductionRules dbChannel.Count failed",
|
||||
log.E(err), log.Any("filter", filter))
|
||||
return 0, err
|
||||
}
|
||||
return count, nil
|
||||
}
|
||||
|
||||
// UpdateManyChannelDeductionRule 更新满足条件的渠道扣量规则
|
||||
func UpdateManyChannelDeductionRule(ctx context.Context, filter bson.M, update bson.M) error {
|
||||
_, err := dbRule.UpdateMany(ctx, filter, update)
|
||||
if err != nil {
|
||||
log.Warn("user:UpdateManyChannelDeductionRule dbChannel.UpdateMany failed",
|
||||
log.E(err), log.Any("filter", filter))
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// FindManyChannelDeductionRule 查找一批渠道扣量规则数据
|
||||
func FindManyChannelDeductionRule(ctx context.Context, filter bson.M, opts ...*options.FindOptions) (ChannelDeductionRuleList, error) {
|
||||
data := make(ChannelDeductionRuleList, 0)
|
||||
if err := dbRule.Find(ctx, &data, filter, opts...); err != nil {
|
||||
log.Warn("ChannelDeductionRule:FindManyChannelDeductionRule dbChannel.Find failed", log.E(err), log.Any("filter", filter))
|
||||
return nil, err
|
||||
}
|
||||
return data, nil
|
||||
}
|
||||
|
||||
// FindManyChannelDeductionRuleWithBind 用自己定义结构查找一批渠道扣量规则数据
|
||||
func FindManyChannelDeductionRuleWithBind(ctx context.Context, bind interface{}, filter bson.M, opts ...*options.FindOptions) error {
|
||||
if err := dbRule.Find(ctx, bind, filter, opts...); err != nil {
|
||||
log.Warn("ChannelDeductionRule:FindManyChannelDeductionRuleWithBind dbChannel.Find failed", log.E(err), log.Any("filter", filter))
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// InsertOneChannelStat 插入一个渠道统计信息
|
||||
func InsertOneChannelStat(ctx context.Context, media *ChannelStat) error {
|
||||
if _, err := dbStat.InsertOne(ctx, media); err != nil {
|
||||
log.Warn("media:InsertOneChannelStat db.InsertOne failed", log.E(err))
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// FindOneChannelStat 查找一个渠道日常统计
|
||||
func FindOneChannelStat(ctx context.Context, filter bson.M) (*ChannelStat, error) {
|
||||
var ChannelStat ChannelStat
|
||||
if err := dbStat.FindOne(ctx, &ChannelStat, filter); err != nil {
|
||||
log.Warn("ChannelStat:FindOneChannelStat dbStat.FindOne failed",
|
||||
log.E(err), log.Any("filter", filter))
|
||||
return nil, err
|
||||
}
|
||||
return &ChannelStat, nil
|
||||
}
|
||||
|
||||
// DelOneChannelStat 删除一个渠道日常统计
|
||||
func DelOneChannelStat(ctx context.Context, filter bson.M) (int64, error) {
|
||||
count, err := dbStat.DeleteOne(ctx, filter)
|
||||
if err != nil {
|
||||
log.Warn("ChannelStat:DelOneChannelStat dbStat.DeleteOne failed",
|
||||
log.E(err), log.Any("filter", filter))
|
||||
return 0, err
|
||||
}
|
||||
return count, nil
|
||||
}
|
||||
|
||||
// UpdateOneChannelStat 更新一个渠道日常统计
|
||||
func UpdateOneChannelStat(ctx context.Context, filter bson.M, update bson.M) error {
|
||||
_, err := dbStat.UpdateOne(ctx, filter, update)
|
||||
if err != nil {
|
||||
log.Warn("UpdateOneChannelStat dbStat.UpdateOne failed",
|
||||
log.E(err), log.Any("filter", filter))
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// CountChannelStats 统计渠道日常统计数量
|
||||
func CountChannelStats(ctx context.Context, filter bson.M) (int64, error) {
|
||||
count, err := dbStat.Count(ctx, filter)
|
||||
if err != nil {
|
||||
log.Warn("ChannelStat:CountChannelStats dbStat.Count failed",
|
||||
log.E(err), log.Any("filter", filter))
|
||||
return 0, err
|
||||
}
|
||||
return count, nil
|
||||
}
|
||||
|
||||
// UpdateManyChannelStat 更新满足条件的渠道日常统计
|
||||
func UpdateManyChannelStat(ctx context.Context, filter bson.M, update bson.M) error {
|
||||
_, err := dbStat.UpdateMany(ctx, filter, update)
|
||||
if err != nil {
|
||||
log.Warn("user:UpdateManyChannelStat dbStat.UpdateMany failed",
|
||||
log.E(err), log.Any("filter", filter))
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// UpdateManyChannelStat 更新满足条件的渠道日常统计
|
||||
func UpdateManyChannelStatWithResult(ctx context.Context, filter bson.M, update bson.M) (int64, error) {
|
||||
result, err := dbStat.UpdateMany(ctx, filter, update)
|
||||
if err != nil {
|
||||
log.Warn("user:UpdateManyChannelStatWithResult dbStat.UpdateMany failed",
|
||||
log.E(err), log.Any("filter", filter))
|
||||
return 0, err
|
||||
}
|
||||
return result.MatchedCount, nil
|
||||
}
|
||||
|
||||
// FindManyChannelStat 查找一批渠道日常统计数据
|
||||
func FindManyChannelStat(ctx context.Context, filter bson.M, opts ...*options.FindOptions) (ChannelStatList, error) {
|
||||
data := make(ChannelStatList, 0)
|
||||
if err := dbStat.Find(ctx, &data, filter, opts...); err != nil {
|
||||
log.Warn("ChannelStat:FindManyChannelStat dbStat.Find failed", log.E(err), log.Any("filter", filter))
|
||||
return nil, err
|
||||
}
|
||||
return data, nil
|
||||
}
|
||||
|
||||
type OnItem func(item *ChannelStat)
|
||||
|
||||
// FindManyChannelStatShard 查找一批渠道日常统计数据
|
||||
func FindManyChannelStatShard(ctx context.Context, filter bson.M, shard int64, onItem OnItem) error {
|
||||
num := int64(0)
|
||||
for {
|
||||
opt := &options.FindOptions{}
|
||||
opt.SetSkip(num * shard)
|
||||
opt.SetLimit(shard)
|
||||
lst := make(ChannelStatList, 0)
|
||||
if err := dbStat.Find(ctx, &lst, filter, opt); err != nil {
|
||||
log.Warn("ChannelStat:FindManyChannelStatShard dbStat.Find failed", log.E(err), log.Any("filter", filter))
|
||||
return err
|
||||
}
|
||||
for _, item := range lst {
|
||||
onItem(item)
|
||||
}
|
||||
if int64(len(lst)) < shard {
|
||||
break
|
||||
}
|
||||
lst = nil
|
||||
num++
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// FindManyChannelStatWithBind 用自己定义结构查找一批渠道日常统计数据
|
||||
func FindManyChannelStatWithBind(ctx context.Context, bind interface{}, filter bson.M, opts ...*options.FindOptions) error {
|
||||
if err := dbStat.Find(ctx, bind, filter, opts...); err != nil {
|
||||
log.Warn("ChannelStat:FindManyChannelStatWithBind dbStat.Find failed", log.E(err), log.Any("filter", filter))
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// InsertOneChannelSettlement 插入一个渠道统计信息
|
||||
func InsertOneChannelSettlement(ctx context.Context, media *ChannelSettlement) error {
|
||||
if _, err := dbSettlement.InsertOne(ctx, media); err != nil {
|
||||
log.Warn("media:InsertOneChannelSettlement dbSettlement.InsertOne failed", log.E(err))
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// FindOneChannelSettlement 查找一个15分钟结算
|
||||
func FindOneChannelSettlement(ctx context.Context, filter bson.M) (*ChannelSettlement, error) {
|
||||
var ChannelSettlement ChannelSettlement
|
||||
if err := dbSettlement.FindOne(ctx, &ChannelSettlement, filter); err != nil {
|
||||
log.Warn("ChannelSettlement:FindOneChannelSettlement dbSettlement.FindOne failed",
|
||||
log.E(err), log.Any("filter", filter))
|
||||
return nil, err
|
||||
}
|
||||
return &ChannelSettlement, nil
|
||||
}
|
||||
|
||||
// DelOneChannelSettlement 删除一个15分钟结算
|
||||
func DelOneChannelSettlement(ctx context.Context, filter bson.M) (int64, error) {
|
||||
count, err := dbSettlement.DeleteOne(ctx, filter)
|
||||
if err != nil {
|
||||
log.Warn("ChannelSettlement:DelOneChannelSettlement dbSettlement.DeleteOne failed",
|
||||
log.E(err), log.Any("filter", filter))
|
||||
return 0, err
|
||||
}
|
||||
return count, nil
|
||||
}
|
||||
|
||||
// UpdateOneChannelSettlement 更新一个15分钟结算
|
||||
func UpdateOneChannelSettlement(ctx context.Context, filter bson.M, update bson.M) error {
|
||||
_, err := dbSettlement.UpdateOne(ctx, filter, update)
|
||||
if err != nil {
|
||||
log.Warn("UpdateOneChannelSettlement dbSettlement.UpdateOne failed",
|
||||
log.E(err), log.Any("filter", filter))
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// CountChannelSettlements 统计15分钟结算数量
|
||||
func CountChannelSettlements(ctx context.Context, filter bson.M) (int64, error) {
|
||||
count, err := dbSettlement.Count(ctx, filter)
|
||||
if err != nil {
|
||||
log.Warn("ChannelSettlement:CountChannelSettlements dbSettlement.Count failed",
|
||||
log.E(err), log.Any("filter", filter))
|
||||
return 0, err
|
||||
}
|
||||
return count, nil
|
||||
}
|
||||
|
||||
// UpdateManyChannelSettlement 更新满足条件的15分钟结算
|
||||
func UpdateManyChannelSettlement(ctx context.Context, filter bson.M, update bson.M) error {
|
||||
_, err := dbSettlement.UpdateMany(ctx, filter, update)
|
||||
if err != nil {
|
||||
log.Warn("user:UpdateManyChannelSettlement dbSettlement.UpdateMany failed",
|
||||
log.E(err), log.Any("filter", filter))
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// FindManyChannelSettlement 查找一批渠道15分钟结算
|
||||
func FindManyChannelSettlement(ctx context.Context, filter bson.M, opts ...*options.FindOptions) (ChannelSettlementList, error) {
|
||||
data := make(ChannelSettlementList, 0)
|
||||
if err := dbSettlement.Find(ctx, &data, filter, opts...); err != nil {
|
||||
log.Warn("ChannelSettlement:FindManyChannelSettlement dbSettlement.Find failed", log.E(err), log.Any("filter", filter))
|
||||
return nil, err
|
||||
}
|
||||
return data, nil
|
||||
}
|
||||
|
||||
// FindManyChannelSettlementWithBind 用自己定义结构查找一批渠道15分钟结算
|
||||
func FindManyChannelSettlementWithBind(ctx context.Context, bind interface{}, filter bson.M, opts ...*options.FindOptions) error {
|
||||
if err := dbSettlement.Find(ctx, bind, filter, opts...); err != nil {
|
||||
log.Warn("ChannelSettlement:FindManyChannelSettlementWithBind dbSettlement.Find failed", log.E(err), log.Any("filter", filter))
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// FindManyChannelStatYestoday 查找一批渠道日常统计数据
|
||||
func FindManyChannelStatYestoday(ctx context.Context, filter bson.M, opts ...*options.FindOptions) (ChannelStatYestodayList, error) {
|
||||
data := make(ChannelStatYestodayList, 0)
|
||||
if err := dbStatYestoday.Find(ctx, &data, filter, opts...); err != nil {
|
||||
log.Warn("ChannelStat:FindManyChannelStat dbStat.Find failed", log.E(err), log.Any("filter", filter))
|
||||
return nil, err
|
||||
}
|
||||
return data, nil
|
||||
}
|
||||
|
||||
// InsertOneChannelStatYestoday 插入一个渠道统计信息
|
||||
func InsertOneChannelStatYestoday(ctx context.Context, media *ChannelStatYesterday) error {
|
||||
if _, err := dbStatYestoday.InsertOne(ctx, media); err != nil {
|
||||
log.Warn("media:InsertOneChannelStat db.InsertOne failed", log.E(err))
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// CountChannelStatYestoday 统计渠道扣量规则数量
|
||||
func CountChannelStatYestoday(ctx context.Context, filter bson.M) (int64, error) {
|
||||
count, err := dbStatYestoday.Count(ctx, filter)
|
||||
if err != nil {
|
||||
log.Warn("ChannelDeductionRule:CountChannelStatYestoday dbChannel.Count failed",
|
||||
log.E(err), log.Any("filter", filter))
|
||||
return 0, err
|
||||
}
|
||||
return count, nil
|
||||
}
|
||||
|
||||
// InsertOneChannelOwnerChange 插入一个渠道信息
|
||||
func InsertOneChannelOwnerChange(ctx context.Context, media *ChannelOwnerChange) error {
|
||||
if _, err := dbChannelOwnerChange.InsertOne(ctx, media); err != nil {
|
||||
log.Warn("media:InsertOneChannelOwnerChange db.InsertOne failed", log.E(err))
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// FindOneChannelOwnerChange 查找一个渠道信息
|
||||
func FindOneChannelOwnerChange(ctx context.Context, filter bson.M) (*ChannelOwnerChange, error) {
|
||||
var ChannelOwnerChange ChannelOwnerChange
|
||||
if err := dbChannelOwnerChange.FindOne(ctx, &ChannelOwnerChange, filter); err != nil {
|
||||
log.Warn("ChannelOwnerChange:FindOneChannelOwnerChange dbChannelOwnerChange.FindOne failed",
|
||||
log.E(err), log.Any("filter", filter))
|
||||
return nil, err
|
||||
}
|
||||
return &ChannelOwnerChange, nil
|
||||
}
|
||||
|
||||
// FindOneChannelOwnerChange 查找一个渠道信息
|
||||
func FindOneChannelOwnerChangeEx(ctx context.Context, filter bson.M) (*ChannelOwnerChange, error) {
|
||||
var ChannelOwnerChange ChannelOwnerChange
|
||||
if err := dbChannelOwnerChange.FindOneEx(ctx, &ChannelOwnerChange, filter); err != nil {
|
||||
log.Warn("ChannelOwnerChange:FindOneChannelOwnerChangeEx dbChannelOwnerChange.FindOneEx failed",
|
||||
log.E(err), log.Any("filter", filter))
|
||||
return nil, err
|
||||
}
|
||||
return &ChannelOwnerChange, nil
|
||||
}
|
||||
|
||||
// DelOneChannelOwnerChange 删除一个渠道信息
|
||||
func DelOneChannelOwnerChange(ctx context.Context, filter bson.M) (int64, error) {
|
||||
count, err := dbChannelOwnerChange.DeleteOne(ctx, filter)
|
||||
if err != nil {
|
||||
log.Warn("ChannelOwnerChange:DelOneChannelOwnerChange dbChannelOwnerChange.DeleteOne failed",
|
||||
log.E(err), log.Any("filter", filter))
|
||||
return 0, err
|
||||
}
|
||||
return count, nil
|
||||
}
|
||||
|
||||
// UpdateOneChannelOwnerChange 更新一个渠道信息
|
||||
func UpdateOneChannelOwnerChange(ctx context.Context, filter bson.M, update bson.M) error {
|
||||
_, err := dbChannelOwnerChange.UpdateOne(ctx, filter, update)
|
||||
if err != nil {
|
||||
log.Warn("user:UpdateOneChannelOwnerChange dbChannelOwnerChange.UpdateOne failed",
|
||||
log.E(err), log.Any("filter", filter))
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// CountChannelOwnerChanges 统计渠道信息数量
|
||||
func CountChannelOwnerChanges(ctx context.Context, filter bson.M) (int64, error) {
|
||||
count, err := dbChannelOwnerChange.Count(ctx, filter)
|
||||
if err != nil {
|
||||
log.Warn("ChannelOwnerChange:CountChannelOwnerChanges dbChannelOwnerChange.Count failed",
|
||||
log.E(err), log.Any("filter", filter))
|
||||
return 0, err
|
||||
}
|
||||
return count, nil
|
||||
}
|
||||
|
||||
// UpdateManyChannelOwnerChange 更新满足条件的渠道信息
|
||||
func UpdateManyChannelOwnerChange(ctx context.Context, filter bson.M, update bson.M) error {
|
||||
_, err := dbChannelOwnerChange.UpdateMany(ctx, filter, update)
|
||||
if err != nil {
|
||||
log.Warn("user:UpdateManyChannelOwnerChange dbChannelOwnerChange.UpdateMany failed",
|
||||
log.E(err), log.Any("filter", filter))
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// FindManyChannelOwnerChanges 查找一批渠道信息数据
|
||||
func FindManyChannelOwnerChanges(ctx context.Context, filter bson.M, opts ...*options.FindOptions) (ChannelOwnerChangeList, error) {
|
||||
data := make(ChannelOwnerChangeList, 0)
|
||||
if err := dbChannelOwnerChange.Find(ctx, &data, filter, opts...); err != nil {
|
||||
log.Warn("ChannelOwnerChange:FindManyChannelOwnerChange dbChannelOwnerChange.Find failed", log.E(err), log.Any("filter", filter))
|
||||
return nil, err
|
||||
}
|
||||
return data, nil
|
||||
}
|
||||
|
||||
// FindManyChannelOwnerChangeWithBind 用自己定义结构查找一批渠道信息数据
|
||||
func FindManyChannelOwnerChangeWithBind(ctx context.Context, bind interface{}, filter bson.M, opts ...*options.FindOptions) error {
|
||||
if err := dbChannelOwnerChange.Find(ctx, bind, filter, opts...); err != nil {
|
||||
log.Warn("ChannelOwnerChange:FindManyChannelOwnerChangeWithBind dbChannelOwnerChange.Find failed", log.E(err), log.Any("filter", filter))
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user