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
e46a6f81
Commit
e46a6f81
authored
Jul 29, 2018
by
wuyang.zou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix bug: 修复 订单检索功能,各个表格按时间倒序排列,美化网络异常功,完善,退单后窗体残留
parent
45fa6706
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
129 additions
and
144 deletions
+129
-144
fmTakeout/Control/flowControl.cpp
+85
-133
fmTakeout/Model/orderObject.h
+6
-0
fmTakeout/Network/billSocket.cpp
+27
-0
fmTakeout/mainForm.cpp
+6
-6
fmTakeout/mainForm.ui
+1
-1
fmTakeout/preDefine.h
+1
-0
fmTakeout/refdishesForm.cpp
+3
-4
No files found.
fmTakeout/Control/flowControl.cpp
View file @
e46a6f81
...
...
@@ -293,6 +293,7 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
{
orderObject
->
pushOrderType
=
1
;
orderObject
->
pushOrderTimes
=
0
;
// 针对新订单肯定没有在POS里录入过;
m_OrderEntryMutex
.
lock
();
if
(
!
m_simValidOrdersList
.
contains
(
orderObject
->
id
))
{
...
...
@@ -306,6 +307,7 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
}
break
;
case
OrderObject
:
:
Confirmed
:
// 针对已经确认的订单:POS可能录过,也可能没有; 因此就需要 orderObject->isPush 来判断POS是否录过:true:录过;false:没录过;
if
(
!
orderObject
->
isPush
)
{
orderObject
->
pushOrderType
=
1
;
...
...
@@ -432,7 +434,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_STATUSCODE].toInt())
if
(
JSON_STATUSCODE_OK
!=
recvJson
[
JSON_LOGINCODE
].
toInt
())
{
result
=
false
;
emit
showAlert
(
AlertForm
::
MSGERROR
,
QString
::
fromLocal8Bit
(
"登录失败![%1]"
).
arg
(
recvJson
[
JSON_MESSAGE
].
toString
()));
...
...
@@ -447,7 +450,7 @@ bool FlowControl::_Login()
emit
setStoreInfo
(
m_storeId
);
emit
setCashierInfo
(
m_cashierId
);
m_bLoginResult
=
true
;
m_clearTimer
->
start
(
1000
*
60
*
30
);
// 一小时执行一次:清理两天前的插件订单
;
m_clearTimer
->
start
(
1000
*
60
*
20
);
// 二十分钟执行一次清理任务
;
m_heartTimer
->
start
(
1000
*
60
*
5
);
m_pullTimer
->
start
(
1000
*
2
);
m_notifySimPullTimer
->
start
(
10
*
1000
);
...
...
@@ -530,7 +533,7 @@ bool FlowControl::_PullOrderDetail(const QString& orderId)
.
arg
(
result
).
arg
(
error
)
<<
recvJson
;
if
(
!
result
)
{
emit
setNetStatus
(
QString
::
fromLocal8Bit
(
"<font color='#ff0000'>
异常
</font>"
));
emit
setNetStatus
(
QString
::
fromLocal8Bit
(
"<font color='#ff0000'>
网络不稳定,正在重试
</font>"
));
}
else
{
qDebug
()
<<
recvJson
;
...
...
@@ -578,7 +581,8 @@ bool FlowControl::_PullOrderList(const int &pageSize, const int &pageNo)
QLOG_INFO
()
<<
QString
(
"[<<<<---Pull Order List--->>>>][requestData:]"
)
<<
sendJson
;
if
(
ConfigManger
::
GetInstance
().
GetOrderSslConfig
())
{
m_pullOrderSocket
->
SetSslConfig
();
// m_pullOrderSocket->SetSslConfig();
m_pullOrderListSocket
->
SetSslConfig
();
QLOG_INFO
()
<<
"FlowControl::_PullOrderList load ssl"
;
}
else
{
...
...
@@ -587,13 +591,13 @@ bool FlowControl::_PullOrderList(const int &pageSize, const int &pageNo)
m_pullOrderListSocket
->
SetUrl
(
QUrl
(
ConfigManger
::
GetInstance
().
GetOrderServerUrl
()
+
ConfigManger
::
GetInstance
().
GetInterfaceName
(
INI_INTERFACE_PULLORDERLIST
)));
QLOG_INFO
()
<<
ConfigManger
::
GetInstance
().
GetOrderServerUrl
()
+
ConfigManger
::
GetInstance
().
GetInterfaceName
(
INI_INTERFACE_PULLORDERLIST
);
ConfigManger
::
GetInstance
().
GetInterfaceName
(
INI_INTERFACE_PULLORDERLIST
)
<<
" requestData: "
<<
sendJson
;
result
=
m_pullOrderListSocket
->
PostRequest
(
sendJson
,
recvJson
,
error
);
QLOG_INFO
()
<<
QString
(
"[<<<<---Pull Order List Finish.--->>>>][result:%1][msg:%2]"
)
.
arg
(
result
).
arg
(
error
)
<<
recvJson
;
if
(
!
result
)
{
emit
setNetStatus
(
QString
::
fromLocal8Bit
(
"<font color='#ff0000'>
异常
</font>"
));
emit
setNetStatus
(
QString
::
fromLocal8Bit
(
"<font color='#ff0000'>
网络不稳定,正在重试
</font>"
));
}
else
{
qDebug
()
<<
recvJson
;
...
...
@@ -650,13 +654,18 @@ bool FlowControl::_SendHeart()
.
arg
(
result
).
arg
(
error
)
<<
recvJson
;
if
(
!
result
)
{
emit
showAlert
(
AlertForm
::
MSGERROR
,
QString
::
fromLocal8Bit
(
"发送心跳失败![网络错误]"
));
//emit showAlert(AlertForm::MSGERROR, QString::fromLocal8Bit("发送心跳失败![网络错误]"));
emit
setNetStatus
(
QString
::
fromLocal8Bit
(
"<font color='#ff0000'>网络不稳定,正在重试</font>"
));
}
else
{
if
(
JSON_STATUSCODE_OK
!=
recvJson
[
JSON_STATUSCODE
].
toInt
())
//QLOG_INFO() << QString("[<<<<---Send Heart Finish: code:%1--->>>>]").arg(recvJson[JSON_STATUSCODE].toInt());
//if(JSON_STATUSCODE_OK != recvJson[JSON_STATUSCODE].toInt())
QLOG_INFO
()
<<
QString
(
"[<<<<---Send Heart Finish: code:%1--->>>>]"
).
arg
(
recvJson
[
JSON_LOGINCODE
].
toInt
());
if
(
JSON_STATUSCODE_OK
!=
recvJson
[
JSON_LOGINCODE
].
toInt
())
{
result
=
false
;
emit
showAlert
(
AlertForm
::
MSGERROR
,
QString
::
fromLocal8Bit
(
"发送心跳失败![%1]"
).
arg
(
recvJson
[
JSON_MESSAGE
].
toString
()));
//emit showAlert(AlertForm::MSGERROR, QString::fromLocal8Bit("发送心跳失败![%1]").arg(recvJson[JSON_MESSAGE].toString()));
emit
setNetStatus
(
QString
::
fromLocal8Bit
(
"<font color='#ff0000'>网络不稳定,正在重试</font>"
));
}
}
return
result
;
...
...
@@ -1236,18 +1245,21 @@ void FlowControl::onDailyReport()
void
FlowControl
::
_CrondClearExpireOrder
()
{
//
QDateTime currentDateTime= QDateTime::currentDateTime();
QDate
currentDate
=
QDate
::
currentDate
();
QDateTime
currentDateTime
=
QDateTime
::
currentDateTime
();
//
QDate currentDate = QDate::currentDate();
OrderObject
*
order
=
NULL
;
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---_CrondClearExpireOrder: 清理内存中订单数据的清理日期:%1 --->>>>]"
).
arg
(
currentDateTime
.
toString
(
"yyyyMMdd hh:mm:ss"
));
m_OrderEntryMutex
.
lock
();
foreach
(
order
,
m_FmOrdersMap
.
values
())
{
//QDateTime createDateTime=QDateTime::fromString(order->createTime,"yyyyMMdd 00:00:00");
QDate
createDate
=
QDate
::
fromString
(
order
->
createTime
,
"yyyyMMdd"
);
//qint64 days=createDateTime.daysTo(currentDateTime);
qint64
days
=
createDate
.
daysTo
(
currentDate
);
if
(
days
>=
1
)
{
QLOG_INFO
()
<<
QString
(
"[<<<<---Crond Clear Expire Order: orderID:%1--->>>>]"
).
arg
(
order
->
id
);
QDateTime
createDateTime
=
QDateTime
::
fromString
(
order
->
createTime
,
"yyyyMMdd hh:mm:ss"
);
//QDate createDate = QDate::fromString(order->createTime,"yyyyMMdd");
//qint64 days=createDate.daysTo(currentDate);
qint64
seconds
=
createDateTime
.
secsTo
(
currentDateTime
);
//创建订单时间,超过当前时间 三十分就进行清理;
qint64
minutes
=
seconds
/
(
60
*
30
);
if
(
minutes
>=
1
)
{
QLOG_INFO
()
<<
QString
(
"[<<<<---_CrondClearExpireOrder: ClearExpireOrder: orderID:%1--->>>>]"
).
arg
(
order
->
id
);
emit
clearorder
(
order
->
id
,
order
->
orderStatus
);
m_FmOrdersMap
.
value
(
order
->
id
)
->
deleteLater
();
m_simValidOrdersList
.
removeOne
(
order
->
id
);
...
...
@@ -1255,6 +1267,7 @@ void FlowControl::_CrondClearExpireOrder()
}
}
m_OrderEntryMutex
.
unlock
();
SimProcOrderDB
::
getInstance
().
deleteOrderRecord
(
QDate
::
currentDate
().
addMonths
(
-
1
).
toString
(
"yyyyMMdd"
));
}
...
...
@@ -1357,52 +1370,75 @@ bool FlowControl::_ResponseSimphony04Request(const QJsonObject &content, QJsonOb
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---Simphony_Script请求[04:返回小票号] %1订单已经成功推送给simphony:--->>>>]"
).
arg
(
orderId
);
m_orderIdToPosCheckNoMap
.
insert
(
orderId
,
posCheckNo
);
}
OrderObject
*
order_p
=
m_FmOrdersMap
.
value
(
orderId
);
OrderObject
*
order_p
=
m_FmOrdersMap
.
value
(
orderId
);
if
(
!
order_p
){
QLOG_ERROR
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---%1订单并不存在m_FmOrdersMap[键值对]中;m_FmOrdersMap.size()=%2--->>>>]"
).
arg
(
orderId
).
arg
(
m_FmOrdersMap
.
size
());
result
=
false
;
error
=
QString
::
fromLocal8Bit
(
"%1订单并不存在m_FmOrdersMap[键值对]中;m_FmOrdersMap.size()=%2"
).
arg
(
orderId
).
arg
(
m_FmOrdersMap
.
size
());
return
result
;
return
false
;
}
if
(
m_simValidOrdersList
.
contains
(
orderId
))
{
/***** 汇报POS小票号是否成功;begin:*********/
bool
bRetReportCheckNo
=
false
;
if
(
order_p
->
pushOrderType
==
1
)
{
order_p
->
isPush
==
true
;
SimProcOrderDB
::
getInstance
().
updatePushOrderStatus
(
orderId
,
1
);
SimProcOrderDB
::
getInstance
().
updatePosOrderCheckNo
(
orderId
,
posCheckNo
);
}
else
{
}
else
{
order_p
->
isCancle
==
true
;
SimProcOrderDB
::
getInstance
().
updateRefundOrderStatus
(
orderId
,
1
);
}
bRetReportCheckNo
=
SimProcOrderDB
::
getInstance
().
updatePosOrderCheckNo
(
orderId
,
posCheckNo
);
/***** 解析 汇报POS小票号是否成功:bRetReportCheckNo:true->成功********/
QJsonObject
rObj
,
cObj
;
rObj
.
insert
(
"fm_cmd"
,
""
);
rObj
.
insert
(
"fm_ver"
,
"1.0"
);
cObj
.
insert
(
"pay_id"
,
"002"
);
cObj
.
insert
(
"pay_str"
,
QString
::
fromLocal8Bit
(
"非码外卖"
));
cObj
.
insert
(
"paid_trans_id"
,
orderId
);
if
(
bRetReportCheckNo
){
// 已经汇报完小票号,因此必须从 m_simValidOrdersList 列表中移除;
m_OrderEntryMutex
.
lock
();
m_simValidOrdersList
.
removeOne
(
orderId
);
m_OrderEntryMutex
.
unlock
();
}
cObj
.
insert
(
"reqResult"
,
1
);
// 汇报POS小票号结果:[1:成功;0:失败]
rObj
.
insert
(
"pay_id"
,
cObj
);
data
=
rObj
;
}
/***** 解析 汇报POS小票号是否成功:bRetReportCheckNo:true->成功*****/
else
{
result
=
false
;
error
=
QString
::
fromLocal8Bit
(
"汇报POS小票号结果失败"
);
// 即使汇报小票号失败,同样也必须将此订单从 m_simValidOrdersList 列表中移除;
m_OrderEntryMutex
.
lock
();
m_simValidOrdersList
.
removeOne
(
orderId
);
m_OrderEntryMutex
.
unlock
();
cObj
.
insert
(
"reqResult"
,
0
);
// 汇报POS小票号结果:[1:成功;0:失败]
rObj
.
insert
(
"pay_id"
,
cObj
);
data
=
rObj
;
}
}
/* 汇报完小票号后,就必须将其从 m_simValidOrdersList 列表中移除;
else {
//????????????????????????????????????????
order_p->isCancle = false;
order_p->isPush = true;
order_p->pushOrderType = 0;
order_p->pushOrderTimes=0;
m_OrderEntryMutex.lock();
if
(
!
m_simValidOrdersList
.
contains
(
orderId
))
{
if(!m_simValidOrdersList.contains(orderId)) {
m_simValidOrdersList.append(orderId);
}
m_OrderEntryMutex.unlock();
}
}
else
{
} */
}
else
{
result
=
false
;
error
=
QString
::
fromLocal8Bit
(
"订单号或者短号不能为空"
);
}
}
else
{
}
else
{
result
=
false
;
error
=
QString
::
fromLocal8Bit
(
"请求参数错误"
);
}
...
...
@@ -1412,7 +1448,6 @@ bool FlowControl::_ResponseSimphony04Request(const QJsonObject &content, QJsonOb
bool
FlowControl
::
_ResponseSimphony05Request
(
const
QJsonObject
&
content
,
QJsonObject
&
data
,
QString
&
error
)
{
// 从 _ResponseSimphony04Request 函数拷贝过来;未做任何改动;【后期将用05代替04的业务】
QLOG_INFO
()
<<
__FUNCTION__
;
bool
result
=
true
;
if
(
m_bLoginResult
&&
content
.
contains
(
"orderId"
)){
...
...
@@ -1425,13 +1460,11 @@ bool FlowControl::_ResponseSimphony05Request(const QJsonObject &content, QJsonOb
}
if
(
!
posCheckNo
.
isEmpty
()
&&!
orderId
.
isEmpty
())
{
OrderObject
*
order_p
=
m_FmOrdersMap
.
value
(
orderId
);
if
(
!
order_p
){
QLOG_ERROR
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---%1订单并不存在m_FmOrdersMap[键值对]中;m_FmOrdersMap.size()=%2--->>>>]"
).
arg
(
orderId
).
arg
(
m_FmOrdersMap
.
size
());
result
=
false
;
error
=
QString
::
fromLocal8Bit
(
"%1订单并不存在m_FmOrdersMap[键值对]中;m_FmOrdersMap.size()=%2"
).
arg
(
orderId
).
arg
(
m_FmOrdersMap
.
size
());
return
result
;
return
false
;
}
//更新小票号;
if
(
!
m_orderIdToPosCheckNoMap
.
contains
(
orderId
))
...
...
@@ -1449,33 +1482,21 @@ bool FlowControl::_ResponseSimphony05Request(const QJsonObject &content, QJsonOb
if
(
m_simValidOrdersList
.
contains
(
orderId
))
{
/**** action:04:功能:目前先不使用;
if(order_p->pushOrderType==1)
{
SimProcOrderDB::getInstance().updatePushOrderStatus(orderId,1);
SimProcOrderDB::getInstance().updatePosOrderCheckNo(orderId,posCheckNo);
}
else
{
SimProcOrderDB::getInstance().updateRefundOrderStatus(orderId,1);
}
****/
/***** 更新 POS本地数据库的打印信息是否成功;begin:*********/
int
retSyncOrderPrintInfo
=
0
;
//默认是同步POS本地数据失败;
bool
bRet
=
PrintSumBillPosDB
::
getInstance
().
isOrderAndCknoSumBillExist
(
orderId
,
posCheckNo
);
if
(
bRet
){
retSyncOrderPrintInfo
=
1
;
}
/*****POS本地数据库不存在 orderId &&posCheckNo*********/
}
/*****POS本地数据库不存在 orderId &&posCheckNo*********/
else
{
bRet
=
PrintSumBillPosDB
::
getInstance
().
insertOrderSumBill
(
order_p
,
posCheckNo
);
if
(
bRet
){
retSyncOrderPrintInfo
=
1
;
}
}
/***** 更新 POS本地数据库的打印信息是否成功;end:********/
}
/***** 更新 POS本地数据库的打印信息是否成功;end:********/
/***** 解析 同步更新POS本地数据库是否成功:retSyncOrderPrintInfo:1->成功********/
if
(
retSyncOrderPrintInfo
){
// 还没汇报完小票号,因此还不能从 m_simValidOrdersList 列表中移除;
//m_OrderEntryMutex.lock();
//m_simValidOrdersList.removeOne(orderId);
//m_OrderEntryMutex.unlock();
...
...
@@ -1484,95 +1505,25 @@ bool FlowControl::_ResponseSimphony05Request(const QJsonObject &content, QJsonOb
rObj
.
insert
(
"fm_ver"
,
"1.0"
);
cObj
.
insert
(
"pay_id"
,
"002"
);
cObj
.
insert
(
"pay_str"
,
QString
::
fromLocal8Bit
(
"非码外卖"
));
int
tempOrderType
,
tempOrderPayType
,
tempSbkAppPayType
=
0
;
QString
tempSbkAppPayValue
=
"0"
;
// 转换成星巴克规定的订单类型;
//星巴克的订单类型:1:新订单; 2:预订单; 3:客诉单;
if
(
3
==
order_p
->
getOrderType
()){
tempOrderType
=
12
;
tempOrderPayType
=
21
;
}
// OMS提供的数据://订单渠道: 星巴克APP,百度外卖,饿了么APP,美团外卖 ;
else
if
(
"MOD"
==
order_p
->
channel
){
tempOrderType
=
9
;
tempOrderPayType
=
84
;
//星巴克App端支付方式: 1:支付宝; 2:微信; 3:银联; 4:SVC卡;
if
(
4
==
order_p
->
payWay
){
tempSbkAppPayType
=
14
;
tempSbkAppPayValue
=
order_p
->
payfmId
;
}
else
if
(
1
==
order_p
->
payWay
){
tempSbkAppPayType
=
78
;
tempSbkAppPayValue
=
order_p
->
id
;
}
else
if
(
2
==
order_p
->
payWay
){
tempSbkAppPayType
=
77
;
tempSbkAppPayValue
=
order_p
->
id
;
}
else
{
tempSbkAppPayType
=
-
1
;
tempSbkAppPayValue
=
"-1"
;
}
}
else
if
(
"BAIDU"
==
order_p
->
channel
){
tempOrderType
=
11
;
tempOrderPayType
=
83
;
}
else
if
(
"ELE"
==
order_p
->
channel
){
tempOrderType
=
11
;
tempOrderPayType
=
83
;
}
else
if
(
"MEITUAN"
==
order_p
->
channel
){
tempOrderType
=
11
;
tempOrderPayType
=
83
;
}
else
{
tempOrderType
=
11
;
tempOrderPayType
=
83
;
}
cObj
.
insert
(
"orderOriginType"
,
tempOrderType
);
cObj
.
insert
(
"orderPayType"
,
tempOrderPayType
);
cObj
.
insert
(
"sbkAppPayType"
,
tempSbkAppPayType
);
cObj
.
insert
(
"sbkAppPayValue"
,
tempSbkAppPayValue
);
cObj
.
insert
(
"packFree"
,
order_p
->
packageFee
);
cObj
.
insert
(
"deliveryFree"
,
order_p
->
deliveryPrice
);
cObj
.
insert
(
"retSyncOrderPrintInfo"
,
retSyncOrderPrintInfo
);
//同步POS本地数据库打印信息结果:[1:同步成功;0:同步失败]
cObj
.
insert
(
"reqResult"
,
retSyncOrderPrintInfo
);
//同步POS本地数据库打印信息结果:[1:同步成功;0:同步失败]
cObj
.
insert
(
"paid_trans_id"
,
orderId
);
cObj
.
insert
(
"pos_sale_id"
,
posCheckNo
);
cObj
.
insert
(
"products_fee"
,
order_p
->
productPrice
);
// 商品金额
cObj
.
insert
(
"discount_fee"
,
0
);
// 优惠总额
//只有星巴克App 才挂MSR的虚拟卡号;第三方App MSR_NO='-1';
QString
temp_MSR_NO
;
if
(
"MOD"
==
order_p
->
channel
){
temp_MSR_NO
=
(
order_p
->
msr_no
.
length
()
==
0
)
?
order_p
->
customerId
:
order_p
->
msr_no
;
temp_MSR_NO
=
(
temp_MSR_NO
.
length
()
==
0
)
?
QString
::
fromLocal8Bit
(
"no_MsrNo_no_CustomerId"
)
:
temp_MSR_NO
;
}
else
{
temp_MSR_NO
=
"-1"
;
}
cObj
.
insert
(
"msr_card_no"
,
temp_MSR_NO
)
;
// MSR卡号
rObj
.
insert
(
"pay_id"
,
cObj
);
data
=
rObj
;
}
/***** 解析 同步更新POS本地数据库是否成功:retSyncOrderPrintInfo:0->失败*****/
}
/***** 解析 同步更新POS本地数据库是否成功:retSyncOrderPrintInfo:0->失败*****/
else
{
result
=
false
;
error
=
QString
::
fromLocal8Bit
(
"POS本地数据库的打印信息操作失败"
);
}
}
else
{
/**** action:04:功能:目前先不使用;
order_p->isCancle = false;
order_p->isPush = true;
order_p->pushOrderType = 0;
order_p->pushOrderTimes=0;
****/
}
else
{
m_OrderEntryMutex
.
lock
();
if
(
!
m_simValidOrdersList
.
contains
(
orderId
))
{
m_simValidOrdersList
.
append
(
orderId
);
}
m_OrderEntryMutex
.
unlock
();
}
}
else
{
}
else
{
result
=
false
;
error
=
QString
::
fromLocal8Bit
(
"订单号或者短号不能为空"
);
}
error
=
QString
::
fromLocal8Bit
(
"订单编号 和 POS小票号不能为空"
);
}
else
{
}
else
{
result
=
false
;
error
=
QString
::
fromLocal8Bit
(
"请求参数错误"
);
}
...
...
@@ -1693,10 +1644,10 @@ bool FlowControl::_ResponseSimReqFristOrderData(QJsonObject &data, QString &erro
tempSbkAppPayValue
=
orderObject
->
payfmId
;
}
else
if
(
1
==
orderObject
->
payWay
){
tempSbkAppPayType
=
78
;
tempSbkAppPayValue
=
orderObject
->
id
;
tempSbkAppPayValue
=
orderObject
->
thirdPartyBatch
;
}
else
if
(
2
==
orderObject
->
payWay
){
tempSbkAppPayType
=
77
;
tempSbkAppPayValue
=
orderObject
->
id
;
tempSbkAppPayValue
=
orderObject
->
thirdPartyBatch
;
}
else
{
tempSbkAppPayType
=
-
1
;
tempSbkAppPayValue
=
"-1"
;
...
...
@@ -1723,6 +1674,7 @@ 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
(
"packFree"
,
orderObject
->
packageFee
);
cObj
.
insert
(
"deliveryFree"
,
orderObject
->
deliveryPrice
);
cObj
.
insert
(
"pos_sale_id"
,
orderObject
->
posCheckNo
);
...
...
@@ -1907,15 +1859,15 @@ void FlowControl::onGetOrderDetails(const QString& orderId)
void
FlowControl
::
onSerachOrder
(
const
QString
&
text
)
{
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---FlowControl::onSerachOrder:输入的数字串:%1 --->>>>]"
).
arg
(
text
);
QMap
<
QString
,
QString
>
orderMap
;
if
(
!
text
.
isEmpty
())
{
QMap
<
QString
,
OrderObject
*>::
iterator
order
;
for
(
order
=
m_FmOrdersMap
.
begin
();
order
!=
m_FmOrdersMap
.
end
();
order
++
)
{
QString
orderId
=
order
.
key
();
QString
phoneId
=
order
.
value
()
->
p
hone
;
QString
phoneId
=
order
.
value
()
->
consigneeP
hone
;
while
(
!
orderId
.
at
(
0
).
isDigit
())
{
orderId
=
orderId
.
mid
(
1
);
...
...
fmTakeout/Model/orderObject.h
View file @
e46a6f81
...
...
@@ -12,6 +12,7 @@ class OrderObject : public QObject
Q_PROPERTY
(
QString
id
READ
getId
WRITE
setId
)
Q_PROPERTY
(
QString
payfmId
READ
getPayfmId
WRITE
setPayfmId
)
Q_PROPERTY
(
QString
thirdPartyBatch
READ
getThirdPartyBatch
WRITE
setThirdPartyBatch
)
Q_PROPERTY
(
int
orderType
READ
getOrderType
WRITE
setOrderType
)
Q_PROPERTY
(
QString
orgOrderId
READ
getOrgOrderId
WRITE
setOrgOrderId
)
Q_PROPERTY
(
QString
waybillId
READ
getWaybillId
WRITE
setWaybillId
)
...
...
@@ -87,6 +88,7 @@ public:
QString
id
;
//编号
QString
payfmId
;
//FM唯一码
QString
thirdPartyBatch
;
//第三方交易流水号
int
orderType
;
//订单类型: 用来区分是 正常订单(1) 预订单(2) 还是 客诉单:3 (星巴克定义客诉单的类型:12);
QString
orgOrderId
;
//原始订单编号
QString
waybillId
;
//运单号
...
...
@@ -150,6 +152,10 @@ public:
inline
QString
getPayfmId
()
const
{
return
payfmId
;}
inline
void
setPayfmId
(
const
QString
&
v
){
payfmId
=
v
;}
inline
QString
getThirdPartyBatch
()
const
{
return
thirdPartyBatch
;}
inline
void
setThirdPartyBatch
(
const
QString
&
v
){
thirdPartyBatch
=
v
;}
inline
int
getOrderType
()
const
{
return
orderType
;}
inline
void
setOrderType
(
const
int
&
v
){
orderType
=
v
;}
...
...
fmTakeout/Network/billSocket.cpp
View file @
e46a6f81
...
...
@@ -4,6 +4,7 @@
#include "preDefine.h"
#include <QEventLoop>
#include <QTimer>
#include <QFile>
#include <QSslConfiguration>
BillSocket
::
BillSocket
(
QObject
*
parent
)
...
...
@@ -99,4 +100,30 @@ void BillSocket::SetSslConfig()
m_sslConfig
.
setPeerVerifyMode
(
QSslSocket
::
VerifyNone
);
m_sslConfig
.
setProtocol
(
QSsl
::
AnyProtocol
);
m_networkRequest
.
setSslConfiguration
(
m_sslConfig
);
/*
QSslConfiguration m_sslConfig = QSslConfiguration::defaultConfiguration();
QString keyDir = QGuiApplication::applicationDirPath() + "/key/";
// 创建客户端证书
QFile fileCrt(keyDir+"客户端证书.pem");
if (!fileCrt.open(QIODevice::ReadOnly))
qDebug() << "!fileCrt.open==" ;
const QSslCertificate certificate(&fileCrt, QSsl::Pem);
fileCrt.close();
// 创建客户端私钥
QFile fileKey(keyDir+"key.pem");
fileKey.open(QIODevice::ReadOnly);
const QSslKey prvateKey(&fileKey, QSsl::Rsa);
fileKey.close();
m_sslConfig.setPeerVerifyMode(QSslSocket::VerifyNone);
m_sslConfig.setProtocol(QSsl::TlsV1_0);
m_sslConfig.setPrivateKey(prvateKey);
m_sslConfig.setLocalCertificate(certificate);
//加入ssl配置信息
m_networkRequest.setSslConfiguration(m_sslConfig);
m_networkR
*/
}
fmTakeout/mainForm.cpp
View file @
e46a6f81
...
...
@@ -35,6 +35,7 @@ MainForm::MainForm(QWidget *parent) :
qRegisterMetaType
<
dishesObject
>
(
"dishesObject"
);
qRegisterMetaType
<
QMap
<
QString
,
QMultiMap
<
QString
,
dishesObject
>
>
>
(
"QMap<QString, QMultiMap<QString, dishesObject>>"
);
qRegisterMetaType
<
QMap
<
QString
,
int
>
>
(
"QMap<QString, int>"
);
qRegisterMetaType
<
QMap
<
QString
,
QString
>
>
(
"QMap<QString, QString>"
);
// 连接信号槽
connect
(
&
m_timeTimer
,
&
QTimer
::
timeout
,
this
,
&
MainForm
::
onSetCurrentTime
);
...
...
@@ -96,7 +97,7 @@ void MainForm::MyShow()
m_resultForm
=
new
QListWidget
(
this
);
m_resultForm
->
setObjectName
(
"mainListWdg0"
);
m_resultForm
->
setFixedSize
(
34
0
,
200
);
m_resultForm
->
setFixedSize
(
40
0
,
200
);
m_resultForm
->
move
(
70
,
ui
->
mainFrmSearch
->
pos
().
y
()
-
190
);
m_resultForm
->
hide
();
connect
(
m_resultForm
,
&
QListWidget
::
itemClicked
,
this
,
&
MainForm
::
onSearchResultItemClicked
);
...
...
@@ -180,11 +181,9 @@ void MainForm::onMainTabBtnClicked()
_RevertBtnTable
();
QPushButton
*
btn
=
(
QPushButton
*
)
sender
();
m_currentTable
=
findChild
<
QTableWidget
*>
(
btn
->
property
(
"tableName"
).
toString
());
m_currentTable
->
show
();
btn
->
setChecked
(
true
);
btn
->
setEnabled
(
false
);
m_prevBtn
=
btn
;
m_prevTable
=
m_currentTable
;
}
...
...
@@ -216,9 +215,8 @@ void MainForm::onShowOrderDetails(OrderObject *orderObject)
void
MainForm
::
onShowSearchOrderResult
(
const
QMap
<
QString
,
QString
>&
orderIdList
)
{
if
(
orderIdList
.
isEmpty
())
{
QLOG_INFO
()
<<
QString
(
"[<<<<---MainForm::onShowSearchOrderResult: orderIdList.length:%1 --->>>>]"
).
arg
(
orderIdList
.
count
());
if
(
orderIdList
.
isEmpty
())
{
m_resultForm
->
hide
();
return
;
}
...
...
@@ -271,6 +269,8 @@ void MainForm::_SetTablesSortEnable(bool bEnable)
foreach
(
QTableWidget
*
table
,
m_tableList
)
{
table
->
setSortingEnabled
(
bEnable
);
// 默认按 第六列的订单创建时间降序;
table
->
sortByColumn
(
5
,
Qt
::
DescendingOrder
);
}
}
...
...
fmTakeout/mainForm.ui
View file @
e46a6f81
...
...
@@ -1017,7 +1017,7 @@
</column>
<column>
<property name="text">
<string>
操作
</string>
<string>
异常原因
</string>
</property>
</column>
</widget>
...
...
fmTakeout/preDefine.h
View file @
e46a6f81
...
...
@@ -55,6 +55,7 @@
#define JSON_USERID "userId"
#define JSON_BUSINESSDATE "business_date"
#define JSON_STATUSCODE "statusCode"
#define JSON_LOGINCODE "code"
#define JSON_ERRCODE "code"
#define JSON_STATUS "status"
#define JSON_ORDERSTATUS "orderStatus"
...
...
fmTakeout/refdishesForm.cpp
View file @
e46a6f81
...
...
@@ -8,18 +8,15 @@ refDishesForm::refDishesForm(QWidget *parent) :
ui
(
new
Ui
::
refDishesForm
)
{
ui
->
setupUi
(
this
);
setWindowFlags
(
this
->
windowFlags
()
|
Qt
::
FramelessWindowHint
);
setAttribute
(
Qt
::
WA_TranslucentBackground
);
this
->
setModal
(
true
);
connect
(
this
,
&
refDishesForm
::
updDishes
,
&
FlowControl
::
GetInstance
(),
&
FlowControl
::
onUpdDishesForRef
);
}
refDishesForm
::~
refDishesForm
()
{
delete
ui
;
}
void
refDishesForm
::
InitData
(
OrderObject
*
obj
)
...
...
@@ -81,11 +78,12 @@ void refDishesForm::InitData(OrderObject *obj)
void
refDishesForm
::
_Init
()
{
ui
->
refDishesBtnOk
->
setEnabled
(
false
);
foreach
(
QPushButton
*
btn
,
m_btnList
)
{
QWidget
*
parentQWid
=
btn
->
parentWidget
();
disconnect
(
btn
,
&
QPushButton
::
toggled
,
this
,
&
refDishesForm
::
onDishesBtnToggled
);
delete
btn
;
parentQWid
->
deleteLater
();
}
m_btnList
.
clear
();
...
...
@@ -99,6 +97,7 @@ void refDishesForm::_Init()
{
ui
->
refDishesTable
->
removeRow
(
i
);
}
ui
->
refDishesTable
->
clear
();
m_dishesMap
.
clear
();
}
...
...
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