Commit 907d8b1a by NitefullWind

1. 优化登陆后代金券券选择功能。

parent 932c2c54
...@@ -49,8 +49,8 @@ FORMS += forms/fmviporder.ui \ ...@@ -49,8 +49,8 @@ FORMS += forms/fmviporder.ui \
forms/fmvipfund.ui \ forms/fmvipfund.ui \
forms/fmmsgwnd.ui \ forms/fmmsgwnd.ui \
forms/fmloading.ui \ forms/fmloading.ui \
forms/fmcouponwidget.ui \ forms/fmvipcouponlist.ui \
forms/fmvipcouponlist.ui forms/fmcouponwidget.ui
RESOURCES += \ RESOURCES += \
res/FMVip.qrc res/FMVip.qrc
......
#include "fmcouponwidget.h" #include "fmcouponwidget.h"
#include "ui_fmcouponwidget.h" #include "ui_fmcouponwidget.h"
#include <QPainter> #include <QPainter>
FMCouponWidget::FMCouponWidget(Coupon conpon, QWidget *parent) : FMCouponWidget::FMCouponWidget(Coupon coupon, QWidget *parent) :
QWidget(parent), QWidget(parent),
ui(new Ui::FMCouponWidget) ui(new Ui::FMCouponWidget)
{ {
ui->setupUi(this); ui->setupUi(this);
ui->code_lab->setText(conpon.code); ui->desc_lab->setText(coupon.desc);
ui->amount_lab->setText(QString::number(conpon.disAmount, 'f', 2)); ui->code_lab->setText(coupon.limitTime);
ui->desc_lab->setText(conpon.desc);
} }
FMCouponWidget::~FMCouponWidget() FMCouponWidget::~FMCouponWidget()
......
#ifndef FMCOUPONWIDGET_H #ifndef FMCOUPONWIDGET_H
#define FMCOUPONWIDGET_H #define FMCOUPONWIDGET_H
#include <QWidget> #include <QWidget>
...@@ -13,7 +13,7 @@ class FMCouponWidget : public QWidget ...@@ -13,7 +13,7 @@ class FMCouponWidget : public QWidget
Q_OBJECT Q_OBJECT
public: public:
explicit FMCouponWidget(Coupon conpon, QWidget *parent = 0); explicit FMCouponWidget(Coupon coupon, QWidget *parent = 0);
~FMCouponWidget(); ~FMCouponWidget();
void paintEvent(QPaintEvent *event); void paintEvent(QPaintEvent *event);
......
...@@ -17,7 +17,7 @@ FMVipCouponList::FMVipCouponList(QDialog *parent) : ...@@ -17,7 +17,7 @@ FMVipCouponList::FMVipCouponList(QDialog *parent) :
QString name = SESSIONDATA_STRING("name"); QString name = SESSIONDATA_STRING("name");
QString birthday = SESSIONDATA_STRING("birthday"); QString birthday = SESSIONDATA_STRING("birthday");
_couponMap = SESSIONDATA_COUPONMAP("couponMap"); _couponMap = SESSIONDATA_COUPONMAP("couponMapSPQ");
ui->operator_label->setText(operator_id); ui->operator_label->setText(operator_id);
ui->bd_label->setText(business_date); ui->bd_label->setText(business_date);
...@@ -49,6 +49,7 @@ void FMVipCouponList::onItemClicked(QListWidgetItem *item) ...@@ -49,6 +49,7 @@ void FMVipCouponList::onItemClicked(QListWidgetItem *item)
void FMVipCouponList::initCouponItems() void FMVipCouponList::initCouponItems()
{ {
QStringList posCouponCodes = SESSIONDATA("PosReqCouponCodes").toStringList();
for(Coupon coupon : _couponMap) for(Coupon coupon : _couponMap)
{ {
auto item = new QListWidgetItem(); auto item = new QListWidgetItem();
...@@ -59,6 +60,10 @@ void FMVipCouponList::initCouponItems() ...@@ -59,6 +60,10 @@ void FMVipCouponList::initCouponItems()
ui->coupon_page->setItemWidget(item, itemWidget); ui->coupon_page->setItemWidget(item, itemWidget);
//item大小 //item大小
item->setSizeHint (itemWidget->size()); item->setSizeHint (itemWidget->size());
if(posCouponCodes.contains(coupon.code)) {
onItemClicked(item);
}
} }
} }
......
...@@ -7,11 +7,13 @@ ...@@ -7,11 +7,13 @@
#include <QDebug> #include <QDebug>
#include <QJsonDocument> #include <QJsonDocument>
#include <QJsonObject> #include <QJsonObject>
#include <QJsonArray>
#include <QApplication> #include <QApplication>
#include <QMessageBox> #include <QMessageBox>
#include <QMenu> #include <QMenu>
#include <QTimer> #include <QTimer>
#include <winsock2.h> #include <winsock2.h>
#include "fmvipcouponlist.h"
FMVipDispatcher::FMVipDispatcher(QObject *parent) FMVipDispatcher::FMVipDispatcher(QObject *parent)
: QObject(parent), : QObject(parent),
...@@ -201,8 +203,9 @@ void FMVipDispatcher::onFinished() ...@@ -201,8 +203,9 @@ void FMVipDispatcher::onFinished()
void FMVipDispatcher::onServerResponsed(const QJsonObject &rspObj) void FMVipDispatcher::onServerResponsed(const QJsonObject &rspObj)
{ {
int status = rspObj["statusCode"].toInt(); QJsonObject posRspObj = rspObj;
int prompt = rspObj["prompt"].toInt(); int status = posRspObj["statusCode"].toInt();
int prompt = posRspObj["prompt"].toInt();
if(_vindow != 0) { if(_vindow != 0) {
_vindow->setIsBusy(false); _vindow->setIsBusy(false);
...@@ -214,17 +217,34 @@ void FMVipDispatcher::onServerResponsed(const QJsonObject &rspObj) ...@@ -214,17 +217,34 @@ void FMVipDispatcher::onServerResponsed(const QJsonObject &rspObj)
// 失败则弹出错误信息 // 失败则弹出错误信息
if(status != 100) { if(status != 100) {
_vindow->resetWnd(); _vindow->resetWnd();
FMMsgWnd::FailureWnd(rspObj["msg"].toString()); FMMsgWnd::FailureWnd(posRspObj["msg"].toString());
return; return;
} }
// 成功,且是最后一步,则弹出认证信息 // 成功,且是最后一步,则弹出认证信息
// else if(isLastOne) { else if(isLastOne) {
// QString account = SESSIONDATA_STRING("fm_open_id"); if(canPay==1) {
// QString name = SESSIONDATA_STRING("name"); // 展示商品券界面
// QString birthday = SESSIONDATA_STRING("birthday"); FMVipCouponList couponListWnd;
// FMMsgWnd::LoginSuccess(account, name, birthday); couponListWnd.exec();
// }
// 返回选中的商品券
QJsonArray coupons;
QMap<QString, Coupon> selectCouponMap = SESSIONDATA_COUPONMAP("usedCoupons");
foreach (Coupon coupon, selectCouponMap) {
QJsonObject couponObj;
couponObj["code"] = coupon.code;
couponObj["pid"] = coupon.pid;
coupons.append(couponObj);
}
posRspObj["coupons"] = coupons;
} else {
QString account = SESSIONDATA_STRING("fm_open_id");
QString name = SESSIONDATA_STRING("name");
QString birthday = SESSIONDATA_STRING("birthday");
FMMsgWnd::LoginSuccess(account, name, birthday);
}
}
// 成功,是支付认证,但不能支付 // 成功,是支付认证,但不能支付
else if(isPayLogin) { else if(isPayLogin) {
if(canPay != 1) { if(canPay != 1) {
...@@ -239,7 +259,7 @@ void FMVipDispatcher::onServerResponsed(const QJsonObject &rspObj) ...@@ -239,7 +259,7 @@ void FMVipDispatcher::onServerResponsed(const QJsonObject &rspObj)
_vindow->deleteLater(); _vindow->deleteLater();
} }
QJsonDocument rspDoc(rspObj); QJsonDocument rspDoc(posRspObj);
QByteArray rspData = rspDoc.toJson(); QByteArray rspData = rspDoc.toJson();
_serverRspData = rspData; _serverRspData = rspData;
...@@ -247,7 +267,7 @@ void FMVipDispatcher::onServerResponsed(const QJsonObject &rspObj) ...@@ -247,7 +267,7 @@ void FMVipDispatcher::onServerResponsed(const QJsonObject &rspObj)
requestSuccess = false; requestSuccess = false;
if(prompt == 0) if(prompt == 0)
{ {
QString msg = rspObj["msg"].toString(); QString msg = posRspObj["msg"].toString();
FMMsgWnd::FailureWnd(msg); FMMsgWnd::FailureWnd(msg);
} }
_vindow = 0; _vindow = 0;
...@@ -268,6 +288,13 @@ void FMVipDispatcher::onDoPost() ...@@ -268,6 +288,13 @@ void FMVipDispatcher::onDoPost()
void FMVipDispatcher::login() void FMVipDispatcher::login()
{ {
isLogin = true; isLogin = true;
QStringList posReqCouponCodes;
for (QJsonValue v : _posReqObj["coupons"].toArray()) {
posReqCouponCodes.append(v.toString());
}
SESSIONDATA_ADD("PosReqCouponCodes", posReqCouponCodes);
if (!_vindow) { if (!_vindow) {
FMVipLogin *login = new FMVipLogin(isPayLogin); FMVipLogin *login = new FMVipLogin(isPayLogin);
connect(login, SIGNAL(destroyed(QObject*)), SLOT(onFinished())); connect(login, SIGNAL(destroyed(QObject*)), SLOT(onFinished()));
......
...@@ -13,7 +13,6 @@ ...@@ -13,7 +13,6 @@
#include <QFuture> #include <QFuture>
#include <QSharedPointer> #include <QSharedPointer>
#include <QSemaphore> #include <QSemaphore>
#include "fmvipcouponlist.h"
#include "fmbackup.h" #include "fmbackup.h"
#include <QDebug> #include <QDebug>
...@@ -385,7 +384,7 @@ void FMVipForward::logined(const QJsonObject &serverJob, QJsonObject &posJob) ...@@ -385,7 +384,7 @@ void FMVipForward::logined(const QJsonObject &serverJob, QJsonObject &posJob)
QJsonArray couponArr = memberObj["couponList"].toArray(); QJsonArray couponArr = memberObj["couponList"].toArray();
QMap<QString, QVariant> couponMap; QMap<QString, QVariant> couponMapSPQ, couponMapDJQ;
foreach(QJsonValue value , couponArr) foreach(QJsonValue value , couponArr)
{ {
QJsonObject co = value.toObject(); QJsonObject co = value.toObject();
...@@ -393,12 +392,22 @@ void FMVipForward::logined(const QJsonObject &serverJob, QJsonObject &posJob) ...@@ -393,12 +392,22 @@ 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();
QString pid = co["productCode"].toString(); QString pid = co["productCode"].toString();
QString type = co["typeCode"].toString();
QString startTime = co["startTime"].toString().mid(0, 10);
QString endTime = co["endTime"].toString().mid(0, 10);
QString limitTime = QString("%1 ~ %2").arg(startTime).arg(endTime);
QVariant v; QVariant v;
v.setValue(Coupon{codeStr, amount, desc, pid}); v.setValue(Coupon{codeStr, amount, desc, pid, type, limitTime});
couponMap[co["couponCode"].toString()] = v;
if(type == "CTYPE001") {
couponMapDJQ[codeStr] = v;
} else {
couponMapSPQ[codeStr] = v;
}
} }
SESSIONDATA_ADD("couponMap", couponMap); SESSIONDATA_ADD("couponMapDJQ", couponMapDJQ);
SESSIONDATA_ADD("couponMapSPQ", couponMapSPQ);
QString name = memberObj["name"].toString(); QString name = memberObj["name"].toString();
name = (name.isEmpty()) ? "未知" : name; name = (name.isEmpty()) ? "未知" : name;
...@@ -409,23 +418,6 @@ void FMVipForward::logined(const QJsonObject &serverJob, QJsonObject &posJob) ...@@ -409,23 +418,6 @@ void FMVipForward::logined(const QJsonObject &serverJob, QJsonObject &posJob)
SESSIONDATA_ADD("name", name); SESSIONDATA_ADD("name", name);
SESSIONDATA_ADD("mobile", mobile); SESSIONDATA_ADD("mobile", mobile);
SESSIONDATA_ADD("birthday", birthday); SESSIONDATA_ADD("birthday", birthday);
// 展示用户代金券
if(SESSIONDATA_STRING("canPay")!="") {
FMVipCouponList couponListWnd;
couponListWnd.exec();
}
QJsonArray coupons;
QMap<QString, Coupon> selectCouponMap = SESSIONDATA_COUPONMAP("usedCoupons");
foreach (Coupon coupon, selectCouponMap) {
QJsonObject couponObj;
couponObj["code"] = coupon.code;
couponObj["pid"] = coupon.pid;
coupons.append(couponObj);
}
posJob["coupons"] = coupons;
} }
void FMVipForward::funded(const QJsonObject &serverJob, QJsonObject &posJob) void FMVipForward::funded(const QJsonObject &serverJob, QJsonObject &posJob)
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <QNetworkReply> #include <QNetworkReply>
#include <QNetworkRequest> #include <QNetworkRequest>
#include <QJsonObject> #include <QJsonObject>
#include <QDateTime>
#define AppId "T007" #define AppId "T007"
#define KeyCode "98d094a7-0d07-4cf5-b23b-d18783f0d76a" #define KeyCode "98d094a7-0d07-4cf5-b23b-d18783f0d76a"
...@@ -36,6 +37,8 @@ struct Coupon ...@@ -36,6 +37,8 @@ struct Coupon
double disAmount; double disAmount;
QString desc; QString desc;
QString pid; QString pid;
QString type;
QString limitTime;
}; };
Q_DECLARE_METATYPE(Coupon) // 使Coupon类型可以和QVariant类型互相转换 Q_DECLARE_METATYPE(Coupon) // 使Coupon类型可以和QVariant类型互相转换
......
#include "fmviporder.h" #include "fmviporder.h"
#include "fmmsgwnd.h" #include "fmmsgwnd.h"
#include "fmcouponwidget.h" #include "fmcouponwidget.h"
#include "ui_fmviporder.h" #include "ui_fmviporder.h"
...@@ -21,7 +21,7 @@ FMVipOrder::FMVipOrder(QDialog *parent) : ...@@ -21,7 +21,7 @@ FMVipOrder::FMVipOrder(QDialog *parent) :
double standard_amount = SESSIONDATA_INT("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(SESSIONDATA_COUPONMAP("couponMap")); orderInfo->setCouponMap(SESSIONDATA_COUPONMAP("couponMapDJQ"));
ui->operator_label->setText(operator_id); ui->operator_label->setText(operator_id);
ui->bd_label->setText(business_date); ui->bd_label->setText(business_date);
...@@ -102,6 +102,7 @@ void FMVipOrder::onItemClicked(QListWidgetItem *item) ...@@ -102,6 +102,7 @@ void FMVipOrder::onItemClicked(QListWidgetItem *item)
void FMVipOrder::initCouponItems() void FMVipOrder::initCouponItems()
{ {
QStringList posCouponCodes = SESSIONDATA("PosReqCouponCodes").toStringList();
for(Coupon coupon : orderInfo->couponMap().values()) for(Coupon coupon : orderInfo->couponMap().values())
{ {
auto item = new QListWidgetItem(); auto item = new QListWidgetItem();
...@@ -112,6 +113,10 @@ void FMVipOrder::initCouponItems() ...@@ -112,6 +113,10 @@ void FMVipOrder::initCouponItems()
ui->coupon_page->setItemWidget(item, itemWidget); ui->coupon_page->setItemWidget(item, itemWidget);
//item大小 //item大小
item->setSizeHint (itemWidget->size()); item->setSizeHint (itemWidget->size());
if(posCouponCodes.contains(coupon.code)) {
onItemClicked(item);
}
} }
} }
......
...@@ -30,23 +30,9 @@ ...@@ -30,23 +30,9 @@
color: rgb(127,127,127); color: rgb(127,127,127);
font: 12px &quot;Microsoft YaHei&quot;; font: 12px &quot;Microsoft YaHei&quot;;
} }
#amount_lab, #currency
{
color: rgb(229, 11, 72);
font: bold 30px &quot;Microsoft YaHei&quot;;
}
#currency
{
font: bold 15px;
margin-top: 11px;
}
#desc_lab #desc_lab
{ {
max-height: 21;
min-height: 21;
color: rgb(252,255,255);
background-color: rgb(229, 11, 72);
font: bold 15px &quot;Microsoft YaHei&quot;; font: bold 15px &quot;Microsoft YaHei&quot;;
margin-left: 4px; margin-left: 4px;
margin-bottom: 3px; margin-bottom: 3px;
...@@ -77,62 +63,6 @@ ...@@ -77,62 +63,6 @@
<number>0</number> <number>0</number>
</property> </property>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="spacing">
<number>0</number>
</property>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="currency">
<property name="text">
<string></string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="amount_lab">
<property name="text">
<string>40.00</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="coupon_separator"/>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3"> <layout class="QHBoxLayout" name="horizontalLayout_3">
<item> <item>
<spacer name="horizontalSpacer_3"> <spacer name="horizontalSpacer_3">
...@@ -152,17 +82,17 @@ ...@@ -152,17 +82,17 @@
<property name="maximumSize"> <property name="maximumSize">
<size> <size>
<width>16777215</width> <width>16777215</width>
<height>24</height> <height>16777215</height>
</size> </size>
</property> </property>
<property name="text"> <property name="text">
<string>测试代金券</string> <string>3.5元金牌香肠免费兑换券测试代金券</string>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignCenter</set> <set>Qt::AlignCenter</set>
</property> </property>
<property name="wordWrap"> <property name="wordWrap">
<bool>false</bool> <bool>true</bool>
</property> </property>
</widget> </widget>
</item> </item>
...@@ -184,7 +114,7 @@ ...@@ -184,7 +114,7 @@
<item> <item>
<widget class="QLabel" name="code_lab"> <widget class="QLabel" name="code_lab">
<property name="text"> <property name="text">
<string>123456789</string> <string>20170508~20170907</string>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignCenter</set> <set>Qt::AlignCenter</set>
......
...@@ -105,8 +105,8 @@ ...@@ -105,8 +105,8 @@
} }
#coupon_prev_btn, #coupon_next_btn { #coupon_prev_btn, #coupon_next_btn {
font: 400 16px &quot;Microsoft YaHei&quot;; font: 400 16px &quot;Microsoft YaHei&quot;;
min-height: 60px; max-height: 60px; min-height: 180px; max-height: 180px;
min-width: 70px; max-width: 70px; min-width: 40px; max-width: 40px;
border: 1 solid rgb(228,228,228); border: 1 solid rgb(228,228,228);
border-radius: 7px; border-radius: 7px;
background: white; background: white;
...@@ -491,8 +491,11 @@ ...@@ -491,8 +491,11 @@
<property name="autoScroll"> <property name="autoScroll">
<bool>true</bool> <bool>true</bool>
</property> </property>
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>
<property name="selectionMode"> <property name="selectionMode">
<enum>QAbstractItemView::MultiSelection</enum> <enum>QAbstractItemView::NoSelection</enum>
</property> </property>
<property name="verticalScrollMode"> <property name="verticalScrollMode">
<enum>QAbstractItemView::ScrollPerItem</enum> <enum>QAbstractItemView::ScrollPerItem</enum>
...@@ -504,7 +507,7 @@ ...@@ -504,7 +507,7 @@
<enum>QListView::Static</enum> <enum>QListView::Static</enum>
</property> </property>
<property name="spacing"> <property name="spacing">
<number>10</number> <number>0</number>
</property> </property>
<property name="gridSize"> <property name="gridSize">
<size> <size>
......
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