Files
2026-05-20 16:13:58 +08:00

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
}