操作用户余额用原子操作多下单你是指限购吗? 那就先创建订单(至少保证在任何情况下断电不会丢订单),然后在用类似下面的语句减余额 update balance=balance-90 where id=1 and balabce>=90 然后根据语句的执行结果去修改订单支付状态并添加资金明细如果业务要求用户能显示出的订单必须都是成功支付的,那就把没支付成功的不显示就行了最怀情况扣了钱还没来得及修改订单状态添加资金明细服务器断电了,这时靠余额库的数据库操作记录去恢复数据修改订单支付状态和资金明细(可能会需要一些人工处理)
操作用户余额用原子操作
多下单你是指限购吗?
那就先创建订单(至少保证在任何情况下断电不会丢订单),然后在用类似下面的语句减余额
然后根据语句的执行结果去修改订单支付状态并添加资金明细
如果业务要求用户能显示出的订单必须都是成功支付的,那就把没支付成功的不显示就行了
最怀情况扣了钱还没来得及修改订单状态添加资金明细服务器断电了,这时靠余额库的数据库操作记录去恢复数据修改订单支付状态和资金明细(可能会需要一些人工处理)