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 }