Files
rootandClaude Opus 5 8679200f41 Initial commit
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 13:57:10 +08:00

150 lines
5.0 KiB
Go

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(&param)
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(&param)
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(&param)
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(&param)
if err1 != nil {
common.ServeJSON(ctx, stderr.ErrParamError, nil)
return
}
data, code := param.GetFollowUpUserListWithShort(uid)
common.ServeJSON(ctx, code, data)
}