Commit e67b5d46 by NitefllWind

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

parent 43e0f1af
......@@ -196,7 +196,7 @@ void FMVipDispatcher::onServerResponsed(const QJsonObject &rspObj)
if(_vindow != 0) {
_vindow->setIsBusy(false);
// 支付时, 会员认证的返回,如果不可付款
int canPan = FMVipForward::instance()->sessionDataInt("canPay");
int canPan = SESSIONDATA_INT("canPay");
// 如果是支付认证则不关闭窗口
if(isPayLogin)
......@@ -267,10 +267,10 @@ void FMVipDispatcher::pay()
int paid_amount = transactions["paid_amount"].toInt();
int standard_amount = transactions["standard_amount"].toInt();
int needPay = order_amount - paid_amount;
FMVipForward::instance()->addSessionData("paid_amount", QString::number(paid_amount));
FMVipForward::instance()->addSessionData("order_amount",QString::number(order_amount));
FMVipForward::instance()->addSessionData("needPay", QString::number(needPay));
FMVipForward::instance()->addSessionData("standard_amount", QString::number(standard_amount));
SESSIONDATA_ADD("paid_amount", QString::number(paid_amount));
SESSIONDATA_ADD("order_amount",QString::number(order_amount));
SESSIONDATA_ADD("needPay", QString::number(needPay));
SESSIONDATA_ADD("standard_amount", QString::number(standard_amount));
if (!_vindow) {
FMVipOrder *order = new FMVipOrder;
......@@ -284,7 +284,7 @@ void FMVipDispatcher::pay()
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) {
FMVipFund *fund = new FMVipFund;
......@@ -312,6 +312,6 @@ void FMVipDispatcher::orderRevoke()
BOOL FMVipDispatcher::isLogined()
{
QString account = SESSION_STRING("fm_open_id");
QString account = SESSIONDATA_STRING("fm_open_id");
return account != "";
}
......@@ -164,14 +164,14 @@ void FMVipForward::login(const QJsonObject &job, QJsonObject &fmjob)
{
Q_UNUSED(job);
fmjob["reqType"] = FM_VIP_LOGIN;
fmjob["code"] = SESSION_STRING("code");
fmjob["code"] = SESSIONDATA_STRING("code");
}
void FMVipForward::fund(const QJsonObject &job, QJsonObject &fmjob)
{
fmjob["reqType"] = FM_VIP_FUND;
QJsonObject transObj;
transObj["account"] = SESSION_STRING("fm_open_id");
transObj["account"] = SESSIONDATA_STRING("fm_open_id");
transObj["amount"] = job["charge_amount"];
transObj["cashAmount"] = job["charge_amount"];
transObj["thirdAmount"] = 0;
......@@ -190,15 +190,15 @@ void FMVipForward::pay(const QJsonObject &job, QJsonObject &fmjob)
Q_UNUSED(job);
fmjob["reqType"] = FM_VIP_PAY;
addSessionData("forward", job["forward"].toObject());
SESSIONDATA_ADD("forward", job["forward"].toObject());
QJsonObject transObj;
transObj["account"] = SESSION_STRING("fm_open_id");
transObj["codeAmount"] = sessionDataInt("codeAmount");
transObj["isUseScore"] = sessionDataInt("isUseScore");
transObj["account"] = SESSIONDATA_STRING("fm_open_id");
transObj["codeAmount"] = SESSIONDATA_INT("codeAmount");
transObj["isUseScore"] = SESSIONDATA_INT("isUseScore");
QJsonArray couponsArr;
for(auto code : _sessionCouponMap.keys())
for(auto code : SESSIONDATA_MAP("payCouponMap").keys())
{
couponsArr.append(code);
}
......@@ -280,12 +280,14 @@ void FMVipForward::logined(const QJsonObject &serverJob, QJsonObject &posJob)
posJob["fm_open_id"] = memberObj["account"];
posJob["prompt"] = 0;
addSessionData("fm_open_id", memberObj["account"].toString());
addSessionData("amount", getString(memberObj["amount"].toInt()));
addSessionData("score", getString(memberObj["score"].toInt()));
addSessionData("canPay", getString(memberObj["canPay"].toInt()));
SESSIONDATA_ADD("fm_open_id", memberObj["account"].toString());
SESSIONDATA_ADD("amount", getString(memberObj["amount"].toInt()));
SESSIONDATA_ADD("score", getString(memberObj["score"].toInt()));
SESSIONDATA_ADD("canPay", getString(memberObj["canPay"].toInt()));
QJsonArray couponArr = memberObj["couponList"].toArray();
QMap<QString, QVariant> couponMap;
foreach(QJsonValue value , couponArr)
{
QJsonObject co = value.toObject();
......@@ -293,15 +295,18 @@ void FMVipForward::logined(const QJsonObject &serverJob, QJsonObject &posJob)
double amount = co["disAmount"].toInt()/100.0;
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();
name = (name.isEmpty()) ? "未知" : name;
QString mobile = memberObj["mobile"].toString();
mobile = (mobile.isEmpty()) ? "未知" : mobile;
addSessionData("name", name);
addSessionData("mobile", mobile);
SESSIONDATA_ADD("name", name);
SESSIONDATA_ADD("mobile", mobile);
}
void FMVipForward::funded(const QJsonObject &serverJob, QJsonObject &posJob)
......@@ -325,11 +330,11 @@ void FMVipForward::payed(const QJsonObject &serverJob, QJsonObject &posJob)
posJob["prompt"] = 0;
int codeAmount = serverJob["codeAmount"].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_id"] = serverJob["memberTransId"];
posJob["total_amount"] = sessionDataInt("order_amount");
posJob["total_amount"] = SESSIONDATA_INT("order_amount");
posJob["paid_total_amount"] = paid_total_amount;
posJob["invoice_amount"] = paid_total_amount;
posJob["incentives_amount"] = 0;
......@@ -359,7 +364,7 @@ void FMVipForward::payed(const QJsonObject &serverJob, QJsonObject &posJob)
}
posJob["pay_ids"] = pay_ids;
QJsonObject forward = _sessionForward;
QJsonObject forward = SESSIONDATA_JSONOBJECT("forward");
posJob["forward"] = forward;
}
......@@ -384,15 +389,6 @@ void FMVipForward::orderRevoked(const QJsonObject &serverJob, QJsonObject &posJo
}
QString FMVipForward::sign(const QJsonObject &reqJob) const
{
// 解析JSON插入MAP中按字典排序
......@@ -426,22 +422,15 @@ void FMVipForward::resetSessionData(const QJsonObject &jsonObj)
{
foreach (QString sessionData, _sessionDataList)
{
addSessionData(sessionData, jsonObj[sessionData].toString());
SESSIONDATA_ADD(sessionData, jsonObj[sessionData].toString());
}
_sessionCouponMap.clear();
}
void FMVipForward::clearSessionData()
{
_sessionCouponMap.clear();
_sessionDataMap.clear();
}
void FMVipForward::addSessionData(const QString key, const QVariant value)
{
_sessionDataMap.insert(key, value);
}
QVariant FMVipForward::sessionData(const QString key) const
{
QVariant value;
......@@ -451,18 +440,30 @@ QVariant FMVipForward::sessionData(const QString key) const
return value;
}
int FMVipForward::sessionDataInt(const QString key) const
void FMVipForward::addSessionData(const QString key, const QVariant value)
{
QVariant value = sessionData(key);
return value.toInt();
_sessionDataMap.insert(key, value);
}
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 @@
#define FM_VIP_COUPON 1006
#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
{
QString code;
double disAmount;
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
{
......@@ -52,12 +56,12 @@ public:
void parseRequest(const QJsonObject &jsonObj);
void resetSessionData(const QJsonObject &jsonObj);
void addSessionData(const QString key, const QVariant value);
QVariant sessionData(const QString key) const;
int sessionDataInt(const QString key) const;
void clearSessionData();
QMap<QString, Coupon> sessionCouponMap() const;
void setSessionCouponMap(QMap<QString, Coupon>);
void addSessionData(const QString key, const QVariant value);
// 优惠券
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);}
int getInt(QString num_str) {return num_str.toInt();}
......@@ -100,8 +104,6 @@ private:
QMap<QString, QVariant> _sessionDataMap;
QStringList _sessionDataList;
QJsonObject _sessionForward;
QMap<QString, Coupon> _sessionCouponMap;
signals:
void serverResponsed(const QJsonObject& rspData);
private slots:
......
......@@ -8,12 +8,12 @@ FMVipFund::FMVipFund(QDialog *parent) :
ui(new Ui::FMVipFund)
{
ui->setupUi(this);
QString operator_id = SESSION_STRING("operator_id");
QString business_date = SESSION_STRING("business_date");
QString fm_id = SESSION_STRING("fm_open_id");
QString amount_str = SESSION_STRING("amount");
QString charge_amount_str = SESSION_STRING("charge_amount");
QString name = SESSION_STRING("name");
QString operator_id = SESSIONDATA_STRING("operator_id");
QString business_date = SESSIONDATA_STRING("business_date");
QString fm_id = SESSIONDATA_STRING("fm_open_id");
QString amount_str = SESSIONDATA_STRING("amount");
QString charge_amount_str = SESSIONDATA_STRING("charge_amount");
QString name = SESSIONDATA_STRING("name");
double amount = amount_str.toDouble() / 100.0;
double charge_amount = charge_amount_str.toDouble() / 100.0;
......@@ -47,7 +47,7 @@ void FMVipFund::on_fund_btn_clicked()
{
qDebug() << __FUNCTION__;
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);
......
......@@ -15,8 +15,8 @@ FMVipLogin::FMVipLogin(bool isMustPayCode, QDialog *parent) :
{
ui->setupUi(this);
QString operator_id = SESSION_STRING("operator_id");
QString business_date = SESSION_STRING("business_date");
QString operator_id = SESSIONDATA_STRING("operator_id");
QString business_date = SESSIONDATA_STRING("business_date");
ui->login_edit->setFocus();
......@@ -42,7 +42,7 @@ void FMVipLogin::on_login_btn_clicked()
qDebug() << __FUNCTION__;
QString id = ui->login_edit->text();
FMVipForward::instance()->addSessionData("code", id);
SESSIONDATA_ADD("code", id);
ui->login_btn->setEnabled(false);
ui->login_edit->setEnabled(false);
......
......@@ -11,17 +11,17 @@ FMVipOrder::FMVipOrder(QDialog *parent) :
{
ui->setupUi(this);
QString operator_id = SESSION_STRING("operator_id");
QString business_date = SESSION_STRING("business_date");
QString fm_id = SESSION_STRING("fm_open_id");
QString amount_str = SESSION_STRING("amount");
QString score_str = SESSION_STRING("score");
QString needPay_str = SESSION_STRING("needPay");
QString name = SESSION_STRING("name");
double standard_amount = FMVipForward::instance()->sessionDataInt("standard_amount") / 100.0;
QString operator_id = SESSIONDATA_STRING("operator_id");
QString business_date = SESSIONDATA_STRING("business_date");
QString fm_id = SESSIONDATA_STRING("fm_open_id");
QString amount_str = SESSIONDATA_STRING("amount");
QString score_str = SESSIONDATA_STRING("score");
QString needPay_str = SESSIONDATA_STRING("needPay");
QString name = SESSIONDATA_STRING("name");
double standard_amount = SESSIONDATA_INT("standard_amount") / 100.0;
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->bd_label->setText(business_date);
......@@ -56,10 +56,9 @@ FMVipOrder::~FMVipOrder()
void FMVipOrder::on_pay_btn_clicked()
{
FMVipForward::instance()->setSessionCouponMap(orderInfo->selectCouponMap);
SESSIONDATA_ADD("payCouponMap", orderInfo->selectCouponMap);
QString codeAmountStr = orderInfo->getPayAmountStr(ui->pay_edit->text());
FMVipForward::instance()->addSessionData("codeAmount", codeAmountStr);
SESSIONDATA_ADD("codeAmount", codeAmountStr);
ui->pay_btn->setEnabled(false);
ui->pay_chk->setEnabled(false);
......@@ -71,7 +70,7 @@ void FMVipOrder::on_pay_btn_clicked()
void FMVipOrder::on_pay_chk_clicked(bool checked)
{
int is = checked ? 1 : 0;
FMVipForward::instance()->addSessionData("isUseScore", QString::number(is));
SESSIONDATA_ADD("isUseScore", QString::number(is));
}
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