Documentation
¶
Index ¶
- Constants
- type DDDVirtualWalletService
- type UserBo
- type UserController
- type UserEntity
- type UserRepository
- type UserService
- type UserVo
- type VirtualWallet
- func (w *VirtualWallet) Balance() float64
- func (w *VirtualWallet) CloseOverdraft()
- func (w *VirtualWallet) Credit(amount float64) error
- func (w *VirtualWallet) Debit(amount float64) error
- func (w *VirtualWallet) DecreaseOverdraftAmount(amount float64)
- func (w *VirtualWallet) Freeze(amount float64)
- func (w *VirtualWallet) GetAvailableAmount() float64
- func (w *VirtualWallet) IncreaseOverdraftAmount(amount float64)
- func (w *VirtualWallet) OpenOverdraft()
- func (w *VirtualWallet) UnFreeze(amount float64)
- type VirtualWalletBo
- type VirtualWalletController
- func (c *VirtualWalletController) Credit(walletId string, amount float64)
- func (c *VirtualWalletController) Debit(walletId string, amount float64)
- func (c *VirtualWalletController) GetBalance(walletId string)
- func (c *VirtualWalletController) Transfer(fromWalletId, toWalletId string, amount float64)
- type VirtualWalletEntity
- type VirtualWalletRepository
- type VirtualWalletService
- func (s *VirtualWalletService) Credit(walletId string, amount float64)
- func (s *VirtualWalletService) Debit(walletId string, amount float64) error
- func (s *VirtualWalletService) GetBalance(walletId string) float64
- func (s *VirtualWalletService) GetVirtualWallet(walletId string) *VirtualWalletBo
- func (s *VirtualWalletService) Transfer(fromWalletId, toWalletId string, amount float64) error
- type VirtualWalletTransactionEntity
- func (e *VirtualWalletTransactionEntity) SetAmount(amount float64)
- func (e *VirtualWalletTransactionEntity) SetCreateTime(now time.Time)
- func (e *VirtualWalletTransactionEntity) SetFromWalletId(walletId string)
- func (e *VirtualWalletTransactionEntity) SetToWalletId(walletId string)
- func (e *VirtualWalletTransactionEntity) SetType(transactionType int)
- type VirtualWalletTransactionRepository
Constants ¶
View Source
const ( DEBIT = iota CREDIT TRANSFER )
TransactionType
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DDDVirtualWalletService ¶
type DDDVirtualWalletService struct {
// contains filtered or unexported fields
}
func (*DDDVirtualWalletService) Credit ¶
func (s *DDDVirtualWalletService) Credit(walletId string, amount float64) error
func (*DDDVirtualWalletService) Debit ¶
func (s *DDDVirtualWalletService) Debit(walletId string, amount float64) error
func (*DDDVirtualWalletService) GetBalance ¶
func (s *DDDVirtualWalletService) GetBalance(walletId string) float64
func (*DDDVirtualWalletService) Transfer ¶
func (s *DDDVirtualWalletService) Transfer()
type UserController ¶
type UserController struct {
// contains filtered or unexported fields
}
func (UserController) GetUserById ¶
func (c UserController) GetUserById(userId string) UserVo
type UserEntity ¶
type UserRepository ¶
type UserRepository struct{}
func (UserRepository) GetUserById ¶
func (r UserRepository) GetUserById(userId string) UserEntity
type UserService ¶
type UserService struct {
// contains filtered or unexported fields
}
func (UserService) GetUserById ¶
func (s UserService) GetUserById(userId string) UserBo
type VirtualWallet ¶
type VirtualWallet struct {
// contains filtered or unexported fields
}
VirtualWallet Domain 领域模型(充血模型),功能简单的时候,看起来来很淡薄。 增加一些复杂的功能是,优势就明显了,如增加透支和冻结功能。 功能继续演进,如增加更细化的冻结策略,透支策略,支持钱包账户ID自动生成逻辑(分布式 ID 生成算法)等, 那么就值得设计为充血模型,优势就更加明显了。
func NewVirtualWallet ¶
func NewVirtualWallet(preAllocatedId string) *VirtualWallet
func (*VirtualWallet) Balance ¶
func (w *VirtualWallet) Balance() float64
func (*VirtualWallet) CloseOverdraft ¶
func (w *VirtualWallet) CloseOverdraft()
func (*VirtualWallet) Credit ¶
func (w *VirtualWallet) Credit(amount float64) error
func (*VirtualWallet) Debit ¶
func (w *VirtualWallet) Debit(amount float64) error
func (*VirtualWallet) DecreaseOverdraftAmount ¶
func (w *VirtualWallet) DecreaseOverdraftAmount(amount float64)
func (*VirtualWallet) Freeze ¶
func (w *VirtualWallet) Freeze(amount float64)
func (*VirtualWallet) GetAvailableAmount ¶
func (w *VirtualWallet) GetAvailableAmount() float64
func (*VirtualWallet) IncreaseOverdraftAmount ¶
func (w *VirtualWallet) IncreaseOverdraftAmount(amount float64)
func (*VirtualWallet) OpenOverdraft ¶
func (w *VirtualWallet) OpenOverdraft()
func (*VirtualWallet) UnFreeze ¶
func (w *VirtualWallet) UnFreeze(amount float64)
type VirtualWalletBo ¶
type VirtualWalletBo struct {
// contains filtered or unexported fields
}
type VirtualWalletController ¶
type VirtualWalletController struct {
// contains filtered or unexported fields
}
func (*VirtualWalletController) Credit ¶
func (c *VirtualWalletController) Credit(walletId string, amount float64)
Credit 入账
func (*VirtualWalletController) Debit ¶
func (c *VirtualWalletController) Debit(walletId string, amount float64)
Debit 出账
func (*VirtualWalletController) GetBalance ¶
func (c *VirtualWalletController) GetBalance(walletId string)
GetBalance 查询余额
func (*VirtualWalletController) Transfer ¶
func (c *VirtualWalletController) Transfer(fromWalletId, toWalletId string, amount float64)
Transfer 转账
type VirtualWalletEntity ¶
type VirtualWalletEntity struct {
// contains filtered or unexported fields
}
func (VirtualWalletEntity) GetBalance ¶
func (e VirtualWalletEntity) GetBalance() float64
type VirtualWalletRepository ¶
type VirtualWalletRepository struct{}
func (*VirtualWalletRepository) GetBalance ¶
func (r *VirtualWalletRepository) GetBalance(walletId string) float64
func (*VirtualWalletRepository) GetWalletEntity ¶
func (r *VirtualWalletRepository) GetWalletEntity(walletId string) *VirtualWalletEntity
func (VirtualWalletRepository) UpdateBalance ¶
func (r VirtualWalletRepository) UpdateBalance(walletId string, amount float64)
type VirtualWalletService ¶
type VirtualWalletService struct {
// contains filtered or unexported fields
}
func (*VirtualWalletService) Credit ¶
func (s *VirtualWalletService) Credit(walletId string, amount float64)
func (*VirtualWalletService) Debit ¶
func (s *VirtualWalletService) Debit(walletId string, amount float64) error
func (*VirtualWalletService) GetBalance ¶
func (s *VirtualWalletService) GetBalance(walletId string) float64
func (*VirtualWalletService) GetVirtualWallet ¶
func (s *VirtualWalletService) GetVirtualWallet(walletId string) *VirtualWalletBo
type VirtualWalletTransactionEntity ¶
type VirtualWalletTransactionEntity struct {
// contains filtered or unexported fields
}
func NewVirtualWalletTransactionEntity ¶
func NewVirtualWalletTransactionEntity() *VirtualWalletTransactionEntity
func (*VirtualWalletTransactionEntity) SetAmount ¶
func (e *VirtualWalletTransactionEntity) SetAmount(amount float64)
func (*VirtualWalletTransactionEntity) SetCreateTime ¶
func (e *VirtualWalletTransactionEntity) SetCreateTime(now time.Time)
func (*VirtualWalletTransactionEntity) SetFromWalletId ¶
func (e *VirtualWalletTransactionEntity) SetFromWalletId(walletId string)
func (*VirtualWalletTransactionEntity) SetToWalletId ¶
func (e *VirtualWalletTransactionEntity) SetToWalletId(walletId string)
func (*VirtualWalletTransactionEntity) SetType ¶
func (e *VirtualWalletTransactionEntity) SetType(transactionType int)
type VirtualWalletTransactionRepository ¶
type VirtualWalletTransactionRepository struct{}
func (VirtualWalletTransactionRepository) SaveTransaction ¶
func (r VirtualWalletTransactionRepository) SaveTransaction(entity *VirtualWalletTransactionEntity)
Click to show internal directories.
Click to hide internal directories.