package imgroupser import ( "math/rand" "time" "91porn-server/models/cache/imgroupdata" "91porn-server/models/commod" "91porn-server/models/v/imgroupmod" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/bson/primitive" ) type WebListReq struct { commod.Page } type WebListRes struct { Total int64 `json:"total"` HasNext bool `json:"hasNext"` List []imgroupmod.ImGroup `json:"list"` } // GetList 获取列表 func (q *WebListReq) GetList() (res WebListRes, err error) { filter := bson.M{} res.List, res.Total, res.HasNext, err = imgroupmod.GetList(filter, int64(q.Skip()), int64(q.Limit()), q.GetSort()) return } type WebCreateReq struct { Name string `json:"name" form:"name" binding:"required"` // 群组名 Cover string `json:"cover" form:"cover" binding:"required"` // 封面 Summary string `json:"summary" form:"summary" binding:"required"` // 简介 FakeMemberNum int64 `json:"fakeMemberNum" form:"fakeMemberNum"` // 成员数量(假的) Price int64 `json:"price" form:"price"` // 加入群聊价格 0-免费 Status int `json:"status" form:"status"` // 0-不可用 1-可用 } // Create 发布数据 func (p *WebCreateReq) Create() error { data := imgroupmod.ImGroup{ GroupId: 10000000 + rand.Int63n(89999999), // 随机一个 Name: p.Name, Cover: p.Cover, Summary: p.Summary, FakeMemberNum: p.FakeMemberNum, Price: p.Price, Status: p.Status, CreatedAt: time.Now(), UpdatedAt: time.Now(), } // 创建数据 if _, err := imgroupdata.InsertData(nil, data); err != nil { return err } return nil } type WebUpdateReq struct { ID primitive.ObjectID `json:"id" binding:"required"` Name *string `json:"name"` // 群组名 Cover *string `json:"cover"` // 封面 Summary *string `json:"summary"` // 简介 FakeMemberNum *int64 `json:"fakeMemberNum"` // 成员数量(假的) Price *int64 `json:"price"` // 加入群聊价格 0-免费 Status *int `json:"status" form:"status"` // 0-不可用 1-可用 } // Update 更新数据 func (p *WebUpdateReq) Update() error { _, err := imgroupmod.GetInfo(p.ID) if err != nil { return err } data := make(map[string]interface{}) if p.Name != nil { data["name"] = *p.Name } if p.Cover != nil { data["cover"] = *p.Cover } if p.Summary != nil { data["summary"] = *p.Summary } if p.FakeMemberNum != nil { data["fakeMemberNum"] = *p.FakeMemberNum } if p.Price != nil { data["price"] = *p.Price } if p.Status != nil { data["status"] = *p.Status } data["updatedAt"] = time.Now() if _, err = imgroupdata.UpdateData(nil, p.ID.Hex(), data); err != nil { return err } return nil }