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
d97925b3
Commit
d97925b3
authored
Jul 19, 2017
by
guanghui.cui
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
socket发送数据添加包头
parent
726d67ae
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
65 additions
and
25 deletions
+65
-25
.gitignore
+1
-0
Thread/workThread/flowcontroll.cpp
+56
-24
Thread/workThread/flowcontroll.h
+6
-0
Tool/configManger.cpp
+2
-1
No files found.
.gitignore
0 → 100644
View file @
d97925b3
version.h
Thread/workThread/flowcontroll.cpp
View file @
d97925b3
...
@@ -334,79 +334,76 @@ QByteArray flowControll::_GetOrderEntryData(const OrderObject *orderObject, bool
...
@@ -334,79 +334,76 @@ QByteArray flowControll::_GetOrderEntryData(const OrderObject *orderObject, bool
bool
flowControll
::
DoSalesSlip
(
const
OrderObject
*
orderObject
,
bool
bVerify
)
//写销售单
bool
flowControll
::
DoSalesSlip
(
const
OrderObject
*
orderObject
,
bool
bVerify
)
//写销售单
{
{
QTcpSocket
socket
;
QTcpSocket
*
socket
=
new
QTcpSocket
(
this
)
;
// 连接
// 连接
QLOG_INFO
()
<<
InitClass
::
GetInstance
().
GB2312ToUnicode
(
"开始写销售单"
);
QLOG_INFO
()
<<
InitClass
::
GetInstance
().
GB2312ToUnicode
(
"开始写销售单"
);
QByteArray
byteSlip
=
_GetOrderEntryData
(
orderObject
,
bVerify
);
QByteArray
byteSlip
=
_GetOrderEntryData
(
orderObject
,
bVerify
);
QLOG_INFO
()
<<
"this is comming slip"
<<
byteSlip
.
data
();
QLOG_INFO
()
<<
"this is comming slip"
<<
byteSlip
.
data
();
socket
.
connectToHost
(
ConfigManger
::
GetInstance
().
GetSlipIp
(),
ConfigManger
::
GetInstance
().
GetSlipPort
());
socket
->
connectToHost
(
ConfigManger
::
GetInstance
().
GetSlipIp
(),
ConfigManger
::
GetInstance
().
GetSlipPort
());
if
(
socket
.
waitForConnected
())
if
(
socket
->
waitForConnected
())
{
{
// 发送
if
(
SendToMonitor
(
_GetOrderEntryData
(
orderObject
,
bVerify
),
socket
)){
socket
.
write
(
_GetOrderEntryData
(
orderObject
,
bVerify
));
if
(
socket
.
waitForBytesWritten
())
{
// 接收返回
// 接收返回
if
(
socket
.
waitForReadyRead
())
if
(
socket
->
waitForReadyRead
())
{
{
QJsonObject
recvJson
=
QJsonDocument
::
fromJson
(
socket
.
readAll
()).
object
();
QJsonObject
recvJson
=
QJsonDocument
::
fromJson
(
socket
->
readAll
()).
object
();
QLOG_INFO
()
<<
QString
(
"slip order[%1:%2].[data:%3]"
)
QLOG_INFO
()
<<
QString
(
"slip order[%1:%2].[data:%3]"
)
.
arg
(
orderObject
->
order_id
,
orderObject
->
status_desc
)
.
arg
(
orderObject
->
order_id
,
orderObject
->
status_desc
)
.
arg
(
_GetJsonStr
(
recvJson
));
.
arg
(
_GetJsonStr
(
recvJson
));
if
(
recvJson
[
"statusCode"
].
toInt
()
==
100
)
if
(
recvJson
[
"statusCode"
].
toInt
()
==
100
)
{
{
socket
.
close
();
socket
->
close
();
return
true
;
return
true
;
}
else
}
else
{
{
error
=
recvJson
[
"msg"
].
toString
();
error
=
recvJson
[
"msg"
].
toString
();
socket
.
close
();
socket
->
close
();
return
false
;
return
false
;
}
}
}
}
}
}
}
}
error
=
socket
.
errorString
();
error
=
socket
->
errorString
();
socket
.
close
();
socket
->
close
();
return
false
;
return
false
;
}
}
bool
flowControll
::
RefuseSalesSlip
(
const
OrderObject
*
orderObject
)
//退单
bool
flowControll
::
RefuseSalesSlip
(
const
OrderObject
*
orderObject
)
//退单
{
{
QTcpSocket
socket
;
QTcpSocket
*
socket
=
new
QTcpSocket
(
this
)
;
// 连接
// 连接
QLOG_INFO
()
<<
InitClass
::
GetInstance
().
GB2312ToUnicode
(
"开始退单"
);
QLOG_INFO
()
<<
InitClass
::
GetInstance
().
GB2312ToUnicode
(
"开始退单"
);
QByteArray
byteSlip
=
_GetOrderRefuseData
(
orderObject
);
QByteArray
byteSlip
=
_GetOrderRefuseData
(
orderObject
);
QLOG_INFO
()
<<
"this is comming refund slip"
<<
byteSlip
.
data
();
QLOG_INFO
()
<<
"this is comming refund slip"
<<
byteSlip
.
data
();
socket
.
connectToHost
(
ConfigManger
::
GetInstance
().
GetSlipIp
(),
ConfigManger
::
GetInstance
().
GetSlipPort
());
socket
->
connectToHost
(
ConfigManger
::
GetInstance
().
GetSlipIp
(),
ConfigManger
::
GetInstance
().
GetSlipPort
());
if
(
socket
.
waitForConnected
())
if
(
socket
->
waitForConnected
())
{
{
// 发送
// 发送
socket
.
write
(
_GetOrderRefuseData
(
orderObject
));
//socket->
write(_GetOrderRefuseData(orderObject));
if
(
socket
.
waitForBytesWritten
(
))
if
(
SendToMonitor
(
_GetOrderRefuseData
(
orderObject
),
socket
))
{
{
// 接收返回
// 接收返回
if
(
socket
.
waitForReadyRead
())
if
(
socket
->
waitForReadyRead
())
{
{
QJsonObject
recvJson
=
QJsonDocument
::
fromJson
(
socket
.
readAll
()).
object
();
QJsonObject
recvJson
=
QJsonDocument
::
fromJson
(
socket
->
readAll
()).
object
();
QLOG_INFO
()
<<
QString
(
"refund slip order[%1:%2].[data:%3]"
)
QLOG_INFO
()
<<
QString
(
"refund slip order[%1:%2].[data:%3]"
)
.
arg
(
orderObject
->
order_id
,
orderObject
->
status_desc
)
.
arg
(
orderObject
->
order_id
,
orderObject
->
status_desc
)
.
arg
(
_GetJsonStr
(
recvJson
));
.
arg
(
_GetJsonStr
(
recvJson
));
if
(
recvJson
[
"statusCode"
].
toInt
()
==
100
)
if
(
recvJson
[
"statusCode"
].
toInt
()
==
100
)
{
{
socket
.
close
();
socket
->
close
();
return
true
;
return
true
;
}
else
}
else
{
{
error
=
recvJson
[
"msg"
].
toString
();
error
=
recvJson
[
"msg"
].
toString
();
socket
.
close
();
socket
->
close
();
return
false
;
return
false
;
}
}
}
}
}
}
}
}
error
=
socket
.
errorString
();
error
=
socket
->
errorString
();
socket
.
close
();
socket
->
close
();
return
false
;
return
false
;
}
}
...
@@ -1468,3 +1465,38 @@ bool flowControll::_RefundOrder(const QString& orderId, QString reason)//退单
...
@@ -1468,3 +1465,38 @@ bool flowControll::_RefundOrder(const QString& orderId, QString reason)//退单
}
}
return
false
;
return
false
;
}
}
bool
flowControll
::
SendToMonitor
(
const
QByteArray
&
data
,
QTcpSocket
*
pSocket
)
{
bool
result
=
true
;
//QTcpSocket client;
int
jsonLength
=
data
.
length
();
char
*
m_pFmPackage
=
new
char
[
jsonLength
+
sizeof
(
FMSOCKEHEADER
)];
FMSOCKEHEADER
header
=
{
0
,
0
,
0
};
header
.
flag
=
0x4d46
;
header
.
len
=
jsonLength
;
header
.
ver
=
0x1
;
memcpy
(
m_pFmPackage
,
&
header
,
sizeof
(
FMSOCKEHEADER
));
memcpy
(
m_pFmPackage
+
sizeof
(
FMSOCKEHEADER
),
data
,
jsonLength
);
int
toSendLength
=
jsonLength
+
sizeof
(
FMSOCKEHEADER
);
int
curSendLength
=
0
;
while
(
curSendLength
<
toSendLength
)
{
int
rlt
=
pSocket
->
write
(
m_pFmPackage
+
curSendLength
,
toSendLength
-
curSendLength
);
pSocket
->
waitForBytesWritten
();
if
(
rlt
==-
1
){
QLOG_ERROR
()
<<
"发送数据失败:"
<<
data
;
result
=
false
;
break
;
}
curSendLength
+=
rlt
;
}
delete
[]
m_pFmPackage
;
return
result
;
}
Thread/workThread/flowcontroll.h
View file @
d97925b3
...
@@ -12,6 +12,11 @@
...
@@ -12,6 +12,11 @@
#include "Tool/HttpSocket.h"
#include "Tool/HttpSocket.h"
#include <QTimer>
#include <QTimer>
typedef
struct
{
int
flag
;
int
ver
;
int
len
;
}
FMSOCKEHEADER
;
class
flowControll
:
public
QObject
class
flowControll
:
public
QObject
{
{
Q_OBJECT
Q_OBJECT
...
@@ -47,6 +52,7 @@ public:
...
@@ -47,6 +52,7 @@ public:
bool
RefuseSalesSlip
(
const
OrderObject
*
orderObject
);
//退单
bool
RefuseSalesSlip
(
const
OrderObject
*
orderObject
);
//退单
QByteArray
_GetOrderRefuseData
(
const
OrderObject
*
orderObject
);
//拼接json数据
QByteArray
_GetOrderRefuseData
(
const
OrderObject
*
orderObject
);
//拼接json数据
QByteArray
_GetOrderEntryData
(
const
OrderObject
*
orderObject
,
bool
bVerify
);
//拼接json数据
QByteArray
_GetOrderEntryData
(
const
OrderObject
*
orderObject
,
bool
bVerify
);
//拼接json数据
bool
SendToMonitor
(
const
QByteArray
&
data
,
QTcpSocket
*
pSocket
);
//自定义网络
//自定义网络
HttpSocket
*
m_loginSocket
;
HttpSocket
*
m_loginSocket
;
...
...
Tool/configManger.cpp
View file @
d97925b3
...
@@ -159,6 +159,7 @@ QJsonObject ConfigManger::_GetFileJson(const QString &file_path)
...
@@ -159,6 +159,7 @@ QJsonObject ConfigManger::_GetFileJson(const QString &file_path)
if
(
jsonError
.
error
!=
QJsonParseError
::
NoError
)
//if error occured, see link 2
if
(
jsonError
.
error
!=
QJsonParseError
::
NoError
)
//if error occured, see link 2
{
{
QLOG_WARN
()
<<
file_path
<<
" parsed failed."
;
QLOG_WARN
()
<<
file_path
<<
" parsed failed."
;
return
obj
;
}
}
else
else
{
{
...
@@ -184,7 +185,7 @@ QJsonObject ConfigManger::_GetFileJson(const QString &file_path)
...
@@ -184,7 +185,7 @@ QJsonObject ConfigManger::_GetFileJson(const QString &file_path)
int
ConfigManger
::
GetSlipPort
()
int
ConfigManger
::
GetSlipPort
()
{
{
return
m_config
->
value
(
FMP_INIKEY_TAKEOUT_PORT
,
55555
).
toInt
();
return
m_config
->
value
(
FMP_INIKEY_TAKEOUT_PORT
,
23772
).
toInt
();
}
}
QString
ConfigManger
::
GetSlipIp
()
QString
ConfigManger
::
GetSlipIp
()
...
...
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