@@ -0,0 +1,86 @@
|
||||
package taskctrl
|
||||
|
||||
import (
|
||||
"91porn-server/app/service/taskser"
|
||||
"91porn-server/common"
|
||||
"91porn-server/common/log"
|
||||
"91porn-server/common/stderr"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
// 签到
|
||||
func Sign(c *gin.Context) {
|
||||
uid, err := common.GetUID(c)
|
||||
if err != nil {
|
||||
common.ServeJSON(c, stderr.ErrNoToken, nil)
|
||||
return
|
||||
}
|
||||
log.Info("Sign start", log.Any("uid", uid))
|
||||
var params struct {
|
||||
ID string `json:"id" binding:"required"`
|
||||
}
|
||||
if err = c.ShouldBindJSON(¶ms); err != nil {
|
||||
common.ServeJSON(c, stderr.ErrParamError, err.Error())
|
||||
return
|
||||
}
|
||||
log.Info("Sign start", log.Any("uid", uid), log.Any("params", params))
|
||||
if code := taskser.Sign(uid, params.ID); code != stderr.Success {
|
||||
common.ServeJSON(c, code, nil)
|
||||
return
|
||||
}
|
||||
common.ServeJSON(c, stderr.Success, "success")
|
||||
}
|
||||
|
||||
// 补签
|
||||
func ReSign(c *gin.Context) {
|
||||
uid, err := common.GetUID(c)
|
||||
if err != nil {
|
||||
common.ServeJSON(c, stderr.ErrNoToken, nil)
|
||||
return
|
||||
}
|
||||
log.Info("ReSign start", log.Any("uid", uid))
|
||||
var params struct {
|
||||
ID string `json:"id" binding:"required"`
|
||||
}
|
||||
if err = c.ShouldBindJSON(¶ms); err != nil {
|
||||
common.ServeJSON(c, stderr.ErrParamError, err.Error())
|
||||
return
|
||||
}
|
||||
log.Info("ReSign start", log.Any("uid", uid), log.Any("params", params))
|
||||
if code := taskser.ReSign(uid, params.ID); code != stderr.Success {
|
||||
common.ServeJSON(c, code, nil)
|
||||
return
|
||||
}
|
||||
common.ServeJSON(c, stderr.Success, "success")
|
||||
}
|
||||
|
||||
// 获取签到的额外奖励
|
||||
func SignExtraPrizes(c *gin.Context) {
|
||||
uid, err := common.GetUID(c)
|
||||
if err != nil {
|
||||
common.ServeJSON(c, stderr.ErrNoToken, nil)
|
||||
return
|
||||
}
|
||||
data, code := taskser.SignExtraPrizes(uid)
|
||||
if code != stderr.Success {
|
||||
common.ServeJSON(c, code, nil)
|
||||
return
|
||||
}
|
||||
common.ServeJSON(c, stderr.Success, data)
|
||||
}
|
||||
|
||||
// 获取签到信息
|
||||
func GetSignDetails(c *gin.Context) {
|
||||
uid, err := common.GetUID(c)
|
||||
if err != nil {
|
||||
common.ServeJSON(c, stderr.ErrNoToken, nil)
|
||||
return
|
||||
}
|
||||
data, code := taskser.GetSignDetails(uid)
|
||||
if code != stderr.Success {
|
||||
common.ServeJSON(c, code, nil)
|
||||
return
|
||||
}
|
||||
common.ServeJSON(c, stderr.Success, data)
|
||||
}
|
||||
@@ -0,0 +1,238 @@
|
||||
package taskctrl
|
||||
|
||||
import (
|
||||
"91porn-server/models/v/taskmod"
|
||||
"fmt"
|
||||
"sync"
|
||||
|
||||
"91porn-server/app/service/activityclient"
|
||||
"91porn-server/app/service/taskser"
|
||||
"91porn-server/common"
|
||||
"91porn-server/common/log"
|
||||
"91porn-server/common/stderr"
|
||||
"91porn-server/models/v/usermod"
|
||||
"91porn-server/models/v/walletmod"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
/*
|
||||
// 获取任务列表
|
||||
func GetTaskList(c *gin.Context) {
|
||||
uid, err := common.GetUID(c)
|
||||
if err != nil {
|
||||
common.ServeJSON(c, stderr.ErrNoToken, nil)
|
||||
return
|
||||
}
|
||||
data, code := taskser.GetTaskList(uid)
|
||||
if code != stderr.Success {
|
||||
common.ServeJSON(c, code, nil)
|
||||
return
|
||||
}
|
||||
common.ServeJSON(c, stderr.Success, data)
|
||||
}
|
||||
|
||||
// 获取任务详情
|
||||
func GetTaskDetails(c *gin.Context) {
|
||||
uid, err := common.GetUID(c)
|
||||
if err != nil {
|
||||
common.ServeJSON(c, stderr.ErrNoToken, nil)
|
||||
return
|
||||
}
|
||||
log.Info("GetTaskDetails start", log.Any("uid", uid))
|
||||
var params struct {
|
||||
Type int `form:"type" binding:"required,min=3"`
|
||||
}
|
||||
if err = c.ShouldBindQuery(¶ms); err != nil {
|
||||
common.ServeJSON(c, stderr.ErrParamError, err.Error())
|
||||
return
|
||||
}
|
||||
log.Info("GetTaskDetails start", log.Any("uid", uid), log.Any("params", params))
|
||||
data, code := taskser.GetTaskDetails(uid, params.Type)
|
||||
if code != stderr.Success {
|
||||
common.ServeJSON(c, code, nil)
|
||||
return
|
||||
}
|
||||
common.ServeJSON(c, stderr.Success, data)
|
||||
}
|
||||
|
||||
// 领取宝箱奖励
|
||||
func GetBoon(c *gin.Context) {
|
||||
uid, err := common.GetUID(c)
|
||||
if err != nil {
|
||||
common.ServeJSON(c, stderr.ErrNoToken, nil)
|
||||
return
|
||||
}
|
||||
log.InfoX(c, "GetJewelBoxPrize start", log.Any("uid", uid))
|
||||
var params struct {
|
||||
ID string `json:"id"`
|
||||
Type int `json:"type"`
|
||||
}
|
||||
if err = c.ShouldBindJSON(¶ms); err != nil {
|
||||
common.ServeJSON(c, stderr.ErrParamError, err.Error())
|
||||
return
|
||||
}
|
||||
log.InfoX(c, "GetJewelBoxPrize start", log.Any("uid", uid), log.Any("params", params))
|
||||
if code := taskser.GetBoon(c, uid, params.ID, params.Type); code != stderr.Success {
|
||||
common.ServeJSON(c, code, nil)
|
||||
return
|
||||
}
|
||||
common.ServeJSON(c, stderr.Success, "success")
|
||||
}
|
||||
*/
|
||||
|
||||
// GetNewTask doc
|
||||
// @Summary 任务列表
|
||||
// @Description 任务列表
|
||||
// @Tags 福利任务
|
||||
// @Accept mpfd,json
|
||||
// @Produce json,html
|
||||
// @Success 200 {object} taskser.NewTaskResponse "{"msg": "操作成功"}"
|
||||
// @Failure 400 {string} json "{"msg": "操作失败"}"
|
||||
// @Router /app/task/list [post]
|
||||
func GetNewTask(c *gin.Context) {
|
||||
uid, err := common.GetUID(c)
|
||||
if err != nil {
|
||||
common.ServeJSON(c, stderr.ErrNoToken, nil)
|
||||
return
|
||||
}
|
||||
|
||||
var user *usermod.User
|
||||
var wallet *walletmod.Wallet
|
||||
user, _ = usermod.FindUserByUID(uid)
|
||||
if user != nil {
|
||||
wallet, _ = walletmod.GetWallet(uid)
|
||||
}
|
||||
|
||||
var dailyTasks []taskser.DailyTaskResponse
|
||||
var onceTasks []taskser.OnceTaskResponse
|
||||
var growthTasks []*taskser.GrowthTaskResponse
|
||||
var dailyTaskCode, onceTaskCode, growthCode stderr.Code
|
||||
var dailyTaskMsg, onceTaskMsg, growthTaskMsg string
|
||||
wg := sync.WaitGroup{}
|
||||
wg.Add(3)
|
||||
common.Go(func() {
|
||||
defer wg.Done()
|
||||
dailyTasks, dailyTaskCode, dailyTaskMsg = taskser.GetDailyTask(uid)
|
||||
})
|
||||
common.Go(func() {
|
||||
defer wg.Done()
|
||||
onceTasks, onceTaskCode, onceTaskMsg = taskser.GetOnceTask(uid)
|
||||
})
|
||||
common.Go(func() {
|
||||
defer wg.Done()
|
||||
growthTasks, growthCode, growthTaskMsg = taskser.GetGrowthTask(uid)
|
||||
})
|
||||
wg.Wait()
|
||||
if dailyTaskCode != stderr.Success {
|
||||
common.ServeJSON(c, dailyTaskCode, dailyTaskMsg)
|
||||
return
|
||||
}
|
||||
if onceTaskCode != stderr.Success {
|
||||
common.ServeJSON(c, onceTaskCode, onceTaskMsg)
|
||||
return
|
||||
}
|
||||
if growthCode != stderr.Success {
|
||||
common.ServeJSON(c, growthCode, growthTaskMsg)
|
||||
return
|
||||
}
|
||||
|
||||
// 按 Link 中的 type 推导倒计时类型。CountdownType=1 (红包雨) 但活动服无可用场次时,过滤该任务。
|
||||
filteredDailyTasks := make([]taskser.DailyTaskResponse, 0, len(dailyTasks))
|
||||
for i := range dailyTasks {
|
||||
start, end, ctype, ok := activityclient.ResolveCountdownByLink(dailyTasks[i].Link)
|
||||
if !ok {
|
||||
continue
|
||||
}
|
||||
dailyTasks[i].StartAt = start
|
||||
dailyTasks[i].EndAt = end
|
||||
dailyTasks[i].CountdownType = ctype
|
||||
dailyTasks[i].Link = activityclient.ReplaceActivityDomain(dailyTasks[i].Link, user, wallet)
|
||||
filteredDailyTasks = append(filteredDailyTasks, dailyTasks[i])
|
||||
}
|
||||
dailyTasks = filteredDailyTasks
|
||||
|
||||
filteredOnceTasks := make([]taskser.OnceTaskResponse, 0, len(onceTasks))
|
||||
for i := range onceTasks {
|
||||
start, end, ctype, ok := activityclient.ResolveCountdownByLink(onceTasks[i].Link)
|
||||
if !ok {
|
||||
continue
|
||||
}
|
||||
onceTasks[i].StartAt = start
|
||||
onceTasks[i].EndAt = end
|
||||
onceTasks[i].CountdownType = ctype
|
||||
onceTasks[i].Link = activityclient.ReplaceActivityDomain(onceTasks[i].Link, user, wallet)
|
||||
filteredOnceTasks = append(filteredOnceTasks, onceTasks[i])
|
||||
}
|
||||
onceTasks = filteredOnceTasks
|
||||
|
||||
common.ServeJSON(c, stderr.Success, taskser.NewTaskResponse{
|
||||
DailyTasks: dailyTasks,
|
||||
OnceTasks: onceTasks,
|
||||
GrowthTasks: growthTasks,
|
||||
})
|
||||
}
|
||||
|
||||
// Receive doc
|
||||
// @Summary 我的任务 - 领取积分
|
||||
// @Description 领取积分
|
||||
// @Tags 福利任务
|
||||
// @Accept mpfd,json
|
||||
// @Produce json,html
|
||||
// @Param taskId formData string true "任务ID"
|
||||
// @Param type formData int true "任务类型 1、每日任务 2、一次行任务"
|
||||
// @Success 200 {string} json "{"msg": "操作成功"}"
|
||||
// @Failure 400 {string} json "{"msg": "操作失败"}"
|
||||
// @Router /api/app/task/receive [post]
|
||||
func Receive(c *gin.Context) {
|
||||
uid, err := common.GetUID(c)
|
||||
if err != nil {
|
||||
common.ServeJSON(c, stderr.ErrNoToken, nil)
|
||||
return
|
||||
}
|
||||
var in taskmod.ReceiveTaskReq
|
||||
err = c.ShouldBindJSON(&in)
|
||||
if err != nil {
|
||||
log.Error(fmt.Sprintf("task Receive task param err:%v", err))
|
||||
common.ServeJSON(c, stderr.ErrParamError, err.Error())
|
||||
return
|
||||
}
|
||||
code := taskser.ReceiveTask(uid, &in)
|
||||
if code != stderr.Success {
|
||||
common.ServeJSON(c, code, code.Error())
|
||||
return
|
||||
}
|
||||
common.ServeJSON(c, stderr.Success, stderr.Success.Msg())
|
||||
}
|
||||
|
||||
// Do doc
|
||||
// @Summary 我的任务-做任务
|
||||
// @Description 做任务
|
||||
// @Tags 福利任务
|
||||
// @Accept mpfd,json
|
||||
// @Produce json,html
|
||||
// @Param taskId formData string true "任务ID"
|
||||
// @Param type formData int true "任务类型 1、每日任务 2、一次行任务"
|
||||
// @Success 200 {string} json "{"msg": "操作成功"}"
|
||||
// @Failure 400 {string} json "{"msg": "操作失败"}"
|
||||
// @Router /api/app/task/do [post]
|
||||
func Do(c *gin.Context) {
|
||||
uid, err := common.GetUID(c)
|
||||
if err != nil {
|
||||
common.ServeJSON(c, stderr.ErrNoToken, nil)
|
||||
return
|
||||
}
|
||||
var in taskmod.DoTaskReq
|
||||
err = c.ShouldBindJSON(&in)
|
||||
if err != nil {
|
||||
log.Error(fmt.Sprintf("task do task param err:%v", err))
|
||||
common.ServeJSON(c, stderr.ErrParamError, err.Error())
|
||||
return
|
||||
}
|
||||
code := taskser.DoTask(uid, &in)
|
||||
if code != stderr.Success {
|
||||
common.ServeJSON(c, code, code.Error())
|
||||
return
|
||||
}
|
||||
common.ServeJSON(c, stderr.Success, stderr.Success.Msg())
|
||||
}
|
||||
Reference in New Issue
Block a user