Initial commit

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-15 13:57:10 +08:00
co-authored by Claude Opus 5
commit 8679200f41
1897 changed files with 257900 additions and 0 deletions
+129
View File
@@ -0,0 +1,129 @@
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
}