package followctrl import ( "91porn-server/app/service/followser" "91porn-server/common" "91porn-server/common/log" "91porn-server/common/stderr" "91porn-server/models/v/followmod" "91porn-server/models/v/noticerecdmod" "github.com/gin-gonic/gin" "time" ) // GetFollowList doc // @Summary 获取关注列表 - 获取自己关注的用户 // @Description 获取关注列表 // @Tags 关注 // @Accept mpfd,json // @Produce json,html // @Param pageNumber formData integer true "查询页码" // @Param pageSize formData integer true "页码大小" // @Param newsType formData string true "类型: SHORT:短视频博主 其他为空字符" // @Success 200 {object} followmod.ListResp "{"list": [],"hasNext":false}" // @Failure 400 {string} json "{"msg": "操作失败"}" // @Router /api/follow/list [get] func GetFollowList(ctx *gin.Context) { uid, err := common.GetUID(ctx) if err != nil { common.ServeJSON(ctx, stderr.ErrNoToken, nil) return } param := followmod.ListReq{} err1 := ctx.ShouldBind(¶m) if err1 != nil { common.ServeJSON(ctx, stderr.ErrParamError, nil) return } if param.PageSize < 1 { param.PageSize = 10 } if param.UID != 0 { code, data := followser.GetHisFollowList(uid, param.UID, param.PageNumber, param.PageSize) common.ServeJSON(ctx, code, data) return } // 固定给20个下去不翻页(运营已经确定) param.PageSize = 20 param.PageNumber = 1 code, data := followser.GetFollowList(uid, param.PageNumber, param.PageSize, param.IsShort) common.ServeJSON(ctx, code, data) } // GetFansList doc // @Summary 获取粉丝列表 - 获取我的粉丝 // @Description 获取粉丝列表 // @Tags 关注 // @Accept mpfd,json // @Produce json,html // @Param pageNumber formData integer true "查询页码" // @Param pageSize formData integer true "页码大小" // @Success 200 {object} followmod.ListResp "{"list": [],"hasNext":false}" // @Failure 400 {string} json "{"msg": "操作失败"}" // @Router /api/follow/fans/list [get] func GetFansList(ctx *gin.Context) { uid, err := common.GetUID(ctx) if err != nil { common.ServeJSON(ctx, stderr.ErrNoToken, nil) return } param := followmod.ListReq{} err1 := ctx.ShouldBind(¶m) if err1 != nil { common.ServeJSON(ctx, stderr.ErrParamError, nil) return } if param.PageSize < 1 { param.PageSize = 10 } if param.UID != 0 { code, data := followser.GetHisFansList(uid, param.UID, param.PageNumber, param.PageSize) common.ServeJSON(ctx, code, data) return } code, data := followser.GetFansList(uid, param.PageNumber, param.PageSize) if code == stderr.Success { err = noticerecdmod.UpdateTrendReadTime(noticerecdmod.Fans, uid, time.Now()) if err != nil { log.Error("followctrl GetFansList UpdateTrendReadTime faild", log.E(err)) } } common.ServeJSON(ctx, code, data) } // DynamicsList doc // @Summary 获取关注用户发布的视频 // @Description 获取关注用户发布的视频 // @Tags 关注 // @Accept mpfd,json // @Produce json,html // @Param pageNumber formData integer true "查询页码" // @Param pageSize formData integer true "页码大小" // @Success 200 {object} followmod.DynamicsResp "{"list": [],"hasNext":false}" // @Failure 400 {string} json "{"msg": "操作失败"}" // @Router /api/follow/dynamics/list [get] func DynamicsList(ctx *gin.Context) { uid, err := common.GetUID(ctx) if err != nil { common.ServeJSON(ctx, stderr.ErrNoToken, nil) return } param := followmod.AppDynamicsListReq{} err1 := ctx.ShouldBind(¶m) if err1 != nil { common.ServeJSON(ctx, stderr.ErrParamError, nil) return } if param.PageSize < 1 { param.PageSize = 10 } data, code := followser.GetDynamicsList(uid, param) common.ServeJSON(ctx, code, data) } // GetFollowUpUsersWithShort doc // @Summary 获取关注用户发布的短视频 // @Description 获取关注用户发布的短视频 (没有关注用户则返回推荐UP主) // @Tags 关注 // @Accept mpfd,json // @Produce json,html // @Param q query followser.GetFollowUpUsersWithShortReq true "请求参数" // @Success 200 {object} followser.GetFollowUpUsersWithShortRep "success" // @Failure 400 {string} json "{"msg": "操作失败"}" // @Router /api/app/follow/list/short [get] func GetFollowUpUsersWithShort(ctx *gin.Context) { uid, err := common.GetUID(ctx) if err != nil { common.ServeJSON(ctx, stderr.ErrNoToken, nil) return } param := followser.GetFollowUpUsersWithShortReq{} err1 := ctx.ShouldBind(¶m) if err1 != nil { common.ServeJSON(ctx, stderr.ErrParamError, nil) return } data, code := param.GetFollowUpUserListWithShort(uid) common.ServeJSON(ctx, code, data) }