前提是提幣失敗,好比交易所地址中沒有幣了,那麼這個流程就被中斷了,這個時候有兩個辦法:code
回退it
交易所地址充幣,而後繼續執行io
回退就是使用戶的帳戶回到沒有提幣時的狀態,固然也去除全部記錄:date
// 第一步找出這個用戶的帳戶,並update記錄到原先的狀態 SELECT * FROM `accounts` WHERE `member_id` = 26; UPDATE ... // 第二步經過帳戶找到提幣記錄,刪除 SELECT * FROM `withdraws` WHERE `member_id` = 26 and `account_id` = 232; DELETE FROM `withdraws` WHERE `member_id` = 26 and `account_id` = 232; // 第三步找到帳戶變化歷史記錄,清楚 SELECT * FROM `account_versions` WHERE `member_id` = 26 and `account_id` = 232 and `modifiable_type` = 'Withdraw'; DELETE FROM `account_versions` WHERE `member_id` = 26 and `account_id` = 232 and `modifiable_type` = 'Withdraw';