101 lines
2.4 KiB
Go
101 lines
2.4 KiB
Go
package dailystatadvertiseser
|
|
|
|
import (
|
|
"context"
|
|
|
|
"stat/common/utils"
|
|
"stat/models/dailystatadvertise"
|
|
|
|
"time"
|
|
|
|
"github.com/pkg/errors"
|
|
"go.mongodb.org/mongo-driver/bson"
|
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
"go.mongodb.org/mongo-driver/mongo/options"
|
|
)
|
|
|
|
//GetDailyStatAdvertise 按照参数搜索
|
|
func GetDailyStatAdvertise(ctx context.Context, param *DailyStatAdvertiseSearch) (*DailyStatAdvertiseSearchResp, error) {
|
|
filter := bson.M{}
|
|
opt := &options.FindOptions{}
|
|
resp := &DailyStatAdvertiseSearchResp{}
|
|
|
|
opt.SetSort(bson.M{dailystatadvertise.FN.DailyStatAdvertise.SumDate: -1})
|
|
opt.SetSkip((param.PageNum - 1) * param.PageSize)
|
|
opt.SetLimit(param.PageSize)
|
|
|
|
total, serr := dailystatadvertise.CountDailyStatAdvertises(ctx, filter)
|
|
if serr != nil {
|
|
return resp, serr
|
|
}
|
|
if total == 0 {
|
|
return resp, nil
|
|
}
|
|
|
|
list, serr := dailystatadvertise.FindManyDailyStatAdvertise(ctx, filter, opt)
|
|
if serr != nil {
|
|
return resp, serr
|
|
}
|
|
resp.List = list
|
|
resp.Total = total
|
|
|
|
return resp, nil
|
|
}
|
|
|
|
//AddGraphic 添加一个
|
|
func AddDailyStatAdvertise(ctx context.Context,
|
|
ac *dailystatadvertise.DailyStatAdvertise) error {
|
|
|
|
ac.AppName = "蜜桃传媒"
|
|
ac.SumDate = utils.BeginWithTime(ac.SumDate)
|
|
serr := dailystatadvertise.InsertOneDailyStatAdvertise(ctx, ac)
|
|
if serr != nil {
|
|
return serr
|
|
}
|
|
return nil
|
|
}
|
|
|
|
//DelDailyStatAdvertise 删除指定
|
|
func DelDailyStatAdvertise(ctx context.Context, id string) error {
|
|
objectId, err := primitive.ObjectIDFromHex(id)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
adFilter := bson.M{dailystatadvertise.FN.DailyStatAdvertise.ID: objectId}
|
|
//删除
|
|
count, serr := dailystatadvertise.DelOneDailyStatAdvertise(ctx, adFilter)
|
|
if serr != nil {
|
|
return serr
|
|
}
|
|
if count == 0 {
|
|
return errors.Errorf("DelDailyStatAdvertise")
|
|
}
|
|
return nil
|
|
}
|
|
|
|
//UpdateDailyStatAdvertise 更新指定
|
|
func UpdateDailyStatAdvertise(ctx context.Context, id string,
|
|
info *DailyStatAdvertiseUpdate) error {
|
|
now := time.Now()
|
|
info.UpdatedAt = &now
|
|
|
|
if info.SumDate != nil {
|
|
sumdate := utils.BeginWithTime(*info.SumDate)
|
|
info.SumDate = &sumdate
|
|
}
|
|
|
|
objectId, err := primitive.ObjectIDFromHex(id)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
adFilter := bson.M{dailystatadvertise.FN.DailyStatAdvertise.ID: objectId}
|
|
updateDoc := bson.M{"$set": info}
|
|
serr := dailystatadvertise.UpdateOneDailyStatAdvertise(ctx, adFilter, updateDoc)
|
|
if serr != nil {
|
|
return serr
|
|
}
|
|
return nil
|
|
}
|