Commit 85b3e511 by NitefullWind

Merge branch 'refactor' into dev

重构sessionData的设置和读取方法。

# Conflicts:
#	FMVip/fmvipdispatcher.cpp
#	FMVip/fmvipforward.cpp
#	FMVip/fmvipfund.cpp
#	FMVip/fmviporder.cpp
parents c987ab89 e67b5d46
...@@ -198,7 +198,7 @@ void FMVipDispatcher::onServerResponsed(const QJsonObject &rspObj) ...@@ -198,7 +198,7 @@ void FMVipDispatcher::onServerResponsed(const QJsonObject &rspObj)
_vindow->setIsBusy(false); _vindow->setIsBusy(false);
// 支付时, 会员认证的返回,如果不可付款 // 支付时, 会员认证的返回,如果不可付款
int canPay = FMVipForward::instance()->sessionDataInt("canPay"); int canPay = SESSIONDATA_INT("canPay");
if(isLogin) { if(isLogin) {
// 失败则弹出错误信息 // 失败则弹出错误信息
...@@ -278,10 +278,10 @@ void FMVipDispatcher::pay() ...@@ -278,10 +278,10 @@ void FMVipDispatcher::pay()
int paid_amount = transactions["paid_amount"].toInt(); int paid_amount = transactions["paid_amount"].toInt();
int standard_amount = transactions["standard_amount"].toInt(); int standard_amount = transactions["standard_amount"].toInt();
int needPay = order_amount - paid_amount; int needPay = order_amount - paid_amount;
FMVipForward::instance()->addSessionData("paid_amount", QString::number(paid_amount)); SESSIONDATA_ADD("paid_amount", QString::number(paid_amount));
FMVipForward::instance()->addSessionData("order_amount",QString::number(order_amount)); SESSIONDATA_ADD("order_amount",QString::number(order_amount));
FMVipForward::instance()->addSessionData("needPay", QString::number(needPay)); SESSIONDATA_ADD("needPay", QString::number(needPay));
FMVipForward::instance()->addSessionData("standard_amount", QString::number(standard_amount)); SESSIONDATA_ADD("standard_amount", QString::number(standard_amount));
if (!_vindow) { if (!_vindow) {
FMVipOrder *order = new FMVipOrder; FMVipOrder *order = new FMVipOrder;
...@@ -295,7 +295,7 @@ void FMVipDispatcher::pay() ...@@ -295,7 +295,7 @@ void FMVipDispatcher::pay()
void FMVipDispatcher::fund() void FMVipDispatcher::fund()
{ {
FMVipForward::instance()->addSessionData("charge_amount", QString::number(_posReqObj["charge_amount"].toInt())); SESSIONDATA_ADD("charge_amount", QString::number(_posReqObj["charge_amount"].toInt()));
if (!_vindow) { if (!_vindow) {
FMVipFund *fund = new FMVipFund; FMVipFund *fund = new FMVipFund;
...@@ -323,6 +323,6 @@ void FMVipDispatcher::orderRevoke() ...@@ -323,6 +323,6 @@ void FMVipDispatcher::orderRevoke()
BOOL FMVipDispatcher::isLogined() BOOL FMVipDispatcher::isLogined()
{ {
QString account = FMVipForward::instance()->sessionData("fm_open_id"); QString account = SESSIONDATA_STRING("fm_open_id");
return account != ""; return account != "";
} }
...@@ -164,14 +164,14 @@ void FMVipForward::login(const QJsonObject &job, QJsonObject &fmjob) ...@@ -164,14 +164,14 @@ void FMVipForward::login(const QJsonObject &job, QJsonObject &fmjob)
{ {
Q_UNUSED(job); Q_UNUSED(job);
fmjob["reqType"] = FM_VIP_LOGIN; fmjob["reqType"] = FM_VIP_LOGIN;
fmjob["code"] = sessionData("code"); fmjob["code"] = SESSIONDATA_STRING("code");
} }
void FMVipForward::fund(const QJsonObject &job, QJsonObject &fmjob) void FMVipForward::fund(const QJsonObject &job, QJsonObject &fmjob)
{ {
fmjob["reqType"] = FM_VIP_FUND; fmjob["reqType"] = FM_VIP_FUND;
QJsonObject transObj; QJsonObject transObj;
transObj["account"] = sessionData("fm_open_id"); transObj["account"] = SESSIONDATA_STRING("fm_open_id");
transObj["amount"] = job["charge_amount"]; transObj["amount"] = job["charge_amount"];
transObj["cashAmount"] = job["charge_amount"]; transObj["cashAmount"] = job["charge_amount"];
transObj["thirdAmount"] = 0; transObj["thirdAmount"] = 0;
...@@ -190,15 +190,15 @@ void FMVipForward::pay(const QJsonObject &job, QJsonObject &fmjob) ...@@ -190,15 +190,15 @@ void FMVipForward::pay(const QJsonObject &job, QJsonObject &fmjob)
Q_UNUSED(job); Q_UNUSED(job);
fmjob["reqType"] = FM_VIP_PAY; fmjob["reqType"] = FM_VIP_PAY;
_sessionForward = job["forward"].toObject(); SESSIONDATA_ADD("forward", job["forward"].toObject());
QJsonObject transObj; QJsonObject transObj;
transObj["account"] = sessionData("fm_open_id"); transObj["account"] = SESSIONDATA_STRING("fm_open_id");
transObj["codeAmount"] = sessionDataInt("codeAmount"); transObj["codeAmount"] = SESSIONDATA_INT("codeAmount");
transObj["isUseScore"] = sessionDataInt("isUseScore"); transObj["isUseScore"] = SESSIONDATA_INT("isUseScore");
QJsonArray couponsArr; QJsonArray couponsArr;
for(auto code : _sessionCouponMap.keys()) for(auto code : SESSIONDATA_MAP("payCouponMap").keys())
{ {
couponsArr.append(code); couponsArr.append(code);
} }
...@@ -281,12 +281,14 @@ void FMVipForward::logined(const QJsonObject &serverJob, QJsonObject &posJob) ...@@ -281,12 +281,14 @@ void FMVipForward::logined(const QJsonObject &serverJob, QJsonObject &posJob)
posJob["prompt"] = 0; posJob["prompt"] = 0;
posJob["birthday"] = memberObj["birthday"]; posJob["birthday"] = memberObj["birthday"];
addSessionData("fm_open_id", memberObj["account"].toString()); SESSIONDATA_ADD("fm_open_id", memberObj["account"].toString());
addSessionData("amount", getString(memberObj["amount"].toInt())); SESSIONDATA_ADD("amount", getString(memberObj["amount"].toInt()));
addSessionData("score", getString(memberObj["score"].toInt())); SESSIONDATA_ADD("score", getString(memberObj["score"].toInt()));
addSessionData("canPay", getString(memberObj["canPay"].toInt())); SESSIONDATA_ADD("canPay", getString(memberObj["canPay"].toInt()));
QJsonArray couponArr = memberObj["couponList"].toArray(); QJsonArray couponArr = memberObj["couponList"].toArray();
QMap<QString, QVariant> couponMap;
foreach(QJsonValue value , couponArr) foreach(QJsonValue value , couponArr)
{ {
QJsonObject co = value.toObject(); QJsonObject co = value.toObject();
...@@ -294,8 +296,11 @@ void FMVipForward::logined(const QJsonObject &serverJob, QJsonObject &posJob) ...@@ -294,8 +296,11 @@ void FMVipForward::logined(const QJsonObject &serverJob, QJsonObject &posJob)
double amount = co["disAmount"].toInt()/100.0; double amount = co["disAmount"].toInt()/100.0;
QString desc = co["desc"].toString(); QString desc = co["desc"].toString();
_sessionCouponMap[co["couponCode"].toString()] = Coupon{codeStr, amount, desc}; QVariant v;
v.setValue(Coupon{codeStr, amount, desc});
couponMap[co["couponCode"].toString()] = v;
} }
SESSIONDATA_ADD("couponMap", couponMap);
QString name = memberObj["name"].toString(); QString name = memberObj["name"].toString();
name = (name.isEmpty()) ? "未知" : name; name = (name.isEmpty()) ? "未知" : name;
...@@ -303,9 +308,9 @@ void FMVipForward::logined(const QJsonObject &serverJob, QJsonObject &posJob) ...@@ -303,9 +308,9 @@ void FMVipForward::logined(const QJsonObject &serverJob, QJsonObject &posJob)
mobile = (mobile.isEmpty()) ? "未知" : mobile; mobile = (mobile.isEmpty()) ? "未知" : mobile;
QString birthday = memberObj["birthday"].toString(); QString birthday = memberObj["birthday"].toString();
birthday = (birthday.isEmpty()) ? "未知" : birthday; birthday = (birthday.isEmpty()) ? "未知" : birthday;
addSessionData("name", name); SESSIONDATA_ADD("name", name);
addSessionData("mobile", mobile); SESSIONDATA_ADD("mobile", mobile);
addSessionData("birthday", birthday); SESSIONDATA_ADD("birthday", birthday);
} }
void FMVipForward::funded(const QJsonObject &serverJob, QJsonObject &posJob) void FMVipForward::funded(const QJsonObject &serverJob, QJsonObject &posJob)
...@@ -329,11 +334,11 @@ void FMVipForward::payed(const QJsonObject &serverJob, QJsonObject &posJob) ...@@ -329,11 +334,11 @@ void FMVipForward::payed(const QJsonObject &serverJob, QJsonObject &posJob)
posJob["prompt"] = 0; posJob["prompt"] = 0;
int codeAmount = serverJob["codeAmount"].toInt(); int codeAmount = serverJob["codeAmount"].toInt();
int scoreAmount = serverJob["scoreAmount"].toInt(); int scoreAmount = serverJob["scoreAmount"].toInt();
int paid_total_amount = sessionDataInt("paid_amount") + codeAmount + scoreAmount; int paid_total_amount = SESSIONDATA_INT("paid_amount") + codeAmount + scoreAmount;
posJob["fm_open_id"] = serverJob["account"]; posJob["fm_open_id"] = serverJob["account"];
posJob["fm_id"] = serverJob["memberTransId"]; posJob["fm_id"] = serverJob["memberTransId"];
posJob["total_amount"] = sessionDataInt("order_amount"); posJob["total_amount"] = SESSIONDATA_INT("order_amount");
posJob["paid_total_amount"] = paid_total_amount; posJob["paid_total_amount"] = paid_total_amount;
posJob["invoice_amount"] = paid_total_amount; posJob["invoice_amount"] = paid_total_amount;
posJob["incentives_amount"] = 0; posJob["incentives_amount"] = 0;
...@@ -363,7 +368,7 @@ void FMVipForward::payed(const QJsonObject &serverJob, QJsonObject &posJob) ...@@ -363,7 +368,7 @@ void FMVipForward::payed(const QJsonObject &serverJob, QJsonObject &posJob)
} }
posJob["pay_ids"] = pay_ids; posJob["pay_ids"] = pay_ids;
QJsonObject forward = _sessionForward; QJsonObject forward = SESSIONDATA_JSONOBJECT("forward");
posJob["forward"] = forward; posJob["forward"] = forward;
} }
...@@ -388,15 +393,6 @@ void FMVipForward::orderRevoked(const QJsonObject &serverJob, QJsonObject &posJo ...@@ -388,15 +393,6 @@ void FMVipForward::orderRevoked(const QJsonObject &serverJob, QJsonObject &posJo
} }
QString FMVipForward::sign(const QJsonObject &reqJob) const QString FMVipForward::sign(const QJsonObject &reqJob) const
{ {
// 解析JSON插入MAP中按字典排序 // 解析JSON插入MAP中按字典排序
...@@ -430,44 +426,48 @@ void FMVipForward::resetSessionData(const QJsonObject &jsonObj) ...@@ -430,44 +426,48 @@ void FMVipForward::resetSessionData(const QJsonObject &jsonObj)
{ {
foreach (QString sessionData, _sessionDataList) foreach (QString sessionData, _sessionDataList)
{ {
addSessionData(sessionData, jsonObj[sessionData].toString()); SESSIONDATA_ADD(sessionData, jsonObj[sessionData].toString());
} }
_sessionCouponMap.clear();
} }
void FMVipForward::clearSessionData() void FMVipForward::clearSessionData()
{ {
_sessionCouponMap.clear();
_sessionDataMap.clear(); _sessionDataMap.clear();
_sessionForward = QJsonObject();
}
void FMVipForward::addSessionData(const QString key, const QString value)
{
_sessionDataMap.insert(key, value);
} }
QString FMVipForward::sessionData(const QString key) const QVariant FMVipForward::sessionData(const QString key) const
{ {
QString value = ""; QVariant value;
if (_sessionDataMap.contains(key)) { if (_sessionDataMap.contains(key)) {
value = _sessionDataMap[key]; value = _sessionDataMap[key];
} }
return value; return value;
} }
int FMVipForward::sessionDataInt(const QString key) const void FMVipForward::addSessionData(const QString key, const QVariant value)
{ {
QString value = sessionData(key); _sessionDataMap.insert(key, value);
return value.toInt();
} }
void FMVipForward::setSessionCouponMap(QMap<QString, Coupon> couponMap) void FMVipForward::addSessionData(const QString key, const QMap<QString, Coupon> couponMap)
{ {
_sessionCouponMap = couponMap; QVariantMap v_couponMap;
for(auto coupon : couponMap) {
QVariant v;
v.setValue(coupon);
v_couponMap[coupon.code] = v;
}
SESSIONDATA_ADD(key, v_couponMap);
} }
QMap<QString, Coupon> FMVipForward::sessionCouponMap() const QMap<QString, Coupon> FMVipForward::getCouponMap(const QString key)
{ {
return _sessionCouponMap; QVariantMap v_couponMap = SESSIONDATA_MAP(key);
QMap<QString, Coupon> couponMap;
for(auto v_coupon : v_couponMap) {
Coupon coupon = v_coupon.value<Coupon>();
couponMap[coupon.code] = coupon;
}
return couponMap;
} }
...@@ -35,6 +35,15 @@ struct Coupon ...@@ -35,6 +35,15 @@ struct Coupon
double disAmount; double disAmount;
QString desc; QString desc;
}; };
Q_DECLARE_METATYPE(Coupon) // 使Coupon类型可以和QVariant类型互相转换
#define SESSIONDATA(key) FMVipForward::instance()->sessionData(key)
#define SESSIONDATA_STRING(key) SESSIONDATA(key).toString()
#define SESSIONDATA_INT(key) SESSIONDATA(key).toInt()
#define SESSIONDATA_JSONOBJECT(key) SESSIONDATA(key).toJsonObject()
#define SESSIONDATA_MAP(key) SESSIONDATA(key).toMap()
#define SESSIONDATA_COUPONMAP(key) FMVipForward::instance()->getCouponMap(key)
#define SESSIONDATA_ADD(key, value) FMVipForward::instance()->addSessionData(key, value)
class FMVipForward : public QObject class FMVipForward : public QObject
{ {
...@@ -47,12 +56,12 @@ public: ...@@ -47,12 +56,12 @@ public:
void parseRequest(const QJsonObject &jsonObj); void parseRequest(const QJsonObject &jsonObj);
void resetSessionData(const QJsonObject &jsonObj); void resetSessionData(const QJsonObject &jsonObj);
void addSessionData(const QString key, const QString value); QVariant sessionData(const QString key) const;
QString sessionData(const QString key) const;
int sessionDataInt(const QString key) const;
void clearSessionData(); void clearSessionData();
QMap<QString, Coupon> sessionCouponMap() const; void addSessionData(const QString key, const QVariant value);
void setSessionCouponMap(QMap<QString, Coupon>); // 优惠券
void addSessionData(const QString key, const QMap<QString, Coupon> couponMap);
QMap<QString, Coupon> getCouponMap(const QString key);
QString getString(int num) { return QString::number(num);} QString getString(int num) { return QString::number(num);}
int getInt(QString num_str) {return num_str.toInt();} int getInt(QString num_str) {return num_str.toInt();}
...@@ -93,10 +102,8 @@ private: ...@@ -93,10 +102,8 @@ private:
QString _urlStr; QString _urlStr;
int _reqType; int _reqType;
QMap<QString, QString> _sessionDataMap; QMap<QString, QVariant> _sessionDataMap;
QStringList _sessionDataList; QStringList _sessionDataList;
QJsonObject _sessionForward;
QMap<QString, Coupon> _sessionCouponMap;
signals: signals:
void serverResponsed(const QJsonObject& rspData); void serverResponsed(const QJsonObject& rspData);
private slots: private slots:
......
...@@ -8,13 +8,13 @@ FMVipFund::FMVipFund(QDialog *parent) : ...@@ -8,13 +8,13 @@ FMVipFund::FMVipFund(QDialog *parent) :
ui(new Ui::FMVipFund) ui(new Ui::FMVipFund)
{ {
ui->setupUi(this); ui->setupUi(this);
QString operator_id = FMVipForward::instance()->sessionData("operator_id"); QString operator_id = SESSIONDATA_STRING("operator_id");
QString business_date = FMVipForward::instance()->sessionData("business_date"); QString business_date = SESSIONDATA_STRING("business_date");
QString fm_id = FMVipForward::instance()->sessionData("fm_open_id"); QString fm_id = SESSIONDATA_STRING("fm_open_id");
QString amount_str = FMVipForward::instance()->sessionData("amount"); QString amount_str = SESSIONDATA_STRING("amount");
QString charge_amount_str = FMVipForward::instance()->sessionData("charge_amount"); QString charge_amount_str = SESSIONDATA_STRING("charge_amount");
QString name = FMVipForward::instance()->sessionData("name"); QString name = SESSIONDATA_STRING("name");
QString birthday = FMVipForward::instance()->sessionData("birthday"); QString birthday = SESSIONDATA_STRING("birthday");
double amount = amount_str.toDouble() / 100.0; double amount = amount_str.toDouble() / 100.0;
double charge_amount = charge_amount_str.toDouble() / 100.0; double charge_amount = charge_amount_str.toDouble() / 100.0;
...@@ -49,7 +49,7 @@ void FMVipFund::on_fund_btn_clicked() ...@@ -49,7 +49,7 @@ void FMVipFund::on_fund_btn_clicked()
{ {
qDebug() << __FUNCTION__; qDebug() << __FUNCTION__;
double fundAmount = ui->amount_edit->text().toDouble() * 100; double fundAmount = ui->amount_edit->text().toDouble() * 100;
FMVipForward::instance()->addSessionData("fundAmount", QString::number(fundAmount)); SESSIONDATA_ADD("fundAmount", QString::number(fundAmount));
ui->fund_btn->setEnabled(false); ui->fund_btn->setEnabled(false);
......
...@@ -15,8 +15,8 @@ FMVipLogin::FMVipLogin(bool isMustPayCode, QDialog *parent) : ...@@ -15,8 +15,8 @@ FMVipLogin::FMVipLogin(bool isMustPayCode, QDialog *parent) :
{ {
ui->setupUi(this); ui->setupUi(this);
QString operator_id = FMVipForward::instance()->sessionData("operator_id"); QString operator_id = SESSIONDATA_STRING("operator_id");
QString business_date = FMVipForward::instance()->sessionData("business_date"); QString business_date = SESSIONDATA_STRING("business_date");
ui->login_edit->setFocus(); ui->login_edit->setFocus();
...@@ -42,7 +42,7 @@ void FMVipLogin::on_login_btn_clicked() ...@@ -42,7 +42,7 @@ void FMVipLogin::on_login_btn_clicked()
qDebug() << __FUNCTION__; qDebug() << __FUNCTION__;
QString id = ui->login_edit->text(); QString id = ui->login_edit->text();
FMVipForward::instance()->addSessionData("code", id); SESSIONDATA_ADD("code", id);
ui->login_btn->setEnabled(false); ui->login_btn->setEnabled(false);
ui->login_edit->setEnabled(false); ui->login_edit->setEnabled(false);
......
...@@ -10,19 +10,18 @@ FMVipOrder::FMVipOrder(QDialog *parent) : ...@@ -10,19 +10,18 @@ FMVipOrder::FMVipOrder(QDialog *parent) :
ui(new Ui::FMVipOrder) ui(new Ui::FMVipOrder)
{ {
ui->setupUi(this); ui->setupUi(this);
QString operator_id = SESSIONDATA_STRING("operator_id");
QString operator_id = FMVipForward::instance()->sessionData("operator_id"); QString business_date = SESSIONDATA_STRING("business_date");
QString business_date = FMVipForward::instance()->sessionData("business_date"); QString fm_id = SESSIONDATA_STRING("fm_open_id");
QString fm_id = FMVipForward::instance()->sessionData("fm_open_id"); QString amount_str = SESSIONDATA_STRING("amount");
QString amount_str = FMVipForward::instance()->sessionData("amount"); QString score_str = SESSIONDATA_STRING("score");
QString score_str = FMVipForward::instance()->sessionData("score"); QString needPay_str = SESSIONDATA_STRING("needPay");
QString needPay_str = FMVipForward::instance()->sessionData("needPay"); QString name = SESSIONDATA_STRING("name");
QString name = FMVipForward::instance()->sessionData("name"); QString birthday = SESSIONDATA_STRING("birthday");
QString birthday = FMVipForward::instance()->sessionData("birthday"); double standard_amount = SESSIONDATA_INT("standard_amount") / 100.0;
double standard_amount = FMVipForward::instance()->sessionDataInt("standard_amount") / 100.0;
orderInfo = new FMVipOrder::OrderInfo(amount_str, score_str, needPay_str); orderInfo = new FMVipOrder::OrderInfo(amount_str, score_str, needPay_str);
orderInfo->setCouponMap(FMVipForward::instance()->sessionCouponMap()); orderInfo->setCouponMap(SESSIONDATA_COUPONMAP("couponMap"));
ui->operator_label->setText(operator_id); ui->operator_label->setText(operator_id);
ui->bd_label->setText(business_date); ui->bd_label->setText(business_date);
...@@ -58,10 +57,9 @@ FMVipOrder::~FMVipOrder() ...@@ -58,10 +57,9 @@ FMVipOrder::~FMVipOrder()
void FMVipOrder::on_pay_btn_clicked() void FMVipOrder::on_pay_btn_clicked()
{ {
FMVipForward::instance()->setSessionCouponMap(orderInfo->selectCouponMap); SESSIONDATA_ADD("payCouponMap", orderInfo->selectCouponMap);
QString codeAmountStr = orderInfo->getPayAmountStr(ui->pay_edit->text()); QString codeAmountStr = orderInfo->getPayAmountStr(ui->pay_edit->text());
FMVipForward::instance()->addSessionData("codeAmount", codeAmountStr); SESSIONDATA_ADD("codeAmount", codeAmountStr);
ui->pay_btn->setEnabled(false); ui->pay_btn->setEnabled(false);
ui->pay_chk->setEnabled(false); ui->pay_chk->setEnabled(false);
...@@ -73,7 +71,7 @@ void FMVipOrder::on_pay_btn_clicked() ...@@ -73,7 +71,7 @@ void FMVipOrder::on_pay_btn_clicked()
void FMVipOrder::on_pay_chk_clicked(bool checked) void FMVipOrder::on_pay_chk_clicked(bool checked)
{ {
int is = checked ? 1 : 0; int is = checked ? 1 : 0;
FMVipForward::instance()->addSessionData("isUseScore", QString::number(is)); SESSIONDATA_ADD("isUseScore", QString::number(is));
} }
void FMVipOrder::onItemClicked(QListWidgetItem *item) void FMVipOrder::onItemClicked(QListWidgetItem *item)
......
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