Browse Source

#2225

update
tags/v1.22.9.2^2
chenyifan01 3 years ago
parent
commit
ca495858d6
2 changed files with 8 additions and 10 deletions
  1. +2
    -2
      modules/redis/redis_key/account_redis_key.go
  2. +6
    -8
      services/reward/point/point_operate.go

+ 2
- 2
modules/redis/redis_key/account_redis_key.go View File

@@ -4,8 +4,8 @@ import "fmt"

const ACCOUNT_REDIS_PREFIX = "account"

func PointAccountOperateLock(accountCode string) string {
return KeyJoin(ACCOUNT_REDIS_PREFIX, accountCode, "operate", "lock")
func PointAccountOperateLock(userId int64) string {
return KeyJoin(ACCOUNT_REDIS_PREFIX, fmt.Sprint(userId), "point", "operate", "lock")
}

func PointAccountInfo(userId int64) string {


+ 6
- 8
services/reward/point/point_operate.go View File

@@ -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 {


Loading…
Cancel
Save