|
|
|
|
@ -10,6 +10,7 @@ import ( |
|
|
|
|
"server/modules/web/app" |
|
|
|
|
"server/modules/web/values" |
|
|
|
|
"server/util" |
|
|
|
|
"sort" |
|
|
|
|
"time" |
|
|
|
|
|
|
|
|
|
"github.com/gin-gonic/gin" |
|
|
|
|
@ -18,6 +19,79 @@ import ( |
|
|
|
|
"gorm.io/gorm" |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
// GetUserTaskStatus 获取任务状态
|
|
|
|
|
func GetUserTaskStatus(a *app.Gin) (ret []*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, |
|
|
|
|
} |
|
|
|
|
// 非次数任务,需转换目标数值
|
|
|
|
|
// if !common.IsNumTaskType(v.Type) {
|
|
|
|
|
// one.Target /= common.DecimalDigits
|
|
|
|
|
// }
|
|
|
|
|
ret = append(ret, one) |
|
|
|
|
} |
|
|
|
|
if a.UID <= 0 { |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
now := time.Now() |
|
|
|
|
task := call.GetUserTaskData(a.UID) |
|
|
|
|
for _, v := range ret { |
|
|
|
|
for _, k := range task { |
|
|
|
|
if v.TaskID == k.TaskID { |
|
|
|
|
v.Progess = k.Progress |
|
|
|
|
taskTime := time.Unix(k.Time, 0) |
|
|
|
|
// 跨天清空数据
|
|
|
|
|
if !util.IsSameDay(now, taskTime) && v.Kind == common.TaskKindDayOne { |
|
|
|
|
v.Status = 0 |
|
|
|
|
v.Progess = 0 |
|
|
|
|
err := db.Mysql().Update(&k, map[string]interface{}{ |
|
|
|
|
"progress": 0, |
|
|
|
|
"time": now.Unix(), |
|
|
|
|
}) |
|
|
|
|
if err != nil { |
|
|
|
|
log.Error("GetUserTaskStatus err:%v", err) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
break |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if v.Type == int(common.TaskTypeDownload) { // 已下载直接标记为完成
|
|
|
|
|
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}) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
// 非次数任务,需转换目标数值
|
|
|
|
|
// if !common.IsNumTaskType(v.Type) && v.Progess > 0 {
|
|
|
|
|
// v.Progess /= common.DecimalDigits
|
|
|
|
|
// }
|
|
|
|
|
if v.Progess < 0 { |
|
|
|
|
v.Progess = v.Target |
|
|
|
|
v.Status = 2 |
|
|
|
|
} else if v.Progess >= v.Target { |
|
|
|
|
v.Progess = v.Target |
|
|
|
|
v.Status = 1 |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
sort.SliceStable(ret, func(i, j int) bool { |
|
|
|
|
return ret[i].Status > ret[j].Status |
|
|
|
|
}) |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func GetPromotions(c *gin.Context) { |
|
|
|
|
a := app.NewApp(c) |
|
|
|
|
defer func() { |
|
|
|
|
@ -27,7 +101,7 @@ func GetPromotions(c *gin.Context) { |
|
|
|
|
a.Data = ret |
|
|
|
|
a.GetUID() |
|
|
|
|
ret.ActivityList = call.GetConfigActivityActiveAll(a.UID) |
|
|
|
|
ret.TaskList = a.GetUserTaskStatus() |
|
|
|
|
ret.TaskList = GetUserTaskStatus(a) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func UploadActivityData(c *gin.Context) { |
|
|
|
|
@ -1868,3 +1942,21 @@ func ActivityBetDrawHistory(c *gin.Context) { |
|
|
|
|
_, _ = db.ES().QueryList(common.ESIndexBackBetDraw, 0, 5000, q, &resp.SelfList, "Time", false) |
|
|
|
|
a.Data = resp |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func ActivityPopup(c *gin.Context) { |
|
|
|
|
a := app.NewApp(c) |
|
|
|
|
defer func() { |
|
|
|
|
a.Response() |
|
|
|
|
}() |
|
|
|
|
req := values.ActivityPopupReq{} |
|
|
|
|
if !a.S(&req) { |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
resp := new(values.ActivityPopupResp) |
|
|
|
|
a.Data = resp |
|
|
|
|
if req.JumpType == 0 { |
|
|
|
|
resp.List = call.GetConfigActivityPopup() |
|
|
|
|
} else { |
|
|
|
|
resp.List = call.GetConfigActivityPopupByType(req.JumpType) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|