diff --git a/models/task_accomplish_log.go b/models/task_accomplish_log.go index 75494bfa2..582411561 100644 --- a/models/task_accomplish_log.go +++ b/models/task_accomplish_log.go @@ -30,11 +30,11 @@ func getTaskAccomplishLog(tl *TaskAccomplishLog) (*TaskAccomplishLog, error) { return tl, nil } -func CountTaskAccomplishLogInTaskPeriod(configId int64, userId int64, period *PeriodResult) (int64, error) { +func CountTaskAccomplishLogInTaskPeriod(taskCode string, userId int64, period *PeriodResult) (int64, error) { if period == nil { - return x.Where("config_id = ? and user_id = ?", configId, userId).Count(&TaskAccomplishLog{}) + return x.Where("task_code = ? and user_id = ?", taskCode, userId).Count(&TaskAccomplishLog{}) } else { - return x.Where("config_id = ? and user_id = ? and created_unix >= ? and created_unix < ? ", configId, userId, period.StartTime.Unix(), period.EndTime.Unix()).Count(&TaskAccomplishLog{}) + return x.Where("task_code = ? and user_id = ? and created_unix >= ? and created_unix < ? ", taskCode, userId, period.StartTime.Unix(), period.EndTime.Unix()).Count(&TaskAccomplishLog{}) } } diff --git a/services/reward/limiter/limiter.go b/services/reward/limiter/limiter.go index a73779ac1..d357ceabd 100644 --- a/services/reward/limiter/limiter.go +++ b/services/reward/limiter/limiter.go @@ -142,6 +142,9 @@ func (l *limiterRunner) limit(r models.LimitConfig) error { } if p != nil { redis_client.Expire(redisKey, p.LeftTime) + } else { + //add default expire time if no period set + redis_client.Expire(redisKey, 24*time.Hour) } } if usedNum > r.LimitNum { @@ -183,7 +186,7 @@ func (l *limiterRunner) LoadLimiters() error { func (l *limiterRunner) countInPeriod(r models.LimitConfig, p *models.PeriodResult) (int64, error) { switch r.LimitType { case models.LimitTypeTask.Name(): - return models.CountTaskAccomplishLogInTaskPeriod(r.ID, l.userId, p) + return models.CountTaskAccomplishLogInTaskPeriod(r.LimitCode, l.userId, p) case models.LimitTypeRewardPoint.Name(): return models.SumRewardAmountInTaskPeriod(models.RewardTypePoint.Name(), r.LimitCode, l.userId, p) default: