dbr:=db.Exec("update dtm_busi.user_account_trading t join dtm_busi.user_account a on t.user_id=a.user_id and t.user_id=? set t.trading_balance=t.trading_balance + ? where a.balance + t.trading_balance + ? > 0",uid,amount,amount)
dbr:=db.Exec("update dtm_busi.user_account_trading t join dtm_busi.user_account a on t.user_id=a.user_id and t.user_id=? set t.trading_balance=t.trading_balance + ? where a.balance + t.trading_balance + ? >= 0",uid,amount,amount)
ifdbr.Error==nil&&dbr.RowsAffected==0{
returnnil,fmt.Errorf("update error, maybe balance not enough")
dbr:=db.Exec("update dtm_busi.user_account_trading t join dtm_busi.user_account a on t.user_id=a.user_id and t.user_id=? set t.trading_balance=t.trading_balance + ? where a.balance + t.trading_balance + ? > 0",uid,-amount,-amount)
ifdbr.Error!=nil{
returnnil,dbr.Error
}
ifdbr.RowsAffected==0{
returnnil,fmt.Errorf("update trading error")
dbr:=db.Exec("update dtm_busi.user_account_trading t join dtm_busi.user_account a on t.user_id=a.user_id and t.user_id=? set t.trading_balance=t.trading_balance + ?",uid,-amount,-amount)
ifdbr.Error==nil&&dbr.RowsAffected==1{
dbr=db.Exec("update dtm_busi.user_account set balance=balance+? where user_id=?",amount,uid)