用户累计金币问题
Author: fupeng.li
Date: 2020-05-12
关键词:用户金币 累计
需求梳理
用户的金币在使用过程中是加加减减的,所以 coin_value 存的就是最终的金币数量,但是在一些情况下,我们需要使用的用户获取的金币(不包含减少的金币),增加了一个新的字段 coin_total 用来存储对应的总的金币值
对应代码
这块代码比较复杂,因为涉及到好多不同的模块,各个模块之间由于历史原因,使用的是不同的方式处理加减金币逻辑
- 单独的处理金币的接口
- 直接使用 SQL 处理的逻辑
- 一些其他的地方,单独的金币逻辑
这部分直接对应代码讲解
todo: handler/common/common.go AddUserCoin @jingtao.li @dawu.wang
其他历史遗留问题
表 user_coin 新加的字段 coin_total
代码里有处理新建记录的逻辑,因此上线前跑了一部分脚本,将用户的金币加总到这个字段
上线的过程中有些用户在进行金币处理,所以在上线的这个 gap 中,有一部分的用户的金币处理没有被 coin_total 顾及到,所以需要在处理完之后再跑一次这个脚本,有的项目组可能没有及时处理,导致了出现 coin_total < coin_value 的情况,需要排查处理
script/total_coin_script.go