package ipwhitemod import ( "time" "91porn-server/common/log" "91porn-server/models/commod" "go.mongodb.org/mongo-driver/bson" ) type IPWhiteEdit struct { IP *string `form:"ip" json:"ip,omitempty" bson:"ip,omitempty"` //ip Remark string `form:"remark" json:"remark"` //备注 UpdatedAt time.Time `form:"updatedAt" json:"updatedAt" bson:"updatedAt,omitempty"` } type ListParam struct { IP string `form:"ip" json:"ip,omitempty"` commod.Page } type WebResp struct { Total int64 `json:"total"` List interface{} `json:"list"` } type WebAggregateResp struct { ID struct { BlockType string `json:"blockType"` } `json:"_id"` IPS []string `json:"ips"` } func List(param ListParam) (webResp WebResp, err error) { stdqer := commod.StdQuery{Page: &commod.PageBy{Size: param.PageSize, Num: param.PageNumber}, Order: &[]commod.OrderBy{{Key: "updatedAt", Desc: true}}} filter := bson.M{} if param.IP != "" { filter["ip"] = param.IP } ipwhites, err := find(filter, stdqer) total := count(filter) if err != nil { log.Error("web ipwhite list error", log.E(err), log.Any("param", param)) return } webResp.List = ipwhites webResp.Total = total return } func find(filter bson.M, stdQuery commod.StdQuery) (data []IPWhite, err error) { if err = coll(nil).Find(&data, filter, commod.ConvertToListQuery(stdQuery)); err != nil { log.Error("models ipwhite Find error", log.E(err)) return } return } func FindMany(filter bson.M) (data []IPWhite, err error) { if err = coll(nil).Find(&data, filter); err != nil { log.Error("models ipwhite Find error", log.E(err)) return } return } func count(query bson.M) (total int64) { total, err := coll(nil).Count(query) if err != nil { log.Error("models ipwhite Count error", log.E(err)) return } return }