Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
fmp_takeout
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
zhenfei.zhang
fmp_takeout
Commits
b8e4ac1a
Commit
b8e4ac1a
authored
Jun 12, 2017
by
guanghui.cui
Browse files
Options
Browse Files
Download
Plain Diff
合并冲突
parents
1e44e230
591ea38f
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
213 additions
and
0 deletions
+213
-0
Thread/workThread/flowcontroll.cpp
+193
-0
Thread/workThread/flowcontroll.h
+20
-0
No files found.
Thread/workThread/flowcontroll.cpp
View file @
b8e4ac1a
...
@@ -270,6 +270,12 @@ bool flowControll::_PullOrder()
...
@@ -270,6 +270,12 @@ bool flowControll::_PullOrder()
{
{
WriteData
(
orderObject
->
order_id
);
WriteData
(
orderObject
->
order_id
);
emit
sgnNewIdPrint
(
orderObject
);
emit
sgnNewIdPrint
(
orderObject
);
saveSqlite
(
orderObject
);
if
(
orderObject
->
status
!=
1
)
{
DoSalesSlip
(
orderObject
,
0
);
//写销售单
}
// emit sgnNewIdPrint(orderObject,new_orderid); //新订单打印
}
}
}
}
else
else
...
@@ -297,6 +303,193 @@ bool flowControll::_PullOrder()
...
@@ -297,6 +303,193 @@ bool flowControll::_PullOrder()
m_time
->
singleShot
(
syncTime
,
this
,
&
flowControll
::
_PullOrder
);
m_time
->
singleShot
(
syncTime
,
this
,
&
flowControll
::
_PullOrder
);
return
result
;
return
result
;
}
QByteArray
flowControll
::
_GetOrderRefuseData
(
const
OrderObject
*
orderObject
)
{
QJsonObject
rObj
,
cObj
;
rObj
.
insert
(
"fm_cmd"
,
"refund_order"
);
rObj
.
insert
(
"fm_ver"
,
"1.0"
);
rObj
.
insert
(
"fm_id"
,
orderObject
->
fm_id
);
QJsonDocument
doc
(
rObj
);
return
doc
.
toJson
(
QJsonDocument
::
Compact
);
}
QByteArray
flowControll
::
_GetOrderEntryData
(
const
OrderObject
*
orderObject
,
bool
bVerify
)
{
QJsonObject
rObj
,
cObj
;
if
(
bVerify
)
{
rObj
.
insert
(
"fm_cmd"
,
"put_order_check"
);
}
else
{
rObj
.
insert
(
"fm_cmd"
,
"put_order"
);
}
rObj
.
insert
(
"fm_ver"
,
"1.0"
);
cObj
.
insert
(
"pay_id"
,
"002"
);
cObj
.
insert
(
"pay_str"
,
InitClass
::
GetInstance
().
GB2312ToUnicode
(
"非码外卖"
));
cObj
.
insert
(
"pay_ebcode"
,
orderObject
->
channel
);
cObj
.
insert
(
"order_index"
,
orderObject
->
order_index
);
cObj
.
insert
(
"customer_name"
,
orderObject
->
customer
);
cObj
.
insert
(
"customer_phone"
,
orderObject
->
phone
);
cObj
.
insert
(
"customer_address"
,
orderObject
->
address
);
cObj
.
insert
(
"delivery_time"
,
orderObject
->
delivery_time
);
cObj
.
insert
(
"remark"
,
orderObject
->
remark
);
cObj
.
insert
(
"pay_ebcode_str"
,
InitClass
::
GetInstance
().
GB2312ToUnicode
(
"百度外卖"
/*orderObject->channelName*/
));
cObj
.
insert
(
"shop_fee"
,
orderObject
->
total_fee
-
orderObject
->
send_fee
-
orderObject
->
service_fee
-
orderObject
->
dis_shop_fee
);
// 商户能够拿到的钱(去除平台佣金)
cObj
.
insert
(
"service_fee"
,
orderObject
->
service_fee
);
// 平台佣金
cObj
.
insert
(
"products_fee"
,
orderObject
->
shop_fee
-
orderObject
->
package_fee
);
// 商品金额
cObj
.
insert
(
"discount_fee"
,
orderObject
->
discount_fee
);
// 优惠总额
cObj
.
insert
(
"dis_shop_fee"
,
orderObject
->
dis_shop_fee
);
// 商家承担优惠金额
cObj
.
insert
(
"dis_platform_fee"
,
orderObject
->
dis_platform_fee
);
// 平台承担优惠金额
cObj
.
insert
(
"send_fee"
,
orderObject
->
send_fee
);
// 配送费
cObj
.
insert
(
"package_fee"
,
orderObject
->
package_fee
);
// 打包费
cObj
.
insert
(
"invoice_amount"
,
orderObject
->
total_fee
-
orderObject
->
send_fee
-
orderObject
->
service_fee
-
orderObject
->
dis_shop_fee
);
cObj
.
insert
(
"paid_trans_id"
,
orderObject
->
order_id
);
cObj
.
insert
(
"fm_id"
,
orderObject
->
fm_id
);
rObj
.
insert
(
"pay_id"
,
cObj
);
QJsonArray
products
;
for
(
int
i
=
0
;
i
<
orderObject
->
proList
.
count
();
i
++
)
{
QJsonObject
tObj
;
tObj
.
insert
(
"consume_num"
,
orderObject
->
proList
.
at
(
i
)
->
productAmount
);
tObj
.
insert
(
"pid"
,
orderObject
->
proList
.
at
(
i
)
->
pid
);
tObj
.
insert
(
"original_price"
,
orderObject
->
proList
.
at
(
i
)
->
price
);
products
.
insert
(
i
,
tObj
);
}
rObj
.
insert
(
"products"
,
products
);
QJsonDocument
doc
(
rObj
);
return
doc
.
toJson
(
QJsonDocument
::
Compact
);
}
bool
flowControll
::
DoSalesSlip
(
const
OrderObject
*
orderObject
,
bool
bVerify
)
//写销售单
{
QTcpSocket
socket
;
// 连接
QLOG_INFO
()
<<
InitClass
::
GetInstance
().
GB2312ToUnicode
(
"开始写销售单"
);
QByteArray
byteSlip
=
_GetOrderEntryData
(
orderObject
,
bVerify
);
QLOG_INFO
()
<<
"this is comming slip"
<<
byteSlip
.
data
();
socket
.
connectToHost
(
ConfigManger
::
GetInstance
().
GetSlipIp
(),
ConfigManger
::
GetInstance
().
GetSlipPort
());
if
(
socket
.
waitForConnected
())
{
// 发送
socket
.
write
(
_GetOrderEntryData
(
orderObject
,
bVerify
));
if
(
socket
.
waitForBytesWritten
())
{
// 接收返回
if
(
socket
.
waitForReadyRead
())
{
QJsonObject
recvJson
=
QJsonDocument
::
fromJson
(
socket
.
readAll
()).
object
();
QLOG_INFO
()
<<
QString
(
"slip order[%1:%2].[data:%3]"
)
.
arg
(
orderObject
->
order_id
,
orderObject
->
status_desc
)
.
arg
(
_GetJsonStr
(
recvJson
));
if
(
recvJson
[
"statusCode"
].
toInt
()
==
100
)
{
socket
.
close
();
return
true
;
}
else
{
error
=
recvJson
[
"msg"
].
toString
();
socket
.
close
();
return
false
;
}
}
}
}
error
=
socket
.
errorString
();
socket
.
close
();
return
false
;
}
bool
flowControll
::
RefuseSalesSlip
(
const
OrderObject
*
orderObject
)
//退单
{
QTcpSocket
socket
;
// 连接
QLOG_INFO
()
<<
InitClass
::
GetInstance
().
GB2312ToUnicode
(
"开始退单"
);
QByteArray
byteSlip
=
_GetOrderRefuseData
(
orderObject
);
QLOG_INFO
()
<<
"this is comming refund slip"
<<
byteSlip
.
data
();
socket
.
connectToHost
(
ConfigManger
::
GetInstance
().
GetSlipIp
(),
ConfigManger
::
GetInstance
().
GetSlipPort
());
if
(
socket
.
waitForConnected
())
{
// 发送
socket
.
write
(
_GetOrderRefuseData
(
orderObject
));
if
(
socket
.
waitForBytesWritten
())
{
// 接收返回
if
(
socket
.
waitForReadyRead
())
{
QJsonObject
recvJson
=
QJsonDocument
::
fromJson
(
socket
.
readAll
()).
object
();
QLOG_INFO
()
<<
QString
(
"refund slip order[%1:%2].[data:%3]"
)
.
arg
(
orderObject
->
order_id
,
orderObject
->
status_desc
)
.
arg
(
_GetJsonStr
(
recvJson
));
if
(
recvJson
[
"statusCode"
].
toInt
()
==
100
)
{
socket
.
close
();
return
true
;
}
else
{
error
=
recvJson
[
"msg"
].
toString
();
socket
.
close
();
return
false
;
}
}
}
}
error
=
socket
.
errorString
();
socket
.
close
();
return
false
;
}
int
flowControll
::
_GetTableVID
(
OrderObject
*
orderObject
)
{
int
table_id
=
TABLE_VID_UNKNOWN
;
switch
(
orderObject
->
status
)
{
case
2
:
{
switch
(
orderObject
->
delivery_status
)
{
case
1
:
case
2
:
{
table_id
=
TABLE_VID_SUPER
;
break
;
}
default
:
break
;
}
break
;
}
case
4
:
case
5
:
{
table_id
=
TABLE_VID_SUPER
;
break
;
}
default
:
break
;
}
switch
(
table_id
)
{
case
TABLE_VID_SUPER
:
qDebug
()
<<
orderObject
->
has_mate
;
if
(
orderObject
->
has_mate
)
{
table_id
=
TABLE_VID_CONFIRM_MATE
;
}
else
{
table_id
=
TABLE_VID_UNKNOWN
;
}
break
;
default
:
break
;
}
return
table_id
;
}
#if 0
#if 0
//添加销售单接口 miyou自配送 写销售单
//添加销售单接口 miyou自配送 写销售单
...
...
Thread/workThread/flowcontroll.h
View file @
b8e4ac1a
...
@@ -31,6 +31,26 @@ public:
...
@@ -31,6 +31,26 @@ public:
bool
GetCashObject
(
QList
<
CashierObject
>&
cashiersList
);
bool
GetCashObject
(
QList
<
CashierObject
>&
cashiersList
);
void
WriteData
(
QString
strdata
);
void
WriteData
(
QString
strdata
);
bool
ReadData
(
QString
strdata
);
bool
ReadData
(
QString
strdata
);
void
saveSqlite
(
OrderObject
*
orderObject
);
bool
OpenSqlite
();
bool
SelectOrderId
(
OrderObject
*
orderObject
);
bool
CreateTable
(
const
QString
&
path
);
void
DeleteQuery
();
void
UseSQLite
();
void
Balance
();
void
GetChannelName
(
OrderObject
*
orderObject
);
QVector
<
QString
>
strArray
;
QString
_Penny2Dollar
(
int
penny
);
int
_GetTableVID
(
OrderObject
*
orderObject
);
OrderObject
*
GetOrderObjByOrderId
(
const
QString
&
orderId
);
//获取订单ID
bool
WriteBill
(
const
QString
&
oid
);
//写销售单
bool
WriteBill
(
OrderObject
*
order
);
void
Total_Num
();
void
SelectTime
();
bool
DoSalesSlip
(
const
OrderObject
*
orderObject
,
bool
bVerify
);
//写销售单
bool
RefuseSalesSlip
(
const
OrderObject
*
orderObject
);
//退单
QByteArray
_GetOrderRefuseData
(
const
OrderObject
*
orderObject
);
//拼接json数据
QByteArray
_GetOrderEntryData
(
const
OrderObject
*
orderObject
,
bool
bVerify
);
//拼接json数据
//自定义网络
//自定义网络
HttpSocket
*
m_loginSocket
;
HttpSocket
*
m_loginSocket
;
...
...
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