package ipblockmod import ( "time" "91porn-server/common/log" "91porn-server/models/commod" "go.mongodb.org/mongo-driver/bson" ) type IPBlockEdit struct { IP *string `form:"ip" json:"ip,omitempty" bson:"ip,omitempty"` //ip Type *BlockAct `form:"type" json:"type,omitempty" bson:"type,omitempty" binding:"required"` //block 行为 Remark string `form:"remark" json:"remark"` //备注 UpdatedAt time.Time `form:"updatedAt" json:"updatedAt" bson:"updatedAt,omitempty"` } type ListParam struct { Type string `form:"type" json:"type"` 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.Type != "" { filter["type"] = param.Type } ipblocks, err := find(filter, stdqer) if err != nil { log.Error("web ipblock list error", log.E(err), log.Any("param", param)) return } total := count(filter) webResp.List = ipblocks webResp.Total = total return } func find(filter bson.M, stdQuery commod.StdQuery) (data []IPBlock, err error) { if err = coll(nil).Find(&data, filter, commod.ConvertToListQuery(stdQuery)); err != nil { log.Error("models ipblock 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 ipblock Count error", log.E(err)) return } return }