Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
T
takeout_sbk
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
yunpeng.song
takeout_sbk
Commits
3bd036b1
Commit
3bd036b1
authored
Aug 03, 2018
by
wuyang.zou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix bug: 修复众多BUG
parent
b3cb2ebb
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
252 additions
and
334 deletions
+252
-334
fmTakeout/Control/flowControl.cpp
+27
-47
fmTakeout/Control/flowControl.h
+7
-0
fmTakeout/DTools/dataManger.cpp
+1
-1
fmTakeout/DTools/printSumBillPosDB.cpp
+33
-62
fmTakeout/DTools/simProcOrderDB.cpp
+166
-222
fmTakeout/DTools/simProcOrderDB.h
+8
-1
fmTakeout/main.cpp
+1
-0
fmTakeout/mainForm.h
+9
-1
No files found.
fmTakeout/Control/flowControl.cpp
View file @
3bd036b1
...
...
@@ -52,17 +52,16 @@ FlowControl::FlowControl()
connect
(
this
,
&
FlowControl
::
doPullOrder
,
this
,
&
FlowControl
::
_GetReadyForPullOrder
);
connect
(
this
,
&
FlowControl
::
doConfirmOrder
,
this
,
&
FlowControl
::
_ConfirmOrder
,
Qt
::
BlockingQueuedConnection
);
connect
(
this
,
&
FlowControl
::
doRefundOrder
,
this
,
&
FlowControl
::
_RefundOrder
,
Qt
::
BlockingQueuedConnection
);
connect
(
this
,
&
FlowControl
::
doLogin
,
this
,
&
FlowControl
::
onGetNewStoreInfo
,
Qt
::
BlockingQueuedConnection
);
/***打开Sqlite数据库并登陆外卖插件***/
SimProcOrderDB
::
getInstance
();
SimProcOrderDB
::
getInstance
().
initSimProcOrderDB
();
/***打开SqlServer POS打印汇总信息本地数据库***/
PrintSumBillPosDB
::
getInstance
();
if
(
!
PrintSumBillPosDB
::
getInstance
().
initPrintSumBillPosDB
()
){
emit
showAlert
(
AlertForm
::
MSGERROR
,
QString
::
fromLocal8Bit
(
"尝试打开POS本地数据库失败"
));
}
/*** 启动Http服务:用来响应Simphony_Script获取订单的请求***/
loaclHttpServer
=
new
LoaclHttpServer
();
loaclHttpServer
->
run
();
...
...
@@ -215,9 +214,10 @@ void FlowControl::_ClickToNotifySimPullOrder()
{
m_notifySimPullTimer
->
start
(
1000
*
10
);
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---FM外卖插件通知 Simphony 获取订单数据--->>>>]"
);
emit
doHideMainShowFloatFrom
();
_ClickOMSAssignArea
();
}
else
{
m_notifySimPullTimer
->
start
(
1000
*
5
0
);
m_notifySimPullTimer
->
start
(
1000
*
2
0
);
}
}
...
...
@@ -304,6 +304,7 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
QLOG_INFO
()
<<
QString
(
"[<<<<---FmTakeout _OrderAnalysis:NewOrder m_simValidOrdersList.num:%1 --->>>>]"
)
<<
m_simValidOrdersList
.
count
();
QLOG_INFO
()
<<
QString
(
"[<<<<---FmTakeout _OrderAnalysis:NewOrder m_simValidOrdersList:%1 --->>>>]"
)
<<
m_simValidOrdersList
;
QLOG_INFO
()
<<
QString
(
"[<<<<---FmTakeout _OrderAnalysis:NewOrder _ClickOMSAssignArea --->>>>]"
);
emit
doHideMainShowFloatFrom
();
_ClickOMSAssignArea
();
}
break
;
...
...
@@ -322,6 +323,7 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
QLOG_INFO
()
<<
QString
(
"[<<<<---FmTakeout _OrderAnalysis:OrderConfirmed m_simValidOrdersList.num:%1 --->>>>]"
)
<<
m_simValidOrdersList
.
count
();
QLOG_INFO
()
<<
QString
(
"[<<<<---FmTakeout _OrderAnalysis:OrderConfirmed m_simValidOrdersList:%1 --->>>>]"
)
<<
m_simValidOrdersList
;
QLOG_INFO
()
<<
QString
(
"[<<<<---FmTakeout _OrderAnalysis:OrderConfirmed _ClickOMSAssignArea --->>>>]"
);
emit
doHideMainShowFloatFrom
();
_ClickOMSAssignArea
();
}
break
;
...
...
@@ -336,7 +338,6 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
break
;
case
OrderObject
:
:
Refunded
:
{
/*退单目前本佳那边不区分 OrderObject::Refunded=6 && OrderObject::Cancled =6*/
/***case:同意退单、退单、取消订单: 此退单还没push到POS[POS没有确认退单或没有返回确认退单的小票号]***/
//m_OrderEntryMutex.lock(); // 扩大锁的范围;
//内存会出现BUG:现在改用数据库中标记来判断;
//if(!orderObject->isCancle)
bool
bIsRefundOrder
=
SimProcOrderDB
::
getInstance
().
isRefundOrder
(
orderObject
->
id
);
...
...
@@ -367,13 +368,13 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
QLOG_INFO
()
<<
QString
(
"[<<<<---FmTakeout _OrderAnalysis:Cancled m_simValidOrdersList.num:%1 --->>>>]"
)
<<
m_simValidOrdersList
.
count
();
QLOG_INFO
()
<<
QString
(
"[<<<<---FmTakeout _OrderAnalysis:Cancled m_simValidOrdersList:%1 --->>>>]"
)
<<
m_simValidOrdersList
;
QLOG_INFO
()
<<
QString
(
"[<<<<---FmTakeout _OrderAnalysis:Cancled _ClickOMSAssignArea --->>>>]"
);
//emit doHideMainShowFloatFrom();
//_ClickOMSAssignArea();
}
/***case:校验此订单push到POS后的小票号是否空:[POS已模拟点单但未返回小票号]***/
//else{未处理}
}
}
//m_OrderEntryMutex.unlock(); //扩大解锁范围; //退单的先不处理;
break
;
}
default
:
...
...
@@ -443,8 +444,8 @@ bool FlowControl::_Login()
emit
showAlert
(
AlertForm
::
MSGERROR
,
QString
::
fromLocal8Bit
(
"登录失败![网络错误]"
));
}
else
{
if
(
JSON_STATUSCODE_OK
!=
recvJson
[
JSON_STATUSCODE
].
toInt
())
//
if(JSON_STATUSCODE_OK != recvJson[JSON_LOGINCODE].toInt())
//
if(JSON_STATUSCODE_OK != recvJson[JSON_STATUSCODE].toInt())
if
(
JSON_STATUSCODE_OK
!=
recvJson
[
JSON_LOGINCODE
].
toInt
())
{
result
=
false
;
emit
showAlert
(
AlertForm
::
MSGERROR
,
QString
::
fromLocal8Bit
(
"登录失败![%1]"
).
arg
(
recvJson
[
JSON_MESSAGE
].
toString
()));
...
...
@@ -492,7 +493,7 @@ void FlowControl::_PullOrderData()
m_orderPullList
.
removeOne
(
info
);
delete
info
;
}
else
{
QLOG_INFO
()
<<
"[<<<<----FlowControl::_PullOrderData _PullOrderList
successful
failed---->>>>>]"
;
QLOG_INFO
()
<<
"[<<<<----FlowControl::_PullOrderData _PullOrderList failed---->>>>>]"
;
m_orderPullList
.
removeOne
(
info
);
m_orderPullList
.
append
(
info
);
}
...
...
@@ -667,7 +668,6 @@ bool FlowControl::_SendHeart()
emit
setNetStatus
(
QString
::
fromLocal8Bit
(
"<font color='#ff0000'>网络不稳定,正在重试</font>"
));
}
else
{
/*
QLOG_INFO
()
<<
QString
(
"[<<<<---Send Heart Finish: code:%1--->>>>]"
).
arg
(
recvJson
[
JSON_LOGINCODE
].
toInt
());
if
(
JSON_STATUSCODE_OK
!=
recvJson
[
JSON_LOGINCODE
].
toInt
())
{
...
...
@@ -675,8 +675,7 @@ bool FlowControl::_SendHeart()
//emit showAlert(AlertForm::MSGERROR, QString::fromLocal8Bit("发送心跳失败![%1]").arg(recvJson[JSON_MESSAGE].toString()));
emit
setNetStatus
(
QString
::
fromLocal8Bit
(
"<font color='#ff0000'>网络不稳定,正在重试</font>"
));
}
*/
emit
setNetStatus
(
QString
::
fromLocal8Bit
(
"<font color='#f5f5f5'>正常</font>"
));
//emit setNetStatus(QString::fromLocal8Bit("<font color='#f5f5f5'>正常</font>"));
}
return
result
;
}
...
...
@@ -739,6 +738,7 @@ bool FlowControl::_ConfirmOrder(const QString &orderId)
QLOG_INFO
()
<<
QString
(
"[<<<<---FmTakeout _ConfirmOrder: m_simValidOrdersList.num:%1 --->>>>]"
)
<<
m_simValidOrdersList
.
count
();
QLOG_INFO
()
<<
QString
(
"[<<<<---FmTakeout _ConfirmOrder: m_simValidOrdersList:%1 --->>>>]"
)
<<
m_simValidOrdersList
;
QLOG_INFO
()
<<
QString
(
"[<<<<---FmTakeout _ConfirmOrder: _ClickOMSAssignArea --->>>>]"
);
emit
doHideMainShowFloatFrom
();
_ClickOMSAssignArea
();
}
}
...
...
@@ -805,6 +805,7 @@ bool FlowControl::_RefuseOrder(const QString &orderId, int refuseCode,const QStr
QLOG_INFO
()
<<
QString
(
"[<<<<---FmTakeout _RefuseOrder: m_simValidOrdersList.num:%1 --->>>>]"
)
<<
m_simValidOrdersList
.
count
();
QLOG_INFO
()
<<
QString
(
"[<<<<---FmTakeout _RefuseOrder: m_simValidOrdersList:%1 --->>>>]"
)
<<
m_simValidOrdersList
;
QLOG_INFO
()
<<
QString
(
"[<<<<---FmTakeout _RefuseOrder: _ClickOMSAssignArea --->>>>]"
);
emit
doHideMainShowFloatFrom
();
_ClickOMSAssignArea
();
}
}
...
...
@@ -962,9 +963,8 @@ bool FlowControl::_RefundOrder(const QString &orderId,int reasonCode,const QStri
m_procOrderSocket
->
SetUrl
(
QUrl
(
ConfigManger
::
GetInstance
().
GetOrderServerUrl
()
+
ConfigManger
::
GetInstance
().
GetInterfaceName
(
INI_INTERFACE_REFUND
)));
}
// 如果退款原因:其他,使用下面接口
else
{
m_procOrderSocket
->
SetUrl
(
QUrl
(
ConfigManger
::
GetInstance
().
GetOrderServerUrl
()
+
ConfigManger
::
GetInstance
().
GetInterfaceName
(
INI_INTERFACE_CANCLE
)));
else
{
m_procOrderSocket
->
SetUrl
(
QUrl
(
ConfigManger
::
GetInstance
().
GetOrderServerUrl
()
+
ConfigManger
::
GetInstance
().
GetInterfaceName
(
INI_INTERFACE_CANCLE
)));
}
result
=
m_procOrderSocket
->
PostRequest
(
sendJson
,
recvJson
,
error
);
QLOG_INFO
()
<<
QString
(
"[<<<<---Refund Order Finish--->>>>][result:%1][msg:%2][recvData:%3]"
)
...
...
@@ -993,28 +993,7 @@ bool FlowControl::_RefundOrder(const QString &orderId,int reasonCode,const QStri
//退货订单,将此订单添加到simphony 模拟点单列表中;
QLOG_INFO
()
<<
QString
(
"[<<<<---FmTakeout _RefundOrder: orderObject->id:%1 , orderObject->orderStatus:%2 --->>>>]"
).
arg
(
orderObject
->
id
).
arg
(
orderObject
->
orderStatus
);
QLOG_INFO
()
<<
QString
(
"[<<<<---FmTakeout _RefundOrder: orderObject->id:%1 , orderObject->isCancle:%2 --->>>>]"
).
arg
(
orderObject
->
id
).
arg
(
orderObject
->
isCancle
);
if
(
OrderObject
::
Refunded
==
orderObject
->
orderStatus
){
/*
if( !SimProcOrderDB::getInstance().isRefundOrder(orderObject->id) ) //发现BUG:存在两种case:①订单还没有录退单到POS;就已经将内存中订单的退单标识置True了,所以必须根据数据库中的数据来判断;
{
// 判断Simphony 队列中的订单是否已经存在:不存在(Simphony已经点单完成后会移除)则添加; 如果存在(说明此订单还没有模拟点单),则需要直接向现存在Sim有效队列中的记录移除;
m_OrderEntryMutex.lock();
if(!m_simValidOrdersList.contains(orderObject->id))
{
m_simValidOrdersList.insert(0,orderObject->id);
}else{
if(!PrintSumBillPosDB::getInstance().isOrderSumBillExist(orderObject->id)){
m_simValidOrdersList.removeOne(orderObject->id);
}
}
orderObject->isCancle=true;
orderObject->pushOrderType==0;
m_OrderEntryMutex.unlock();
QLOG_INFO() << QString("[<<<<---FmTakeout _RefundOrder: m_simValidOrdersList.num:%1 --->>>>]")<< m_simValidOrdersList.count();
QLOG_INFO() << QString("[<<<<---FmTakeout _RefundOrder: m_simValidOrdersList:%1 --->>>>]")<< m_simValidOrdersList;
QLOG_INFO() << QString("[<<<<---FmTakeout _RefundOrder: _ClickOMSAssignArea --->>>>]");
_ClickOMSAssignArea();
}*/
if
(
OrderObject
::
Refunded
==
orderObject
->
orderStatus
)
{
//能退单成功就肯定能断言,此订单是没有录过退货的
// 判断Simphony 队列中的订单是否已经存在:不存在(Simphony已经点单完成后会移除)则添加; 如果存在(说明此订单还拟点单),则需要直接向现存在Sim有效队列中的记录移除;没有模
m_OrderEntryMutex
.
lock
();
...
...
@@ -1026,14 +1005,13 @@ bool FlowControl::_RefundOrder(const QString &orderId,int reasonCode,const QStri
orderObject
->
pushOrderType
=
0
;
orderObject
->
pushOrderTimes
=
0
;
}
else
{
//如果已经存在队列中,就是POS还没有录入销售订单成功;
//if(!PrintSumBillPosDB::getInstance().isOrderSumBillExist(orderObject->id)){
m_simValidOrdersList
.
removeOne
(
orderObject
->
id
);
//}
m_simValidOrdersList
.
removeOne
(
orderObject
->
id
);
}
QLOG_INFO
()
<<
QString
(
"[<<<<---FmTakeout _RefundOrder: m_simValidOrdersList.num:%1 --->>>>]"
)
<<
m_simValidOrdersList
.
count
();
QLOG_INFO
()
<<
QString
(
"[<<<<---FmTakeout _RefundOrder: m_simValidOrdersList:%1 --->>>>]"
)
<<
m_simValidOrdersList
;
QLOG_INFO
()
<<
QString
(
"[<<<<---FmTakeout _RefundOrder: _ClickOMSAssignArea --->>>>]"
);
m_OrderEntryMutex
.
unlock
();
emit
doHideMainShowFloatFrom
();
_ClickOMSAssignArea
();
//必须执行,否则退货,点击取消后,就不会再提醒了;
}
...
...
@@ -1516,9 +1494,6 @@ bool FlowControl::_ResponseSimphony05Request(const QJsonObject &content, QJsonOb
/***** 解析 同步更新POS本地数据库是否成功:retSyncOrderPrintInfo:1->成功********/
if
(
retSyncOrderPrintInfo
){
// 还没汇报完小票号,因此还不能从 m_simValidOrdersList 列表中移除;
//m_OrderEntryMutex.lock();
//m_simValidOrdersList.removeOne(orderId);
//m_OrderEntryMutex.unlock();
QJsonObject
rObj
,
cObj
;
rObj
.
insert
(
"fm_cmd"
,
""
);
rObj
.
insert
(
"fm_ver"
,
"1.0"
);
...
...
@@ -1616,6 +1591,7 @@ bool FlowControl::_ResponseSimReqFristOrderData(QJsonObject &data, QString &erro
}
else
{
error
.
clear
();
QString
orderId
=
m_simValidOrdersList
.
first
();
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---Simphony_Script请求[ACTION:01:]FMOMS已登录,且有订单待拉取:orderId:%1--->>>>>]"
).
arg
(
orderId
);
/*
int pullNum=MAXPUTTIMES;
foreach (auto value, m_simValidOrdersList) {
...
...
@@ -1635,11 +1611,14 @@ bool FlowControl::_ResponseSimReqFristOrderData(QJsonObject &data, QString &erro
}
//防止POS出现多次录单:退货单(销售单应该不会);
if
(
SimProcOrderDB
::
getInstance
().
isPushedOrder
(
orderObject
->
id
)
&&
SimProcOrderDB
::
getInstance
().
isRefundOrder
(
orderObject
->
id
)){
bool
bIsPushOrder
=
SimProcOrderDB
::
getInstance
().
isPushedOrder
(
orderObject
->
id
);
bool
bIsRefundOrder
=
SimProcOrderDB
::
getInstance
().
isRefundOrder
(
orderObject
->
id
);
if
(
bIsPushOrder
&&
bIsRefundOrder
)
{
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---Simphony_Script请求[ACTION:01:] bIsPushOrder: ;bIsRefundOrder: ;--->>>>>]"
)
<<
bIsPushOrder
<<
bIsRefundOrder
;
error
=
QString
::
fromLocal8Bit
(
"该订单已经被POS系统录入完成"
);
m_OrderEntryMutex
.
lock
();
m_simValidOrdersList
.
removeOne
(
orderObject
->
id
);
m_OrderEntryMutex
.
lock
();
m_OrderEntryMutex
.
un
lock
();
return
true
;
}
...
...
@@ -1672,10 +1651,10 @@ bool FlowControl::_ResponseSimReqFristOrderData(QJsonObject &data, QString &erro
tempSbkAppPayValue
=
orderObject
->
payfmId
;
}
else
if
(
1
==
orderObject
->
payWay
){
tempSbkAppPayType
=
78
;
tempSbkAppPayValue
=
orderObject
->
thirdPartyBatch
;
tempSbkAppPayValue
=
(
orderObject
->
thirdPartyBatch
).
length
()
?
orderObject
->
thirdPartyBatch
:
QString
(
'0'
)
;
}
else
if
(
2
==
orderObject
->
payWay
){
tempSbkAppPayType
=
77
;
tempSbkAppPayValue
=
orderObject
->
thirdPartyBatch
;
tempSbkAppPayValue
=
(
orderObject
->
thirdPartyBatch
).
length
()
?
orderObject
->
thirdPartyBatch
:
QString
(
'0'
)
;
}
else
{
tempSbkAppPayType
=
-
1
;
tempSbkAppPayValue
=
"-1"
;
...
...
@@ -1701,9 +1680,10 @@ bool FlowControl::_ResponseSimReqFristOrderData(QJsonObject &data, QString &erro
cObj
.
insert
(
"orderPayType"
,
tempOrderPayType
);
cObj
.
insert
(
"sbkAppPayType"
,
tempSbkAppPayType
);
cObj
.
insert
(
"sbkAppPayValue"
,
tempSbkAppPayValue
);
cObj
.
insert
(
"orderTransFlowNo"
,
orderObject
->
thirdPartyBatch
);
//第三方交易流水号
cObj
.
insert
(
"orderTransFlowNo"
,
(
orderObject
->
thirdPartyBatch
).
length
()
?
orderObject
->
thirdPartyBatch
:
QString
(
'0'
)
);
//第三方交易流水号
cObj
.
insert
(
"packFree"
,
orderObject
->
packageFee
);
cObj
.
insert
(
"deliveryFree"
,
orderObject
->
deliveryPrice
);
cObj
.
insert
(
"waybillId"
,
(
orderObject
->
waybillId
).
length
()
?
orderObject
->
waybillId
:
QString
(
'0'
)
);
cObj
.
insert
(
"pos_sale_id"
,
orderObject
->
posCheckNo
);
cObj
.
insert
(
"order_status"
,
orderObject
->
orderStatus
);
//订单的状态
cObj
.
insert
(
"pay_ebcode"
,
orderObject
->
channel
);
...
...
fmTakeout/Control/flowControl.h
View file @
3bd036b1
...
...
@@ -120,6 +120,13 @@ signals:
* 返回:NULL
* */
void
showAlert
(
AlertForm
::
Type
type
,
const
QString
&
msg
);
/* 功能:隐藏主界面显示悬浮窗口
* 参数:[1]窗口类型[2]显示信息
* 返回:NULL
* */
void
doHideMainShowFloatFrom
();
/* 功能:设置主界面门店信息
* 参数:[1]门店号
* 返回:NULL
...
...
fmTakeout/DTools/dataManger.cpp
View file @
3bd036b1
...
...
@@ -157,7 +157,7 @@ QJsonObject DataManger::GetRefundOrderData(int reasonCode,const QString &reason,
// 其他退单原因;
else
{
rObj
.
insert
(
JSON_ORDERID
,
orderId
);
rObj
.
insert
(
"canceledCause"
,
reason
);
rObj
.
insert
(
"canceledCause"
,
reason
Code
);
rObj
.
insert
(
JSON_POSIPADDRESS
,
QString
(
"http://"
)
+
m_posIpAddress
);
//rObj.insert(JSON_CODE, reasonCode);
//rObj.insert(JSON_CHANNEL,channel);
...
...
fmTakeout/DTools/printSumBillPosDB.cpp
View file @
3bd036b1
...
...
@@ -7,31 +7,28 @@
PrintSumBillPosDB
::
PrintSumBillPosDB
()
{
QLOG_INFO
()
<<
"[<<<<---
Try Open Pos SqlServer
DataBase--->>>>]"
;
QLOG_INFO
()
<<
"[<<<<---
PrintSumBillPosDB:: Structure POS Print CheckNo INFO
DataBase--->>>>]"
;
}
bool
PrintSumBillPosDB
::
initPrintSumBillPosDB
(){
//QString dbPath = QString(ConfigManage::Instance().databasePath());
m_sqlDb
=
QSqlDatabase
::
addDatabase
(
"QODBC"
);
//数据库驱动类型为SQL Server
m_sqlDb
=
QSqlDatabase
::
addDatabase
(
"QODBC"
,
"PrintSumBillPosDB"
);
//数据库驱动类型为SQL Server
if
(
m_sqlDb
.
isValid
()){
QLOG_INFO
()
<<
"[<<<<---SqlServer ODBC driver is valid--->>>>]"
;
QString
dsn
=
"DRIVER={SQL SERVER};SERVER=127.0.0.1
\\
sqlexpress;DATABASE=MMXBenefits"
;
//数据源名称 QT_FmConnectPosDb
QString
dsn
=
"DRIVER={SQL SERVER};SERVER=127.0.0.1
\\
sqlexpress;DATABASE=MMXBenefits"
;
m_sqlDb
.
setDatabaseName
(
dsn
);
//设置数据源名称
m_sqlDb
.
setUserName
(
"sa"
);
//登录用户
m_sqlDb
.
setPassword
(
"SIM29@123"
);
if
(
!
m_sqlDb
.
open
())
//打开数据库
{
if
(
!
m_sqlDb
.
open
())
{
//打开数据库
QLOG_ERROR
()
<<
"[<<<<---SqlServer Open Database error:--->>>>]"
<<
m_sqlDb
.
lastError
().
text
();
}
else
{
}
else
{
QLOG_INFO
()
<<
"[<<<<---SqlServer Test Open database success!:--->>>>]"
;
m_sqlDb
.
close
();
return
true
;
}
}
else
{
}
else
{
QLOG_ERROR
()
<<
"[<<<<---SqlServer ODBC driver no valid--->>>>]"
;
}
return
false
;
...
...
@@ -44,9 +41,8 @@ PrintSumBillPosDB &PrintSumBillPosDB::getInstance()
}
bool
PrintSumBillPosDB
::
insertOrderSumBill
(
OrderObject
*
orderObj
,
const
QString
&
posCheckNo
){
m_mutex
.
lock
();
if
(
!
m_sqlDb
.
open
())
{
QMutexLocker
mutex
(
&
m_mutex
);
if
(
!
m_sqlDb
.
open
())
{
QLOG_ERROR
()
<<
"[<<<<---SqlServer Database:Open Failed--->>>>]"
<<
m_sqlDb
.
lastError
().
text
();
return
false
;
}
...
...
@@ -58,7 +54,7 @@ bool PrintSumBillPosDB::insertOrderSumBill(OrderObject* orderObj,const QString&
"VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
);
query
.
addBindValue
(
posCheckNo
.
toInt
());
// --小票号
query
.
addBindValue
(
orderObj
->
lastName
);
// --顾客-姓
query
.
addBindValue
(
orderObj
->
c
ustomer
Name
);
// --顾客-全名
query
.
addBindValue
(
orderObj
->
c
onsignee
Name
);
// --顾客-全名
QString
temp_customerSex
;
if
(
!
orderObj
->
customerSex
.
compare
(
QString
::
fromLocal8Bit
(
FM_MALE
))
||
!
orderObj
->
customerSex
.
compare
(
QString
(
"Male"
))
){
temp_customerSex
=
"Male"
;
...
...
@@ -95,20 +91,17 @@ bool PrintSumBillPosDB::insertOrderSumBill(OrderObject* orderObj,const QString&
.
arg
(
orderObj
->
consigneeName
).
arg
(
orderObj
->
addressDetail
).
arg
(
orderObj
->
consigneePhone
).
arg
(
orderObj
->
id
)
.
arg
(
orderObj
->
waybillId
).
arg
(
orderObj
->
pickupCode
.
length
()
==
0
?
0
:
orderObj
->
pickupCode
.
toInt
()).
arg
(
orderObj
->
riderPhone
).
arg
(
orderObj
->
riderName
);
result
=
false
;
}
else
{
}
else
{
QLOG_INFO
()
<<
QString
(
"[<<<<---SqlServer Database:Insert OrderId %1 Into customer_info Success--->>>>]"
).
arg
(
orderObj
->
id
);
result
=
true
;
}
m_sqlDb
.
close
();
m_mutex
.
unlock
();
return
result
;
}
bool
PrintSumBillPosDB
::
updateOrderSumBillStatus
(
OrderObject
*
orderObj
,
const
int
&
OrderStatus
){
m_mutex
.
lock
();
if
(
!
m_sqlDb
.
open
())
{
QMutexLocker
mutex
(
&
m_mutex
);
if
(
!
m_sqlDb
.
open
())
{
QLOG_ERROR
()
<<
"[<<<<---SqlServer Database:Open Failed--->>>>]"
<<
m_sqlDb
.
lastError
().
text
();
return
false
;
}
...
...
@@ -116,92 +109,75 @@ bool PrintSumBillPosDB::updateOrderSumBillStatus(OrderObject* orderObj, const in
QSqlQuery
query
(
m_sqlDb
);
query
.
prepare
(
QString
(
"update tb_msr_customer_info set OrderStatus=%1 where order_id='%2'"
)
.
arg
(
QString
::
number
(
OrderStatus
)).
arg
(
orderObj
->
id
));
if
(
!
query
.
exec
())
{
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
"[<<<<---SqlServer Database:update Order Status Failed--->>>>]"
;
result
=
false
;
}
else
{
}
else
{
QLOG_INFO
()
<<
QString
(
"[<<<<---SqlServer Database:Update OrderId %1 OrderStatus success--->>>>]"
).
arg
(
orderObj
->
id
);
result
=
true
;
}
m_sqlDb
.
close
();
m_mutex
.
unlock
();
return
result
;
}
bool
PrintSumBillPosDB
::
isOrderAndCknoSumBillExist
(
const
QString
&
orderId
,
const
QString
&
posCheckNo
){
m_mutex
.
lock
();
if
(
!
m_sqlDb
.
open
())
{
QMutexLocker
mutex
(
&
m_mutex
);
if
(
!
m_sqlDb
.
open
())
{
QLOG_ERROR
()
<<
"[<<<<---SqlServer Database:Open Failed--->>>>]"
<<
m_sqlDb
.
lastError
().
text
();
return
false
;
}
bool
result
;
QSqlQuery
query
(
m_sqlDb
);
query
.
prepare
(
QString
(
"select order_id from tb_msr_customer_info where order_id='%1' and chk_num='%2'"
).
arg
(
orderId
).
arg
(
posCheckNo
));
if
(
!
query
.
exec
())
{
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
"[<<<<---SqlServer Database:isOrderAndCknoSumBillExit--->>>>]"
<<
orderId
<<
query
.
lastError
().
text
();
result
=
false
;
}
if
(
query
.
first
())
{
if
(
query
.
first
())
{
result
=
true
;
}
else
{
}
else
{
result
=
false
;
}
m_sqlDb
.
close
();
m_mutex
.
unlock
();
return
result
;
}
bool
PrintSumBillPosDB
::
isOrderSumBillExist
(
const
QString
&
orderId
){
m_mutex
.
lock
();
if
(
!
m_sqlDb
.
open
())
{
QMutexLocker
mutex
(
&
m_mutex
);
if
(
!
m_sqlDb
.
open
())
{
QLOG_ERROR
()
<<
"[<<<<---SqlServer Database:Open Failed--->>>>]"
<<
m_sqlDb
.
lastError
().
text
();
return
false
;
}
bool
result
;
QSqlQuery
query
(
m_sqlDb
);
query
.
prepare
(
QString
(
"select order_id from tb_msr_customer_info where order_id='%1'"
).
arg
(
orderId
));
if
(
!
query
.
exec
())
{
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
"[<<<<---SqlServer Database:isOrderSumBillExit--->>>>]"
<<
orderId
<<
query
.
lastError
().
text
();
result
=
false
;
}
if
(
query
.
first
())
{
if
(
query
.
first
())
{
result
=
true
;
}
else
{
}
else
{
result
=
false
;
}
m_sqlDb
.
close
();
m_mutex
.
unlock
();
return
result
;
}
bool
PrintSumBillPosDB
::
queryValue
(
const
QString
&
orderId
,
const
QString
&
key
,
QString
&
error
,
QVariant
&
value
){
QMutexLocker
mutex
(
&
m_mutex
);
if
(
!
m_sqlDb
.
open
())
{
if
(
!
m_sqlDb
.
open
())
{
error
.
append
(
QString
(
"SqlServer Database:Open Failed"
).
append
(
m_sqlDb
.
lastError
().
text
()));
return
false
;
}
QSqlQuery
query
(
m_sqlDb
);
query
.
prepare
(
QString
(
"select %1 from tb_msr_customer_info where order_id='%1'"
).
arg
(
key
).
arg
(
orderId
));
if
(
!
query
.
exec
())
{
if
(
!
query
.
exec
())
{
error
.
append
(
query
.
lastError
().
text
());
m_sqlDb
.
close
();
return
false
;
}
else
{
while
(
query
.
next
())
{
}
else
{
while
(
query
.
next
())
{
value
=
query
.
value
(
0
);
}
}
...
...
@@ -211,25 +187,20 @@ bool PrintSumBillPosDB::queryValue(const QString& orderId, const QString& key, Q
bool
PrintSumBillPosDB
::
queryIsNull
(
const
QString
&
orderId
,
const
QString
&
key
,
QString
&
error
,
bool
&
result
){
QMutexLocker
mutex
(
&
m_mutex
);
if
(
!
m_sqlDb
.
open
())
{
if
(
!
m_sqlDb
.
open
())
{
error
.
append
(
QString
(
"SqlServer Database:Open Failed"
).
append
(
m_sqlDb
.
lastError
().
text
()));
return
false
;
}
QSqlQuery
query
(
m_sqlDb
);
query
.
prepare
(
QString
(
"select %1 from tb_msr_customer_info where order_id=%2 and %3 is null"
).
arg
(
orderId
,
orderId
,
key
));
if
(
!
query
.
exec
())
{
if
(
!
query
.
exec
())
{
error
.
append
(
query
.
lastError
().
text
());
m_sqlDb
.
close
();
return
false
;
}
else
{
if
(
query
.
first
())
{
}
else
{
if
(
query
.
first
())
{
result
=
true
;
}
else
{
}
else
{
result
=
false
;
}
}
...
...
fmTakeout/DTools/simProcOrderDB.cpp
View file @
3bd036b1
...
...
@@ -4,39 +4,46 @@
SimProcOrderDB
::
SimProcOrderDB
()
{
m_mutex
.
lock
();
QString
dbpath
=
QCoreApplication
::
applicationDirPath
()
+
QString
(
"/SimProcOrderDB.db"
);
db
=
QSqlDatabase
::
addDatabase
(
"QSQLITE"
,
"SimProcOrderDB_connection"
);
db
.
setDatabaseName
(
dbpath
);
if
(
!
db
.
open
())
{
QString
error
=
db
.
lastError
().
text
();
QLOG_ERROR
()
<<
QString
(
"[<<<<---Sqlite Database:Open Filed--->>>>][%1]"
).
arg
(
error
);
}
else
{
QLOG_INFO
()
<<
QString
(
"[<<<<---Sqlite Database:Open Successed--->>>>]"
);
}
QSqlQuery
query
(
db
);
int
isTableExist
=
0
;
query
.
exec
(
QString
(
"select count(*) from sqlite_master where type='table' and name='%1'"
).
arg
(
"SimProcOrderTable"
));
while
(
query
.
next
())
{
isTableExist
=
query
.
value
(
0
).
toInt
();
}
if
(
!
isTableExist
){
QLOG_INFO
()
<<
"[<<<<---Sqlite Database:Table SimProcOrderTable Does Not Exist--->>>>]"
;
query
.
prepare
(
QString
(
"create table SimProcOrderTable (orderId varchar(20) primary key,isPushed int(1),isRefund int(1),isReport int(1),isBackReport int(1),posCheckNo varchar(20),creatTime varchar(20))"
));
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
QString
::
number
(
query
.
lastError
().
type
())
<<
"[<<<<---Sqlite Database:Create Table SimProcOrderTable Faild--->>>>]"
;
QLOG_INFO
()
<<
"[<<<<---SimProcOrderDB:: Structure Order Push and Refund DataBase--->>>>]"
;
}
bool
SimProcOrderDB
::
initSimProcOrderDB
(){
m_sqlDb
=
QSqlDatabase
::
addDatabase
(
"QODBC"
,
"SimProcOrderDB"
);
//数据库驱动类型为SQL server;
if
(
m_sqlDb
.
isValid
()){
QLOG_INFO
()
<<
"[<<<<---SimProcOrderDB::SqlServer ODBC driver is valid--->>>>]"
;
QString
dsn
=
"DRIVER={SQL SERVER};SERVER=127.0.0.1
\\
sqlexpress;DATABASE=MMXBenefits;Trusted_Connection=yes"
;
m_sqlDb
.
setDatabaseName
(
dsn
);
//设置数据源名称
m_sqlDb
.
setUserName
(
"sa"
);
//登录用户
m_sqlDb
.
setPassword
(
"SIM29@123"
);
if
(
!
m_sqlDb
.
open
())
{
//打开数据库
QLOG_ERROR
()
<<
"[<<<<---SimProcOrderDB::SqlServer Open Database error:--->>>>]"
<<
m_sqlDb
.
lastError
().
text
();
}
else
{
QLOG_INFO
()
<<
"[<<<<---SimProcOrderDB::SqlServer Test Open database success!:--->>>>]"
;
QSqlQuery
query
(
m_sqlDb
);
QString
selectsql
=
"select * from sys.tables where name='SimProcOrderTable'"
;
if
(
!
query
.
exec
(
selectsql
))
{
QLOG_ERROR
()
<<
"[<<<<---SimProcOrderDB::SqlServer Database check table SimProcOrderTable command failed--->>>>]"
<<
query
.
lastError
().
text
();
}
if
(
query
.
next
())
{
QLOG_INFO
()
<<
"[<<<<---SimProcOrderDB::Table SimProcOrderTable Has Exist--->>>>]"
;
}
else
{
QLOG_INFO
()
<<
"[<<<<---SimProcOrderDB::Table SimProcOrderTable Does Not Exist--->>>>]"
;
query
.
prepare
(
QString
(
"create table SimProcOrderTable ( orderId varchar(20) primary key,isPushed int,isRefund int,isReport int,isBackReport int,posCheckNo varchar(20),creatTime varchar(20) )"
));
if
(
!
query
.
exec
()){
QLOG_ERROR
()
<<
"[<<<<---Create Table SimProcOrderTable Faild--->>>>]"
<<
query
.
lastError
().
text
()
<<
QString
::
number
(
query
.
lastError
().
type
());
return
false
;
}
}
m_sqlDb
.
close
();
return
true
;
}
}
else
{
QLOG_
INFO
()
<<
"[<<<<---Sqlite Database:Table SimProcOrderTable Has Exist--->>>>]
"
;
}
else
{
QLOG_
ERROR
()
<<
"[<<<<---SimProcOrderDB::SqlServer ODBC driver no valid
"
;
}
db
.
close
();
m_mutex
.
unlock
();
return
false
;
}
SimProcOrderDB
&
SimProcOrderDB
::
getInstance
()
{
static
SimProcOrderDB
simProcOrderDB
;
...
...
@@ -45,333 +52,281 @@ SimProcOrderDB &SimProcOrderDB::getInstance()
bool
SimProcOrderDB
::
insertSimProcOrder
(
const
QString
&
orderId
,
const
QString
&
creatTime
)
{
m_mutex
.
lock
();
if
(
!
db
.
open
())
{
QLOG_ERROR
()
<<
"[<<<<---Sqlite Database:Open Failed--->>>>]"
<<
db
.
lastError
().
text
();
QMutexLocker
mutex
(
&
m_mutex
);
if
(
!
m_sqlDb
.
open
())
{
QLOG_ERROR
()
<<
"[<<<<---SimProcOrderDB::insertSimProcOrder Open Failed--->>>>]"
<<
m_sqlDb
.
lastError
().
text
();
return
false
;
}
bool
result
;
QSqlQuery
query
(
d
b
);
QSqlQuery
query
(
m_sqlD
b
);
query
.
prepare
(
QString
(
"insert into SimProcOrderTable values('%1',0,0,0,0,NUll,'%6')"
).
arg
(
orderId
).
arg
(
creatTime
));
qDebug
()
<<
creatTime
;
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
QString
::
number
(
query
.
lastError
().
type
())
<<
"[<<<<---Sqlite Database:insertSimProcOrder Error--->>>>]"
;
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
"[<<<<---SimProcOrderDB:insertSimProcOrder Error--->>>>]"
<<
query
.
lastError
().
text
()
<<
QString
::
number
(
query
.
lastError
().
type
());
result
=
false
;
}
else
{
QLOG_INFO
()
<<
QString
(
"[<<<<---Sqlite Database:Insert OrderId %1 Into SimProcOrderTable Success--->>>>]"
).
arg
(
orderId
);
}
else
{
QLOG_INFO
()
<<
QString
(
"[<<<<---SimProcOrderDB:: Insert OrderId %1 Into SimProcOrderTable Success--->>>>]"
).
arg
(
orderId
);
result
=
true
;
}
db
.
close
();
m_mutex
.
unlock
();
m_sqlDb
.
close
();
return
result
;
}
bool
SimProcOrderDB
::
updatePushOrderStatus
(
const
QString
&
orderId
,
const
int
&
pushOrderStatus
)
{
m_mutex
.
lock
();
if
(
!
db
.
open
())
{
QLOG_ERROR
()
<<
"[<<<<---Sqlite Database:Open Failed--->>>>]"
<<
db
.
lastError
().
text
();
QMutexLocker
mutex
(
&
m_mutex
);
if
(
!
m_sqlDb
.
open
())
{
QLOG_ERROR
()
<<
"[<<<<---SimProcOrderDB::updatePushOrderStatus Open Failed--->>>>]"
<<
m_sqlDb
.
lastError
().
text
();
return
false
;
}
bool
result
;
QSqlQuery
query
(
d
b
);
QSqlQuery
query
(
m_sqlD
b
);
query
.
prepare
(
QString
(
"update SimProcOrderTable set isPushed=%1 where orderId='%2'"
)
.
arg
(
QString
::
number
(
pushOrderStatus
)).
arg
(
orderId
));
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
"[<<<<---Sqlite Database:updatePushOrderStatus Failed--->>>>]"
;
QLOG_ERROR
()
<<
"[<<<<---SimProcOrderDB::updatePushOrderStatus Failed--->>>>]"
<<
query
.
lastError
().
text
()
;
result
=
false
;
}
else
{
QLOG_INFO
()
<<
QString
(
"[<<<<---Sqlite Database:Update OrderId %1 pushOrderStatus success;pushOrderStatus:%2--->>>>]"
).
arg
(
orderId
).
arg
(
pushOrderStatus
);
}
else
{
QLOG_INFO
()
<<
QString
(
"[<<<<---SimProcOrderDB::Update OrderId %1 pushOrderStatus success;pushOrderStatus:%2--->>>>]"
).
arg
(
orderId
).
arg
(
pushOrderStatus
);
result
=
true
;
}
db
.
close
();
m_mutex
.
unlock
();
m_sqlDb
.
close
();
return
result
;
}
bool
SimProcOrderDB
::
isPushedOrder
(
const
QString
&
orderId
)
{
m_mutex
.
lock
();
if
(
!
db
.
open
())
{
QLOG_ERROR
()
<<
"[<<<<---Sqlite Database:Open Failed--->>>>]"
<<
db
.
lastError
().
text
();
QMutexLocker
mutex
(
&
m_mutex
);
if
(
!
m_sqlDb
.
open
())
{
QLOG_ERROR
()
<<
"[<<<<---SimProcOrderDB::isPushedOrder Open Failed--->>>>]"
<<
m_sqlDb
.
lastError
().
text
();
return
false
;
}
bool
result
;
QSqlQuery
query
(
d
b
);
QSqlQuery
query
(
m_sqlD
b
);
query
.
prepare
(
QString
(
"select isPushed from SimProcOrderTable where orderId='%1'"
).
arg
(
orderId
));
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
orderId
<<
"[<<<<---Sqlite Database:isPushedOrder Failed--->>>>]"
;
if
(
!
query
.
exec
()){
QLOG_ERROR
()
<<
"[<<<<---SimProcOrderDB::isPushedOrder Failed--->>>>]"
<<
query
.
lastError
().
text
()
<<
orderId
;
result
=
false
;
}
while
(
query
.
next
())
{
while
(
query
.
next
())
{
result
=
query
.
value
(
0
).
toBool
();
QLOG_INFO
()
<<
QString
(
"[<<<<---S
qlite Database
:isPushedOrder orderId:%1 isPushedOrder:%2 --->>>>]"
).
arg
(
orderId
).
arg
(
result
);
QLOG_INFO
()
<<
QString
(
"[<<<<---S
imProcOrderDB:
:isPushedOrder orderId:%1 isPushedOrder:%2 --->>>>]"
).
arg
(
orderId
).
arg
(
result
);
}
db
.
close
();
m_mutex
.
unlock
();
m_sqlDb
.
close
();
return
result
;
}
bool
SimProcOrderDB
::
updateRefundOrderStatus
(
const
QString
&
orderId
,
const
int
&
refundOrderStatus
)
{
m_mutex
.
lock
();
if
(
!
db
.
open
())
{
QLOG_ERROR
()
<<
"[<<<<---Sqlite Database:Open Failed--->>>>]"
<<
db
.
lastError
().
text
();
QMutexLocker
mutex
(
&
m_mutex
);
if
(
!
m_sqlDb
.
open
())
{
QLOG_ERROR
()
<<
"[<<<<---SimProcOrderDB::updateRefundOrderStatus Open Failed--->>>>]"
<<
m_sqlDb
.
lastError
().
text
();
return
false
;
}
bool
result
;
QSqlQuery
query
(
d
b
);
QSqlQuery
query
(
m_sqlD
b
);
query
.
prepare
(
QString
(
"update SimProcOrderTable set isRefund=%1 where orderId='%2'"
)
.
arg
(
QString
::
number
(
refundOrderStatus
)).
arg
(
orderId
));
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
"[<<<<---Sqlite Database:updateRefundOrderStatus Failed--->>>>]"
;
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
"[<<<<---SimProcOrderDB::updateRefundOrderStatus Failed--->>>>]"
<<
query
.
lastError
().
text
();
result
=
false
;
}
else
{
QLOG_INFO
()
<<
QString
(
"[<<<<---Sqlite Database:Update OrderId %1 refundOrderStatus Successd; refundOrderStatus:%2 --->>>>]"
).
arg
(
orderId
).
arg
(
refundOrderStatus
);
}
else
{
QLOG_INFO
()
<<
QString
(
"[<<<<---SimProcOrderDB::Update OrderId %1 refundOrderStatus Successd; refundOrderStatus:%2 --->>>>]"
).
arg
(
orderId
).
arg
(
refundOrderStatus
);
result
=
true
;
}
db
.
close
();
m_mutex
.
unlock
();
m_sqlDb
.
close
();
return
result
;
}
bool
SimProcOrderDB
::
isRefundOrder
(
const
QString
&
orderId
)
{
m_mutex
.
lock
();
if
(
!
db
.
open
())
{
QLOG_ERROR
()
<<
"[<<<<---Sqlite Database:Open Failed--->>>>]"
<<
db
.
lastError
().
text
();
QMutexLocker
mutex
(
&
m_mutex
);
if
(
!
m_sqlDb
.
open
()){
QLOG_ERROR
()
<<
"[<<<<---SimProcOrderDB::isRefundOrder Open Failed--->>>>]"
<<
m_sqlDb
.
lastError
().
text
();
return
false
;
}
bool
result
;
QSqlQuery
query
(
d
b
);
QSqlQuery
query
(
m_sqlD
b
);
query
.
prepare
(
QString
(
"select isRefund from SimProcOrderTable where orderId='%1'"
).
arg
(
orderId
));
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
orderId
<<
"[<<<<---Sqlite Database:isRefundOrder Failed--->>>>]"
;
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
orderId
<<
"[<<<<---SimProcOrderDB::isRefundOrder Failed--->>>>]"
<<
query
.
lastError
().
text
();
result
=
false
;
}
while
(
query
.
next
())
{
while
(
query
.
next
())
{
result
=
query
.
value
(
0
).
toBool
();
QLOG_INFO
()
<<
QString
(
"[<<<<---SimProcOrderDB::isRefundOrder: orderId:%1, isRefundOrder:%2--->>>>]"
).
arg
(
orderId
).
arg
(
result
);
}
db
.
close
();
m_mutex
.
unlock
();
m_sqlDb
.
close
();
return
result
;
}
bool
SimProcOrderDB
::
updateReportOrderStatus
(
const
QString
&
orderId
,
const
int
&
reportOrderStatus
)
{
m_mutex
.
lock
();
if
(
!
db
.
open
())
{
QLOG_ERROR
()
<<
"[<<<<---Sqlite Database:Open Failed--->>>>]"
<<
db
.
lastError
().
text
();
QMutexLocker
mutex
(
&
m_mutex
);
if
(
!
m_sqlDb
.
open
())
{
QLOG_ERROR
()
<<
"[<<<<---SimProcOrderDB::updateReportOrderStatus Open Failed--->>>>]"
<<
m_sqlDb
.
lastError
().
text
();
return
false
;
}
bool
result
;
QSqlQuery
query
(
d
b
);
QSqlQuery
query
(
m_sqlD
b
);
query
.
prepare
(
QString
(
"update SimProcOrderTable set isReport=%1 where orderId='%2'"
)
.
arg
(
QString
::
number
(
reportOrderStatus
)).
arg
(
orderId
));
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
"[<<<<---Sqlite Database:updateReportOrderStatus Failed--->>>>]"
;
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
"[<<<<---SimProcOrderDB::updateReportOrderStatus Failed--->>>>]"
<<
query
.
lastError
().
text
();
result
=
false
;
}
else
{
QLOG_INFO
()
<<
QString
(
"[<<<<---Sqlite Database:Update OrderId %1 reportOrderStatus Success--->>>>]"
).
arg
(
orderId
);
}
else
{
QLOG_INFO
()
<<
QString
(
"[<<<<---SimProcOrderDB::Update OrderId %1 reportOrderStatus Success--->>>>]"
).
arg
(
orderId
);
result
=
true
;
}
db
.
close
();
m_mutex
.
unlock
();
m_sqlDb
.
close
();
return
result
;
}
bool
SimProcOrderDB
::
isReportOrder
(
const
QString
&
orderId
)
{
m_mutex
.
lock
();
if
(
!
db
.
open
())
{
QLOG_ERROR
()
<<
"[<<<<---Sqlite Database:Open Failed--->>>>]"
<<
db
.
lastError
().
text
();
QMutexLocker
mutex
(
&
m_mutex
);
if
(
!
m_sqlDb
.
open
()){
QLOG_ERROR
()
<<
"[<<<<---SimProcOrderDB::isReportOrder Open Failed--->>>>]"
<<
m_sqlDb
.
lastError
().
text
();
return
false
;
}
bool
result
;
QSqlQuery
query
(
d
b
);
QSqlQuery
query
(
m_sqlD
b
);
query
.
prepare
(
QString
(
"select isReport from SimProcOrderTable where orderId='%1'"
).
arg
(
orderId
));
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
orderId
<<
"[<<<<---Sqlite Database:isReportOrder Failed--->>>>]"
;
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
orderId
<<
"[<<<<---SimProcOrderDB::isReportOrder Failed--->>>>]"
;
result
=
false
;
}
while
(
query
.
next
())
{
while
(
query
.
next
())
{
result
=
query
.
value
(
0
).
toBool
();
}
db
.
close
();
m_mutex
.
unlock
();
m_sqlDb
.
close
();
return
result
;
}
bool
SimProcOrderDB
::
updateBackReportOrderStatus
(
const
QString
&
orderId
,
const
int
&
backReportOrderStatus
)
{
m_mutex
.
lock
();
if
(
!
db
.
open
())
{
QLOG_ERROR
()
<<
"[<<<<---Sqlite Database:Open Failed--->>>>]"
<<
db
.
lastError
().
text
();
QMutexLocker
mutex
(
&
m_mutex
);
if
(
!
m_sqlDb
.
open
())
{
QLOG_ERROR
()
<<
"[<<<<---SimProcOrderDB::updateBackReportOrderStatus Open Failed--->>>>]"
<<
m_sqlDb
.
lastError
().
text
();
return
false
;
}
bool
result
;
QSqlQuery
query
(
d
b
);
QSqlQuery
query
(
m_sqlD
b
);
query
.
prepare
(
QString
(
"update SimProcOrderTable set isBackReport=%1 where orderId='%2'"
)
.
arg
(
QString
::
number
(
backReportOrderStatus
)).
arg
(
orderId
));
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
"[<<<<---Sqlite Database:updateBackReportOrderStatus Failed--->>>>]"
;
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
"[<<<<---SimProcOrderDB::updateBackReportOrderStatus Failed--->>>>]"
;
result
=
false
;
}
else
{
QLOG_INFO
()
<<
QString
(
"[<<<<---Sqlite Database:Update OrderId %1 backReportOrderStatus Success--->>>>]"
).
arg
(
orderId
);
}
else
{
QLOG_INFO
()
<<
QString
(
"[<<<<---SimProcOrderDB::Update OrderId %1 backReportOrderStatus Success--->>>>]"
).
arg
(
orderId
);
result
=
true
;
}
db
.
close
();
m_mutex
.
unlock
();
m_sqlDb
.
close
();
return
result
;
}
bool
SimProcOrderDB
::
isBackReportOrder
(
const
QString
&
orderId
)
{
m_mutex
.
lock
();
if
(
!
db
.
open
())
{
QLOG_ERROR
()
<<
"[<<<<---Sqlite Database:Open Failed--->>>>]"
<<
db
.
lastError
().
text
();
QMutexLocker
mutex
(
&
m_mutex
);
if
(
!
m_sqlDb
.
open
())
{
QLOG_ERROR
()
<<
"[<<<<---SimProcOrderDB::isBackReportOrder Open Failed--->>>>]"
<<
m_sqlDb
.
lastError
().
text
();
return
false
;
}
bool
result
;
QSqlQuery
query
(
d
b
);
QSqlQuery
query
(
m_sqlD
b
);
query
.
prepare
(
QString
(
"select isBackReport from SimProcOrderTable where orderId='%1'"
).
arg
(
orderId
));
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
orderId
<<
"[<<<<---Sqlite Database:isBackReportOrder Failed--->>>>]"
;
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
orderId
<<
"[<<<<---SimProcOrderDB::isBackReportOrder Failed--->>>>]"
;
result
=
false
;
}
while
(
query
.
next
())
{
while
(
query
.
next
())
{
result
=
query
.
value
(
0
).
toBool
();
}
db
.
close
();
m_mutex
.
unlock
();
m_sqlDb
.
close
();
return
result
;
}
bool
SimProcOrderDB
::
isOrderExist
(
const
QString
&
orderId
)
{
m_mutex
.
lock
();
if
(
!
db
.
open
())
{
QLOG_ERROR
()
<<
"[<<<<---Sqlite Database:Open Failed--->>>>]"
<<
db
.
lastError
().
text
();
QMutexLocker
mutex
(
&
m_mutex
);
if
(
!
m_sqlDb
.
open
())
{
QLOG_ERROR
()
<<
"[<<<<---SimProcOrderDB::isOrderExist Open Failed--->>>>]"
<<
m_sqlDb
.
lastError
().
text
();
return
false
;
}
bool
result
;
QSqlQuery
query
(
d
b
);
QSqlQuery
query
(
m_sqlD
b
);
query
.
prepare
(
QString
(
"select orderId from SimProcOrderTable where orderId='%1'"
).
arg
(
orderId
));
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
orderId
<<
"[<<<<---Sqlite Database:isOrderExit Failed--->>>>]"
;
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
orderId
<<
"[<<<<---SimProcOrderDB::isOrderExit Failed--->>>>]"
;
result
=
false
;
}
if
(
query
.
first
())
{
if
(
query
.
first
())
{
result
=
true
;
}
else
{
}
else
{
result
=
false
;
}
db
.
close
();
m_mutex
.
unlock
();
m_sqlDb
.
close
();
return
result
;
}
bool
SimProcOrderDB
::
updatePosOrderCheckNo
(
const
QString
&
orderId
,
const
QString
&
posOrderCheckNo
)
{
m_mutex
.
lock
();
if
(
!
db
.
open
())
{
QLOG_ERROR
()
<<
"[<<<<---Sqlite Database:Open Failed--->>>>]"
<<
db
.
lastError
().
text
();
QMutexLocker
mutex
(
&
m_mutex
);
if
(
!
m_sqlDb
.
open
())
{
QLOG_ERROR
()
<<
"[<<<<---SimProcOrderDB::updatePosOrderCheckNo Open Failed--->>>>]"
<<
m_sqlDb
.
lastError
().
text
();
return
false
;
}
bool
result
;
QSqlQuery
query
(
d
b
);
QSqlQuery
query
(
m_sqlD
b
);
query
.
prepare
(
QString
(
"update SimProcOrderTable set posCheckNo='%1' where orderId='%2'"
)
.
arg
(
posOrderCheckNo
).
arg
(
orderId
));
if
(
!
query
.
exec
())
{
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
__FUNCTION__
;
result
=
false
;
}
else
{
QLOG_INFO
()
<<
QString
(
"[<<<<---Sqlite Database:Action4: Report CheckNo : Update OrderId:%1 posCheckNo:%2 Success--->>>>]"
).
arg
(
orderId
,
posOrderCheckNo
);
}
else
{
QLOG_INFO
()
<<
QString
(
"[<<<<---SimProcOrderDB::Action4: Report CheckNo : Update OrderId:%1 posCheckNo:%2 Success--->>>>]"
).
arg
(
orderId
,
posOrderCheckNo
);
result
=
true
;
}
db
.
close
();
m_mutex
.
unlock
();
m_sqlDb
.
close
();
return
result
;
}
bool
SimProcOrderDB
::
getPosOrderCheckNo
(
const
QString
&
orderId
,
QString
&
posOrderCheckNo
)
{
m_mutex
.
lock
(
);
QMutexLocker
mutex
(
&
m_mutex
);
bool
result
=
false
;
if
(
!
db
.
open
())
{
QLOG_ERROR
()
<<
"[<<<<---Sqlite Database:Open Failed--->>>>]"
<<
db
.
lastError
().
text
();
if
(
!
m_sqlDb
.
open
())
{
QLOG_ERROR
()
<<
"[<<<<---SimProcOrderDB::getPosOrderCheckNo Open Failed--->>>>]"
<<
m_sqlDb
.
lastError
().
text
();
return
result
;
}
QSqlQuery
query
(
d
b
);
QSqlQuery
query
(
m_sqlD
b
);
query
.
prepare
(
QString
(
"select posCheckNo from SimProcOrderTable where orderId='%1'"
).
arg
(
orderId
));
if
(
!
query
.
exec
())
{
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
orderId
<<
__FUNCTION__
;
return
result
;
}
while
(
query
.
next
())
{
while
(
query
.
next
())
{
posOrderCheckNo
=
query
.
value
(
0
).
toString
();
result
=
true
;
}
db
.
close
();
m_mutex
.
unlock
();
m_sqlDb
.
close
();
return
result
;
}
bool
SimProcOrderDB
::
deleteOrderRecord
(
QString
creatTime
)
{
m_mutex
.
lock
();
if
(
!
db
.
open
())
{
QLOG_ERROR
()
<<
"[<<<<---Sqlite Database:Open Failed--->>>>]"
<<
db
.
lastError
().
text
();
QMutexLocker
mutex
(
&
m_mutex
);
if
(
!
m_sqlDb
.
open
())
{
QLOG_ERROR
()
<<
"[<<<<---SimProcOrderDB::deleteOrderRecord Open Failed--->>>>]"
<<
m_sqlDb
.
lastError
().
text
();
return
false
;
}
bool
result
=
true
;
QSqlQuery
query
(
d
b
);
QSqlQuery
query
(
m_sqlD
b
);
query
.
prepare
(
QString
(
"delete from SimProcOrderTable where creatTime<'%1'"
).
arg
(
creatTime
));
if
(
!
query
.
exec
())
{
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
__FUNCTION__
;
result
=
false
;
}
db
.
close
();
m_mutex
.
unlock
();
m_sqlDb
.
close
();
return
result
;
}
...
...
@@ -379,79 +334,68 @@ bool SimProcOrderDB::deleteOrderRecord(QString creatTime)
bool
SimProcOrderDB
::
queryValue
(
const
QString
&
orderId
,
const
QString
&
key
,
QString
&
error
,
QVariant
&
value
)
{
QMutexLocker
mutex
(
&
m_mutex
);
if
(
!
db
.
open
())
{
error
.
append
(
QString
(
"Sqlite Database:Open Failed"
).
append
(
db
.
lastError
().
text
()));
if
(
!
m_sqlDb
.
open
())
{
error
.
append
(
QString
(
"SimProcOrderDB::queryValue :Open Failed"
).
append
(
m_sqlDb
.
lastError
().
text
()));
return
false
;
}
QSqlQuery
query
(
d
b
);
QSqlQuery
query
(
m_sqlD
b
);
query
.
prepare
(
QString
(
"select %1 from SimProcOrderTable where orderId='%1'"
).
arg
(
key
).
arg
(
orderId
));
if
(
!
query
.
exec
())
{
if
(
!
query
.
exec
())
{
error
.
append
(
query
.
lastError
().
text
());
d
b
.
close
();
m_sqlD
b
.
close
();
return
false
;
}
else
{
}
else
{
while
(
query
.
next
())
{
value
=
query
.
value
(
0
);
}
}
d
b
.
close
();
m_sqlD
b
.
close
();
return
true
;
}
bool
SimProcOrderDB
::
updatekey
(
const
QString
&
orderId
,
const
QString
&
key
,
const
int
value
,
QString
&
error
,
bool
&
result
)
{
QMutexLocker
mutex
(
&
m_mutex
);
if
(
!
db
.
open
())
{
error
.
append
(
QString
(
"Sqlite Database:Open Failed"
).
append
(
db
.
lastError
().
text
()));
if
(
!
m_sqlDb
.
open
())
{
error
.
append
(
QString
(
"SimProcOrderDB::updatekey :Open Failed"
).
append
(
m_sqlDb
.
lastError
().
text
()));
return
false
;
}
QSqlQuery
query
(
d
b
);
QSqlQuery
query
(
m_sqlD
b
);
query
.
prepare
(
QString
(
"update SimProcOrderTable set %1=%2 where orderId='%3'"
).
arg
(
key
)
.
arg
(
QString
::
number
(
value
)).
arg
(
orderId
));
if
(
!
query
.
exec
())
{
if
(
!
query
.
exec
())
{
error
.
append
(
query
.
lastError
().
text
());
d
b
.
close
();
m_sqlD
b
.
close
();
return
false
;
}
else
{
}
else
{
result
=
true
;
}
d
b
.
close
();
m_sqlD
b
.
close
();
return
true
;
}
bool
SimProcOrderDB
::
queryIsNull
(
const
QString
&
orderId
,
const
QString
&
key
,
QString
&
error
,
bool
&
result
)
{
QMutexLocker
mutex
(
&
m_mutex
);
if
(
!
db
.
open
())
{
error
.
append
(
QString
(
"Sqlite Database:Open Failed"
).
append
(
db
.
lastError
().
text
()));
if
(
!
m_sqlDb
.
open
())
{
error
.
append
(
QString
(
"SimProcOrderDB::queryIsNull Open Failed"
).
append
(
m_sqlDb
.
lastError
().
text
()));
return
false
;
}
QSqlQuery
query
(
d
b
);
QSqlQuery
query
(
m_sqlD
b
);
query
.
prepare
(
QString
(
"select %1 from SimProcOrderTable where orderId=%2 and %3 is null"
).
arg
(
orderId
,
orderId
,
key
));
if
(
!
query
.
exec
())
{
if
(
!
query
.
exec
())
{
error
.
append
(
query
.
lastError
().
text
());
d
b
.
close
();
m_sqlD
b
.
close
();
return
false
;
}
else
{
if
(
query
.
first
())
{
}
else
{
if
(
query
.
first
())
{
result
=
true
;
}
else
{
}
else
{
result
=
false
;
}
}
d
b
.
close
();
m_sqlD
b
.
close
();
return
true
;
}
fmTakeout/DTools/simProcOrderDB.h
View file @
3bd036b1
...
...
@@ -16,6 +16,13 @@ public:
// explicit SimProcOrderDB(QObject *parent = 0);
static
SimProcOrderDB
&
getInstance
();
/**
*功能:初始化数据库
*参数:[1]订单号 [2]创建时间
*/
bool
initSimProcOrderDB
();
/**
*功能:插入一条Simphony返回小票号的订单新数据
*参数:[1]订单号 [2]创建时间
...
...
@@ -108,7 +115,7 @@ private:
SimProcOrderDB
();
SimProcOrderDB
(
SimProcOrderDB
const
&
);
SimProcOrderDB
&
operator
=
(
SimProcOrderDB
const
&
);
QSqlDatabase
d
b
;
QSqlDatabase
m_sqlD
b
;
signals
:
...
...
fmTakeout/main.cpp
View file @
3bd036b1
...
...
@@ -88,6 +88,7 @@ int main(int argc, char *argv[])
MainForm
w
;
QObject
::
connect
(
&
w
,
&
MainForm
::
showFloatForm
,
&
f
,
&
FloatForm
::
onShow
);
QObject
::
connect
(
&
FlowControl
::
GetInstance
(),
&
FlowControl
::
startRemind
,
&
f
,
&
FloatForm
::
onStartRemind
);
QObject
::
connect
(
&
FlowControl
::
GetInstance
(),
&
FlowControl
::
doHideMainShowFloatFrom
,
&
w
,
&
MainForm
::
on_mainBtnHide_clicked
);
QObject
::
connect
(
&
w
,
&
MainForm
::
startRemind
,
&
f
,
&
FloatForm
::
onStartRemind
);
QObject
::
connect
(
&
w
,
&
MainForm
::
stopRemind
,
&
f
,
&
FloatForm
::
onStopRemind
);
QObject
::
connect
(
&
f
,
&
FloatForm
::
showMainForm
,
&
w
,
&
MainForm
::
show
);
...
...
fmTakeout/mainForm.h
View file @
3bd036b1
...
...
@@ -165,11 +165,13 @@ private slots:
* 返回:NULL
* */
void
on_mainBtnSet_clicked
();
/* 功能:隐藏按钮对应动作
* 参数:NULL
* 返回:NULL
* */
void
on_mainBtnHide_clicked
();
//void on_mainBtnHide_clicked();
/* 功能:上翻按钮对应动作
* 参数:NULL
* 返回:NULL
...
...
@@ -214,6 +216,12 @@ private slots:
void
on_mainBtnDayReport_clicked
();
public
slots
:
/* 功能:隐藏按钮对应动作
* 参数:NULL
* 返回:NULL
* */
void
on_mainBtnHide_clicked
();
/* 功能:隐藏通知窗口
* 参数:NULL
* 返回:NULL
...
...
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