Commit a8d51643 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)
_vindow->setIsBusy(false);
// 支付时, 会员认证的返回,如果不可付款
int canPay = FMVipForward::instance()->sessionDataInt("canPay");
int canPay = SESSIONDATA_INT("canPay");
if(isLogin) {
// 失败则弹出错误信息
......@@ -209,9 +209,9 @@ void FMVipDispatcher::onServerResponsed(const QJsonObject &rspObj)
}
// 成功,且是最后一步,则弹出认证信息
else if(isLastOne) {
QString account = FMVipForward::instance()->sessionData("fm_open_id");
QString name = FMVipForward::instance()->sessionData("name");
QString birthday = FMVipForward::instance()->sessionData("birthday");
QString account = SESSIONDATA_STRING("fm_open_id");
QString name = SESSIONDATA_STRING("name");
QString birthday = SESSIONDATA_STRING("birthday");
FMMsgWnd::LoginSuccess(account, name, birthday);
}
// 成功,是支付认证,但不能支付
......@@ -278,10 +278,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;
......@@ -295,7 +295,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;
......@@ -323,6 +323,6 @@ void FMVipDispatcher::orderRevoke()
BOOL FMVipDispatcher::isLogined()
{
QString account = FMVipForward::instance()->sessionData("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"] = sessionData("code");
fmjob["code"] = SESSIONDATA_STRING("code");
}
void FMVipForward::fund(const QJsonObject &job, QJsonObject &fmjob)
{
fmjob["reqType"] = FM_VIP_FUND;
QJsonObject transObj;
transObj["account"] = sessionData("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;
_sessionForward = job["forward"].toObject();
SESSIONDATA_ADD("forward", job["forward"].toObject());
QJsonObject transObj;
transObj["account"] = sessionData("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);
}
......@@ -281,12 +281,14 @@ void FMVipForward::logined(const QJsonObject &serverJob, QJsonObject &posJob)
posJob["prompt"] = 0;
posJob["birthday"] = memberObj["birthday"];
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();
......@@ -294,8 +296,11 @@ 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;
......@@ -303,9 +308,9 @@ void FMVipForward::logined(const QJsonObject &serverJob, QJsonObject &posJob)
mobile = (mobile.isEmpty()) ? "未知" : mobile;
QString birthday = memberObj["birthday"].toString();
birthday = (birthday.isEmpty()) ? "未知" : birthday;
addSessionData("name", name);
addSessionData("mobile", mobile);
addSessionData("birthday", birthday);
SESSIONDATA_ADD("name", name);
SESSIONDATA_ADD("mobile", mobile);
SESSIONDATA_ADD("birthday", birthday);
}
void FMVipForward::funded(const QJsonObject &serverJob, QJsonObject &posJob)
......@@ -329,11 +334,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;
......@@ -363,7 +368,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;
}
......@@ -388,15 +393,6 @@ void FMVipForward::orderRevoked(const QJsonObject &serverJob, QJsonObject &posJo
}
QString FMVipForward::sign(const QJsonObject &reqJob) const
{
// 解析JSON插入MAP中按字典排序
......@@ -430,44 +426,48 @@ 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();
_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)) {
value = _sessionDataMap[key];
}
return value;
}
int FMVipForward::sessionDataInt(const QString key) const
void FMVipForward::addSessionData(const QString key, const QVariant value)
{
QString 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;
}
......@@ -35,6 +35,15 @@ struct Coupon
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
{
......@@ -47,12 +56,12 @@ public:
void parseRequest(const QJsonObject &jsonObj);
void resetSessionData(const QJsonObject &jsonObj);
void addSessionData(const QString key, const QString value);
QString sessionData(const QString key) const;
int sessionDataInt(const QString key) const;
QVariant sessionData(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();}
......@@ -93,10 +102,8 @@ private:
QString _urlStr;
int _reqType;
QMap<QString, QString> _sessionDataMap;
QMap<QString, QVariant> _sessionDataMap;
QStringList _sessionDataList;
QJsonObject _sessionForward;
QMap<QString, Coupon> _sessionCouponMap;
signals:
void serverResponsed(const QJsonObject& rspData);
private slots:
......
......@@ -8,13 +8,13 @@ FMVipFund::FMVipFund(QDialog *parent) :
ui(new Ui::FMVipFund)
{
ui->setupUi(this);
QString operator_id = FMVipForward::instance()->sessionData("operator_id");
QString business_date = FMVipForward::instance()->sessionData("business_date");
QString fm_id = FMVipForward::instance()->sessionData("fm_open_id");
QString amount_str = FMVipForward::instance()->sessionData("amount");
QString charge_amount_str = FMVipForward::instance()->sessionData("charge_amount");
QString name = FMVipForward::instance()->sessionData("name");
QString birthday = FMVipForward::instance()->sessionData("birthday");
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");
QString birthday = SESSIONDATA_STRING("birthday");
double amount = amount_str.toDouble() / 100.0;
double charge_amount = charge_amount_str.toDouble() / 100.0;
......@@ -49,7 +49,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 = FMVipForward::instance()->sessionData("operator_id");
QString business_date = FMVipForward::instance()->sessionData("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);
......
......@@ -10,19 +10,18 @@ FMVipOrder::FMVipOrder(QDialog *parent) :
ui(new Ui::FMVipOrder)
{
ui->setupUi(this);
QString operator_id = FMVipForward::instance()->sessionData("operator_id");
QString business_date = FMVipForward::instance()->sessionData("business_date");
QString fm_id = FMVipForward::instance()->sessionData("fm_open_id");
QString amount_str = FMVipForward::instance()->sessionData("amount");
QString score_str = FMVipForward::instance()->sessionData("score");
QString needPay_str = FMVipForward::instance()->sessionData("needPay");
QString name = FMVipForward::instance()->sessionData("name");
QString birthday = FMVipForward::instance()->sessionData("birthday");
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");
QString birthday = SESSIONDATA_STRING("birthday");
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);
......@@ -58,10 +57,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);
......@@ -73,7 +71,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