package short import ( "github.com/gin-gonic/gin" "live/app/common" "live/app/lib" "live/app/lib/back" "live/app/lib/tencent" "live/app/lib/tools" "live/app/logic/short" short2 "live/app/model/short" ) type Short struct { } // @Title 获取短视频上传签名 func (s *Short) UploadSign(c *gin.Context) { uid := common.GetUserId(c) if uid == 0 { back.Fail(c, "未登录") return } back.Suc(c, "操作成功", gin.H{ "sign": tencent.Short.Sign(), }) } type argsPublish struct { Content string `json:"content" form:"content"` FileId string `json:"fileId" form:"fileId"` TopicId uint `json:"topicId" form:"topicId"` GoodsId uint `json:"goodsId" form:"goodsId"` } // @Title 发布短视频 func (s *Short) Publish(c *gin.Context) { uid := common.GetUserId(c) if uid == 0 { back.Fail(c, "未登录") return } args := argsPublish{} if err := tools.ParseParams(&args, c); err != nil { back.Fail(c, err.Error()) return } if args.GoodsId <= 0 || args.Content == "" || args.FileId == "" { back.Fail(c, "参数错误") return } err := (&short.Short{}).Publish(uid, args.GoodsId, args.TopicId, args.FileId, args.Content, c.Request.Header.Get("X-Recook-Id"), c.Request.Header.Get("X-Recook-Token")) if err != nil { back.Fail(c, err.Error()) return } back.Suc(c, "发布成功", "") return } func (s *Short) List(c *gin.Context) { userId := common.GetUserId(c) args := lib.Page{} if err := tools.ParseParams(&args, c); err != nil { back.Fail(c, err.Error()) return } list, count, err := (&short.Short{}).List(userId, args) if err != nil { back.Err(c, err.Error()) return } back.Suc(c, "操作成功", gin.H{ "total": count, "list": list, }) return } type argsInfo struct { Id uint `json:"id" form:"id"` } type replyInfo struct { MediaUrl string `json:"mediaUrl"` FileId string `json:"fileId"` SignPlay string `json:"signPlay"` } // @Title 短视频详情 func (s *Short) Info(c *gin.Context) { args := argsInfo{} if err := tools.ParseParams(&args, c); err != nil { back.Fail(c, err.Error()) return } if args.Id <= 0 { back.Fail(c, "参数错误") return } shortInfo := (&short2.Short{}).GetInfoById(args.Id) if shortInfo.Id <= 0 { back.Fail(c, "参数错误") return } sign, _ := tencent.Short.SignPlay(shortInfo.FileId) reply := replyInfo{ FileId: shortInfo.FileId, SignPlay: sign, MediaUrl: shortInfo.MediaUrl, } back.Suc(c, "操作成功", reply) }