- fix show jd store info when access error

This commit is contained in:
gazebo
2019-03-12 18:13:05 +08:00
parent 7286c360b2
commit 7a19398c11

View File

@@ -196,23 +196,28 @@ func (a *API) AccessAPI(apiStr string, jdParams map[string]interface{}) (retVal
return platformapi.ErrLevelCodeIsNotOK, newErr
}
})
if err != nil {
if codeErr, ok := err.(*utils.ErrorWithCode); ok {
return retVal, a.rebuildError(err, jdParams)
}
func (a *API) rebuildError(inErr error, jdParams map[string]interface{}) (outErr error) {
if inErr != nil {
if codeErr, ok := inErr.(*utils.ErrorWithCode); ok {
appendErrList := []string{}
for _, key := range []string{
KeyOutStationNo,
KeyStationNo,
"StoreNo",
} {
if jdParams[key] != nil {
appendErrList = append(appendErrList, fmt.Sprintf("[%s:%v]", key, jdParams[key]))
}
}
if len(appendErrList) > 0 {
err = utils.NewErrorCode(strings.Join(appendErrList, ",")+", "+codeErr.ErrMsg(), codeErr.Code())
inErr = utils.NewErrorCode(strings.Join(appendErrList, ",")+", "+codeErr.ErrMsg(), codeErr.Code())
}
}
}
return retVal, err
return inErr
}
func genNoPageResultParser(codeKey, msgKey, resultKey, okCode string) func(data map[string]interface{}) (interface{}, error) {
@@ -260,6 +265,7 @@ func (a *API) AccessAPINoPage(apiStr string, jdParams map[string]interface{}, ke
if err == nil {
return utils.DictKeysMan(result, keyToRemove, keyToKeep), nil
}
err = a.rebuildError(err, jdParams)
baseapi.SugarLogger.Infof("AccessAPINoPage failed, apiStr:%s, jdParams:%s, data:%s, error:%v", apiStr, utils.Format4Output(jdParams, true), utils.Format4Output(jsonResult, true), err)
return result, err
}
@@ -357,12 +363,12 @@ func (a *API) AccessAPIHavePage(apiStr string, jdParams map[string]interface{},
if innerCode != "0" {
err2 := utils.NewErrorCode(getErrMsgFromData(data), innerCode, 1)
baseapi.SugarLogger.Infof("AccessAPIHavePage failed, apiStr:%s, jdParams:%s, data:%s, error:%v", apiStr, utils.Format4Output(jdParams, true), utils.Format4Output(jsonResult, true), err2)
return nil, totalCount, err2
return nil, totalCount, a.rebuildError(err2, jdParams)
}
inResult, totalCount2, err := pageResultParser(data, totalCount)
if err != nil {
return nil, totalCount, err
return nil, totalCount, a.rebuildError(err, jdParams)
}
totalCount = totalCount2