package entity import ( "errors" "gorm.io/plugin/soft_delete" "time" ) //AccountEntity 用户模型 type AccountEntity struct { ID uint CreatedAt time.Time UpdatedAt time.Time DeletedAt soft_delete.DeletedAt Account string TelNum string Currency string Amount *Money DailyLimit *Money } // 转出 func (a *AccountEntity) Withdraw(money Money) error { if a.Amount.Currency != money.Currency { return errors.New("货币不对") } if a.Amount.Less(money.Amount) { return errors.New("余额不足") } if a.DailyLimit.Less(money.Amount) { return errors.New("当日余额不足") } a.Amount = a.Amount.Subtract(money.Amount) return nil } // 转入 func (a *AccountEntity) Deposit(money Money) error { if a.Amount.Currency != money.Currency { return errors.New("货币不对") } a.Amount = a.Amount.Add(money.Amount) return nil }