SELECT user_id, points, ref_user, transfer_no
FROM wp_points_log WHERE type='transfer'
ORDER BY id DESC LIMIT 5;

用户攒了 8000 分想转 2000 给朋友,翻遍会员中心找不到入口,只能发工单让客服手工改。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。

追下去是这么回事:积分设计之初只和单个账号绑定,流水表没有对手方字段。转移涉及双方余额和风控,一直没做。

「积分转移」排查到最后往往是很小的一处差异,前面那些复杂猜测可以先放一放。权限不要一口气开到最大,先加到够用再往上试,范围小才好收。

把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。改动写完就同步给同事,下一个人踩同一个坑,成本还是你的。

处理上按这个顺序:流水表加对手方用户 ID 和转移单号;一次转移写两条流水,一条负数一条正数,同一个事务提交;限制每日次数和单笔上限,接收方要验证邮箱;测试账号互转后核对双方余额和流水。

确认没问题再收工,双方余额一增一减数额相等,流水里有同一个转移单号。

作者 9823189