修复余额与套餐用量并发更新可能导致数据错误的问题

This commit is contained in:
2025-04-30 16:17:18 +08:00
parent c9258aa8ae
commit fa356431ee
4 changed files with 10 additions and 10 deletions

View File

@@ -2,6 +2,7 @@ package services
import (
"context"
"database/sql"
"encoding/json"
"fmt"
"platform/pkg/rds"
@@ -162,13 +163,13 @@ func (s *resourceService) CreateResource(data *CreateResourceData, uid int32) er
// 更新用户余额
_, err = q.User.
Where(q.User.ID.Eq(uid)).
Update(q.User.Balance, user.Balance-amount)
UpdateSimple(q.User.Balance.Sub(amount))
if err != nil {
return err
}
return nil
})
}, &sql.TxOptions{Isolation: sql.LevelRepeatableRead})
if err != nil {
return err
}