这一章里面的transfer金额问题

来源:5-15 资金账户模块-转账和储值接口-应用服务层实现编码实践

qq_红_14

2020-05-12

transfer 方法,其中的金额是用 string字段来传的,如果传进来的一开始就是 负数,咋办呢? 没看到老师做校验啊

写回答

1回答

枫荇

2020-05-12

你好,同学!

在DTO中使用string来传金额,主要考虑的是精度问题,避免在前后端处理过程中丢失精度。

效验使用的是go-playground/validator框架来效验,本例子中使用的是注解方式,如下例子中的AmountStr:

//转账对象
type AccountTransferDTO struct {
 ... 
  AmountStr   string            `validate:"required,numeric"` //交易金额,该交易涉及的金额

 ....

其中validate:"required,numeric",的required效验为必须,numeric效验为数字。

如果要效验为非负数,可以使用gte=0来效验,意思是大于等于0,gte:Greater Than or Equal 


需要参考可异步至:https://godoc.org/github.com/go-playground/validator#hdr-Greater_Than

0
0

仿微信抢红包 Golang实战多版本抢红包系统

Golang红包系统单体版+并发版+分布式+微服务版,四大金装版、超值必修课

582 学习 · 159 问题

查看课程