130 lines
4.4 KiB
Go
130 lines
4.4 KiB
Go
package imagetopser
|
|
|
|
import (
|
|
"fmt"
|
|
"time"
|
|
|
|
"91porn-server/common"
|
|
"91porn-server/common/log"
|
|
"91porn-server/common/stderr"
|
|
"91porn-server/models/v/imagetopmod"
|
|
"91porn-server/models/v/vidmod"
|
|
|
|
"go.mongodb.org/mongo-driver/bson"
|
|
"go.mongodb.org/mongo-driver/mongo/options"
|
|
)
|
|
|
|
func FindImageTopList(req imagetopmod.ImageTopListReq) (code stderr.Code, data interface{}) {
|
|
resp := imagetopmod.ImageTopListRes{
|
|
Total: 0,
|
|
List: make([]imagetopmod.ImageTopResp, 0),
|
|
}
|
|
//查询帖子列表
|
|
skip := (req.PageNumber - 1) * req.PageSize
|
|
var filter = bson.M{}
|
|
switch req.TopType {
|
|
case 1: //推荐
|
|
filter = bson.M{"recommendSort": bson.M{"$gt": 0}}
|
|
case 2: //最新
|
|
filter = bson.M{"newSort": bson.M{"$gt": 0}}
|
|
}
|
|
sort := bson.D{{Key: "updatedAt", Value: -1}}
|
|
opts := options.Find().SetSort(sort).SetSkip(int64(skip)).SetLimit(int64(req.PageSize))
|
|
imageTopList, err := imagetopmod.GetImageTopList(filter, opts)
|
|
if err != nil {
|
|
log.Error(fmt.Sprintf("获取视频列表 发生错误:%v", err), log.Any("params", req))
|
|
return stderr.ErrDbQueryError, nil
|
|
}
|
|
//获取置顶视频数量
|
|
total, _ := imagetopmod.GetImageTopCount(filter)
|
|
resp.Total = total
|
|
//根据视频ID获取置顶视频信息
|
|
resp.List = make([]imagetopmod.ImageTopResp, len(imageTopList))
|
|
for i, v := range imageTopList {
|
|
vidInfo, _ := vidmod.GetVideoByID(v.ImageId)
|
|
resp.List[i] = imagetopmod.ImageTopResp{
|
|
ID: vidInfo.ID,
|
|
NewsType: vidInfo.NewsType,
|
|
PubliserID: vidInfo.PublisherID,
|
|
Title: vidInfo.Title,
|
|
SourceID: vidInfo.SourceID,
|
|
SourceURL: vidInfo.SourceURL,
|
|
FileName: vidInfo.Filename,
|
|
PlayTime: vidInfo.PlayTime,
|
|
Status: vidInfo.Status,
|
|
Cover: vidInfo.Cover,
|
|
CoverThumb: vidInfo.CoverThumb,
|
|
SeriesCover: vidInfo.SeriesCover,
|
|
PlayCount: vidInfo.PlayCount,
|
|
LikeCount: vidInfo.LikeCount,
|
|
CommentCount: vidInfo.CommentCount,
|
|
ShareCount: vidInfo.ShareCount,
|
|
FakeLikeCount: vidInfo.FakeLikeCount,
|
|
FakeCommentCount: vidInfo.FakeCommentCount,
|
|
FakeShareCount: vidInfo.FakeShareCount,
|
|
FakePlayCount: vidInfo.FakePlayCount,
|
|
Coins: vidInfo.Coins,
|
|
Resolution: vidInfo.Resolution,
|
|
FreeTime: vidInfo.FreeTime,
|
|
Chosen: vidInfo.Chosen,
|
|
FreeArea: vidInfo.FreeArea,
|
|
Size: vidInfo.Size,
|
|
CreatedAt: vidInfo.CreatedAt,
|
|
UpdatedAt: vidInfo.UpdatedAt,
|
|
Reason: vidInfo.Reason,
|
|
IsTopping: vidInfo.IsTopping,
|
|
IsRecommend: vidInfo.IsRecommend,
|
|
IsChoosen: vidInfo.IsChoosen,
|
|
RecoWeight: vidInfo.RecoWeight,
|
|
ReviewAccount: vidInfo.ReviewAccount,
|
|
LinkUrl: vidInfo.LinkUrl,
|
|
SortCode: vidInfo.SortCode,
|
|
Rewarded: vidInfo.Rewarded,
|
|
FakeRewarded: vidInfo.FakeRewarded,
|
|
LiaoBaTop: vidInfo.LiaoBaTop,
|
|
LiaoBaTopSort: vidInfo.LiaoBaTopSort,
|
|
WorksSort: vidInfo.WorksSort,
|
|
PageViewCount: vidInfo.PageViewCount,
|
|
ActivityID: vidInfo.ActivityID,
|
|
NewSort: v.NewSort,
|
|
NewEndTime: *v.NewEndTime,
|
|
RecommendSort: v.RecommendSort,
|
|
RecommendEndTime: *v.RecommendEndTime,
|
|
}
|
|
}
|
|
code = stderr.Success
|
|
data = resp
|
|
return
|
|
}
|
|
|
|
func UpdateImageTop(req imagetopmod.EditReq) (code stderr.Code, data interface{}) {
|
|
doc := imagetopmod.ImageTopModel{
|
|
ImageId: req.ID,
|
|
NewSort: req.NewSort,
|
|
RecommendSort: req.RecommendSort,
|
|
NewEndTime: &req.NewEndTime,
|
|
RecommendEndTime: &req.RecommendEndTime,
|
|
UpdatedAt: time.Now(),
|
|
}
|
|
update, _ := common.ToBsonM(doc)
|
|
if _, err := imagetopmod.UpdateImageTop(req.ID, update); err != nil {
|
|
log.Error(fmt.Sprintf("更新置顶帖子 发生错误:%v", err), log.Any("params", req))
|
|
return stderr.ErrDbUpdateError, nil
|
|
}
|
|
return stderr.Success, nil
|
|
}
|
|
|
|
func DeleteImageTop(req imagetopmod.DeleteReq) (code stderr.Code, data interface{}) {
|
|
if err := imagetopmod.DeleteOne(req.Id); err != nil {
|
|
log.Error(fmt.Sprintf("删除置顶贴子 发生错误:%v", err), log.Any("params", req))
|
|
return stderr.ErrDbDeleteError, nil
|
|
}
|
|
set := bson.M{"happinessPlazaTop": 0}
|
|
//兼容老版本,将幸福广场参数置为0
|
|
if _, err := vidmod.UpdateOneByID(req.Id, set); err != nil {
|
|
log.Error(fmt.Sprintf("更新视频信息 发生错误:%v", err), log.Any("params", req))
|
|
return stderr.ErrDbUpdateError, nil
|
|
}
|
|
return stderr.Success, nil
|
|
}
|