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