Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
fmcoupon
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
李定达
fmcoupon
Commits
c5555f6b
Commit
c5555f6b
authored
Apr 13, 2018
by
李定达
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.允许重复节点的配置;
parent
7f43dd49
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
257 additions
and
34 deletions
+257
-34
.gitignore
+5
-0
control.cpp
+10
-12
control.h
+1
-1
fm_xmltojson.hpp
+155
-17
fmcoupon.pro
+5
-1
fmcoupon.rc
+38
-0
global.h
+6
-2
main.cpp
+36
-0
network.cpp
+1
-1
No files found.
.gitignore
0 → 100644
View file @
c5555f6b
debug/
*.user
Makefile
Makefile.Debug
Makefile.Release
control.cpp
View file @
c5555f6b
...
@@ -99,7 +99,7 @@ bool control::checkbaseinfo(std::string data, std::string &error)
...
@@ -99,7 +99,7 @@ bool control::checkbaseinfo(std::string data, std::string &error)
}
}
}
}
bool
control
::
AddSigntoJson
(
std
::
string
&
data
,
std
::
string
error
)
bool
control
::
AddSigntoJson
(
std
::
string
&
data
,
std
::
string
&
error
)
{
{
if
(
Tool
::
ReadCfg
(
QString
(
CFG_SECTION_ADDSIGN
),
1
).
toInt
()
==
0
)
if
(
Tool
::
ReadCfg
(
QString
(
CFG_SECTION_ADDSIGN
),
1
).
toInt
()
==
0
)
return
true
;
return
true
;
...
@@ -115,22 +115,20 @@ bool control::AddSigntoJson(std::string &data, std::string error)
...
@@ -115,22 +115,20 @@ bool control::AddSigntoJson(std::string &data, std::string error)
if
(
!
s
.
HasMember
(
JSON_STOREID_POS
))
if
(
!
s
.
HasMember
(
JSON_STOREID_POS
))
{
{
error
=
std
::
string
(
ERROR_MSG_1105
);
error
=
std
::
string
(
ERROR_MSG_1106
);
return
false
;
}
if
(
!
s
.
HasMember
(
JSON_PARTNERID_POS
))
{
error
=
std
::
string
(
ERROR_MSG_1107
);
return
false
;
return
false
;
}
}
rapidjson
::
Value
&
stordid
=
s
[
JSON_STOREID_POS
];
rapidjson
::
Value
&
stordid
=
s
[
JSON_STOREID_POS
];
rapidjson
::
Value
&
partid
=
s
[
JSON_PARTNERID_POS
];
//
rapidjson::Value &partid = s[JSON_PARTNERID_POS];
if
(
stordid
.
IsString
()
&&
partid
.
IsInt
())
QString
parid
=
Tool
::
ReadCfg
(
QString
(
CFG_SECTION_PARTNERID
),
"0000"
).
toString
();
if
(
stordid
.
IsString
())
{
{
stm
<<
stordid
.
GetString
()
<<
partid
.
GetInt
()
<<
DEFAULT_SIGN
;
QString
key
=
Tool
::
ReadCfg
(
QString
(
CFG_SECTION_KEY
),
"AABB729B20E347CD92EFA4331D0DAAAA"
).
toString
();
stm
<<
stordid
.
GetString
()
<<
parid
.
toUtf8
().
data
()
<<
key
.
toUtf8
().
data
();
QLOG_INFO
()
<<
"sign up data : "
<<
stm
.
str
().
c_str
();
QLOG_INFO
()
<<
"sign up data : "
<<
stm
.
str
().
c_str
();
...
@@ -571,7 +569,7 @@ void control::recv_data_pos(QByteArray data)
...
@@ -571,7 +569,7 @@ void control::recv_data_pos(QByteArray data)
if
(
!
checkneedhead
(
data
))
if
(
!
checkneedhead
(
data
))
{
{
QLOG_ERROR
()
<<
"checkneedhead failed"
;
QLOG_ERROR
()
<<
"checkneedhead failed"
;
recv_error_pos
(
QString
::
fromLocal8Bit
(
ERROR_
REQ_HEADER
));
recv_error_pos
(
QString
::
fromLocal8Bit
(
ERROR_
MSG_1201
));
return
;
return
;
}
}
...
...
control.h
View file @
c5555f6b
...
@@ -29,7 +29,7 @@ public:
...
@@ -29,7 +29,7 @@ public:
void
checkneedrollback
();
void
checkneedrollback
();
bool
AddSigntoJson
(
std
::
string
&
data
,
std
::
string
error
);
bool
AddSigntoJson
(
std
::
string
&
data
,
std
::
string
&
error
);
bool
getrealurl
(
QString
&
url
,
int
reqtype
);
bool
getrealurl
(
QString
&
url
,
int
reqtype
);
...
...
fm_xmltojson.hpp
View file @
c5555f6b
...
@@ -10,12 +10,12 @@
...
@@ -10,12 +10,12 @@
#include <xmlrapid/rapidxml_utils.hpp>
#include <xmlrapid/rapidxml_utils.hpp>
#include <xmlrapid/rapidxml_print.hpp>
#include <xmlrapid/rapidxml_print.hpp>
#include <rapidjson/document.h>
#include <
../include/
rapidjson/document.h>
#include <
rapidjson/prettywriter.h>
#include <
../include/rapidjson/prettywriter.h>
#include <
rapidjson/filereadstream.h>
#include <
../include/rapidjson/filereadstream.h>
#include <
rapidjson/filewritestream.h>
#include <
../include/rapidjson/filewritestream.h>
#include <rapidjson/stringbuffer.h>
#include <
../include/
rapidjson/stringbuffer.h>
#include <rapidjson/writer.h>
#include <
../include/
rapidjson/writer.h>
#include "Calc.hpp"
#include "Calc.hpp"
...
@@ -210,7 +210,7 @@ private:
...
@@ -210,7 +210,7 @@ private:
int
curPos
;
int
curPos
;
char
pathBuf
[
MAX_PATH
]
=
{
0
};
char
pathBuf
[
MAX_PATH
]
=
{
0
};
GetModuleFileName
((
HMODULE
)
&
__ImageBase
,
pathBuf
,
MAX_PATH
);
GetModuleFileNameA
((
HMODULE
)
&
__ImageBase
,
pathBuf
,
MAX_PATH
);
curPos
=
strlen
(
pathBuf
)
-
1
;
curPos
=
strlen
(
pathBuf
)
-
1
;
...
@@ -673,6 +673,10 @@ private:
...
@@ -673,6 +673,10 @@ private:
if
(
node
->
value
()
==
NULL
||
string
(
node
->
value
()).
empty
())
if
(
node
->
value
()
==
NULL
||
string
(
node
->
value
()).
empty
())
return
;
return
;
if
(
dval
.
HasMember
(
pkey
))
dval
.
RemoveMember
(
pkey
);
dval
.
AddMember
(
Value
().
SetString
(
pkey
,
strlen
(
pkey
),
desdoc
.
GetAllocator
()),
std
::
atoi
(
node
->
value
()),
desdoc
.
GetAllocator
());
dval
.
AddMember
(
Value
().
SetString
(
pkey
,
strlen
(
pkey
),
desdoc
.
GetAllocator
()),
std
::
atoi
(
node
->
value
()),
desdoc
.
GetAllocator
());
break
;
break
;
}
}
...
@@ -684,6 +688,10 @@ private:
...
@@ -684,6 +688,10 @@ private:
if
(
node
->
value
()
==
NULL
||
string
(
node
->
value
()).
empty
())
if
(
node
->
value
()
==
NULL
||
string
(
node
->
value
()).
empty
())
return
;
return
;
if
(
dval
.
HasMember
(
pkey
))
dval
.
RemoveMember
(
pkey
);
dval
.
AddMember
(
Value
().
SetString
(
pkey
,
strlen
(
pkey
),
desdoc
.
GetAllocator
()),
std
::
atof
(
node
->
value
()),
desdoc
.
GetAllocator
());
dval
.
AddMember
(
Value
().
SetString
(
pkey
,
strlen
(
pkey
),
desdoc
.
GetAllocator
()),
std
::
atof
(
node
->
value
()),
desdoc
.
GetAllocator
());
break
;
break
;
}
}
...
@@ -695,10 +703,14 @@ private:
...
@@ -695,10 +703,14 @@ private:
if
(
node
->
value
()
==
NULL
||
string
(
node
->
value
()).
empty
())
if
(
node
->
value
()
==
NULL
||
string
(
node
->
value
()).
empty
())
return
;
return
;
if
(
dval
.
HasMember
(
pkey
))
dval
.
RemoveMember
(
pkey
);
dval
.
AddMember
(
Value
().
SetString
(
pkey
,
strlen
(
pkey
),
desdoc
.
GetAllocator
()),
Value
().
SetString
(
node
->
value
(),
strlen
(
node
->
value
()),
desdoc
.
GetAllocator
()),
desdoc
.
GetAllocator
());
dval
.
AddMember
(
Value
().
SetString
(
pkey
,
strlen
(
pkey
),
desdoc
.
GetAllocator
()),
Value
().
SetString
(
node
->
value
(),
strlen
(
node
->
value
()),
desdoc
.
GetAllocator
()),
desdoc
.
GetAllocator
());
break
;
break
;
}
}
//无映射节点默认添加一个元素
if
(
node
->
first_attribute
(
XML_ATT_OKEY
)
==
NULL
&&
string
(
JSON_TYPE_ARRAY
).
compare
(
node
->
first_attribute
(
XML_ATT_TYPE
)
->
value
())
==
0
)
if
(
node
->
first_attribute
(
XML_ATT_OKEY
)
==
NULL
&&
string
(
JSON_TYPE_ARRAY
).
compare
(
node
->
first_attribute
(
XML_ATT_TYPE
)
->
value
())
==
0
)
{
{
if
(
!
CheckNodeNeed
(
node
,
sval
,
sparentvalue
,
sparentname
))
if
(
!
CheckNodeNeed
(
node
,
sval
,
sparentvalue
,
sparentname
))
...
@@ -706,7 +718,16 @@ private:
...
@@ -706,7 +718,16 @@ private:
if
(
node
->
first_node
()
->
name
()
!=
NULL
&&
string
(
XML_NODE_OBJECT
).
compare
(
node
->
first_node
()
->
name
())
==
0
)
if
(
node
->
first_node
()
->
name
()
!=
NULL
&&
string
(
XML_NODE_OBJECT
).
compare
(
node
->
first_node
()
->
name
())
==
0
)
{
{
Value
arrayvalue
(
rapidjson
::
kArrayType
);
Value
arrayvalue
;
if
(
dval
.
HasMember
(
pkey
)
&&
dval
[
pkey
].
IsArray
())
{
arrayvalue
.
CopyFrom
(
dval
[
pkey
],
desdoc
.
GetAllocator
());
}
else
{
arrayvalue
.
SetArray
();
}
for
(
xml_node
<>
*
attr
=
node
->
first_node
();
attr
!=
NULL
;
attr
=
attr
->
next_sibling
())
for
(
xml_node
<>
*
attr
=
node
->
first_node
();
attr
!=
NULL
;
attr
=
attr
->
next_sibling
())
{
{
...
@@ -717,18 +738,29 @@ private:
...
@@ -717,18 +738,29 @@ private:
for
(
xml_node
<>
*
attrs
=
attr
->
first_node
();
attrs
!=
NULL
;
attrs
=
attrs
->
next_sibling
())
for
(
xml_node
<>
*
attrs
=
attr
->
first_node
();
attrs
!=
NULL
;
attrs
=
attrs
->
next_sibling
())
{
{
InsertValueToJson
(
attrs
,
desdoc
,
objectvalue
,
sval
,
sparentvalue
);
InsertValueToJson
(
attrs
,
desdoc
,
objectvalue
,
sval
,
sparentvalue
);
}
}
arrayvalue
.
PushBack
(
objectvalue
,
desdoc
.
GetAllocator
());
arrayvalue
.
PushBack
(
objectvalue
,
desdoc
.
GetAllocator
());
}
}
if
(
dval
.
HasMember
(
pkey
))
dval
.
RemoveMember
(
pkey
);
dval
.
AddMember
(
Value
().
SetString
(
pkey
,
strlen
(
pkey
),
desdoc
.
GetAllocator
()),
arrayvalue
,
desdoc
.
GetAllocator
());
dval
.
AddMember
(
Value
().
SetString
(
pkey
,
strlen
(
pkey
),
desdoc
.
GetAllocator
()),
arrayvalue
,
desdoc
.
GetAllocator
());
break
;
break
;
}
}
else
else
{
{
Value
arrayvalue
(
rapidjson
::
kArrayType
);
Value
arrayvalue
;
if
(
dval
.
HasMember
(
pkey
)
&&
dval
[
pkey
].
IsArray
())
{
arrayvalue
.
CopyFrom
(
dval
[
pkey
],
desdoc
.
GetAllocator
());
}
else
{
arrayvalue
.
SetArray
();
}
Value
objectvalue
(
rapidjson
::
kObjectType
);
Value
objectvalue
(
rapidjson
::
kObjectType
);
for
(
xml_node
<>
*
attr
=
node
->
first_node
();
attr
!=
NULL
;
attr
=
attr
->
next_sibling
())
for
(
xml_node
<>
*
attr
=
node
->
first_node
();
attr
!=
NULL
;
attr
=
attr
->
next_sibling
())
...
@@ -736,6 +768,10 @@ private:
...
@@ -736,6 +768,10 @@ private:
InsertValueToJson
(
attr
,
desdoc
,
objectvalue
,
sval
,
sparentvalue
);
InsertValueToJson
(
attr
,
desdoc
,
objectvalue
,
sval
,
sparentvalue
);
}
}
arrayvalue
.
PushBack
(
objectvalue
,
desdoc
.
GetAllocator
());
arrayvalue
.
PushBack
(
objectvalue
,
desdoc
.
GetAllocator
());
if
(
dval
.
HasMember
(
pkey
))
dval
.
RemoveMember
(
pkey
);
dval
.
AddMember
(
Value
().
SetString
(
pkey
,
strlen
(
pkey
),
desdoc
.
GetAllocator
()),
arrayvalue
,
desdoc
.
GetAllocator
());
dval
.
AddMember
(
Value
().
SetString
(
pkey
,
strlen
(
pkey
),
desdoc
.
GetAllocator
()),
arrayvalue
,
desdoc
.
GetAllocator
());
break
;
break
;
}
}
...
@@ -743,16 +779,29 @@ private:
...
@@ -743,16 +779,29 @@ private:
if
(
node
->
first_attribute
(
XML_ATT_OKEY
)
==
NULL
&&
string
(
JSON_TYPE_OBJ
).
compare
(
node
->
first_attribute
(
XML_ATT_TYPE
)
->
value
())
==
0
)
if
(
node
->
first_attribute
(
XML_ATT_OKEY
)
==
NULL
&&
string
(
JSON_TYPE_OBJ
).
compare
(
node
->
first_attribute
(
XML_ATT_TYPE
)
->
value
())
==
0
)
{
{
if
(
!
CheckNodeNeed
(
node
,
sval
,
sparentvalue
,
sparentname
))
if
(
!
CheckNodeNeed
(
node
,
sval
,
sparentvalue
,
sparentname
))
break
;
break
;
Value
objectvalue
(
rapidjson
::
kObjectType
);
Value
objectvalue
;
if
(
dval
.
HasMember
(
pkey
)
&&
((
const
Value
&
)
dval
[
pkey
]).
IsObject
())
{
objectvalue
.
CopyFrom
(
dval
[
pkey
],
desdoc
.
GetAllocator
());
}
else
{
objectvalue
.
SetObject
();
}
for
(
xml_node
<>
*
attr
=
node
->
first_node
();
attr
!=
NULL
;
attr
=
attr
->
next_sibling
())
for
(
xml_node
<>
*
attr
=
node
->
first_node
();
attr
!=
NULL
;
attr
=
attr
->
next_sibling
())
{
{
InsertValueToJson
(
attr
,
desdoc
,
objectvalue
,
sval
,
sparentvalue
);
InsertValueToJson
(
attr
,
desdoc
,
objectvalue
,
sval
,
sparentvalue
);
}
}
if
(
dval
.
HasMember
(
pkey
))
dval
.
RemoveMember
(
pkey
);
dval
.
AddMember
(
Value
().
SetString
(
pkey
,
strlen
(
pkey
),
desdoc
.
GetAllocator
()),
objectvalue
,
desdoc
.
GetAllocator
());
dval
.
AddMember
(
Value
().
SetString
(
pkey
,
strlen
(
pkey
),
desdoc
.
GetAllocator
()),
objectvalue
,
desdoc
.
GetAllocator
());
break
;
break
;
}
}
...
@@ -760,8 +809,15 @@ private:
...
@@ -760,8 +809,15 @@ private:
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
if
(
node
->
first_attribute
(
XML_ATT_OKEY
)
!=
NULL
&&
string
(
JSON_TYPE_INT
).
compare
(
node
->
first_attribute
(
XML_ATT_TYPE
)
->
value
())
==
0
)
if
(
node
->
first_attribute
(
XML_ATT_OKEY
)
!=
NULL
&&
string
(
JSON_TYPE_INT
).
compare
(
node
->
first_attribute
(
XML_ATT_TYPE
)
->
value
())
==
0
)
{
{
if
(
!
CheckNodeNeed
(
node
,
sval
,
sparentvalue
,
sparentname
))
break
;
if
(
node
->
value
()
!=
NULL
&&
!
string
(
node
->
value
()).
empty
())
if
(
node
->
value
()
!=
NULL
&&
!
string
(
node
->
value
()).
empty
())
{
{
if
(
dval
.
HasMember
(
pkey
))
dval
.
RemoveMember
(
pkey
);
dval
.
AddMember
(
Value
().
SetString
(
pkey
,
strlen
(
pkey
),
desdoc
.
GetAllocator
()),
std
::
atoi
(
node
->
value
()),
desdoc
.
GetAllocator
());
dval
.
AddMember
(
Value
().
SetString
(
pkey
,
strlen
(
pkey
),
desdoc
.
GetAllocator
()),
std
::
atoi
(
node
->
value
()),
desdoc
.
GetAllocator
());
break
;
break
;
}
}
...
@@ -773,6 +829,9 @@ private:
...
@@ -773,6 +829,9 @@ private:
GetMaping
(
node
,
values
);
GetMaping
(
node
,
values
);
if
(
dval
.
HasMember
(
pkey
))
dval
.
RemoveMember
(
pkey
);
dval
.
AddMember
(
Value
().
SetString
(
pkey
,
strlen
(
pkey
),
desdoc
.
GetAllocator
()),
std
::
atoi
(
values
.
c_str
()),
desdoc
.
GetAllocator
());
dval
.
AddMember
(
Value
().
SetString
(
pkey
,
strlen
(
pkey
),
desdoc
.
GetAllocator
()),
std
::
atoi
(
values
.
c_str
()),
desdoc
.
GetAllocator
());
break
;
break
;
}
}
...
@@ -781,8 +840,14 @@ private:
...
@@ -781,8 +840,14 @@ private:
if
(
node
->
first_attribute
(
XML_ATT_OKEY
)
!=
NULL
&&
string
(
JSON_TYPE_DOUBLE
).
compare
(
node
->
first_attribute
(
XML_ATT_TYPE
)
->
value
())
==
0
)
if
(
node
->
first_attribute
(
XML_ATT_OKEY
)
!=
NULL
&&
string
(
JSON_TYPE_DOUBLE
).
compare
(
node
->
first_attribute
(
XML_ATT_TYPE
)
->
value
())
==
0
)
{
{
if
(
!
CheckNodeNeed
(
node
,
sval
,
sparentvalue
,
sparentname
))
break
;
if
(
node
->
value
()
!=
NULL
&&
!
string
(
node
->
value
()).
empty
())
if
(
node
->
value
()
!=
NULL
&&
!
string
(
node
->
value
()).
empty
())
{
{
if
(
dval
.
HasMember
(
pkey
))
dval
.
RemoveMember
(
pkey
);
dval
.
AddMember
(
Value
().
SetString
(
pkey
,
strlen
(
pkey
),
desdoc
.
GetAllocator
()),
std
::
atof
(
node
->
value
()),
desdoc
.
GetAllocator
());
dval
.
AddMember
(
Value
().
SetString
(
pkey
,
strlen
(
pkey
),
desdoc
.
GetAllocator
()),
std
::
atof
(
node
->
value
()),
desdoc
.
GetAllocator
());
break
;
break
;
}
}
...
@@ -794,6 +859,9 @@ private:
...
@@ -794,6 +859,9 @@ private:
GetMaping
(
node
,
values
);
GetMaping
(
node
,
values
);
if
(
dval
.
HasMember
(
pkey
))
dval
.
RemoveMember
(
pkey
);
dval
.
AddMember
(
Value
().
SetString
(
pkey
,
strlen
(
pkey
),
desdoc
.
GetAllocator
()),
std
::
atof
(
values
.
c_str
()),
desdoc
.
GetAllocator
());
dval
.
AddMember
(
Value
().
SetString
(
pkey
,
strlen
(
pkey
),
desdoc
.
GetAllocator
()),
std
::
atof
(
values
.
c_str
()),
desdoc
.
GetAllocator
());
break
;
break
;
}
}
...
@@ -802,8 +870,13 @@ private:
...
@@ -802,8 +870,13 @@ private:
if
(
node
->
first_attribute
(
XML_ATT_OKEY
)
!=
NULL
&&
string
(
JSON_TYPE_STRING
).
compare
(
node
->
first_attribute
(
XML_ATT_TYPE
)
->
value
())
==
0
)
if
(
node
->
first_attribute
(
XML_ATT_OKEY
)
!=
NULL
&&
string
(
JSON_TYPE_STRING
).
compare
(
node
->
first_attribute
(
XML_ATT_TYPE
)
->
value
())
==
0
)
{
{
if
(
!
CheckNodeNeed
(
node
,
sval
,
sparentvalue
,
sparentname
))
break
;
if
(
node
->
value
()
!=
NULL
&&
!
string
(
node
->
value
()).
empty
())
if
(
node
->
value
()
!=
NULL
&&
!
string
(
node
->
value
()).
empty
())
{
{
if
(
dval
.
HasMember
(
pkey
))
dval
.
RemoveMember
(
pkey
);
dval
.
AddMember
(
Value
().
SetString
(
pkey
,
strlen
(
pkey
),
desdoc
.
GetAllocator
()),
Value
().
SetString
(
node
->
value
(),
strlen
(
node
->
value
()),
desdoc
.
GetAllocator
()),
desdoc
.
GetAllocator
());
dval
.
AddMember
(
Value
().
SetString
(
pkey
,
strlen
(
pkey
),
desdoc
.
GetAllocator
()),
Value
().
SetString
(
node
->
value
(),
strlen
(
node
->
value
()),
desdoc
.
GetAllocator
()),
desdoc
.
GetAllocator
());
break
;
break
;
}
}
...
@@ -815,6 +888,9 @@ private:
...
@@ -815,6 +888,9 @@ private:
GetMaping
(
node
,
values
);
GetMaping
(
node
,
values
);
if
(
dval
.
HasMember
(
pkey
))
dval
.
RemoveMember
(
pkey
);
dval
.
AddMember
(
Value
().
SetString
(
pkey
,
strlen
(
pkey
),
desdoc
.
GetAllocator
()),
Value
().
SetString
(
values
.
c_str
(),
strlen
(
values
.
c_str
()),
desdoc
.
GetAllocator
()),
desdoc
.
GetAllocator
());
dval
.
AddMember
(
Value
().
SetString
(
pkey
,
strlen
(
pkey
),
desdoc
.
GetAllocator
()),
Value
().
SetString
(
values
.
c_str
(),
strlen
(
values
.
c_str
()),
desdoc
.
GetAllocator
()),
desdoc
.
GetAllocator
());
break
;
break
;
}
}
...
@@ -823,6 +899,9 @@ private:
...
@@ -823,6 +899,9 @@ private:
if
(
node
->
first_attribute
(
XML_ATT_OKEY
)
!=
NULL
&&
string
(
JSON_TYPE_ARRAY
).
compare
(
node
->
first_attribute
(
XML_ATT_TYPE
)
->
value
())
==
0
)
if
(
node
->
first_attribute
(
XML_ATT_OKEY
)
!=
NULL
&&
string
(
JSON_TYPE_ARRAY
).
compare
(
node
->
first_attribute
(
XML_ATT_TYPE
)
->
value
())
==
0
)
{
{
if
(
!
CheckNodeNeed
(
node
,
sval
,
sparentvalue
,
sparentname
))
break
;
Document
docs
;
Document
docs
;
Value
valus
;
Value
valus
;
...
@@ -831,7 +910,16 @@ private:
...
@@ -831,7 +910,16 @@ private:
if
(
valus
.
IsArray
())
if
(
valus
.
IsArray
())
{
{
Value
arrayvalue
(
rapidjson
::
kArrayType
);
Value
arrayvalue
;
if
(
dval
.
HasMember
(
pkey
)
&&
dval
[
pkey
].
IsArray
())
{
arrayvalue
.
CopyFrom
(
dval
[
pkey
],
desdoc
.
GetAllocator
());
}
else
{
arrayvalue
.
SetArray
();
}
for
(
unsigned
int
i
=
0
;
i
<
valus
.
Size
();
++
i
)
for
(
unsigned
int
i
=
0
;
i
<
valus
.
Size
();
++
i
)
{
{
...
@@ -842,19 +930,37 @@ private:
...
@@ -842,19 +930,37 @@ private:
}
}
arrayvalue
.
PushBack
(
objectvalue
,
desdoc
.
GetAllocator
());
arrayvalue
.
PushBack
(
objectvalue
,
desdoc
.
GetAllocator
());
}
}
if
(
dval
.
HasMember
(
pkey
))
dval
.
RemoveMember
(
pkey
);
dval
.
AddMember
(
Value
().
SetString
(
pkey
,
strlen
(
pkey
),
desdoc
.
GetAllocator
()),
arrayvalue
,
desdoc
.
GetAllocator
());
dval
.
AddMember
(
Value
().
SetString
(
pkey
,
strlen
(
pkey
),
desdoc
.
GetAllocator
()),
arrayvalue
,
desdoc
.
GetAllocator
());
break
;
break
;
}
}
if
(
valus
.
IsObject
())
if
(
valus
.
IsObject
())
{
{
Value
arrayvalue
(
rapidjson
::
kArrayType
);
Value
arrayvalue
;
if
(
dval
.
HasMember
(
pkey
)
&&
((
const
Value
&
)
dval
[
pkey
]).
IsArray
())
{
arrayvalue
.
CopyFrom
(
dval
[
pkey
],
desdoc
.
GetAllocator
());
}
else
{
arrayvalue
.
SetArray
();
}
Value
objectvalue
(
rapidjson
::
kObjectType
);
Value
objectvalue
(
rapidjson
::
kObjectType
);
for
(
xml_node
<>
*
attr
=
node
->
first_node
();
attr
!=
NULL
;
attr
=
attr
->
next_sibling
())
for
(
xml_node
<>
*
attr
=
node
->
first_node
();
attr
!=
NULL
;
attr
=
attr
->
next_sibling
())
{
{
InsertValueToJson
(
attr
,
desdoc
,
objectvalue
,
sval
,
valus
,
string
(
node
->
first_attribute
(
XML_ATT_OKEY
)
->
value
()));
InsertValueToJson
(
attr
,
desdoc
,
objectvalue
,
sval
,
valus
,
string
(
node
->
first_attribute
(
XML_ATT_OKEY
)
->
value
()));
}
}
arrayvalue
.
PushBack
(
objectvalue
,
desdoc
.
GetAllocator
());
arrayvalue
.
PushBack
(
objectvalue
,
desdoc
.
GetAllocator
());
if
(
dval
.
HasMember
(
pkey
))
dval
.
RemoveMember
(
pkey
);
dval
.
AddMember
(
Value
().
SetString
(
pkey
,
strlen
(
pkey
),
desdoc
.
GetAllocator
()),
arrayvalue
,
desdoc
.
GetAllocator
());
dval
.
AddMember
(
Value
().
SetString
(
pkey
,
strlen
(
pkey
),
desdoc
.
GetAllocator
()),
arrayvalue
,
desdoc
.
GetAllocator
());
break
;
break
;
}
}
...
@@ -863,6 +969,9 @@ private:
...
@@ -863,6 +969,9 @@ private:
if
(
node
->
first_attribute
(
XML_ATT_OKEY
)
!=
NULL
&&
string
(
JSON_TYPE_OBJ
).
compare
(
node
->
first_attribute
(
XML_ATT_TYPE
)
->
value
())
==
0
)
if
(
node
->
first_attribute
(
XML_ATT_OKEY
)
!=
NULL
&&
string
(
JSON_TYPE_OBJ
).
compare
(
node
->
first_attribute
(
XML_ATT_TYPE
)
->
value
())
==
0
)
{
{
if
(
!
CheckNodeNeed
(
node
,
sval
,
sparentvalue
,
sparentname
))
break
;
Document
docs
;
Document
docs
;
Value
valus
;
Value
valus
;
...
@@ -872,22 +981,50 @@ private:
...
@@ -872,22 +981,50 @@ private:
if
(
valus
.
IsArray
())
if
(
valus
.
IsArray
())
{
{
Value
objectvalue
(
rapidjson
::
kObjectType
);
Value
objectvalue
;
if
(
dval
.
HasMember
(
pkey
)
&&
((
const
Value
&
)
dval
[
pkey
]).
IsArray
()
&&
((
const
Value
&
)
dval
[
pkey
]).
GetArray
().
Size
()
>=
1
)
{
objectvalue
.
CopyFrom
(
dval
[
pkey
][
0
],
desdoc
.
GetAllocator
());
}
else
{
objectvalue
.
SetObject
();
}
for
(
xml_node
<>
*
attr
=
node
->
first_node
();
attr
!=
NULL
;
attr
=
attr
->
next_sibling
())
for
(
xml_node
<>
*
attr
=
node
->
first_node
();
attr
!=
NULL
;
attr
=
attr
->
next_sibling
())
{
{
InsertValueToJson
(
attr
,
desdoc
,
objectvalue
,
sval
,
valus
.
GetArray
()[
0
],
string
(
node
->
first_attribute
(
XML_ATT_OKEY
)
->
value
()));
InsertValueToJson
(
attr
,
desdoc
,
objectvalue
,
sval
,
valus
.
GetArray
()[
0
],
string
(
node
->
first_attribute
(
XML_ATT_OKEY
)
->
value
()));
}
}
if
(
dval
.
HasMember
(
pkey
))
dval
.
RemoveMember
(
pkey
);
dval
.
AddMember
(
Value
().
SetString
(
pkey
,
strlen
(
pkey
),
desdoc
.
GetAllocator
()),
objectvalue
,
desdoc
.
GetAllocator
());
dval
.
AddMember
(
Value
().
SetString
(
pkey
,
strlen
(
pkey
),
desdoc
.
GetAllocator
()),
objectvalue
,
desdoc
.
GetAllocator
());
break
;
break
;
}
}
if
(
valus
.
IsObject
())
if
(
valus
.
IsObject
())
{
{
Value
objectvalue
(
rapidjson
::
kObjectType
);
Value
objectvalue
;
if
(
dval
.
HasMember
(
pkey
)
&&
((
const
Value
&
)
dval
[
pkey
]).
IsObject
())
{
objectvalue
.
CopyFrom
(
dval
[
pkey
],
desdoc
.
GetAllocator
());
}
else
{
objectvalue
.
SetObject
();
}
for
(
xml_node
<>
*
attr
=
node
->
first_node
();
attr
!=
NULL
;
attr
=
attr
->
next_sibling
())
for
(
xml_node
<>
*
attr
=
node
->
first_node
();
attr
!=
NULL
;
attr
=
attr
->
next_sibling
())
{
{
InsertValueToJson
(
attr
,
desdoc
,
objectvalue
,
sval
,
valus
,
string
(
node
->
first_attribute
(
XML_ATT_OKEY
)
->
value
()));
InsertValueToJson
(
attr
,
desdoc
,
objectvalue
,
sval
,
valus
,
string
(
node
->
first_attribute
(
XML_ATT_OKEY
)
->
value
()));
}
}
if
(
dval
.
HasMember
(
pkey
))
dval
.
RemoveMember
(
pkey
);
dval
.
AddMember
(
Value
().
SetString
(
pkey
,
strlen
(
pkey
),
desdoc
.
GetAllocator
()),
objectvalue
,
desdoc
.
GetAllocator
());
dval
.
AddMember
(
Value
().
SetString
(
pkey
,
strlen
(
pkey
),
desdoc
.
GetAllocator
()),
objectvalue
,
desdoc
.
GetAllocator
());
break
;
break
;
}
}
...
@@ -897,6 +1034,7 @@ private:
...
@@ -897,6 +1034,7 @@ private:
}
while
(
0
);
}
while
(
0
);
}
}
static
void
Do_GetJsonWithXML
(
xml_node
<>
*
node
,
const
Document
&
srcdoc
,
Document
&
desdoc
)
static
void
Do_GetJsonWithXML
(
xml_node
<>
*
node
,
const
Document
&
srcdoc
,
Document
&
desdoc
)
{
{
if
(
node
==
NULL
)
if
(
node
==
NULL
)
...
...
fmcoupon.pro
View file @
c5555f6b
...
@@ -9,7 +9,7 @@ QT += core network
...
@@ -9,7 +9,7 @@ QT += core network
QT
-=
gui
QT
-=
gui
TARGET
=
fmcoupon
TARGET
=
fmcoupon
CONFIG
+
=
console
CONFIG
-
=
console
CONFIG
-=
app_bundle
CONFIG
-=
app_bundle
TEMPLATE
=
app
TEMPLATE
=
app
...
@@ -22,6 +22,8 @@ SOURCES += main.cpp \
...
@@ -22,6 +22,8 @@ SOURCES += main.cpp \
network
.
cpp
\
network
.
cpp
\
control
.
cpp
control
.
cpp
RC_FILE
+=
fmcoupon
.
rc
HEADERS
+=
\
HEADERS
+=
\
config
.
h
\
config
.
h
\
global
.
h
\
global
.
h
\
...
@@ -30,3 +32,5 @@ HEADERS += \
...
@@ -30,3 +32,5 @@ HEADERS += \
control
.
h
\
control
.
h
\
Calc
.
hpp
\
Calc
.
hpp
\
fm_xmltojson
.
hpp
fm_xmltojson
.
hpp
fmcoupon.rc
0 → 100644
View file @
c5555f6b
#if defined(UNDER_CE)
#include <winbase.h>
#else
#include <winver.h>
#endif
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,1
PRODUCTVERSION 1,0,0,1
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS VS_FF_DEBUG
#else
FILEFLAGS 0x0L
#endif
FILEOS VOS__WINDOWS32
FILETYPE VFT_DLL
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "080404b0"
BEGIN
VALUE "CompanyName", "ShangHai Freemud Co., Ltd."
VALUE "FileDescription", "FREEMUD Manager System"
VALUE "FileVersion", "1.0.0.1"
VALUE "InternalName", "FREEMUD"
VALUE "LegalCopyright", "Copyright (C)2017-2020"
VALUE "OriginalFilename", "fmcoupon.exe"
VALUE "ProductName", "fmcoupon"
VALUE "ProductVersion", "1.0.0.1"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x804, 1200
END
END
\ No newline at end of file
global.h
View file @
c5555f6b
#ifndef FM_GLOBAL_H
#
ifndef
FM_GLOBAL_H
#define FM_GLOBAL_H
#define FM_GLOBAL_H
//
//
...
@@ -24,11 +24,15 @@
...
@@ -24,11 +24,15 @@
#define ERROR_MSG_1200 "请先设置营业日"
#define ERROR_MSG_1200 "请先设置营业日"
#define ERROR_MSG_1201 "POS请求数据消息头异常或缺失"
//cfg section
//cfg section
#define CFG_SECTION_SERVERHOST "all/serverhost"
#define CFG_SECTION_SERVERHOST "all/serverhost"
#define CFG_SECTION_LISTENPORT "all/listenport"
#define CFG_SECTION_LISTENPORT "all/listenport"
#define CFG_SECTION_BASEINFO "all/baseinfo"
#define CFG_SECTION_BASEINFO "all/baseinfo"
#define CFG_SECTION_KEY "all/key"
#define CFG_SECTION_PARTNERID "all/partnerid"
#define CFG_SECTION_CHECKBASEINFO "all/checkbaseinfo"
#define CFG_SECTION_CHECKBASEINFO "all/checkbaseinfo"
#define CFG_SECTION_CHECKHEADER "all/checkheader"
#define CFG_SECTION_CHECKHEADER "all/checkheader"
#define CFG_SECTION_ADDSIGN "all/addsign"
#define CFG_SECTION_ADDSIGN "all/addsign"
...
@@ -39,7 +43,7 @@
...
@@ -39,7 +43,7 @@
#define ERRRO_JSON_FMCONPON "{\"status_code\":210, \"msg\":\"%1\"}"
#define ERRRO_JSON_FMCONPON "{\"status_code\":210, \"msg\":\"%1\"}"
#define SUCCESS_JSON_FMCONPON "{\"status_code\":100, \"msg\":\"营业日设置成功\"}"
#define SUCCESS_JSON_FMCONPON "{\"status_code\":100, \"msg\":\"营业日设置成功\"}"
#define EMPTY_JSON_FMCONPON "{\"status_code\":211, \"msg\":\"服务端返回数据异常\"}"
#define EMPTY_JSON_FMCONPON "{\"status_code\":211, \"msg\":\"服务端返回数据异常\"}"
#define ERROR_REQ_HEADER "{\"status_code\":212, \"msg\":\"POS请求数据消息头异常或缺失\"}"
//
#define ERROR_REQ_HEADER "{\"status_code\":212, \"msg\":\"POS请求数据消息头异常或缺失\"}"
#define ROLLBACK_FILL "rollback.txt"
#define ROLLBACK_FILL "rollback.txt"
...
...
main.cpp
View file @
c5555f6b
...
@@ -5,10 +5,46 @@
...
@@ -5,10 +5,46 @@
#include "config.h"
#include "config.h"
#include "control.h"
#include "control.h"
#ifdef WIN32
#include <Windows.h>
#else
#endif
#ifdef FM_TEST
#ifdef FM_TEST
int
checkonly
()
{
#ifdef WIN32
HANDLE
m_hMutex
=
CreateMutex
(
NULL
,
FALSE
,
L"Global
\\
fmTakeaway"
);
if
(
m_hMutex
!=
NULL
)
{
if
(
GetLastError
()
==
ERROR_ALREADY_EXISTS
||
GetLastError
()
==
ERROR_ACCESS_DENIED
)
{
CloseHandle
(
m_hMutex
);
m_hMutex
=
NULL
;
return
-
1
;
}
}
else
{
return
-
1
;
}
#else
#endif
return
0
;
}
int
main
(
int
argc
,
char
*
argv
[])
int
main
(
int
argc
,
char
*
argv
[])
{
{
if
(
checkonly
()
==
-
1
)
return
1
;
QCoreApplication
a
(
argc
,
argv
);
QCoreApplication
a
(
argc
,
argv
);
QString
logDir
=
QString
(
"%1/log"
).
arg
(
QCoreApplication
::
applicationDirPath
());
QString
logDir
=
QString
(
"%1/log"
).
arg
(
QCoreApplication
::
applicationDirPath
());
...
...
network.cpp
View file @
c5555f6b
...
@@ -179,7 +179,7 @@ void NetWork::on_new_connection_come()
...
@@ -179,7 +179,7 @@ void NetWork::on_new_connection_come()
return
;
return
;
}
}
QLOG_INFO
()
<<
"recv data : "
<<
data
.
data
();
QLOG_INFO
()
<<
"recv data : "
<<
data
.
toHex
();
emit
recv_data_ready
(
data
);
emit
recv_data_ready
(
data
);
}
}
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