From 735b87197112a48c786a4a19ad17061106031fdc Mon Sep 17 00:00:00 2001 From: yedf2 <120050102@qq.com> Date: Fri, 5 Nov 2021 22:31:32 +0800 Subject: [PATCH] xa response use error2Resp --- common/utils.go | 4 ---- examples/base_http.go | 20 +++++++++++++++++--- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/common/utils.go b/common/utils.go index 73b70e8..1ff48b1 100644 --- a/common/utils.go +++ b/common/utils.go @@ -13,7 +13,6 @@ import ( "github.com/gin-gonic/gin" "github.com/go-resty/resty/v2" - "github.com/yedf/dtm/dtmcli" "github.com/yedf/dtm/dtmcli/dtmimp" ) @@ -51,9 +50,6 @@ func WrapHandler(fn func(*gin.Context) (interface{}, error)) gin.HandlerFunc { var b = []byte{} if resp, ok := r.(*resty.Response); ok { // 如果是response,则取出body直接处理 b = resp.Body() - } else if err != nil && (strings.Contains(err.Error(), dtmcli.ResultFailure) || strings.Contains(err.Error(), dtmcli.ResultOngoing)) { - b = []byte(err.Error()) - err = nil } else if err == nil { b, err = json.Marshal(r) } diff --git a/examples/base_http.go b/examples/base_http.go index a0638b0..6a6dd4d 100644 --- a/examples/base_http.go +++ b/examples/base_http.go @@ -4,6 +4,7 @@ import ( "database/sql" "errors" "fmt" + "strings" "time" "github.com/gin-gonic/gin" @@ -99,6 +100,16 @@ func handleGeneralBusiness(c *gin.Context, result1 string, result2 string, busi return map[string]interface{}{"dtm_result": res}, nil } +func error2Resp(err error) (interface{}, error) { + if err != nil { + s := err.Error() + if strings.Contains(s, dtmcli.ResultFailure) || strings.Contains(s, dtmcli.ResultOngoing) { + return gin.H{"dtm_result": s}, nil + } + } + return nil, nil +} + // BaseAddRoute add base route handler func BaseAddRoute(app *gin.Engine) { app.POST(BusiAPI+"/TransIn", common.WrapHandler(func(c *gin.Context) (interface{}, error) { @@ -124,26 +135,28 @@ func BaseAddRoute(app *gin.Engine) { return dtmimp.OrString(MainSwitch.CanSubmitResult.Fetch(), dtmcli.ResultSuccess), nil })) app.POST(BusiAPI+"/TransInXa", common.WrapHandler(func(c *gin.Context) (interface{}, error) { - return dtmcli.MapSuccess, XaClient.XaLocalTransaction(c.Request.URL.Query(), func(db *sql.DB, xa *dtmcli.Xa) error { + err := XaClient.XaLocalTransaction(c.Request.URL.Query(), func(db *sql.DB, xa *dtmcli.Xa) error { if reqFrom(c).TransInResult == dtmcli.ResultFailure { return dtmcli.ErrFailure } _, err := dtmimp.DBExec(db, "update dtm_busi.user_account set balance=balance+? where user_id=?", reqFrom(c).Amount, 2) return err }) + return error2Resp(err) })) app.POST(BusiAPI+"/TransOutXa", common.WrapHandler(func(c *gin.Context) (interface{}, error) { - return dtmcli.MapSuccess, XaClient.XaLocalTransaction(c.Request.URL.Query(), func(db *sql.DB, xa *dtmcli.Xa) error { + err := XaClient.XaLocalTransaction(c.Request.URL.Query(), func(db *sql.DB, xa *dtmcli.Xa) error { if reqFrom(c).TransOutResult == dtmcli.ResultFailure { return dtmcli.ErrFailure } _, err := dtmimp.DBExec(db, "update dtm_busi.user_account set balance=balance-? where user_id=?", reqFrom(c).Amount, 1) return err }) + return error2Resp(err) })) app.POST(BusiAPI+"/TransOutXaGorm", common.WrapHandler(func(c *gin.Context) (interface{}, error) { - return dtmcli.MapSuccess, XaClient.XaLocalTransaction(c.Request.URL.Query(), func(db *sql.DB, xa *dtmcli.Xa) error { + err := XaClient.XaLocalTransaction(c.Request.URL.Query(), func(db *sql.DB, xa *dtmcli.Xa) error { if reqFrom(c).TransOutResult == dtmcli.ResultFailure { return dtmcli.ErrFailure } @@ -160,6 +173,7 @@ func BaseAddRoute(app *gin.Engine) { dbr := gdb.Exec("update dtm_busi.user_account set balance=balance-? where user_id=?", reqFrom(c).Amount, 1) return dbr.Error }) + return error2Resp(err) })) app.POST(BusiAPI+"/TestPanic", common.WrapHandler(func(c *gin.Context) (interface{}, error) {