From b70085c48c90aaea4b07ef0f3dd17dc08ee254d8 Mon Sep 17 00:00:00 2001 From: yedf2 <120050102@qq.com> Date: Sat, 30 Oct 2021 23:58:50 +0800 Subject: [PATCH] opt tcc barrier sample --- examples/http_tcc_barrier.go | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/examples/http_tcc_barrier.go b/examples/http_tcc_barrier.go index f65049b..5bae2d5 100644 --- a/examples/http_tcc_barrier.go +++ b/examples/http_tcc_barrier.go @@ -37,7 +37,7 @@ const transInUID = 1 const transOutUID = 2 func adjustTrading(db dtmcli.DB, uid int, amount int) error { - affected, err := dtmcli.DBExec(db, "update dtm_busi.user_account set trading_balance=trading_balance + ? where user_id=? and trading_balance + ? + balance >= 0", amount, uid, amount) + affected, err := dtmcli.DBExec(db, "update dtm_busi.user_account set trading_balance=trading_balance+? where user_id=? and trading_balance + ? + balance >= 0", amount, uid, amount) if err == nil && affected == 0 { return fmt.Errorf("update error, maybe balance not enough") } @@ -45,7 +45,7 @@ func adjustTrading(db dtmcli.DB, uid int, amount int) error { } func adjustBalance(db dtmcli.DB, uid int, amount int) error { - affected, err := dtmcli.DBExec(db, "update dtm_busi.user_account set trading_balance = trading_balance - ?, balance=balance+? where user_id=?;", amount, amount, uid) + affected, err := dtmcli.DBExec(db, "update dtm_busi.user_account set trading_balance=trading_balance-?, balance=balance+? where user_id=?;", amount, amount, uid) if err == nil && affected == 0 { return fmt.Errorf("update user_account 0 rows") } @@ -58,22 +58,19 @@ func tccBarrierTransInTry(c *gin.Context) (interface{}, error) { if req.TransInResult != "" { return req.TransInResult, nil } - barrier := MustBarrierFromGin(c) - return dtmcli.MapSuccess, barrier.Call(txGet(), func(db dtmcli.DB) error { + return dtmcli.MapSuccess, MustBarrierFromGin(c).Call(txGet(), func(db dtmcli.DB) error { return adjustTrading(db, transInUID, req.Amount) }) } func tccBarrierTransInConfirm(c *gin.Context) (interface{}, error) { - barrier := MustBarrierFromGin(c) - return dtmcli.MapSuccess, barrier.Call(txGet(), func(db dtmcli.DB) error { + return dtmcli.MapSuccess, MustBarrierFromGin(c).Call(txGet(), func(db dtmcli.DB) error { return adjustBalance(db, transInUID, reqFrom(c).Amount) }) } func tccBarrierTransInCancel(c *gin.Context) (interface{}, error) { - barrier := MustBarrierFromGin(c) - return dtmcli.MapSuccess, barrier.Call(txGet(), func(db dtmcli.DB) error { + return dtmcli.MapSuccess, MustBarrierFromGin(c).Call(txGet(), func(db dtmcli.DB) error { return adjustTrading(db, transInUID, -reqFrom(c).Amount) }) } @@ -83,23 +80,20 @@ func tccBarrierTransOutTry(c *gin.Context) (interface{}, error) { if req.TransInResult != "" { return req.TransInResult, nil } - barrier := MustBarrierFromGin(c) - return dtmcli.MapSuccess, barrier.Call(txGet(), func(db dtmcli.DB) error { + return dtmcli.MapSuccess, MustBarrierFromGin(c).Call(txGet(), func(db dtmcli.DB) error { return adjustTrading(db, transOutUID, -req.Amount) }) } func tccBarrierTransOutConfirm(c *gin.Context) (interface{}, error) { - barrier := MustBarrierFromGin(c) - return dtmcli.MapSuccess, barrier.Call(txGet(), func(db dtmcli.DB) error { + return dtmcli.MapSuccess, MustBarrierFromGin(c).Call(txGet(), func(db dtmcli.DB) error { return adjustBalance(db, transOutUID, -reqFrom(c).Amount) }) } // TccBarrierTransOutCancel will be use in test func TccBarrierTransOutCancel(c *gin.Context) (interface{}, error) { - barrier := MustBarrierFromGin(c) - return dtmcli.MapSuccess, barrier.Call(txGet(), func(db dtmcli.DB) error { + return dtmcli.MapSuccess, MustBarrierFromGin(c).Call(txGet(), func(db dtmcli.DB) error { return adjustTrading(db, transOutUID, reqFrom(c).Amount) }) }