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}) }