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
fab216f4
Commit
fab216f4
authored
Apr 26, 2020
by
wuyang.zou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add new function:
starbucks Now 扫码上吊屏;解除盒子 下吊屏;
parent
28e695f7
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
152 additions
and
60 deletions
+152
-60
fmTakeout/Control/flowControl.cpp
+63
-30
fmTakeout/Control/flowControl.h
+4
-2
fmTakeout/DTools/pmsOrdersData.cpp
+15
-8
fmTakeout/DTools/pmsOrdersData.h
+1
-1
fmTakeout/DTools/qtRedisClient.cpp
+10
-5
fmTakeout/DTools/qtRedisClient.h
+3
-1
fmTakeout/Model/couponsObject.h
+21
-6
fmTakeout/Model/dishesObject.h
+7
-0
fmTakeout/Model/orderObject.h
+21
-0
fmTakeout/fmTakeout.rc
+5
-5
fmTakeout/preDefine.h
+2
-2
No files found.
fmTakeout/Control/flowControl.cpp
View file @
fab216f4
...
...
@@ -61,11 +61,13 @@ FlowControl::FlowControl()
m_pullTimer
=
new
QTimer
(
this
);
m_reportOMSReocrdOrderTimer
=
new
QTimer
(
this
);
m_loginTimer
=
new
QTimer
(
this
);
m_notifySimPullTimer
=
new
QTimer
(
this
);
m_notifyPmsPullTimer
=
new
QTimer
(
this
);
m_cyclePullAllOrderTimer
=
new
QTimer
(
this
);
m_remindCasherBlinkFloatTimer
=
new
QTimer
(
this
);
connect
(
m_loginTimer
,
&
QTimer
::
timeout
,
this
,
&
FlowControl
::
_ClickToLogin
);
connect
(
m_notifySimPullTimer
,
&
QTimer
::
timeout
,
this
,
&
FlowControl
::
_ClickToNotifySimPullOrder
);
connect
(
m_notifyPmsPullTimer
,
&
QTimer
::
timeout
,
this
,
&
FlowControl
::
_NotifyPmsPullOrder
);
connect
(
m_cyclePullAllOrderTimer
,
&
QTimer
::
timeout
,
this
,
&
FlowControl
::
_NotifyCyclePullAllOrder
);
connect
(
m_remindCasherBlinkFloatTimer
,
&
QTimer
::
timeout
,
this
,
&
FlowControl
::
_RemindCasherBlinkFloatForm
);
connect
(
m_pullTimer
,
&
QTimer
::
timeout
,
this
,
&
FlowControl
::
_PullOrderData
);
connect
(
m_reportOMSReocrdOrderTimer
,
&
QTimer
::
timeout
,
this
,
&
FlowControl
::
_ReportOMSRecordOrderInfo
);
...
...
@@ -102,7 +104,7 @@ FlowControl::FlowControl()
_InitDataBeforeLogin
();
m_loginTimer
->
start
(
6
*
1000
);
m_notify
Sim
PullTimer
->
start
(
1000
*
5
);
m_notify
Pms
PullTimer
->
start
(
1000
*
5
);
//_TestRedis();
//_TestInsertOrderData();
...
...
@@ -112,7 +114,6 @@ void FlowControl::_TestRedis(){
/* Test Redis Function */
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---FM外卖插件 Beign Test Redis:--->>>>]"
);
QtRedisClient
::
getInstance
().
testOrderRedisExist
(
QString
(
"1234"
));
QtRedisClient
::
getInstance
().
pushOrder2Redis
(
QString
(
"ldh"
),
1
);
}
void
FlowControl
::
_TestInsertOrderData
(){
...
...
@@ -159,13 +160,17 @@ void FlowControl::_TestInsertOrderData(){
m_FmOrdersMap
.
insert
(
testOrderObject
->
id
,
testOrderObject
);
m_simValidOrdersList
.
append
(
testOrderObject
->
id
);
QLOG_INFO
()
<<
QString
(
"[<<<<---FlowControl::_TestInsertOrderData() m_simValidOrdersList Append Success:%1--->>>>]"
).
arg
(
testOrderObject
->
id
);
QtRedisClient
::
getInstance
().
pushOrder2Redis
(
testOrderObject
);
QLOG_INFO
()
<<
QString
(
"[<<<<---FlowControl::test pushOrder2Redis() orderId:%1 Success--->>>>]"
).
arg
(
testOrderObject
->
id
);
}
}
bool
FlowControl
::
_AppendOrderInfo2Redis
(
const
OrderObject
*
orderObject
)
{
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---FlowControl::_AppendOrderInfo2Redis: OrderId:%1--->>>>]"
).
arg
(
orderObject
->
id
);
return
QtRedisClient
::
getInstance
().
pushOrder2Redis
(
orderObject
->
id
,
orderObject
->
orderStatus
);
return
QtRedisClient
::
getInstance
().
pushOrder2Redis
(
orderObject
);
}
void
FlowControl
::
_GetIpAddress
()
...
...
@@ -302,62 +307,89 @@ void FlowControl::_SmartTriggerClickPosBtn(const bool bTimerTrigger)
}
void
FlowControl
::
_
ClickToNotifySim
PullOrder
()
void
FlowControl
::
_
NotifyPms
PullOrder
()
{
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---
触发按钮点击事件:_ClickToNotifySim
PullOrder: m_simValidOrdersList.isEmpty()==%1--->>>>>]"
).
arg
(
m_simValidOrdersList
.
isEmpty
());
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---
:_NotifyPms
PullOrder: m_simValidOrdersList.isEmpty()==%1--->>>>>]"
).
arg
(
m_simValidOrdersList
.
isEmpty
());
if
(
!
m_simValidOrdersList
.
isEmpty
())
{
m_notify
Sim
PullTimer
->
start
(
1000
*
5
);
m_notify
Pms
PullTimer
->
start
(
1000
*
5
);
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---FM插件 向PMS数据库插入数据; 并添加 Redis --->>>>]"
);
QString
listFirstOrderId
=
m_simValidOrdersList
.
takeFirst
();
OrderObject
*
orderObject
=
m_FmOrdersMap
.
value
(
listFirstOrderId
);
//更新插入结果;
bool
updateInsertRet
=
false
;
// 更新/ 插入结果;
bool
updateRet
=
false
;
bool
insertRet
=
false
;
bool
bExistOrder
=
false
;
if
(
orderObject
)
{
//如果订单存在库中则更新订单状态;
if
(
PmsOrdersData
::
getInstance
().
isOrderExist
(
orderObject
->
id
)
){
updateInsertRet
=
PmsOrdersData
::
getInstance
().
updateOrderStatus
(
orderObject
,
orderObject
->
orderStatus
);
bExistOrder
=
PmsOrdersData
::
getInstance
().
isOrderExist
(
orderObject
->
id
);
if
(
bExistOrder
){
updateRet
=
PmsOrdersData
::
getInstance
().
updateOrderStatus
(
orderObject
,
orderObject
->
orderStatus
,
orderObject
->
makeStatus
);
//不存在则插入;
}
else
{
QString
pmsOrderRef
;
updateI
nsertRet
=
PmsOrdersData
::
getInstance
().
insertOrderData
(
orderObject
,
pmsOrderRef
);
i
nsertRet
=
PmsOrdersData
::
getInstance
().
insertOrderData
(
orderObject
,
pmsOrderRef
);
}
QLOG_INFO
()
<<
QString
(
"[<<<<---FlowControl::_
ClickToNotifySimPullOrder Insert Mysql DB Order:%1 Insert Ret:
--->>>>]"
)
.
arg
(
orderObject
->
id
)
<<
updateInsertRet
;
//如果订单
插入
数据库成功后,向Redis中添加此订单信息;
if
(
updateInsertRet
)
{
QLOG_INFO
()
<<
QString
(
"[<<<<---FlowControl::_
NotifyPmsPullOrder Insert Mysql DB Order:%1 bExistOrder:%2 insertRet:%3 updateRet:%4
--->>>>]"
)
.
arg
(
orderObject
->
id
)
.
arg
(
bExistOrder
?
1
:
0
).
arg
(
insertRet
?
1
:
0
).
arg
(
updateRet
?
1
:
0
)
;
//如果订单
插入/更新
数据库成功后,向Redis中添加此订单信息;
if
(
insertRet
||
updateRet
)
{
for
(
int
i
=
0
;
i
<
3
;
i
++
)
{
if
(
_AppendOrderInfo2Redis
(
orderObject
)
)
{
QLOG_INFO
()
<<
QString
(
"[<<<<---FlowControl::_ClickToNotifySimPullOrder _AppendOrderInfo2Redis Success Try times:%1--->>>>]"
).
arg
(
i
);
//将此订单添加汇报队列中; 参数2: "1":代表成功; "2":代表失败; 参数3:入机备注;
QLOG_INFO
()
<<
QString
(
"[<<<<---FlowControl::_NotifyPmsPullOrder _AppendOrderInfo2Redis Success Try times:%1--->>>>]"
).
arg
(
i
);
//只有第一次插入DB成功,才会想OMS汇报入机情况;
// 将此订单添加汇报队列中; 参数2: "1":代表成功; "2":代表失败; 参数3:入机备注;
if
(
insertRet
)
{
_AddOrderInfo2ReportList
(
orderObject
,
QString
(
"1"
),
QString
::
fromLocal8Bit
(
"订单入PMS库成功并通知Redis成功"
));
}
break
;
}
else
{
QLOG_ERROR
()
<<
QString
(
"[<<<<---FlowControl::_
ClickToNotifySimPullOrder
_AppendOrderInfo2Redis Failed, Try Again--->>>>]"
);
QLOG_ERROR
()
<<
QString
(
"[<<<<---FlowControl::_
NotifyPmsPullOrder
_AppendOrderInfo2Redis Failed, Try Again--->>>>]"
);
continue
;
}
}
//如果订单插入数据库失败后;向服务端汇报订单落库情况;
//如果订单插入
/更新
数据库失败后;向服务端汇报订单落库情况;
}
else
{
QLOG_ERROR
()
<<
QString
(
"[<<<<---FlowControl::_
ClickToNotifySimPullOrder Insert Mysql DB Order:%1 Insert
Failed--->>>>]"
)
QLOG_ERROR
()
<<
QString
(
"[<<<<---FlowControl::_
NotifyPmsPullOrder Insert Mysql DB Order:%1 Insert/Update
Failed--->>>>]"
)
.
arg
(
orderObject
->
id
);
//进行数据清除回滚;防止与重新入机的订单数据出现重复; 删除 orders/order_item/order_item_condiments
//只有插入失败才 进行数据清理;防止与重新入机的订单数据出现重复; 删除 orders/order_item/order_item_condiments
if
(
!
bExistOrder
&&
!
insertRet
)
{
PmsOrdersData
::
getInstance
().
deleteOrderData
(
orderObject
);
}
//将此订单添加汇报队列中; 参数2: "1":代表成功; "2":代表失败; 参数3:入机备注;
_AddOrderInfo2ReportList
(
orderObject
,
QString
(
"2"
),
QString
::
fromLocal8Bit
(
"订单
入PMS库
失败"
));
_AddOrderInfo2ReportList
(
orderObject
,
QString
(
"2"
),
QString
::
fromLocal8Bit
(
"订单
插入/更新 PMS库数据
失败"
));
}
}
else
{
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---FlowControl::_
ClickToNotifySimPullOrder
Insert Mysql DB orderObject Is Null:--->>>>]"
);
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---FlowControl::_
NotifyPmsPullOrder
Insert Mysql DB orderObject Is Null:--->>>>]"
);
}
}
else
{
//如果订单队列中没有待处理订单,定时器设定为8s;
m_notify
Sim
PullTimer
->
start
(
1000
*
8
);
m_notify
Pms
PullTimer
->
start
(
1000
*
8
);
}
}
void
FlowControl
::
_NotifyCyclePullAllOrder
()
{
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"[<<<<--- _NotifyCyclePullAllOrder: m_simValidOrdersList.count()==%1--->>>>>]"
).
arg
(
m_simValidOrdersList
.
count
()
);
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---FlowControl::_NotifyCyclePullAllOrder Call onGetOMSAllOrders():--->>>>]"
);
onGetOMSAllOrders
();
//定期拉取OMS门店全部有效订单 间隔为:10分钟;
m_cyclePullAllOrderTimer
->
start
(
1000
*
60
*
10
);
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---FlowControl::_NotifyCyclePullAllOrder Next Pull All Order Time: %1--->>>>]"
)
.
arg
(
QDateTime
::
currentDateTime
().
addSecs
(
60
*
10
).
toString
(
"yyyy-MM-dd hh:mm:ss"
));
}
void
FlowControl
::
_RemindCasherBlinkFloatForm
()
{
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---_RemindCasherBlinkFloatForm: m_simValidOrdersList.isEmpty()==%1--->>>>>]"
).
arg
(
m_simValidOrdersList
.
isEmpty
());
...
...
@@ -582,9 +614,13 @@ bool FlowControl::_Login()
m_heartTimer
->
start
(
1000
*
60
*
5
);
m_pullTimer
->
start
(
1000
*
5
);
m_reportOMSReocrdOrderTimer
->
start
(
1000
*
5
);
m_notify
Sim
PullTimer
->
start
(
10
*
1000
);
m_notify
Pms
PullTimer
->
start
(
10
*
1000
);
m_remindCasherBlinkFloatTimer
->
start
(
5
*
1000
);
m_cyclePullAllOrderTimer
->
start
(
1000
*
60
*
10
);
QLOG_INFO
()
<<
QString
::
fromLocal8Bit
(
"[<<<<---FlowControl::_Login Next Pull All Order Time: %1--->>>>]"
)
.
arg
(
QDateTime
::
currentDateTime
().
addSecs
(
60
*
10
).
toString
(
"yyyy-MM-dd hh:mm:ss"
));
//在登陆时再次检查数据库连接是否都正常;
if
(
!
m_initPmsGetStoreConfigDBRet
)
{
result
=
false
;
...
...
@@ -814,8 +850,6 @@ bool FlowControl::_SendHeart()
}
else
{
result
=
true
;
emit
setNetStatus
(
QString
::
fromLocal8Bit
(
"<font color='#f5f5f5'>正常</font>"
));
//只有上一次心跳是异常:才根据心跳来展示门店营业状态 [数据延迟比较严重:同时也需要通过OMS推门店状态给插件]
if
(
m_bLastHeartIsError
){
if
(
recvJson
.
contains
(
JSON_ELESTORESTS
)
){
m_eleStoreStatus
=
recvJson
[
JSON_ELESTORESTS
].
toInt
();
}
...
...
@@ -832,7 +866,6 @@ bool FlowControl::_SendHeart()
m_bLastHeartIsError
=
false
;
}
}
}
return
result
;
}
...
...
fmTakeout/Control/flowControl.h
View file @
fab216f4
...
...
@@ -112,8 +112,9 @@ private:
QTimer
*
m_pullTimer
;
QTimer
*
m_reportOMSReocrdOrderTimer
;
QTimer
*
m_loginTimer
;
QTimer
*
m_notifySimPullTimer
;
QTimer
*
m_remindCasherBlinkFloatTimer
;
//插件程序收到外卖订单后,需要一致提醒店员[直到此外卖订单被全部录入到POS系统]
QTimer
*
m_notifyPmsPullTimer
;
QTimer
*
m_cyclePullAllOrderTimer
;
//由于定时器是为了周期性获取全部订单; 原因: PmsPlugin set StoreServiceCenter; aviod missing Orders;
// 网络通信
BillSocket
*
m_loginSocket
;
BillSocket
*
m_pullOrderSocket
;
...
...
@@ -387,7 +388,8 @@ public slots:
//点击屏幕指定区域
void
_ClickOMSAssignArea
();
void
_ClickToLogin
();
void
_ClickToNotifySimPullOrder
();
void
_NotifyPmsPullOrder
();
void
_NotifyCyclePullAllOrder
();
void
_RemindCasherBlinkFloatForm
();
void
_OrderAnalysis
(
const
QJsonObject
&
jsonObject
);
...
...
fmTakeout/DTools/pmsOrdersData.cpp
View file @
fab216f4
...
...
@@ -177,9 +177,10 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
"delivery_price,delivery_discount,delivery_time, order_estimation,make_finish_time,is_package, "
"last_pay_time, address_latitude, address_longitude, oms_msrno, consumer_birthday, cancel_reason, "
"confirm_time,customer_id,customer_gender,way_bill_id,store_id,store_name,store_address,store_street, "
"pos_id, lang, ext_info, rider_phone, rider_name, displateform_fee) "
"pos_id, lang, ext_info, rider_phone, rider_name, displateform_fee
, make_status, make_source, make_device_id
) "
"VALUES(?, ?, ?, ?, ?,?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,"
" ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
);
" ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?,?,?)"
);
query
.
addBindValue
(
orderObj
->
id
);
// --非码OMS订单号
query
.
addBindValue
(
orderObj
->
id
);
// --非码OMS订单号
query
.
addBindValue
(
orderObj
->
orderStatus
);
// --订单状态
...
...
@@ -240,6 +241,9 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
query
.
addBindValue
(
orderObj
->
riderPhone
);
// --配送者电话
query
.
addBindValue
(
orderObj
->
riderName
);
// -配送者名称
query
.
addBindValue
(
abs
(
orderObj
->
disPlateformFee
*
0.01
));
// --平台优惠
query
.
addBindValue
(
orderObj
->
makeStatus
);
// --制作状态
query
.
addBindValue
(
orderObj
->
makeSource
);
// --提供制作状态来源
query
.
addBindValue
(
orderObj
->
makeDeviceId
);
// --提供制作状态设备ID
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
"[<<<<---PmsOrdersData::insertOrderData:Insert Order Error--->>>>]"
<<
query
.
lastError
().
text
()
...
...
@@ -252,10 +256,10 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
"delivery_price,delivery_discount,delivery_time, order_estimation,make_finish_time,is_package, "
"last_pay_time, address_latitude, address_longitude, oms_msrno, consumer_birthday, cancel_reason, "
"confirm_time,customer_id,customer_gender,way_bill_id,store_id,store_name,store_address,store_street, "
"pos_id, lang, ext_info, rider_phone, rider_name, displateform_fee) "
"pos_id, lang, ext_info, rider_phone, rider_name, displateform_fee
, make_status, make_source, make_device_id
) "
"VALUES(%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12, %13, %14, %15, %16, %17, %18, %19, %20, "
"%21, %22, %23, %24, %25, %26, %27, %28, %29, %30, %31, %32, %33, %34, %35, %36, %37, %38, %39, %40,"
"%41, %42, %43, %44, %45, %46, %47, %48, %49, %50, %51)"
)
"%41, %42, %43, %44, %45, %46, %47, %48, %49, %50, %51
, %52, %53, %54
)"
)
.
arg
(
orderObj
->
id
).
arg
(
orderObj
->
id
).
arg
(
orderObj
->
orderStatus
).
arg
(
updateTimeString
).
arg
(
orderObj
->
channel
)
.
arg
(
orderObj
->
orderType
).
arg
(
tempOrderTypeId
)
.
arg
(
orderObj
->
pickupCode
).
arg
(
orderObj
->
totalPrice
*
0.01
).
arg
(
orderObj
->
productPrice
*
0.01
).
arg
(
orderObj
->
orderDiscount
*
0.01
)
...
...
@@ -268,7 +272,8 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
.
arg
(
orderObj
->
confirmTime
).
arg
(
orderObj
->
customerId
).
arg
(
"Female"
).
arg
(
orderObj
->
waybillId
).
arg
(
orderObj
->
storeId
)
.
arg
(
orderObj
->
storeName
).
arg
(
orderObj
->
storeAddress
).
arg
(
""
)
.
arg
(
""
).
arg
(
orderObj
->
lang
).
arg
(
orderObj
->
memo
).
arg
(
orderObj
->
riderPhone
).
arg
(
orderObj
->
riderName
)
.
arg
(
orderObj
->
disPlateformFee
*
0.01
);
.
arg
(
orderObj
->
disPlateformFee
*
0.01
).
arg
(
orderObj
->
makeStatus
).
arg
(
orderObj
->
makeSource
).
arg
(
orderObj
->
makeDeviceId
);
}
else
{
QLOG_INFO
()
<<
QString
(
"[<<<<---PmsOrdersData::insertOrderData:Insert OrderId %1 Into PMS Order Success--->>>>]"
).
arg
(
orderObj
->
id
);
pmsOrderRef
=
query
.
lastInsertId
().
toString
();
...
...
@@ -530,7 +535,7 @@ bool PmsOrdersData::insertSubProductData(const QList<dishesObject*> sub_products
}
//更新订单状态:需加锁;
bool
PmsOrdersData
::
updateOrderStatus
(
OrderObject
*
orderObj
,
const
int
&
OrderStatus
)
{
bool
PmsOrdersData
::
updateOrderStatus
(
OrderObject
*
orderObj
,
const
int
&
OrderStatus
,
const
QString
&
makeStatus
)
{
if
(
!
orderObj
)
{
QLOG_ERROR
()
<<
"[<<<<---PmsOrdersData::updateOrderStatus orderObj Point is Null --->>>>]"
;
...
...
@@ -553,8 +558,10 @@ bool PmsOrdersData::updateOrderStatus(OrderObject* orderObj, const int &OrderSta
// 需要对应转换并更新: order_type_id;
int
tempOrderTypeId
=
convertPosServiceTypeId
(
orderObj
,
orderObj
->
orderStatus
);
query
.
prepare
(
QString
(
"update orders set order_status=%1,order_type_id=%2 where order_id='%3'"
)
.
arg
(
QString
::
number
(
OrderStatus
)).
arg
(
QString
::
number
(
tempOrderTypeId
)).
arg
(
orderObj
->
id
));
query
.
prepare
(
QString
(
"update orders set order_status=%1,order_type_id=%2, make_status='%3',"
" make_source='%4', make_device_id='%5' where order_id='%6'"
)
.
arg
(
QString
::
number
(
OrderStatus
),
QString
::
number
(
tempOrderTypeId
),
makeStatus
,
orderObj
->
makeSource
,
orderObj
->
makeDeviceId
,
orderObj
->
id
));
if
(
!
query
.
exec
())
{
QLOG_ERROR
()
<<
query
.
lastError
().
text
()
<<
"[<<<<---PmsOrdersData::update Order Status Failed--->>>>]"
;
...
...
fmTakeout/DTools/pmsOrdersData.h
View file @
fab216f4
...
...
@@ -75,7 +75,7 @@ public:
*参数:[1]订单对象
*返回:true操作成功,false失败
**/
bool
updateOrderStatus
(
OrderObject
*
orderObj
,
const
int
&
OrderStatus
);
bool
updateOrderStatus
(
OrderObject
*
orderObj
,
const
int
&
OrderStatus
,
const
QString
&
makeStatus
);
/**
*功能:查询 订单号和 订单状态 是否存在PMS数据库中;
...
...
fmTakeout/DTools/qtRedisClient.cpp
View file @
fab216f4
...
...
@@ -69,17 +69,21 @@ bool QtRedisClient::testOrderRedisExist(const QString& orderId){
return
bOrderExist
;
}
bool
QtRedisClient
::
pushOrder2Redis
(
const
QString
&
orderId
,
const
int
&
orderStatus
){
bool
QtRedisClient
::
pushOrder2Redis
(
const
OrderObject
*
orderObj
){
bool
bPushOrderSuc
=
false
;
QList
<
QByteArray
>
cmdString
;
cmdString
.
append
(
"LPUSH"
);
cmdString
.
append
(
"PmsOrderStatusNotifyList"
);
QJsonObject
orderStatusObj
;
orderStatusObj
.
insert
(
"ID"
,
order
I
d
);
orderStatusObj
.
insert
(
"STATUS"
,
orderStatus
);
orderStatusObj
.
insert
(
"ID"
,
order
Obj
->
i
d
);
orderStatusObj
.
insert
(
"STATUS"
,
order
Obj
->
order
Status
);
QString
timeStamp
=
QDateTime
::
currentDateTime
().
toString
(
"yyyy-MM-dd hh:mm:ss"
);
orderStatusObj
.
insert
(
"TIMESTAMP"
,
timeStamp
);
orderStatusObj
.
insert
(
"MAKESTATUS"
,
orderObj
->
makeStatus
);
orderStatusObj
.
insert
(
"MAKESOURCE"
,
orderObj
->
makeSource
);
orderStatusObj
.
insert
(
"MAKEDEVICEID"
,
orderObj
->
makeDeviceId
);
orderStatusObj
.
insert
(
"MAKEDEVICENAME"
,
""
);
QJsonDocument
orderStatusDoc
=
QJsonDocument
(
orderStatusObj
);
cmdString
.
append
(
orderStatusDoc
.
toJson
());
...
...
@@ -87,10 +91,11 @@ bool QtRedisClient::pushOrder2Redis(const QString& orderId,const int& orderStatu
auto
result
=
m_pRedisConnectOperat
->
commandSync
(
cmdString
);
QVariant
val
=
result
.
value
();
if
(
val
.
toInt
())
{
QLOG_INFO
()
<<
QString
(
"[<<<<---QtRedisClient::pushOrder2Redis orderId:%1 ; orderStatus:%2 ; ret:%3 Success--->>>>]"
).
arg
(
orderId
).
arg
(
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
())
);
bPushOrderSuc
=
true
;
}
else
{
QLOG_ERROR
()
<<
QString
(
"[<<<<---QtRedisClient::pushOrder2Redis orderId:%1 ; orderStatus:%2 ; val:%3 Failed--->>>>]"
).
arg
(
order
Id
).
arg
(
orderStatus
).
arg
(
val
.
toString
());
QLOG_ERROR
()
<<
QString
(
"[<<<<---QtRedisClient::pushOrder2Redis orderId:%1 ; orderStatus:%2 ; val:%3 Failed--->>>>]"
).
arg
(
order
Obj
->
id
).
arg
(
orderObj
->
orderStatus
).
arg
(
val
.
toString
());
}
}
catch
(
const
RedisClient
::
Connection
::
Exception
&
e
)
{
QLOG_ERROR
()
<<
"QtRedisClient::isOrderRedisExist Cannot run command:"
<<
e
.
what
();
...
...
fmTakeout/DTools/qtRedisClient.h
View file @
fab216f4
...
...
@@ -8,6 +8,8 @@
#include <QCommandLineParser>
#include <QJsonDocument>
#include "Model/orderObject.h"
class
QtRedisClient
:
public
QObject
{
Q_OBJECT
...
...
@@ -27,7 +29,7 @@ public:
*参数:[1]订单号; [2]订单状态;
*返回:true:追加成功,false:追加失败
**/
bool
pushOrder2Redis
(
const
QString
&
orderId
,
const
int
&
orderStatus
);
bool
pushOrder2Redis
(
const
OrderObject
*
orderObj
);
/**
*功能:查询订单是否已经存在 Redis中;
...
...
fmTakeout/Model/couponsObject.h
View file @
fab216f4
...
...
@@ -19,6 +19,9 @@ class CouponsObject : public QObject
Q_PROPERTY
(
int
consumeFactAmount
READ
getConsumeFactAmount
WRITE
setConsumeFactAmount
)
Q_PROPERTY
(
int
consumeDiscountAmount
READ
getConsumeDiscountAmount
WRITE
setConsumeDiscountAmount
)
Q_PROPERTY
(
QString
discount
READ
getDiscount
WRITE
setDiscount
)
Q_PROPERTY
(
QString
giverName
READ
getGiverName
WRITE
setGiverName
)
Q_PROPERTY
(
QString
blessingWords
READ
getBlessingWords
WRITE
setBlessingWords
)
public
:
explicit
CouponsObject
(
QObject
*
parent
=
0
)
:
QObject
(
parent
){}
...
...
@@ -26,15 +29,20 @@ public:
CouponsObject
&
operator
=
(
const
CouponsObject
&
coupons
);
void
FetchDataFromJson
(
const
QJsonObject
&
json
);
QString
couponSeq
;
//券序号
QString
code
;
QString
code
;
//券ID号
QString
couponName
;
//券名
QString
menuItem
;
QString
couponType
;
QString
menuItem
;
// 菜单分类
QString
couponType
;
//券类型
bool
storeChannel
;
//是否门店券;
QString
payMethodId
;
int
consumeFactAmount
;
int
consumeDiscountAmount
;
QString
payMethodId
;
//券支付方式ID
int
consumeFactAmount
;
//券实际售卖金额
int
consumeDiscountAmount
;
//券折扣金额
QString
discount
;
QString
giverName
;
//券赠送者
QString
blessingWords
;
//券赠送祝福
QList
<
SingleProductObject
*>
skus
;
protected
:
...
...
@@ -67,6 +75,13 @@ protected:
inline
QString
getDiscount
(){
return
discount
;
}
inline
void
setDiscount
(
const
QString
&
v
){
discount
=
v
;
}
inline
QString
getGiverName
(){
return
giverName
;
}
inline
void
setGiverName
(
const
QString
&
v
){
giverName
=
v
;
}
inline
QString
getBlessingWords
(){
return
blessingWords
;
}
inline
void
setBlessingWords
(
const
QString
&
v
){
blessingWords
=
v
;
}
};
#endif // COUPONSOBJECT_H
fmTakeout/Model/dishesObject.h
View file @
fab216f4
...
...
@@ -32,6 +32,8 @@ class dishesObject : public QObject
Q_PROPERTY
(
int
starPromotionQty
READ
getStarPromotionQty
WRITE
setStarPromotionQty
)
Q_PROPERTY
(
int
starPromotionPrice
READ
getStarPromotionPrice
WRITE
setStarPromotionPrice
)
Q_PROPERTY
(
QString
userName
READ
getUserName
WRITE
setUserName
)
public
:
explicit
dishesObject
(
QObject
*
parent
=
0
)
:
QObject
(
parent
){}
dishesObject
(
const
dishesObject
&
dish
,
QObject
*
parent
=
0
);
...
...
@@ -61,6 +63,7 @@ public:
QString
starPromotionName
=
""
;
int
starPromotionQty
=
0
;
int
starPromotionPrice
=
0
;
QString
userName
=
""
;
QList
<
dishesObject
*>
sub_products
;
...
...
@@ -132,6 +135,10 @@ protected:
inline
int
getStarPromotionQty
(){
return
starPromotionQty
;
}
inline
void
setStarPromotionQty
(
const
int
&
v
){
starPromotionQty
=
v
;
}
inline
QString
getUserName
(){
return
userName
;
}
inline
void
setUserName
(
const
QString
&
v
){
userName
=
v
;
}
};
#endif // DISHESOBJECT_H
fmTakeout/Model/orderObject.h
View file @
fab216f4
...
...
@@ -77,6 +77,10 @@ class OrderObject : public QObject
Q_PROPERTY
(
int
productPrice
READ
getProductPrice
WRITE
setProductPrice
)
Q_PROPERTY
(
int
totalPrice
READ
getTotalPrice
WRITE
setTotalPrice
)
Q_PROPERTY
(
int
orderStatus
READ
getOrderStatus
WRITE
setOrderStatus
)
Q_PROPERTY
(
QString
makeStatus
READ
getMakeStatus
WRITE
setMakeStatus
)
Q_PROPERTY
(
QString
makeSource
READ
getMakeSource
WRITE
setMakeSource
)
Q_PROPERTY
(
QString
makeDeviceId
READ
getMakeDeviceId
WRITE
setMakeDeviceId
)
Q_PROPERTY
(
QString
businessType
READ
getBusinessType
WRITE
setBusinessType
)
Q_PROPERTY
(
int
deliveryStatus
READ
getDeliveryStatus
WRITE
setDeliveryStatus
)
Q_PROPERTY
(
int
payStatus
READ
getPayStatus
WRITE
setPayStatus
)
Q_PROPERTY
(
int
refundStatus
READ
getRefundStatus
WRITE
setRefundStatus
)
...
...
@@ -176,6 +180,11 @@ public:
int
productPrice
=
0
;
int
totalPrice
=
0
;
int
orderStatus
=
0
;
QString
makeStatus
=
""
;
// PMS 制作状态
QString
makeSource
=
""
;
//PMS 制作来源: 普通扫描枪、扫描枪Now、顾客、PMS-kds、
QString
makeDeviceId
=
""
;
//PMS 更新制作状态的设备Id
QString
businessType
;
//订单业务类型: 10:预约单 20:杯贴祝福 30:拼团
int
deliveryStatus
=
0
;
int
payStatus
=
0
;
int
refundStatus
=
0
;
...
...
@@ -380,6 +389,18 @@ public:
inline
int
getOrderStatus
()
const
{
return
orderStatus
;}
inline
void
setOrderStatus
(
const
int
&
v
){
orderStatus
=
v
;}
inline
QString
getMakeStatus
()
const
{
return
makeStatus
;}
inline
void
setMakeStatus
(
const
QString
&
v
){
makeStatus
=
v
;}
inline
QString
getMakeSource
()
const
{
return
makeSource
;}
inline
void
setMakeSource
(
const
QString
&
v
){
makeSource
=
v
;}
inline
QString
getMakeDeviceId
()
const
{
return
makeDeviceId
;}
inline
void
setMakeDeviceId
(
const
QString
&
v
){
makeDeviceId
=
v
;}
inline
QString
getBusinessType
()
const
{
return
businessType
;}
inline
void
setBusinessType
(
const
QString
&
v
){
businessType
=
v
;}
inline
int
getDeliveryStatus
()
const
{
return
deliveryStatus
;}
inline
void
setDeliveryStatus
(
const
int
&
v
){
deliveryStatus
=
v
;}
...
...
fmTakeout/fmTakeout.rc
View file @
fab216f4
...
...
@@ -7,8 +7,8 @@ IDI_ICON ICON DISCARDABLE "logo.ico"
#endif
VS_VERSION_INFO VERSIONINFO
//***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***//
FILEVERSION 4,2020,
31
8,1
PRODUCTVERSION 4,2020,
31
8,1
FILEVERSION 4,2020,
50
8,1
PRODUCTVERSION 4,2020,
50
8,1
//*************************************************************************//
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
...
...
@@ -27,12 +27,12 @@ VS_VERSION_INFO VERSIONINFO
VALUE "CompanyName", "ShangHai.Freemud Co., Ltd."
VALUE "FileDescription", "PMS Plugin Application"
VALUE "InternalName", "PmsPlugin.exe"
VALUE "LegalCopyright", "Copyright (C)201
3
-2020"
VALUE "LegalCopyright", "Copyright (C)201
4
-2020"
VALUE "OriginalFilename", "PmsPlugin.exe"
VALUE "ProductName", "PMS Plugin"
//***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***//
VALUE "ProductVersion", "4.2020.
31
8.1"
VALUE "FileVersion", "4.2020.
31
8.1"
VALUE "ProductVersion", "4.2020.
50
8.1"
VALUE "FileVersion", "4.2020.
50
8.1"
//*************************************************************************//
END
END
...
...
fmTakeout/preDefine.h
View file @
fab216f4
...
...
@@ -5,9 +5,9 @@
#define APP_THEME "deaufult"
//#define APP_VERSION "4.2019.1031.1"
//#define APP_VERSION "4.2019.1225.1"
#define APP_VERSION "4.2020.318.1"
//#define APP_VERSION "4.2020.318.1"
#define APP_VERSION "4.2020.508.1"
//修正版本号时,切记修正 FmTakeout.rc 中的版本号
#define SERVER_PASSWORD "posoperator@freemud.cn"
...
...
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