Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
197 lines
4.2 KiB
Go
197 lines
4.2 KiB
Go
package web
|
|
|
|
import (
|
|
"net/http"
|
|
"videoweb/app/service/playletser"
|
|
"videoweb/pub/common/log"
|
|
"videoweb/pub/common/useragent"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
type playletLikeBody struct {
|
|
ID int64 `json:"id"`
|
|
IsLike *bool `json:"isLike"`
|
|
}
|
|
|
|
// PlayletLikeSet 代理上游 POST /api/app/playlet/like/set。
|
|
func PlayletLikeSet(c *gin.Context) {
|
|
if useragent.TokenFromRequest(c.Request) == "" {
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"code": 401,
|
|
"msg": "unauthorized",
|
|
"tip": "请先登录后再点赞",
|
|
"data": nil,
|
|
})
|
|
return
|
|
}
|
|
|
|
var body playletLikeBody
|
|
if err := c.ShouldBindJSON(&body); err != nil {
|
|
c.JSON(http.StatusBadRequest, gin.H{
|
|
"code": 1001,
|
|
"msg": "参数错误",
|
|
"tip": "参数错误",
|
|
"data": nil,
|
|
})
|
|
return
|
|
}
|
|
if body.ID <= 0 || body.IsLike == nil {
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"code": 1001,
|
|
"msg": "参数错误",
|
|
"tip": "缺少 id 或 isLike",
|
|
"data": nil,
|
|
})
|
|
return
|
|
}
|
|
|
|
env, err := playletser.LikeSet(c, playletser.PlayletLikeSetReq{
|
|
ID: body.ID,
|
|
IsLike: *body.IsLike,
|
|
})
|
|
if err != nil {
|
|
log.Error("playlet like set upstream failed", log.E(err))
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"code": 500,
|
|
"msg": "playlet like failed",
|
|
"tip": "操作失败,请稍后重试",
|
|
"data": nil,
|
|
})
|
|
return
|
|
}
|
|
if env != nil && TryJSONSessionRecover(c, env.Code) {
|
|
env, err = playletser.LikeSet(c, playletser.PlayletLikeSetReq{
|
|
ID: body.ID,
|
|
IsLike: *body.IsLike,
|
|
})
|
|
if err != nil {
|
|
log.Error("playlet like set retry failed", log.E(err))
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"code": 500,
|
|
"msg": "playlet like failed",
|
|
"tip": "操作失败,请稍后重试",
|
|
"data": nil,
|
|
})
|
|
return
|
|
}
|
|
}
|
|
if env == nil || env.Code != 200 {
|
|
tip := "操作失败"
|
|
msg := ""
|
|
code := 500
|
|
if env != nil {
|
|
code = env.Code
|
|
msg = env.Msg
|
|
tip = firstNonEmpty(env.Tip, env.Msg, tip)
|
|
}
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"code": code,
|
|
"msg": msg,
|
|
"tip": tip,
|
|
"data": nil,
|
|
})
|
|
return
|
|
}
|
|
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"code": 200,
|
|
"msg": firstNonEmpty(env.Msg, "success"),
|
|
"tip": firstNonEmpty(env.Tip, "成功"),
|
|
"data": env.Data,
|
|
})
|
|
}
|
|
|
|
type playletCollectBody struct {
|
|
ID int64 `json:"id"`
|
|
IsCollect *bool `json:"isCollect"`
|
|
}
|
|
|
|
// PlayletCollectSet 代理上游 POST /api/app/playlet/collect/set。
|
|
func PlayletCollectSet(c *gin.Context) {
|
|
if useragent.TokenFromRequest(c.Request) == "" {
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"code": 401,
|
|
"msg": "unauthorized",
|
|
"tip": "请先登录后再收藏",
|
|
"data": nil,
|
|
})
|
|
return
|
|
}
|
|
|
|
var body playletCollectBody
|
|
if err := c.ShouldBindJSON(&body); err != nil {
|
|
c.JSON(http.StatusBadRequest, gin.H{
|
|
"code": 1001,
|
|
"msg": "参数错误",
|
|
"tip": "参数错误",
|
|
"data": nil,
|
|
})
|
|
return
|
|
}
|
|
if body.ID <= 0 || body.IsCollect == nil {
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"code": 1001,
|
|
"msg": "参数错误",
|
|
"tip": "缺少 id 或 isCollect",
|
|
"data": nil,
|
|
})
|
|
return
|
|
}
|
|
|
|
env, err := playletser.CollectSet(c, playletser.PlayletCollectSetReq{
|
|
ID: body.ID,
|
|
IsCollect: *body.IsCollect,
|
|
})
|
|
if err != nil {
|
|
log.Error("playlet collect set upstream failed", log.E(err))
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"code": 500,
|
|
"msg": "playlet collect failed",
|
|
"tip": "操作失败,请稍后重试",
|
|
"data": nil,
|
|
})
|
|
return
|
|
}
|
|
if env != nil && TryJSONSessionRecover(c, env.Code) {
|
|
env, err = playletser.CollectSet(c, playletser.PlayletCollectSetReq{
|
|
ID: body.ID,
|
|
IsCollect: *body.IsCollect,
|
|
})
|
|
if err != nil {
|
|
log.Error("playlet collect set retry failed", log.E(err))
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"code": 500,
|
|
"msg": "playlet collect failed",
|
|
"tip": "操作失败,请稍后重试",
|
|
"data": nil,
|
|
})
|
|
return
|
|
}
|
|
}
|
|
if env == nil || env.Code != 200 {
|
|
tip := "操作失败"
|
|
msg := ""
|
|
code := 500
|
|
if env != nil {
|
|
code = env.Code
|
|
msg = env.Msg
|
|
tip = firstNonEmpty(env.Tip, env.Msg, tip)
|
|
}
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"code": code,
|
|
"msg": msg,
|
|
"tip": tip,
|
|
"data": nil,
|
|
})
|
|
return
|
|
}
|
|
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"code": 200,
|
|
"msg": firstNonEmpty(env.Msg, "success"),
|
|
"tip": firstNonEmpty(env.Tip, "成功"),
|
|
"data": env.Data,
|
|
})
|
|
}
|