diff --git a/common/task.go b/common/task.go index e4d5340..be24cab 100644 --- a/common/task.go +++ b/common/task.go @@ -48,6 +48,7 @@ const ( TaskKindZero = iota TaskKindOnce TaskKindCycle + TaskKindDayOne TaskKindAll ) @@ -60,7 +61,7 @@ type ConfigTask struct { Target int64 `gorm:"column:target;type:bigint(20);default:0;comment:任务目标" web:"target"` Reward int64 `gorm:"column:reward;type:bigint(20);default:0;comment:奖励" web:"reward"` Open int `gorm:"column:open;type:int(11);default:1;comment:开关 1打开" web:"open"` - Kind int `gorm:"column:kind;type:int(11);default:1;comment:1单次 2循环" web:"kind"` + Kind int `gorm:"column:kind;type:int(11);default:1;comment:1单次 2循环 3 每日一次" web:"kind"` Type TaskType `gorm:"column:type;type:int(11);default:1;comment:1注册 2下载" web:"type"` Title string `gorm:"column:title;type:varchar(256);default:'';comment:标题" web:"title"` Icon string `gorm:"column:icon;type:varchar(256);default:'';comment:图标" web:"icon"` diff --git a/modules/web/app/activity.go b/modules/web/app/activity.go index 71532ec..a470277 100644 --- a/modules/web/app/activity.go +++ b/modules/web/app/activity.go @@ -51,6 +51,7 @@ func (a *Gin) GetUserTaskStatus() (ret []*values.OneTask) { if a.UID <= 0 { return } + now := time.Now() task := call.GetUserTaskData(a.UID) for _, v := range ret { @@ -59,7 +60,7 @@ func (a *Gin) GetUserTaskStatus() (ret []*values.OneTask) { v.Progess = k.Progress taskTime := time.Unix(k.Time, 0) // 跨天清空数据 - if !util.IsSameDay(now, taskTime) { + if !util.IsSameDay(now, taskTime) && v.Kind == common.TaskKindDayOne { v.Status = 0 v.Progess = 0 err := db.Mysql().Update(&k, map[string]interface{}{ @@ -70,9 +71,15 @@ func (a *Gin) GetUserTaskStatus() (ret []*values.OneTask) { log.Error("GetUserTaskStatus err:%v", err) } } + break } } + if v.Type == int(common.TaskTypeDownload) { // 已下载直接标记为完成 + if a.DeviceType == common.DeviceTypeWebview || a.DeviceType == common.DeviceTypePWA { + call.CheckTask(call.Task{Uid: a.UID, Value: 0, Types: []common.TaskType{common.TaskTypeDownload}}) + } + } // 非次数任务,需转换目标数值 // if !common.IsNumTaskType(v.Type) && v.Progess > 0 { // v.Progess /= common.DecimalDigits diff --git a/modules/web/handler/h5.go b/modules/web/handler/h5.go index 5fb4909..0fb9c5e 100644 --- a/modules/web/handler/h5.go +++ b/modules/web/handler/h5.go @@ -90,6 +90,7 @@ func H5DownloadDraw(c *gin.Context) { a.Code = values.CodeRetry return } + // call.UpdateCurrencyPro(&common.UpdateCurrencyNotify{ // Pairs: []*common.CurrencyPair{{Type: common.CurrencyTypeBindCash, Value: con.DownloadReward}}, // CurrencyBalance: &common.CurrencyBalance{ diff --git a/modules/web/handler/task.go b/modules/web/handler/task.go index e057d7c..4697c32 100644 --- a/modules/web/handler/task.go +++ b/modules/web/handler/task.go @@ -60,7 +60,7 @@ func DrawTask(c *gin.Context) { // } var rows int64 var err error - if con.Kind == common.TaskKindOnce { + if con.Kind == common.TaskKindOnce || con.Kind == common.TaskKindDayOne { 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})