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
d1e25051
Commit
d1e25051
authored
Jun 28, 2018
by
wuyang.zou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix bug: 更新代码备注,便于梳理业务逻辑
parent
aa14bae1
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
118 additions
and
95 deletions
+118
-95
fmTakeout/Control/flowControl.cpp
+78
-54
fmTakeout/Control/flowControl.h
+2
-2
fmTakeout/DTools/simProcOrderDB.cpp
+37
-38
fmTakeout/Model/orderObject.h
+1
-1
No files found.
fmTakeout/Control/flowControl.cpp
View file @
d1e25051
...
...
@@ -52,16 +52,18 @@ FlowControl::FlowControl()
connect
(
this
,
&
FlowControl
::
doRefundOrder
,
this
,
&
FlowControl
::
_RefundOrder
,
Qt
::
BlockingQueuedConnection
);
connect
(
this
,
&
FlowControl
::
doLogin
,
this
,
&
FlowControl
::
onGetNewStoreInfo
,
Qt
::
BlockingQueuedConnection
);
m_tcpServerManage
=
new
JQHttpServer
::
TcpServerManage
(
10
);
/*** 启动Http服务:用来响应Simphony_Script获取订单的请求***/
m_tcpServerManage
=
new
JQHttpServer
::
TcpServerManage
(
10
);
m_tcpServerManage
->
setHttpAcceptedCallback
(
[
this
](
const
QPointer
<
JQHttpServer
::
Session
>
&
session
)
{
qDebug
()
<<
"reply"
<<
QThread
::
currentThreadId
();
// 回调发生在新的线程内,不是主线程。
/***解析FM外卖插件HTTP服务与Simphony_Script请求的会话连接是否断开: 会话连接未断开***/
if
(
!
session
.
isNull
())
{
QString
recvData
=
QString
::
fromUtf8
(
session
->
requestRawData
());
QLOG_INFO
()
<<
QString
(
"[HTTP recv data]%1
"
).
arg
(
recvData
);
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---Receive Simphony_Script Request: %1--->>>>]
"
).
arg
(
recvData
);
QJsonParseError
jsonError
;
QJsonObject
recvObject
;
QJsonObject
replyObject
;
...
...
@@ -70,49 +72,61 @@ FlowControl::FlowControl()
QJsonObject
data
;
//回复的内容json
int
iscontinue
=
0
;
recvObject
=
QJsonDocument
::
fromJson
(
recvData
.
toUtf8
(),
&
jsonError
).
object
();
/***解析Simphony_Script Request json格式: 解析失败***/
if
(
jsonError
.
error
!=
QJsonParseError
::
NoError
)
{
status
=
0
;
msg
=
jsonError
.
errorString
();
}
else
{
}
/***解析Simphony_Script Request json格式: 解析成功***/
else
{
/***?????***/
if
(
_GetReplyJson
(
recvObject
,
data
,
msg
))
{
status
=
100
;
}
else
{
}
/***?????***/
else
{
status
=
0
;
}
/***?????***/
if
(
!
m_ordersEntryList
.
isEmpty
())
{
iscontinue
=
1
;
}
}
replyObject
=
_PackHttpReplyJson
(
status
,
msg
,
data
,
iscontinue
);
QLOG_INFO
()
<<
"[Http reply data]"
<<
replyObject
;
/***将FM外卖插件中的合法有效数据返回给上面Simphony_Script发过来的请求***/
replyObject
=
_PackHttpReplyJson
(
status
,
msg
,
data
,
iscontinue
);
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---FM外卖插件回应Simphony_Script拉单请求后的返回结果:--->>>>]"
)
<<
replyObject
;
/***??????????????????***/
session
->
replyJsonObject
(
replyObject
);
}
else
{
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"
链接已断开
"
);
/***解析FM外卖插件HTTP服务与Simphony_Script请求的会话连接是否断开: 会话连接断开***/
else
{
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"
[<<<<---FM外卖插件Http服务与Simphony_Script请求会话断开连接:--->>>>]
"
);
}
}
);
/***FM外卖插件绑定启动HTTP服务的端口***/
int
port
=
ConfigManger
::
GetInstance
().
GetHttpServerPort
();
QLOG_INFO
()
<<
QString
(
"listen on port %1
"
).
arg
(
port
);
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---FM外卖插件Http服务监听端口:%1 :--->>>>]
"
).
arg
(
port
);
if
(
m_tcpServerManage
->
listen
(
QHostAddress
::
Any
,
port
))
{
QLOG_INFO
()
<<
QString
(
"bind succesful!"
);
}
else
{
QLOG_INFO
()
<<
QString
(
"bind failed!"
);
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---FM外卖插件Http服务 绑定端口成功:--->>>>]"
);
}
else
{
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---FM外卖插件Http服务 绑定端口失败:--->>>>]"
);
}
/***打开Sqlite数据库并登陆外卖插件***/
SimProcOrderDB
::
getInstance
();
_ClickOMSAssignArea
();
m_loginTimer
->
start
(
20
*
1000
);
}
QString
FlowControl
::
_GetIpAddress
()
{
/***????需要验证IP地址是通过配置文件还是直接通过机器获取????***/
QString
ipAddress
;
ipAddress
=
ConfigManger
::
GetInstance
().
GetIpAddress
();
QHostInfo
info
=
QHostInfo
::
fromName
(
QHostInfo
::
localHostName
());
...
...
@@ -129,8 +143,10 @@ QString FlowControl::_GetIpAddress()
return
ipAddress
+
QString
(
":"
)
+
QString
::
number
(
ConfigManger
::
GetInstance
().
GetHttpServerPort
());
}
void
FlowControl
::
_AddOrderPull
(
const
QString
&
orderId
,
const
QString
&
channel
,
const
int
&
pageNumber
,
const
int
&
pageSize
)
{
/***组装从FM外卖service端的拉单请求参数***/
PullOrderInfo
orderPull
;
orderPull
.
orderId
=
orderId
;
orderPull
.
channel
=
channel
;
...
...
@@ -141,7 +157,9 @@ void FlowControl::_AddOrderPull(const QString &orderId, const QString &channel,
void
FlowControl
::
_GetOrder
(
const
QString
&
orderId
,
const
QString
&
channel
)
{
/***组装从FM外卖service端的拉单请求参数***/
_AddOrderPull
(
orderId
,
channel
);
/***开始拉单***/
_PullOrder
();
}
...
...
@@ -151,14 +169,14 @@ void FlowControl::_ClickOMSAssignArea()
SetCursorPos
(
point
.
x
(),
point
.
y
());
mouse_event
(
MOUSEEVENTF_LEFTDOWN
,
0
,
0
,
0
,
0
);
mouse_event
(
MOUSEEVENTF_LEFTUP
,
0
,
0
,
0
,
0
);
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"
点击目标坐标x%1:,y:%2
"
).
arg
(
point
.
x
()).
arg
(
point
.
y
());
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"
[<<<<---触发按钮点击事件:Simphony获取订单请求->坐标(x%1:,y:%2):--->>>>]
"
).
arg
(
point
.
x
()).
arg
(
point
.
y
());
}
void
FlowControl
::
_ClickToLogin
()
{
if
(
!
m_bLoginResult
||!
m_ordersEntryList
.
isEmpty
())
{
QLOG_INFO
()
<<
"retry click after 20s"
;
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---触发按钮点击事件:FM外卖插件20s后再次尝试登陆--->>>>]"
)
;
_ClickOMSAssignArea
();
}
}
...
...
@@ -166,41 +184,41 @@ void FlowControl::_ClickToLogin()
void
FlowControl
::
_OrderAnalysis
(
const
QJsonObject
&
jsonObject
)
{
OrderObject
*
orderObject
=
NULL
;
orderObject
=
m_ordersMap
.
value
(
jsonObject
[
JSON_ID
].
toString
());
orderObject
=
m_simValidOrderMapQueue
.
value
(
jsonObject
[
JSON_ID
].
toString
());
/***<1>:待Simphony拉取的有效订单队列中不存在此订单:整合数据并插入到此订单队列中 ***/
if
(
orderObject
==
NULL
)
{
//新数据
orderObject
=
new
OrderObject
(
this
);
orderObject
->
FromJson
(
jsonObject
);
orderObject
->
isPu
t
=
false
;
orderObject
->
isPu
sh
=
false
;
orderObject
->
isCancle
=
false
;
m_
ordersMap
.
insert
(
orderObject
->
id
,
orderObject
);
QLOG_INFO
()
<<
QString
(
"
new order[%1:%2].
[data:]"
)
m_
simValidOrderMapQueue
.
insert
(
orderObject
->
id
,
orderObject
);
QLOG_INFO
()
<<
QString
(
"
[<<<<---Simphony Valid Order MapQueue:Insert New Order[%1:%2]--->>>>]
[data:]"
)
.
arg
(
orderObject
->
id
,
orderObject
->
getOrderStatusDec
())
<<
jsonObject
;
if
(
!
SimProcOrderDB
::
getInstance
().
isOrderExit
(
orderObject
->
id
))
{
SimProcOrderDB
::
getInstance
().
insertSimProcOrder
(
orderObject
->
id
,
QDate
::
currentDate
().
toString
(
"yyyy-MM-dd"
));
if
((
OrderObject
::
NewOrder
==
orderObject
->
orderStatus
||
OrderObject
::
Confirmed
==
orderObject
->
orderStatus
))
{
emit
startRemind
(
0
);
}
}
emit
changeOrderStatus
(
orderObject
);
}
else
}
/***<2>:待Simphony拉取的有效订单队列中存在此订单:更新订单队列中此订单的订单状态***/
else
{
//旧数据有更新
int
oldStatus
=
orderObject
->
orderStatus
;
orderObject
->
FromJson
(
jsonObject
);
QLOG_INFO
()
<<
QString
(
"
old order[%1:%3
].[data:%3]"
)
QLOG_INFO
()
<<
QString
(
"
[<<<<---Simphony Valid Order MapQueue:Update OldOrder Status[%1:%2]--->>>>
].[data:%3]"
)
.
arg
(
orderObject
->
id
,
orderObject
->
getOrderStatusDec
())
<<
jsonObject
;
if
(
oldStatus
!=
orderObject
->
orderStatus
)
{
emit
changeOrderStatus
(
orderObject
,
oldStatus
);
}
}
orderObject
->
updateTime
=
QDateTime
::
currentDateTime
().
toTime_t
();
if
(
OrderObject
::
RequestRefund
==
orderObject
->
orderStatus
)
{
...
...
@@ -208,7 +226,7 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
}
if
(
SimProcOrderDB
::
getInstance
().
isPushedOrder
(
orderObject
->
id
))
{
orderObject
->
isPu
t
=
true
;
orderObject
->
isPu
sh
=
true
;
}
if
(
SimProcOrderDB
::
getInstance
().
isRefundOrder
(
orderObject
->
id
))
{
...
...
@@ -227,7 +245,8 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
case
OrderObject
:
:
ToSend
:
case
OrderObject
:
:
Finished
:
case
OrderObject
:
:
RequestRefund
:
if
(
!
orderObject
->
isPut
)
/***case:新订单、确认订单、已配送订单、待配送订单、完成订单、请求退单: 订单还没push到POS[POS没有模拟点单或没有返回小票号]***/
if
(
!
orderObject
->
isPush
)
{
orderObject
->
putType
=
1
;
orderObject
->
putTimes
=
0
;
...
...
@@ -243,15 +262,19 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
case
OrderObject
:
:
AgreeRefund
:
case
OrderObject
:
:
Refunded
:
case
OrderObject
:
:
Cancled
:
/***case:同意退单、退单、取消订单: 此退单还没push到POS[POS没有确认退单或没有返回确认退单的小票号]***/
if
(
!
orderObject
->
isCancle
)
{
if
(
!
orderObject
->
isPut
)
/***case:校验此订单是否已经push到POS:订单还没push到POS[POS没有模拟点单或没有返回小票号]***/
if
(
!
orderObject
->
isPush
)
{
m_OrderEntryMutex
.
lock
();
m_ordersEntryList
.
removeOne
(
orderObject
->
id
);
m_OrderEntryMutex
.
unlock
();
}
/***case:校验此订单是否已经push到POS:订单已经push到POS***/
else
{
/***case:校验此订单push到POS后的小票号是否空:[POS已模拟点单且返回小票号]***/
if
(
!
posOrderCheckNo
.
isEmpty
())
{
orderObject
->
putType
=
0
;
...
...
@@ -264,6 +287,8 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
_ClickOMSAssignArea
();
m_OrderEntryMutex
.
unlock
();
}
/***case:校验此订单push到POS后的小票号是否空:[POS已模拟点单但未返回小票号]***/
//else{未处理}
}
}
break
;
...
...
@@ -274,7 +299,7 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
void
FlowControl
::
onGetNewStoreInfo
()
{
QLOG_INFO
()
<<
"
Openssl support
:"
<<
QSslSocket
::
supportsSsl
();
QLOG_INFO
()
<<
"
[<<<<---Get New Store Info:Openssl support--->>>>]
:"
<<
QSslSocket
::
supportsSsl
();
m_loginSocket
=
new
BillSocket
(
this
);
m_pullOrderSocket
=
new
BillSocket
(
this
);
m_procOrderSocket
=
new
BillSocket
(
this
);
...
...
@@ -290,7 +315,6 @@ void FlowControl::onGetNewStoreInfo()
bool
FlowControl
::
_GetStoreInfo
()
{
bool
result
=
true
;
emit
showAlert
(
AlertForm
::
LOADING
,
QString
::
fromLocal8Bit
(
"正在获取门店信息......"
));
QLOG_INFO
()
<<
QString
(
"[<<<<---Get StoreInfo--->>>>]"
);
QString
tmp
;
...
...
@@ -562,7 +586,7 @@ bool FlowControl::_ConfirmOrder(const QString &orderId)
if
(
1
==
status
)
{
int
orderStatus
=
data
[
JSON_ORDERSTATUS
].
toInt
();
OrderObject
*
orderObject
=
m_
ordersMap
.
value
(
orderId
);
OrderObject
*
orderObject
=
m_
simValidOrderMapQueue
.
value
(
orderId
);
int
oldOrderStatus
=
orderObject
->
orderStatus
;
orderObject
->
orderStatus
=
orderStatus
;
emit
changeOrderStatus
(
orderObject
,
oldOrderStatus
);
...
...
@@ -603,7 +627,7 @@ bool FlowControl::_RefuseOrder(const QString &orderId, int refuseCode,const QStr
{
emit
showAlert
(
AlertForm
::
SUCCESS
,
QString
::
fromLocal8Bit
(
"拒单成功!"
));
// 通知主界面移动订单
OrderObject
*
orderObject
=
m_
ordersMap
.
value
(
orderId
);
OrderObject
*
orderObject
=
m_
simValidOrderMapQueue
.
value
(
orderId
);
int
oldStatus
=
orderObject
->
orderStatus
;
orderObject
->
orderStatus
=
recvJson
[
JSON_STATUS
].
toInt
();
emit
changeOrderStatus
(
orderObject
,
oldStatus
);
...
...
@@ -616,7 +640,7 @@ bool FlowControl::_RefuseOrder(const QString &orderId, int refuseCode,const QStr
bool
FlowControl
::
_SendOrder
(
const
QString
&
orderId
)
{
//TODO
// if(m_
ordersMap.value(orderId)->riderName.isEmpty()&&m_ordersMap
.value(orderId)->delivery_type==1)
// if(m_
simValidOrderMapQueue.value(orderId)->riderName.isEmpty()&&m_simValidOrderMapQueue
.value(orderId)->delivery_type==1)
// {
// emit showAlert(AlertForm::MSGERROR,QString::fromLocal8Bit("配送员暂未接单,请等待"));
// return true;
...
...
@@ -647,7 +671,7 @@ bool FlowControl::_SendOrder(const QString& orderId)
emit
showAlert
(
AlertForm
::
SUCCESS
,
QString
::
fromLocal8Bit
(
"送出成功!"
));
// 通知主界面移动订单
OrderObject
*
orderObject
=
m_
ordersMap
.
value
(
orderId
);
OrderObject
*
orderObject
=
m_
simValidOrderMapQueue
.
value
(
orderId
);
int
oldStatus
=
orderObject
->
orderStatus
;
orderObject
->
orderStatus
=
recvJson
[
JSON_STATUS
].
toInt
();
// TODO 服务器端现还未开发
...
...
@@ -687,7 +711,7 @@ bool FlowControl::_CompleteOrder(const QString& orderId)
emit
showAlert
(
AlertForm
::
SUCCESS
,
QString
::
fromLocal8Bit
(
"完成成功!"
));
// 通知主界面移动订单
OrderObject
*
orderObject
=
m_
ordersMap
.
value
(
orderId
);
OrderObject
*
orderObject
=
m_
simValidOrderMapQueue
.
value
(
orderId
);
int
oldStatus
=
orderObject
->
orderStatus
;
orderObject
->
orderStatus
=
recvJson
[
JSON_STATUS
].
toInt
();
emit
changeOrderStatus
(
orderObject
,
oldStatus
);
...
...
@@ -726,7 +750,7 @@ bool FlowControl::_RefuseRefund(const QString& orderId)
emit
showAlert
(
AlertForm
::
SUCCESS
,
QString
::
fromLocal8Bit
(
"拒绝退单成功!"
));
// 通知主界面移动订单
OrderObject
*
orderObject
=
m_
ordersMap
.
value
(
orderId
);
OrderObject
*
orderObject
=
m_
simValidOrderMapQueue
.
value
(
orderId
);
int
oldStatus
=
orderObject
->
orderStatus
;
orderObject
->
orderStatus
=
recvJson
[
JSON_STATUS
].
toInt
();
// TODO 服务器端现还未开发
...
...
@@ -745,7 +769,7 @@ bool FlowControl::_RefundOrder(const QString &orderId,int reasonCode,const QStri
QJsonObject
sendJson
;
QJsonObject
recvJson
;
sendJson
=
DataManger
::
GetInstance
().
GetRefundOrderData
(
reasonCode
,
reason
,
orderId
,
m_
ordersMap
.
value
(
orderId
)
->
channel
);
sendJson
=
DataManger
::
GetInstance
().
GetRefundOrderData
(
reasonCode
,
reason
,
orderId
,
m_
simValidOrderMapQueue
.
value
(
orderId
)
->
channel
);
emit
showAlert
(
AlertForm
::
LOADING
,
QString
::
fromLocal8Bit
(
"正在通信......"
));
...
...
@@ -779,7 +803,7 @@ bool FlowControl::_RefundOrder(const QString &orderId,int reasonCode,const QStri
if
(
1
==
status
)
{
int
orderStatus
=
data
[
JSON_ORDERSTATUS
].
toInt
();
OrderObject
*
orderObject
=
m_
ordersMap
.
value
(
orderId
);
OrderObject
*
orderObject
=
m_
simValidOrderMapQueue
.
value
(
orderId
);
int
oldOrderStatus
=
orderObject
->
orderStatus
;
orderObject
->
orderStatus
=
orderStatus
;
emit
changeOrderStatus
(
orderObject
,
oldOrderStatus
);
...
...
@@ -1033,17 +1057,17 @@ void FlowControl::_ClearOrder()
QDateTime
currentDateTime
=
QDateTime
::
currentDateTime
();
OrderObject
*
order
=
NULL
;
m_OrderEntryMutex
.
lock
();
foreach
(
order
,
m_
ordersMap
.
values
())
{
foreach
(
order
,
m_
simValidOrderMapQueue
.
values
())
{
QDateTime
createDateTime
=
QDateTime
::
fromTime_t
(
order
->
updateTime
);
qint64
days
=
createDateTime
.
daysTo
(
currentDateTime
);
if
(
days
>=
2
)
{
QLOG_INFO
()
<<
QString
(
"[<<<<---ClearOrder: orderID:%1--->>>>]"
).
arg
(
order
->
id
);
emit
clearorder
(
order
->
id
,
order
->
orderStatus
);
m_
ordersMap
.
value
(
order
->
id
)
->
deleteLater
();
m_
simValidOrderMapQueue
.
value
(
order
->
id
)
->
deleteLater
();
m_ordersEntryList
.
removeOne
(
order
->
id
);
delete
m_
ordersMap
.
take
(
order
->
id
);
delete
m_
simValidOrderMapQueue
.
take
(
order
->
id
);
}
}
m_OrderEntryMutex
.
unlock
();
...
...
@@ -1124,7 +1148,7 @@ bool FlowControl::_Get02ReplyJson(const QJsonObject &content, QJsonObject &data,
bool result = true;
if(m_bLoginResult&&content.contains("orderId")){
QString orderId=content["orderId"].toString();
if(m_
ordersMap
.contains(orderId))
if(m_
simValidOrderMapQueue
.contains(orderId))
{
emit doStartOperateTimer();
emit doConfirmOrder(orderId);
...
...
@@ -1160,7 +1184,7 @@ bool FlowControl::_Get03ReplyJson(const QJsonObject &content, QJsonObject &data,
bool result = true;
if(m_bLoginResult&&content.contains("orderId")){
QString orderId=content["orderId"].toString();
if(m_
ordersMap
.contains(orderId))
if(m_
simValidOrderMapQueue
.contains(orderId))
{
emit doStartOperateTimer();
emit doRefundOrder(orderId,-1,QString::fromLocal8Bit("同意退款"));
...
...
@@ -1208,12 +1232,12 @@ bool FlowControl::_Get04ReplyJson(const QJsonObject &content, QJsonObject &data,
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"%1订单已经成功推送给simphony"
).
arg
(
orderId
);
m_orderIdToPosSalesIdMap
.
insert
(
orderId
,
posSaleId
);
}
OrderObject
*
order_p
=
m_
ordersMap
.
value
(
orderId
);
OrderObject
*
order_p
=
m_
simValidOrderMapQueue
.
value
(
orderId
);
if
(
!
order_p
){
QLOG_ERROR
()
<<
QString
::
fromLocal8Bit
(
"%1订单并不存在m_orderMap[键值对]中;m_
ordersMap.size()=%2"
).
arg
(
orderId
).
arg
(
m_ordersMap
.
size
());
QLOG_ERROR
()
<<
QString
::
fromLocal8Bit
(
"%1订单并不存在m_orderMap[键值对]中;m_
simValidOrderMapQueue.size()=%2"
).
arg
(
orderId
).
arg
(
m_simValidOrderMapQueue
.
size
());
result
=
false
;
error
=
QString
::
fromLocal8Bit
(
"%1订单并不存在m_orderMap[键值对]中;m_
ordersMap.size()=%2"
).
arg
(
orderId
).
arg
(
m_ordersMap
.
size
());
error
=
QString
::
fromLocal8Bit
(
"%1订单并不存在m_orderMap[键值对]中;m_
simValidOrderMapQueue.size()=%2"
).
arg
(
orderId
).
arg
(
m_simValidOrderMapQueue
.
size
());
return
result
;
}
...
...
@@ -1235,7 +1259,7 @@ bool FlowControl::_Get04ReplyJson(const QJsonObject &content, QJsonObject &data,
}
else
{
order_p
->
isCancle
=
false
;
order_p
->
isPu
t
=
true
;
order_p
->
isPu
sh
=
true
;
order_p
->
putType
=
0
;
order_p
->
putTimes
=
0
;
...
...
@@ -1327,14 +1351,14 @@ bool FlowControl::_GetQueryReplyJson(QJsonObject &data, QString &error, const QS
QString
orderId
=
m_ordersEntryList
.
first
();
int
pullNum
=
MAXPUTTIMES
;
foreach
(
auto
value
,
m_ordersEntryList
)
{
int
num
=
m_
ordersMap
.
value
(
value
)
->
putTimes
;
int
num
=
m_
simValidOrderMapQueue
.
value
(
value
)
->
putTimes
;
if
(
pullNum
>
num
)
{
pullNum
=
num
;
orderId
=
value
;
}
}
OrderObject
*
orderObject
=
m_
ordersMap
.
value
(
orderId
);
OrderObject
*
orderObject
=
m_
simValidOrderMapQueue
.
value
(
orderId
);
if
(
MAXPUTTIMES
==
orderObject
->
putTimes
)
{
orderObject
->
putTimes
=
0
;
...
...
@@ -1502,7 +1526,7 @@ void FlowControl::onProcessOrder(const QString &operation, const QString &orderI
void
FlowControl
::
onGetOrderDetails
(
const
QString
&
orderId
)
{
emit
hideAlert
();
emit
showOrderDetails
(
m_
ordersMap
.
value
(
orderId
));
emit
showOrderDetails
(
m_
simValidOrderMapQueue
.
value
(
orderId
));
}
void
FlowControl
::
onSerachOrder
(
const
QString
&
text
)
...
...
@@ -1512,7 +1536,7 @@ void FlowControl::onSerachOrder(const QString &text)
{
QMap
<
QString
,
OrderObject
*>::
iterator
order
;
for
(
order
=
m_
ordersMap
.
begin
();
order
!=
m_ordersMap
.
end
();
order
++
)
for
(
order
=
m_
simValidOrderMapQueue
.
begin
();
order
!=
m_simValidOrderMapQueue
.
end
();
order
++
)
{
QString
orderId
=
order
.
key
();
QString
phoneId
=
order
.
value
()
->
phone
;
...
...
fmTakeout/Control/flowControl.h
View file @
d1e25051
...
...
@@ -66,8 +66,8 @@ private:
BillSocket
*
m_pullOrderListSocket
;
BillSocket
*
m_procOrderSocket
;
BillSocket
*
m_pullDishesSocket
;
//
订单
容器
QMap
<
QString
,
OrderObject
*>
m_
ordersMap
;
//
为Simphony在FM外卖插件中维护<有效待拉取订单>的
容器
QMap
<
QString
,
OrderObject
*>
m_
simValidOrderMapQueue
;
// 是否第一次获取到门店信息
bool
m_bFirstRecvInfo
;
bool
m_bLoginResult
;
...
...
fmTakeout/DTools/simProcOrderDB.cpp
View file @
d1e25051
...
...
@@ -11,10 +11,10 @@ SimProcOrderDB::SimProcOrderDB()
if
(
!
db
.
open
())
{
QString
error
=
db
.
lastError
().
text
();
QLOG_ERROR
()
<<
QString
(
"
Qsqlite database open filed,%1
"
).
arg
(
error
);
QLOG_ERROR
()
<<
QString
(
"
[<<<<---Sqlite Database:Open Filed--->>>>][%1]
"
).
arg
(
error
);
}
else
{
QLOG_INFO
()
<<
QString
(
"
Qsqlite database open successed
"
);
QLOG_INFO
()
<<
QString
(
"
[<<<<---Sqlite Database:Open Successed--->>>>]
"
);
}
QSqlQuery
query
(
db
);
int
isTableExist
=
0
;
...
...
@@ -24,18 +24,17 @@ SimProcOrderDB::SimProcOrderDB()
isTableExist
=
query
.
value
(
0
).
toInt
();
}
if
(
!
isTableExist
){
QLOG_INFO
()
<<
"
table SimProcOrderTable does not exist
"
;
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
())
<<
"
create table
"
;
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
QString
::
number
(
query
.
lastError
().
type
())
<<
"
[<<<<---Sqlite Database:Create Table SimProcOrderTable Faild--->>>>]
"
;
}
}
else
{
QLOG_INFO
()
<<
"
table SimProcOrderTable exists
"
;
QLOG_INFO
()
<<
"
[<<<<---Sqlite Database:Table SimProcOrderTable Has Exist--->>>>]
"
;
}
db
.
close
();
m_mutex
.
unlock
();
//qDebug()<<query.lastError().text()<<"create table SimProcOrderTable error";
}
SimProcOrderDB
&
SimProcOrderDB
::
getInstance
()
...
...
@@ -49,7 +48,7 @@ bool SimProcOrderDB::insertSimProcOrder(const QString &orderId,const QString& cr
m_mutex
.
lock
();
if
(
!
db
.
open
())
{
QLOG_ERROR
()
<<
"
sqlite open failed
"
<<
db
.
lastError
().
text
();
QLOG_ERROR
()
<<
"
[<<<<---Sqlite Database:Open Failed--->>>>]
"
<<
db
.
lastError
().
text
();
return
false
;
}
bool
result
;
...
...
@@ -58,11 +57,11 @@ bool SimProcOrderDB::insertSimProcOrder(const QString &orderId,const QString& cr
qDebug
()
<<
creatTime
;
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
QString
::
number
(
query
.
lastError
().
type
())
<<
"
insertSimProcOrder
"
;
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
QString
::
number
(
query
.
lastError
().
type
())
<<
"
[<<<<---Sqlite Database:insertSimProcOrder Error--->>>>]
"
;
result
=
false
;
}
else
{
QLOG_INFO
()
<<
QString
(
"
insert orderId %1 into SimProcOrderTable success
"
).
arg
(
orderId
);
QLOG_INFO
()
<<
QString
(
"
[<<<<---Sqlite Database:Insert OrderId %1 Into SimProcOrderTable Success--->>>>]
"
).
arg
(
orderId
);
result
=
true
;
}
db
.
close
();
...
...
@@ -75,7 +74,7 @@ bool SimProcOrderDB::updatePushOrderStatus(const QString &orderId, const int &pu
m_mutex
.
lock
();
if
(
!
db
.
open
())
{
QLOG_ERROR
()
<<
"
sqlite open failed
"
<<
db
.
lastError
().
text
();
QLOG_ERROR
()
<<
"
[<<<<---Sqlite Database:Open Failed--->>>>]
"
<<
db
.
lastError
().
text
();
return
false
;
}
bool
result
;
...
...
@@ -84,11 +83,11 @@ bool SimProcOrderDB::updatePushOrderStatus(const QString &orderId, const int &pu
.
arg
(
QString
::
number
(
pushOrderStatus
)).
arg
(
orderId
));
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
"
updatePushOrderStatus
"
;
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
"
[<<<<---Sqlite Database:updatePushOrderStatus Failed--->>>>]
"
;
result
=
false
;
}
else
{
QLOG_INFO
()
<<
QString
(
"
update orderId %1 pushOrderStatus success
"
).
arg
(
orderId
);
QLOG_INFO
()
<<
QString
(
"
[<<<<---Sqlite Database:Update OrderId %1 pushOrderStatus success--->>>>]
"
).
arg
(
orderId
);
result
=
true
;
}
db
.
close
();
...
...
@@ -101,7 +100,7 @@ bool SimProcOrderDB::isPushedOrder(const QString &orderId)
m_mutex
.
lock
();
if
(
!
db
.
open
())
{
QLOG_ERROR
()
<<
"
sqlite open failed
"
<<
db
.
lastError
().
text
();
QLOG_ERROR
()
<<
"
[<<<<---Sqlite Database:Open Failed--->>>>]
"
<<
db
.
lastError
().
text
();
return
false
;
}
bool
result
;
...
...
@@ -109,7 +108,7 @@ bool SimProcOrderDB::isPushedOrder(const QString &orderId)
query
.
prepare
(
QString
(
"select isPushed from SimProcOrderTable where orderId='%1'"
).
arg
(
orderId
));
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
orderId
<<
"
isPushed
"
;
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
orderId
<<
"
[<<<<---Sqlite Database:isPushedOrder Failed--->>>>]
"
;
result
=
false
;
}
while
(
query
.
next
())
...
...
@@ -126,7 +125,7 @@ bool SimProcOrderDB::updateRefundOrderStatus(const QString &orderId, const int &
m_mutex
.
lock
();
if
(
!
db
.
open
())
{
QLOG_ERROR
()
<<
"
sqlite open failed
"
<<
db
.
lastError
().
text
();
QLOG_ERROR
()
<<
"
[<<<<---Sqlite Database:Open Failed--->>>>]
"
<<
db
.
lastError
().
text
();
return
false
;
}
bool
result
;
...
...
@@ -135,11 +134,11 @@ bool SimProcOrderDB::updateRefundOrderStatus(const QString &orderId, const int &
.
arg
(
QString
::
number
(
refundOrderStatus
)).
arg
(
orderId
));
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
"
updateRefundOrderStatus
"
;
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
"
[<<<<---Sqlite Database:updateRefundOrderStatus Failed--->>>>]
"
;
result
=
false
;
}
else
{
QLOG_INFO
()
<<
QString
(
"
update orderId %1 refundOrderStatus success
"
).
arg
(
orderId
);
QLOG_INFO
()
<<
QString
(
"
[<<<<---Sqlite Database:Update OrderId %1 refundOrderStatus Successd--->>>>]
"
).
arg
(
orderId
);
result
=
true
;
}
db
.
close
();
...
...
@@ -152,7 +151,7 @@ bool SimProcOrderDB::isRefundOrder(const QString &orderId)
m_mutex
.
lock
();
if
(
!
db
.
open
())
{
QLOG_ERROR
()
<<
"
sqlite open failed
"
<<
db
.
lastError
().
text
();
QLOG_ERROR
()
<<
"
[<<<<---Sqlite Database:Open Failed--->>>>]
"
<<
db
.
lastError
().
text
();
return
false
;
}
bool
result
;
...
...
@@ -160,7 +159,7 @@ bool SimProcOrderDB::isRefundOrder(const QString &orderId)
query
.
prepare
(
QString
(
"select isRefund from SimProcOrderTable where orderId='%1'"
).
arg
(
orderId
));
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
orderId
<<
"
isRefund
"
;
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
orderId
<<
"
[<<<<---Sqlite Database:isRefundOrder Failed--->>>>]
"
;
result
=
false
;
}
while
(
query
.
next
())
...
...
@@ -177,7 +176,7 @@ bool SimProcOrderDB::updateReportOrderStatus(const QString &orderId, const int &
m_mutex
.
lock
();
if
(
!
db
.
open
())
{
QLOG_ERROR
()
<<
"
sqlite open failed
"
<<
db
.
lastError
().
text
();
QLOG_ERROR
()
<<
"
[<<<<---Sqlite Database:Open Failed--->>>>]
"
<<
db
.
lastError
().
text
();
return
false
;
}
bool
result
;
...
...
@@ -186,11 +185,11 @@ bool SimProcOrderDB::updateReportOrderStatus(const QString &orderId, const int &
.
arg
(
QString
::
number
(
reportOrderStatus
)).
arg
(
orderId
));
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
"
updateReportOrderStatus
"
;
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
"
[<<<<---Sqlite Database:updateReportOrderStatus Failed--->>>>]
"
;
result
=
false
;
}
else
{
QLOG_INFO
()
<<
QString
(
"
update orderId %1 reportOrderStatus success
"
).
arg
(
orderId
);
QLOG_INFO
()
<<
QString
(
"
[<<<<---Sqlite Database:Update OrderId %1 reportOrderStatus Success--->>>>]
"
).
arg
(
orderId
);
result
=
true
;
}
db
.
close
();
...
...
@@ -203,7 +202,7 @@ bool SimProcOrderDB::isReportOrder(const QString &orderId)
m_mutex
.
lock
();
if
(
!
db
.
open
())
{
QLOG_ERROR
()
<<
"
sqlite open failed
"
<<
db
.
lastError
().
text
();
QLOG_ERROR
()
<<
"
[<<<<---Sqlite Database:Open Failed--->>>>]
"
<<
db
.
lastError
().
text
();
return
false
;
}
bool
result
;
...
...
@@ -211,7 +210,7 @@ bool SimProcOrderDB::isReportOrder(const QString &orderId)
query
.
prepare
(
QString
(
"select isReport from SimProcOrderTable where orderId='%1'"
).
arg
(
orderId
));
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
orderId
<<
"
isReport
"
;
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
orderId
<<
"
[<<<<---Sqlite Database:isReportOrder Failed--->>>>]
"
;
result
=
false
;
}
while
(
query
.
next
())
...
...
@@ -228,7 +227,7 @@ bool SimProcOrderDB::updateBackReportOrderStatus(const QString &orderId, const i
m_mutex
.
lock
();
if
(
!
db
.
open
())
{
QLOG_ERROR
()
<<
"
sqlite open failed
"
<<
db
.
lastError
().
text
();
QLOG_ERROR
()
<<
"
[<<<<---Sqlite Database:Open Failed--->>>>]
"
<<
db
.
lastError
().
text
();
return
false
;
}
bool
result
;
...
...
@@ -237,11 +236,11 @@ bool SimProcOrderDB::updateBackReportOrderStatus(const QString &orderId, const i
.
arg
(
QString
::
number
(
backReportOrderStatus
)).
arg
(
orderId
));
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
"
updateBackReportOrderStatus
"
;
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
"
[<<<<---Sqlite Database:updateBackReportOrderStatus Failed--->>>>]
"
;
result
=
false
;
}
else
{
QLOG_INFO
()
<<
QString
(
"
update orderId %1 backReportOrderStatus success
"
).
arg
(
orderId
);
QLOG_INFO
()
<<
QString
(
"
[<<<<---Sqlite Database:Update OrderId %1 backReportOrderStatus Success--->>>>]
"
).
arg
(
orderId
);
result
=
true
;
}
db
.
close
();
...
...
@@ -254,7 +253,7 @@ bool SimProcOrderDB::isBackReportOrder(const QString &orderId)
m_mutex
.
lock
();
if
(
!
db
.
open
())
{
QLOG_ERROR
()
<<
"
sqlite open failed
"
<<
db
.
lastError
().
text
();
QLOG_ERROR
()
<<
"
[<<<<---Sqlite Database:Open Failed--->>>>]
"
<<
db
.
lastError
().
text
();
return
false
;
}
bool
result
;
...
...
@@ -262,7 +261,7 @@ bool SimProcOrderDB::isBackReportOrder(const QString &orderId)
query
.
prepare
(
QString
(
"select isBackReport from SimProcOrderTable where orderId='%1'"
).
arg
(
orderId
));
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
orderId
<<
"
isBackReport
"
;
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
orderId
<<
"
[<<<<---Sqlite Database:isBackReportOrder Failed--->>>>]
"
;
result
=
false
;
}
while
(
query
.
next
())
...
...
@@ -278,7 +277,7 @@ bool SimProcOrderDB::isOrderExit(const QString &orderId)
m_mutex
.
lock
();
if
(
!
db
.
open
())
{
QLOG_ERROR
()
<<
"
sqlite open failed
"
<<
db
.
lastError
().
text
();
QLOG_ERROR
()
<<
"
[<<<<---Sqlite Database:Open Failed--->>>>]
"
<<
db
.
lastError
().
text
();
return
false
;
}
bool
result
;
...
...
@@ -286,7 +285,7 @@ bool SimProcOrderDB::isOrderExit(const QString &orderId)
query
.
prepare
(
QString
(
"select orderId from SimProcOrderTable where orderId='%1'"
).
arg
(
orderId
));
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
orderId
<<
"
isOrderExit
"
;
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
orderId
<<
"
[<<<<---Sqlite Database:isOrderExit Failed--->>>>]
"
;
result
=
false
;
}
if
(
query
.
first
())
...
...
@@ -306,7 +305,7 @@ bool SimProcOrderDB::updatePosOrderCheckNo(const QString &orderId, const QString
m_mutex
.
lock
();
if
(
!
db
.
open
())
{
QLOG_ERROR
()
<<
"
sqlite open failed
"
<<
db
.
lastError
().
text
();
QLOG_ERROR
()
<<
"
[<<<<---Sqlite Database:Open Failed--->>>>]
"
<<
db
.
lastError
().
text
();
return
false
;
}
bool
result
;
...
...
@@ -319,7 +318,7 @@ bool SimProcOrderDB::updatePosOrderCheckNo(const QString &orderId, const QString
result
=
false
;
}
else
{
QLOG_INFO
()
<<
QString
(
"
update orderId %1 posCheckNo success
"
).
arg
(
orderId
);
QLOG_INFO
()
<<
QString
(
"
[<<<<---Sqlite Database:Update OrderId %1 posCheckNo Success--->>>>]
"
).
arg
(
orderId
);
result
=
true
;
}
db
.
close
();
...
...
@@ -333,7 +332,7 @@ bool SimProcOrderDB::getPosOrderCheckNo(const QString &orderId,QString& posOrder
bool
result
=
false
;
if
(
!
db
.
open
())
{
QLOG_ERROR
()
<<
"
sqlite open failed
"
<<
db
.
lastError
().
text
();
QLOG_ERROR
()
<<
"
[<<<<---Sqlite Database:Open Failed--->>>>]
"
<<
db
.
lastError
().
text
();
return
result
;
}
QSqlQuery
query
(
db
);
...
...
@@ -358,7 +357,7 @@ bool SimProcOrderDB::deleteOrderRecord(QString creatTime)
m_mutex
.
lock
();
if
(
!
db
.
open
())
{
QLOG_ERROR
()
<<
"
sqlite open failed
"
<<
db
.
lastError
().
text
();
QLOG_ERROR
()
<<
"
[<<<<---Sqlite Database:Open Failed--->>>>]
"
<<
db
.
lastError
().
text
();
return
false
;
}
bool
result
=
true
;
...
...
@@ -380,7 +379,7 @@ bool SimProcOrderDB::queryValue(const QString &orderId, const QString& key, QSt
QMutexLocker
mutex
(
&
m_mutex
);
if
(
!
db
.
open
())
{
error
.
append
(
QString
(
"
db open f
ailed"
).
append
(
db
.
lastError
().
text
()));
error
.
append
(
QString
(
"
Sqlite Database:Open F
ailed"
).
append
(
db
.
lastError
().
text
()));
return
false
;
}
QSqlQuery
query
(
db
);
...
...
@@ -406,7 +405,7 @@ bool SimProcOrderDB::updatekey(const QString &orderId, const QString &key, const
QMutexLocker
mutex
(
&
m_mutex
);
if
(
!
db
.
open
())
{
error
.
append
(
QString
(
"
数据库打开失败
"
).
append
(
db
.
lastError
().
text
()));
error
.
append
(
QString
(
"
Sqlite Database:Open Failed
"
).
append
(
db
.
lastError
().
text
()));
return
false
;
}
QSqlQuery
query
(
db
);
...
...
@@ -430,7 +429,7 @@ bool SimProcOrderDB::queryIsNull(const QString &orderId, const QString &key, QSt
QMutexLocker
mutex
(
&
m_mutex
);
if
(
!
db
.
open
())
{
error
.
append
(
QString
(
"
数据库打开失败
"
).
append
(
db
.
lastError
().
text
()));
error
.
append
(
QString
(
"
Sqlite Database:Open Failed
"
).
append
(
db
.
lastError
().
text
()));
return
false
;
}
QSqlQuery
query
(
db
);
...
...
fmTakeout/Model/orderObject.h
View file @
d1e25051
...
...
@@ -127,7 +127,7 @@ public:
int
deliveryChannel
;
int
putType
;
int
putTimes
;
bool
isPu
t
;
bool
isPu
sh
;
bool
isCancle
;
QString
getChannelName
();
...
...
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