xa changed
This commit is contained in:
parent
2a36d597d7
commit
a35d48cf0f
@ -34,8 +34,8 @@ func PanicIfFailure(res interface{}, err error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// CheckUserResponse 检查Response,返回错误
|
// CheckResponse 检查Response,返回错误
|
||||||
func CheckUserResponse(resp *resty.Response, err error) error {
|
func CheckResponse(resp *resty.Response, err error) error {
|
||||||
if err == nil && resp != nil {
|
if err == nil && resp != nil {
|
||||||
if resp.IsError() {
|
if resp.IsError() {
|
||||||
return errors.New(resp.String())
|
return errors.New(resp.String())
|
||||||
@ -46,6 +46,18 @@ func CheckUserResponse(resp *resty.Response, err error) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CheckResult 检查Result,返回错误
|
||||||
|
func CheckResult(res interface{}, err error) error {
|
||||||
|
resp, ok := res.(*resty.Response)
|
||||||
|
if ok {
|
||||||
|
return CheckResponse(resp, err)
|
||||||
|
}
|
||||||
|
if res != nil && strings.Contains(common.MustMarshalString(res), "FAILURE") {
|
||||||
|
return ErrFailure
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
// CheckDtmResponse check the response of dtm, if not ok ,generate error
|
// CheckDtmResponse check the response of dtm, if not ok ,generate error
|
||||||
func CheckDtmResponse(resp *resty.Response, err error) error {
|
func CheckDtmResponse(resp *resty.Response, err error) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -135,3 +147,6 @@ var ErrFailure = errors.New("transaction FAILURE")
|
|||||||
|
|
||||||
// ResultSuccess 表示返回成功,可以进行下一步
|
// ResultSuccess 表示返回成功,可以进行下一步
|
||||||
var ResultSuccess = common.M{"dtm_result": "SUCCESS"}
|
var ResultSuccess = common.M{"dtm_result": "SUCCESS"}
|
||||||
|
|
||||||
|
// ResultFailure 表示返回失败,要求回滚
|
||||||
|
var ResultFailure = common.M{"dtm_result": "FAILURE"}
|
||||||
|
|||||||
@ -95,6 +95,7 @@ func (xc *XaClient) XaLocalTransaction(c *gin.Context, xaFunc XaLocalFunc) (ret
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
ret, rerr = xaFunc(db, xa)
|
ret, rerr = xaFunc(db, xa)
|
||||||
|
rerr = CheckResult(ret, rerr)
|
||||||
if rerr != nil {
|
if rerr != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -143,5 +144,5 @@ func (x *Xa) CallBranch(body interface{}, url string) (*resty.Response, error) {
|
|||||||
"branch_type": "action",
|
"branch_type": "action",
|
||||||
}).
|
}).
|
||||||
Post(url)
|
Post(url)
|
||||||
return resp, CheckUserResponse(resp, err)
|
return resp, CheckResponse(resp, err)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -56,6 +56,6 @@ func xaRollback(t *testing.T) {
|
|||||||
})
|
})
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
WaitTransProcessed(gid)
|
WaitTransProcessed(gid)
|
||||||
assert.Equal(t, []string{"succeed", "prepared", "succeed", "prepared"}, getBranchesStatus(gid))
|
assert.Equal(t, []string{"succeed", "prepared"}, getBranchesStatus(gid))
|
||||||
assert.Equal(t, "failed", getTransStatus(gid))
|
assert.Equal(t, "failed", getTransStatus(gid))
|
||||||
}
|
}
|
||||||
|
|||||||
@ -44,7 +44,7 @@ func QsFireRequest() string {
|
|||||||
|
|
||||||
func qsAdjustBalance(uid int, amount int) (interface{}, error) {
|
func qsAdjustBalance(uid int, amount int) (interface{}, error) {
|
||||||
_, err := common.SdbExec(sdbGet(), "update dtm_busi.user_account set balance = balance + ? where user_id = ?", amount, uid)
|
_, err := common.SdbExec(sdbGet(), "update dtm_busi.user_account set balance = balance + ? where user_id = ?", amount, uid)
|
||||||
return M{"dtm_result": "SUCCESS"}, err
|
return dtmcli.ResultSuccess, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func qsAddRoute(app *gin.Engine) {
|
func qsAddRoute(app *gin.Engine) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user