Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
familyMart_takeaway
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
guanghui.cui
familyMart_takeaway
Commits
6dc7ea23
Commit
6dc7ea23
authored
Feb 07, 2018
by
unknown
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix 1:编译问题修复(编译通过)
parent
cd4aa8be
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
26 additions
and
32 deletions
+26
-32
src/JsonModule.cpp
+9
-23
src/main.cpp
+17
-9
No files found.
src/JsonModule.cpp
View file @
6dc7ea23
...
...
@@ -179,7 +179,7 @@ void JsonModule::getPushOrders(IN const char* json,OUT std::vector<orderObj> &ve
bool
JsonModule
::
isInitData
(
const
std
::
string
&
data
)
{
rapidjson
::
Document
document
;
// 定义一个Document对象
document
.
Parse
(
json
);
// 解析,Parse()无返回值,也不会抛异常
document
.
Parse
(
data
.
c_str
()
);
// 解析,Parse()无返回值,也不会抛异常
if
(
document
.
HasParseError
())
// 通过HasParseError()来判断解析是否成功
{
LOG
(
ERROR
)
<<
"JSON parse error:"
<<
document
.
GetParseError
()
<<
":"
<<
document
.
GetErrorOffset
();
...
...
@@ -191,17 +191,16 @@ bool JsonModule::isInitData(const std::string &data)
bool
JsonModule
::
checkInitData
(
const
std
::
string
&
data
,
int
&
posListenPort
)
{
rapidjson
::
Document
document
;
// 定义一个Document对象
document
.
Parse
(
data
);
// 解析,Parse()无返回值,也不会抛异常
document
.
Parse
(
data
.
c_str
()
);
// 解析,Parse()无返回值,也不会抛异常
if
(
document
.
HasParseError
())
// 通过HasParseError()来判断解析是否成功
{
LOG
(
ERROR
)
<<
"JSON parse error:"
<<
document
.
GetParseError
()
<<
":"
<<
document
.
GetErrorOffset
();
return
false
;
}
if
(
document
[
"store_id"
].
GetString
().
empty
()
||
document
[
"store_id"
].
GetString
().
empty
()
||
document
[
"pos_id"
].
GetString
().
empty
()
||
document
[
"operator_id"
].
GetString
().
empty
()
if
(
!
document
.
HasMember
(
"store_id"
)
||
!
document
.
HasMember
(
"pos_id"
)
||
!
document
.
HasMember
(
"operator_id"
)
||
!
document
.
HasMember
(
"is_master"
)
||
document
[
"listen_port"
].
GetInt
()
<
0
)
{
...
...
@@ -284,8 +283,8 @@ bool JsonModule::getOdsResponseData(const std::string &posResponse, const std::s
return
false
;
rapidjson
::
Document
document
,
document1
;
document
.
Parse
(
posResponse
);
document1
.
Parse
(
orderData
);
document
.
Parse
(
posResponse
.
c_str
()
);
document1
.
Parse
(
orderData
.
c_str
()
);
if
(
document
.
HasParseError
()
||
document1
.
HasParseError
())
{
return
false
;
...
...
@@ -331,25 +330,12 @@ bool JsonModule::getOdsResponseData(const std::string &posResponse, const std::s
bool
JsonModule
::
convertDataPos2Ods
(
const
std
::
string
&
data
,
std
::
string
&
result
)
{
return
true
;
}
bool
JsonModule
::
convertDataOds2Pos
(
const
std
::
string
&
data
,
std
::
string
&
result
)
{
rapidjson
::
Document
data
;
document
.
Parse
(
posResponse
);
document1
.
Parse
(
orderData
);
if
(
document
.
HasParseError
()
||
document1
.
HasParseError
())
{
return
false
;
}
if
(
!
document
.
HasMember
(
"status_code"
)
||
!
document1
.
HasMember
(
"order_id"
)
||
!
document1
.
HasMember
(
"status"
)
)
{
return
false
;
}
return
true
;
}
std
::
string
JsonModule
::
convertToNewOrderJson
(
orderObj
&
obj
)
...
...
src/main.cpp
View file @
6dc7ea23
...
...
@@ -56,8 +56,10 @@ void* listen_pos_func(void* arg)
if
(
server
.
accept
(
pos
)
)
{
if
(
pos
.
receive
(
posRequestData
)
)
char
tmpBuf
[
BUF_SIZE
]
=
{
0
};
if
(
pos
.
read
(
tmpBuf
,
sizeof
(
tmpBuf
))
)
{
posRequestData
=
tmpBuf
;
// 如果为初始化请求则通过长连接socket发送
if
(
jsonTool
.
isInitData
(
posRequestData
)
)
{
...
...
@@ -76,9 +78,9 @@ void* listen_pos_func(void* arg)
{
// 同步阻塞发送到ODS并等待返回
TCPClient
ods
;
if
(
ods
.
c
onnect
(
ods_recv_port
,
ods_ip
.
c_str
())
)
if
(
ods
.
doC
onnect
(
ods_recv_port
,
ods_ip
.
c_str
())
)
{
if
(
ods
.
send
(
R
equestOdsData
)
)
if
(
ods
.
send
(
r
equestOdsData
)
)
{
std
::
string
tmp
;
if
(
ods
.
receive
(
tmp
)
)
...
...
@@ -105,7 +107,7 @@ void* listen_pos_func(void* arg)
}
// TODO待加入重试机制
pos
.
send
(
responseData
);
pos
.
write
(
responseData
.
c_str
()
);
pos
.
close
();
}
else
{
...
...
@@ -121,6 +123,11 @@ void* listen_pos_func(void* arg)
int
main
()
{
/* Mark
* 与ODS通信全部加数据头(长度)
* 与POS通信全部不加数据头
* end*/
signal
(
SIGPIPE
,
SIG_IGN
);
// 初始化日志
...
...
@@ -152,9 +159,9 @@ int main()
LOG
(
INFO
)
<<
"[ODS]ip地址: "
<<
ods_ip
.
data
()
<<
"-推送端口: "
<<
ods_push_port
<<
"-监听端口: "
<<
ods_recv_port
;
LOG
(
INFO
)
<<
"[CLIENT]监听端口: "
<<
client_listen_port
;
LOG
(
INFO
)
<<
"[POS]ip地址: "
<<
pos_ip
<<
"-监听端口: "
<<
pos_listen_port
;
LOG
(
INFO
)
<<
"[CLIENT]监听端口: "
<<
client_listen_port
;
//end
// 监听POS请求的线程
...
...
@@ -205,13 +212,14 @@ int main()
if
(
jsonTool
.
convertDataOds2Pos
(
odsPushData
,
pushPosData
)
)
{
TCPClient
pos
;
if
(
pos
.
c
onnect
(
pos_listen_port
,
pos_ip
.
c_str
())
)
if
(
pos
.
doC
onnect
(
pos_listen_port
,
pos_ip
.
c_str
())
)
{
if
(
pos
.
send
(
pushPosData
)
)
if
(
pos
.
write
(
pushPosData
.
c_str
()
)
)
{
std
::
string
tmp
;
if
(
pos
.
re
ceive
(
tmp
)
)
char
tmpBuf
[
BUF_SIZE
]
=
{
0
}
;
if
(
pos
.
re
ad
(
tmpBuf
,
sizeof
(
tmpBuf
)
)
)
{
std
::
string
tmp
(
tmpBuf
);
jsonTool
.
getOdsResponseData
(
tmp
,
odsPushData
,
responseData
);
}
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