20221201记录一个数据处理bug的分析定位

bug现象:api接口导入发放数据进行发放,导入一个批次,含2个发放,金额各为0.02,合计0.04.
但从界面看,总有一笔的发放金额变为0.01.

检查接口发送请求参数如下:
{
	"datas": [{
		"acctName": "苏测测",
		"acctNo": "6214831201566565",
		"amount": 0.02,
		"bank": "银行",
		"bankCardLocation": "广东省广州市",
		"cardNo": "4451211991234567895",
		"mobile": "15622123456",
		"orderNo": "XbBANK202211301134417372",
		"papersType": "ID_CARD",
		"pmtType": "PAYMENT",
		"remark": "测试API代发SU",
		"memo": "备注工资敏感词"
	}, {
		"acctName": "苏测试",
		"acctNo": "6214831201865326565",
		"amount": 0.02,
		"bank": "银行",
		"bankCardLocation": "广东省广州市",
		"cardNo": "4451211994045656265256",
		"mobile": "156222312345",
		"orderNo": "XbBANK2022113011344171942",
		"papersType": "ID_CARD",
		"pmtType": "PAYMENT",
		"remark": "测试API代发SU",
		"memo": "备注薪税敏感词"
	}],
	"cmd": "BANK",
	"notifyUrls": "http://localhost:8080/notify"
}

结果:入库时,其中一笔金额变为0.01.进行发放。界面查看,数据与显示不一致
20221201记录一个数据处理bug的分析定位_第1张图片

1、检查发送请求的接口参数+检查门征流水表(发放数据入库的表):发现有 0.01个税产生。
20221201记录一个数据处理bug的分析定位_第2张图片

开始追溯:查看对应日志----发现有调用算法模块计算个税。截取算法的code
20221201记录一个数据处理bug的分析定位_第3张图片

一、查看数据处理的依据----算法公式–个税计算部分
20221201记录一个数据处理bug的分析定位_第4张图片
二、根据算法,查询到 累计应发金额1.36、月累计个税0
(有个表是 按月累计个人 发放金额)
20221201记录一个数据处理bug的分析定位_第5张图片
三、数据填入算法公式,得出结果—个税0.0068 四舍五入为0.01
20221201记录一个数据处理bug的分析定位_第6张图片

四、分析
一开始我都是按 0.04总额分两笔发放,有一笔是入库后是 发放0.01,个税0.01.
但因为mock发放是金额奇数结果会返回失败。所以 累计表个税一直是0.

因此发放总是会有一笔api参数金额是0.02,到管理端看是时候总是 显示金额为0.01-------因为公式减去的月累计个税一直是 0.

五、结论:极端情况下的系统数据处理场景,属正常功能。不做处理------------设计如此。

你可能感兴趣的:(接口测试,bug)