Commit 4f17833d by NitefllWind

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

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