用户累计金币问题

用户累计金币问题

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