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
d0b8fbed
Commit
d0b8fbed
authored
Feb 16, 2023
by
wuyang.zou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix Redis Server offline ,then recover, then use,then main pthread dump
check order object data right
parent
52084c97
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
40 additions
and
8 deletions
+40
-8
fmTakeout/Control/flowControl.cpp
+6
-3
fmTakeout/DTools/pmsOrdersData.cpp
+12
-0
fmTakeout/DTools/qtRedisClient.cpp
+22
-5
No files found.
fmTakeout/Control/flowControl.cpp
View file @
d0b8fbed
...
@@ -165,7 +165,7 @@ void FlowControl::_TestInsertOrderData(){
...
@@ -165,7 +165,7 @@ void FlowControl::_TestInsertOrderData(){
bool
FlowControl
::
_AppendOrderInfo2Redis
(
const
OrderObject
*
orderObject
)
{
bool
FlowControl
::
_AppendOrderInfo2Redis
(
const
OrderObject
*
orderObject
)
{
QLOG_INFO
()
<<
QString
(
"[<<<<---FlowControl:: _AppendOrderInfo2Redis() orderId:%1 Begin --->>>>]"
).
arg
(
orderObject
->
id
);
QLOG_INFO
()
<<
QString
(
"[<<<<---FlowControl:: _AppendOrderInfo2Redis() orderId:%1 Begin
......
--->>>>]"
).
arg
(
orderObject
->
id
);
return
QtRedisClient
::
getInstance
().
pushOrder2Redis
(
orderObject
);
return
QtRedisClient
::
getInstance
().
pushOrder2Redis
(
orderObject
);
}
}
...
@@ -499,6 +499,10 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
...
@@ -499,6 +499,10 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
{
{
OrderObject
*
orderObject
=
nullptr
;
OrderObject
*
orderObject
=
nullptr
;
bool
bRetOrderUpdateMutex
=
false
;
bool
bRetOrderUpdateMutex
=
false
;
if
(
!
jsonObject
.
contains
(
JSON_ID
)
)
{
QLOG_ERROR
()
<<
QString
(
"[<<<<---FlowControl::_OrderAnalysis: Json Object No Has Import Key -> OrderId , JsonObject Is Illegal , Abandon This Object --->>>>]"
)
<<
jsonObject
;
return
;
}
orderObject
=
m_FmOrdersMap
.
value
(
jsonObject
[
JSON_ID
].
toString
());
orderObject
=
m_FmOrdersMap
.
value
(
jsonObject
[
JSON_ID
].
toString
());
/***<1>:FM插件维护的有效订单容器中不存在此订单:整合数据并插入到此订单容器中 ***/
/***<1>:FM插件维护的有效订单容器中不存在此订单:整合数据并插入到此订单容器中 ***/
if
(
orderObject
==
nullptr
)
if
(
orderObject
==
nullptr
)
...
@@ -925,8 +929,7 @@ bool FlowControl::_PullOrderDetail(const QString& orderId, const QString& channe
...
@@ -925,8 +929,7 @@ bool FlowControl::_PullOrderDetail(const QString& orderId, const QString& channe
QUrl
TempQUrl
=
url
;
QUrl
TempQUrl
=
url
;
m_pullOrderSocket
->
SetUrl
(
TempQUrl
);
m_pullOrderSocket
->
SetUrl
(
TempQUrl
);
result
=
m_pullOrderSocket
->
GetRequest
(
recvJson
,
error
);
result
=
m_pullOrderSocket
->
GetRequest
(
recvJson
,
error
);
QLOG_INFO
()
<<
QString
(
"[<<<<---Pull Order Detail Finsh--->>>>][result:%1][msg:%2]"
)
QLOG_INFO
()
<<
QString
(
"[<<<<---Pull Order Detail Finsh--->>>>][result:%1][msg:%2]"
).
arg
(
result
).
arg
(
error
)
<<
recvJson
;
.
arg
(
result
).
arg
(
error
)
<<
recvJson
;
if
(
!
result
)
{
if
(
!
result
)
{
if
(
!
skipErrorDisplay
)
{
if
(
!
skipErrorDisplay
)
{
emit
setNetStatus
(
QString
::
fromLocal8Bit
(
"<font color='#ff0000'>网络不稳定,正在重试</font>"
));
emit
setNetStatus
(
QString
::
fromLocal8Bit
(
"<font color='#ff0000'>网络不稳定,正在重试</font>"
));
...
...
fmTakeout/DTools/pmsOrdersData.cpp
View file @
d0b8fbed
...
@@ -249,8 +249,14 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
...
@@ -249,8 +249,14 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
query
.
addBindValue
(
orderObj
->
consigneePhone
);
// --收货者名称
query
.
addBindValue
(
orderObj
->
consigneePhone
);
// --收货者名称
query
.
addBindValue
(
orderObj
->
deliveryPrice
*
0.01
);
// --配送费
query
.
addBindValue
(
orderObj
->
deliveryPrice
*
0.01
);
// --配送费
query
.
addBindValue
(
orderObj
->
deliveryDiscount
*
0.01
);
// --配送费折扣
query
.
addBindValue
(
orderObj
->
deliveryDiscount
*
0.01
);
// --配送费折扣
if
(
orderObj
->
deliveryTime
.
isEmpty
()
)
{
orderObj
->
deliveryTime
=
QString
(
"1970-01-01 00:00:00"
);
}
query
.
addBindValue
(
orderObj
->
deliveryTime
);
// --订单预计送达时间
query
.
addBindValue
(
orderObj
->
deliveryTime
);
// --订单预计送达时间
query
.
addBindValue
(
orderObj
->
estimation
);
// --订单预计制作时间 estimation;
query
.
addBindValue
(
orderObj
->
estimation
);
// --订单预计制作时间 estimation;
if
(
orderObj
->
finishTime
.
isEmpty
()
)
{
orderObj
->
finishTime
=
QString
(
"1970-01-01 00:00:00"
);
}
query
.
addBindValue
(
orderObj
->
finishTime
);
// --订单预计完成时间 makeFinishDate;
query
.
addBindValue
(
orderObj
->
finishTime
);
// --订单预计完成时间 makeFinishDate;
query
.
addBindValue
(
orderObj
->
isPackage
);
// --订单是否打包;
query
.
addBindValue
(
orderObj
->
isPackage
);
// --订单是否打包;
query
.
addBindValue
(
""
);
// --最后支付时间 lastPayTime;
query
.
addBindValue
(
""
);
// --最后支付时间 lastPayTime;
...
@@ -259,6 +265,9 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
...
@@ -259,6 +265,9 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
query
.
addBindValue
(
orderObj
->
msr_no
);
// --MSR 卡号;
query
.
addBindValue
(
orderObj
->
msr_no
);
// --MSR 卡号;
query
.
addBindValue
(
""
);
// --消费者生日 birthday;
query
.
addBindValue
(
""
);
// --消费者生日 birthday;
query
.
addBindValue
(
orderObj
->
cancelReason
);
// --取消原因 cancelReason;
query
.
addBindValue
(
orderObj
->
cancelReason
);
// --取消原因 cancelReason;
if
(
orderObj
->
confirmTime
.
isEmpty
()
)
{
orderObj
->
confirmTime
=
QString
(
"1970-01-01 00:00:00"
);
}
query
.
addBindValue
(
orderObj
->
confirmTime
);
// --确认订单时间 confirmTime;
query
.
addBindValue
(
orderObj
->
confirmTime
);
// --确认订单时间 confirmTime;
query
.
addBindValue
(
orderObj
->
customerId
);
// --消费者ID;
query
.
addBindValue
(
orderObj
->
customerId
);
// --消费者ID;
QString
temp_customerSex
=
""
;
QString
temp_customerSex
=
""
;
...
@@ -300,6 +309,9 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
...
@@ -300,6 +309,9 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
}
}
query
.
addBindValue
(
tempBusinessType
);
// --订单业务类型
query
.
addBindValue
(
tempBusinessType
);
// --订单业务类型
if
(
orderObj
->
expectDate
.
isEmpty
()
)
{
orderObj
->
expectDate
=
QString
(
"1970-01-01 00:00:00"
);
}
query
.
addBindValue
(
orderObj
->
expectDate
);
// --订单预约时间
query
.
addBindValue
(
orderObj
->
expectDate
);
// --订单预约时间
query
.
addBindValue
(
QString
::
number
(
orderObj
->
inAdvanceTakemeal
)
+
";"
+
orderObj
->
reserveMakeTime
);
// --订单预约提醒模板
query
.
addBindValue
(
QString
::
number
(
orderObj
->
inAdvanceTakemeal
)
+
";"
+
orderObj
->
reserveMakeTime
);
// --订单预约提醒模板
query
.
addBindValue
(
orderObj
->
subStoreId
);
// --母子门店的子门店编号;
query
.
addBindValue
(
orderObj
->
subStoreId
);
// --母子门店的子门店编号;
...
...
fmTakeout/DTools/qtRedisClient.cpp
View file @
d0b8fbed
...
@@ -50,15 +50,23 @@ bool QtRedisClient::initQtRedisClient(){
...
@@ -50,15 +50,23 @@ bool QtRedisClient::initQtRedisClient(){
if
(
m_pRedisConnectOperat
->
isConnected
()
||
m_pRedisConnectOperat
->
connect
()
)
{
if
(
m_pRedisConnectOperat
->
isConnected
()
||
m_pRedisConnectOperat
->
connect
()
)
{
QLOG_INFO
()
<<
"[<<<<---QtRedisClient:: initQtRedisClient Connect Redis Success --->>>>]"
;
QLOG_INFO
()
<<
"[<<<<---QtRedisClient:: initQtRedisClient Connect Redis Success --->>>>]"
;
}
else
{
}
else
{
while
(
1
)
{
int
retryCount
=
0
;
QLOG_INFO
()
<<
"[<<<<---QtRedisClient:: initQtRedisClient Connect Redis Failed, Sleep 5s Then Retry Connect... --->>>>]"
;
while
(
retryCount
<
3
)
{
Sleep
(
5
*
1000
);
QLOG_INFO
()
<<
QString
(
"[<<<<---QtRedisClient:: initQtRedisClient Connect Redis Failed, Sleep 1 s RetryCount: %1 (MaxCount=3), Then Retry Connect... --->>>>]"
).
arg
(
retryCount
+
1
);
Sleep
(
1
*
1000
);
if
(
m_pRedisConnectOperat
->
connect
()
)
if
(
m_pRedisConnectOperat
->
connect
()
)
break
;
break
;
else
else
{
retryCount
++
;
continue
;
continue
;
}
}
}
if
(
retryCount
<
3
)
{
QLOG_INFO
()
<<
"[<<<<---QtRedisClient:: initQtRedisClient Connect Redis Success --->>>>]"
;
QLOG_INFO
()
<<
"[<<<<---QtRedisClient:: initQtRedisClient Connect Redis Success --->>>>]"
;
}
else
{
QLOG_INFO
()
<<
"[<<<<---QtRedisClient:: initQtRedisClient Connect Redis Until The Last Failed--->>>>]"
;
return
initRedisRet
;
}
}
}
}
catch
(
const
RedisClient
::
Connection
::
Exception
&
e
)
{
}
catch
(
const
RedisClient
::
Connection
::
Exception
&
e
)
{
QLOG_ERROR
()
<<
"QtRedisClient::initQtRedisClient Connect Redis Occur Exception:"
<<
e
.
what
();
QLOG_ERROR
()
<<
"QtRedisClient::initQtRedisClient Connect Redis Occur Exception:"
<<
e
.
what
();
...
@@ -126,6 +134,8 @@ bool QtRedisClient::pushOrder2Redis(const OrderObject* orderObj ){
...
@@ -126,6 +134,8 @@ bool QtRedisClient::pushOrder2Redis(const OrderObject* orderObj ){
QJsonDocument
orderStatusDoc
=
QJsonDocument
(
orderStatusObj
);
QJsonDocument
orderStatusDoc
=
QJsonDocument
(
orderStatusObj
);
cmdString
.
append
(
orderStatusDoc
.
toJson
());
cmdString
.
append
(
orderStatusDoc
.
toJson
());
QLOG_INFO
()
<<
QString
(
"[<<<<---QtRedisClient::pushOrder2Redis orderId:%1 Begin...... --->>>>]"
).
arg
(
orderObj
->
id
);
if
(
!
m_pRedisConnectOperat
)
{
if
(
!
m_pRedisConnectOperat
)
{
QLOG_INFO
()
<<
QString
(
"[<<<<---QtRedisClient::pushOrder2Redis orderId:%1 m_pRedisConnectOperat Pointer Is Null, Wait Retry Init --->>>>]"
).
arg
(
orderObj
->
id
);
QLOG_INFO
()
<<
QString
(
"[<<<<---QtRedisClient::pushOrder2Redis orderId:%1 m_pRedisConnectOperat Pointer Is Null, Wait Retry Init --->>>>]"
).
arg
(
orderObj
->
id
);
return
bPushOrderSuc
;
return
bPushOrderSuc
;
...
@@ -137,8 +147,15 @@ bool QtRedisClient::pushOrder2Redis(const OrderObject* orderObj ){
...
@@ -137,8 +147,15 @@ bool QtRedisClient::pushOrder2Redis(const OrderObject* orderObj ){
try
{
try
{
auto
result
=
m_pRedisConnectOperat
->
command
(
cmdString
);
auto
result
=
m_pRedisConnectOperat
->
command
(
cmdString
);
if
(
result
.
results
().
size
()
)
{
QLOG_INFO
()
<<
QString
(
"[<<<<---QtRedisClient::pushOrder2Redis orderId:%1, Command Run Status:--->>>>]"
).
arg
(
orderObj
->
id
)
<<
" Finished: "
<<
result
.
isFinished
()
<<
" Running: "
<<
result
.
isRunning
()
<<
" Paused: "
<<
result
.
isPaused
()
;
}
else
{
return
bPushOrderSuc
;
}
QVariant
val
=
result
.
result
().
value
();
QVariant
val
=
result
.
result
().
value
();
if
(
val
.
toInt
()
)
{
if
(
val
.
toInt
()
)
{
QLOG_INFO
()
<<
QString
(
"[<<<<---QtRedisClient::pushOrder2Redis orderId:%1 ; orderStatus:%2 ; ret:%3 Success--->>>>]"
).
arg
(
orderObj
->
id
).
arg
(
orderObj
->
orderStatus
).
arg
(
val
.
toString
());
QLOG_INFO
()
<<
QString
(
"[<<<<---QtRedisClient::pushOrder2Redis orderId:%1 ; orderStatus:%2 ; ret:%3 Success--->>>>]"
).
arg
(
orderObj
->
id
).
arg
(
orderObj
->
orderStatus
).
arg
(
val
.
toString
());
QLOG_INFO
()
<<
QString
(
"[<<<<---QtRedisClient::pushOrder2Redis orderId:%1 Redis Context:%2--->>>>]"
).
arg
(
orderObj
->
id
).
arg
(
QString
(
orderStatusDoc
.
toJson
())
);
QLOG_INFO
()
<<
QString
(
"[<<<<---QtRedisClient::pushOrder2Redis orderId:%1 Redis Context:%2--->>>>]"
).
arg
(
orderObj
->
id
).
arg
(
QString
(
orderStatusDoc
.
toJson
())
);
bPushOrderSuc
=
true
;
bPushOrderSuc
=
true
;
...
...
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