@@ -0,0 +1,69 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user