积分平台之二[积分加减]
背景 用于商家积分兑换商品活动 订单送积分 营销送积分 实现 要求 不允许超扣 需要幂等,应对网络问题和重复提交等情况 需要高性能 需要风控,避免薅羊毛 针对锁单需要支持积分预扣 针对退单需要积分回滚 步骤 用户校验 余额校验 用户限额校验(基于redis累加,计算剩余可赠送积分值) 调用存储过程 用户余额校验 加锁(MySQL lock 锁定用户id) 写入积分日志(开启事务) 更新用户余额 其他要求 如何避免超扣 MySQL层面的lock,也有遇到需要超扣的场景,用户一开始就可以使用一定积分,后面再来归还积分。 ...