77 lines
2.1 KiB
Go
77 lines
2.1 KiB
Go
package videoactivityserver
|
|
|
|
import (
|
|
"91porn-server/app/service/vidhelpser"
|
|
"91porn-server/common/stderr"
|
|
"91porn-server/models/v/videoactivitymod"
|
|
"91porn-server/models/v/vidmod"
|
|
|
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
)
|
|
|
|
func List(uid uint64, req *videoactivitymod.ListRequest) (interface{}, stderr.Code) {
|
|
var (
|
|
out videoactivitymod.ListResponse
|
|
videoActivity videoactivitymod.VideoActivity
|
|
err error
|
|
)
|
|
if req.ActivityID == "" {
|
|
videoActivity, err = videoactivitymod.QueryDocumentByStatus(videoactivitymod.Enable)
|
|
if err != nil {
|
|
return out, stderr.ErrDbQueryError
|
|
}
|
|
req.ActivityID = videoActivity.ID.Hex()
|
|
} else {
|
|
activityId, err := primitive.ObjectIDFromHex(req.ActivityID)
|
|
if err != nil {
|
|
return nil, stderr.ErrParamError
|
|
}
|
|
videoActivity, err = videoactivitymod.QueryDocumentByID(activityId)
|
|
if err != nil {
|
|
return nil, stderr.ErrDbQueryError
|
|
}
|
|
}
|
|
out.ActivityID = videoActivity.ID
|
|
out.ActivityBackgroundImage = videoActivity.BackgroundImage
|
|
out.ActivityDesc = videoActivity.Desc
|
|
out.ActivityEndTime = videoActivity.EndTime
|
|
filter, err := req.Filter()
|
|
if err != nil {
|
|
return nil, stderr.ErrParamError
|
|
}
|
|
list, err := vidmod.GetList(filter, req.Options())
|
|
if err != nil {
|
|
return out, stderr.ErrDbQueryError
|
|
}
|
|
listLen := len(list)
|
|
if listLen == 0 {
|
|
out.WorkList = []*vidmod.VideoInfo{}
|
|
return out, stderr.Success
|
|
}
|
|
if listLen > int(req.PageSize) {
|
|
out.HasNext = true
|
|
list = list[:len(list)-1]
|
|
}
|
|
out.WorkList = vidhelpser.EncodeVideoInfo(uid, list)
|
|
return out, stderr.Success
|
|
}
|
|
|
|
func HistoryRecord(req *videoactivitymod.HistoryRecordRequest) (interface{}, stderr.Code) {
|
|
var out videoactivitymod.HistoryRecordResponse
|
|
list, err := videoactivitymod.QueryAllDocument(req.Filter(), req.Options())
|
|
if err != nil {
|
|
return out, stderr.ErrDbQueryError
|
|
}
|
|
listLen := len(list)
|
|
if listLen == 0 {
|
|
out.ActivityList = []*videoactivitymod.VideoActivity{}
|
|
return out, stderr.Success
|
|
}
|
|
if listLen > int(req.PageSize) {
|
|
out.HasNext = true
|
|
list = list[:len(list)-1]
|
|
}
|
|
out.ActivityList = list
|
|
return out, stderr.Success
|
|
}
|