20 lines
416 B
Go
20 lines
416 B
Go
|
package service
|
||
|
|
||
|
import "dddexample/pkg/domain/entity"
|
||
|
|
||
|
func Transfer(sourceAccount, targetAccount *entity.AccountEntity, money entity.Money, exchangeRate *entity.ExchangeRate) (err error) {
|
||
|
var sourceMoney = exchangeRate.ExchageTo(money)
|
||
|
|
||
|
err = targetAccount.Deposit(money) //转入
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
err = sourceAccount.Withdraw(sourceMoney) //转出
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
return
|
||
|
}
|