哈喽大家好,我是小米,一个对技术充满热情的29岁程序员!最近我们系统上线遇到了一些问题,解决之后觉得特别有收获,今天就和大家分享两件事儿,希望对你们也有帮助。
第一件事:限售问题
背景回顾
上线后运营配置了北京、天津等20个省的限售规则,但后来发现,即便新疆没有在配置范围内,用户依然能进行购买!这不禁让我们挠头了,于是开始定位问题。
首先,我们检查了限售逻辑,发现代码大致如下:
在这个逻辑里,只要请求的地址以某个配置省的编号开头,就允许购买。但问题在于,数据库里天津的编号是2,而新疆是28,所以startsWith("2")直接把新疆也算进去了!
解决方案一:改用equals写法
我们的第一反应是将startsWith改为equals,代码如下:
测试的时候,我们发现仍然有问题!比如请求参数是"27|2386|2