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
You need to sign in or sign up before continuing.
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
...
@@ -179,7 +179,7 @@ void JsonModule::getPushOrders(IN const char* json,OUT std::vector<orderObj> &ve
bool
JsonModule
::
isInitData
(
const
std
::
string
&
data
)
bool
JsonModule
::
isInitData
(
const
std
::
string
&
data
)
{
{
rapidjson
::
Document
document
;
// 定义一个Document对象
rapidjson
::
Document
document
;
// 定义一个Document对象
document
.
Parse
(
json
);
// 解析,Parse()无返回值,也不会抛异常
document
.
Parse
(
data
.
c_str
()
);
// 解析,Parse()无返回值,也不会抛异常
if
(
document
.
HasParseError
())
// 通过HasParseError()来判断解析是否成功
if
(
document
.
HasParseError
())
// 通过HasParseError()来判断解析是否成功
{
{
LOG
(
ERROR
)
<<
"JSON parse error:"
<<
document
.
GetParseError
()
<<
":"
<<
document
.
GetErrorOffset
();
LOG
(
ERROR
)
<<
"JSON parse error:"
<<
document
.
GetParseError
()
<<
":"
<<
document
.
GetErrorOffset
();
...
@@ -191,17 +191,16 @@ bool JsonModule::isInitData(const std::string &data)
...
@@ -191,17 +191,16 @@ bool JsonModule::isInitData(const std::string &data)
bool
JsonModule
::
checkInitData
(
const
std
::
string
&
data
,
int
&
posListenPort
)
bool
JsonModule
::
checkInitData
(
const
std
::
string
&
data
,
int
&
posListenPort
)
{
{
rapidjson
::
Document
document
;
// 定义一个Document对象
rapidjson
::
Document
document
;
// 定义一个Document对象
document
.
Parse
(
data
);
// 解析,Parse()无返回值,也不会抛异常
document
.
Parse
(
data
.
c_str
()
);
// 解析,Parse()无返回值,也不会抛异常
if
(
document
.
HasParseError
())
// 通过HasParseError()来判断解析是否成功
if
(
document
.
HasParseError
())
// 通过HasParseError()来判断解析是否成功
{
{
LOG
(
ERROR
)
<<
"JSON parse error:"
<<
document
.
GetParseError
()
<<
":"
<<
document
.
GetErrorOffset
();
LOG
(
ERROR
)
<<
"JSON parse error:"
<<
document
.
GetParseError
()
<<
":"
<<
document
.
GetErrorOffset
();
return
false
;
return
false
;
}
}
if
(
document
[
"store_id"
].
GetString
().
empty
()
if
(
!
document
.
HasMember
(
"store_id"
)
||
document
[
"store_id"
].
GetString
().
empty
()
||
!
document
.
HasMember
(
"pos_id"
)
||
document
[
"pos_id"
].
GetString
().
empty
()
||
!
document
.
HasMember
(
"operator_id"
)
||
document
[
"operator_id"
].
GetString
().
empty
()
||
!
document
.
HasMember
(
"is_master"
)
||
!
document
.
HasMember
(
"is_master"
)
||
document
[
"listen_port"
].
GetInt
()
<
0
)
||
document
[
"listen_port"
].
GetInt
()
<
0
)
{
{
...
@@ -284,8 +283,8 @@ bool JsonModule::getOdsResponseData(const std::string &posResponse, const std::s
...
@@ -284,8 +283,8 @@ bool JsonModule::getOdsResponseData(const std::string &posResponse, const std::s
return
false
;
return
false
;
rapidjson
::
Document
document
,
document1
;
rapidjson
::
Document
document
,
document1
;
document
.
Parse
(
posResponse
);
document
.
Parse
(
posResponse
.
c_str
()
);
document1
.
Parse
(
orderData
);
document1
.
Parse
(
orderData
.
c_str
()
);
if
(
document
.
HasParseError
()
||
document1
.
HasParseError
())
if
(
document
.
HasParseError
()
||
document1
.
HasParseError
())
{
{
return
false
;
return
false
;
...
@@ -331,25 +330,12 @@ bool JsonModule::getOdsResponseData(const std::string &posResponse, const std::s
...
@@ -331,25 +330,12 @@ bool JsonModule::getOdsResponseData(const std::string &posResponse, const std::s
bool
JsonModule
::
convertDataPos2Ods
(
const
std
::
string
&
data
,
std
::
string
&
result
)
bool
JsonModule
::
convertDataPos2Ods
(
const
std
::
string
&
data
,
std
::
string
&
result
)
{
{
return
true
;
}
}
bool
JsonModule
::
convertDataOds2Pos
(
const
std
::
string
&
data
,
std
::
string
&
result
)
bool
JsonModule
::
convertDataOds2Pos
(
const
std
::
string
&
data
,
std
::
string
&
result
)
{
{
rapidjson
::
Document
data
;
return
true
;
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
;
}
}
}
std
::
string
JsonModule
::
convertToNewOrderJson
(
orderObj
&
obj
)
std
::
string
JsonModule
::
convertToNewOrderJson
(
orderObj
&
obj
)
...
...
src/main.cpp
View file @
6dc7ea23
...
@@ -56,8 +56,10 @@ void* listen_pos_func(void* arg)
...
@@ -56,8 +56,10 @@ void* listen_pos_func(void* arg)
if
(
server
.
accept
(
pos
)
)
if
(
server
.
accept
(
pos
)
)
{
{
if
(
pos
.
receive
(
posRequestData
)
)
char
tmpBuf
[
BUF_SIZE
]
=
{
0
};
if
(
pos
.
read
(
tmpBuf
,
sizeof
(
tmpBuf
))
)
{
{
posRequestData
=
tmpBuf
;
// 如果为初始化请求则通过长连接socket发送
// 如果为初始化请求则通过长连接socket发送
if
(
jsonTool
.
isInitData
(
posRequestData
)
)
if
(
jsonTool
.
isInitData
(
posRequestData
)
)
{
{
...
@@ -76,9 +78,9 @@ void* listen_pos_func(void* arg)
...
@@ -76,9 +78,9 @@ void* listen_pos_func(void* arg)
{
{
// 同步阻塞发送到ODS并等待返回
// 同步阻塞发送到ODS并等待返回
TCPClient
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
;
std
::
string
tmp
;
if
(
ods
.
receive
(
tmp
)
)
if
(
ods
.
receive
(
tmp
)
)
...
@@ -105,7 +107,7 @@ void* listen_pos_func(void* arg)
...
@@ -105,7 +107,7 @@ void* listen_pos_func(void* arg)
}
}
// TODO待加入重试机制
// TODO待加入重试机制
pos
.
send
(
responseData
);
pos
.
write
(
responseData
.
c_str
()
);
pos
.
close
();
pos
.
close
();
}
else
}
else
{
{
...
@@ -121,6 +123,11 @@ void* listen_pos_func(void* arg)
...
@@ -121,6 +123,11 @@ void* listen_pos_func(void* arg)
int
main
()
int
main
()
{
{
/* Mark
* 与ODS通信全部加数据头(长度)
* 与POS通信全部不加数据头
* end*/
signal
(
SIGPIPE
,
SIG_IGN
);
signal
(
SIGPIPE
,
SIG_IGN
);
// 初始化日志
// 初始化日志
...
@@ -152,9 +159,9 @@ int main()
...
@@ -152,9 +159,9 @@ int main()
LOG
(
INFO
)
<<
"[ODS]ip地址: "
<<
ods_ip
.
data
()
LOG
(
INFO
)
<<
"[ODS]ip地址: "
<<
ods_ip
.
data
()
<<
"-推送端口: "
<<
ods_push_port
<<
"-推送端口: "
<<
ods_push_port
<<
"-监听端口: "
<<
ods_recv_port
;
<<
"-监听端口: "
<<
ods_recv_port
;
LOG
(
INFO
)
<<
"[CLIENT]监听端口: "
<<
client_listen_port
;
LOG
(
INFO
)
<<
"[POS]ip地址: "
<<
pos_ip
LOG
(
INFO
)
<<
"[POS]ip地址: "
<<
pos_ip
<<
"-监听端口: "
<<
pos_listen_port
;
<<
"-监听端口: "
<<
pos_listen_port
;
LOG
(
INFO
)
<<
"[CLIENT]监听端口: "
<<
client_listen_port
;
//end
//end
// 监听POS请求的线程
// 监听POS请求的线程
...
@@ -205,13 +212,14 @@ int main()
...
@@ -205,13 +212,14 @@ int main()
if
(
jsonTool
.
convertDataOds2Pos
(
odsPushData
,
pushPosData
)
)
if
(
jsonTool
.
convertDataOds2Pos
(
odsPushData
,
pushPosData
)
)
{
{
TCPClient
pos
;
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
;
char
tmpBuf
[
BUF_SIZE
]
=
{
0
}
;
if
(
pos
.
re
ceive
(
tmp
)
)
if
(
pos
.
re
ad
(
tmpBuf
,
sizeof
(
tmpBuf
)
)
)
{
{
std
::
string
tmp
(
tmpBuf
);
jsonTool
.
getOdsResponseData
(
tmp
,
odsPushData
,
responseData
);
jsonTool
.
getOdsResponseData
(
tmp
,
odsPushData
,
responseData
);
}
else
}
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