印度包网
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

93 lines
1.9 KiB

package app
import (
"server/call"
"server/common"
"server/db"
"server/modules/web/values"
"server/util"
"sort"
"time"
"github.com/liangdas/mqant/log"
)
// 从数据库中读取数据
func (g *Gin) CheckActivityExpire(id int) (pass bool) {
act := call.GetConfigActivityByID(id)
if act == nil {
pass = false
g.Code = values.CodeActivityExpire
return
}
pass = act.IsValid()
if !pass {
g.Code = values.CodeActivityExpire
}
return
}
// GetUserTaskStatus 获取任务状态
func (a *Gin) GetUserTaskStatus() (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.Status = 0
v.Progess = 0
err := db.Mysql().Update(&k, map[string]interface{}{
"status": 0,
"progress": 0,
"time": now.Unix(),
})
if err != nil {
log.Error("GetUserTaskStatus err:%v", err)
}
}
break
}
}
// 非次数任务,需转换目标数值
// 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
}