123 lines
3.4 KiB
Go
123 lines
3.4 KiB
Go
package publishctrl
|
|
|
|
import (
|
|
"sync"
|
|
|
|
"91porn-server/app/service/publishser"
|
|
"91porn-server/common"
|
|
"91porn-server/common/log"
|
|
"91porn-server/common/stderr"
|
|
"91porn-server/models/v/vidmod"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// Details doc
|
|
// @Summary 创作视频
|
|
// @Description 数据详情
|
|
// @Tags 发布
|
|
// @Accept json
|
|
// @Produce json
|
|
// @Success 200 object publishser.DetailsResponse "成功后返回"
|
|
// @Failure 400 {string} json "{"msg": "操作失败"}"
|
|
// @Router /publish/details [get]
|
|
func Details(c *gin.Context) {
|
|
uid, err := common.GetUID(c)
|
|
if err != nil {
|
|
common.ServeJSON(c, stderr.ErrNoToken, err.Error())
|
|
return
|
|
}
|
|
var (
|
|
res publishser.DetailsResponse
|
|
wg sync.WaitGroup
|
|
)
|
|
wg.Add(7)
|
|
common.Go(func() {
|
|
defer wg.Done()
|
|
res.IsFirst, err = vidmod.IsSubmitByPublisherID(uid)
|
|
})
|
|
common.Go(func() {
|
|
defer wg.Done()
|
|
var weekIncomeLeaderboard []publishser.User
|
|
weekIncomeLeaderboard, err = publishser.GetWeekIncomeLeaderboard(3)
|
|
if err != nil {
|
|
return
|
|
}
|
|
res.Leaderboards = append(res.Leaderboards, publishser.Leaderboard{
|
|
Type: publishser.WeekIncomeLeaderboard,
|
|
Members: weekIncomeLeaderboard,
|
|
})
|
|
})
|
|
common.Go(func() {
|
|
defer wg.Done()
|
|
var weekWorkLeaderboard []publishser.User
|
|
weekWorkLeaderboard, err = publishser.GetWeekWorkLeaderboard(3)
|
|
if err != nil {
|
|
return
|
|
}
|
|
res.Leaderboards = append(res.Leaderboards, publishser.Leaderboard{
|
|
Type: publishser.WeekWorkLeaderboard,
|
|
Members: weekWorkLeaderboard,
|
|
})
|
|
})
|
|
common.Go(func() {
|
|
defer wg.Done()
|
|
res.PendingReviewWorkCount, err = publishser.GetPendingReviewWorkCount(uid)
|
|
})
|
|
common.Go(func() {
|
|
defer wg.Done()
|
|
res.WorkTotal, err = publishser.GetWorkTotal(uid)
|
|
})
|
|
common.Go(func() {
|
|
defer wg.Done()
|
|
res.ActivityDetails, err = publishser.GetActivityDetails()
|
|
})
|
|
common.Go(func() {
|
|
defer wg.Done()
|
|
res.WorkCreateCount, err = publishser.GetCreatorNumber()
|
|
})
|
|
wg.Wait()
|
|
res.PassWorkCount = res.WorkTotal - res.PendingReviewWorkCount
|
|
if err != nil {
|
|
log.Error(err.Error())
|
|
common.ServeJSON(c, stderr.ErrNetWorkBusy, err.Error())
|
|
return
|
|
}
|
|
common.ServeJSON(c, stderr.Success, res)
|
|
}
|
|
|
|
// WeekLeaderboard doc
|
|
// @Summary 周榜详情
|
|
// @Description 周榜-查看更多
|
|
// @Tags 发布
|
|
// @Accept json
|
|
// @Produce json
|
|
// @Param type query int true "榜单类型"
|
|
// @Success 200 object publishser.WeekLeaderboardResp "成功后返回"
|
|
// @Failure 400 {string} json "{"msg": "操作失败"}"
|
|
// @Router /publish/leaderboard [get]
|
|
func WeekLeaderboard(c *gin.Context) {
|
|
var (
|
|
req publishser.WeekLeaderboardReq
|
|
leaderboard []publishser.User
|
|
err error
|
|
)
|
|
if err = c.ShouldBindQuery(&req); err != nil {
|
|
common.ServeJSON(c, stderr.ErrParamError, err.Error())
|
|
return
|
|
}
|
|
switch publishser.ListType(req.Type) {
|
|
case publishser.WeekIncomeLeaderboard:
|
|
if leaderboard, err = publishser.GetWeekIncomeLeaderboard(10); err != nil {
|
|
common.ServeJSON(c, stderr.ErrNetWorkBusy, err.Error())
|
|
return
|
|
}
|
|
case publishser.WeekWorkLeaderboard:
|
|
if leaderboard, err = publishser.GetWeekWorkLeaderboard(10); err != nil {
|
|
common.ServeJSON(c, stderr.ErrNetWorkBusy, err.Error())
|
|
return
|
|
}
|
|
}
|
|
common.ServeJSON(c, stderr.Success, publishser.Leaderboard{Type: publishser.ListType(req.Type), Members: leaderboard})
|
|
}
|