You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
859 B
39 lines
859 B
package session |
|
|
|
import ( |
|
"sync" |
|
"texas-poker-bk/internal/game" |
|
) |
|
|
|
// NetAccount 已认证的长连接用户 |
|
type NetAccount struct { |
|
Id int64 |
|
UserName string |
|
Avatar string |
|
Client *NetClient |
|
Balance int32 // 余额 |
|
Player *game.Player |
|
BalanceLock *sync.RWMutex |
|
Lock *sync.Mutex |
|
} |
|
|
|
func (account *NetAccount) DecrementBalance(amount int32) int32 { |
|
account.BalanceLock.Lock() |
|
defer account.BalanceLock.Unlock() |
|
account.Balance -= amount |
|
// TODO 同步到 DB |
|
return account.Balance |
|
} |
|
|
|
func (account *NetAccount) IncrementBalance(amount int32) int32 { |
|
account.BalanceLock.Lock() |
|
defer account.BalanceLock.Unlock() |
|
account.Balance += amount |
|
return account.Balance |
|
} |
|
|
|
func (account *NetAccount) GetBalance() int32 { |
|
account.BalanceLock.RLock() |
|
defer account.BalanceLock.RUnlock() |
|
return account.Balance |
|
}
|
|
|