@@ -0,0 +1,71 @@
|
||||
package videoactivitymod
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"91porn-server/models/commod"
|
||||
"91porn-server/models/v/vidmod"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson"
|
||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||
"go.mongodb.org/mongo-driver/mongo/options"
|
||||
)
|
||||
|
||||
type LeaderboardType int
|
||||
|
||||
const (
|
||||
Original LeaderboardType = iota // 原创榜
|
||||
UP // UP主榜
|
||||
)
|
||||
|
||||
type ListRequest struct {
|
||||
ActivityID string `form:"activityId" json:"activityId"` // 当前活动ID
|
||||
Type LeaderboardType `form:"type" json:"type"` // 榜单类型
|
||||
commod.Page
|
||||
}
|
||||
|
||||
type ListResponse struct {
|
||||
ActivityID primitive.ObjectID `json:"activityId"` // 当前活动ID
|
||||
ActivityBackgroundImage string `json:"activityBackgroundImage"` // 活动背景图
|
||||
ActivityEndTime time.Time `json:"activityEndTime"` // 活动结束时间
|
||||
ActivityDesc string `json:"activityDesc"` // 活动详情描述
|
||||
WorkList []*vidmod.VideoInfo `json:"workList"` // 作品列表
|
||||
HasNext bool `json:"hasNext"` // 是否有下一页
|
||||
}
|
||||
|
||||
func (receiver *ListRequest) Filter() (primitive.M, error) {
|
||||
activityId, err := primitive.ObjectIDFromHex(receiver.ActivityID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
filter := bson.M{
|
||||
"activityId": activityId,
|
||||
"status": 1,
|
||||
"newsType": vidmod.SP,
|
||||
}
|
||||
if receiver.Type == UP {
|
||||
filter["isMadou"] = true
|
||||
}
|
||||
return filter, nil
|
||||
}
|
||||
|
||||
func (receiver *ListRequest) Options() *options.FindOptions {
|
||||
return options.Find().SetSkip(int64((receiver.PageNumber - 1) * receiver.PageSize)).SetLimit(int64(receiver.PageSize + 1)).SetSort(bson.M{"fakeLikeCount": -1})
|
||||
}
|
||||
|
||||
type HistoryRecordRequest struct {
|
||||
commod.Page
|
||||
}
|
||||
|
||||
func (receiver *HistoryRecordRequest) Filter() primitive.M {
|
||||
return bson.M{}
|
||||
}
|
||||
|
||||
func (receiver *HistoryRecordRequest) Options() *options.FindOptions {
|
||||
return options.Find().SetSkip(int64((receiver.PageNumber - 1) * receiver.PageSize)).SetLimit(int64(receiver.PageSize + 1)).SetSort(bson.M{"endTime": -1})
|
||||
}
|
||||
|
||||
type HistoryRecordResponse struct {
|
||||
HasNext bool `json:"hasNext"` // 是否有下一页
|
||||
ActivityList []*VideoActivity `json:"activityList"` // 列表
|
||||
}
|
||||
Reference in New Issue
Block a user