package handler import ( "server/call" "server/common" "server/db" "server/modules/web/app" "server/modules/web/values" "github.com/gin-gonic/gin" "github.com/liangdas/mqant/log" ) // Record 领奖进度,key为taskid,value为任务进度,小与0时表示已领取 type TaskInfoResp struct { TaskList []*values.OneTask } func GetTaskInfo(c *gin.Context) { a := app.NewApp(c) defer func() { a.Response() }() a.GetUID() resp := &TaskInfoResp{TaskList: a.GetUserTaskStatus()} a.Data = resp } type DrawTaskReq struct { TaskID int } func DrawTask(c *gin.Context) { a := app.NewApp(c) defer func() { a.Response() }() req := &DrawTaskReq{} if !a.S(req) { return } con := call.GetConfigTaskByTaskID(req.TaskID) if con == nil { a.Code = values.CodeRetry return } task := call.GetUserTaskDataByTaskID(a.UID, req.TaskID) if task.Progress < con.Target { a.Code = values.CodeParam a.Msg = "Task not complete." return } // 判断是否充值 // re := call.GetRechargeInfo(a.UID) // if re.TotalRecharge == 0 { // a.Code = values.CodeRecharge // a.Msg = "You can get it after linking the payment method." // return // } var rows int64 var err error if con.Kind == common.TaskKindOnce { rows, err = db.Mysql().UpdateRes(&common.TaskData{UID: a.UID, TaskID: req.TaskID, Progress: task.Progress}, map[string]interface{}{"progress": -1}) } else if con.Kind == common.TaskKindCycle { rows, err = db.Mysql().UpdateRes(&common.TaskData{UID: a.UID, TaskID: req.TaskID, Progress: task.Progress}, map[string]interface{}{"progress": 0}) } if err != nil { log.Error("err:%v", err) a.Code = values.CodeRetry return } if rows == 0 { a.Code = values.CodeRetry return } if con.Reward <= 0 { return } _, err = call.UpdateCurrencyPro(&common.UpdateCurrency{ CurrencyBalance: &common.CurrencyBalance{ UID: a.UID, Value: con.Reward, Event: common.CurrencyEventTask, Type: common.CurrencyBrazil, Exi1: req.TaskID, NeedBet: call.GetConfigCurrencyResourceNeedBet(common.CurrencyResourceBonus, con.Reward), }, }) if err != nil { a.Code = values.CodeRetry return } a.Data = req }