Browse Source

#2225

fix bug
tags/v1.22.9.2^2
chenyifan01 3 years ago
parent
commit
a18c391ae9
2 changed files with 7 additions and 4 deletions
  1. +3
    -3
      models/task_accomplish_log.go
  2. +4
    -1
      services/reward/limiter/limiter.go

+ 3
- 3
models/task_accomplish_log.go View File

@@ -30,11 +30,11 @@ func getTaskAccomplishLog(tl *TaskAccomplishLog) (*TaskAccomplishLog, error) {
return tl, nil 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 { 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 { } 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{})
} }


} }


+ 4
- 1
services/reward/limiter/limiter.go View File

@@ -142,6 +142,9 @@ func (l *limiterRunner) limit(r models.LimitConfig) error {
} }
if p != nil { if p != nil {
redis_client.Expire(redisKey, p.LeftTime) 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 { 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) { func (l *limiterRunner) countInPeriod(r models.LimitConfig, p *models.PeriodResult) (int64, error) {
switch r.LimitType { switch r.LimitType {
case models.LimitTypeTask.Name(): case models.LimitTypeTask.Name():
return models.CountTaskAccomplishLogInTaskPeriod(r.ID, l.userId, p)
return models.CountTaskAccomplishLogInTaskPeriod(r.LimitCode, l.userId, p)
case models.LimitTypeRewardPoint.Name(): case models.LimitTypeRewardPoint.Name():
return models.SumRewardAmountInTaskPeriod(models.RewardTypePoint.Name(), r.LimitCode, l.userId, p) return models.SumRewardAmountInTaskPeriod(models.RewardTypePoint.Name(), r.LimitCode, l.userId, p)
default: default:


Loading…
Cancel
Save