这篇具有很好参考价值的文章主要介绍了国内项目国际化后金额处理方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。
目标现状及问题
目标:
已有的国内项目,需要部署国际化。需要考虑币种、金额货币精度、多语言、汇率、税等一系列问题。这里主要说的就是其中金额精度的处理。
现状:
日常国内项目里,界面输入的金额是元,然后数据库存储以及与其他系统交互都是用的分,也是就固定的货币精度系数100。
问题:
那么国际化项目后,存在不同地方存金额精度不一致问题,同时根据不同币种存储和展示精度系数不一致问题。需提供一个整体解决方案。比如KHR 瑞尔 有的规定最小就是精度为0,那么页面填写100,数据库存储也是100。
前置
币种的精度系数有专门的配置系统里配置好的,直接读配置获取系数即可
解决方案
方案名
|
描述
|
优缺点
|
改动点
|
全量修改
|
- 提供金额处理方法
- 所有涉及到金额录入地方,前端入参后都调统一方法处理
- 所有涉及到金额展示地方,后端返回前端前都调统一方法处理
|
优点:需要处理的金额则直接处理,精细度高。
缺点:
- 前端后端目前涉及金额的地方包括业务逻辑处都需处理,改动量大。
|
|
拦截器统一处理
|
- 去掉前后端所有金额处理地方,统一在垂直网关里,处理入参和出参。
|
优点:统一处理
缺点:
- 需罗列出哪些金额需要处理,哪些不需要处理,并支持配置
|
|
前端修改
|
- 前端增加处理金额统一方法
- 前端提交和展示对应的方法的请求前后,统一处理方法
|
|
|
选定方案
经过考虑,使用拦截器统一处理的方案,首先哪个方案都需要梳理哪些地方涉及改动,但是拦截器的方案,后面有优化只需要修改一个地方即可。
方案图例
文章来源:https://www.toymoban.com/news/detail-749563.html
文章来源地址https://www.toymoban.com/news/detail-749563.html
拦截器统一处理
具体实现
- 新增一个通用的金额处理方法,根据金额和精度得到最后的数据
伪代码--仅仅提供思路
注意
- BigDecimal 除以后需要四舍五入或者四舍六入五成双
- 入参里若是有MultipartFile 等特殊类型需要提前过滤
- 出参统一类返回更好,不然需要多处理一些
后记
其实说白了就是利用aop的切面,增加项目中日志、鉴权等功能
到了这里,关于国内项目国际化后金额处理方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!