这一章里面的transfer金额问题
来源:5-15 资金账户模块-转账和储值接口-应用服务层实现编码实践
qq_红_14
2020-05-12
transfer 方法,其中的金额是用 string字段来传的,如果传进来的一开始就是 负数,咋办呢? 没看到老师做校验啊
写回答
1回答
-
你好,同学!
在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
00
相似问题