package recommctrl import ( "91porn-server/app/service/m3u8ticket" "91porn-server/app/service/recommser" "91porn-server/common" "91porn-server/common/log" "91porn-server/common/stderr" "91porn-server/middleware/requestid" "91porn-server/models/commod" "91porn-server/models/v/recmdtag" "github.com/gin-gonic/gin" ) // GetVidList doc // @Summary 获取短视频推荐列表 // @Description 获取推荐视频 // @Tags recommend // @Accept mpfd,json // @Produce json,html // @Param pageSize formData integer true "页码大小" // @Param X-Request-ID header string false "重试幂等ID;同一次请求重试保持不变" // @Success 200 {object} recommod.VideoListResp // @Failure 400 {string} json "{"msg": "操作失败"}" // @Router /api/recommend/vid/list [get] func GetVidList(ctx *gin.Context) { uid, _ := common.GetUID(ctx) type Param struct { PageSize uint64 `json:"pageSize" form:"pageSize" binding:"required,min=1,max=100"` // 每页条数 } param := Param{} if err := ctx.ShouldBind(¶m); err != nil { common.ServeJSON(ctx, stderr.ErrParamError, nil) return } if param.PageSize < 1 { param.PageSize = 10 } requestID, _ := requestid.FromClient(ctx) code, data := recommser.GetVidListContext( ctx.Request.Context(), uid, param.PageSize, requestID, ) // 推荐视频列表:对 m3u8 播放地址签票 m3u8ticket.Sign(ctx, data) common.ServeJSON(ctx, code, data) } // GetUserList doc // @Summary 获取主播推荐列表 // @Description 获取主播荐视频 // @Tags recommend // @Accept mpfd,json // @Produce json,html // @Param pageNumber formData integer true "查询页码" // @Param pageSize formData integer true "页码大小" // @Success 200 {string} json "{"msg": "操作成功"}" // @Failure 400 {string} json "{"msg": "操作失败"}" // @Router /api/recommend/user/list [get] func GetUserList(ctx *gin.Context) { //uid用来做用户行为分析,暂时没用 uid, _ := common.GetUID(ctx) param := commod.Page{} if err := ctx.ShouldBind(¶m); err != nil { common.ServeJSON(ctx, stderr.ErrParamError, nil) return } if param.PageSize < 1 { param.PageSize = 10 } code, data := recommser.GetUserList(uid, param.PageNumber, param.PageSize) common.ServeJSON(ctx, code, data) } // GetLightVidList doc // @Summary 获取轻量视频推荐列表 // @Description 获取轻量推荐视频 // @Tags recommend // @Accept mpfd,json // @Produce json,html // @Success 200 {object} proto.LightVideoRes // @Failure 400 {string} json "{"msg": "操作失败"}" // @Router /api/recommend/vid/lightlist [get] func GetLightVidList(ctx *gin.Context) { param := commod.Page{} if err := ctx.ShouldBind(¶m); err != nil { common.ServeJSON(ctx, stderr.ErrParamError, nil) return } if param.PageSize < 1 { param.PageSize = 10 } code, data := recommser.GetLightVidList(ctx.ClientIP()) common.ServeJSON(ctx, code, data) } // GetVidAd doc // @Summary 获取视频插播广告 // @Description 获取视频插播广告 // @Tags recommend // @Accept mpfd,json // @Produce json,html // @Param pageSize formData integer true "页码大小" // @Success 200 {string} json "{"msg": "操作成功"}" // @Failure 400 {string} json "{"msg": "操作失败"}" // @Router /api/recommend/GetVidAd/list [get] func GetVidAd(ctx *gin.Context) { uid, _ := common.GetUID(ctx) data := recommser.GetAd(uid) common.ServeJSON(ctx, stderr.Success, data) } // GetShortDiscoverList doc // @Summary 获取抖音短视频视频列表 // @Description 获取抖音短视频列表(第一页存在发现tag列表) // @Tags recommend // @Accept json // @Produce json,html // @Param type query recmdtag.AppGetShortDiscoverListReq true "请求参数" // @Success 200 {object} recmdtag.AppGetShortDiscoverListRep "{}" // @Failure 400 {string} json "{"msg": "操作失败"}" // @Router /api/app/recommend/vid/list/discover [get] func GetShortDiscoverList(ctx *gin.Context) { uid, err := common.GetUID(ctx) if err != nil { common.ServeJSON(ctx, stderr.ErrParamError, nil) return } param := &recmdtag.AppGetShortDiscoverListReq{} if err = ctx.ShouldBind(¶m); err != nil { common.ServeJSON(ctx, stderr.ErrParamError, nil) return } resp, code, err := recommser.GetShortDiscoverList(uid, param) if err != nil { log.Error("GetShortVideoList error:", log.E(err)) } m3u8ticket.Sign(ctx, resp) common.ServeJSON(ctx, code, resp) }