144 lines
4.7 KiB
Go
144 lines
4.7 KiB
Go
package vidctrl
|
|
|
|
import (
|
|
"fmt"
|
|
"time"
|
|
|
|
"91porn-server/app/service/vidser"
|
|
"91porn-server/common"
|
|
"91porn-server/common/stderr"
|
|
"91porn-server/models/v/vidmod"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
)
|
|
|
|
// GetNewsList doc
|
|
// @Summary 获取帖子
|
|
// @Description 获取帖子
|
|
// @Tags
|
|
// @Accept mpfd,json
|
|
// @Produce json,html
|
|
// @Param type formData integer true "类型"
|
|
// @Param pageNumber formData integer true "查询页码"
|
|
// @Param pageSize formData integer true "页码大小"
|
|
// @Success 200 {object} vidmod.NewsListResp
|
|
// @Failure 400 {string} json "{"msg": "操作失败"}"
|
|
// @Router /api/vid/news/list [get]
|
|
func GetNewsList(ctx *gin.Context) {
|
|
uid, err := common.GetUID(ctx)
|
|
if err != nil {
|
|
common.ServeJSON(ctx, stderr.ErrNoToken, nil)
|
|
return
|
|
}
|
|
req := vidmod.NewsListReq{}
|
|
if err = ctx.ShouldBind(&req); err != nil {
|
|
common.ServeJSON(ctx, stderr.ErrParamError, nil)
|
|
return
|
|
}
|
|
//如果第一页,追加置顶、力荐、加精
|
|
head := []*vidmod.VideoModel{}
|
|
if req.PageNumber == vidmod.TypeHotest && !(req.Type == vidmod.TypeNewst && req.SubType == 1) {
|
|
isMadou := false
|
|
if req.Type == vidmod.TypePay && req.SubType == vidmod.MadouUp {
|
|
isMadou = true
|
|
}
|
|
head, err = vidser.GetHeadNews(req.Type, primitive.NilObjectID, isMadou)
|
|
if err != nil {
|
|
common.ServeJSON(ctx, stderr.ErrDbQueryError, "")
|
|
return
|
|
}
|
|
}
|
|
var code stderr.Code
|
|
var data interface{}
|
|
switch req.Type {
|
|
case vidmod.TypeNewst: //最新
|
|
if req.ReqTime != "" {
|
|
reqTime, err := time.Parse(time.RFC3339, req.ReqTime)
|
|
if err != nil {
|
|
common.ServeJSON(ctx, stderr.ErrParamError, fmt.Sprintf("reqTime: %s", req.ReqTime))
|
|
return
|
|
}
|
|
code, data = vidser.GetNewestNewsList(uid, req.PageNumber, req.PageSize, head, reqTime)
|
|
} else { //当没有传reqTime参数时, 返回默认最新
|
|
code, data = vidser.GetNewestNewsList_old(uid, req.PageNumber, req.PageSize, head, req.SubType)
|
|
}
|
|
case vidmod.TypeHotest: //最热
|
|
code, data = vidser.GetHotestNewsList(uid, req.SubType, req.PageNumber, req.PageSize)
|
|
case vidmod.TypeSameCity: //同城
|
|
ip := common.GetIP(ctx)
|
|
code, data = vidser.GetLocationList(uid, ip, req.City, req.PageNumber, req.PageSize, vidmod.COVER)
|
|
case vidmod.TypePay: //金币专区
|
|
if req.Version == vidmod.Version {
|
|
/** TODO:
|
|
返回model为二维数组
|
|
*/
|
|
code, data = vidser.GetOriginalList(uid, req.SubType, req.PageNumber, req.PageSize)
|
|
} else {
|
|
code, data = vidser.GetNewsCoinsList(uid, req.SubType, req.PageNumber, req.PageSize, head)
|
|
}
|
|
case vidmod.TypeVip: //会员专区
|
|
code, data = vidser.GetVIPVideo(uid, req.PageNumber, req.PageSize)
|
|
}
|
|
common.ServeJSON(ctx, code, data)
|
|
}
|
|
|
|
// DoUnlike doc
|
|
// @Summary 不感兴趣
|
|
// @Description 不感兴趣
|
|
// @Tags vid
|
|
// @Accept mpfd,json
|
|
// @Produce json,html
|
|
// @Param type formData integer true "类型"
|
|
// @Param pageNumber formData integer true "查询页码"
|
|
// @Param pageSize formData integer true "页码大小"
|
|
// @Success 200 {string} json "{"msg": "操作成功"}"
|
|
// @Failure 400 {string} json "{"msg": "操作失败"}"
|
|
// @Router /api/vid/news/unlike [post]
|
|
func DoUnlike(ctx *gin.Context) {
|
|
uid, err := common.GetUID(ctx)
|
|
if err != nil {
|
|
common.ServeJSON(ctx, stderr.ErrNoToken, nil)
|
|
return
|
|
}
|
|
req := vidmod.UnlikeReq{}
|
|
if err = ctx.ShouldBind(&req); err != nil {
|
|
common.ServeJSON(ctx, stderr.ErrParamError, nil)
|
|
return
|
|
}
|
|
code, data := vidser.DoUnlikeVideo(uid, req.VideoID)
|
|
common.ServeJSON(ctx, code, data)
|
|
}
|
|
|
|
// List doc
|
|
// @Summary 获取帖子
|
|
// @Description 获取帖子
|
|
// @Tags
|
|
// @Accept mpfd,json
|
|
// @Produce json,html
|
|
// @Param type query integer true "类型"
|
|
// @Param model query integer false "模块"
|
|
// @Param time query time.Time false "请求页面时间"
|
|
// @Param tag query string false "标签ID"
|
|
// @Param paymentType query integer false "付费类型"
|
|
// @Param city query string false "城市"
|
|
// @Param pageNumber query integer true "查询页码"
|
|
// @Param pageSize query integer true "页码大小"
|
|
// @Success 200 {object} vidmod.NewsListResp
|
|
// @Failure 400 {string} json "{"msg": "操作失败"}"
|
|
// @Router /api/vid/list [get]
|
|
func List(c *gin.Context) {
|
|
uid, err := common.GetUID(c)
|
|
if err != nil {
|
|
common.ServeJSON(c, stderr.ErrNoToken, nil)
|
|
return
|
|
}
|
|
var req vidmod.AppListReq
|
|
if err = c.ShouldBind(&req); err != nil {
|
|
common.ServeJSON(c, stderr.ErrParamError, nil)
|
|
return
|
|
}
|
|
data, code := vidser.List(uid, &req)
|
|
common.ServeJSON(c, code, data)
|
|
}
|