Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
fmp_vip
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zhenfei.zhang
fmp_vip
Commits
3193ea90
Commit
3193ea90
authored
Sep 06, 2017
by
NitefullWind
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1. 支付信息存入数据库,结算时从数据库查询支付信息。
parent
ee2d6b4f
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
104 additions
and
8 deletions
+104
-8
backup/fmbackup.cpp
+65
-4
backup/fmbackup.h
+6
-1
task/taskfinal.cpp
+25
-3
task/taskpay.cpp
+8
-0
No files found.
backup/fmbackup.cpp
View file @
3193ea90
...
...
@@ -34,7 +34,7 @@ bool FMBackup::connect()
}
QString
dbname
=
backupPath
+
"backupReq.db"
;
if
(
!
QFile
::
exists
(
dbname
))
{
isOk
=
create
Tab
le
(
dbname
);
isOk
=
create
DBFi
le
(
dbname
);
}
else
{
_db
=
QSqlDatabase
::
addDatabase
(
"QSQLITE"
,
"fmvipbackupdb"
);
_db
.
setDatabaseName
(
dbname
);
...
...
@@ -46,17 +46,25 @@ bool FMBackup::connect()
FMP_WARN
()
<<
QString
::
fromLocal8Bit
(
"连接失败:"
)
<<
_db
.
lastError
().
text
();
}
if
(
!
_db
.
tables
().
contains
(
"tbl_req"
))
{
createTable
(
"tbl_req"
);
}
if
(
!
_db
.
tables
().
contains
(
"tbl_order"
))
{
createTable
(
"tbl_order"
);
}
return
isOk
;
}
bool
FMBackup
::
create
Tab
le
(
const
QString
&
dbname
)
bool
FMBackup
::
create
DBFi
le
(
const
QString
&
dbname
)
{
_db
=
QSqlDatabase
::
addDatabase
(
"QSQLITE"
,
"fmvipbackupdb"
);
_db
.
setDatabaseName
(
dbname
);
_db
.
open
();
QSqlQuery
query
(
_db
);
// 创建表
bool
isOk
=
query
.
exec
(
"create table tbl_req(id integer PRIMARY KEY autoincrement, url varchar(200), req text)
"
);
bool
isOk
=
createTable
(
"tbl_req"
);
isOk
&=
createTable
(
"tbl_order
"
);
FMP_INFO
()
<<
QString
::
fromLocal8Bit
(
"创建数据库:"
)
<<
dbname
;
if
(
!
isOk
)
{
...
...
@@ -65,6 +73,24 @@ bool FMBackup::createTable(const QString &dbname)
return
isOk
;
}
bool
FMBackup
::
createTable
(
const
QString
&
tbName
)
{
QString
sql
;
if
(
tbName
==
"tbl_req"
)
{
sql
=
QString
(
"create table tbl_req(id integer PRIMARY KEY autoincrement, url varchar(200), req text)"
);
}
else
if
(
tbName
==
"tbl_order"
)
{
sql
=
QString
(
"create table tbl_order(id integer PRIMARY KEY autoincrement, fmId varchar(40), orderContent text)"
);
}
QSqlQuery
query
(
_db
);
// 创建表
bool
isOk
=
query
.
exec
(
sql
);
if
(
!
isOk
)
{
FMP_WARN
()
<<
QString
::
fromLocal8Bit
(
"创建表失败:"
)
<<
query
.
lastError
().
text
();
}
return
isOk
;
}
int
FMBackup
::
insertNewRow
()
{
if
(
!
_db
.
isOpen
())
{
...
...
@@ -127,3 +153,38 @@ bool FMBackup::reset()
FMP_INFO
()
<<
QString
::
fromLocal8Bit
(
"数据库重置: "
)
<<
isOk
;
return
isOk
;
}
bool
FMBackup
::
insertNewOrder
(
const
QString
&
fmId
,
const
QByteArray
&
orderContent
)
{
if
(
!
_db
.
isOpen
())
{
connect
();
}
QSqlQuery
query
(
_db
);
bool
isOk
=
query
.
exec
(
QString
(
"insert into tbl_order('fmId','orderContent') values('%1','%2');"
).
arg
(
fmId
).
arg
(
QString
(
orderContent
)));
if
(
!
isOk
)
{
FMP_ERROR
()
<<
QString
::
fromLocal8Bit
(
"插入订单数据失败:fmId: %1, orderContent: %2。失败原因:%3"
)
.
arg
(
fmId
).
arg
(
QString
(
orderContent
)).
arg
(
query
.
lastError
().
text
());
}
return
isOk
;
}
QByteArray
FMBackup
::
getOrderByFmId
(
const
QString
&
fmId
)
{
if
(
!
_db
.
isOpen
())
{
connect
();
}
QSqlQuery
query
(
_db
);
bool
isOk
=
query
.
exec
(
QString
(
"select * from tbl_order where (tbl_order.fmId='%1')"
).
arg
(
fmId
));
if
(
!
isOk
)
{
FMP_ERROR
()
<<
QString
::
fromLocal8Bit
(
"查询订单失败:fmId: %1。失败原因:%2"
).
arg
(
fmId
).
arg
(
query
.
lastError
().
text
());
}
QByteArray
orderContent
;
while
(
query
.
next
())
{
orderContent
=
query
.
record
().
value
(
"orderContent"
).
toByteArray
();
}
FMP_INFO
()
<<
QString
::
fromLocal8Bit
(
"查询到订单信息:%1。"
).
arg
(
QString
(
orderContent
));
return
orderContent
;
}
backup/fmbackup.h
View file @
3193ea90
...
...
@@ -10,6 +10,9 @@ public:
bool
updateReqData
(
const
int
id
,
const
QString
url
,
const
QString
&
reqData
);
bool
removeReqData
(
const
int
&
id
);
int
insertNewRow
();
bool
insertNewOrder
(
const
QString
&
fmId
,
const
QByteArray
&
orderContent
);
QByteArray
getOrderByFmId
(
const
QString
&
fmId
);
QSqlQuery
reqDataQuery
()
const
;
bool
reset
();
private
:
...
...
@@ -19,7 +22,9 @@ private:
bool
connect
();
bool
createTable
(
const
QString
&
dbname
);
bool
createDBFile
(
const
QString
&
dbname
);
bool
createTable
(
const
QString
&
tbName
);
private
:
class
privateFMBackup
...
...
task/taskfinal.cpp
View file @
3193ea90
...
...
@@ -23,8 +23,6 @@ void TaskFinal::packageServerReq()
p
.
push_back
(
PosProps
.
TransId
);
p
.
push_back
(
PosProps
.
Fm_id
);
p
.
push_back
(
PosProps
.
Fm_open_id
);
p
.
push_back
(
PosProps
.
OrderAmount
);
p
.
push_back
(
PosProps
.
PaidAmount
);
foreach
(
auto
prop
,
p
)
{
transData
[
ServerProps
(
prop
)]
=
getPosJsonValue
(
prop
);
}
...
...
@@ -42,8 +40,29 @@ void TaskFinal::packageServerReq()
products
.
append
(
product
);
}
transData
[
"productList"
]
=
products
;
int
orderAmount
=
getPosJsonValue
(
PosProps
.
OrderAmount
).
toInt
();
int
paidAmount
=
getPosJsonValue
(
PosProps
.
PaidAmount
).
toInt
();
QJsonArray
payList
;
QString
fmId
=
getPosJsonValue
(
PosProps
.
Fm_id
).
toString
();
QByteArray
orderContent
=
FMBackup
::
instance
()
->
getOrderByFmId
(
fmId
);
QJsonObject
orderObject
=
QJsonDocument
::
fromJson
(
orderContent
).
object
();
QJsonArray
payArray
=
searchJsonValue
(
orderObject
,
"payList"
).
toArray
();
foreach
(
auto
pay_v
,
payArray
)
{
QJsonObject
pay_ob
=
pay_v
.
toObject
();
if
(
pay_ob
[
"typeModeFlag"
].
toString
()
==
"20003"
)
{
payList
.
append
(
pay_ob
);
isUseVipPay
=
true
;
int
pay_amount
=
pay_ob
[
"amount"
].
toInt
();
orderAmount
+=
pay_amount
;
paidAmount
+=
pay_amount
;
}
}
transData
[
ServerProps
(
PosProps
.
OrderAmount
)]
=
orderAmount
;
transData
[
ServerProps
(
PosProps
.
PaidAmount
)]
=
paidAmount
;
foreach
(
auto
p
,
getPosJsonValue
(
PosProps
.
Pay_ids
).
toArray
())
{
QJsonObject
pay
;
...
...
@@ -71,6 +90,9 @@ void TaskFinal::packageServerReq()
payList
.
append
(
pay
);
}
transData
[
"payList"
]
=
payList
;
serverReqJsonObj
[
"data"
]
=
transData
;
}
...
...
task/taskpay.cpp
View file @
3193ea90
...
...
@@ -4,6 +4,7 @@
#include "fmp_logger_i.h"
#include "fmp_vip_settings.h"
#include "fmnetwork.h"
#include "fmbackup.h"
#include <QJsonDocument>
#include <QJsonObject>
#include <QCryptographicHash>
...
...
@@ -196,6 +197,13 @@ void TaskPay::packagePOSRsp()
}
posRspJsonObj
[
PosProps
.
Paid_total_amount
]
=
totalPaid
;
posRspJsonObj
[
PosProps
.
Pay_ids
]
=
pay_ids
;
if
(
getServerJsonValue
(
PosProps
.
StatusCode
)
==
FM_API_SUCCESS
)
{
QJsonDocument
json
(
serverRspJsonObj
);
QByteArray
orderContent
=
json
.
toJson
(
QJsonDocument
::
Compact
);
FMBackup
::
instance
()
->
insertNewOrder
(
getServerJsonValue
(
PosProps
.
Fm_id
).
toString
(),
orderContent
);
}
}
void
TaskPay
::
onPay
()
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment