Commit c906f78f by gujin.wang

修改一些崩溃bug

parent e6812a0b
......@@ -35,6 +35,7 @@ void CQueryThread::trySend()
//write sqlite
outjson[FMP_EPAY_TRANSID]=_reqJson[FMP_EPAY_TRANSID];
_fmPay->updateSqlite(outjson);
_fmPay->UpdateViewDetail();
}
}
......
......@@ -9,8 +9,13 @@
FMPDataBase::FMPDataBase(QString dbname, QString connectname, QObject *parent) : QObject(parent)
{
_db = QSqlDatabase::addDatabase("QSQLITE", connectname);
_db.setDatabaseName(dbname);
if (!QSqlDatabase::contains(connectname)) {
_db = QSqlDatabase::addDatabase("QSQLITE", connectname);
}
else {
_db = QSqlDatabase::database(connectname);
}
_db.setDatabaseName(dbname);
_isopen = _db.open();
}
......
......@@ -48,7 +48,12 @@ public:
}
}
return QSqlTableModel::data(idx, role);
if (QSqlTableModel::hasIndex(idx.row(), idx.column())) {
return QSqlTableModel::data(idx, role);
}
else {
return QVariant();
}
}
};
......
......@@ -72,6 +72,8 @@ public:
bool HttpPost(QJsonObject& outjson, QJsonObject json, QString &error, int timeout = 60);
void GetDailyBillData(QVector<PayDetail> &vecPay);
void UpdateViewDetail(); //更新列表显示
void WriteRedeemToSqlite(QJsonObject redeemInfo);
FMPDataBase* GetDB()const;
......@@ -98,14 +100,18 @@ private:
void CheckErrorOrder(); //查询异常订单,如果有异常订单,则进入查询状态
signals:
void apiFinished();
void apiError();
void apiFinish();
void error(QString errormsg);
void finished(QJsonObject json);
protected slots:
void witedata();
void payVip();
void vipFinal();
QString final(QString fm_open_id = QString());
public:
FMPePay *q_ptr;
......@@ -119,6 +125,7 @@ public:
CQueryThread *_queryThread;
ReverseThread *_reverseThread;
QString _pos_trans_id;
QJsonObject _origin_request;
private:
bool _reverse_flag;
......@@ -129,7 +136,7 @@ private:
QSqlTableModel *_model;
QFutureWatcher<QByteArray> *_watcher;
QJsonObject _origin_request;
QJsonObject _docked_request;
QJsonObject _origin_response;
QJsonObject _docked_response;
......
......@@ -9,6 +9,7 @@
#include "fmp_home_i.h"
#include "fmp_detaildialog.h"
#include "fmp_database.h"
#include "fmp_vip_i.h"
#include <QDebug>
#include <fmp_settings_i.h>
......@@ -27,6 +28,8 @@
#include <QTableWidget>
#include <QSqlQuery>
#include <QMessageBox>
#include <QTcpSocket>
#include <QHostAddress>
FMPPayDialog::FMPPayDialog(FMPePayPrivate *control, QVariantHash basicinfo, QWidget *parent) :
_control(control),
......@@ -274,6 +277,19 @@ void FMPPayDialog::show()
return QDialog::show();
}
void FMPPayDialog::WidgetChange()
{
//异常订单查询到支付结果后,更新列显示
if(_curt_btn->property("index").toInt() == 3)
setWaitPayView();
if(_curt_btn->property("index").toInt() == 4)
setErrorOrderView();
if(_curt_btn->property("index").toInt() == 5)
setSuccessView();
}
void FMPPayDialog::onWidgetChange()
{
QPushButton *tmpcur = _curt_btn;
......@@ -498,6 +514,7 @@ void FMPPayDialog::setPaySuccessView(QJsonObject json)
_success_flag = true;
PlayAnimation(findChild<QWidget *>(_curt_btn->property("pageName").toString()), ui->wdg_success_main, RightToLeft);
ui->btn_pay->setEnabled(false);
}
void FMPPayDialog::setRefundSuccessView(QJsonObject json)
......@@ -855,7 +872,7 @@ void FMPPayDialog::PlayAnimation(QWidget *target0, QWidget *target1, Movemode mo
//确定按钮
void FMPPayDialog::onBtnConfirmClicked()
{
{
if(_wait == NULL)
{
_wait = new FMPPayWait(this);
......@@ -901,10 +918,12 @@ void FMPPayDialog::onBtnConfirmClicked()
return;
}
if(ui->btn_pay->isChecked())
{
_wait->SetContent(FMPPayWait::LOADING, QString::fromLocal8Bit("支付中..."));
_control->ControlPayJson(ui->lineedit_num->text(), ui->lineedit_code->text());
}
else
{
......@@ -936,17 +955,17 @@ void FMPPayDialog::on_btn_close_clicked()
{
if(!_control->_is_api){
this->close();
_control->Uninit();
_control->Uninit();
}
else{
if(!_success_flag){
if(!_success_flag &&!_control->_queryThread->isRunning()){
fmp_forceClose_dialog *_force_close=new fmp_forceClose_dialog(this);
_force_close->setModal(true);
_force_close->show();
}
else{
this->close();
_control->Uninit();
//_control->Uninit();
}
}
}
......@@ -993,10 +1012,10 @@ void FMPPayDialog::on_btn_success_confirm_clicked()
QWidget *nextwdg = findChild<QWidget *>(_curt_btn->property("pageName").toString());
PlayAnimation(ui->wdg_success_main, nextwdg, LeftToRight);
if(_control->_is_api)
if(_control->_is_api) {
emit apiFinished();
on_btn_close_clicked();
_success_flag = false;
}
}
void FMPPayDialog::on_btn_paycheck_clicked()
......@@ -1242,4 +1261,4 @@ void FMPPayDialog::Reverse()
}
}
_reverses.clear();
}
}
\ No newline at end of file
......@@ -62,7 +62,11 @@ public slots:
void setBasicInfo(QVariantHash basicinfo);
void on_cash_pay();
void on_force_close();
void on_force_close();
void WidgetChange();
protected:
void keyPressEvent(QKeyEvent *);
......@@ -103,6 +107,7 @@ private slots:
void redeem();
void ShowPayDetail(const QModelIndex& index);
public:
void setPayView();
......@@ -112,6 +117,9 @@ public:
void Reverse();
void Reverse(const QJsonObject& reverseReq);
signals:
void apiFinished();
private:
......@@ -141,6 +149,7 @@ public:
int _pay_total; //一笔订单的支付总额,包括 扫码支付额、卡券支付额......
QStringList couponDes;
QVector<QJsonObject> _redeem_results; //保存每张券的核销结果
private:
Ui::FMPPayDialog *ui;
......
......@@ -5,7 +5,7 @@
#define VER_MINOR 1
#define VER_REVISION 0
#define VER_BUILD 19
#define VER_BUILD 26
//! Convert version numbers to string
#define _STR(S) #S
......
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