Commit e67b5d46 by NitefllWind

重构所有SessionData的加入和取值代码。

parent 43e0f1af
...@@ -196,7 +196,7 @@ void FMVipDispatcher::onServerResponsed(const QJsonObject &rspObj) ...@@ -196,7 +196,7 @@ void FMVipDispatcher::onServerResponsed(const QJsonObject &rspObj)
if(_vindow != 0) { if(_vindow != 0) {
_vindow->setIsBusy(false); _vindow->setIsBusy(false);
// 支付时, 会员认证的返回,如果不可付款 // 支付时, 会员认证的返回,如果不可付款
int canPan = FMVipForward::instance()->sessionDataInt("canPay"); int canPan = SESSIONDATA_INT("canPay");
// 如果是支付认证则不关闭窗口 // 如果是支付认证则不关闭窗口
if(isPayLogin) if(isPayLogin)
...@@ -267,10 +267,10 @@ void FMVipDispatcher::pay() ...@@ -267,10 +267,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;
...@@ -284,7 +284,7 @@ void FMVipDispatcher::pay() ...@@ -284,7 +284,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;
...@@ -312,6 +312,6 @@ void FMVipDispatcher::orderRevoke() ...@@ -312,6 +312,6 @@ void FMVipDispatcher::orderRevoke()
BOOL FMVipDispatcher::isLogined() BOOL FMVipDispatcher::isLogined()
{ {
QString account = SESSION_STRING("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"] = SESSION_STRING("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"] = SESSION_STRING("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;
addSessionData("forward", job["forward"].toObject()); SESSIONDATA_ADD("forward", job["forward"].toObject());
QJsonObject transObj; QJsonObject transObj;
transObj["account"] = SESSION_STRING("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);
} }
...@@ -280,12 +280,14 @@ void FMVipForward::logined(const QJsonObject &serverJob, QJsonObject &posJob) ...@@ -280,12 +280,14 @@ void FMVipForward::logined(const QJsonObject &serverJob, QJsonObject &posJob)
posJob["fm_open_id"] = memberObj["account"]; posJob["fm_open_id"] = memberObj["account"];
posJob["prompt"] = 0; posJob["prompt"] = 0;
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();
...@@ -293,15 +295,18 @@ void FMVipForward::logined(const QJsonObject &serverJob, QJsonObject &posJob) ...@@ -293,15 +295,18 @@ 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;
QString mobile = memberObj["mobile"].toString(); QString mobile = memberObj["mobile"].toString();
mobile = (mobile.isEmpty()) ? "未知" : mobile; mobile = (mobile.isEmpty()) ? "未知" : mobile;
addSessionData("name", name); SESSIONDATA_ADD("name", name);
addSessionData("mobile", mobile); SESSIONDATA_ADD("mobile", mobile);
} }
void FMVipForward::funded(const QJsonObject &serverJob, QJsonObject &posJob) void FMVipForward::funded(const QJsonObject &serverJob, QJsonObject &posJob)
...@@ -325,11 +330,11 @@ void FMVipForward::payed(const QJsonObject &serverJob, QJsonObject &posJob) ...@@ -325,11 +330,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;
...@@ -359,7 +364,7 @@ void FMVipForward::payed(const QJsonObject &serverJob, QJsonObject &posJob) ...@@ -359,7 +364,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;
} }
...@@ -384,15 +389,6 @@ void FMVipForward::orderRevoked(const QJsonObject &serverJob, QJsonObject &posJo ...@@ -384,15 +389,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中按字典排序
...@@ -426,22 +422,15 @@ void FMVipForward::resetSessionData(const QJsonObject &jsonObj) ...@@ -426,22 +422,15 @@ 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();
} }
void FMVipForward::addSessionData(const QString key, const QVariant value)
{
_sessionDataMap.insert(key, value);
}
QVariant FMVipForward::sessionData(const QString key) const QVariant FMVipForward::sessionData(const QString key) const
{ {
QVariant value; QVariant value;
...@@ -451,18 +440,30 @@ QVariant FMVipForward::sessionData(const QString key) const ...@@ -451,18 +440,30 @@ QVariant FMVipForward::sessionData(const QString key) const
return value; return value;
} }
int FMVipForward::sessionDataInt(const QString key) const void FMVipForward::addSessionData(const QString key, const QVariant value)
{ {
QVariant 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;
} }
...@@ -29,17 +29,21 @@ ...@@ -29,17 +29,21 @@
#define FM_VIP_COUPON 1006 #define FM_VIP_COUPON 1006
#define FM_VIP_FINAL 1007 #define FM_VIP_FINAL 1007
#define SESSION_DATA(key) FMVipForward::instance()->sessionData(key)
#define SESSION_STRING(key) SESSION_DATA(key).toString()
#define SESSION_INT(key) SESSION_DATA(key).toInt();
#define SESSION_JSONOBJECT(key) SESSION_DATA(key).toJsonObject()
struct Coupon struct Coupon
{ {
QString code; QString code;
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
{ {
...@@ -52,12 +56,12 @@ public: ...@@ -52,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 QVariant value);
QVariant sessionData(const QString key) const; QVariant 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();}
...@@ -100,8 +104,6 @@ private: ...@@ -100,8 +104,6 @@ private:
QMap<QString, QVariant> _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,12 +8,12 @@ FMVipFund::FMVipFund(QDialog *parent) : ...@@ -8,12 +8,12 @@ FMVipFund::FMVipFund(QDialog *parent) :
ui(new Ui::FMVipFund) ui(new Ui::FMVipFund)
{ {
ui->setupUi(this); ui->setupUi(this);
QString operator_id = SESSION_STRING("operator_id"); QString operator_id = SESSIONDATA_STRING("operator_id");
QString business_date = SESSION_STRING("business_date"); QString business_date = SESSIONDATA_STRING("business_date");
QString fm_id = SESSION_STRING("fm_open_id"); QString fm_id = SESSIONDATA_STRING("fm_open_id");
QString amount_str = SESSION_STRING("amount"); QString amount_str = SESSIONDATA_STRING("amount");
QString charge_amount_str = SESSION_STRING("charge_amount"); QString charge_amount_str = SESSIONDATA_STRING("charge_amount");
QString name = SESSION_STRING("name"); QString name = SESSIONDATA_STRING("name");
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;
...@@ -47,7 +47,7 @@ void FMVipFund::on_fund_btn_clicked() ...@@ -47,7 +47,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 = SESSION_STRING("operator_id"); QString operator_id = SESSIONDATA_STRING("operator_id");
QString business_date = SESSION_STRING("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);
......
...@@ -11,17 +11,17 @@ FMVipOrder::FMVipOrder(QDialog *parent) : ...@@ -11,17 +11,17 @@ FMVipOrder::FMVipOrder(QDialog *parent) :
{ {
ui->setupUi(this); ui->setupUi(this);
QString operator_id = SESSION_STRING("operator_id"); QString operator_id = SESSIONDATA_STRING("operator_id");
QString business_date = SESSION_STRING("business_date"); QString business_date = SESSIONDATA_STRING("business_date");
QString fm_id = SESSION_STRING("fm_open_id"); QString fm_id = SESSIONDATA_STRING("fm_open_id");
QString amount_str = SESSION_STRING("amount"); QString amount_str = SESSIONDATA_STRING("amount");
QString score_str = SESSION_STRING("score"); QString score_str = SESSIONDATA_STRING("score");
QString needPay_str = SESSION_STRING("needPay"); QString needPay_str = SESSIONDATA_STRING("needPay");
QString name = SESSION_STRING("name"); QString name = SESSIONDATA_STRING("name");
double standard_amount = FMVipForward::instance()->sessionDataInt("standard_amount") / 100.0; double standard_amount = SESSIONDATA_INT("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);
...@@ -56,10 +56,9 @@ FMVipOrder::~FMVipOrder() ...@@ -56,10 +56,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);
...@@ -71,7 +70,7 @@ void FMVipOrder::on_pay_btn_clicked() ...@@ -71,7 +70,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