Commit fea1896a by NitefullWind

1. 所有接口弹窗显示错误信息。 2. 网络错误时如果服务端返回了Json信息则显示服务端的信息。

parent 3193ea90
......@@ -11,7 +11,7 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += c++11
DEFINES += TEST
#DEFINES += TEST
SOURCES += \
fmp_vip.cpp \
......
......@@ -23,7 +23,8 @@ FMTask::FMTask(QJsonObject &jsonObj, FM_TYPE fmType, Session *session, QObject *
_FM_Type(fmType),
preTask(nullptr),
_error(FM_API_SUCCESS),
_errorMsg("")
_errorMsg(""),
_isShowErrorMsgWnd(true)
{
if(session == 0) {
_session = new Session();
......@@ -50,6 +51,10 @@ QByteArray FMTask::doTask()
RunFunction(showWindow);
RunFunction(packagePOSRsp);
if(_isShowErrorMsgWnd && getServerJsonValue(PosProps.StatusCode).toInt((int)FM_API_SUCCESS) != FM_API_SUCCESS) {
FMMsgWnd::FailureWnd(getServerJsonValue(PosProps.Msg).toString(), _window);
}
QJsonDocument json(posRspJsonObj);
return json.toJson(QJsonDocument::Compact);
}
......@@ -125,13 +130,13 @@ bool FMTask::sendToServer(bool isShowMsg)
FMP_INFO() << "Server rsponse: " << rspData;
// 网络错误
if(net.error != FM_API_SUCCESS) {
QJsonParseError jsonErr;
QJsonDocument rspJson = QJsonDocument::fromJson(rspData, &jsonErr);
// 网络错误,且服务端返回数据不为Json
if(net.error != FM_API_SUCCESS && jsonErr.error!=QJsonParseError::NoError) {
setError(net.error, net.errorMsg);
} else {
QJsonParseError jsonErr;
QJsonDocument rspJson = QJsonDocument::fromJson(rspData, &jsonErr);
// Json错误
if(jsonErr.error != QJsonParseError::NoError) {
setError(FM_API_BADJSON);
......@@ -150,7 +155,7 @@ bool FMTask::sendToServer(bool isShowMsg)
}
bool isOk = (error() == FM_API_SUCCESS);
if(!isOk && isShowMsg)
if(!isOk && isShowMsg && _isShowErrorMsgWnd)
{
FMMsgWnd::FailureWnd(errorString(), _window);
}
......@@ -223,3 +228,13 @@ QString FMTask::sign() const
QByteArray md5Bt = QCryptographicHash::hash(bt, QCryptographicHash::Md5);
return md5Bt.toHex();
}
bool FMTask::getIsShowErrorMsgWnd() const
{
return _isShowErrorMsgWnd;
}
void FMTask::setIsShowErrorMsgWnd(bool isShowErrorMsgWnd)
{
_isShowErrorMsgWnd = isShowErrorMsgWnd;
}
......@@ -27,6 +27,8 @@ public:
QJsonValue getServerJsonValue(const QString prop);
QJsonValue getPosJsonValue(const QString prop);
bool getIsShowErrorMsgWnd() const;
void setIsShowErrorMsgWnd(bool isShowErrorMsgWnd);
protected:
// 从配置文件中拷贝数据信息
void copyPros();
......@@ -50,6 +52,8 @@ protected:
FMTask *preTask;
bool _isShowErrorMsgWnd;
private:
QString sign() const;
......@@ -75,6 +79,7 @@ public:
return fm_error.at(_error);
}
}
private:
FMError _error;
QString _errorMsg;
......
......@@ -18,6 +18,10 @@ QByteArray FMTaskNoWnd::doTask()
}
packagePOSRsp();
if(_isShowErrorMsgWnd && getServerJsonValue(PosProps.StatusCode).toInt((int)FM_API_SUCCESS) != FM_API_SUCCESS) {
FMMsgWnd::FailureWnd(getServerJsonValue(PosProps.Msg).toString(), _window);
}
QJsonDocument json(posRspJsonObj);
return json.toJson(QJsonDocument::Compact);
}
......@@ -3,7 +3,7 @@
TaskCoupon::TaskCoupon(QJsonObject &jsonObj, Session *session, QObject *parent)
:FMTaskNoWnd(jsonObj, FM_Coupon, session, parent)
{
_isShowErrorMsgWnd = false;
}
void TaskCoupon::packageServerReq()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment