业务说明
这样一个业务场景,有一个抽奖活动,抽奖活动中如果完成一次分享的任务,就会增加一次抽奖机会。
前端判断用户分享成功后,会调用一次保存分享记录的接口,将分享记录入库。
完成后,前端会调用获取调用查询【活动任务可完成次数】接口,如果任务可完成次数为0,则置灰分享按钮。
如图所示:
定位问题
测试给我提了一个 BUG,在测试环境,完成分享任务后,重新调用【活动任务可完成次数】后,发现接口返回可完成次数仍然是 1,
但是过了好几分钟后,重新进入活动页,接口返回了可完成次数为 0,分享按钮也已经置灰不可点击。
这就很奇怪了,一开始怀疑是缓存的问题,结果并不是,在测试环境远程 Debug 后发现,每次分享成功后,查询数据库分享任务的完成次数竟然没有查询到数据,
而数据中确实存在了分享的记录,将查询 SQL 和查询参数取出来放到 Navicat 中一查,结果是因为时间区间筛选掉了分享的那条记录。
SQL 如下:
SELECT * from t_share_record where uid = "1234567" and activity_id = 38867247
and create_time