diff --git a/modules/web/handler/activity.go b/modules/web/handler/activity.go index e2e0226..0200d77 100644 --- a/modules/web/handler/activity.go +++ b/modules/web/handler/activity.go @@ -67,14 +67,11 @@ func GetUserTaskStatus(a *app.Gin) (ret []*values.OneTask) { break } } - if v.Type == int(common.TaskTypeDownload) { // 已下载直接标记为完成 + if v.Type == int(common.TaskTypeDownload) && v.Progess != -1 { // 已下载直接标记为完成 if a.DeviceType == common.DeviceTypeWebview || a.DeviceType == common.DeviceTypePWA { - taskId := call.CheckTask(call.Task{Uid: a.UID, Value: 0, Types: []common.TaskType{common.TaskTypeDownload}}) // 直接领取下载奖励 - util.Go(func() { - time.Sleep(time.Second * 3) - TaskComplete(a, &DrawTaskReq{TaskID: taskId}) - }) + taskId := call.CheckTask(call.Task{Uid: a.UID, Value: 0, Types: []common.TaskType{common.TaskTypeDownload}}) + TaskComplete(a, &DrawTaskReq{TaskID: taskId}) a.Code = values.CodeOK a.Msg = "" } diff --git a/modules/web/handler/user.go b/modules/web/handler/user.go index 09bf20d..4e2279f 100644 --- a/modules/web/handler/user.go +++ b/modules/web/handler/user.go @@ -30,6 +30,7 @@ func GetUserInfo(c *gin.Context) { if req.UID > 0 { uid = req.UID } + CheckTask(a) pd := &common.PlayerData{UID: uid} db.Mysql().Get(pd) ret, err := call.GetUserXInfo(uid, "avatar", "nick", "mobile", "birth") @@ -275,6 +276,34 @@ func newContext(c *gin.Context) *gin.Context { return nContext } +// CheckTask 完成任务 +func CheckTask(a *app.Gin) { + var taskList []*values.OneTask + tasks := call.GetConfigTask() + for _, v := range tasks { + one := &values.OneTask{ + ID: v.ID, + TaskID: v.TaskID, + Target: v.Target, + Reward: v.Reward, + Kind: v.Kind, + Type: int(v.Type), + Icon: v.Icon, + Title: common.GetTaskTitle(v), + Action: v.Action, + } + taskList = append(taskList, one) + } + for _, v := range taskList { + if v.Type == int(common.TaskTypeDownload) && v.Progess != -1 { // 已下载直接标记为完成 + if a.DeviceType == common.DeviceTypeWebview || a.DeviceType == common.DeviceTypePWA { + // 直接领取下载奖励 + taskId := call.CheckTask(call.Task{Uid: a.UID, Value: 0, Types: []common.TaskType{common.TaskTypeDownload}}) + TaskComplete(a, &DrawTaskReq{TaskID: taskId}) + } + } + } +} func CheckRedPoint(uid int, c *gin.Context) { // 防止玩家未连接网关,所以延迟3秒 time.AfterFunc(time.Second*3, func() {