平台的余额查询逻辑中,今天爆了个雷。因平台用户都是较大的商户,且资金一般都是整数(这也是埋雷这么久的原因吧),但今天有客户说他们今天充值金额有个0.63的零头,但为何页面展示的账户余额零头却只是0.6?

debug跟了下代码,用测试数据貌似没有问题:

用了客户说的充值金额再试了下,不好了:

果然是把后面的3分钱吃了---虽然3分钱是小钱,但搞支付的哪怕1分钱都得明明白白才行!

项目引用的处理json的jar包是常用的net.sf.json:

        <dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>

很明显,是源数据串转为json对象时,出现了数值格式的useableBanlance丢位失真,但字符格式的balance没有出问题!

没时间进去看源代码,直接重新引入fastjson:

        <dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.31</version>
</dependency>

然后将处理json的语句做了相应的方法变更,重新用客户的数据跑了一下,终于靠谱了:

果断换成fastjson,重新打包更新,把这个问题对付了过去。

接下来的工作:

1、清查所有json处理的相关代码,尽快完成jar包方法替换,最终摈弃net.sf.json,也许存在即真理,但我不想去证明这个真理了!

2、修改上游返回数据格式,为啥会出现同样的账户余额,一个用字符型,一个却用数值型?

最新文章

  1. C语言学习 第四次作业总结
  2. POJ 1113:Wall
  3. EWM一个仓库号对应ERP多个PLANT的配置
  4. android源码在线查看
  5. java开发bug 在启动Tomcat 6.0时发现第一条信息便是
  6. Spring使用拦截器支持国际化(转)
  7. oracle 组函数
  8. LCS最长公共子序列
  9. Umbraco中的权限体系结构
  10. cocos2d-x3.0 ListView
  11. Python入门之中文乱码
  12. hdu_3564_Another LIS(线段树+LIS)
  13. Linux核心命令使用方法
  14. [POJ2259]Team Queue (队列,模拟)
  15. VS2017不能弹出安装界面的原因.
  16. SAP abap 语句、命令 语法查询备用
  17. fiddler抓不到chrome浏览器的请求
  18. 使用Visual Studio Team Services敏捷规划和项目组合管理(三)——使用Kanban板
  19. Go 接口(interface)
  20. 扩展layui中的自带字体图标

热门文章

  1. Hibernate 配置文件的基础配置
  2. js递归遍历多维数组并在修改数组的key后返回新的多维数组
  3. 4、初识python
  4. [LeetCode] Random Flip Matrix 随机翻转矩阵
  5. Reward List 赏金列表
  6. python连接服务器上传文件,后台执行命令
  7. Jmeter响应数据中文乱码
  8. odoo按钮触发下载文件
  9. CMSC 216 Exercise #5
  10. 发现了一个比较有意思的url参数