Commit 4f17833d by NitefllWind

根据会员2.4接口修改。新增销售单退款、充值退款、支付撤销。

parent 4e87e0ef
......@@ -59,6 +59,7 @@ INT FMVipDispatcher::_ParseRequest(LPSTR data)
FMVipForward::instance()->resetSessionData(_posReqObj);
isLastOne = true;
isOnlyForward = false;
// 唤起客户端界面
emit requested(_posReqObj);
......@@ -94,12 +95,15 @@ void FMVipDispatcher::onRequest(const QJsonObject &jsonObj)
else if (type == Type_Coupon) {
coupon();
}
else if (type == Type_Order_Refund) {
else if (type == Type_Order_Refund || type == Type_Fund_Refund) {
orderRefund();
}
else if (type == Type_Order_Revoke) {
orderRevoke();
}
else if (type == Type_Final) {
final();
}
#ifdef _DEBUG
else if (type == "-1") {
qDebug() << "Quit";
......@@ -128,9 +132,6 @@ void FMVipDispatcher::onRequest(const QJsonObject &jsonObj)
else if (type == Type_Fund) {
fund();
}
else if (type == Type_Final) {
final();
}
}
FMVipForward::instance()->clearSessionData();
......@@ -173,7 +174,7 @@ void FMVipDispatcher::onServerResponsed(const QJsonObject &rspObj)
int status = rspObj["statusCode"].toInt();
if(status == 100) {
if(isLastOne) {
if(isLastOne && !isOnlyForward) {
QMessageBox msgBox;
msgBox.setWindowTitle("提示");
msgBox.setText("操作成功");
......@@ -215,17 +216,21 @@ void FMVipDispatcher::login()
void FMVipDispatcher::coupon()
{
isOnlyForward = true;
onDoPost();
}
void FMVipDispatcher::pay()
{
QJsonObject transactions = _posReqObj["transactions"].toObject();
double order_amount = transactions["order_amount"].toDouble();
double paid_amount = transactions["paid_amount"].toDouble();
double needPay = order_amount - paid_amount;
int order_amount = transactions["order_amount"].toInt();
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));
int canPay = FMVipForward::instance()->sessionDataInt("canPay");
......@@ -259,16 +264,19 @@ void FMVipDispatcher::fund()
void FMVipDispatcher::final()
{
isOnlyForward = true;
onDoPost();
}
void FMVipDispatcher::orderRefund()
{
isOnlyForward = true;
onDoPost();
}
void FMVipDispatcher::orderRevoke()
{
isOnlyForward = true;
onDoPost();
}
......
......@@ -75,6 +75,8 @@ private:
QMutex mutex;
QWaitCondition serverIsBusy;
BOOL requestSuccess;
BOOL isOnlyForward;
};
#endif // FMVIPDISPATCHER_H
......@@ -47,8 +47,10 @@ void FMVipForward::parseRequest(const QJsonObject &jsonObj)
pay(jsonObj, fm_jsonObj);
} else if(type == Type_Final) {
final(jsonObj, fm_jsonObj);
} else if(type == Type_Order_Refund || type == Type_Order_Revoke) {
revoke(jsonObj, fm_jsonObj);
} else if(type == Type_Order_Refund || type == Type_Fund_Refund) {
orderRefund(jsonObj, fm_jsonObj);
} else if(type == Type_Order_Revoke) {
orderRevoke(jsonObj, fm_jsonObj);
}
_reqType = fm_jsonObj["reqType"].toInt();
......@@ -141,6 +143,12 @@ void FMVipForward::onServerFinished(QNetworkReply *reply)
case FM_VIP_FINAL:
finaled(serverObj, posObj);
break;
case FM_VIP_REVOKE:
orderRevoked(serverObj, posObj);
break;
case FM_VIP_REFUND:
orderRefunded(serverObj, posObj);
break;
default:
break;
}
......@@ -161,14 +169,12 @@ void FMVipForward::login(const QJsonObject &job, QJsonObject &fmjob)
}
void FMVipForward::fund(const QJsonObject &job, QJsonObject &fmjob)
{
Q_UNUSED(job);
fmjob["reqType"] = FM_VIP_FUND;
QJsonObject transObj;
transObj["account"] = sessionData("fm_open_id");
transObj["amount"] = sessionData("fundAmount");
transObj["cashAmount"] = sessionData("fundAmount");
transObj["amount"] = job["charge_amount"];
transObj["cashAmount"] = job["charge_amount"];
transObj["thirdAmount"] = 0;
transObj["thirdPayType"] = 0;
transObj["thirdPayTransId"] = "";
......@@ -198,17 +204,15 @@ void FMVipForward::pay(const QJsonObject &job, QJsonObject &fmjob)
void FMVipForward::final(const QJsonObject &job, QJsonObject &fmjob)
{
fmjob["reqType"] = FM_VIP_FINAL;
// fmjob["memberTransId"] = sessionData("fm_id");
QJsonObject transObj;
QJsonObject posTransObj = job["transactions"].toObject();
// transObj["account"] = job["fm_open_id"];
transObj["account"] = sessionData("fm_open_id");
transObj["account"] = job["fm_open_id"];
int amount = posTransObj["order_amount"].toInt();
int paidAmount = posTransObj["paid_amount"].toInt();
QJsonArray pay_ids = job["pay_ids"].toArray();
QJsonArray pay_ids = posTransObj["pay_ids"].toArray();
QJsonArray couponArray;
transObj["coupons"] = posTransObj["coupons"];
int codeAmount=0, scoreAmount=0, cashAmount=0, thirdAmount=0;
foreach (QJsonValue pay_v , pay_ids)
......@@ -219,7 +223,6 @@ void FMVipForward::final(const QJsonObject &job, QJsonObject &fmjob)
}
if(pay_ob["pay_id"] == "25") {
scoreAmount = pay_ob["paid_total_amount"].toInt();
couponArray = pay_ob["coupons"].toArray();
}
}
cashAmount = paidAmount - codeAmount - thirdAmount;
......@@ -232,8 +235,6 @@ void FMVipForward::final(const QJsonObject &job, QJsonObject &fmjob)
transObj["thirdPayType"] = 0;
transObj["thirdPayTransId"] = "";
transObj["coupons"] = couponArray;
QJsonArray posProdArray = posTransObj["products"].toArray();
QJsonArray prodArray;
foreach (QJsonValue v , posProdArray)
......@@ -249,15 +250,18 @@ void FMVipForward::final(const QJsonObject &job, QJsonObject &fmjob)
fmjob["transaction"] = transObj;
}
void FMVipForward::revoke(const QJsonObject &job, QJsonObject &fmjob)
void FMVipForward::orderRefund(const QJsonObject &job, QJsonObject &fmjob)
{
fmjob["reqType"] = FM_VIP_REFUND;
QJsonObject transaction;
transaction["memberTransId"] = job["fm_id"];
fmjob["transaction"] = transaction;
}
void FMVipForward::orderRevoke(const QJsonObject &job, QJsonObject &fmjob)
{
fmjob["reqType"] = FM_VIP_REVOKE;
if(job.contains("trans_id") && job["trans_id"].isArray()) {
fmjob["transId"] = job["trans_id"];
}
QJsonObject transObj;
transObj["memberTransId"] = job["fm_id"];
fmjob["transaction"] = transObj;
Q_UNUSED(job);
}
void FMVipForward::logined(const QJsonObject &serverJob, QJsonObject &posJob)
......@@ -275,8 +279,8 @@ void FMVipForward::funded(const QJsonObject &serverJob, QJsonObject &posJob)
{
QJsonObject cardInfo = serverJob["cardInfo"].toObject();
posJob["fm_id"] = cardInfo["memberTransId"];
posJob["fm_open_id"] = sessionData("fm_open_id");
posJob["print"] = "";
posJob["fm_open_id"] = cardInfo["account"];
posJob["print"] = serverJob["print"];
}
void FMVipForward::couponed(const QJsonObject &serverJob, QJsonObject &posJob)
......@@ -287,19 +291,13 @@ void FMVipForward::couponed(const QJsonObject &serverJob, QJsonObject &posJob)
void FMVipForward::payed(const QJsonObject &serverJob, QJsonObject &posJob)
{
QString fm_id = serverJob["memberTransId"].toString();
QString codeAmount = getString(serverJob["codeAmount"].toInt());
QString scoreAmount = getString(serverJob["scoreAmount"].toInt());
addSessionData("fm_id", fm_id);
addSessionData("codeAmount", codeAmount);
addSessionData("scoreAmount", scoreAmount);
int paid_total_amount = sessionDataInt("paid_amount") + sessionDataInt("codeAmount") + sessionDataInt("scoreAmount");
addSessionData("paid_total_amount", getString(paid_total_amount));
posJob["fm_open_id"] = sessionData("fm_open_id");
posJob["fm_id"] = fm_id;
posJob["total_amount"] = sessionDataInt("needPay");
int codeAmount = serverJob["codeAmount"].toInt();
int scoreAmount = serverJob["scoreAmount"].toInt();
int paid_total_amount = sessionDataInt("paid_amount") + codeAmount + scoreAmount;
posJob["fm_open_id"] = serverJob["account"];
posJob["fm_id"] = serverJob["memberTransId"];
posJob["total_amount"] = sessionDataInt("order_amount");
posJob["paid_total_amount"] = paid_total_amount;
posJob["invoice_amount"] = paid_total_amount;
posJob["incentives_amount"] = 0;
......@@ -329,14 +327,43 @@ void FMVipForward::payed(const QJsonObject &serverJob, QJsonObject &posJob)
void FMVipForward::finaled(const QJsonObject &serverJob, QJsonObject &posJob)
{
posJob["fm_id"] = serverJob["memberTransId"];
posJob["print"] = "";
posJob["print1"] = serverJob["print1"];
posJob["print2"] = serverJob["print2"];
}
void FMVipForward::revoked(const QJsonObject &serverJob, QJsonObject &posJob)
void FMVipForward::orderRefunded(const QJsonObject &serverJob, QJsonObject &posJob)
{
posJob["fm_id"] = serverJob["memberTransId"];
Q_UNUSED(serverJob);
Q_UNUSED(posJob);
}
void FMVipForward::orderRevoked(const QJsonObject &serverJob, QJsonObject &posJob)
{
Q_UNUSED(serverJob);
Q_UNUSED(posJob);
}
QString FMVipForward::sign(const QJsonObject &reqJob) const
{
// 解析JSON插入MAP中按字典排序
......
......@@ -12,19 +12,20 @@
#define KeyCode "98d094a7-0d07-4cf5-b23b-d18783f0d76a"
#define PartnerId "a8bee0dd-09d1-4fa9-a9eb-80cb36d3d611"
#define Type_Login "member_check_rquest"
#define Type_Coupon "coupon_check_rquest"
#define Type_Login "member_check_request"
#define Type_Coupon "coupon_check_request"
#define Type_Pay "order_request"
#define Type_Fund "member_charge_rquest"
#define Type_Final "Integral_request"
#define Type_Fund "member_charge_request"
#define Type_Final "integral_request"
#define Type_Order_Refund "order_refund_request"
#define Type_Fund_Refund "charge_refund_rquest"
#define Type_Fund_Refund "charge_refund_request"
#define Type_Order_Revoke "order_revoke_request"
#define FM_VIP_LOGIN 1001
#define FM_VIP_FUND 1002
#define FM_VIP_PAY 1003
#define FM_VIP_REVOKE 1004
#define FM_VIP_REFUND 1004
#define FM_VIP_REVOKE 1005
#define FM_VIP_COUPON 1006
#define FM_VIP_FINAL 1007
......@@ -56,14 +57,20 @@ private:
void coupon(const QJsonObject &job, QJsonObject &fmjob);
void pay(const QJsonObject &job, QJsonObject &fmjob);
void final(const QJsonObject &job, QJsonObject &fmjob);
void revoke(const QJsonObject &job, QJsonObject &fmjob);
// 销售单/充值单 退款
void orderRefund(const QJsonObject &job, QJsonObject &fmjob);
// 支付撤销
void orderRevoke(const QJsonObject &job, QJsonObject &fmjob);
void logined(const QJsonObject &serverJob, QJsonObject &posJob);
void funded(const QJsonObject &serverJob, QJsonObject &posJob);
void couponed(const QJsonObject &serverJob, QJsonObject &posJob);
void payed(const QJsonObject &serverJob, QJsonObject &posJob);
void finaled(const QJsonObject &serverJob, QJsonObject &posJob);
void revoked(const QJsonObject &serverJob, QJsonObject &posJob);
// 销售单/充值单 退款
void orderRefunded(const QJsonObject &serverJob, QJsonObject &posJob);
// 支付撤销
void orderRevoked(const QJsonObject &serverJob, QJsonObject &posJob);
void request(const QJsonObject &reqJob);
......
......@@ -16,6 +16,7 @@ FMVipOrder::FMVipOrder(QDialog *parent) :
QString amount_str = FMVipForward::instance()->sessionData("amount");
QString score_str = FMVipForward::instance()->sessionData("score");
QString needPay_str = FMVipForward::instance()->sessionData("needPay");
double standard_amount = FMVipForward::instance()->sessionDataInt("standard_amount") / 100.0;
orderInfo = new FMVipOrder::OrderInfo(amount_str, score_str, needPay_str);
......@@ -25,6 +26,7 @@ FMVipOrder::FMVipOrder(QDialog *parent) :
ui->point_label->setText(score_str);
ui->balance_label->setText(orderInfo->getAmountStr());
ui->price_label->setText(orderInfo->getNeedPayStr());
ui->standard_label->setText(QString("满%1元可享受优惠").arg(standard_amount));
ui->pay_edit->setText(orderInfo->getPayAmountStr());
}
......
......@@ -429,7 +429,7 @@
<widget class="QWidget" name="pay_widget" native="true">
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="spacing">
<number>40</number>
<number>10</number>
</property>
<property name="leftMargin">
<number>65</number>
......@@ -454,6 +454,22 @@
</widget>
</item>
<item>
<widget class="QLabel" name="standard_label">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>30</height>
</size>
</property>
<property name="text">
<string>满 0 元可享受优惠</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="pay_chk">
<property name="cursor">
<cursorShape>PointingHandCursor</cursorShape>
......
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