package adreviewmod import ( "91porn-server/common/log" "91porn-server/common/pageopt" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo/options" ) type ( AdsSlice []AdReview Matcher = pageopt.Matcher // ReviewStatusMatch ReviewStatusMatch struct { ReviewStatus *ReviewStatus } // DistrictCodeMatch DistrictCodeMatch struct { DistrictCode *string } IDMatch = pageopt.IDMatch Sort = bson.D ) func (a *ReviewStatusMatch) New() Matcher { return pageopt.NewAssignMatch("reviewStatus", a.ReviewStatus) } func (c *DistrictCodeMatch) New() Matcher { return pageopt.NewAssignMatch("districtCode", c.DistrictCode) } var Sort_createdAt_N1 = Sort{{Key: "createdAt", Value: -1}} func List(sort Sort, skip, limit *int64, matchers ...Matcher) (AdsSlice, error) { filter := pageopt.MergeM(matchers) opt := (&options.FindOptions{}) if len(sort) != 0 { opt.SetSort(sort) } if skip != nil { opt.SetSkip(*skip) } if limit != nil { opt.SetLimit(*limit) } list := AdsSlice{} if err := coll(nil).Find(&list, filter, opt); err != nil { log.Error("adsmod List error", log.E(err)) return nil, err } return list, nil } func Count(matchers ...Matcher) (int64, error) { filter := pageopt.MergeM(matchers) count, err := coll(nil).Count(filter) if err != nil { log.Error("adsmod List error", log.E(err)) return 0, err } return count, nil }