@@ -0,0 +1,74 @@
|
||||
package userctrl
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"91porn-server/common"
|
||||
"91porn-server/common/stderr"
|
||||
"91porn-server/models/l/playlgmod"
|
||||
"91porn-server/models/v/vidmod"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||
)
|
||||
|
||||
func encodePlayLog(infos []*playlgmod.PlayLog) []*playlgmod.LogInfo {
|
||||
vids := make([]primitive.ObjectID, len(infos))
|
||||
for i, v := range infos {
|
||||
vids[i] = v.VideoID
|
||||
}
|
||||
m, err := vidmod.GetTitleTimeByIDs(vids)
|
||||
if err != nil {
|
||||
return []*playlgmod.LogInfo{}
|
||||
}
|
||||
back := make([]*playlgmod.LogInfo, len(infos))
|
||||
for i, v := range infos {
|
||||
back[i] = &playlgmod.LogInfo{
|
||||
UID: v.UID,
|
||||
VideoID: v.VideoID,
|
||||
Title: m[v.VideoID].Title,
|
||||
PlayTime: m[v.VideoID].PlayTime,
|
||||
Longer: v.Longer,
|
||||
Progress: v.Progress,
|
||||
Via: v.Via,
|
||||
PlayWay: v.PlayWay,
|
||||
CreatedAt: v.CreatedAt,
|
||||
}
|
||||
}
|
||||
return back
|
||||
}
|
||||
|
||||
// PlayList doc
|
||||
// @Summary 获取用户观看列表
|
||||
// @Description 获取用户观看列表
|
||||
// @Tags web-用户管理
|
||||
// @Accept mpfd,json
|
||||
// @Produce json,html
|
||||
// @Param pageNumber query integer true "当前页"
|
||||
// @Param pageSize query integer true "每页条数"
|
||||
// @Param payMehod query integer false "过滤条件-观看方式"
|
||||
// @Param uid query integer false "过滤条件-用户ID"
|
||||
// @Param startTime query integer false "过滤条件-开始时间"
|
||||
// @Param endTime query integer false "过滤条件-结束时间"
|
||||
// @Success 200 {string} json "{"msg": "操作成功", "date": { "total":10, "list":[] }}"
|
||||
// @Failure 400 {string} json "{"msg": "操作失败"}"
|
||||
// @Router /web/user/play/list [get]
|
||||
func PlayList(c *gin.Context) {
|
||||
req := playlgmod.WatchReq{}
|
||||
if err := c.ShouldBind(&req); err != nil {
|
||||
common.ServeJSON(c, stderr.ErrParamError, "PlayList error "+err.Error())
|
||||
return
|
||||
}
|
||||
if req.Start.IsZero() {
|
||||
req.End = time.Now()
|
||||
h, _ := time.ParseDuration("-1h")
|
||||
req.Start = req.End.Add(h)
|
||||
}
|
||||
infos, total, err := playlgmod.GetPlayLog(req)
|
||||
if err != nil {
|
||||
common.ServeJSON(c, stderr.Failure, "web user PlayList error: "+err.Error())
|
||||
return
|
||||
}
|
||||
logs := encodePlayLog(infos)
|
||||
common.ServeJSON(c, stderr.Success, playlgmod.WatchResp{Logs: logs, Total: total})
|
||||
}
|
||||
Reference in New Issue
Block a user