@@ -0,0 +1,122 @@
|
||||
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})
|
||||
}
|
||||
Reference in New Issue
Block a user