|
|
|
@@ -29,13 +29,7 @@ func (operator *PointOperator) IsLimited(ctx *models.RewardOperateContext) error |
|
|
|
} |
|
|
|
|
|
|
|
func (operator *PointOperator) Operate(ctx *models.RewardOperateContext) error { |
|
|
|
a, err := account.GetAccount(ctx.TargetUserId) |
|
|
|
if err != nil || a == nil { |
|
|
|
log.Error("operator get account error error,err=%v", err) |
|
|
|
return errors.New("get account error") |
|
|
|
} |
|
|
|
|
|
|
|
lock := redis_lock.NewDistributeLock(redis_key.PointAccountOperateLock(a.AccountCode)) |
|
|
|
lock := redis_lock.NewDistributeLock(redis_key.PointAccountOperateLock(ctx.TargetUserId)) |
|
|
|
isOk, err := lock.LockWithWait(3*time.Second, 3*time.Second) |
|
|
|
if err != nil { |
|
|
|
log.Error("Get PointAccountOperateLock error,err=%v", err) |
|
|
|
@@ -43,7 +37,11 @@ func (operator *PointOperator) Operate(ctx *models.RewardOperateContext) error { |
|
|
|
} |
|
|
|
if isOk { |
|
|
|
defer lock.UnLock() |
|
|
|
na, _ := account.GetAccount(ctx.TargetUserId) |
|
|
|
na, err := account.GetAccount(ctx.TargetUserId) |
|
|
|
if err != nil || na == nil { |
|
|
|
log.Error("operator get account error error,err=%v", err) |
|
|
|
return errors.New("get account error") |
|
|
|
} |
|
|
|
if ctx.OperateType == models.OperateTypeIncrease { |
|
|
|
err = na.Increase(ctx.Reward.Amount, ctx.SourceId) |
|
|
|
} else if ctx.OperateType == models.OperateTypeDecrease { |
|
|
|
|