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
239d50c9
Commit
239d50c9
authored
Jul 07, 2018
by
wuyang.zou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix bug: 新增 OrderOriginType 和 OrderPayTape 数据传递到 Simpyhony
parent
e6b9aba4
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
93 additions
and
92 deletions
+93
-92
fmTakeout/Control/flowControl.cpp
+77
-88
fmTakeout/Model/dishesObject.h
+5
-0
fmTakeout/Model/orderObject.cpp
+2
-2
fmTakeout/Model/orderObject.h
+6
-1
fmTakeout/detailForm.cpp
+1
-0
fmTakeout/refuseForm.cpp
+2
-1
No files found.
fmTakeout/Control/flowControl.cpp
View file @
239d50c9
...
...
@@ -65,71 +65,6 @@ FlowControl::FlowControl()
/*** 启动Http服务:用来响应Simphony_Script获取订单的请求***/
loaclHttpServer
=
new
LoaclHttpServer
();
loaclHttpServer
->
run
();
/*
m_tcpServerManage = new JQHttpServer::TcpServerManage(10);
QLOG_INFO()<< "[<<<<---FlowControl::Receive Simphony_Script Request:m_tcpServerManage:--->>>>]" << m_tcpServerManage;
m_tcpServerManage->setHttpAcceptedCallback( [this]( const QPointer< JQHttpServer::Session > &session )
{
QLOG_INFO()<< "[<<<<---FlowControl::Receive Simphony_Script Request:currentThreadId:--->>>>]" << QThread::currentThreadId();
// 回调发生在新的线程内,不是主线程。
//解析FM外卖插件HTTP服务与Simphony_Script请求的会话连接是否断开: 会话连接未断开
if(!session.isNull())
{
QString recvData = QString::fromUtf8(session->requestRawData());
QLOG_INFO() << QString::fromLocal8Bit("[<<<<---Receive Simphony_Script Request recvData: %1--->>>>]").arg(recvData);
QJsonParseError jsonError;
QJsonObject recvObject;
QJsonObject replyObject;
int status; //解析json结果
QString msg;
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();
}
//解析Simphony_Script Request json格式: 解析成功
else {
//解析:FM外卖插件为响应Simphony请求准备返回数据:准备返回数据成功
if(_ResponseSimphonyRequest(recvObject,data, msg))
{
status = 100;
}
//解析:FM外卖插件为响应Simphony请求准备返回数据:准备返回数据失败
else{
status = 0;
}
//解析:等待Simphony获取的有效订单列表是否为空: sim有效订单列表不为空
if(!m_simValidOrdersList.isEmpty())
{
iscontinue=1;
}
}
//将FM外卖插件中的合法有效数据返回给上面Simphony_Script发过来的请求
replyObject = _PackHttpReplyJson(status, msg, data,iscontinue);
QLOG_INFO() << QString::fromLocal8Bit("[<<<<---FM外卖插件回应Simphony_Script拉单请求后的返回结果:--->>>>]") << replyObject;
session->replyJsonObject(replyObject);
}
//解析FM外卖插件HTTP服务与Simphony_Script请求的会话连接是否断开: 会话连接断开
else{
QLOG_INFO() << QString::fromLocal8Bit("[<<<<---FM外卖插件Http服务与Simphony_Script请求会话断开连接:--->>>>]");
}
} );
//FM外卖插件绑定启动HTTP服务的端口
int port = ConfigManger::GetInstance().GetHttpServerPort();
QLOG_INFO() << QString::fromLocal8Bit("[<<<<---FM外卖插件Http服务监听端口:%1 :--->>>>]").arg(port);
if(m_tcpServerManage->listen( QHostAddress::Any, port))
{
QLOG_INFO() << QString::fromLocal8Bit("[<<<<---FM外卖插件Http服务 绑定端口成功:--->>>>]");
}else{
QLOG_INFO() << QString::fromLocal8Bit("[<<<<---FM外卖插件Http服务 绑定端口失败:--->>>>]");
}
*/
_ClickOMSAssignArea
();
m_loginTimer
->
start
(
20
*
1000
);
...
...
@@ -259,21 +194,6 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
QLOG_INFO
()
<<
QString
(
"[<<<<---FmTakeout _OrderAnalysis-> orderObject->orderStatus:--->>>>]"
)
<<
orderObject
->
orderStatus
;
switch
(
orderObject
->
orderStatus
){
case
OrderObject
:
:
NewOrder
:
if
(
!
orderObject
->
isPush
)
{
orderObject
->
pushOrderType
=
1
;
orderObject
->
pushOrderTimes
=
0
;
m_OrderEntryMutex
.
lock
();
if
(
!
m_simValidOrdersList
.
contains
(
orderObject
->
id
))
{
m_simValidOrdersList
.
append
(
orderObject
->
id
);
}
m_OrderEntryMutex
.
unlock
();
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 --->>>>]"
);
_ConfirmOrder
(
orderObject
->
id
);
//新单过来后自动接单;
}
break
;
case
OrderObject
:
:
Confirmed
:
if
(
!
orderObject
->
isPush
)
...
...
@@ -307,9 +227,9 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
m_simValidOrdersList
.
append
(
orderObject
->
id
);
}
m_OrderEntryMutex
.
unlock
();
QLOG_INFO
()
<<
QString
(
"[<<<<---FmTakeout _OrderAnalysis
->
m_simValidOrdersList.num:%1 --->>>>]"
)
<<
m_simValidOrdersList
.
count
();
QLOG_INFO
()
<<
QString
(
"[<<<<---FmTakeout _OrderAnalysis
->
m_simValidOrdersList:%1 --->>>>]"
)
<<
m_simValidOrdersList
;
QLOG_INFO
()
<<
QString
(
"[<<<<---FmTakeout _OrderAnalysis
->
_ClickOMSAssignArea --->>>>]"
);
QLOG_INFO
()
<<
QString
(
"[<<<<---FmTakeout _OrderAnalysis
:RequestRefund
m_simValidOrdersList.num:%1 --->>>>]"
)
<<
m_simValidOrdersList
.
count
();
QLOG_INFO
()
<<
QString
(
"[<<<<---FmTakeout _OrderAnalysis
:RequestRefund
m_simValidOrdersList:%1 --->>>>]"
)
<<
m_simValidOrdersList
;
QLOG_INFO
()
<<
QString
(
"[<<<<---FmTakeout _OrderAnalysis
:RequestRefund
_ClickOMSAssignArea --->>>>]"
);
_ClickOMSAssignArea
();
}
break
;
...
...
@@ -338,8 +258,11 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
{
m_simValidOrdersList
.
append
(
orderObject
->
id
);
}
_ClickOMSAssignArea
();
m_OrderEntryMutex
.
unlock
();
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 --->>>>]"
);
_ClickOMSAssignArea
();
}
/***case:校验此订单push到POS后的小票号是否空:[POS已模拟点单但未返回小票号]***/
//else{未处理}
...
...
@@ -1434,6 +1357,32 @@ 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 = 11 ,tempOrderPayType = 83;
// 转换成星巴克规定的订单类型;
if(3 == orderObject->getOrderType()){
tempOrderType = 12;
tempOrderPayType = 21;
}
// OMS提供的数据://订单渠道: 1 星巴克APP 2饿了么APP 3 客诉单;
else if(1 == orderObject->channel.toInt()){
tempOrderType = 9;
tempOrderPayType = 84;
}else if(2 == orderObject->channel.toInt()){
tempOrderType = 11;
tempOrderPayType = 83;
}else if(3 == orderObject->channel.toInt()){
tempOrderType = 12;
tempOrderPayType = 21;
}else if(4 == orderObject->channel.toInt()){
tempOrderType = 11;
tempOrderPayType = 83;
}
tempOrderType = 11;
tempOrderPayType = 83;
*/
cObj
.
insert
(
"orderOriginType"
,
11
);
cObj
.
insert
(
"orderPayType"
,
83
);
cObj
.
insert
(
"retSyncOrderPrintInfo"
,
retSyncOrderPrintInfo
);
//同步POS本地数据库打印信息结果:[1:同步成功;0:同步失败]
cObj
.
insert
(
"paid_trans_id"
,
orderId
);
cObj
.
insert
(
"pos_sale_id"
,
posCheckNo
);
...
...
@@ -1572,6 +1521,30 @@ bool FlowControl::_ResponseSimReqFristOrderData(QJsonObject &data, QString &erro
rObj
.
insert
(
"fm_ver"
,
"1.0"
);
cObj
.
insert
(
"pay_id"
,
"002"
);
cObj
.
insert
(
"pay_str"
,
QString
::
fromLocal8Bit
(
"非码外卖"
));
int
tempOrderType
=
11
,
tempOrderPayType
=
83
;
// 转换成星巴克规定的订单类型;
if
(
3
==
orderObject
->
getOrderType
()){
tempOrderType
=
12
;
tempOrderPayType
=
21
;
}
// OMS提供的数据://订单渠道: 1 星巴克APP 2饿了么APP 3 客诉单;
else
if
(
1
==
orderObject
->
channel
.
toInt
()){
tempOrderType
=
9
;
tempOrderPayType
=
84
;
}
else
if
(
2
==
orderObject
->
channel
.
toInt
()){
tempOrderType
=
11
;
tempOrderPayType
=
83
;
}
else
if
(
3
==
orderObject
->
channel
.
toInt
()){
tempOrderType
=
12
;
tempOrderPayType
=
21
;
}
else
if
(
4
==
orderObject
->
channel
.
toInt
()){
tempOrderType
=
11
;
tempOrderPayType
=
83
;
}
tempOrderType
=
11
;
tempOrderPayType
=
83
;
cObj
.
insert
(
"orderOriginType"
,
tempOrderType
);
cObj
.
insert
(
"orderPayType"
,
tempOrderPayType
);
cObj
.
insert
(
"pos_sale_id"
,
orderObject
->
posCheckNo
);
cObj
.
insert
(
"order_status"
,
orderObject
->
orderStatus
);
//订单的状态
cObj
.
insert
(
"pay_ebcode"
,
orderObject
->
channel
);
...
...
@@ -1607,17 +1580,23 @@ bool FlowControl::_ResponseSimReqFristOrderData(QJsonObject &data, QString &erro
{
QJsonObject
tObj
;
dishesObject
*
dish
=
orderObject
->
proList
.
at
(
i
);
if
(
orderObject
->
proList
.
at
(
i
)
->
code
.
contains
(
"Default"
,
Qt
::
CaseSensitive
)){
continue
;
}
tObj
.
insert
(
"consume_num"
,
orderObject
->
proList
.
at
(
i
)
->
qty
);
tObj
.
insert
(
"pid"
,
orderObject
->
proList
.
at
(
i
)
->
code
);
tObj
.
insert
(
"original_price"
,
orderObject
->
proList
.
at
(
i
)
->
price
);
// begin 整合子商品开始;
QJsonArray
subProduct
;
QJsonObject
sObj
;
// 处理原始的配料信息;
if
(
!
dish
->
sub_products
.
isEmpty
())
{
QJsonArray
subProduct
;
for
(
int
j
=
0
;
j
<
dish
->
sub_products
.
count
();
j
++
)
{
QJsonObject
sObj
;
dishesObject
*
subDish
=
dish
->
sub_products
.
at
(
j
);
if
(
!
subDish
->
code
.
isEmpty
())
if
(
!
subDish
->
code
.
isEmpty
()
&&
!
subDish
->
code
.
contains
(
"Default"
,
Qt
::
CaseSensitive
)
)
{
sObj
.
insert
(
"consume_num"
,
subDish
->
qty
);
sObj
.
insert
(
"pid"
,
subDish
->
code
);
...
...
@@ -1625,8 +1604,18 @@ bool FlowControl::_ResponseSimReqFristOrderData(QJsonObject &data, QString &erro
subProduct
.
insert
(
0
,
sObj
);
}
}
tObj
.
insert
(
"sub_products"
,
subProduct
);
}
// 处理商品的属性(热 -> 特别热)的额外配料信息;
if
(
orderObject
->
proList
.
at
(
i
)
->
options
.
length
()){
sObj
.
insert
(
"consume_num"
,
1
);
sObj
.
insert
(
"pid"
,
orderObject
->
proList
.
at
(
i
)
->
options
);
sObj
.
insert
(
"original_price"
,
0
);
subProduct
.
insert
(
0
,
sObj
);
}
// 汇总插入子商品[sub_products];
if
(
subProduct
.
size
()){
tObj
.
insert
(
"sub_products"
,
subProduct
);
}
// end 整合子商品结束;
products
.
insert
(
i
,
tObj
);
}
rObj
.
insert
(
"products"
,
products
);
...
...
fmTakeout/Model/dishesObject.h
View file @
239d50c9
...
...
@@ -15,6 +15,7 @@ class dishesObject : public QObject
Q_PROPERTY
(
int
packagePrice
READ
getpackagePrice
WRITE
setpackagePrice
)
Q_PROPERTY
(
int
qty
READ
getqty
WRITE
setqty
)
Q_PROPERTY
(
int
price
READ
getprice
WRITE
setprice
)
Q_PROPERTY
(
QString
options
READ
getoptions
WRITE
setoptions
)
public
:
explicit
dishesObject
(
QObject
*
parent
=
0
)
:
QObject
(
parent
){}
...
...
@@ -29,6 +30,7 @@ public:
int
qty
;
int
packagePrice
;
int
price
;
QString
options
;
QList
<
dishesObject
*>
sub_products
;
protected
:
...
...
@@ -44,6 +46,9 @@ protected:
inline
int
getprice
(){
return
price
;
}
inline
void
setprice
(
const
int
&
v
){
price
=
v
;
}
inline
QString
getoptions
(){
return
options
;
}
inline
void
setoptions
(
const
QString
&
v
){
options
=
v
;
}
inline
int
getpackagePrice
(){
return
packagePrice
;
}
inline
void
setpackagePrice
(
const
int
&
v
){
packagePrice
=
v
;
}
...
...
fmTakeout/Model/orderObject.cpp
View file @
239d50c9
...
...
@@ -72,8 +72,8 @@ QString OrderObject::getChannelName()
switch
(
value
)
{
case
1
:
return
QString
::
fromLocal8Bit
(
"星巴克"
);
case
2
:
return
QString
::
fromLocal8Bit
(
"
百度外卖
"
);
case
3
:
return
QString
::
fromLocal8Bit
(
"
饿了么"
);
case
2
:
return
QString
::
fromLocal8Bit
(
"
饿了么
"
);
case
3
:
return
QString
::
fromLocal8Bit
(
"
客诉单"
);
//百度外卖
deafult:
return
QString
::
fromLocal8Bit
(
"未知"
);
}
return
QString
::
fromLocal8Bit
(
"未知"
);
...
...
fmTakeout/Model/orderObject.h
View file @
239d50c9
...
...
@@ -11,6 +11,7 @@ class OrderObject : public QObject
Q_PROPERTY
(
QString
id
READ
getId
WRITE
setId
)
Q_PROPERTY
(
int
orderType
READ
getOrderType
WRITE
setOrderType
)
Q_PROPERTY
(
QString
orgOrderId
READ
getOrgOrderId
WRITE
setOrgOrderId
)
Q_PROPERTY
(
QString
waybillId
READ
getWaybillId
WRITE
setWaybillId
)
Q_PROPERTY
(
QString
watercourseId
READ
getWatercourseId
WRITE
setWatercourseId
)
...
...
@@ -84,6 +85,7 @@ public:
QString
id
;
//编号
int
orderType
;
//订单类型: 用来区分是 正常订单(1) 预订单(2) 还是 客诉单:3 (星巴克定义客诉单的类型:12);
QString
orgOrderId
;
//原始订单编号
QString
waybillId
;
//运单号
QString
watercourseId
;
//流水号
...
...
@@ -96,7 +98,7 @@ public:
QString
storeId
;
QString
storeName
;
QString
storeAddress
;
QString
channel
;
QString
channel
;
//订单渠道: 1 星巴克APP 2饿了么APP 3 客诉单;
QString
payWay
;
QString
deliveryTime
;
//配送时间
QString
riderName
;
//骑手名
...
...
@@ -142,6 +144,9 @@ public:
inline
QString
getId
()
const
{
return
id
;}
inline
void
setId
(
const
QString
&
v
){
id
=
v
;}
inline
int
getOrderType
()
const
{
return
orderType
;}
inline
void
setOrderType
(
const
int
&
v
){
orderType
=
v
;}
inline
QString
getOrgOrderId
()
const
{
return
orgOrderId
;}
inline
void
setOrgOrderId
(
const
QString
&
v
){
orgOrderId
=
v
;}
...
...
fmTakeout/detailForm.cpp
View file @
239d50c9
...
...
@@ -143,6 +143,7 @@ void DetailForm::onOperaBtnClicked()
// }
// else if(pBtn->text()=="退单")
// {
m_refuseForm
->
SetOrderInfo
(
m_orderObject
);
m_refuseForm
->
show
();
if
(
m_refuseForm
->
exec
()
==
QDialog
::
Accepted
)
{
...
...
fmTakeout/refuseForm.cpp
View file @
239d50c9
...
...
@@ -58,7 +58,8 @@ void RefuseForm::on_reason2_toggled(bool checked)
if
(
QDialog
::
Accepted
==
m_refDishesForm
->
exec
())
{
ui
->
refuseBtnOk
->
setEnabled
(
true
);
m_reasonCode
=
"菜品已售完"
;
//m_reasonCode=
m_reasonStr
=
QString
::
fromLocal8Bit
(
"菜品已售完"
);
on_refuseBtnOk_clicked
();
}
else
{
...
...
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