diff --git a/test/busi/barrier.go b/test/busi/barrier.go index d3793d0..7937dbe 100644 --- a/test/busi/barrier.go +++ b/test/busi/barrier.go @@ -96,6 +96,34 @@ func init() { return tccAdjustTrading(tx, TransInUID, -reqFrom(c).Amount) }) })) + app.POST(BusiAPI+"/SagaMultiSource", dtmutil.WrapHandler2(func(c *gin.Context) interface{} { + barrier := MustBarrierFromGin(c) + transOutSource := pdbGet() + err := barrier.CallWithDB(transOutSource, func(tx *sql.Tx) error { + return SagaAdjustBalance(tx, TransOutUID, -reqFrom(c).Amount, reqFrom(c).TransOutResult) + }) + if err != nil { + return err + } + transInSource := pdbGet() + return MustBarrierFromGin(c).CallWithDB(transInSource, func(tx *sql.Tx) error { + return SagaAdjustBalance(tx, TransInUID, reqFrom(c).Amount, reqFrom(c).TransInResult) + }) + })) + app.POST(BusiAPI+"/SagaMultiSourceRevert", dtmutil.WrapHandler2(func(c *gin.Context) interface{} { + barrier := MustBarrierFromGin(c) + transOutSource := pdbGet() + err := barrier.CallWithDB(transOutSource, func(tx *sql.Tx) error { + return SagaAdjustBalance(tx, TransOutUID, +reqFrom(c).Amount, "") + }) + if err != nil { + return err + } + transInSource := pdbGet() + return MustBarrierFromGin(c).CallWithDB(transInSource, func(tx *sql.Tx) error { + return SagaAdjustBalance(tx, TransInUID, -reqFrom(c).Amount, "") + }) + })) app.POST(BusiAPI+"/SagaRedisTransIn", dtmutil.WrapHandler2(func(c *gin.Context) interface{} { return MustBarrierFromGin(c).RedisCheckAdjustAmount(RedisGet(), GetRedisAccountKey(TransInUID), reqFrom(c).Amount, 7*86400) }))