130 lines
3.4 KiB
Go
Executable File
130 lines
3.4 KiB
Go
Executable File
package bannerjumpser
|
|
|
|
import (
|
|
"time"
|
|
|
|
"91porn-server/models/cache/bannerjumpdata"
|
|
"91porn-server/models/commod"
|
|
"91porn-server/models/v/bannerjumpmod"
|
|
|
|
"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 []bannerjumpmod.BannerJump `json:"list"`
|
|
}
|
|
|
|
// GetList 获取列表
|
|
func (q *WebListReq) GetList() (res WebListRes, err error) {
|
|
filter := bson.M{}
|
|
res.List, res.Total, res.HasNext, err = bannerjumpmod.GetList(filter, int64(q.Skip()), int64(q.Limit()), q.GetSort())
|
|
|
|
return
|
|
}
|
|
|
|
type WebCreateReq struct {
|
|
Position int `json:"position" form:"position" binding:"required"` // 位置 1-视频播放器下方 2-收益页 3-首页浮窗
|
|
Banner string `json:"banner" form:"banner" binding:"required"` // BANNER图片
|
|
Title string `json:"title" form:"title" binding:"required"` // 标题
|
|
Url string `json:"url" form:"url" binding:"required"` // 跳转地址
|
|
StartAt time.Time `json:"startAt" form:"startAt" binding:"required"` // 开始时间
|
|
EndAt time.Time `json:"endAt" form:"endAt" binding:"required"` // 结束时间
|
|
Weight int `json:"weight" form:"weight" binding:"required"` // 权重
|
|
Enable bool `json:"enable" form:"enable" binding:"required"` // 是否启用
|
|
}
|
|
|
|
// Create 发布数据
|
|
func (p *WebCreateReq) Create() error {
|
|
data := bannerjumpmod.BannerJump{
|
|
Position: p.Position,
|
|
Banner: p.Banner,
|
|
Title: p.Title,
|
|
Url: p.Url,
|
|
StartAt: p.StartAt,
|
|
EndAt: p.EndAt,
|
|
Weight: p.Weight,
|
|
Enable: p.Enable,
|
|
CreatedAt: time.Now(),
|
|
UpdatedAt: time.Now(),
|
|
}
|
|
|
|
// 创建数据
|
|
if _, err := bannerjumpdata.InsertData(nil, data); err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
type WebUpdateReq struct {
|
|
ID primitive.ObjectID `json:"id" binding:"required"`
|
|
Position *int `json:"position"` // 位置 1-视频播放器下方 2-收益页 3-首页浮窗
|
|
Banner *string `json:"banner"` // BANNER图片
|
|
Title *string `json:"title"` // 标题
|
|
Url *string `json:"url"` // 跳转地址
|
|
StartAt *time.Time `json:"startAt"` // 开始时间
|
|
EndAt *time.Time `json:"endAt"` // 结束时间
|
|
Weight *int `json:"weight"` // 权重
|
|
Enable *bool `json:"enable"` // 是否启用
|
|
}
|
|
|
|
// Update 更新数据
|
|
func (p *WebUpdateReq) Update() error {
|
|
_, err := bannerjumpmod.GetInfo(p.ID)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
data := make(map[string]interface{})
|
|
if p.Position != nil {
|
|
data["position"] = *p.Position
|
|
}
|
|
if p.Banner != nil {
|
|
data["banner"] = *p.Banner
|
|
}
|
|
if p.Title != nil {
|
|
data["title"] = *p.Title
|
|
}
|
|
if p.Url != nil {
|
|
data["url"] = *p.Url
|
|
}
|
|
if p.StartAt != nil {
|
|
data["startAt"] = *p.StartAt
|
|
}
|
|
if p.EndAt != nil {
|
|
data["endAt"] = *p.EndAt
|
|
}
|
|
if p.Weight != nil {
|
|
data["weight"] = *p.Weight
|
|
}
|
|
if p.Enable != nil {
|
|
data["enable"] = *p.Enable
|
|
}
|
|
data["updatedAt"] = time.Now()
|
|
|
|
if _, err = bannerjumpdata.UpdateData(nil, p.ID.Hex(), data); err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
type WebDeleteReq struct {
|
|
ID primitive.ObjectID `json:"id" binding:"required"`
|
|
}
|
|
|
|
// Delete 删除数据
|
|
func (p *WebDeleteReq) Delete() error {
|
|
if err := bannerjumpdata.DeleteData(nil, p.ID); err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|