demo_wallet

package
v0.0.0-...-184aab5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 30, 2022 License: MIT Imports: 2 Imported by: 0

Documentation

Index

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 UserBo

type UserBo struct {
	Id        string
	Name      string
	Cellphone string
}

type UserController

type UserController struct {
	// contains filtered or unexported fields
}

func (UserController) GetUserById

func (c UserController) GetUserById(userId string) UserVo

type UserEntity

type UserEntity struct {
	Id        string
	Name      string
	Cellphone string
}

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 UserVo

type UserVo struct {
	Id        string
	Name      string
	Cellphone string
}

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

func (*VirtualWalletService) Transfer

func (s *VirtualWalletService) Transfer(fromWalletId, toWalletId string, amount float64) error

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL