Commit 168bb6ab by LIDINGDA\ldd

1.界面调整,查询整合完成

parent a4fa15b0
......@@ -15,3 +15,4 @@ debug/bin/fmcrypt.dll
lib/fmcrypt.lib
debug/
*.rar
*.zip
......@@ -169,6 +169,11 @@ bool FMPDataBase::getSql(QString table, QVariantHash data, QStringList& columnna
return true;
}
QSqlDatabase FMPDataBase::getDb() const
{
return _db;
}
bool FMPDataBase::getSql(QString table, QVariantHash data, QString& sql)
{
QSqlQuery query(_db);
......
......@@ -23,6 +23,9 @@ public:
bool find(QString table, QSqlQuery &query, QStringList keylist = QStringList(), QString condition = QString(""));
bool creat(QString sql);
QSqlDatabase getDb() const;
private:
bool exist(QString table);
......
......@@ -30,7 +30,8 @@ HEADERS +=\
fmp_epayview_dialog.h \
fmp_epayview_focuslineedit.h \
fmp_epayview_wait.h \
fmp_database.h
fmp_database.h \
fmp_epay_checkmodel.h
unix {
target.path = /usr/lib
......
#ifndef FMPT_H
#define FMPT_H
#include <QSqlTableModel>
#include <QStyledItemDelegate>
class FMPPayCheckModel : public QSqlTableModel
{
public:
explicit FMPPayCheckModel(QObject *parent, QSqlDatabase db)
{
}
QVariant data(const QModelIndex &idx, int role = Qt::DisplayRole) const
{
if (idx.column() == 6 && role == Qt::DisplayRole) {
QVariant d = QSqlTableModel::data(idx,role);
return d.toString().toFloat() / 100;
}
if ((idx.column() == 11) && role == Qt::DisplayRole) {
QVariant d = QSqlTableModel::data(idx,role);
if (d.toBool()) {
return QString::fromLocal8Bit("已退款");
}
else
{
return QString::fromLocal8Bit("未退款");
}
}
return QSqlTableModel::data(idx, role);
}
};
class FMPPayItemDelegate : public QStyledItemDelegate
{
Q_OBJECT
public:
explicit FMPPayItemDelegate()
{
}
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
QStyledItemDelegate::paint(painter, option, index);
}
QWidget * createEditor(QWidget *parent,
const QStyleOptionViewItem &option,
const QModelIndex &index) const Q_DECL_OVERRIDE
{
return 0;
}
QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
{
return QStyledItemDelegate::sizeHint(option, index);
}
};
#endif // FMPT_H
......@@ -34,10 +34,11 @@
//sql字段
#define SQL_KEY_ISREFUND "isrefund"
#define SQL_KEY_PAYID "pay_id"
#define SQL_KEY_TRANSID "pay_transId"
#define SQL_KEY_PAYTRANSID "pay_transId"
#define SQL_KEY_TRANSID "trans_id"
#define SQL_KEY_CODE "code"
#define SQL_KEY_FMID "fmId"
#define SQL_KEY_EBCODE "paied_ebcode"
#define SQL_KEY_EBCODE "pay_ebcode"
#define SQL_KEY_TOTALAMOUNT "total_amount"
//缺省
......
......@@ -11,6 +11,7 @@
#include "fmp_epayview_dialog.h"
#include "fmp_network_i.h"
#include "fmp_database.h"
#include "fmp_epay_checkmodel.h"
#include <QJsonParseError>
#include <QJsonDocument>
......@@ -30,6 +31,7 @@ FMPePayPrivate::FMPePayPrivate(FMPePay *parent)
_setting(nullptr),
_logger(nullptr),
_network(nullptr),
_model(nullptr),
_db(nullptr),
_reverse_flag(false)
{
......@@ -42,6 +44,10 @@ FMPePayPrivate::~FMPePayPrivate()
delete _payDialog;
}
if(_model != nullptr){
delete _model;
}
if(_db != nullptr){
delete _db;
}
......@@ -84,6 +90,7 @@ void FMPePayPrivate::onShowPayWnd()
"fmId varchar(40) primary key, "
"code varchar(40), "
"pay_transId varchar(40), "
"trans_id varchar(40),"
"pay_id varchar(40), "
"pay_ebcode varchar(20), "
"total_amount integer, "
......@@ -102,6 +109,19 @@ void FMPePayPrivate::onShowPayWnd()
}
}
if(_model == nullptr)
{
_model = new FMPPayCheckModel(NULL, _db->getDb());
_model->setTable(q->_table);
_model->setEditStrategy(QSqlTableModel::OnManualSubmit);
_model->setHeaderData(0, Qt::Horizontal, QString::fromLocal8Bit("非码交易号"));
_model->setHeaderData(2, Qt::Horizontal, QString::fromLocal8Bit("三方交易号"));
_model->setHeaderData(4, Qt::Horizontal, QString::fromLocal8Bit("交易渠道"));
_model->setHeaderData(6, Qt::Horizontal, QString::fromLocal8Bit("金额(元)"));
_model->setHeaderData(11, Qt::Horizontal, QString::fromLocal8Bit("已退款"));
}
if(_payDialog == nullptr) {
_setting = q->GetService<FMPSettingsInterface>(q->_ctx);
_payDialog = new FMPPayDialog(this, _logger);
......@@ -110,6 +130,11 @@ void FMPePayPrivate::onShowPayWnd()
_payDialog->show();
}
QSqlTableModel *FMPePayPrivate::model() const
{
return _model;
}
void FMPePayPrivate::ControlPayJson(QString sum, QString code, QString date)
{
Q_Q(FMPePay);
......@@ -141,6 +166,7 @@ void FMPePayPrivate::ControlPayJson(QString sum, QString code, QString date)
{
outjson.insert(SQL_KEY_ISREFUND, false);
outjson.insert(SQL_KEY_CODE, code);
outjson.insert(SQL_KEY_TRANSID, _current_json[SQL_KEY_TRANSID].toString());
_db->insert(q->_table, outjson.toVariantHash());
......@@ -177,7 +203,7 @@ bool FMPePayPrivate::HttpPost(QJsonObject& outjson, QJsonObject json, QString &e
return false;
}
if(!checkReturnJson(reply->readAll(), outjson))
if(!CheckReturnJson(reply->readAll(), outjson))
{
error = QString::fromLocal8Bit("返回数据错误");
return false;
......@@ -196,7 +222,7 @@ bool FMPePayPrivate::HttpPost(QJsonObject& outjson, QJsonObject json, QString &e
}
bool FMPePayPrivate::checkReturnJson(QByteArray data, QJsonObject &returnjson)
bool FMPePayPrivate::CheckReturnJson(QByteArray data, QJsonObject &returnjson)
{
QJsonParseError json_error;
QJsonDocument doc = QJsonDocument::fromJson( data, &json_error);
......@@ -212,6 +238,21 @@ bool FMPePayPrivate::checkReturnJson(QByteArray data, QJsonObject &returnjson)
return true;
}
void FMPePayPrivate::GetCheckMode(QString sum)
{
QString sql = QString("fmId like '%%%1%%' or pay_transId like '%%%1%%'").arg(sum);
_model->setFilter(sql);
_model->select();
}
void FMPePayPrivate::GetMode()
{
Q_Q(FMPePay);
_model->setFilter(QString(""));
_model->select();
}
void FMPePayPrivate::ControlRefundJson(QString sum, QString code)
{
Q_Q(FMPePay);
......@@ -219,10 +260,11 @@ void FMPePayPrivate::ControlRefundJson(QString sum, QString code)
QtConcurrent::run( [q, sum, code, this ]()
{
QString ebcode;
QString transid;
QStringList keylist;
QSqlQuery query;
keylist.append(SQL_KEY_EBCODE);
keylist.append(SQL_KEY_TRANSID);
if(_reverse_flag)
{
emit error(QString::fromLocal8Bit("网络连接异常(冲正...)"));
......@@ -231,14 +273,18 @@ void FMPePayPrivate::ControlRefundJson(QString sum, QString code)
if(!((code[0] >= 'a' && code[0] <= 'z') || (code[0] >= 'A' && code[0] <= 'Z')))
{
if(!_db->find(q->_table, query, keylist, QString(QString(SQL_KEY_TRANSID) + " = '%1'").arg(code)) || !query.next())
if(!_db->find(q->_table, query, keylist, QString(QString(SQL_KEY_PAYTRANSID) + " = '%1'").arg(code)) || !query.next())
{
emit error(QString::fromLocal8Bit("交易记录不存在"));
return ;
}else
{
ebcode = query.value(0).toString();
transid = query.value(1).toString();
}
}
if(!GetRefundJson(sum, code, ebcode))
if(!GetRefundJson(sum, code, ebcode, transid))
{
emit error(QString::fromLocal8Bit("获取门店信息失败"));
return ;
......@@ -258,7 +304,7 @@ void FMPePayPrivate::ControlRefundJson(QString sum, QString code)
QVariantHash hash;
QSqlQuery tmpquery;
QStringList tmpkeylist;
tmpkeylist << SQL_KEY_TRANSID << SQL_KEY_FMID << SQL_KEY_PAYID;
tmpkeylist << SQL_KEY_PAYTRANSID << SQL_KEY_FMID << SQL_KEY_PAYID;
hash.insert(SQL_KEY_ISREFUND, true);
if(!_db->update(q->_table, hash, QString("pay_transId = '%1' or fmId = '%2'").arg(code).arg(code)))
......@@ -270,21 +316,24 @@ void FMPePayPrivate::ControlRefundJson(QString sum, QString code)
{
FMP_ERROR(_logger) << "refund data update failed";
outjson.insert(SQL_KEY_TRANSID, code);
outjson.insert(SQL_KEY_PAYTRANSID, code);
outjson.insert(SQL_KEY_FMID, code);
outjson.insert(SQL_KEY_PAYID, QString::fromLocal8Bit("未知"));
outjson.insert(SQL_KEY_TOTALAMOUNT, sum);
}
else
{
outjson.insert(SQL_KEY_TRANSID, tmpquery.value(0).toString());
outjson.insert(SQL_KEY_FMID, tmpquery.value(0).toString());
outjson.insert(SQL_KEY_PAYID, tmpquery.value(0).toString());
outjson.insert(SQL_KEY_PAYTRANSID, tmpquery.value(0).toString());
outjson.insert(SQL_KEY_FMID, tmpquery.value(1).toString());
outjson.insert(SQL_KEY_PAYID, tmpquery.value(2).toString());
outjson.insert(SQL_KEY_TOTALAMOUNT, sum);
}
FMP_INFO(_logger) << "refund success view json : " << outjson;
_model->setFilter(QString(""));
_model->select();
emit finished(outjson);
}
......@@ -301,7 +350,6 @@ void FMPePayPrivate::ControlReverseJson()
qDebug() << _current_json;
}
bool FMPePayPrivate::GetPayJson(const QString& sum, const QString& code, const QString& date)
{
_current_json = QJsonObject::fromVariantMap( QVariantMap() );
......@@ -338,7 +386,7 @@ bool FMPePayPrivate::GetPayJson(const QString& sum, const QString& code, const Q
return true;
}
bool FMPePayPrivate::GetRefundJson(const QString &sum, const QString &code, QString ebcode)
bool FMPePayPrivate::GetRefundJson(const QString &sum, const QString &code, QString ebcode, QString transid)
{
Q_Q(FMPePay);
_current_json = QJsonObject::fromVariantMap( QVariantMap() );
......@@ -361,11 +409,13 @@ bool FMPePayPrivate::GetRefundJson(const QString &sum, const QString &code, QStr
{
transaction.insert(FMP_EPAY_REFUND_TRANSTRACTION_FMID, code);
transaction.insert(FMP_EPAY_REFUND_TRANSTRACTION_AMOUNT, (int)((sum.toDouble() + 0.005) * 100));
_current_json.insert( FMP_EPAY_TRANSID, QDateTime::currentDateTime().toString("yyyyMMddhhmmsszzz"));
}else
{
transaction.insert(FMP_EPAY_REFUND_TRANSTRACTION_EBCODE, ebcode);
transaction.insert(FMP_EPAY_REFUND_TRANSTRACTION_TRANSID, code);
transaction.insert(FMP_EPAY_REFUND_TRANSTRACTION_AMOUNT, (int)((sum.toDouble() + 0.005) * 100));
_current_json.insert( FMP_EPAY_TRANSID, transid);
}
transactionarry.append( transaction);
......@@ -376,7 +426,6 @@ bool FMPePayPrivate::GetRefundJson(const QString &sum, const QString &code, QStr
_current_json.insert( FMP_EPAY_STOREID, storeid);
_current_json.insert( FMP_EPAY_STATIONID, station);
_current_json.insert( FMP_EPAY_OPERATORID, oprt);
_current_json.insert( FMP_EPAY_TRANSID, QDateTime::currentDateTime().toString("yyyyMMddhhmmsszzz"));
_current_json.insert( FMP_EPAY_TRANSTRACTION, transactionarry);
return true;
......
......@@ -10,6 +10,7 @@ class FMPSettingsInterface;
class FMPLoggerInterface;
class FMPNetworkInterface;
class FMPDataBase;
class QSqlTableModel;
class FMPePayPrivate : public QObject
{
......@@ -27,10 +28,14 @@ public:
void ControlRefundJson(QString sum, QString code);
void GetCheckMode(QString sum);
void GetMode();
private:
void ControlReverseJson();
bool GetRefundJson(const QString &sum, const QString &code, QString ebcode);
bool GetRefundJson(const QString &sum, const QString &code, QString ebcode, QString transid);
void GetReverseJson();
......@@ -38,7 +43,7 @@ private:
bool HttpPost(QJsonObject& outjson, QJsonObject json, QString &error, int timeout = 60);
bool checkReturnJson(QByteArray data, QJsonObject &returnjson);
bool CheckReturnJson(QByteArray data, QJsonObject &returnjson);
signals:
void showPayWnd();
......@@ -63,8 +68,12 @@ public:
FMPNetworkInterface *_network;
QSqlTableModel *model() const;
private:
QJsonObject _current_json;
bool _reverse_flag;
......@@ -73,7 +82,7 @@ private:
FMPDataBase *_db;
QSqlTableModel *_model;
};
#endif // FMP_EPAY_P_H
......@@ -2,10 +2,13 @@
#include "ui_fmp_epayview_dialog.h"
#include "fmp_epay_def.h"
#include "fmp_epay_p.h"
#include "fmp_epay_checkmodel.h"
#include <QDebug>
#include <fmp_settings_i.h>
#include <fmp_logger_i.h>
#include <QSqlTableModel>
#include <QStyledItemDelegate>
FMPPayDialog::FMPPayDialog(FMPePayPrivate *control, FMPLoggerInterface *logger, QWidget *parent) :
......@@ -46,6 +49,39 @@ FMPPayDialog::FMPPayDialog(FMPePayPrivate *control, FMPLoggerInterface *logger,
ui->lineedit_num->setFocus();
_current_LineEdit = ui->lineedit_num;
ui->tableView->setItemDelegate(new FMPPayItemDelegate);
connect(ui->tableView, SIGNAL(clicked(QModelIndex)), SLOT(onSelectionChanged(QModelIndex)));
QSqlTableModel *model = _control->model();
ui->tableView->setModel(model);
ui->tableView->hideColumn(1);
ui->tableView->hideColumn(3);
ui->tableView->hideColumn(5);
ui->tableView->hideColumn(7);
ui->tableView->hideColumn(8);
ui->tableView->hideColumn(9);
ui->tableView->hideColumn(10);
ui->tableView->setSelectionMode(QTableView::SingleSelection);
ui->tableView->setSelectionBehavior(QTableView::SelectRows);
ui->tableView->verticalHeader()->setVisible(false);
QHeaderView *header = ui->tableView->horizontalHeader();
ui->tableView->setColumnWidth(0, 220);
ui->tableView->setColumnWidth(2, 260);
ui->tableView->setColumnWidth(4, 120);
ui->tableView->setColumnWidth(5, 80);
ui->tableView->setColumnWidth(6, 60);
header->setVisible(true);
header->setStretchLastSection(true);
QRegExp rx("^(([1-9]+)|([0-9]+\.[0-9]{1,2}))$");
QRegExpValidator *pReg = new QRegExpValidator(rx, this);
ui->lineedit_num->setValidator(pReg);
setPayView();
}
......@@ -98,6 +134,21 @@ FMPPayDialog::~FMPPayDialog()
}
void FMPPayDialog::onSelectionChanged(QModelIndex idx)
{
if (ui->tableView->currentIndex() == idx) {
ui->pushButton_2->setEnabled(true);
}
else {
ui->pushButton_2->setEnabled(false);
}
}
void FMPPayDialog::keyPressEvent(QKeyEvent *)
{
}
void FMPPayDialog::setPaySuccessView(QJsonObject json)
{
......@@ -124,7 +175,20 @@ void FMPPayDialog::setPaySuccessView(QJsonObject json)
void FMPPayDialog::setRefundSuccessView(QJsonObject json)
{
ui->suc2->setText(QString::fromLocal8Bit("退款成功"));
ui->tlb1->setText(QString::fromLocal8Bit("支付渠道"));
ui->lb1->setText(json[SQL_KEY_PAYID].toString());
ui->tlb2->setText(QString::fromLocal8Bit("非码交易号"));
ui->lb2->setText(json[SQL_KEY_FMID].toString());
ui->tlb3->setText(QString::fromLocal8Bit("支付交易号"));
ui->lb3->setText(json[SQL_KEY_PAYTRANSID].toString().insert(15, "\n"));
ui->tlb4->setText(QString::fromLocal8Bit("退款金额"));
ui->lb4->setText(json[SQL_KEY_TOTALAMOUNT].toString());
ui->lb5->hide();
ui->tlb5->hide();
ui->lb6->hide();
ui->tlb6->hide();
ui->stackedWidget->setCurrentIndex(1);
}
void FMPPayDialog::setPayView()
......@@ -172,9 +236,14 @@ void FMPPayDialog::setRefundView()
void FMPPayDialog::on_btn_num_clicked()
{
QRegExp rx("^(([1-9]+)|([0-9]+\.[0-9]{1,2}))$");
QString num_str = qobject_cast<QPushButton*>(sender())->text();
_current_LineEdit->setText(_current_LineEdit->text().append(num_str));
if(rx.exactMatch(_current_LineEdit->text().append(num_str)) /*&& _current_LineEdit->text().append(num_str).compare("0.00") != 0*/)
{
_current_LineEdit->setText(_current_LineEdit->text().append(num_str));
}
}
void FMPPayDialog::on_btn_pay_clicked()
......@@ -245,3 +314,46 @@ void FMPPayDialog::onLineeditCodeGetFocus()
{
_current_LineEdit = (FMPFocusLineEdit *) sender();
}
void FMPPayDialog::on_btn_success_confirm_clicked()
{
ui->lineedit_num->clear();
ui->lineedit_code->clear();
ui->stackedWidget->setCurrentIndex(0);
}
void FMPPayDialog::setCheckView()
{
ui->lineEdit->setText(QString(""));
_control->GetMode();
ui->stackedWidget->setCurrentIndex(2);
}
void FMPPayDialog::on_btn_check_clicked()
{
setCheckView();
}
void FMPPayDialog::on_btn_paycheck_clicked()
{
_control->GetCheckMode(ui->lineEdit->text());
}
void FMPPayDialog::on_pushButton_2_clicked()
{
if(_wait == NULL)
{
_wait = new FMPPayWait(this);
_wait->setModal(true);
}
QSqlTableModel *model = qobject_cast<QSqlTableModel*>(ui->tableView->model());
QModelIndex idx = ui->tableView->currentIndex();
_wait->SetContent(FMPPayWait::LOADING, QString::fromLocal8Bit("退款中..."));
_control->ControlRefundJson(model->data(idx.sibling(idx.row(), 6)).toString(), model->data(idx.sibling(idx.row(),0)).toString());
_wait->show();
}
......@@ -4,6 +4,7 @@
#include <QJsonObject>
#include <QJsonArray>
#include <QJsonDocument>
#include <QModelIndex>
#include <QDateTime>
#include <QTimer>
......@@ -32,6 +33,12 @@ public slots:
void showErrorMsg(QString errormsg);
void showSuccessMsg(QJsonObject json);
void onSelectionChanged(QModelIndex idx);
protected:
void keyPressEvent(QKeyEvent *);
private slots:
void on_btn_num_clicked();
......@@ -53,11 +60,21 @@ private slots:
void onLineeditCodeGetFocus();
void on_btn_success_confirm_clicked();
void on_btn_check_clicked();
void on_btn_paycheck_clicked();
void on_pushButton_2_clicked();
private:
void setPayView();
void setRefundView();
void setCheckView();
void getBusinessDate();
void setBusinessDate(QString date);
......@@ -78,6 +95,7 @@ private:
FMPPayWait *_wait;
FMPLoggerInterface *_logger;
};
#endif // DIALOG_H
......@@ -19,7 +19,7 @@ FMPPayWait::FMPPayWait(QWidget *parent) : QDialog(parent), ui(new Ui::FMPPayWait
qRegisterMetaType<FMPPayWait::Type>("FMPPayWait::Type");
setStyleSheet("QWidget#mainWdg{background:rgba(140,140,140,0.4)}");
setStyleSheet("QWidget#mainWdg{background:rgba(110,110,110,0.5)}");
}
FMPPayWait::~FMPPayWait()
......
......@@ -5,7 +5,7 @@
#define VER_MINOR 1
#define VER_REVISION 0
#define VER_BUILD 13
#define VER_BUILD 14
//! 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