diff --git a/CHANGELOG b/CHANGELOG index 2e3e5d02d741203991ed02e09ccf05e6a7f064a7..c00d7549bad0f6b104713ca32736a233a7da150b 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,17 @@ +XEngine_APIService V2.5.0.1001 + +添加:zipcode查询功能 +添加:计量转换插件 +修改:数据库模块错误定义 +更新:匹配XEngine V7.42版本 +删除:所有回复类型1模式,现在只有返回JSON了 + +added:zipcode query +added:meter convert plugin +modify:error code define for db module +update:match xengine v7.42 +delete:reply type 1 functions for bank and id and ip and language and phone and translation +====================================================================================== XEngine_APIService V2.4.0.1001 添加:分布式锁 diff --git a/README.en.md b/README.en.md index fc46f437e2cf18f8a820a0f9f08243b675c1e61d..cf91ef7009d28a6c4a144abc463ba0acd8fe761d 100644 --- a/README.en.md +++ b/README.en.md @@ -18,7 +18,7 @@ and support plugin module Support privatization deployment, free, safe, open source, controllable ## Software feature -1. support json and string stream methods to return the content of the query +1. permission verication 2. support ip address location information query(IPV4 and IPV6) 3. support ID verification and information query 4. support phone number information query @@ -30,7 +30,7 @@ Support privatization deployment, free, safe, open source, controllable 10. Password generator 11. World Time Zones 12. Oil price inquiry (planned) -13. Administrative zip code (planned) +13. Administrative zip code 14. Bank card verification 15. Exchange rate calculation (planned) 16. QR code generation and parse (planned) @@ -40,6 +40,8 @@ Support privatization deployment, free, safe, open source, controllable 20. Metering Conversion 21. CDKey Creator 22. Distributed lock +23. short url creator +24. local system time ## install @@ -59,7 +61,8 @@ use vs open and compile,suport windows 7sp1 and above Just Run it #### Linux -install opencc,ubuntu:sudo apt install libopencc-dev,centos:compile by self +install opencc,ubuntu:sudo apt install libopencc-dev +centos:compile by self use makefile compile,UBUNTU20.04 x64 or CENTOS8 x64 Run it on the terminal @@ -106,7 +109,7 @@ Address:app.xyry.org,Port:5501 #### example For more information please refer to the documentation phone information query -api:http://app.xyry.org:5501/api?function=phone¶ms1=13699439999¶ms2=0 +api:http://app.xyry.org:5501/api?function=phone¶ms1=13699439999 ```json { "code":0, @@ -121,7 +124,7 @@ api:http://app.xyry.org:5501/api?function=phone¶ms1=13699439999¶ms2=0 } ``` ip address information -api:http://app.xyry.org:5501/api?function=ip¶ms1=1.29.164.255¶ms2=0 +api:http://app.xyry.org:5501/api?function=ip¶ms1=1.29.164.255 ```json { "code":0, @@ -141,7 +144,7 @@ api:http://app.xyry.org:5501/api?function=ip¶ms1=1.29.164.255¶ms2=0 } ``` id information query -api:http://app.xyry.org:5501/api?function=id¶ms1=511025198800000000¶ms2=0 +api:http://app.xyry.org:5501/api?function=id¶ms1=511025198800000000 ```json { "code":0, @@ -161,7 +164,7 @@ api:http://app.xyry.org:5501/api?function=id¶ms1=511025198800000000¶ms2= } ``` bank card ver -api:http://app.xyry.org:5501/api?function=bank¶ms1=6214832830000000¶ms2=0 +api:http://app.xyry.org:5501/api?function=bank¶ms1=6214832830000000 ```json { "code":0, @@ -175,7 +178,7 @@ api:http://app.xyry.org:5501/api?function=bank¶ms1=6214832830000000¶ms2= } ``` language -api:http://app.xyry.org:5501/api?function=language¶ms1=简体到繁体¶ms2=0¶ms3=1 +api:http://app.xyry.org:5501/api?function=language¶ms1=简体到繁体¶ms2=1 ```json { "code":0, @@ -188,7 +191,7 @@ api:http://app.xyry.org:5501/api?function=language¶ms1=简体到繁体¶m } ``` translation -api:http://app.xyry.org:5501/api?function=translation¶ms1=中国¶ms2=0¶ms3=0 +api:http://app.xyry.org:5501/api?function=translation¶ms1=中国¶ms2=0 ```json { "code":0, diff --git a/README.md b/README.md index ecd69062634e3d77bdbffd449088400ea51bb64a..494f94003f549f5fb194bdad715dc218c0e04286 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ c c++ interface api service ## 软件特性 -1. 支持JSON和字符串流方式返回查询的内容 +1. 权限验证 2. 支持IP地址位置信息查询(IPV4和IPV6) 3. 支持身份证校验与信息查询 4. 支持手机号信息归属查询 @@ -30,16 +30,18 @@ c c++ interface api service 10. 密码生成器 11. 世界时区 12. 油价查询(计划中) -13. 行政邮编(计划中) +13. 行政邮编 14. 银行卡验证 15. 汇率计算(计划中) 16. 二维码生成解析(计划中) 17. 简繁转换 18. 二十四节气(计划中) 19. 新华词典 -20. 计量转换(计划中) +20. 计量转换 21. CDKey创建支持 22. 分布式锁API +23. 短连接生成 +24. 本地标准时间 ## 安装教程 @@ -59,7 +61,8 @@ macos执行:./XEngine_LINEnv.sh -i 3 直接运行即可 #### Linux -安装opencc,ubuntu:sudo apt install libopencc-dev,centos:需要自己编译 +安装opencc,ubuntu:sudo apt install libopencc-dev +centos:需要自己编译 Linux使用Makefile编译,UBUNTU20.04 x64或者CENTOS8 x64 在控制台运行 @@ -104,7 +107,7 @@ make FLAGS=CleanAll 清理编译 #### 测试接口示例 更多内容请参考文档 手机信息查询 -接口:http://app.xyry.org:5501/api?function=phone¶ms1=13699439999¶ms2=0 +接口:http://app.xyry.org:5501/api?function=phone¶ms1=13699439999 ```json { "code":0, @@ -119,7 +122,7 @@ make FLAGS=CleanAll 清理编译 } ``` IP地址查询 -接口:http://app.xyry.org:5501/api?function=ip¶ms1=1.29.164.255¶ms2=0 +接口:http://app.xyry.org:5501/api?function=ip¶ms1=1.29.164.255 ```json { "code":0, @@ -139,7 +142,7 @@ IP地址查询 } ``` 身份证查询 -接口:http://app.xyry.org:5501/api?function=id¶ms1=511025198800000000¶ms2=0 +接口:http://app.xyry.org:5501/api?function=id¶ms1=511025198800000000 ```json { "code":0, @@ -159,7 +162,7 @@ IP地址查询 } ``` 银行卡验证 -接口:http://app.xyry.org:5501/api?function=bank¶ms1=6214832830000000¶ms2=0 +接口:http://app.xyry.org:5501/api?function=bank¶ms1=6214832830000000 ```json { "code":0, @@ -173,7 +176,7 @@ IP地址查询 } ``` 语言转换 -接口:http://app.xyry.org:5501/api?function=language¶ms1=简体到繁体¶ms2=0¶ms3=1 +接口:http://app.xyry.org:5501/api?function=language¶ms1=简体到繁体¶ms2=1 ```json { "code":0, @@ -186,7 +189,7 @@ IP地址查询 } ``` 翻译 -接口:http://app.xyry.org:5501/api?function=translation¶ms1=中国¶ms2=0¶ms3=0 +接口:http://app.xyry.org:5501/api?function=translation¶ms1=中国¶ms2=0 ```json { "code":0, diff --git a/XEngine_APPClient/APPClient_BankExample/APPClient_BankExample.cpp b/XEngine_APPClient/APPClient_BankExample/APPClient_BankExample.cpp index 65aa4682e2cc803dd99bbcd01c8ebcd4d9dba5be..c9295c6cf6dabeb1efe84aa90d6129753e745ecc 100644 --- a/XEngine_APPClient/APPClient_BankExample/APPClient_BankExample.cpp +++ b/XEngine_APPClient/APPClient_BankExample/APPClient_BankExample.cpp @@ -31,7 +31,7 @@ int main() TCHAR* ptszMsgBuffer = NULL; LPCTSTR lpszUrl = _T("http://127.0.0.1:5501/api?function=bank¶ms1=6214111100184841¶ms2=0"); - if (!APIHelp_HttpRequest_Get(lpszUrl, &ptszMsgBuffer, &nLen)) + if (!APIHelp_HttpRequest_Custom(_T("GET"), lpszUrl, NULL, NULL, &ptszMsgBuffer, &nLen)) { printf("发送投递失败!\n"); return 0; diff --git a/XEngine_APPClient/APPClient_CDKeyExample/APPClient_CDKeyExample.cpp b/XEngine_APPClient/APPClient_CDKeyExample/APPClient_CDKeyExample.cpp index 7dc01a69c27c3b2ba61a7504422e52e5d26a07ca..93bce5707cddeb8cb3cc2fcb623f824e03d29881 100644 --- a/XEngine_APPClient/APPClient_CDKeyExample/APPClient_CDKeyExample.cpp +++ b/XEngine_APPClient/APPClient_CDKeyExample/APPClient_CDKeyExample.cpp @@ -63,7 +63,7 @@ int main() TCHAR* ptszCreateBuffer = NULL; TCHAR* ptszAuthBuffer = NULL; - if (!APIHelp_HttpRequest_Post(lpszCreateUrl, st_JsonRoot.toStyledString().c_str(), &nCode, &ptszCreateBuffer, &nLen)) + if (!APIHelp_HttpRequest_Custom(_T("POST"), lpszCreateUrl, st_JsonRoot.toStyledString().c_str(), &nCode, &ptszCreateBuffer, &nLen)) { printf("发送投递失败!\n"); return 0; @@ -77,7 +77,7 @@ int main() BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszCreateBuffer); LPCTSTR lpszAuthUrl = _T("http://127.0.0.1:5501/api?function=cdkey¶ms1=1¶ms2=123123"); - if (!APIHelp_HttpRequest_Post(lpszAuthUrl, tszMsgBuffer, &nCode, &ptszAuthBuffer, &nLen)) + if (!APIHelp_HttpRequest_Custom(_T("POST"), lpszAuthUrl, tszMsgBuffer, &nCode, &ptszAuthBuffer, &nLen)) { printf("发送投递失败!\n"); return 0; diff --git a/XEngine_APPClient/APPClient_IDExample/APPClient_IDExample.cpp b/XEngine_APPClient/APPClient_IDExample/APPClient_IDExample.cpp index 97b52a04a5364e42959d971ea788f8754daca98e..9781c515f99d5da8d7b6f21899605da043454bdc 100644 --- a/XEngine_APPClient/APPClient_IDExample/APPClient_IDExample.cpp +++ b/XEngine_APPClient/APPClient_IDExample/APPClient_IDExample.cpp @@ -31,7 +31,7 @@ int main() TCHAR* ptszMsgBuffer = NULL; LPCTSTR lpszUrl = _T("http://127.0.0.1:5501/api?function=id¶ms1=511025191101018792¶ms2=0"); - if (!APIHelp_HttpRequest_Get(lpszUrl, &ptszMsgBuffer, &nLen)) + if (!APIHelp_HttpRequest_Custom(_T("GET"), lpszUrl, NULL, NULL, &ptszMsgBuffer, &nLen)) { printf("发送投递失败!\n"); return 0; diff --git a/XEngine_APPClient/APPClient_IPExample/APPClient_IPExample.cpp b/XEngine_APPClient/APPClient_IPExample/APPClient_IPExample.cpp index 805dbf33a03172322b1b9828b047dbfe70716e56..f330dfc3e4de0cda9cc2a1bcc5cc85fff47044ce 100644 --- a/XEngine_APPClient/APPClient_IPExample/APPClient_IPExample.cpp +++ b/XEngine_APPClient/APPClient_IPExample/APPClient_IPExample.cpp @@ -31,7 +31,7 @@ int main() TCHAR* ptszMsgBuffer = NULL; LPCTSTR lpszUrl = _T("http://127.0.0.1:5501/api?function=ip¶ms1=1.29.164.255¶ms2=0"); - if (!APIHelp_HttpRequest_Get(lpszUrl, &ptszMsgBuffer, &nLen)) + if (!APIHelp_HttpRequest_Custom(_T("GET"), lpszUrl, NULL, NULL, &ptszMsgBuffer, &nLen)) { printf("发送投递失败!\n"); return 0; diff --git a/XEngine_APPClient/APPClient_LanguageExample/APPClient_LanguageExample.cpp b/XEngine_APPClient/APPClient_LanguageExample/APPClient_LanguageExample.cpp index 60aa10fc09fd73699b44562410b1e2f1f81e9e3a..7db98651ff3e7998b693fc52fed1d7e8b11ddd13 100644 --- a/XEngine_APPClient/APPClient_LanguageExample/APPClient_LanguageExample.cpp +++ b/XEngine_APPClient/APPClient_LanguageExample/APPClient_LanguageExample.cpp @@ -31,7 +31,7 @@ int main() TCHAR* ptszMsgBuffer = NULL; LPCTSTR lpszUrl = _T("http://127.0.0.1:5501/api?function=language¶ms1=简体¶ms2=0¶m3=1"); - if (!APIHelp_HttpRequest_Get(lpszUrl, &ptszMsgBuffer, &nLen)) + if (!APIHelp_HttpRequest_Custom(_T("GET"), lpszUrl, NULL, NULL, &ptszMsgBuffer, &nLen)) { printf("发送投递失败!\n"); return 0; diff --git a/XEngine_APPClient/APPClient_LockExample/APPClient_LockExample.cpp b/XEngine_APPClient/APPClient_LockExample/APPClient_LockExample.cpp index 77418a137490b6f07d9a7f7f985932458d230742..67d8adb7f7c5836c86e5f8663b1f1735c02a6547 100644 --- a/XEngine_APPClient/APPClient_LockExample/APPClient_LockExample.cpp +++ b/XEngine_APPClient/APPClient_LockExample/APPClient_LockExample.cpp @@ -31,7 +31,7 @@ int main() LPCTSTR lpszOPenUrl = _T("http://127.0.0.1:5501/api?function=lock¶ms1=1000106561¶ms1=1"); //自己创建打开 TCHAR* ptszBuffer = NULL; - if (!APIHelp_HttpRequest_Get(lpszOPenUrl, &ptszBuffer, &nLen)) + if (!APIHelp_HttpRequest_Custom(_T("GET"), lpszOPenUrl, NULL, NULL, &ptszBuffer, &nLen)) { printf("发送投递失败!\n"); return 0; @@ -40,7 +40,7 @@ int main() BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBuffer); //打开读锁 LPCTSTR lpszReadUrl = _T("http://127.0.0.1:5501/api?function=lock¶ms1=1000106561¶ms2=3"); - if (!APIHelp_HttpRequest_Get(lpszReadUrl, &ptszBuffer, &nLen)) + if (!APIHelp_HttpRequest_Custom(_T("GET"), lpszReadUrl, NULL, NULL, &ptszBuffer, &nLen)) { printf("发送投递失败!\n"); return 0; @@ -49,7 +49,7 @@ int main() BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBuffer); //打开写锁 LPCTSTR lpszWriteUrl = _T("http://127.0.0.1:5501/api?function=lock¶ms1=1000106561¶ms2=5"); - if (!APIHelp_HttpRequest_Get(lpszWriteUrl, &ptszBuffer, &nLen)) + if (!APIHelp_HttpRequest_Custom(_T("GET"), lpszWriteUrl, NULL, NULL, &ptszBuffer, &nLen)) { printf("发送投递失败!\n"); return 0; @@ -58,7 +58,7 @@ int main() BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBuffer); //释放读锁 LPCTSTR lpszUNReadUrl = _T("http://127.0.0.1:5501/api?function=lock¶ms1=1000106561¶ms2=4"); - if (!APIHelp_HttpRequest_Get(lpszUNReadUrl, &ptszBuffer, &nLen)) + if (!APIHelp_HttpRequest_Custom(_T("GET"), lpszUNReadUrl, NULL, NULL, &ptszBuffer, &nLen)) { printf("发送投递失败!\n"); return 0; @@ -66,7 +66,7 @@ int main() printf("接受到数据,大小:%d,内容:\n%s\n", nLen, ptszBuffer); BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBuffer); //打开解锁 - if (!APIHelp_HttpRequest_Get(lpszWriteUrl, &ptszBuffer, &nLen)) + if (!APIHelp_HttpRequest_Custom(_T("GET"), lpszWriteUrl, NULL, NULL, &ptszBuffer, &nLen)) { printf("发送投递失败!\n"); return 0; @@ -75,7 +75,7 @@ int main() BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBuffer); //关闭 LPCTSTR lpszCloseUrl = _T("http://127.0.0.1:5501/api?function=lock¶ms1=1000106561¶ms2=2"); - if (!APIHelp_HttpRequest_Get(lpszCloseUrl, &ptszBuffer, &nLen)) + if (!APIHelp_HttpRequest_Custom(_T("GET"), lpszCloseUrl, NULL, NULL, &ptszBuffer, &nLen)) { printf("发送投递失败!\n"); return 0; diff --git a/XEngine_APPClient/APPClient_P2PExample/APPClient_P2PExample.cpp b/XEngine_APPClient/APPClient_P2PExample/APPClient_P2PExample.cpp index a086ddcb4ec60b24a8fb18b8dd38eb003e6437ae..64fd70cc866a1bd2dd30fc12841376d208ca52e8 100644 --- a/XEngine_APPClient/APPClient_P2PExample/APPClient_P2PExample.cpp +++ b/XEngine_APPClient/APPClient_P2PExample/APPClient_P2PExample.cpp @@ -67,7 +67,7 @@ int APPClient_P2XPLogin() int nMsgLen = 0; int nHTTPCode = 0; TCHAR* ptszMsgBuffer = NULL; - if (!APIHelp_HttpRequest_Post(lpszAddr, st_JsonRoot.toStyledString().c_str(), &nHTTPCode, &ptszMsgBuffer, &nMsgLen)) + if (!APIHelp_HttpRequest_Custom(_T("POST"), lpszAddr, st_JsonRoot.toStyledString().c_str(), &nHTTPCode, &ptszMsgBuffer, &nMsgLen)) { return -1; } @@ -88,7 +88,7 @@ int APPClient_P2XPList() int nMsgLen = 0; int nHTTPCode = 0; TCHAR* ptszMsgBuffer = NULL; - if (!APIHelp_HttpRequest_Post(lpszAddr, st_JsonRoot.toStyledString().c_str(), &nHTTPCode, &ptszMsgBuffer, &nMsgLen)) + if (!APIHelp_HttpRequest_Custom(_T("POST"), lpszAddr, st_JsonRoot.toStyledString().c_str(), &nHTTPCode, &ptszMsgBuffer, &nMsgLen)) { return -1; } @@ -109,7 +109,7 @@ int APPClient_P2XPGetUser() int nMsgLen = 0; int nHTTPCode = 0; TCHAR* ptszMsgBuffer = NULL; - if (!APIHelp_HttpRequest_Post(lpszAddr, st_JsonRoot.toStyledString().c_str(), &nHTTPCode, &ptszMsgBuffer, &nMsgLen)) + if (!APIHelp_HttpRequest_Custom(_T("POST"), lpszAddr, st_JsonRoot.toStyledString().c_str(), &nHTTPCode, &ptszMsgBuffer, &nMsgLen)) { return -1; } @@ -130,7 +130,7 @@ int APPClient_P2XPConnect() int nMsgLen = 0; int nHTTPCode = 0; TCHAR* ptszMsgBuffer = NULL; - if (!APIHelp_HttpRequest_Post(lpszAddr, st_JsonRoot.toStyledString().c_str(), &nHTTPCode, &ptszMsgBuffer, &nMsgLen)) + if (!APIHelp_HttpRequest_Custom(_T("POST"), lpszAddr, st_JsonRoot.toStyledString().c_str(), &nHTTPCode, &ptszMsgBuffer, &nMsgLen)) { return -1; } diff --git a/XEngine_APPClient/APPClient_PhoneExample/APPClient_PhoneExample.cpp b/XEngine_APPClient/APPClient_PhoneExample/APPClient_PhoneExample.cpp index 3331387571bb301b987a773b49f41082abcd8bd9..7ff3d5745061b4a2a4ad2d67144e1992bac55140 100644 --- a/XEngine_APPClient/APPClient_PhoneExample/APPClient_PhoneExample.cpp +++ b/XEngine_APPClient/APPClient_PhoneExample/APPClient_PhoneExample.cpp @@ -31,7 +31,7 @@ int main() TCHAR* ptszMsgBuffer = NULL; LPCTSTR lpszUrl = _T("http://127.0.0.1:5501/api?function=phone¶ms1=13699438888¶ms2=0"); - if (!APIHelp_HttpRequest_Get(lpszUrl, &ptszMsgBuffer, &nLen)) + if (!APIHelp_HttpRequest_Custom(_T("GET"), lpszUrl, NULL, NULL, &ptszMsgBuffer, &nLen)) { printf("发送投递失败!\n"); return 0; diff --git a/XEngine_APPClient/APPClient_PluginExample/APPClient_PluginExample.cpp b/XEngine_APPClient/APPClient_PluginExample/APPClient_PluginExample.cpp index f8752374efbb050a01fe8efea4c0effc1034cfec..d8553c6dc5bae3a0421064b04911535d9bbe4701 100644 --- a/XEngine_APPClient/APPClient_PluginExample/APPClient_PluginExample.cpp +++ b/XEngine_APPClient/APPClient_PluginExample/APPClient_PluginExample.cpp @@ -30,7 +30,7 @@ int main() int nLen = 0; TCHAR* ptszMsgBuffer = NULL; LPCTSTR lpszPassUrl = _T("http://127.0.0.1:5501/api?function=pass¶ms1=1¶ms2=4"); - if (!APIHelp_HttpRequest_Get(lpszPassUrl, &ptszMsgBuffer, &nLen)) + if (!APIHelp_HttpRequest_Custom(_T("GET"), lpszPassUrl, NULL, NULL, &ptszMsgBuffer, &nLen)) { printf("发送投递失败!\n"); return 0; @@ -39,7 +39,7 @@ int main() BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer); LPCTSTR lpszZodiacUrl = _T("http://127.0.0.1:5501/api?function=zodiac¶ms1=19880121"); - if (!APIHelp_HttpRequest_Get(lpszZodiacUrl, &ptszMsgBuffer, &nLen)) + if (!APIHelp_HttpRequest_Custom(_T("GET"), lpszZodiacUrl, NULL, NULL, &ptszMsgBuffer, &nLen)) { printf("发送投递失败!\n"); return 0; @@ -48,7 +48,7 @@ int main() BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer); LPCTSTR lpszTimeUrl = _T("http://127.0.0.1:5501/api?function=timezone¶ms1=1¶ms2=1-20"); - if (!APIHelp_HttpRequest_Get(lpszTimeUrl, &ptszMsgBuffer, &nLen)) + if (!APIHelp_HttpRequest_Custom(_T("GET"), lpszTimeUrl, NULL, NULL, &ptszMsgBuffer, &nLen)) { printf("发送投递失败!\n"); return 0; @@ -57,7 +57,7 @@ int main() BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer); LPCTSTR lpszBmiUrl = _T("http://127.0.0.1:5501/api?function=bmindex¶ms1=1.78¶ms2=62"); - if (!APIHelp_HttpRequest_Get(lpszBmiUrl, &ptszMsgBuffer, &nLen)) + if (!APIHelp_HttpRequest_Custom(_T("GET"), lpszBmiUrl, NULL, NULL, &ptszMsgBuffer, &nLen)) { printf("发送投递失败!\n"); return 0; diff --git a/XEngine_APPClient/APPClient_TranslationExample/APPClient_TranslationExample.cpp b/XEngine_APPClient/APPClient_TranslationExample/APPClient_TranslationExample.cpp index dad86d425c182213aa29baf5c12accdf30fa637b..695e4489161f2ce69e973c0c1fde2c75bd0eba9f 100644 --- a/XEngine_APPClient/APPClient_TranslationExample/APPClient_TranslationExample.cpp +++ b/XEngine_APPClient/APPClient_TranslationExample/APPClient_TranslationExample.cpp @@ -31,7 +31,7 @@ int main() TCHAR* ptszMsgBuffer = NULL; LPCTSTR lpszUrl = _T("http://127.0.0.1:5501/api?function=translation¶ms1=中国¶ms2=0¶m3=0"); - if (!APIHelp_HttpRequest_Get(lpszUrl, &ptszMsgBuffer, &nLen)) + if (!APIHelp_HttpRequest_Custom(_T("GET"), lpszUrl, NULL, NULL, &ptszMsgBuffer, &nLen)) { printf("发送投递失败!\n"); return 0; diff --git a/XEngine_APPClient/APPClient_ZIPCodeExample/APPClient_ZIPCodeExample.cpp b/XEngine_APPClient/APPClient_ZIPCodeExample/APPClient_ZIPCodeExample.cpp new file mode 100644 index 0000000000000000000000000000000000000000..b854a3e79aec67292cba818e6019d1165828ed0a --- /dev/null +++ b/XEngine_APPClient/APPClient_ZIPCodeExample/APPClient_ZIPCodeExample.cpp @@ -0,0 +1,60 @@ +#ifdef _MSC_BUILD +#include +#include +#pragma comment(lib,"Ws2_32") +#pragma comment(lib,"jsoncpp") +#pragma comment(lib,"XEngine_BaseLib/XEngine_BaseLib") +#pragma comment(lib,"XEngine_NetHelp/NetHelp_APIHelp") +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +//需要优先配置XEngine +//WINDOWS支持VS2022 x64 debug 编译调试 +//linux::g++ -std=c++17 -Wall -g APPClient_ZIPCodeExample.cpp -o APPClient_ZIPCodeExample.exe -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L /usr/local/lib/XEngine_Release/XEngine_NetHelp -lXEngine_BaseLib -lNetHelp_APIHelp +//macos::g++ -std=c++17 -Wall -g APPClient_ZIPCodeExample.cpp -o APPClient_ZIPCodeExample.exe -lXEngine_BaseLib -lNetHelp_APIHelp + +int main() +{ +#ifdef _MSC_BUILD + WSADATA st_WSAData; + WSAStartup(MAKEWORD(2, 2), &st_WSAData); +#endif + int nLen = 0; + int nCode = 0; + TCHAR tszMsgBuffer[1024]; + LPCTSTR lpszCreateUrl = _T("http://127.0.0.1:5501/api?function=zipcode¶ms1=0"); + + memset(tszMsgBuffer, '\0', sizeof(tszMsgBuffer)); + + Json::Value st_JsonRoot; + st_JsonRoot["nZipCode"] = 100010; + + TCHAR* ptszMsgBuffer = NULL; + if (!APIHelp_HttpRequest_Custom(_T("POST"), lpszCreateUrl, st_JsonRoot.toStyledString().c_str(), &nCode, &ptszMsgBuffer, &nLen)) + { + printf("发送投递失败!\n"); + return 0; + } +#ifdef _MSC_BUILD + BaseLib_OperatorCharset_UTFToAnsi(ptszMsgBuffer, tszMsgBuffer, &nLen); + printf("接受到数据,大小:%d,内容:%s\n", nLen, tszMsgBuffer); +#else + printf("接受到数据,大小:%d,内容:%s\n", nLen, ptszMsgBuffer); +#endif + BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszMsgBuffer); + +#ifdef _MSC_BUILD + WSACleanup(); +#endif + return 0; +} \ No newline at end of file diff --git a/XEngine_APPClient/APPClient_ZIPCodeExample/APPClient_ZIPCodeExample.vcxproj b/XEngine_APPClient/APPClient_ZIPCodeExample/APPClient_ZIPCodeExample.vcxproj new file mode 100644 index 0000000000000000000000000000000000000000..c3d2b41ff636b02db75ca34bbce0ba4fcf5f8ca5 --- /dev/null +++ b/XEngine_APPClient/APPClient_ZIPCodeExample/APPClient_ZIPCodeExample.vcxproj @@ -0,0 +1,139 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {4d665697-a449-490f-8ce6-ced6752ee128} + APPClientZIPCodeExample + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + MultiByte + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + $(XEngine_Include);../../XEngine_Source/XEngine_ThirdPart/jsoncpp;$(IncludePath) + $(XEngine_Lib64);../../XEngine_Source/x64/Debug;$(LibraryPath) + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/XEngine_APPClient/APPClient_ZIPCodeExample/APPClient_ZIPCodeExample.vcxproj.filters b/XEngine_APPClient/APPClient_ZIPCodeExample/APPClient_ZIPCodeExample.vcxproj.filters new file mode 100644 index 0000000000000000000000000000000000000000..9bf7bd2a070dc74136d43848f673f384e11569f9 --- /dev/null +++ b/XEngine_APPClient/APPClient_ZIPCodeExample/APPClient_ZIPCodeExample.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + 源文件 + + + \ No newline at end of file diff --git a/XEngine_APPClient/APPClient_ZIPCodeExample/APPClient_ZIPCodeExample.vcxproj.user b/XEngine_APPClient/APPClient_ZIPCodeExample/APPClient_ZIPCodeExample.vcxproj.user new file mode 100644 index 0000000000000000000000000000000000000000..88a550947edbc3c5003a41726f0749201fdb6822 --- /dev/null +++ b/XEngine_APPClient/APPClient_ZIPCodeExample/APPClient_ZIPCodeExample.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/XEngine_APPClient/XEngine_APPClient.sln b/XEngine_APPClient/XEngine_APPClient.sln index 7e53a28c83415a2ad9b070c41eaa103a59f9b754..cede1431da0e749f371a5403e6bfa7606b790b5e 100644 --- a/XEngine_APPClient/XEngine_APPClient.sln +++ b/XEngine_APPClient/XEngine_APPClient.sln @@ -23,6 +23,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "APPClient_CDKeyExample", "A EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "APPClient_LockExample", "APPClient_LockExample\APPClient_LockExample.vcxproj", "{6EC0E212-E8DF-4DD2-8DA5-2BCFD18405F9}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "APPClient_ZIPCodeExample", "APPClient_ZIPCodeExample\APPClient_ZIPCodeExample.vcxproj", "{4D665697-A449-490F-8CE6-CED6752EE128}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 @@ -111,6 +113,14 @@ Global {6EC0E212-E8DF-4DD2-8DA5-2BCFD18405F9}.Release|x64.Build.0 = Release|x64 {6EC0E212-E8DF-4DD2-8DA5-2BCFD18405F9}.Release|x86.ActiveCfg = Release|Win32 {6EC0E212-E8DF-4DD2-8DA5-2BCFD18405F9}.Release|x86.Build.0 = Release|Win32 + {4D665697-A449-490F-8CE6-CED6752EE128}.Debug|x64.ActiveCfg = Debug|x64 + {4D665697-A449-490F-8CE6-CED6752EE128}.Debug|x64.Build.0 = Debug|x64 + {4D665697-A449-490F-8CE6-CED6752EE128}.Debug|x86.ActiveCfg = Debug|Win32 + {4D665697-A449-490F-8CE6-CED6752EE128}.Debug|x86.Build.0 = Debug|Win32 + {4D665697-A449-490F-8CE6-CED6752EE128}.Release|x64.ActiveCfg = Release|x64 + {4D665697-A449-490F-8CE6-CED6752EE128}.Release|x64.Build.0 = Release|x64 + {4D665697-A449-490F-8CE6-CED6752EE128}.Release|x86.ActiveCfg = Release|Win32 + {4D665697-A449-490F-8CE6-CED6752EE128}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/XEngine_Docment/Docment_en.docx b/XEngine_Docment/Docment_en.docx index 09425f043258108dafe7eb65cf016018e2ef98d2..6e134209e717d021dfc5b9c5e365b703c9b12b82 100644 Binary files a/XEngine_Docment/Docment_en.docx and b/XEngine_Docment/Docment_en.docx differ diff --git a/XEngine_Docment/Docment_zh.docx b/XEngine_Docment/Docment_zh.docx index 37be83d68aa7382f124f0c758a3ad00bb51f06ac..254e9d75cbb971055fd8a7b2e22a47d663e65e24 100644 Binary files a/XEngine_Docment/Docment_zh.docx and b/XEngine_Docment/Docment_zh.docx differ diff --git a/XEngine_Release/XEngine_Config/XEngine_Config.json b/XEngine_Release/XEngine_Config/XEngine_Config.json index 1052d2f69fd0edca145aff3a89553c8022ffaaff..7e7ef28ff15be72948ed2c12e9ea9afc4baf39cc 100644 --- a/XEngine_Release/XEngine_Config/XEngine_Config.json +++ b/XEngine_Release/XEngine_Config/XEngine_Config.json @@ -23,6 +23,7 @@ "tszIDData":"./XEngine_DBFile/regionsid.db", "tszPhoneData":"./XEngine_DBFile/phone.dat", "tszBankData":"./XEngine_DBFile/bankinfo.db", + "tszZIPCodeData":"./XEngine_DBFile/zipcode.db", "tszBankUrl":"https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?cardNo=%s&cardBinCheck=true", "tszTranslationUrl":"http://fanyi.youdao.com/translate?&doctype=json&type=%s&i=%s" }, @@ -31,7 +32,8 @@ "tszPluginFile":"./XEngine_Config/XEngine_PluginConfig.json" }, "XVer":[ - "2.4.0.1001 Build20220913", + "2.5.0.1001 Build20221102", + "2.4.0.1001 Build20220902", "2.3.0.1001 Build20220723", "2.2.0.1001 Build20220701", "2.1.0.1001 Build20220429", diff --git a/XEngine_Release/XEngine_Config/XEngine_OPtionConfig.json b/XEngine_Release/XEngine_Config/XEngine_OPtionConfig.json index d94ea3eeed671a7000e9f3c4e0cef1c9a28f1d69..ae1273ed077f7fb2ac02c113fbcab34a4a051013 100644 --- a/XEngine_Release/XEngine_Config/XEngine_OPtionConfig.json +++ b/XEngine_Release/XEngine_Config/XEngine_OPtionConfig.json @@ -1,84 +1,94 @@ { - "OPTionBase":[ - { - "OPTionEnable":true, - "OPTionMethod":"ip", - "OPTionNote":"IP地址信息查询", - "OPTionExample":"http://%s/api?function=ip¶ms1=1.29.164.255¶ms2=0" - }, - { - "OPTionEnable":true, - "OPTionMethod":"id", - "OPTionNote":"身份证信息查询", - "OPTionExample":"http://%s/api?function=id¶ms1=511025191101018792¶ms2=0" - }, - { - "OPTionEnable":true, - "OPTionMethod":"phone", - "OPTionNote":"电话号码查询", - "OPTionExample":"http://%s/api?function=phone¶ms1=13699428888¶ms2=0" - }, - { - "OPTionEnable":true, - "OPTionMethod":"bank", - "OPTionNote":"银行卡验证", - "OPTionExample":"http://%s/api?function=bank¶ms1=6214000000¶ms2=0" - }, - { - "OPTionEnable":true, - "OPTionMethod":"language", - "OPTionNote":"语言转换", - "OPTionExample":"http://%s/api?function=language¶ms1=繁体到简体¶ms2=0¶ms3=1" - }, - { - "OPTionEnable":true, - "OPTionMethod":"translation", - "OPTionNote":"翻译", - "OPTionExample":"http://%s/api?function=translation¶ms1=中国¶ms2=0¶ms3=0" - }, - { - "OPTionEnable":true, - "OPTionMethod":"p2p", - "OPTionNote":"p2p网络", - "OPTionExample":"参考文档" - }, - { - "OPTionEnable":true, - "OPTionMethod":"lock", - "OPTionNote":"分布式锁", - "OPTionExample":"http://%s/api?function=lock¶ms1=token¶ms2=0" - }, - { - "OPTionEnable":true, - "OPTionMethod":"cdkey", - "OPTionNote":"cdkey创建器", - "OPTionExample":"http://%s/api?function=cdkey¶ms1=0" - } - ], - "OPTionPlugin":[ - { - "OPTionEnable":true, - "OPTionMethod":"zodiac", - "OPTionNote":"生肖星座", - "OPTionExample":"http://%s/api?function=zodiac¶ms1=19880121" - }, - { - "OPTionEnable":true, - "OPTionMethod":"pass", - "OPTionNote":"密码", - "OPTionExample":"http://%s/api?function=pass¶ms1=1¶ms2=4" - }, - { - "OPTionEnable":true, - "OPTionMethod":"timezone", - "OPTionNote":"时区转换", - "OPTionExample":"http://%s/api?function=timezone¶ms1=0" - }, - { - "OPTionEnable":true, - "OPTionMethod":"bmindex", - "OPTionNote":"体脂标准", - "OPTionExample":"http://%s/api?function=bmindex¶ms1=高(米))¶m2=体重(千克)" - } - ] + "OPTionBase": [{ + "OPTionEnable": true, + "OPTionMethod": "ip", + "OPTionNote": "IP地址信息查询", + "OPTionExample": "http://%s/api?function=ip¶ms1=1.29.164.255¶ms2=0" + }, + { + "OPTionEnable": true, + "OPTionMethod": "id", + "OPTionNote": "身份证信息查询", + "OPTionExample": "http://%s/api?function=id¶ms1=511025191101018792¶ms2=0" + }, + { + "OPTionEnable": true, + "OPTionMethod": "phone", + "OPTionNote": "电话号码查询", + "OPTionExample": "http://%s/api?function=phone¶ms1=13699428888¶ms2=0" + }, + { + "OPTionEnable": true, + "OPTionMethod": "bank", + "OPTionNote": "银行卡验证", + "OPTionExample": "http://%s/api?function=bank¶ms1=6214000000¶ms2=0" + }, + { + "OPTionEnable": true, + "OPTionMethod": "language", + "OPTionNote": "语言转换", + "OPTionExample": "http://%s/api?function=language¶ms1=繁体到简体¶ms2=0¶ms3=1" + }, + { + "OPTionEnable": true, + "OPTionMethod": "translation", + "OPTionNote": "翻译", + "OPTionExample": "http://%s/api?function=translation¶ms1=中国¶ms2=0¶ms3=0" + }, + { + "OPTionEnable": true, + "OPTionMethod": "lock", + "OPTionNote": "分布式锁", + "OPTionExample": "http://%s/api?function=lock¶ms1=0¶ms2=12319824824" + }, + { + "OPTionEnable": true, + "OPTionMethod": "p2p", + "OPTionNote": "p2p网络", + "OPTionExample": "参考文档" + }, + { + "OPTionEnable": true, + "OPTionMethod": "cdkey", + "OPTionNote": "cdkey授权生成", + "OPTionExample": "参考文档" + }, + { + "OPTionEnable": true, + "OPTionMethod": "zipcode", + "OPTionNote": "行政邮编信息", + "OPTionExample": "参考文档" + } + ], + "OPTionPlugin": [{ + "OPTionEnable": true, + "OPTionMethod": "zodiac", + "OPTionNote": "生肖星座", + "OPTionExample": "http://%s/api?function=zodiac¶ms1=19880121" + }, + { + "OPTionEnable": true, + "OPTionMethod": "pass", + "OPTionNote": "密码", + "OPTionExample": "http://%s/api?function=pass¶ms1=1¶ms2=4" + }, + { + "OPTionEnable": true, + "OPTionMethod": "timezone", + "OPTionNote": "时区转换", + "OPTionExample": "http://%s/api?function=timezone¶ms1=0" + }, + { + "OPTionEnable": true, + "OPTionMethod": "bmindex", + "OPTionNote": "体脂标准", + "OPTionExample": "http://%s/api?function=bmindex¶ms1=高(米))¶m2=体重(千克)" + }, + { + "OPTionEnable": true, + "OPTionMethod": "meter", + "OPTionNote": "计量转换", + "OPTionExample": "http://%s/api?function=meter&type=0&source=1&value=100" + } + ] } \ No newline at end of file diff --git a/XEngine_Release/XEngine_Config/XEngine_PluginConfig.json b/XEngine_Release/XEngine_Config/XEngine_PluginConfig.json index 8854921c574519902cb95c2a1026b0bcb86b896b..eb7d57927b06bf11fcfcfbd9ccac9c2f54b81339 100644 --- a/XEngine_Release/XEngine_Config/XEngine_PluginConfig.json +++ b/XEngine_Release/XEngine_Config/XEngine_PluginConfig.json @@ -19,6 +19,11 @@ "PluginEnable":true, "PluginMethod":"bmindex", "PluginFile":"./XEngine_Plugin/libModulePlugin_BMIndex" + }, + { + "PluginEnable":true, + "PluginMethod":"meter", + "PluginFile":"./XEngine_Plugin/libModulePlugin_Meter" } ] } \ No newline at end of file diff --git a/XEngine_Release/XEngine_DBFile/zipcode.db b/XEngine_Release/XEngine_DBFile/zipcode.db new file mode 100644 index 0000000000000000000000000000000000000000..beb98757ed84cd01518059dbb040abab19a80948 Binary files /dev/null and b/XEngine_Release/XEngine_DBFile/zipcode.db differ diff --git a/XEngine_Source/Makefile b/XEngine_Source/Makefile index c4c2e3da9bf32f4dde4e9403d09549817f5f9fd5..3e152f012b814464e2f126c231cb805588e69257 100644 --- a/XEngine_Source/Makefile +++ b/XEngine_Source/Makefile @@ -16,13 +16,14 @@ PLUGIN_MODULE_ZODIAC = ./XEngine_PluginModule/ModulePlugin_Zodiac PLUGIN_MODULE_PASSWORD = ./XEngine_PluginModule/ModulePlugin_Password PLUGIN_MODULE_TIMEZONE = ./XEngine_PluginModule/ModulePlugin_Timezone PLUGIN_MODULE_BMINDEX = ./XEngine_PluginModule/ModulePlugin_BMIndex +PLUGIN_MODULE_METER = ./XEngine_PluginModule/ModulePlugin_Meter APP_CENTER_PATH = ./XEngine_ServiceApp/XEngine_CenterApp APP_HTTP_PATH = ./XEngine_ServiceApp/XEngine_HttpApp XENGINE_MODULES = libjsoncpp.so \ libXEngine_ModuleConfigure.so libXEngine_ModuleDatabase.so libXEngine_ModuleProtocol.so libXEngine_ModuleHelp.so libXEngine_ModulePlugin.so \ - libModulePlugin_Zodiac.so libModulePlugin_Password.so libModulePlugin_Timezone.so libModulePlugin_BMIndex.so\ + libModulePlugin_Zodiac.so libModulePlugin_Password.so libModulePlugin_Timezone.so libModulePlugin_BMIndex.so libModulePlugin_Meter.so \ XEngine_HttpApp.exe .PHONY:MakeAll @@ -50,6 +51,8 @@ libModulePlugin_Timezone.so: make -C $(PLUGIN_MODULE_TIMEZONE) $(FLAGS) libModulePlugin_BMIndex.so: make -C $(PLUGIN_MODULE_BMINDEX) $(FLAGS) +libModulePlugin_Meter.so: + make -C $(PLUGIN_MODULE_METER) $(FLAGS) XEngine_HttpApp.exe: make -C $(APP_HTTP_PATH) $(FLAGS) diff --git a/XEngine_Source/VSCopy-Debug.bat b/XEngine_Source/VSCopy-Debug.bat index 8172d7c1d202409bf79f47d71d971cac8c245eec..3e81107665b5b91397ab61eb7dd7694205641975 100644 --- a/XEngine_Source/VSCopy-Debug.bat +++ b/XEngine_Source/VSCopy-Debug.bat @@ -10,4 +10,5 @@ copy /y "D:\XEngine\XEngine_SourceCode\Debug\NetHelp_APIHelp.dll" "./" copy /y "D:\XEngine\XEngine_SourceCode\Debug\HelpComponents_DataBase.dll" "./" copy /y "D:\XEngine\XEngine_SourceCode\Debug\HelpComponents_Packets.dll" "./" copy /y "D:\XEngine\XEngine_SourceCode\Debug\HelpComponents_XLog.dll" "./" +copy /y "D:\XEngine\XEngine_SourceCode\Debug\HelpComponents_Authorize.dll" "./" copy /y "D:\XEngine\XEngine_SourceCode\Debug\RfcComponents_HttpServer.dll" "./" \ No newline at end of file diff --git a/XEngine_Source/VSCopy-x64.bat b/XEngine_Source/VSCopy-x64.bat index 957bcdb56d97d0fedae5de547e0992726955303a..929c2ad832bbff8e9bd6973e61628bed45bd6e42 100644 --- a/XEngine_Source/VSCopy-x64.bat +++ b/XEngine_Source/VSCopy-x64.bat @@ -8,6 +8,7 @@ copy /y "%XEngine_Lib64%\XEngine_SystemSdk\XEngine_SystemApi.dll" "./" copy /y "%XEngine_Lib64%\XEngine_NetHelp\NetHelp_APIHelp.dll" "./" copy /y "%XEngine_Lib64%\XEngine_HelpComponents\HelpComponents_DataBase.dll" "./" +copy /y "%XEngine_Lib64%\XEngine_HelpComponents\HelpComponents_Packets.dll" "./" copy /y "%XEngine_Lib64%\XEngine_HelpComponents\HelpComponents_XLog.dll" "./" copy /y "%XEngine_Lib64%\XEngine_HelpComponents\HelpComponents_Authorize.dll" "./" copy /y "%XEngine_Lib64%\XEngine_RfcComponents\RfcComponents_HttpServer.dll" "./" @@ -21,4 +22,4 @@ copy /y "%XEngine_Lib64%\XEngine_HelpComponents\zlib1.dll" "./" copy /y "%XEngine_Lib64%\XEngine_LibEx\libssl-3-x64.dll" "./" copy /y "%XEngine_Lib64%\XEngine_LibEx\libcrypto-3-x64.dll" "./" copy /y "%XEngine_Lib64%\XEngine_LibEx\libcurl.dll" "./" -copy /y "%XEngine_Lib32%\XEngine_LibEx\nghttp2.dll" "./" \ No newline at end of file +copy /y "%XEngine_Lib64%\XEngine_LibEx\nghttp2.dll" "./" \ No newline at end of file diff --git a/XEngine_Source/VSCopy-x86.bat b/XEngine_Source/VSCopy-x86.bat index b5b4d456e81cf53bbbf0df0a710a3ea9e8c7f9ac..1e67a744dfeaf5e06ec753be3eb6e21beced39a6 100644 --- a/XEngine_Source/VSCopy-x86.bat +++ b/XEngine_Source/VSCopy-x86.bat @@ -8,6 +8,7 @@ copy /y "%XEngine_Lib32%\XEngine_SystemSdk\XEngine_SystemApi.dll" "./" copy /y "%XEngine_Lib32%\XEngine_NetHelp\NetHelp_APIHelp.dll" "./" copy /y "%XEngine_Lib32%\XEngine_HelpComponents\HelpComponents_DataBase.dll" "./" +copy /y "%XEngine_Lib32%\XEngine_HelpComponents\HelpComponents_Packets.dll" "./" copy /y "%XEngine_Lib32%\XEngine_HelpComponents\HelpComponents_XLog.dll" "./" copy /y "%XEngine_Lib32%\XEngine_HelpComponents\HelpComponents_Authorize.dll" "./" copy /y "%XEngine_Lib32%\XEngine_RfcComponents\RfcComponents_HttpServer.dll" "./" diff --git a/XEngine_Source/XEngine.sln b/XEngine_Source/XEngine.sln index 6b98d278377a1d1031bdf52502f7d6932eae2177..d0bc8e97ea16c03b6698b98fecc36f6cf969fcc7 100644 --- a/XEngine_Source/XEngine.sln +++ b/XEngine_Source/XEngine.sln @@ -28,13 +28,15 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_ModulePlugin", "XEn EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "XEngine_PluginModule", "XEngine_PluginModule", "{D0473C03-9464-4C44-818A-AE212680CD05}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ModulePlugin_Zodiac", "XEngine_PluginModule\ModulePlugin_Zodiac\ModulePlugin_Zodiac.vcxproj", "{32BB166A-3D3D-45EF-8BED-2E0471274159}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libModulePlugin_Zodiac", "XEngine_PluginModule\ModulePlugin_Zodiac\ModulePlugin_Zodiac.vcxproj", "{32BB166A-3D3D-45EF-8BED-2E0471274159}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ModulePlugin_Password", "XEngine_PluginModule\ModulePlugin_Password\ModulePlugin_Password.vcxproj", "{201B6D13-82A7-49E9-9736-D6B3BFE05B30}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libModulePlugin_Password", "XEngine_PluginModule\ModulePlugin_Password\ModulePlugin_Password.vcxproj", "{201B6D13-82A7-49E9-9736-D6B3BFE05B30}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ModulePlugin_Timezone", "XEngine_PluginModule\ModulePlugin_Timezone\ModulePlugin_Timezone.vcxproj", "{37B8E91F-EC52-41F0-B21D-441D4270C05F}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libModulePlugin_Timezone", "XEngine_PluginModule\ModulePlugin_Timezone\ModulePlugin_Timezone.vcxproj", "{37B8E91F-EC52-41F0-B21D-441D4270C05F}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ModulePlugin_BMIndex", "XEngine_PluginModule\ModulePlugin_BMIndex\ModulePlugin_BMIndex.vcxproj", "{BBC4B2B4-1143-45DF-8890-47CE26A61D0E}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libModulePlugin_BMIndex", "XEngine_PluginModule\ModulePlugin_BMIndex\ModulePlugin_BMIndex.vcxproj", "{BBC4B2B4-1143-45DF-8890-47CE26A61D0E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libModulePlugin_Meter", "XEngine_PluginModule\ModulePlugin_Meter\ModulePlugin_Meter.vcxproj", "{6F111577-DAF8-4294-B516-0077C22D7613}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -132,6 +134,14 @@ Global {BBC4B2B4-1143-45DF-8890-47CE26A61D0E}.Release|x64.Build.0 = Release|x64 {BBC4B2B4-1143-45DF-8890-47CE26A61D0E}.Release|x86.ActiveCfg = Release|Win32 {BBC4B2B4-1143-45DF-8890-47CE26A61D0E}.Release|x86.Build.0 = Release|Win32 + {6F111577-DAF8-4294-B516-0077C22D7613}.Debug|x64.ActiveCfg = Debug|x64 + {6F111577-DAF8-4294-B516-0077C22D7613}.Debug|x64.Build.0 = Debug|x64 + {6F111577-DAF8-4294-B516-0077C22D7613}.Debug|x86.ActiveCfg = Debug|Win32 + {6F111577-DAF8-4294-B516-0077C22D7613}.Debug|x86.Build.0 = Debug|Win32 + {6F111577-DAF8-4294-B516-0077C22D7613}.Release|x64.ActiveCfg = Release|x64 + {6F111577-DAF8-4294-B516-0077C22D7613}.Release|x64.Build.0 = Release|x64 + {6F111577-DAF8-4294-B516-0077C22D7613}.Release|x86.ActiveCfg = Release|Win32 + {6F111577-DAF8-4294-B516-0077C22D7613}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -143,6 +153,7 @@ Global {201B6D13-82A7-49E9-9736-D6B3BFE05B30} = {D0473C03-9464-4C44-818A-AE212680CD05} {37B8E91F-EC52-41F0-B21D-441D4270C05F} = {D0473C03-9464-4C44-818A-AE212680CD05} {BBC4B2B4-1143-45DF-8890-47CE26A61D0E} = {D0473C03-9464-4C44-818A-AE212680CD05} + {6F111577-DAF8-4294-B516-0077C22D7613} = {D0473C03-9464-4C44-818A-AE212680CD05} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {9B202F91-A601-429E-BB0F-880DDEE096FE} diff --git a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Define.h b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Define.h index 0aac0a050a7d2be2e39eec70b13329d4f4475a11..dbcca665c0ad55b4911b8a4654d5e9a3e93f5dc7 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Define.h +++ b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfig_Define.h @@ -43,6 +43,7 @@ typedef struct TCHAR tszIDData[MAX_PATH]; //ID数据库地址 TCHAR tszPhoneData[MAX_PATH]; //电话号码数据库地址 TCHAR tszBankData[MAX_PATH]; //银行卡数据库地址 + TCHAR tszZIPCodeData[MAX_PATH]; //邮编数据库地址 TCHAR tszBankUrl[MAX_PATH]; //银行卡验证地址 TCHAR tszTranslationUrl[MAX_PATH]; //翻译接口 }st_XApi; diff --git a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp index fe6faab3ddf7315268595ef80f0f35f83200789d..7d9cee15faf232e76805e5d35b871ec192482634 100644 --- a/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp +++ b/XEngine_Source/XEngine_ModuleConfigure/ModuleConfigure_Json/ModuleConfigure_Json.cpp @@ -119,7 +119,7 @@ BOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCTSTR lpszConfigFile, XE pSt_ServerConfig->st_XLog.nMaxCount = st_JsonXLog["MaxCount"].asInt(); pSt_ServerConfig->st_XLog.nLogLeave = st_JsonXLog["LogLeave"].asInt(); - if (st_JsonRoot["XApi"].empty() || (6 != st_JsonRoot["XApi"].size())) + if (st_JsonRoot["XApi"].empty() || (7 != st_JsonRoot["XApi"].size())) { Config_IsErrorOccur = TRUE; Config_dwErrorCode = ERROR_MODULE_CONFIGURE_JSON_XDB; @@ -130,6 +130,7 @@ BOOL CModuleConfigure_Json::ModuleConfigure_Json_File(LPCTSTR lpszConfigFile, XE _tcscpy(pSt_ServerConfig->st_XApi.tszIDData, st_JsonXApi["tszIDData"].asCString()); _tcscpy(pSt_ServerConfig->st_XApi.tszPhoneData, st_JsonXApi["tszPhoneData"].asCString()); _tcscpy(pSt_ServerConfig->st_XApi.tszBankData, st_JsonXApi["tszBankData"].asCString()); + _tcscpy(pSt_ServerConfig->st_XApi.tszZIPCodeData, st_JsonXApi["tszZIPCodeData"].asCString()); _tcscpy(pSt_ServerConfig->st_XApi.tszBankUrl, st_JsonXApi["tszBankUrl"].asCString()); _tcscpy(pSt_ServerConfig->st_XApi.tszTranslationUrl, st_JsonXApi["tszTranslationUrl"].asCString()); diff --git a/XEngine_Source/XEngine_ModuleDatabase/Makefile b/XEngine_Source/XEngine_ModuleDatabase/Makefile index 91276a98d5f473ced7694cbec00b9455bb3b0b9f..d55e9dc956b6f35bd49485ffaf28aa1291196742 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/Makefile +++ b/XEngine_Source/XEngine_ModuleDatabase/Makefile @@ -8,7 +8,7 @@ LOADBIN = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L /usr/local/lib/XE LIB = -lXEngine_BaseLib -lHelpComponents_DataBase LIBEX = -ldl -lpthread LOADSO = -Wl,-rpath=./,--disable-new-dtags -LIBINCLUDE = ModuleDatabase_IDCard.o ModuleDatabase_IPInfo.o ModuleDatabase_Phone.o ModuleDatabase_Bank.o pch.o +LIBINCLUDE = ModuleDatabase_IDCard.o ModuleDatabase_IPInfo.o ModuleDatabase_Phone.o ModuleDatabase_Bank.o ModuleDatabase_ZIPCode.o pch.o ifeq ($(shell uname),Darwin) SHAREDLL = dylib @@ -45,6 +45,8 @@ ModuleDatabase_Phone.o:./ModuleDatabase_Phone/ModuleDatabase_Phone.cpp $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./ModuleDatabase_Phone/ModuleDatabase_Phone.cpp ModuleDatabase_Bank.o:./ModuleDatabase_Bank/ModuleDatabase_Bank.cpp $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./ModuleDatabase_Bank/ModuleDatabase_Bank.cpp +ModuleDatabase_ZIPCode.o:./ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.cpp pch.o:./pch.cpp $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./pch.cpp diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDB_Define.h b/XEngine_Source/XEngine_ModuleDatabase/ModuleDB_Define.h index 1bac18738fc6f95c0362bb6fd2cc19a616e52582..4c89e66b539b4231532b35570e47d0ff6d0d2a72 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDB_Define.h +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDB_Define.h @@ -207,4 +207,58 @@ extern "C" BOOL ModuleDatabase_Bank_Destory(); 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleDatabase_Bank_Query(XENGINE_BANKINFO * pSt_BankInfo); \ No newline at end of file +extern "C" BOOL ModuleDatabase_Bank_Query(XENGINE_BANKINFO * pSt_BankInfo); +/************************************************************************/ +/* 导出的邮编行政信息函数 */ +/************************************************************************/ +/******************************************************************** +函数名称:ModuleDatabase_ZIPCode_Init +函数功能:初始化数据库 + 参数.一:lpszSQLFile + In/Out:In + 类型:常量字符指针 + 可空:N + 意思:输入要操作的SQL文件 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +extern "C" BOOL ModuleDatabase_ZIPCode_Init(LPCTSTR lpszSQLFile); +/******************************************************************** +函数名称:ModuleDatabase_ZIPCode_Destory +函数功能:销毁 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +extern "C" BOOL ModuleDatabase_ZIPCode_Destory(); +/******************************************************************** +函数名称:ModuleDatabase_ZIPCode_QueryZIPCode +函数功能:通过邮编查询行政地址信息 + 参数.一:pSt_ZIPInfo + In/Out:In/Out + 类型:数据结构指针 + 可空:N + 意思:输入要查询的邮编,输出查询到的信息 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +extern "C" BOOL ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPINFO* pSt_ZIPInfo); +/******************************************************************** +函数名称:ModuleDatabase_ZIPCode_QueryName +函数功能:通过行政名称查询内容 + 参数.一:pSt_ZIPInfo + In/Out:In/Out + 类型:数据结构指针 + 可空:N + 意思:输入要查询的信息,输出查询到的信息 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +extern "C" BOOL ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO* pSt_ZIPInfo); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDB_Error.h b/XEngine_Source/XEngine_ModuleDatabase/ModuleDB_Error.h index 2cf7d30c4c02d63983b0f733504fafe92f688e46..6280a5f27de7bdf83cd40fbd6e0185510797055a 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDB_Error.h +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDB_Error.h @@ -13,21 +13,27 @@ ////////////////////////////////////////////////////////////////////////// // 导出的IP数据库错误 ////////////////////////////////////////////////////////////////////////// -#define ERROR_XENGINE_IPADDR_MODULE_DATABASE_IPINFO_PARAMENT 0xB0001 //初始化失败.参数错误 -#define ERROR_XENGINE_IPADDR_MODULE_DATABASE_IPINFO_NOTFOUND 0xB0002 //没有找到 +#define ERROR_APISERVICE_MODULE_DATABASE_IPINFO_PARAMENT 0xB0001 //初始化失败.参数错误 +#define ERROR_APISERVICE_MODULE_DATABASE_IPINFO_NOTFOUND 0xB0002 //没有找到 ////////////////////////////////////////////////////////////////////////// // 导出的身份证数据库错误 ////////////////////////////////////////////////////////////////////////// -#define ERROR_XENGINE_IPADDR_MODULE_DATABASE_IDCARD_PARAMENT 0xB1001 //初始化失败.参数错误 -#define ERROR_XENGINE_IPADDR_MODULE_DATABASE_IDCARD_NOTFOUND 0xB1002 //没有找到 +#define ERROR_APISERVICE_MODULE_DATABASE_IDCARD_PARAMENT 0xB1001 //初始化失败.参数错误 +#define ERROR_APISERVICE_MODULE_DATABASE_IDCARD_NOTFOUND 0xB1002 //没有找到 ////////////////////////////////////////////////////////////////////////// // 导出的电话数据库错误 ////////////////////////////////////////////////////////////////////////// -#define ERROR_XENGINE_IPADDR_MODULE_DATABASE_PHONE_PARAMENT 0xB2001 //初始化失败.参数错误 -#define ERROR_XENGINE_IPADDR_MODULE_DATABASE_PHONE_MALLOC 0xB2002 //申请内存失败 -#define ERROR_XENGINE_IPADDR_MODULE_DATABASE_PHONE_NOTFOUND 0xB1002 //没有找到 +#define ERROR_APISERVICE_MODULE_DATABASE_PHONE_PARAMENT 0xB2001 //初始化失败.参数错误 +#define ERROR_APISERVICE_MODULE_DATABASE_PHONE_MALLOC 0xB2002 //申请内存失败 +#define ERROR_APISERVICE_MODULE_DATABASE_PHONE_NOTFOUND 0xB1002 //没有找到 ////////////////////////////////////////////////////////////////////////// // 导出的银行卡数据库错误 ////////////////////////////////////////////////////////////////////////// -#define ERROR_XENGINE_IPADDR_MODULE_DATABASE_BANK_PARAMENT 0xB2001 //参数错误 -#define ERROR_XENGINE_IPADDR_MODULE_DATABASE_BANK_NOTFOUND 0xB2002 //没有找到 \ No newline at end of file +#define ERROR_APISERVICE_MODULE_DATABASE_BANK_PARAMENT 0xB2001 //参数错误 +#define ERROR_APISERVICE_MODULE_DATABASE_BANK_NOTFOUND 0xB2002 //没有找到 +////////////////////////////////////////////////////////////////////////// +// 行政邮编错误 +////////////////////////////////////////////////////////////////////////// +#define ERROR_APISERVICE_MODULE_DATABASE_ZIPCODE_NOTFOUND 0xB3001 //没有找到 +#define ERROR_APISERVICE_MODULE_DATABASE_ZIPCODE_PARAMENT 0xB3002 //参数错误 +#define ERROR_APISERVICE_MODULE_DATABASE_ZIPCODE_NOTSET 0xB3003 //没有设置查询参数 \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Bank/ModuleDatabase_Bank.cpp b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Bank/ModuleDatabase_Bank.cpp index 199d1296018a17f25197b4ed5fd1dcfcfdd6e9c6..46b4953a01b53c26def900c5a428d7c27ebd8d2d 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Bank/ModuleDatabase_Bank.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Bank/ModuleDatabase_Bank.cpp @@ -81,7 +81,7 @@ BOOL CModuleDatabase_Bank::ModuleDatabase_Bank_Query(XENGINE_BANKINFO* pSt_BankI if (NULL == pSt_BankInfo) { DBModule_IsErrorOccur = TRUE; - DBModule_dwErrorCode = ERROR_XENGINE_IPADDR_MODULE_DATABASE_BANK_PARAMENT; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_BANK_PARAMENT; return FALSE; } //查询 @@ -101,7 +101,7 @@ BOOL CModuleDatabase_Bank::ModuleDatabase_Bank_Query(XENGINE_BANKINFO* pSt_BankI if (nLine <= 0) { DBModule_IsErrorOccur = TRUE; - DBModule_dwErrorCode = ERROR_XENGINE_IPADDR_MODULE_DATABASE_BANK_NOTFOUND; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_BANK_NOTFOUND; return FALSE; } _tcscpy(pSt_BankInfo->tszBankName, pptszResult[nRow + 1]); diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IDCard/ModuleDatabase_IDCard.cpp b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IDCard/ModuleDatabase_IDCard.cpp index b5f7fb28aafe3925a2e1ed5aba62795c8bce4769..dcc268acb041456f2e4d95d5f961cdc9ce3ef1e7 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IDCard/ModuleDatabase_IDCard.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IDCard/ModuleDatabase_IDCard.cpp @@ -113,7 +113,7 @@ BOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryProvincer(XENGINE_IDREGI if ((NULL == pSt_IDRegion) || (NULL == pSt_IDInfo)) { DBModule_IsErrorOccur = TRUE; - DBModule_dwErrorCode = ERROR_XENGINE_IPADDR_MODULE_DATABASE_IDCARD_PARAMENT; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_IDCARD_PARAMENT; return FALSE; } //查询 @@ -133,7 +133,7 @@ BOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryProvincer(XENGINE_IDREGI if (nLine <= 0) { DBModule_IsErrorOccur = TRUE; - DBModule_dwErrorCode = ERROR_XENGINE_IPADDR_MODULE_DATABASE_IDCARD_NOTFOUND; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_IDCARD_NOTFOUND; return FALSE; } _tcscpy(pSt_IDRegion->tszProvincer, pptszResult[nRow + 1]); @@ -166,7 +166,7 @@ BOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryCity(XENGINE_IDREGION* p if ((NULL == pSt_IDRegion) || (NULL == pSt_IDInfo)) { DBModule_IsErrorOccur = TRUE; - DBModule_dwErrorCode = ERROR_XENGINE_IPADDR_MODULE_DATABASE_IDCARD_PARAMENT; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_IDCARD_PARAMENT; return FALSE; } //查询 @@ -186,7 +186,7 @@ BOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryCity(XENGINE_IDREGION* p if (nLine <= 0) { DBModule_IsErrorOccur = TRUE; - DBModule_dwErrorCode = ERROR_XENGINE_IPADDR_MODULE_DATABASE_IDCARD_NOTFOUND; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_IDCARD_NOTFOUND; return FALSE; } _tcscpy(pSt_IDRegion->tszCity, pptszResult[nRow + 1]); @@ -219,7 +219,7 @@ BOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryCounty(XENGINE_IDREGION* if ((NULL == pSt_IDRegion) || (NULL == pSt_IDInfo)) { DBModule_IsErrorOccur = TRUE; - DBModule_dwErrorCode = ERROR_XENGINE_IPADDR_MODULE_DATABASE_IDCARD_PARAMENT; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_IDCARD_PARAMENT; return FALSE; } //查询 @@ -239,7 +239,7 @@ BOOL CModuleDatabase_IDCard::ModuleDatabase_IDCard_QueryCounty(XENGINE_IDREGION* if (nLine <= 0) { DBModule_IsErrorOccur = TRUE; - DBModule_dwErrorCode = ERROR_XENGINE_IPADDR_MODULE_DATABASE_IDCARD_NOTFOUND; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_IDCARD_NOTFOUND; return FALSE; } _tcscpy(pSt_IDRegion->tszCounty, pptszResult[nRow + 1]); diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IPInfo/ModuleDatabase_IPInfo.cpp b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IPInfo/ModuleDatabase_IPInfo.cpp index 583d89d2e4a68d39752d72488cf90c0b0fa4236a..3deacd6e2c68542d1d3cc46318764d6511f63d42 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IPInfo/ModuleDatabase_IPInfo.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_IPInfo/ModuleDatabase_IPInfo.cpp @@ -86,7 +86,7 @@ BOOL CModuleDatabase_IPInfo::ModuleDatabase_IPInfo_IPV4Query(XENGINE_IPADDRINFO* if ((NULL == pSt_IPAddrInfo) && (NULL == lpszIPAddr)) { DBModule_IsErrorOccur = TRUE; - DBModule_dwErrorCode = ERROR_XENGINE_IPADDR_MODULE_DATABASE_IPINFO_PARAMENT; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_IPINFO_PARAMENT; return FALSE; } //查询 @@ -111,7 +111,7 @@ BOOL CModuleDatabase_IPInfo::ModuleDatabase_IPInfo_IPV4Query(XENGINE_IPADDRINFO* if (nLine <= 0) { DBModule_IsErrorOccur = TRUE; - DBModule_dwErrorCode = ERROR_XENGINE_IPADDR_MODULE_DATABASE_IPINFO_NOTFOUND; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_IPINFO_NOTFOUND; return FALSE; } _tcscpy(pSt_IPAddrInfo->tszIPStart, pptszResult[nRow + 1]); @@ -153,7 +153,7 @@ BOOL CModuleDatabase_IPInfo::ModuleDatabase_IPInfo_IPV6Query(XENGINE_IPADDRINFO* if ((NULL == pSt_IPAddrInfo) && (NULL == lpszIPAddr)) { DBModule_IsErrorOccur = TRUE; - DBModule_dwErrorCode = ERROR_XENGINE_IPADDR_MODULE_DATABASE_IPINFO_PARAMENT; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_IPINFO_PARAMENT; return FALSE; } //查询 @@ -181,7 +181,7 @@ BOOL CModuleDatabase_IPInfo::ModuleDatabase_IPInfo_IPV6Query(XENGINE_IPADDRINFO* if (nLine <= 0) { DBModule_IsErrorOccur = TRUE; - DBModule_dwErrorCode = ERROR_XENGINE_IPADDR_MODULE_DATABASE_IPINFO_NOTFOUND; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_IPINFO_NOTFOUND; return FALSE; } _tcscpy(pSt_IPAddrInfo->tszIPStart, pptszResult[nRow + 1]); diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Phone/ModuleDatabase_Phone.cpp b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Phone/ModuleDatabase_Phone.cpp index 2ebecde5c67566d955272738f2801be8a4588869..5f6cdb76cc0862a23638cea2e0869c13bb84e34e 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Phone/ModuleDatabase_Phone.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_Phone/ModuleDatabase_Phone.cpp @@ -41,7 +41,7 @@ BOOL CModuleDatabase_Phone::ModuleDatabase_Phone_Init(LPCTSTR lpszSQLFile) if (NULL == lpszSQLFile) { DBModule_IsErrorOccur = TRUE; - DBModule_dwErrorCode = ERROR_XENGINE_IPADDR_MODULE_DATABASE_PHONE_PARAMENT; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PHONE_PARAMENT; return FALSE; } //打开数据库 @@ -49,7 +49,7 @@ BOOL CModuleDatabase_Phone::ModuleDatabase_Phone_Init(LPCTSTR lpszSQLFile) if (NULL == pSt_File) { DBModule_IsErrorOccur = TRUE; - DBModule_dwErrorCode = ERROR_XENGINE_IPADDR_MODULE_DATABASE_PHONE_NOTFOUND; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PHONE_NOTFOUND; return FALSE; } //申请内存 @@ -57,7 +57,7 @@ BOOL CModuleDatabase_Phone::ModuleDatabase_Phone_Init(LPCTSTR lpszSQLFile) if (NULL == ptszMsgBuffer) { DBModule_IsErrorOccur = TRUE; - DBModule_dwErrorCode = ERROR_XENGINE_IPADDR_MODULE_DATABASE_PHONE_MALLOC; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PHONE_MALLOC; return FALSE; } memset(ptszMsgBuffer, '\0', XENGINE_APISERVICE_DATABASE_PHONE_BUFFER_SIZE); @@ -117,7 +117,7 @@ BOOL CModuleDatabase_Phone::ModuleDatabase_Phone_Query(LPCTSTR lpszPhoneNumber, if ((NULL == lpszPhoneNumber) || (NULL == pSt_PhoneInfo)) { DBModule_IsErrorOccur = TRUE; - DBModule_dwErrorCode = ERROR_XENGINE_IPADDR_MODULE_DATABASE_PHONE_PARAMENT; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PHONE_PARAMENT; return FALSE; } size_t nPLen = _tcslen(lpszPhoneNumber); @@ -219,7 +219,7 @@ BOOL CModuleDatabase_Phone::ModuleDatabase_Phone_Convert(LPCTSTR lpszPhoneInfo, if (NULL == ptszTokStr) { DBModule_IsErrorOccur = TRUE; - DBModule_dwErrorCode = ERROR_XENGINE_IPADDR_MODULE_DATABASE_PHONE_NOTFOUND; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PHONE_NOTFOUND; return FALSE; } _tcscpy(pSt_PhoneInfo->tszProvincer, ptszTokStr); @@ -228,7 +228,7 @@ BOOL CModuleDatabase_Phone::ModuleDatabase_Phone_Convert(LPCTSTR lpszPhoneInfo, if (NULL == ptszTokStr) { DBModule_IsErrorOccur = TRUE; - DBModule_dwErrorCode = ERROR_XENGINE_IPADDR_MODULE_DATABASE_PHONE_NOTFOUND; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PHONE_NOTFOUND; return FALSE; } _tcscpy(pSt_PhoneInfo->tszCity, ptszTokStr); @@ -237,7 +237,7 @@ BOOL CModuleDatabase_Phone::ModuleDatabase_Phone_Convert(LPCTSTR lpszPhoneInfo, if (NULL == ptszTokStr) { DBModule_IsErrorOccur = TRUE; - DBModule_dwErrorCode = ERROR_XENGINE_IPADDR_MODULE_DATABASE_PHONE_NOTFOUND; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PHONE_NOTFOUND; return FALSE; } pSt_PhoneInfo->nZipCode = _ttoi(ptszTokStr); @@ -246,7 +246,7 @@ BOOL CModuleDatabase_Phone::ModuleDatabase_Phone_Convert(LPCTSTR lpszPhoneInfo, if (NULL == ptszTokStr) { DBModule_IsErrorOccur = TRUE; - DBModule_dwErrorCode = ERROR_XENGINE_IPADDR_MODULE_DATABASE_PHONE_NOTFOUND; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_PHONE_NOTFOUND; return FALSE; } pSt_PhoneInfo->nAreaCode = _ttoi(ptszTokStr); diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.cpp b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.cpp new file mode 100644 index 0000000000000000000000000000000000000000..676c0cb5441bcd46a579adea88d0b3a29b387a2b --- /dev/null +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.cpp @@ -0,0 +1,328 @@ +#include "pch.h" +#include "ModuleDatabase_ZIPCode.h" +/******************************************************************** +// Created: 2022/10/27 16:16:03 +// File Name: D:\XEngine_APIService\XEngine_Source\XEngine_ModuleDatabase\ModuleDatabase_ZIPCode\ModuleDatabase_ZIPCode.cpp +// File Path: D:\XEngine_APIService\XEngine_Source\XEngine_ModuleDatabase\ModuleDatabase_ZIPCode +// File Base: ModuleDatabase_ZIPCode +// File Ext: cpp +// Project: XEngine(网络通信引擎) +// Author: qyt +// Purpose: 邮政编码地址信息数据库 +// History: +*********************************************************************/ +CModuleDatabase_ZIPCode::CModuleDatabase_ZIPCode() +{ +} +CModuleDatabase_ZIPCode::~CModuleDatabase_ZIPCode() +{ + +} +////////////////////////////////////////////////////////////////////////// +// 公有函数 +////////////////////////////////////////////////////////////////////////// +/******************************************************************** +函数名称:ModuleDatabase_ZIPCode_Init +函数功能:初始化数据库 + 参数.一:lpszSQLFile + In/Out:In + 类型:常量字符指针 + 可空:N + 意思:输入要操作的SQL文件 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +BOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_Init(LPCTSTR lpszSQLFile) +{ + DBModule_IsErrorOccur = FALSE; + //打开数据库 + if (!DataBase_SQLite_Open(&xhSQL, lpszSQLFile)) + { + DBModule_IsErrorOccur = TRUE; + DBModule_dwErrorCode = DataBase_GetLastError(); + return FALSE; + } + return TRUE; +} +/******************************************************************** +函数名称:ModuleDatabase_ZIPCode_Destory +函数功能:销毁 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +BOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_Destory() +{ + DBModule_IsErrorOccur = FALSE; + + DataBase_SQLite_Close(xhSQL); + return TRUE; +} +/******************************************************************** +函数名称:ModuleDatabase_ZIPCode_QueryZIPCode +函数功能:通过邮编查询行政地址信息 + 参数.一:pSt_ZIPInfo + In/Out:In/Out + 类型:数据结构指针 + 可空:N + 意思:输入要查询的邮编,输出查询到的信息 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +BOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPINFO* pSt_ZIPInfo) +{ + DBModule_IsErrorOccur = FALSE; + + //查询 + int nLine = 0; + int nRow = 0; + TCHAR** pptszResult; + TCHAR tszSQLStatement[1024]; + + memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); + _stprintf(tszSQLStatement, _T("SELECT * FROM `hy_area` WHERE zip_code = %d"), pSt_ZIPInfo->nZipCode); + if (!DataBase_SQLite_GetTable(xhSQL, tszSQLStatement, &pptszResult, &nLine, &nRow)) + { + DBModule_IsErrorOccur = TRUE; + DBModule_dwErrorCode = DataBase_GetLastError(); + return FALSE; + } + if (nLine <= 0) + { + DBModule_IsErrorOccur = TRUE; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_ZIPCODE_NOTFOUND; + return FALSE; + } + int nFliedValue = nRow; + //三个级别 省->市->区/县 + _tcscpy(pSt_ZIPInfo->tszPinYin, pptszResult[nFliedValue + 6]); + pSt_ZIPInfo->nLevel = _ttoi(pptszResult[nFliedValue + 5]); + pSt_ZIPInfo->nAreaCode = _ttoi(pptszResult[nFliedValue + 7]); + pSt_ZIPInfo->dlLng = _ttof(pptszResult[nFliedValue + 10]); + pSt_ZIPInfo->dlLat = _ttof(pptszResult[nFliedValue + 11]); + if (3 == pSt_ZIPInfo->nLevel) + { + //获取上级节点 + int nParentID = 0; + _tcscpy(pSt_ZIPInfo->tszCounty, pptszResult[nFliedValue + 2]); + ModuleDatabase_ZIPCode_QueryParentByID(_ttoi(pptszResult[nFliedValue + 1]), pSt_ZIPInfo->tszCity, &nParentID); + ModuleDatabase_ZIPCode_QueryParentByID(nParentID, pSt_ZIPInfo->tszProvincer, &nParentID); + } + else if (2 == pSt_ZIPInfo->nLevel) + { + _tcscpy(pSt_ZIPInfo->tszCity, pptszResult[nFliedValue + 2]); + ModuleDatabase_ZIPCode_QueryParentByID(_ttoi(pptszResult[nFliedValue + 1]), pSt_ZIPInfo->tszProvincer); + } + else + { + _tcscpy(pSt_ZIPInfo->tszProvincer, pptszResult[nFliedValue + 2]); + } + + DataBase_SQLite_FreeTable(pptszResult); + return TRUE; +} +/******************************************************************** +函数名称:ModuleDatabase_ZIPCode_QueryName +函数功能:通过行政名称查询内容 + 参数.一:pSt_ZIPInfo + In/Out:In/Out + 类型:数据结构指针 + 可空:N + 意思:输入要查询的信息,输出查询到的信息 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +BOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO* pSt_ZIPInfo) +{ + DBModule_IsErrorOccur = FALSE; + + if (NULL == pSt_ZIPInfo) + { + DBModule_IsErrorOccur = TRUE; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_ZIPCODE_PARAMENT; + return FALSE; + } + //查询 + int nLine = 0; + int nRow = 0; + TCHAR** pptszResult; + TCHAR tszSQLStatement[1024]; + + memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); + + if ((_tcslen(pSt_ZIPInfo->tszCounty) > 0) && (_tcslen(pSt_ZIPInfo->tszCity) == 0)) + { + int nParentID = 0; + ModuleDatabase_ZIPCode_QueryParentByName(pSt_ZIPInfo->tszCounty, &nParentID); + ModuleDatabase_ZIPCode_QueryParentByID(nParentID, pSt_ZIPInfo->tszCity, &nParentID); + ModuleDatabase_ZIPCode_QueryParentByID(nParentID, pSt_ZIPInfo->tszProvincer, &nParentID); + + _stprintf(tszSQLStatement, _T("SELECT * FROM `hy_area` WHERE name = '%s'"), pSt_ZIPInfo->tszCounty); + } + else if ((_tcslen(pSt_ZIPInfo->tszCounty) == 0) && (_tcslen(pSt_ZIPInfo->tszCity) > 0)) + { + int nParentID = 0; + ModuleDatabase_ZIPCode_QueryParentByName(pSt_ZIPInfo->tszCity, &nParentID); + ModuleDatabase_ZIPCode_QueryParentByID(nParentID, pSt_ZIPInfo->tszProvincer, &nParentID); + + _stprintf(tszSQLStatement, _T("SELECT * FROM `hy_area` WHERE name = '%s'"), pSt_ZIPInfo->tszCity); + } + else + { + DBModule_IsErrorOccur = TRUE; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_ZIPCODE_NOTSET; + return FALSE; + } + //查询内容 + if (!DataBase_SQLite_GetTable(xhSQL, tszSQLStatement, &pptszResult, &nLine, &nRow)) + { + DBModule_IsErrorOccur = TRUE; + DBModule_dwErrorCode = DataBase_GetLastError(); + return FALSE; + } + if (nLine <= 0) + { + DBModule_IsErrorOccur = TRUE; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_ZIPCODE_NOTFOUND; + return FALSE; + } + int nFliedValue = nRow; + pSt_ZIPInfo->nLevel = _ttoi(pptszResult[nFliedValue + 5]); + pSt_ZIPInfo->nAreaCode = _ttoi(pptszResult[nFliedValue + 7]); + pSt_ZIPInfo->nZipCode = _ttoi(pptszResult[nFliedValue + 8]); + pSt_ZIPInfo->dlLng = _ttof(pptszResult[nFliedValue + 10]); + pSt_ZIPInfo->dlLat = _ttof(pptszResult[nFliedValue + 11]); + _tcscpy(pSt_ZIPInfo->tszPinYin, pptszResult[nFliedValue + 6]); + + DataBase_SQLite_FreeTable(pptszResult); + return TRUE; +} +////////////////////////////////////////////////////////////////////////// +// 保护函数 +////////////////////////////////////////////////////////////////////////// +/******************************************************************** +函数名称:ModuleDatabase_ZIPCode_QueryParentByID +函数功能:通过ID查询父节点信息 + 参数.一:nParentID + In/Out:In + 类型:整数型 + 可空:N + 意思:输入要查询的父节点 + 参数.二:ptszParentStr + In/Out:Out + 类型:字符指针 + 可空:N + 意思:输出查询到的父节点名 + 参数.三:pInt_ParentID + In/Out:Out + 类型:整数型指针 + 可空:Y + 意思:导出上级节点ID +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +BOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryParentByID(int nParentID, TCHAR* ptszParentStr, int* pInt_ParentID /* = NULL */) +{ + DBModule_IsErrorOccur = FALSE; + + if (NULL == ptszParentStr) + { + DBModule_IsErrorOccur = TRUE; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_ZIPCODE_PARAMENT; + return FALSE; + } + //查询 + int nLine = 0; + int nRow = 0; + TCHAR** pptszResult; + TCHAR tszSQLStatement[1024]; + + memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); + _stprintf(tszSQLStatement, _T("SELECT * FROM `hy_area` WHERE id = %d"), nParentID); + if (!DataBase_SQLite_GetTable(xhSQL, tszSQLStatement, &pptszResult, &nLine, &nRow)) + { + DBModule_IsErrorOccur = TRUE; + DBModule_dwErrorCode = DataBase_GetLastError(); + return FALSE; + } + if (nLine <= 0) + { + DBModule_IsErrorOccur = TRUE; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_ZIPCODE_NOTFOUND; + return FALSE; + } + int nFliedValue = nRow; + if (NULL != pInt_ParentID) + { + *pInt_ParentID = _ttoi(pptszResult[nFliedValue + 1]); + } + _tcscpy(ptszParentStr, pptszResult[nFliedValue + 3]); + + DataBase_SQLite_FreeTable(pptszResult); + return TRUE; +} +/******************************************************************** +函数名称:ModuleDatabase_ZIPCode_QueryParentByName +函数功能:通过名称查询父节点信息 + 参数.一:lpszName + In/Out:In + 类型:常量字符指针 + 可空:N + 意思:输入要查询的名称 + 参数.二:pInt_ParentID + In/Out:Out + 类型:整数型指针 + 可空:Y + 意思:导出上级节点ID +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +BOOL CModuleDatabase_ZIPCode::ModuleDatabase_ZIPCode_QueryParentByName(LPCTSTR lpszName, int* pInt_ParentID /* = NULL */) +{ + DBModule_IsErrorOccur = FALSE; + + if (NULL == lpszName) + { + DBModule_IsErrorOccur = TRUE; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_ZIPCODE_PARAMENT; + return FALSE; + } + //查询 + int nLine = 0; + int nRow = 0; + TCHAR** pptszResult; + TCHAR tszSQLStatement[1024]; + + memset(tszSQLStatement, '\0', sizeof(tszSQLStatement)); + _stprintf(tszSQLStatement, _T("SELECT * FROM `hy_area` WHERE name = '%s'"), lpszName); + if (!DataBase_SQLite_GetTable(xhSQL, tszSQLStatement, &pptszResult, &nLine, &nRow)) + { + DBModule_IsErrorOccur = TRUE; + DBModule_dwErrorCode = DataBase_GetLastError(); + return FALSE; + } + if (nLine <= 0) + { + DBModule_IsErrorOccur = TRUE; + DBModule_dwErrorCode = ERROR_APISERVICE_MODULE_DATABASE_ZIPCODE_NOTFOUND; + return FALSE; + } + int nFliedValue = nRow; + if (NULL != pInt_ParentID) + { + *pInt_ParentID = _ttoi(pptszResult[nFliedValue + 1]); + } + DataBase_SQLite_FreeTable(pptszResult); + return TRUE; +} \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.h b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.h new file mode 100644 index 0000000000000000000000000000000000000000..09350057e9ba5e527da02024751182bb44d05ef1 --- /dev/null +++ b/XEngine_Source/XEngine_ModuleDatabase/ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.h @@ -0,0 +1,30 @@ +#pragma once +/******************************************************************** +// Created: 2022/10/27 16:15:22 +// File Name: D:\XEngine_APIService\XEngine_Source\XEngine_ModuleDatabase\ModuleDatabase_ZIPCode\ModuleDatabase_ZIPCode.h +// File Path: D:\XEngine_APIService\XEngine_Source\XEngine_ModuleDatabase\ModuleDatabase_ZIPCode +// File Base: ModuleDatabase_ZIPCode +// File Ext: h +// Project: XEngine(网络通信引擎) +// Author: qyt +// Purpose: 邮政编码地址信息数据库 +// History: +*********************************************************************/ + + +class CModuleDatabase_ZIPCode +{ +public: + CModuleDatabase_ZIPCode(); + ~CModuleDatabase_ZIPCode(); +public: + BOOL ModuleDatabase_ZIPCode_Init(LPCTSTR lpszSQLFile); + BOOL ModuleDatabase_ZIPCode_Destory(); + BOOL ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPINFO* pSt_ZIPInfo); + BOOL ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO* pSt_ZIPInfo); +protected: + BOOL ModuleDatabase_ZIPCode_QueryParentByID(int nParentID, TCHAR* ptszParentStr, int* pInt_ParentID = NULL); + BOOL ModuleDatabase_ZIPCode_QueryParentByName(LPCTSTR lpszName, int* pInt_ParentID = NULL); +private: + XHDATA xhSQL; +}; \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleDatabase/XEngine_ModuleDatabase.def b/XEngine_Source/XEngine_ModuleDatabase/XEngine_ModuleDatabase.def index 32665b90910ed4abbf5bd6c8908903f9fb708fe4..090f98bdc6032786d09a303bbbea4e7256204dfe 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/XEngine_ModuleDatabase.def +++ b/XEngine_Source/XEngine_ModuleDatabase/XEngine_ModuleDatabase.def @@ -18,4 +18,9 @@ EXPORTS ModuleDatabase_Bank_Init ModuleDatabase_Bank_Destory - ModuleDatabase_Bank_Query \ No newline at end of file + ModuleDatabase_Bank_Query + + ModuleDatabase_ZIPCode_Init + ModuleDatabase_ZIPCode_Destory + ModuleDatabase_ZIPCode_QueryZIPCode + ModuleDatabase_ZIPCode_QueryName \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleDatabase/XEngine_ModuleDatabase.vcxproj b/XEngine_Source/XEngine_ModuleDatabase/XEngine_ModuleDatabase.vcxproj index 87b52cb360c70aea970bc29c1c2b9c7ddbe61d2c..d2be24aa5f2e8689b199ea7d2ed060e159094424 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/XEngine_ModuleDatabase.vcxproj +++ b/XEngine_Source/XEngine_ModuleDatabase/XEngine_ModuleDatabase.vcxproj @@ -168,6 +168,7 @@ + @@ -178,6 +179,7 @@ + Create Create diff --git a/XEngine_Source/XEngine_ModuleDatabase/XEngine_ModuleDatabase.vcxproj.filters b/XEngine_Source/XEngine_ModuleDatabase/XEngine_ModuleDatabase.vcxproj.filters index fe0fa1218ef19f9cbd473274f6acf7862636fa9f..213672e0ecb5fd8cc018be477c2fe0c340b4d923 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/XEngine_ModuleDatabase.vcxproj.filters +++ b/XEngine_Source/XEngine_ModuleDatabase/XEngine_ModuleDatabase.vcxproj.filters @@ -37,6 +37,12 @@ {d795f584-6d94-4d87-85a9-b6787ccd8783} + + {bc7c2fd0-b3ee-4525-aa21-9b255773a05f} + + + {5095bb8f-8ecf-4876-ad6b-f9fe6bcbcc3c} + @@ -63,6 +69,9 @@ 头文件\ModuleDatabase_Bank + + 头文件\ModuleDatabase_ZIPCode + @@ -83,6 +92,9 @@ 源文件\ModuleDatabase_Bank + + 源文件\ModuleDatabase_ZIPCode + diff --git a/XEngine_Source/XEngine_ModuleDatabase/pch.cpp b/XEngine_Source/XEngine_ModuleDatabase/pch.cpp index 8982b5b3a1ba6ac98c4e1bdf1584ceafa92fee4f..5945e1806f7dc86261dccdb545805cabb3e0716f 100644 --- a/XEngine_Source/XEngine_ModuleDatabase/pch.cpp +++ b/XEngine_Source/XEngine_ModuleDatabase/pch.cpp @@ -3,6 +3,7 @@ #include "ModuleDatabase_IPInfo/ModuleDatabase_IPInfo.h" #include "ModuleDatabase_Phone/ModuleDatabase_Phone.h" #include "ModuleDatabase_Bank/ModuleDatabase_Bank.h" +#include "ModuleDatabase_ZIPCode/ModuleDatabase_ZIPCode.h" /******************************************************************** // Created: 2022/02/28 13:26:15 // File Name: D:\XEngine_IPInfo\XEngine_Source\XEngine_ModuleDatabase\pch.cpp @@ -21,6 +22,7 @@ CModuleDatabase_IPInfo m_IPAddr; CModuleDatabase_IDCard m_IDCard; CModuleDatabase_Phone m_Phone; CModuleDatabase_Bank m_Bank; +CModuleDatabase_ZIPCode m_ZIPCode; ////////////////////////////////////////////////////////////////////////// /// 导出的函数 ////////////////////////////////////////////////////////////////////////// @@ -95,4 +97,23 @@ extern "C" BOOL ModuleDatabase_Bank_Destory() extern "C" BOOL ModuleDatabase_Bank_Query(XENGINE_BANKINFO * pSt_BankInfo) { return m_Bank.ModuleDatabase_Bank_Query(pSt_BankInfo); +} +/************************************************************************/ +/* 导出的邮编行政信息函数 */ +/************************************************************************/ +extern "C" BOOL ModuleDatabase_ZIPCode_Init(LPCTSTR lpszSQLFile) +{ + return m_ZIPCode.ModuleDatabase_ZIPCode_Init(lpszSQLFile); +} +extern "C" BOOL ModuleDatabase_ZIPCode_Destory() +{ + return m_ZIPCode.ModuleDatabase_ZIPCode_Destory(); +} +extern "C" BOOL ModuleDatabase_ZIPCode_QueryZIPCode(XENGINE_ZIPINFO * pSt_ZIPInfo) +{ + return m_ZIPCode.ModuleDatabase_ZIPCode_QueryZIPCode(pSt_ZIPInfo); +} +extern "C" BOOL ModuleDatabase_ZIPCode_QueryName(XENGINE_ZIPINFO * pSt_ZIPInfo) +{ + return m_ZIPCode.ModuleDatabase_ZIPCode_QueryName(pSt_ZIPInfo); } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Define.h b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Define.h index 756869a0caab1ccb124ed49b2babc6c63973fa26..20d54e30a77e5904ae9298e8b254f79d95a47e76 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Define.h +++ b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Define.h @@ -81,35 +81,6 @@ extern "C" BOOL ModuleProtocol_Packet_Common(TCHAR * ptszMsgBuffer, int* pInt_Ms *********************************************************************/ extern "C" BOOL ModuleProtocol_Packet_IPQuery(TCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_IPADDRINFO * pSt_IPAddrInfo, int nCode = 0, LPCTSTR lpszMsgBuffer = NULL); /******************************************************************** -函数名称:ModuleProtocol_Packet_IPQuery2 -函数功能:IP查询打包函数另一种方式 - 参数.一:ptszMsgBuffer - In/Out:Out - 类型:字符指针 - 可空:N - 意思:输出打包的数据信息 - 参数.二:pInt_MsgLen - In/Out:Out - 类型:整数型指针 - 可空:N - 意思:输出打包大小 - 参数.三:pSt_IPAddrInfo - In/Out:In - 类型:数据结构指针 - 可空:N - 意思:输入要操作的IP地址信息 - 参数.四:nCode - In/Out:In - 类型:整数型 - 可空:Y - 意思:输入返回的值 -返回值 - 类型:逻辑型 - 意思:是否成功 -备注: -*********************************************************************/ -extern "C" BOOL ModuleProtocol_Packet_IPQuery2(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_IPADDRINFO* pSt_IPAddrInfo, int nCode = 0); -/******************************************************************** 函数名称:ModuleProtocol_Packet_IDQuery 函数功能:ID查询打包为JSON的封包函数 参数.一:ptszMsgBuffer @@ -149,40 +120,6 @@ extern "C" BOOL ModuleProtocol_Packet_IPQuery2(TCHAR* ptszMsgBuffer, int* pInt_M *********************************************************************/ extern "C" BOOL ModuleProtocol_Packet_IDQuery(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_IDCARDINFO* pSt_IDInfo, XENGINE_IDREGION* pSt_IDRegion, int nCode = 0, LPCTSTR lpszMsgBuffer = NULL); /******************************************************************** -函数名称:ModuleProtocol_Packet_IDQuery2 -函数功能:ID查询打包为字符串流函数 - 参数.一:ptszMsgBuffer - In/Out:Out - 类型:字符指针 - 可空:N - 意思:输出打包的数据信息 - 参数.二:pInt_MsgLen - In/Out:Out - 类型:整数型指针 - 可空:N - 意思:输出打包大小 - 参数.三:pSt_IDInfo - In/Out:In - 类型:数据结构指针 - 可空:N - 意思:输入要打包的ID信息 - 参数.四:pSt_IDRegion - In/Out:In - 类型:数据结构指针 - 可空:N - 意思:输入ID地址信息 - 参数.五:nCode - In/Out:In - 类型:整数型 - 可空:Y - 意思:输入返回的值 -返回值 - 类型:逻辑型 - 意思:是否成功 -备注: -*********************************************************************/ -extern "C" BOOL ModuleProtocol_Packet_IDQuery2(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_IDCARDINFO* pSt_IDInfo, XENGINE_IDREGION* pSt_IDRegion, int nCode = 0); -/******************************************************************** 函数名称:ModuleProtocol_Packet_PhoneQuery 函数功能:电话信息查询打包为JSON的封包函数 参数.一:ptszMsgBuffer @@ -217,35 +154,6 @@ extern "C" BOOL ModuleProtocol_Packet_IDQuery2(TCHAR* ptszMsgBuffer, int* pInt_M *********************************************************************/ extern "C" BOOL ModuleProtocol_Packet_PhoneQuery(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_PHONEINFO* pSt_PhoneInfo, int nCode = 0, LPCTSTR lpszMsgBuffer = NULL); /******************************************************************** -函数名称:ModuleProtocol_Packet_PhoneQuery2 -函数功能:电话查询打包为字符串流函数 - 参数.一:ptszMsgBuffer - In/Out:Out - 类型:字符指针 - 可空:N - 意思:输出打包的数据信息 - 参数.二:pInt_MsgLen - In/Out:Out - 类型:整数型指针 - 可空:N - 意思:输出打包大小 - 参数.三:pSt_PhoneInfo - In/Out:In - 类型:数据结构指针 - 可空:N - 意思:输入要打包的信息 - 参数.四:nCode - In/Out:In - 类型:整数型 - 可空:Y - 意思:输入返回的值 -返回值 - 类型:逻辑型 - 意思:是否成功 -备注: -*********************************************************************/ -extern "C" BOOL ModuleProtocol_Packet_PhoneQuery2(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_PHONEINFO* pSt_PhoneInfo, int nCode = 0); -/******************************************************************** 函数名称:ModuleProtocol_Packet_BankQuery 函数功能:银行卡信息查询打包为JSON 参数.一:ptszMsgBuffer @@ -280,35 +188,6 @@ extern "C" BOOL ModuleProtocol_Packet_PhoneQuery2(TCHAR* ptszMsgBuffer, int* pIn *********************************************************************/ extern "C" BOOL ModuleProtocol_Packet_BankQuery(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_BANKINFO* pSt_BankInfo, int nCode = 0, LPCTSTR lpszMsgBuffer = NULL); /******************************************************************** -函数名称:ModuleProtocol_Packet_BankQuery2 -函数功能:银行卡信息查询打包为字节流 - 参数.一:ptszMsgBuffer - In/Out:Out - 类型:字符指针 - 可空:N - 意思:输出打包的数据信息 - 参数.二:pInt_MsgLen - In/Out:Out - 类型:整数型指针 - 可空:N - 意思:输出打包大小 - 参数.三:pSt_PhoneInfo - In/Out:In - 类型:数据结构指针 - 可空:N - 意思:输入要打包的信息 - 参数.四:nCode - In/Out:In - 类型:整数型 - 可空:Y - 意思:输入返回的值 -返回值 - 类型:逻辑型 - 意思:是否成功 -备注: -*********************************************************************/ -extern "C" BOOL ModuleProtocol_Packet_BankQuery2(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_BANKINFO* pSt_BankInfo, int nCode = 0); -/******************************************************************** 函数名称:ModuleProtocol_Packet_LanguageQuery 函数功能:语言打包为JSON 参数.一:ptszMsgBuffer @@ -343,8 +222,8 @@ extern "C" BOOL ModuleProtocol_Packet_BankQuery2(TCHAR* ptszMsgBuffer, int* pInt *********************************************************************/ extern "C" BOOL ModuleProtocol_Packet_LanguageQuery(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo, int nCode = 0, LPCTSTR lpszMsgBuffer = NULL); /******************************************************************** -函数名称:ModuleProtocol_Packet_LanguageQuery2 -函数功能:语言打包为字节流 +函数名称:ModuleProtocol_Packet_Locker +函数功能:分布式锁协议打包函数 参数.一:ptszMsgBuffer In/Out:Out 类型:字符指针 @@ -355,25 +234,30 @@ extern "C" BOOL ModuleProtocol_Packet_LanguageQuery(TCHAR* ptszMsgBuffer, int* p 类型:整数型指针 可空:N 意思:输出打包大小 - 参数.三:pSt_PhoneInfo + 参数.三:xhToken In/Out:In - 类型:数据结构指针 + 类型:句柄 可空:N - 意思:输入要打包的信息 + 意思:输入要打包的数据 参数.四:nCode In/Out:In 类型:整数型 可空:Y 意思:输入返回的值 + 参数.五:lpszMsgBuffer + In/Out:In + 类型:常量字符指针 + 可空:Y + 意思:输入操作结果 返回值 类型:逻辑型 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleProtocol_Packet_LanguageQuery2(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo, int nCode = 0); +extern "C" BOOL ModuleProtocol_Packet_Locker(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nCode = 0, LPCTSTR lpszMsgBuffer = NULL); /******************************************************************** -函数名称:ModuleProtocol_Packet_Locker -函数功能:分布式锁协议打包函数 +函数名称:ModuleProtocol_Packet_ZIPCode +函数功能:打包行政邮编信息协议 参数.一:ptszMsgBuffer In/Out:Out 类型:字符指针 @@ -384,9 +268,9 @@ extern "C" BOOL ModuleProtocol_Packet_LanguageQuery2(TCHAR* ptszMsgBuffer, int* 类型:整数型指针 可空:N 意思:输出打包大小 - 参数.三:xhToken + 参数.三:pSt_ZIPInfo In/Out:In - 类型:句柄 + 类型:数据结构指针 可空:N 意思:输入要打包的数据 参数.四:nCode @@ -404,7 +288,7 @@ extern "C" BOOL ModuleProtocol_Packet_LanguageQuery2(TCHAR* ptszMsgBuffer, int* 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleProtocol_Packet_Locker(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nCode = 0, LPCTSTR lpszMsgBuffer = NULL); +extern "C" BOOL ModuleProtocol_Packet_ZIPCode(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo, int nCode = 0, LPCTSTR lpszMsgBuffer = NULL); /******************************************************************** 函数名称:ModuleProtocol_Packet_P2PLan 函数功能:响应同步局域网地址列表 @@ -633,4 +517,28 @@ extern "C" BOOL ModuleProtocol_Parse_P2PClient(LPCTSTR lpszMsgBuffer, int nMsgLe 意思:是否成功 备注: *********************************************************************/ -extern "C" BOOL ModuleProtocol_Parse_CDKey(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_AUTHORIZE_LOCAL* pSt_Authorize); \ No newline at end of file +extern "C" BOOL ModuleProtocol_Parse_CDKey(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_AUTHORIZE_LOCAL* pSt_Authorize); +/******************************************************************** +函数名称:ModuleProtocol_Parse_ZIPCode +函数功能:解析邮政地址信息 + 参数.一:lpszMsgBuffer + In/Out:In + 类型:常量字符指针 + 可空:N + 意思:输入要解析的缓冲区 + 参数.二:nMsgLen + In/Out:In + 类型:整数型 + 可空:N + 意思:输入缓冲区大小 + 参数.三:pSt_ZIPInfo + In/Out:Out + 类型:数据结构指针 + 可空:N + 意思:输出解析后的信息 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +extern "C" BOOL ModuleProtocol_Parse_ZIPCode(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.cpp b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.cpp index a8c04cebe1e33d87079e6fed0ce0c84e7a466431..3985177abd4037c2a9ad4deb62b9f267ac313879 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.cpp +++ b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.cpp @@ -148,57 +148,6 @@ BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_IPQuery(TCHAR* ptszMsgBuffer, return TRUE; } /******************************************************************** -函数名称:ModuleProtocol_Packet_IPQuery2 -函数功能:IP查询打包函数另一种方式 - 参数.一:ptszMsgBuffer - In/Out:Out - 类型:字符指针 - 可空:N - 意思:输出打包的数据信息 - 参数.二:pInt_MsgLen - In/Out:Out - 类型:整数型指针 - 可空:N - 意思:输出打包大小 - 参数.三:pSt_IPAddrInfo - In/Out:In - 类型:数据结构指针 - 可空:N - 意思:输入要操作的IP地址信息 - 参数.四:nCode - In/Out:In - 类型:整数型 - 可空:Y - 意思:输入返回的值 -返回值 - 类型:逻辑型 - 意思:是否成功 -备注: -*********************************************************************/ -BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_IPQuery2(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_IPADDRINFO* pSt_IPAddrInfo, int nCode /* = 0 */) -{ - ModuleProtocol_IsErrorOccur = FALSE; - - if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen) || (NULL == pSt_IPAddrInfo)) - { - ModuleProtocol_IsErrorOccur = TRUE; - ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return FALSE; - } - *pInt_MsgLen = _stprintf(ptszMsgBuffer, "%d\r\n" - "%s\r\n" - "%s\r\n" - "%s\r\n" - "%s\r\n" - "%s\r\n" - "%s\r\n" - "%s\r\n" - "%s\r\n" - "%s\r\n" - "%s", nCode, pSt_IPAddrInfo->tszIPAddr, pSt_IPAddrInfo->tszIPStart, pSt_IPAddrInfo->tszIPEnd, pSt_IPAddrInfo->tszIPCountry, pSt_IPAddrInfo->tszIPProvince, pSt_IPAddrInfo->tszIPCity, pSt_IPAddrInfo->tszIPCounty, pSt_IPAddrInfo->tszIPAddress, pSt_IPAddrInfo->tszIPISP, pSt_IPAddrInfo->tszIPTime); - return TRUE; -} -/******************************************************************** 函数名称:ModuleProtocol_Packet_IDQuery 函数功能:ID查询打包为JSON的封包函数 参数.一:ptszMsgBuffer @@ -282,61 +231,6 @@ BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_IDQuery(TCHAR* ptszMsgBuffer, return TRUE; } /******************************************************************** -函数名称:ModuleProtocol_Packet_IDQuery2 -函数功能:ID查询打包为字符串流函数 - 参数.一:ptszMsgBuffer - In/Out:Out - 类型:字符指针 - 可空:N - 意思:输出打包的数据信息 - 参数.二:pInt_MsgLen - In/Out:Out - 类型:整数型指针 - 可空:N - 意思:输出打包大小 - 参数.三:pSt_IDInfo - In/Out:In - 类型:数据结构指针 - 可空:N - 意思:输入要打包的ID信息 - 参数.四:pSt_IDRegion - In/Out:In - 类型:数据结构指针 - 可空:N - 意思:输入ID地址信息 - 参数.五:nCode - In/Out:In - 类型:整数型 - 可空:Y - 意思:输入返回的值 -返回值 - 类型:逻辑型 - 意思:是否成功 -备注: -*********************************************************************/ -BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_IDQuery2(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_IDCARDINFO* pSt_IDInfo, XENGINE_IDREGION* pSt_IDRegion, int nCode /* = 0 */) -{ - ModuleProtocol_IsErrorOccur = FALSE; - - if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) - { - ModuleProtocol_IsErrorOccur = TRUE; - ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return FALSE; - } - *pInt_MsgLen = _stprintf(ptszMsgBuffer, "%d\r\n" - "%s\r\n" - "%d\r\n" - "%d\r\n" - "%d\r\n" - "%d\r\n" - "%d\r\n" - "%s\r\n" - "%s\r\n" - "%s", nCode, pSt_IDInfo->tszIDNumber, pSt_IDInfo->nBirthYear, pSt_IDInfo->nBirthMonth, pSt_IDInfo->nBirthDay, pSt_IDInfo->nPoliceID, pSt_IDInfo->nSex / 2 == 0 ? 0 : 1, pSt_IDRegion->tszProvincer, pSt_IDRegion->tszCity, pSt_IDRegion->tszCounty); - return TRUE; -} -/******************************************************************** 函数名称:ModuleProtocol_Packet_PhoneQuery 函数功能:电话信息查询打包为JSON的封包函数 参数.一:ptszMsgBuffer @@ -409,52 +303,6 @@ BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_PhoneQuery(TCHAR* ptszMsgBuff return TRUE; } /******************************************************************** -函数名称:ModuleProtocol_Packet_PhoneQuery2 -函数功能:电话查询打包为字符串流函数 - 参数.一:ptszMsgBuffer - In/Out:Out - 类型:字符指针 - 可空:N - 意思:输出打包的数据信息 - 参数.二:pInt_MsgLen - In/Out:Out - 类型:整数型指针 - 可空:N - 意思:输出打包大小 - 参数.三:pSt_PhoneInfo - In/Out:In - 类型:数据结构指针 - 可空:N - 意思:输入要打包的信息 - 参数.四:nCode - In/Out:In - 类型:整数型 - 可空:Y - 意思:输入返回的值 -返回值 - 类型:逻辑型 - 意思:是否成功 -备注: -*********************************************************************/ -BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_PhoneQuery2(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_PHONEINFO* pSt_PhoneInfo, int nCode /* = 0 */) -{ - ModuleProtocol_IsErrorOccur = FALSE; - - if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) - { - ModuleProtocol_IsErrorOccur = TRUE; - ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return FALSE; - } - *pInt_MsgLen = _stprintf(ptszMsgBuffer, "%d\r\n" - "%lld\r\n" - "%s\r\n" - "%s\r\n" - "%d\r\n" - "%d", nCode, pSt_PhoneInfo->nPhoneNumber, pSt_PhoneInfo->tszProvincer, pSt_PhoneInfo->tszCity, pSt_PhoneInfo->nZipCode, pSt_PhoneInfo->nAreaCode); - return TRUE; -} -/******************************************************************** 函数名称:ModuleProtocol_Packet_BankQuery 函数功能:银行卡信息查询打包为JSON 参数.一:ptszMsgBuffer @@ -526,51 +374,6 @@ BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_BankQuery(TCHAR* ptszMsgBuffe return TRUE; } /******************************************************************** -函数名称:ModuleProtocol_Packet_BankQuery2 -函数功能:银行卡信息查询打包为字节流 - 参数.一:ptszMsgBuffer - In/Out:Out - 类型:字符指针 - 可空:N - 意思:输出打包的数据信息 - 参数.二:pInt_MsgLen - In/Out:Out - 类型:整数型指针 - 可空:N - 意思:输出打包大小 - 参数.三:pSt_PhoneInfo - In/Out:In - 类型:数据结构指针 - 可空:N - 意思:输入要打包的信息 - 参数.四:nCode - In/Out:In - 类型:整数型 - 可空:Y - 意思:输入返回的值 -返回值 - 类型:逻辑型 - 意思:是否成功 -备注: -*********************************************************************/ -BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_BankQuery2(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_BANKINFO* pSt_BankInfo, int nCode /* = 0 */) -{ - ModuleProtocol_IsErrorOccur = FALSE; - - if ((NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) - { - ModuleProtocol_IsErrorOccur = TRUE; - ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; - return FALSE; - } - *pInt_MsgLen = _stprintf(ptszMsgBuffer, "%d\r\n" - "%s\r\n" - "%s\r\n" - "%s\r\n" - "%d", nCode, pSt_BankInfo->tszBankNumber, pSt_BankInfo->tszBankName, pSt_BankInfo->tszBankAbridge, pSt_BankInfo->enBankType); - return TRUE; -} -/******************************************************************** 函数名称:ModuleProtocol_Packet_LanguageQuery 函数功能:语言打包为JSON 参数.一:ptszMsgBuffer @@ -641,8 +444,8 @@ BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_LanguageQuery(TCHAR* ptszMsgB return TRUE; } /******************************************************************** -函数名称:ModuleProtocol_Packet_LanguageQuery2 -函数功能:语言打包为字节流 +函数名称:ModuleProtocol_Packet_Locker +函数功能:分布式锁协议打包函数 参数.一:ptszMsgBuffer In/Out:Out 类型:字符指针 @@ -653,22 +456,27 @@ BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_LanguageQuery(TCHAR* ptszMsgB 类型:整数型指针 可空:N 意思:输出打包大小 - 参数.三:pSt_PhoneInfo + 参数.三:xhToken In/Out:In - 类型:数据结构指针 + 类型:句柄 可空:N - 意思:输入要打包的信息 + 意思:输入要打包的数据 参数.四:nCode In/Out:In 类型:整数型 可空:Y 意思:输入返回的值 + 参数.五:lpszMsgBuffer + In/Out:In + 类型:常量字符指针 + 可空:Y + 意思:输入操作结果 返回值 类型:逻辑型 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_LanguageQuery2(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo, int nCode /* = 0 */) +BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Locker(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nCode, LPCTSTR lpszMsgBuffer) { ModuleProtocol_IsErrorOccur = FALSE; @@ -678,15 +486,31 @@ BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_LanguageQuery2(TCHAR* ptszMsg ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PACKET_PARAMENT; return FALSE; } - *pInt_MsgLen = _stprintf(ptszMsgBuffer, "%d\r\n" - "%s\r\n" - "%s\r\n" - "%d", nCode, pSt_LanguageInfo->tszSourceStr, pSt_LanguageInfo->tszDestStr, pSt_LanguageInfo->enType); + Json::Value st_JsonRoot; + Json::Value st_JsonObject; + Json::StreamWriterBuilder st_JsonBuilder; + + st_JsonObject["xhToken"] = (Json::Value::UInt64)xhToken; + + st_JsonRoot["code"] = nCode; + if (NULL == lpszMsgBuffer) + { + st_JsonRoot["msg"] = "success"; + } + else + { + st_JsonRoot["msg"] = lpszMsgBuffer; + } + st_JsonRoot["data"] = st_JsonObject; + st_JsonBuilder["emitUTF8"] = true; + + *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); + memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); return TRUE; } /******************************************************************** -函数名称:ModuleProtocol_Packet_Locker -函数功能:分布式锁协议打包函数 +函数名称:ModuleProtocol_Packet_ZIPCode +函数功能:打包行政邮编信息协议 参数.一:ptszMsgBuffer In/Out:Out 类型:字符指针 @@ -697,9 +521,9 @@ BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_LanguageQuery2(TCHAR* ptszMsg 类型:整数型指针 可空:N 意思:输出打包大小 - 参数.三:xhToken + 参数.三:pSt_ZIPInfo In/Out:In - 类型:句柄 + 类型:数据结构指针 可空:N 意思:输入要打包的数据 参数.四:nCode @@ -717,7 +541,7 @@ BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_LanguageQuery2(TCHAR* ptszMsg 意思:是否成功 备注: *********************************************************************/ -BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Locker(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nCode, LPCTSTR lpszMsgBuffer) +BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_ZIPCode(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo, int nCode /* = 0 */, LPCTSTR lpszMsgBuffer /* = NULL */) { ModuleProtocol_IsErrorOccur = FALSE; @@ -731,7 +555,18 @@ BOOL CModuleProtocol_Packet::ModuleProtocol_Packet_Locker(TCHAR* ptszMsgBuffer, Json::Value st_JsonObject; Json::StreamWriterBuilder st_JsonBuilder; - st_JsonObject["xhToken"] = (Json::Value::UInt64)xhToken; + if (0 == nCode) + { + st_JsonObject["dlLat"] = pSt_ZIPInfo->dlLat; + st_JsonObject["dlLng"] = pSt_ZIPInfo->dlLng; + st_JsonObject["nAreaCode"] = pSt_ZIPInfo->nAreaCode; + st_JsonObject["nLevel"] = pSt_ZIPInfo->nLevel; + st_JsonObject["nZipCode"] = pSt_ZIPInfo->nZipCode; + st_JsonObject["tszCity"] = pSt_ZIPInfo->tszCity; + st_JsonObject["tszCounty"] = pSt_ZIPInfo->tszCounty; + st_JsonObject["tszPinYin"] = pSt_ZIPInfo->tszPinYin; + st_JsonObject["tszProvincer"] = pSt_ZIPInfo->tszProvincer; + } st_JsonRoot["code"] = nCode; if (NULL == lpszMsgBuffer) diff --git a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.h b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.h index f029e037eeadfc3dbf03b09f22e9faf83bfe4a59..016227b3eb4f6cac54306961faba68a58bce177c 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.h +++ b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Packet/ModuleProtocol_Packet.h @@ -24,16 +24,12 @@ public: public: BOOL ModuleProtocol_Packet_Common(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, int nCode = 0, LPCTSTR lpszMsgBuffer = NULL); BOOL ModuleProtocol_Packet_IPQuery(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_IPADDRINFO* pSt_IPAddrInfo, int nCode = 0, LPCTSTR lpszMsgBuffer = NULL); - BOOL ModuleProtocol_Packet_IPQuery2(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_IPADDRINFO* pSt_IPAddrInfo, int nCode = 0); BOOL ModuleProtocol_Packet_IDQuery(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_IDCARDINFO* pSt_IDInfo, XENGINE_IDREGION* pSt_IDRegion, int nCode = 0, LPCTSTR lpszMsgBuffer = NULL); - BOOL ModuleProtocol_Packet_IDQuery2(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_IDCARDINFO* pSt_IDInfo, XENGINE_IDREGION* pSt_IDRegion, int nCode = 0); BOOL ModuleProtocol_Packet_PhoneQuery(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_PHONEINFO* pSt_PhoneInfo, int nCode = 0, LPCTSTR lpszMsgBuffer = NULL); - BOOL ModuleProtocol_Packet_PhoneQuery2(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_PHONEINFO* pSt_PhoneInfo, int nCode = 0); BOOL ModuleProtocol_Packet_BankQuery(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_BANKINFO* pSt_BankInfo, int nCode = 0, LPCTSTR lpszMsgBuffer = NULL); - BOOL ModuleProtocol_Packet_BankQuery2(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_BANKINFO* pSt_BankInfo, int nCode = 0); BOOL ModuleProtocol_Packet_LanguageQuery(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo, int nCode = 0, LPCTSTR lpszMsgBuffer = NULL); - BOOL ModuleProtocol_Packet_LanguageQuery2(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo, int nCode = 0); BOOL ModuleProtocol_Packet_Locker(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nCode = 0, LPCTSTR lpszMsgBuffer = NULL); + BOOL ModuleProtocol_Packet_ZIPCode(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo, int nCode = 0, LPCTSTR lpszMsgBuffer = NULL); public: BOOL ModuleProtocol_Packet_P2PLan(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL*** pppSt_ListClients, int nListCount); BOOL ModuleProtocol_Packet_P2PWLan(TCHAR* ptszMsgBuffer, int* pInt_MsgLen, list* pStl_ListClients); diff --git a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.cpp b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.cpp index 4fc9937f98768cea09d986aa5aa2cdc3a09e926c..7df766b2f886dbf73cc6c83ece50c371283061c0 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.cpp +++ b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.cpp @@ -443,4 +443,68 @@ BOOL CModuleProtocol_Parse::ModuleProtocol_Parse_CDKey(LPCTSTR lpszMsgBuffer, in _tcscpy(pSt_Authorize->st_AuthUserInfo.tszCustom, st_JsonUserInfo["tszCustom"].asCString()); } return TRUE; +} +/******************************************************************** +函数名称:ModuleProtocol_Parse_ZIPCode +函数功能:解析邮政地址信息 + 参数.一:lpszMsgBuffer + In/Out:In + 类型:常量字符指针 + 可空:N + 意思:输入要解析的缓冲区 + 参数.二:nMsgLen + In/Out:In + 类型:整数型 + 可空:N + 意思:输入缓冲区大小 + 参数.三:pSt_ZIPInfo + In/Out:Out + 类型:数据结构指针 + 可空:N + 意思:输出解析后的信息 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +BOOL CModuleProtocol_Parse::ModuleProtocol_Parse_ZIPCode(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo) +{ + ModuleProtocol_IsErrorOccur = FALSE; + + if ((NULL == lpszMsgBuffer) || (NULL == pSt_ZIPInfo)) + { + ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; + return FALSE; + } + Json::Value st_JsonRoot; + JSONCPP_STRING st_JsonError; + Json::CharReaderBuilder st_ReaderBuilder; + //解析JSON + std::unique_ptr const pSt_JsonReader(st_ReaderBuilder.newCharReader()); + if (!pSt_JsonReader->parse(lpszMsgBuffer, lpszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError)) + { + ModuleProtocol_IsErrorOccur = TRUE; + ModuleProtocol_dwErrorCode = ERROR_XENGINE_APISERVICE_MODULE_PROTOCOL_PARSE_PARAMENT; + return FALSE; + } + + if (!st_JsonRoot["tszProvincer"].isNull()) + { + _tcscpy(pSt_ZIPInfo->tszProvincer, st_JsonRoot["tszProvincer"].asCString()); + } + if (!st_JsonRoot["tszCity"].isNull()) + { + _tcscpy(pSt_ZIPInfo->tszCity, st_JsonRoot["tszCity"].asCString()); + } + if (!st_JsonRoot["tszCounty"].isNull()) + { + _tcscpy(pSt_ZIPInfo->tszCounty, st_JsonRoot["tszCounty"].asCString()); + } + + if (!st_JsonRoot["nZipCode"].isNull()) + { + pSt_ZIPInfo->nZipCode = st_JsonRoot["nZipCode"].asInt(); + } + return TRUE; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.h b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.h index 0ff655ec1919ca318729b0ea4593a4fb9fd76f87..c27d58c8efa78c5d696928f361a6bfa5a303aa28 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.h +++ b/XEngine_Source/XEngine_ModuleProtocol/ModuleProtocol_Parse/ModuleProtocol_Parse.h @@ -23,5 +23,6 @@ public: BOOL ModuleProtocol_Parse_Translation(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_LANGUAGEINFO* pSt_LanguageInfo); BOOL ModuleProtocol_Parse_P2PClient(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_P2XPPEER_PROTOCOL* pSt_P2XPPeer); BOOL ModuleProtocol_Parse_CDKey(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_AUTHORIZE_LOCAL* pSt_Authorize); + BOOL ModuleProtocol_Parse_ZIPCode(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_ZIPINFO* pSt_ZIPInfo); private: }; \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleProtocol/XEngine_ModuleProtocol.def b/XEngine_Source/XEngine_ModuleProtocol/XEngine_ModuleProtocol.def index 1fa7507d9b6371b870f1cfe148d9dbf4006bc774..f25bb0a682a43f30ef283bb34f363f2817aaf3f5 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/XEngine_ModuleProtocol.def +++ b/XEngine_Source/XEngine_ModuleProtocol/XEngine_ModuleProtocol.def @@ -5,16 +5,12 @@ EXPORTS ModuleProtocol_Packet_Common ModuleProtocol_Packet_IPQuery - ModuleProtocol_Packet_IPQuery2 ModuleProtocol_Packet_IDQuery - ModuleProtocol_Packet_IDQuery2 ModuleProtocol_Packet_PhoneQuery - ModuleProtocol_Packet_PhoneQuery2 ModuleProtocol_Packet_BankQuery - ModuleProtocol_Packet_BankQuery2 ModuleProtocol_Packet_LanguageQuery - ModuleProtocol_Packet_LanguageQuery2 ModuleProtocol_Packet_Locker + ModuleProtocol_Packet_ZIPCode ModuleProtocol_Packet_P2PLan ModuleProtocol_Packet_P2PWLan ModuleProtocol_Packet_P2PUser @@ -24,4 +20,5 @@ EXPORTS ModuleProtocol_Parse_Bank ModuleProtocol_Parse_Translation ModuleProtocol_Parse_P2PClient - ModuleProtocol_Parse_CDKey \ No newline at end of file + ModuleProtocol_Parse_CDKey + ModuleProtocol_Parse_ZIPCode \ No newline at end of file diff --git a/XEngine_Source/XEngine_ModuleProtocol/pch.cpp b/XEngine_Source/XEngine_ModuleProtocol/pch.cpp index 92c712f0d1fe32776ac11e3f06e30ff6f144d06e..2e32fa7c0f5f3dce6cb937776d9bed329f317692 100644 --- a/XEngine_Source/XEngine_ModuleProtocol/pch.cpp +++ b/XEngine_Source/XEngine_ModuleProtocol/pch.cpp @@ -39,46 +39,30 @@ extern "C" BOOL ModuleProtocol_Packet_IPQuery(TCHAR * ptszMsgBuffer, int* pInt_M { return m_ProtocolPacket.ModuleProtocol_Packet_IPQuery(ptszMsgBuffer, pInt_MsgLen, pSt_IPAddrInfo, nCode, lpszMsgBuffer); } -extern "C" BOOL ModuleProtocol_Packet_IPQuery2(TCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_IPADDRINFO * pSt_IPAddrInfo, int nCode) -{ - return m_ProtocolPacket.ModuleProtocol_Packet_IPQuery2(ptszMsgBuffer, pInt_MsgLen, pSt_IPAddrInfo, nCode); -} extern "C" BOOL ModuleProtocol_Packet_IDQuery(TCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_IDCARDINFO * pSt_IDInfo, XENGINE_IDREGION * pSt_IDRegion, int nCode, LPCTSTR lpszMsgBuffer) { return m_ProtocolPacket.ModuleProtocol_Packet_IDQuery(ptszMsgBuffer, pInt_MsgLen, pSt_IDInfo, pSt_IDRegion, nCode, lpszMsgBuffer); } -extern "C" BOOL ModuleProtocol_Packet_IDQuery2(TCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_IDCARDINFO * pSt_IDInfo, XENGINE_IDREGION * pSt_IDRegion, int nCode) -{ - return m_ProtocolPacket.ModuleProtocol_Packet_IDQuery2(ptszMsgBuffer, pInt_MsgLen, pSt_IDInfo, pSt_IDRegion, nCode); -} extern "C" BOOL ModuleProtocol_Packet_PhoneQuery(TCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_PHONEINFO * pSt_PhoneInfo, int nCode, LPCTSTR lpszMsgBuffer) { return m_ProtocolPacket.ModuleProtocol_Packet_PhoneQuery(ptszMsgBuffer, pInt_MsgLen, pSt_PhoneInfo, nCode, lpszMsgBuffer); } -extern "C" BOOL ModuleProtocol_Packet_PhoneQuery2(TCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_PHONEINFO * pSt_PhoneInfo, int nCode) -{ - return m_ProtocolPacket.ModuleProtocol_Packet_PhoneQuery2(ptszMsgBuffer, pInt_MsgLen, pSt_PhoneInfo, nCode); -} extern "C" BOOL ModuleProtocol_Packet_BankQuery(TCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_BANKINFO * pSt_BankInfo, int nCode, LPCTSTR lpszMsgBuffer) { return m_ProtocolPacket.ModuleProtocol_Packet_BankQuery(ptszMsgBuffer, pInt_MsgLen, pSt_BankInfo, nCode, lpszMsgBuffer); } -extern "C" BOOL ModuleProtocol_Packet_BankQuery2(TCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_BANKINFO * pSt_BankInfo, int nCode) -{ - return m_ProtocolPacket.ModuleProtocol_Packet_BankQuery2(ptszMsgBuffer, pInt_MsgLen, pSt_BankInfo, nCode); -} extern "C" BOOL ModuleProtocol_Packet_LanguageQuery(TCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_LANGUAGEINFO * pSt_LanguageInfo, int nCode, LPCTSTR lpszMsgBuffer) { return m_ProtocolPacket.ModuleProtocol_Packet_LanguageQuery(ptszMsgBuffer, pInt_MsgLen, pSt_LanguageInfo, nCode, lpszMsgBuffer); } -extern "C" BOOL ModuleProtocol_Packet_LanguageQuery2(TCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_LANGUAGEINFO * pSt_LanguageInfo, int nCode) -{ - return m_ProtocolPacket.ModuleProtocol_Packet_LanguageQuery2(ptszMsgBuffer, pInt_MsgLen, pSt_LanguageInfo, nCode); -} extern "C" BOOL ModuleProtocol_Packet_Locker(TCHAR * ptszMsgBuffer, int* pInt_MsgLen, XNETHANDLE xhToken, int nCode, LPCTSTR lpszMsgBuffer) { return m_ProtocolPacket.ModuleProtocol_Packet_Locker(ptszMsgBuffer, pInt_MsgLen, xhToken, nCode, lpszMsgBuffer); } +extern "C" BOOL ModuleProtocol_Packet_ZIPCode(TCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_ZIPINFO * pSt_ZIPInfo, int nCode, LPCTSTR lpszMsgBuffer) +{ + return m_ProtocolPacket.ModuleProtocol_Packet_ZIPCode(ptszMsgBuffer, pInt_MsgLen, pSt_ZIPInfo, nCode, lpszMsgBuffer); +} extern "C" BOOL ModuleProtocol_Packet_P2PLan(TCHAR * ptszMsgBuffer, int* pInt_MsgLen, XENGINE_P2XPPEER_PROTOCOL * **pppSt_ListClients, int nListCount) { return m_ProtocolPacket.ModuleProtocol_Packet_P2PLan(ptszMsgBuffer, pInt_MsgLen, pppSt_ListClients, nListCount); @@ -117,4 +101,8 @@ extern "C" BOOL ModuleProtocol_Parse_P2PClient(LPCTSTR lpszMsgBuffer, int nMsgLe extern "C" BOOL ModuleProtocol_Parse_CDKey(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_AUTHORIZE_LOCAL * pSt_Authorize) { return m_ProtocolParse.ModuleProtocol_Parse_CDKey(lpszMsgBuffer, nMsgLen, pSt_Authorize); +} +extern "C" BOOL ModuleProtocol_Parse_ZIPCode(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_ZIPINFO * pSt_ZIPInfo) +{ + return m_ProtocolParse.ModuleProtocol_Parse_ZIPCode(lpszMsgBuffer, nMsgLen, pSt_ZIPInfo); } \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/ModulePlugin_BMIndex.vcxproj b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/ModulePlugin_BMIndex.vcxproj index 740493a88a28d8a7624ad1e17a997274bf18a753..2a566f2581271107a9776997e95b1bbd9eaf761d 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/ModulePlugin_BMIndex.vcxproj +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_BMIndex/ModulePlugin_BMIndex.vcxproj @@ -75,21 +75,26 @@ $(SolutionDir)$(Configuration)\XEngine_Plugin\ ../../XEngine_ThirdPart/jsoncpp;$(XEngine_Include);$(IncludePath) $(XEngine_Lib32);$(LibraryPath) + $(Configuration)\XEngine_Plugin\ + $(ProjectName) $(XEngine_Include);../../XEngine_ThirdPart/jsoncpp;$(IncludePath) $(XEngine_Lib32);$(LibraryPath) $(SolutionDir)$(Configuration)\XEngine_Plugin\ + $(Configuration)\XEngine_Plugin\ $(XEngine_Include);../../XEngine_ThirdPart/jsoncpp;$(IncludePath) $(XEngine_Lib64);$(LibraryPath) $(SolutionDir)$(Platform)\$(Configuration)\XEngine_Plugin\ + $(Platform)\$(Configuration)\XEngine_Plugin\ $(XEngine_Include);../../XEngine_ThirdPart/jsoncpp;$(IncludePath) $(XEngine_Lib64);$(LibraryPath) $(SolutionDir)$(Platform)\$(Configuration)\XEngine_Plugin\ + $(Platform)\$(Configuration)\XEngine_Plugin\ diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Makefile b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..f62a01dbc0b543a184ff1d1bc28e7debb8965b68 --- /dev/null +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Makefile @@ -0,0 +1,55 @@ +CC = g++ -Wall -std=c++17 -fPIC +SHAREFLAG = -shared +SHAREDLL = so +RELEASE = 0 +UNICODE = 0 +INCLUDE = -I ./ -I ../../XEngine_ThirdPart/jsoncpp +LOADBIN = -L /usr/local/lib/XEngine_Release/XEngine_BaseLib -L ../../XEngine_ThirdPart/jsoncpp +LIB = -lXEngine_BaseLib -ljsoncpp +LIBEX = -ldl -lpthread +LOADSO = -Wl,-rpath=../,--disable-new-dtags +LIBINCLUDE = Plugin_Meter.o pch.o + +ifeq ($(shell uname),Darwin) + SHAREDLL = dylib + SHAREFLAG = -dynamiclib + LOADSO = +else + SHAREDLL = so + SHAREFLAG = -shared +endif + +ifeq ($(RELEASE),1) +FLAGS = -c -O2 +DEBUG = +else +FLAGS = -c +DEBUG = -g +endif + +ifeq ($(UNICODE),1) +UNICODE = -D _UNICODE +else +UNICODE = +endif + + +all:$(LIBINCLUDE) + $(CC) $(DEBUG) $(LIBINCLUDE) -o libModulePlugin_Meter.$(SHAREDLL) $(SHAREFLAG) -fPIC $(LOADBIN) $(LIB) $(LIBEX) $(LOADSO) + +Plugin_Meter.o:./Plugin_Meter/Plugin_Meter.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./Plugin_Meter/Plugin_Meter.cpp + +pch.o:./pch.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(INCLUDE) ./pch.cpp + + +InstallAll:InstallSo +InstallSo:./libModulePlugin_Meter.$(SHAREDLL) + cp ./libModulePlugin_Meter.$(SHAREDLL) ../../../XEngine_Release/XEngine_Plugin/libModulePlugin_Meter.$(SHAREDLL) + +CleanAll:CleanObj CleanMk +CleanObj: + rm *.o +CleanMk: + rm *.$(SHAREDLL) \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/ModulePlugin_Meter.def b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/ModulePlugin_Meter.def new file mode 100644 index 0000000000000000000000000000000000000000..78dedee2f85146d24ce86f934777197f8ada61dd --- /dev/null +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/ModulePlugin_Meter.def @@ -0,0 +1,8 @@ +LIBRARY + +EXPORTS + PluginCore_GetLastError + + PluginCore_Init + PluginCore_UnInit + PluginCore_Call \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/ModulePlugin_Meter.vcxproj b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/ModulePlugin_Meter.vcxproj new file mode 100644 index 0000000000000000000000000000000000000000..7fb4df7ee42a2e4848bc3834b17c4a6cb931a922 --- /dev/null +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/ModulePlugin_Meter.vcxproj @@ -0,0 +1,193 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {6f111577-daf8-4294-b516-0077c22d7613} + ModulePluginMeter + 10.0 + libModulePlugin_Meter + + + + DynamicLibrary + true + v143 + MultiByte + + + DynamicLibrary + false + v143 + true + MultiByte + + + DynamicLibrary + true + v143 + MultiByte + + + DynamicLibrary + false + v143 + true + MultiByte + + + + + + + + + + + + + + + + + + + + + $(SolutionDir)$(Configuration)\XEngine_Plugin\ + $(Configuration)\XEngine_Plugin\ + $(XEngine_Include);../../XEngine_ThirdPart/jsoncpp;$(IncludePath) + $(XEngine_Lib32);$(LibraryPath) + + + $(SolutionDir)$(Configuration)\XEngine_Plugin\ + $(Configuration)\XEngine_Plugin\ + $(XEngine_Include);../../XEngine_ThirdPart/jsoncpp;$(IncludePath) + $(XEngine_Lib32);$(LibraryPath) + + + $(SolutionDir)$(Platform)\$(Configuration)\XEngine_Plugin\ + $(Platform)\$(Configuration)\XEngine_Plugin\ + $(XEngine_Include);../../XEngine_ThirdPart/jsoncpp;$(IncludePath) + $(XEngine_Lib64);$(LibraryPath) + + + $(SolutionDir)$(Platform)\$(Configuration)\XEngine_Plugin\ + $(Platform)\$(Configuration)\XEngine_Plugin\ + $(XEngine_Include);../../XEngine_ThirdPart/jsoncpp;$(IncludePath) + $(XEngine_Lib64);$(LibraryPath) + + + + Level3 + true + WIN32;_DEBUG;MODULEPLUGINMETER_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + Use + pch.h + + + Windows + true + false + ModulePlugin_Meter.def + + + + + Level3 + true + true + true + WIN32;NDEBUG;MODULEPLUGINMETER_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + Use + pch.h + + + Windows + true + true + true + false + ModulePlugin_Meter.def + + + + + Level3 + true + _DEBUG;MODULEPLUGINMETER_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + Use + pch.h + + + Windows + true + false + ModulePlugin_Meter.def + + + + + Level3 + true + true + true + NDEBUG;MODULEPLUGINMETER_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + Use + pch.h + + + Windows + true + true + true + false + ModulePlugin_Meter.def + + + + + + + + + + + + + Create + Create + Create + Create + + + + + + + + + + \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/ModulePlugin_Meter.vcxproj.filters b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/ModulePlugin_Meter.vcxproj.filters new file mode 100644 index 0000000000000000000000000000000000000000..a9c99fc38a39117837e1607a9323d54af46ed569 --- /dev/null +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/ModulePlugin_Meter.vcxproj.filters @@ -0,0 +1,56 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + {787df7a3-1a7f-4e06-88a0-34b0a4b6bbb5} + + + {8b14df4b-7a4b-4ec5-b07c-d210aa340660} + + + + + 头文件 + + + 头文件 + + + 头文件\Plugin_Meter + + + 头文件 + + + 头文件 + + + + + 源文件 + + + 源文件 + + + 源文件\Plugin_Meter + + + + + 源文件 + + + \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/ModulePlugin_Meter.vcxproj.user b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/ModulePlugin_Meter.vcxproj.user new file mode 100644 index 0000000000000000000000000000000000000000..88a550947edbc3c5003a41726f0749201fdb6822 --- /dev/null +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/ModulePlugin_Meter.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/PluginMeter_Define.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/PluginMeter_Define.h new file mode 100644 index 0000000000000000000000000000000000000000..9de207476aaf690612db7867da8ebfceecacd94b --- /dev/null +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/PluginMeter_Define.h @@ -0,0 +1,104 @@ +#pragma once +/******************************************************************** +// Created: 2022/11/01 13:56:53 +// File Name: D:\XEngine_APIService\XEngine_Source\XEngine_PluginModule\ModulePlugin_Meter\PluginMeter_Define.h +// File Path: D:\XEngine_APIService\XEngine_Source\XEngine_PluginModule\ModulePlugin_Meter +// File Base: PluginMeter_Define +// File Ext: h +// Project: XEngine(网络通信引擎) +// Author: qyt +// Purpose: 计量转换插件 +// History: +*********************************************************************/ +//长度计量 +typedef enum +{ + //美国标准 + ENUM_APISERVICE_PLUGIN_METER_LENGTH_KILOMETRE = 0, //公里 + ENUM_APISERVICE_PLUGIN_METER_LENGTH_METRE = 1, //米 + ENUM_APISERVICE_PLUGIN_METER_LENGTH_DECIMETER = 2, //分米 + ENUM_APISERVICE_PLUGIN_METER_LENGTH_CENTIMEER = 3, //厘米 + ENUM_APISERVICE_PLUGIN_METER_LENGTH_MILLMETER = 4, //毫米 + ENUM_APISERVICE_PLUGIN_METER_LENGTH_MICROMETER = 5, //微米 + //中国标准 + ENUM_APISERVICE_PLUGIN_METER_LENGTH_LI = 10, //里 + ENUM_APISERVICE_PLUGIN_METER_LENGTH_ZHANG = 11, //丈 + ENUM_APISERVICE_PLUGIN_METER_LENGTH_CHI = 12, //尺 + ENUM_APISERVICE_PLUGIN_METER_LENGTH_CUN = 13, //寸 + ENUM_APISERVICE_PLUGIN_METER_LENGTH_FEN = 14, //分 + //英国标准 + ENUM_APISERVICE_PLUGIN_METER_LENGTH_NAUTICALMILE = 20, //海里 + ENUM_APISERVICE_PLUGIN_METER_LENGTH_MILE = 21, //英里 + ENUM_APISERVICE_PLUGIN_METER_LENGTH_YARD = 22, //码 + ENUM_APISERVICE_PLUGIN_METER_LENGTH_INCH = 23, //英寸 + ENUM_APISERVICE_PLUGIN_METER_LENGTH_FUR = 24, //弗隆 + ENUM_APISERVICE_PLUGIN_METER_LENGTH_FOOT = 25 //英尺 +}ENUM_APISERVICE_PLUGIN_METER_LENGTH; +//温度计量 +typedef enum +{ + ENUM_APISERVICE_PLUGIN_METER_TEMPERATURE_C = 0, //摄氏度 + ENUM_APISERVICE_PLUGIN_METER_TEMPERATURE_F = 1, //华氏度 + ENUM_APISERVICE_PLUGIN_METER_TEMPERATURE_K = 2, //开氏度 + ENUM_APISERVICE_PLUGIN_METER_TEMPERATURE_RA = 3, //兰氏度 + ENUM_APISERVICE_PLUGIN_METER_TEMPERATURE_RE = 4 //列氏度 +}ENUM_APISERVICE_PLUGIN_METER_TEMPERATURE; +//功率 +typedef enum +{ + ENUM_APISERVICE_PLUGIN_METER_POWER_W = 0, //瓦 + ENUM_APISERVICE_PLUGIN_METER_POWER_KW = 1, //千瓦 + ENUM_APISERVICE_PLUGIN_METER_POWER_HP = 2, //英制马力 + ENUM_APISERVICE_PLUGIN_METER_POWER_PS = 3, //米制马力 +}ENUM_APISERVICE_PLUGIN_METER_POWER; +//速度 +typedef enum +{ + ENUM_APISERVICE_PLUGIN_METER_SPEED_KNOT = 0, //节 + ENUM_APISERVICE_PLUGIN_METER_POWER_MILE = 1, //里 + ENUM_APISERVICE_PLUGIN_METER_POWER_KILOMETER = 2, //公里 +}ENUM_APISERVICE_PLUGIN_METER_SPEED; +//重量 +//面积 +//体积 +//压力 +//进制 +////////////////////////////////////////////////////////////////////////// +// 导出函数定义 +////////////////////////////////////////////////////////////////////////// +extern "C" DWORD PluginCore_GetLastError(); +/********************************************************************************* +* 导出函数定义 * +*********************************************************************************/ +/******************************************************************** +函数名称:PluginCore_Init +函数功能:初始化插件模块 + 参数.一:lParam + In/Out:In/Out + 类型:无类型指针 + 可空:N + 意思:自定义参数 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +extern "C" BOOL PluginCore_Init(LPVOID lParam = NULL); +/******************************************************************** +函数名称:PluginCore_UnInit +函数功能:卸载插件 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +extern "C" BOOL PluginCore_UnInit(); +/******************************************************************** +函数名称:PluginCore_Call +函数功能:调用插件 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +extern "C" BOOL PluginCore_Call(TCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer = NULL, int nMsgLen = 0); \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/PluginMeter_Error.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/PluginMeter_Error.h new file mode 100644 index 0000000000000000000000000000000000000000..7554c79f2ed7f69edb47493ccbf7590276806004 --- /dev/null +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/PluginMeter_Error.h @@ -0,0 +1,16 @@ +#pragma once +/******************************************************************** +// Created: 2022/11/01 13:57:03 +// File Name: D:\XEngine_APIService\XEngine_Source\XEngine_PluginModule\ModulePlugin_Meter\PluginMeter_Error.h +// File Path: D:\XEngine_APIService\XEngine_Source\XEngine_PluginModule\ModulePlugin_Meter +// File Base: PluginMeter_Error +// File Ext: h +// Project: XEngine(网络通信引擎) +// Author: qyt +// Purpose: 计量转换导出错误 +// History: +*********************************************************************/ +////////////////////////////////////////////////////////////////////////// +// 错误定义 +////////////////////////////////////////////////////////////////////////// +#define ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_METER_PARAMENT 0x12001 //参数错误 \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Plugin_Meter/Plugin_Meter.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Plugin_Meter/Plugin_Meter.cpp new file mode 100644 index 0000000000000000000000000000000000000000..ad2c8dc77d54c424953fd003b94a6f52e08890d4 --- /dev/null +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Plugin_Meter/Plugin_Meter.cpp @@ -0,0 +1,249 @@ +#include "pch.h" +#include "Plugin_Meter.h" +/******************************************************************** +// Created: 2022/11/01 13:40:13 +// File Name: D:\XEngine_APIService\XEngine_Source\XEngine_PluginModule\ModulePlugin_Meter\Plugin_Meter\Plugin_Meter.cpp +// File Path: D:\XEngine_APIService\XEngine_Source\XEngine_PluginModule\ModulePlugin_Meter\Plugin_Meter +// File Base: Plugin_Meter +// File Ext: cpp +// Project: XEngine(网络通信引擎) +// Author: qyt +// Purpose: 计量转换器 +// History: +*********************************************************************/ +CPlugin_Meter::CPlugin_Meter() +{ +} +CPlugin_Meter::~CPlugin_Meter() +{ +} +////////////////////////////////////////////////////////////////////////// +// 公有函数 +////////////////////////////////////////////////////////////////////////// +/******************************************************************** +函数名称:PluginCore_Init +函数功能:初始化插件模块 + 参数.一:lParam + In/Out:In/Out + 类型:无类型指针 + 可空:N + 意思:自定义参数 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +BOOL CPlugin_Meter::PluginCore_Init(LPVOID lParam) +{ + Meter_IsErrorOccur = FALSE; + + return TRUE; +} +/******************************************************************** +函数名称:PluginCore_UnInit +函数功能:卸载插件 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +BOOL CPlugin_Meter::PluginCore_UnInit() +{ + Meter_IsErrorOccur = FALSE; + + return TRUE; +} +/******************************************************************** +函数名称:PluginCore_Call +函数功能:调用插件 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +BOOL CPlugin_Meter::PluginCore_Call(TCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer, int nMsgLen) +{ + Meter_IsErrorOccur = FALSE; + + if ((NULL == pInt_HTTPCode) || (NULL == ptszMsgBuffer) || (NULL == pInt_MsgLen)) + { + Meter_IsErrorOccur = TRUE; + Meter_dwErrorCode = ERROR_XENGINE_APISERVICE_PLUGIN_MODULE_METER_PARAMENT; + return FALSE; + } + TCHAR tszKeyName[128]; + TCHAR tszParamType[128]; + TCHAR tszParamValue[128]; + TCHAR tszParamSource[128]; + + Json::Value st_JsonRoot; + Json::Value st_JsonObject; + Json::StreamWriterBuilder st_JsonBuilder; + + memset(tszKeyName, '\0', sizeof(tszKeyName)); + memset(tszParamType, '\0', sizeof(tszParamType)); + memset(tszParamSource, '\0', sizeof(tszParamSource)); + memset(tszParamValue, '\0', sizeof(tszParamValue)); + + //http://192.168.1.8:5501/api?function=meter&type=0&source=0&value=10 + BaseLib_OperatorString_GetKeyValue((*pppHDRList)[1], "=", tszKeyName, tszParamType); + BaseLib_OperatorString_GetKeyValue((*pppHDRList)[2], "=", tszKeyName, tszParamSource); + BaseLib_OperatorString_GetKeyValue((*pppHDRList)[3], "=", tszKeyName, tszParamValue); + + if (0 == _ttoi(tszParamType)) + { + Plugin_Meter_LengthConvert(_ttoi(tszParamSource), _ttoi64(tszParamValue), &st_JsonObject); + } + else if (1 == _ttoi(tszParamType)) + { + Plugin_Meter_TemperatureConvert(_ttoi(tszParamSource), _ttoi64(tszParamValue), &st_JsonObject); + } + else if (2 == _ttoi(tszParamType)) + { + Plugin_Meter_PowerConvert(_ttoi(tszParamSource), _ttoi64(tszParamValue), &st_JsonObject); + } + else if (3 == _ttoi(tszParamType)) + { + Plugin_Meter_SpeedConvert(_ttoi(tszParamSource), _ttoi64(tszParamValue), &st_JsonObject); + } + + st_JsonObject["tszParamType"] = _ttoi(tszParamType); + st_JsonObject["tszParamSource"] = _ttoi(tszParamSource); + st_JsonObject["tszParamValue"] = _ttof(tszParamValue); + + st_JsonRoot["data"] = st_JsonObject; + st_JsonRoot["code"] = 0; + st_JsonRoot["msg"] = "success"; + st_JsonBuilder["emitUTF8"] = true; + + *pInt_HTTPCode = 200; + *pInt_MsgLen = Json::writeString(st_JsonBuilder, st_JsonRoot).length(); + memcpy(ptszMsgBuffer, Json::writeString(st_JsonBuilder, st_JsonRoot).c_str(), *pInt_MsgLen); + return TRUE; +} +////////////////////////////////////////////////////////////////////////// +// 保护函数 +////////////////////////////////////////////////////////////////////////// +BOOL CPlugin_Meter::Plugin_Meter_LengthConvert(int nSource, __int64x nValue, Json::Value *pSt_JsonObject) +{ + Meter_IsErrorOccur = FALSE; + + Json::Value st_JsonObejct; + if (ENUM_APISERVICE_PLUGIN_METER_LENGTH_KILOMETRE == nSource) + { + st_JsonObejct["metre"] = double(nValue * 1000); + st_JsonObejct["decimeter"] = double(nValue * 10000); + st_JsonObejct["centimeter"] = double(nValue * 100000); + st_JsonObejct["millimeter"] = double(nValue * 1000000); + st_JsonObejct["micrometer"] = double(nValue * 1000000000); + + st_JsonObejct["li"] = double(nValue * 2); + st_JsonObejct["zhang"] = double(nValue * 300); + st_JsonObejct["chi"] = double(nValue * 3000); + st_JsonObejct["cun"] = double(nValue * 30000); + st_JsonObejct["fen"] = double(nValue * 300000); + + st_JsonObejct["nauticalmile"] = double(nValue * 0.539956803456); + st_JsonObejct["mile"] = double(nValue * 0.621371); + st_JsonObejct["yard"] = double(nValue * 1093.6133); + st_JsonObejct["inch"] = double(nValue * 39370.079); + st_JsonObejct["fur"] = double(nValue * 4.9709695); + st_JsonObejct["foot"] = double(nValue * 3280.8399); + } + else if (ENUM_APISERVICE_PLUGIN_METER_LENGTH_METRE == nSource) + { + st_JsonObejct["kilometre"] = double(nValue * 0.001); + st_JsonObejct["decimeter"] = double(nValue * 10); + st_JsonObejct["centimeter"] = double(nValue * 100); + st_JsonObejct["millimeter"] = double(nValue * 1000); + st_JsonObejct["micrometer"] = double(nValue * 1000000); + + st_JsonObejct["li"] = double(nValue * 0.002); + st_JsonObejct["zhang"] = double(nValue * 0.3); + st_JsonObejct["chi"] = double(nValue * 3); + st_JsonObejct["cun"] = double(nValue * 30); + st_JsonObejct["fen"] = double(nValue * 300); + + st_JsonObejct["nauticalmile"] = double(nValue * 0.0005399568); + st_JsonObejct["mile"] = double(nValue * 0.00062137119); + st_JsonObejct["yard"] = double(nValue * 1.0936133); + st_JsonObejct["inch"] = double(nValue * 39.370079); + st_JsonObejct["fur"] = double(nValue * 0.0049709695); + st_JsonObejct["foot"] = double(nValue * 3.2808399); + } + else if (ENUM_APISERVICE_PLUGIN_METER_LENGTH_DECIMETER == nSource) + { + st_JsonObejct["kilometre"] = double(nValue * 0.0001); + st_JsonObejct["metre"] = double(nValue * 0.1); + st_JsonObejct["centimeter"] = double(nValue * 10); + st_JsonObejct["millimeter"] = double(nValue * 100); + st_JsonObejct["micrometer"] = double(nValue * 100000); + + st_JsonObejct["li"] = double(nValue * 0.0002); + st_JsonObejct["zhang"] = double(nValue * 0.03); + st_JsonObejct["chi"] = double(nValue * 0.3); + st_JsonObejct["cun"] = double(nValue * 3); + st_JsonObejct["fen"] = double(nValue * 30); + + st_JsonObejct["nauticalmile"] = double(nValue * 0.00005399568); + st_JsonObejct["mile"] = double(nValue * 0.000062137119); + st_JsonObejct["yard"] = double(nValue * 0.10936133); + st_JsonObejct["inch"] = double(nValue * 3.9370079); + st_JsonObejct["fur"] = double(nValue * 0.00049709695); + st_JsonObejct["foot"] = double(nValue * 0.32808399); + } + (*pSt_JsonObject)["Length"] = st_JsonObejct; + return TRUE; +} +BOOL CPlugin_Meter::Plugin_Meter_TemperatureConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject) +{ + Meter_IsErrorOccur = FALSE; + + Json::Value st_JsonObejct; + if (ENUM_APISERVICE_PLUGIN_METER_TEMPERATURE_C == nSource) + { + st_JsonObejct["fahrenheit"] = double(nValue * 33.8); + st_JsonObejct["kelvin"] = double(nValue * 274.15); + st_JsonObejct["rankine"] = double(nValue * 493.46999999999997); + st_JsonObejct["degree"] = double(nValue * 0.8); + } + (*pSt_JsonObject)["Temperature"] = st_JsonObejct; + return TRUE; +} +BOOL CPlugin_Meter::Plugin_Meter_PowerConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject) +{ + Meter_IsErrorOccur = FALSE; + + Json::Value st_JsonObejct; + if (ENUM_APISERVICE_PLUGIN_METER_POWER_W == nSource) + { + st_JsonObejct["kw"] = double(nValue * 0.001); + st_JsonObejct["hp"] = double(nValue * 0.001341); + st_JsonObejct["ps"] = double(nValue * 0.00136); + } + (*pSt_JsonObject)["Power"] = st_JsonObejct; + return TRUE; +} +BOOL CPlugin_Meter::Plugin_Meter_SpeedConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject) +{ + Meter_IsErrorOccur = FALSE; + + Json::Value st_JsonObejct; + if (ENUM_APISERVICE_PLUGIN_METER_SPEED_KNOT == nSource) + { + st_JsonObejct["mile"] = double(nValue * 1.1488500000000001); + st_JsonObejct["kilometer"] = double(nValue * 1.85); + } + else if (ENUM_APISERVICE_PLUGIN_METER_POWER_MILE == nSource) + { + st_JsonObejct["knot"] = double(nValue * 00.8702702702702703); + st_JsonObejct["kilometer"] = double(nValue * 1.61); + } + else + { + st_JsonObejct["knot"] = double(nValue * 00.5405405405405405); + st_JsonObejct["kilometer"] = double(nValue * 00.621); + } + (*pSt_JsonObject)["Power"] = st_JsonObejct; + return TRUE; +} \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Plugin_Meter/Plugin_Meter.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Plugin_Meter/Plugin_Meter.h new file mode 100644 index 0000000000000000000000000000000000000000..f26954095492747ca2101e67dee70b6a33ebc1d8 --- /dev/null +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/Plugin_Meter/Plugin_Meter.h @@ -0,0 +1,29 @@ +#pragma once +/******************************************************************** +// Created: 2022/11/01 13:39:40 +// File Name: D:\XEngine_APIService\XEngine_Source\XEngine_PluginModule\ModulePlugin_Meter\Plugin_Meter\Plugin_Meter.h +// File Path: D:\XEngine_APIService\XEngine_Source\XEngine_PluginModule\ModulePlugin_Meter\Plugin_Meter +// File Base: Plugin_Meter +// File Ext: h +// Project: XEngine(网络通信引擎) +// Author: qyt +// Purpose: 计量转换器 +// History: +*********************************************************************/ + +class CPlugin_Meter +{ +public: + CPlugin_Meter(); + ~CPlugin_Meter(); +public: + BOOL PluginCore_Init(LPVOID lParam); + BOOL PluginCore_UnInit(); + BOOL PluginCore_Call(TCHAR*** pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR* ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer, int nMsgLen); +protected: + BOOL Plugin_Meter_LengthConvert(int nSource, __int64x nValue, Json::Value *pSt_JsonObject); + BOOL Plugin_Meter_TemperatureConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject); + BOOL Plugin_Meter_PowerConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject); + BOOL Plugin_Meter_SpeedConvert(int nSource, __int64x nValue, Json::Value* pSt_JsonObject); +private: +}; diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/dllmain.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/dllmain.cpp new file mode 100644 index 0000000000000000000000000000000000000000..daed8c8f7ac50ca1466016a0529648d18125a7e7 --- /dev/null +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/dllmain.cpp @@ -0,0 +1,19 @@ +// dllmain.cpp : 定义 DLL 应用程序的入口点。 +#include "pch.h" + +BOOL APIENTRY DllMain( HMODULE hModule, + DWORD ul_reason_for_call, + LPVOID lpReserved + ) +{ + switch (ul_reason_for_call) + { + case DLL_PROCESS_ATTACH: + case DLL_THREAD_ATTACH: + case DLL_THREAD_DETACH: + case DLL_PROCESS_DETACH: + break; + } + return TRUE; +} + diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/framework.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/framework.h new file mode 100644 index 0000000000000000000000000000000000000000..80cbbc9b06a9b0141f92ee19eceaed71328caff4 --- /dev/null +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/framework.h @@ -0,0 +1,5 @@ +#pragma once + +#define WIN32_LEAN_AND_MEAN // 从 Windows 头文件中排除极少使用的内容 +// Windows 头文件 +#include diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.cpp b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.cpp new file mode 100644 index 0000000000000000000000000000000000000000..fd0ce7ce94ac4e1df3a8c0b35fba538129ef6f3c --- /dev/null +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.cpp @@ -0,0 +1,39 @@ +#include "pch.h" +#include "Plugin_Meter/Plugin_Meter.h" +/******************************************************************** +// Created: 2022/11/01 13:56:17 +// File Name: D:\XEngine_APIService\XEngine_Source\XEngine_PluginModule\ModulePlugin_Meter\pch.cpp +// File Path: D:\XEngine_APIService\XEngine_Source\XEngine_PluginModule\ModulePlugin_Meter +// File Base: pch +// File Ext: cpp +// Project: XEngine(网络通信引擎) +// Author: qyt +// Purpose: 导出实现 +// History: +*********************************************************************/ +BOOL Meter_IsErrorOccur = FALSE; +DWORD Meter_dwErrorCode = 0; +////////////////////////////////////////////////////////////////////////// +CPlugin_Meter m_PluginMeter; +////////////////////////////////////////////////////////////////////////// +// 导出函数定义 +////////////////////////////////////////////////////////////////////////// +extern "C" DWORD PluginCore_GetLastError() +{ + return Meter_dwErrorCode; +} +/********************************************************************************* +* 导出函数定义 * +*********************************************************************************/ +extern "C" BOOL PluginCore_Init(LPVOID lParam) +{ + return m_PluginMeter.PluginCore_Init(lParam); +} +extern "C" BOOL PluginCore_UnInit() +{ + return m_PluginMeter.PluginCore_UnInit(); +} +extern "C" BOOL PluginCore_Call(TCHAR * **pppHDRList, int nListCount, int* pInt_HTTPCode, TCHAR * ptszMsgBuffer, int* pInt_MsgLen, LPCTSTR lpszMsgBuffer, int nMsgLen) +{ + return m_PluginMeter.PluginCore_Call(pppHDRList, nListCount, pInt_HTTPCode, ptszMsgBuffer, pInt_MsgLen, lpszMsgBuffer, nMsgLen); +} \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.h b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.h new file mode 100644 index 0000000000000000000000000000000000000000..abb8e8b6694b11324c6060683ccce421e37b5531 --- /dev/null +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Meter/pch.h @@ -0,0 +1,57 @@ +// pch.h: 这是预编译标头文件。 +// 下方列出的文件仅编译一次,提高了将来生成的生成性能。 +// 这还将影响 IntelliSense 性能,包括代码完成和许多代码浏览功能。 +// 但是,如果此处列出的文件中的任何一个在生成之间有更新,它们全部都将被重新编译。 +// 请勿在此处添加要频繁更新的文件,这将使得性能优势无效。 + +#ifndef PCH_H +#define PCH_H + +#ifdef _MSC_BUILD +// 添加要在此处预编译的标头 +#include "framework.h" +#include +#endif // _MSC_BUILD +#endif //PCH_H +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "PluginMeter_Define.h" +#include "PluginMeter_Error.h" +/******************************************************************** +// Created: 2022/11/01 13:52:32 +// File Name: D:\XEngine_APIService\XEngine_Source\XEngine_PluginModule\ModulePlugin_Meter\pch.h +// File Path: D:\XEngine_APIService\XEngine_Source\XEngine_PluginModule\ModulePlugin_Meter +// File Base: pch +// File Ext: h +// Project: XEngine(网络通信引擎) +// Author: qyt +// Purpose: 公用头文件 +// History: +*********************************************************************/ +extern BOOL Meter_IsErrorOccur; +extern DWORD Meter_dwErrorCode; + + +#ifdef _MSC_BUILD +#pragma comment(lib,"XEngine_BaseLib/XEngine_BaseLib") +#ifdef _DEBUG +#ifdef _WIN64 +#pragma comment(lib,"../../x64/Debug/jsoncpp") +#else +#pragma comment(lib,"../../Debug/jsoncpp") +#endif +#else +#ifdef _WIN64 +#pragma comment(lib,"../../x64/Release/jsoncpp") +#else +#pragma comment(lib,"../../Release/jsoncpp") +#endif +#endif +#endif \ No newline at end of file diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/ModulePlugin_Password.vcxproj b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/ModulePlugin_Password.vcxproj index 22613468f0ad8775de77fdc35c0d59b99144208f..8e4412ac0f746d914b6c8aa223fb9a59c0cbe21f 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/ModulePlugin_Password.vcxproj +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Password/ModulePlugin_Password.vcxproj @@ -76,24 +76,28 @@ $(SolutionDir)$(Configuration)\XEngine_Plugin\ $(XEngine_Include);../../XEngine_ThirdPart/jsoncpp;$(IncludePath) $(XEngine_Lib32);$(LibraryPath) + $(Configuration)\XEngine_Plugin\ false $(XEngine_Include);../../XEngine_ThirdPart/jsoncpp;$(IncludePath) $(XEngine_Lib32);$(LibraryPath) $(SolutionDir)$(Configuration)\XEngine_Plugin\ + $(Configuration)\XEngine_Plugin\ true $(XEngine_Include);../../XEngine_ThirdPart/jsoncpp;$(IncludePath) $(XEngine_Lib64);$(LibraryPath) $(SolutionDir)$(Platform)\$(Configuration)\XEngine_Plugin\ + $(Platform)\$(Configuration)\XEngine_Plugin\ false $(XEngine_Include);../../XEngine_ThirdPart/jsoncpp;$(IncludePath) $(XEngine_Lib64);$(LibraryPath) $(SolutionDir)$(Platform)\$(Configuration)\XEngine_Plugin\ + $(Platform)\$(Configuration)\XEngine_Plugin\ diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/ModulePlugin_Timezone.vcxproj b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/ModulePlugin_Timezone.vcxproj index 8c1e05598b3cbde91d95dcfa72ebbd480436da78..07ca3e78d61b81346d9e643daadee4ecb4ba83af 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/ModulePlugin_Timezone.vcxproj +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Timezone/ModulePlugin_Timezone.vcxproj @@ -75,21 +75,25 @@ $(XEngine_Include);../../XEngine_ThirdPart/jsoncpp;$(IncludePath) $(XEngine_Lib32);$(LibraryPath) $(SolutionDir)$(Configuration)\XEngine_Plugin\ + $(Configuration)\XEngine_Plugin\ $(XEngine_Include);../../XEngine_ThirdPart/jsoncpp;$(IncludePath) $(XEngine_Lib32);$(LibraryPath) $(SolutionDir)$(Configuration)\XEngine_Plugin\ + $(Configuration)\XEngine_Plugin\ $(XEngine_Include);../../XEngine_ThirdPart/jsoncpp;$(IncludePath) $(XEngine_Lib64);$(LibraryPath) $(SolutionDir)$(Platform)\$(Configuration)\XEngine_Plugin\ + $(Platform)\$(Configuration)\XEngine_Plugin\ $(XEngine_Include);../../XEngine_ThirdPart/jsoncpp;$(IncludePath) $(XEngine_Lib64);$(LibraryPath) $(SolutionDir)$(Platform)\$(Configuration)\XEngine_Plugin\ + $(Platform)\$(Configuration)\XEngine_Plugin\ diff --git a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/ModulePlugin_Zodiac.vcxproj b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/ModulePlugin_Zodiac.vcxproj index b7dc06246a19ecd167c751a1dacb62fc2e298f18..4fc65cfe314748eb9705bcae34102ed8e95ed7dd 100644 --- a/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/ModulePlugin_Zodiac.vcxproj +++ b/XEngine_Source/XEngine_PluginModule/ModulePlugin_Zodiac/ModulePlugin_Zodiac.vcxproj @@ -73,7 +73,7 @@ true - $(Configuration)\ + $(Configuration)\XEngine_Plugin\ $(SolutionDir)$(Configuration)\XEngine_Plugin\ $(XEngine_Include);../../XEngine_ThirdPart/jsoncpp;$(IncludePath) $(XEngine_Lib32);$(LibraryPath) @@ -83,18 +83,21 @@ $(XEngine_Include);../../XEngine_ThirdPart/jsoncpp;$(IncludePath) $(XEngine_Lib32);$(LibraryPath) $(SolutionDir)$(Configuration)\XEngine_Plugin\ + $(Configuration)\XEngine_Plugin\ true $(XEngine_Include);../../XEngine_ThirdPart/jsoncpp;$(IncludePath) $(XEngine_Lib64);$(LibraryPath) $(SolutionDir)$(Platform)\$(Configuration)\XEngine_Plugin\ + $(Platform)\$(Configuration)\XEngine_Plugin\ false $(XEngine_Include);../../XEngine_ThirdPart/jsoncpp;$(IncludePath) $(XEngine_Lib64);$(LibraryPath) $(SolutionDir)$(Platform)\$(Configuration)\XEngine_Plugin\ + $(Platform)\$(Configuration)\XEngine_Plugin\ diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/Makefile b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/Makefile index f04406c1ababa0bd78beac23047087a3e2eab63f..fde611adfb5d9969ac01db3306963d8d846a13a1 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/Makefile +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/Makefile @@ -10,7 +10,7 @@ LIB = -lXEngine_BaseLib -lXEngine_Algorithm -lXEngine_Core -lXEngine_ManagePool LIBEX = -ldl -lpthread LOADSO = -Wl,-rpath=./,--disable-new-dtags LIBINCLUDE = XEngine_Configure.o XEngine_Network.o XEngine_HTTPTask.o XEngine_PluginTask.o XEngine_HttpApp.o \ - HTTPTask_IPInfo.o HTTPTask_IDCard.o HTTPTask_Phone.o HTTPTask_Bank.o HTTPTask_Language.o HTTPTask_Translation.o HTTPTask_P2PClient.o HTTPTask_OPtions.o HTTPTask_CDKey.o HTTPTask_Locker.o + HTTPTask_IPInfo.o HTTPTask_IDCard.o HTTPTask_Phone.o HTTPTask_Bank.o HTTPTask_Language.o HTTPTask_Translation.o HTTPTask_P2PClient.o HTTPTask_OPtions.o HTTPTask_CDKey.o HTTPTask_Locker.o HTTPTask_PostCode.o ifeq ($(shell uname),Darwin) LOADSO = @@ -62,6 +62,8 @@ HTTPTask_CDKey.o:./XEngine_HTTPTask/HTTPTask_CDKey.cpp $(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./XEngine_HTTPTask/HTTPTask_CDKey.cpp HTTPTask_Locker.o:./XEngine_HTTPTask/HTTPTask_Locker.cpp $(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./XEngine_HTTPTask/HTTPTask_Locker.cpp +HTTPTask_PostCode.o:./XEngine_HTTPTask/HTTPTask_PostCode.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./XEngine_HTTPTask/HTTPTask_PostCode.cpp XEngine_HttpApp.o:./XEngine_HttpApp.cpp $(CC) $(DEBUG) $(FLAGS) $(UNICODE) ./XEngine_HttpApp.cpp diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp index 2dca4e4a5e9b19a53924624a881ab92805c99c70..083f28dedba8d9e4d6aee7fbd69aa41d362cecda 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask.cpp @@ -101,6 +101,7 @@ BOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCTSTR //post LPCTSTR lpszParamP2PClient = _T("p2p"); LPCTSTR lpszParamCDKey = _T("cdkey"); + LPCTSTR lpszParamZIPCode = _T("zipcode"); memset(tszKey, '\0', sizeof(tszKey)); memset(tszValue, '\0', sizeof(tszValue)); @@ -178,6 +179,23 @@ BOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCTSTR XEngine_HTTPTask_CDKey(lpszClientAddr, lpszRVBuffer, nRVLen, nOPType); } } + else if (0 == _tcsnicmp(lpszParamZIPCode, tszValue, _tcslen(lpszParamZIPCode))) + { + //邮政信息:http://app.xyry.org:5501/api?function=zipcode¶ms1=0 + memset(tszKey, '\0', sizeof(tszKey)); + memset(tszValue, '\0', sizeof(tszValue)); + BaseLib_OperatorString_GetKeyValue(pptszList[1], "=", tszKey, tszValue); + if (0 != _tcsnicmp(lpszParamName, tszKey, _tcslen(lpszParamName))) + { + st_HDRParam.nHttpCode = 404; + RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam); + XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); + BaseLib_OperatorMemory_Free((XPPPMEM)&pptszList, nListCount); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); + return FALSE; + } + XEngine_HTTPTask_PostCode(lpszClientAddr, lpszRVBuffer, nRVLen, _ttoi(tszValue)); + } } else if (0 == _tcsnicmp(lpszMethodGet, pSt_HTTPParam->tszHttpMethod, _tcslen(lpszMethodGet))) { @@ -201,13 +219,7 @@ BOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCTSTR XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); return FALSE; } - TCHAR tszGetType[64]; - - memset(tszKey, '\0', sizeof(tszKey)); - memset(tszGetType, '\0', sizeof(tszGetType)); - - BaseLib_OperatorString_GetKeyValue(pptszList[2], "=", tszKey, tszGetType); - XEngine_HTTPTask_IPInfo(lpszClientAddr, tszValue, _ttoi(tszGetType)); + XEngine_HTTPTask_IPInfo(lpszClientAddr, tszValue); } else if (0 == _tcsnicmp(lpszParamIDCard, tszValue, _tcslen(lpszParamIDCard))) { @@ -224,13 +236,7 @@ BOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCTSTR XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); return FALSE; } - TCHAR tszGetType[64]; - - memset(tszKey, '\0', sizeof(tszKey)); - memset(tszGetType, '\0', sizeof(tszGetType)); - - BaseLib_OperatorString_GetKeyValue(pptszList[2], "=", tszKey, tszGetType); - XEngine_HTTPTask_IDCard(lpszClientAddr, tszValue, _ttoi(tszGetType)); + XEngine_HTTPTask_IDCard(lpszClientAddr, tszValue); } else if (0 == _tcsnicmp(lpszParamPhone, tszValue, _tcslen(lpszParamPhone))) { @@ -247,13 +253,7 @@ BOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCTSTR XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); return FALSE; } - TCHAR tszGetType[64]; - - memset(tszKey, '\0', sizeof(tszKey)); - memset(tszGetType, '\0', sizeof(tszGetType)); - - BaseLib_OperatorString_GetKeyValue(pptszList[2], "=", tszKey, tszGetType); - XEngine_HTTPTask_PhoneInfo(lpszClientAddr, tszValue, _ttoi(tszGetType)); + XEngine_HTTPTask_PhoneInfo(lpszClientAddr, tszValue); } else if (0 == _tcsnicmp(lpszParamBank, tszValue, _tcslen(lpszParamBank))) { @@ -270,24 +270,16 @@ BOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCTSTR XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,发送的URL请求参数不正确:%s"), lpszClientAddr, pSt_HTTPParam->tszHttpUri); return FALSE; } - TCHAR tszGetType[64]; - - memset(tszKey, '\0', sizeof(tszKey)); - memset(tszGetType, '\0', sizeof(tszGetType)); - - BaseLib_OperatorString_GetKeyValue(pptszList[2], "=", tszKey, tszGetType); - XEngine_HTTPTask_BankInfo(lpszClientAddr, tszValue, _ttoi(tszGetType)); + XEngine_HTTPTask_BankInfo(lpszClientAddr, tszValue); } else if (0 == _tcsnicmp(lpszParamLanguage, tszValue, _tcslen(lpszParamLanguage))) { //是不是语言转换 TCHAR tszCvtType[64]; - TCHAR tszGetType[64]; memset(tszCvtType, '\0', sizeof(tszCvtType)); memset(tszKey, '\0', sizeof(tszKey)); memset(tszValue, '\0', sizeof(tszValue)); - memset(tszGetType, '\0', sizeof(tszGetType)); BaseLib_OperatorString_GetKeyValue(pptszList[1], "=", tszKey, tszValue); if (0 != _tcsnicmp(lpszParamName, tszKey, _tcslen(lpszParamName))) @@ -301,20 +293,17 @@ BOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCTSTR } memset(tszKey, '\0', sizeof(tszKey)); - BaseLib_OperatorString_GetKeyValue(pptszList[2], "=", tszKey, tszGetType); - BaseLib_OperatorString_GetKeyValue(pptszList[3], "=", tszKey, tszCvtType); - XEngine_HTTPTask_Language(lpszClientAddr, tszValue, _ttoi(tszGetType), _ttoi(tszCvtType)); + BaseLib_OperatorString_GetKeyValue(pptszList[2], "=", tszKey, tszCvtType); + XEngine_HTTPTask_Language(lpszClientAddr, tszValue, _ttoi(tszCvtType)); } else if (0 == _tcsnicmp(lpszParamTranslation, tszValue, _tcslen(lpszParamTranslation))) { //是不是翻译 TCHAR tszCvtType[64]; - TCHAR tszGetType[64]; memset(tszCvtType, '\0', sizeof(tszCvtType)); memset(tszKey, '\0', sizeof(tszKey)); memset(tszValue, '\0', sizeof(tszValue)); - memset(tszGetType, '\0', sizeof(tszGetType)); BaseLib_OperatorString_GetKeyValue(pptszList[1], "=", tszKey, tszValue); if (0 != _tcsnicmp(lpszParamName, tszKey, _tcslen(lpszParamName))) @@ -328,9 +317,8 @@ BOOL XEngine_HTTPTask_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCTSTR } memset(tszKey, '\0', sizeof(tszKey)); - BaseLib_OperatorString_GetKeyValue(pptszList[2], "=", tszKey, tszGetType); - BaseLib_OperatorString_GetKeyValue(pptszList[3], "=", tszKey, tszCvtType); - XEngine_HTTPTask_Translation(lpszClientAddr, tszValue, _ttoi(tszGetType), _ttoi(tszCvtType)); + BaseLib_OperatorString_GetKeyValue(pptszList[2], "=", tszKey, tszCvtType); + XEngine_HTTPTask_Translation(lpszClientAddr, tszValue, _ttoi(tszCvtType)); } else if (0 == _tcsnicmp(lpszParamLocker, tszValue, _tcslen(lpszParamLocker))) { diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Bank.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Bank.cpp index ec8a23b7d1416d8fa59ea5aac89dac862c7141b0..7d47e61a6270b2335a471121eedc097c13470f91 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Bank.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Bank.cpp @@ -1,7 +1,7 @@ #include "../XEngine_Hdr.h" -BOOL XEngine_HTTPTask_BankInfo(LPCTSTR lpszClientAddr, LPCTSTR lpszBankNumber, int nType) +BOOL XEngine_HTTPTask_BankInfo(LPCTSTR lpszClientAddr, LPCTSTR lpszBankNumber) { int nMsgLen = 4096; int nPktLen = 4096; @@ -24,18 +24,11 @@ BOOL XEngine_HTTPTask_BankInfo(LPCTSTR lpszClientAddr, LPCTSTR lpszBankNumber, i _tcscpy(st_BankInfo.tszBankNumber, lpszBankNumber); _stprintf(tszUrlBuffer, st_ServiceConfig.st_XApi.tszBankUrl, lpszBankNumber); - APIHelp_HttpRequest_Get(tszUrlBuffer, &ptszBodyBuffer, &nBLen); + APIHelp_HttpRequest_Custom(_T("GET"), tszUrlBuffer, NULL, NULL, &ptszBodyBuffer, &nBLen); //解析JSON信息 if (!ModuleProtocol_Parse_Bank(ptszBodyBuffer, nBLen, &st_BankInfo)) { - if (0 == nType) - { - ModuleProtocol_Packet_BankQuery(tszPktBuffer, &nPktLen, NULL, 1001, _T("banknumber is corrent")); - } - else - { - ModuleProtocol_Packet_BankQuery2(tszPktBuffer, &nPktLen, NULL, 1001); - } + ModuleProtocol_Packet_BankQuery(tszPktBuffer, &nPktLen, NULL, 1001, _T("banknumber is corrent")); BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBodyBuffer); RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); @@ -46,28 +39,14 @@ BOOL XEngine_HTTPTask_BankInfo(LPCTSTR lpszClientAddr, LPCTSTR lpszBankNumber, i //查询对应名称 if (!ModuleDatabase_Bank_Query(&st_BankInfo)) { - if (0 == nType) - { - ModuleProtocol_Packet_BankQuery(tszPktBuffer, &nPktLen, NULL, 1010, _T("not found")); - } - else - { - ModuleProtocol_Packet_BankQuery2(tszPktBuffer, &nPktLen, NULL, 1010); - } + ModuleProtocol_Packet_BankQuery(tszPktBuffer, &nPktLen, NULL, 1010, _T("not found")); RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的银行卡信息没有找到:%s"), lpszClientAddr, lpszBankNumber); return FALSE; } //打包发送 - if (0 == nType) - { - ModuleProtocol_Packet_BankQuery(tszPktBuffer, &nPktLen, &st_BankInfo); - } - else - { - ModuleProtocol_Packet_BankQuery2(tszPktBuffer, &nPktLen, &st_BankInfo); - } + ModuleProtocol_Packet_BankQuery(tszPktBuffer, &nPktLen, &st_BankInfo); RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,发送银行卡信息获取请求给服务器,查询号码:%s"), lpszClientAddr, lpszBankNumber); diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Bank.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Bank.h index af8504797ae620ca845770401800cdf657edbecf..994afd97b115939219a0f2b2474fd3b0b4f9b8e1 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Bank.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Bank.h @@ -1,3 +1,3 @@ #pragma once -BOOL XEngine_HTTPTask_BankInfo(LPCTSTR lpszClientAddr, LPCTSTR lpszBankNumber, int nType); \ No newline at end of file +BOOL XEngine_HTTPTask_BankInfo(LPCTSTR lpszClientAddr, LPCTSTR lpszBankNumber); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_IDCard.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_IDCard.cpp index a4a6d2972266cb1eb49405195dbeeb6ab258b85b..7687f6411b3ee702c1836116c6f28056ba5560f4 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_IDCard.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_IDCard.cpp @@ -1,6 +1,6 @@ #include "../XEngine_Hdr.h" -BOOL XEngine_HTTPTask_IDCard(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int nType) +BOOL XEngine_HTTPTask_IDCard(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer) { int nMsgLen = 4096; int nPktLen = 4096; @@ -21,14 +21,7 @@ BOOL XEngine_HTTPTask_IDCard(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int if (!ModuleProtocol_Parse_IDCard(lpszMsgBuffer, &st_IDCardInfo)) { - if (0 == nType) - { - ModuleProtocol_Packet_IDQuery(tszPktBuffer, &nPktLen, NULL, NULL, 1001, _T("idnumber is incorrent")); - } - else - { - ModuleProtocol_Packet_IDQuery2(tszPktBuffer, &nPktLen, NULL, NULL, 1001); - } + ModuleProtocol_Packet_IDQuery(tszPktBuffer, &nPktLen, NULL, NULL, 1001, _T("idnumber is incorrent")); RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的身份证编号不正确:%s"), lpszClientAddr, lpszMsgBuffer); @@ -37,14 +30,7 @@ BOOL XEngine_HTTPTask_IDCard(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int //验证身份证是否正确 if (!ModuleHelp_IDCard_CheckBirth(&st_IDCardInfo)) { - if (0 == nType) - { - ModuleProtocol_Packet_IDQuery(tszPktBuffer, &nPktLen, NULL, NULL, 1002, _T("idnumber is incorrent")); - } - else - { - ModuleProtocol_Packet_IDQuery2(tszPktBuffer, &nPktLen, NULL, NULL, 1002); - } + ModuleProtocol_Packet_IDQuery(tszPktBuffer, &nPktLen, NULL, NULL, 1002, _T("idnumber is incorrent")); RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的身份证验证生日失败:%s"), lpszClientAddr, lpszMsgBuffer); @@ -52,28 +38,14 @@ BOOL XEngine_HTTPTask_IDCard(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int } if (!ModuleHelp_IDCard_CheckSum(&st_IDCardInfo)) { - if (0 == nType) - { - ModuleProtocol_Packet_IDQuery(tszPktBuffer, &nPktLen, NULL, NULL, 1010, _T("not found")); - } - else - { - ModuleProtocol_Packet_IDQuery2(tszPktBuffer, &nPktLen, NULL, NULL, 1010); - } + ModuleProtocol_Packet_IDQuery(tszPktBuffer, &nPktLen, NULL, NULL, 1010, _T("not found")); RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的身份证验证校验码失败:%s"), lpszClientAddr, lpszMsgBuffer); return FALSE; } ModuleDatabase_IDCard_QueryRegion(&st_IDRegion, &st_IDCardInfo); - if (0 == nType) - { - ModuleProtocol_Packet_IDQuery(tszPktBuffer, &nPktLen, &st_IDCardInfo, &st_IDRegion); - } - else - { - ModuleProtocol_Packet_IDQuery2(tszPktBuffer, &nPktLen, &st_IDCardInfo, &st_IDRegion); - } + ModuleProtocol_Packet_IDQuery(tszPktBuffer, &nPktLen, &st_IDCardInfo, &st_IDRegion); RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求身份证号码验证与信息查询成功,号码:%s"), lpszClientAddr, lpszMsgBuffer); diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_IDCard.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_IDCard.h index ba0cbecf93baab1f07da3dd79f14c4845f62a9e3..51f9ee3a490cd6a53e4e461d5628131afb1d8f6c 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_IDCard.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_IDCard.h @@ -1,3 +1,3 @@ #pragma once -BOOL XEngine_HTTPTask_IDCard(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int nType); \ No newline at end of file +BOOL XEngine_HTTPTask_IDCard(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_IPInfo.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_IPInfo.cpp index e1029f8350147b1a3f4043b8c92f4851f783a33d..eecc72a661c30ef96537475bb341310dc9a67130 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_IPInfo.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_IPInfo.cpp @@ -1,7 +1,7 @@ #include "../XEngine_Hdr.h" -BOOL XEngine_HTTPTask_IPInfo(LPCTSTR lpszClientAddr, LPCTSTR lpszIPAddr, int nType) +BOOL XEngine_HTTPTask_IPInfo(LPCTSTR lpszClientAddr, LPCTSTR lpszIPAddr) { int nMsgLen = 4096; int nPktLen = 4096; @@ -24,14 +24,7 @@ BOOL XEngine_HTTPTask_IPInfo(LPCTSTR lpszClientAddr, LPCTSTR lpszIPAddr, int nTy { if (!ModuleDatabase_IPInfo_IPV4Query(&st_IPAddrInfo, lpszIPAddr)) { - if (0 == nType) - { - ModuleProtocol_Packet_IPQuery(tszPktBuffer, &nPktLen, NULL, 1001, _T("ip is incorrent")); - } - else - { - ModuleProtocol_Packet_IPQuery2(tszPktBuffer, &nPktLen, NULL, 1001); - } + ModuleProtocol_Packet_IPQuery(tszPktBuffer, &nPktLen, NULL, 1001, _T("ip is incorrent")); RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的IP地址不正确:%s"), lpszClientAddr, lpszIPAddr); @@ -42,14 +35,7 @@ BOOL XEngine_HTTPTask_IPInfo(LPCTSTR lpszClientAddr, LPCTSTR lpszIPAddr, int nTy { if (!ModuleDatabase_IPInfo_IPV6Query(&st_IPAddrInfo, lpszIPAddr)) { - if (0 == nType) - { - ModuleProtocol_Packet_IPQuery(tszPktBuffer, &nPktLen, NULL, 1010, _T("not found")); - } - else - { - ModuleProtocol_Packet_IPQuery2(tszPktBuffer, &nPktLen, NULL, 1010); - } + ModuleProtocol_Packet_IPQuery(tszPktBuffer, &nPktLen, NULL, 1010, _T("not found")); RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的IP地址不正确:%s"), lpszClientAddr, lpszIPAddr); @@ -57,14 +43,7 @@ BOOL XEngine_HTTPTask_IPInfo(LPCTSTR lpszClientAddr, LPCTSTR lpszIPAddr, int nTy } } //通过此函数来打包成我们要发送的数据,就是打包成一条标准的HTTP协议 - if (0 == nType) - { - ModuleProtocol_Packet_IPQuery(tszPktBuffer, &nPktLen, &st_IPAddrInfo); - } - else - { - ModuleProtocol_Packet_IPQuery2(tszPktBuffer, &nPktLen, &st_IPAddrInfo); - } + ModuleProtocol_Packet_IPQuery(tszPktBuffer, &nPktLen, &st_IPAddrInfo); RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); //打包完毕后才能发送给客户端 XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_IPInfo.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_IPInfo.h index 127cdbd77a54fe6117d80f90fff1c250da6bd734..ae355850dd63b010867f05505bedc9d0a3f3ac2d 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_IPInfo.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_IPInfo.h @@ -1,3 +1,3 @@ #pragma once -BOOL XEngine_HTTPTask_IPInfo(LPCTSTR lpszClientAddr, LPCTSTR lpszIPAddr, int nType); \ No newline at end of file +BOOL XEngine_HTTPTask_IPInfo(LPCTSTR lpszClientAddr, LPCTSTR lpszIPAddr); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Language.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Language.cpp index eb770e162d674ba940c362655765a85e64d3b4a7..e0211030c0fef70a39081347725530b46132cfc3 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Language.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Language.cpp @@ -1,7 +1,7 @@ #include "../XEngine_Hdr.h" -BOOL XEngine_HTTPTask_Language(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int nReplyType, int nConvertType) +BOOL XEngine_HTTPTask_Language(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int nConvertType) { int nMsgLen = 4096; int nPktLen = 4096; @@ -77,14 +77,7 @@ BOOL XEngine_HTTPTask_Language(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, in ModuleHelp_Language_ConvertZh(st_OPenccConfig.tszFiletw2t, st_LanguageInfo.tszSourceStr, st_LanguageInfo.tszDestStr); } //打包发送 - if (0 == nReplyType) - { - ModuleProtocol_Packet_LanguageQuery(tszPktBuffer, &nPktLen, &st_LanguageInfo); - } - else - { - ModuleProtocol_Packet_LanguageQuery2(tszPktBuffer, &nPktLen, &st_LanguageInfo); - } + ModuleProtocol_Packet_LanguageQuery(tszPktBuffer, &nPktLen, &st_LanguageInfo); RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求语言转换成功,原始语言:%s,目标语言:%s"), lpszClientAddr, st_LanguageInfo.tszSourceStr, st_LanguageInfo.tszDestStr); diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Language.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Language.h index af59a40a529e8626bd29a7f46bcd0022acd73b50..efc91f9e1e099db46d4576f6e907ea940c863593 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Language.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Language.h @@ -1,3 +1,3 @@ #pragma once -BOOL XEngine_HTTPTask_Language(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int nReplyType, int nConvertType); \ No newline at end of file +BOOL XEngine_HTTPTask_Language(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int nConvertType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Phone.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Phone.cpp index a9fe6128c4e88d2e6e09cc184d99769945c7bcef..f3a3234f3b7b8578517b1c8dd8911a8f2513e424 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Phone.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Phone.cpp @@ -1,7 +1,7 @@ #include "../XEngine_Hdr.h" -BOOL XEngine_HTTPTask_PhoneInfo(LPCTSTR lpszClientAddr, LPCTSTR lpszPhoneNumber, int nType) +BOOL XEngine_HTTPTask_PhoneInfo(LPCTSTR lpszClientAddr, LPCTSTR lpszPhoneNumber) { int nMsgLen = 4096; int nPktLen = 4096; @@ -21,28 +21,14 @@ BOOL XEngine_HTTPTask_PhoneInfo(LPCTSTR lpszClientAddr, LPCTSTR lpszPhoneNumber, st_PhoneInfo.nPhoneNumber = _ttoi64(lpszPhoneNumber); if (!ModuleDatabase_Phone_Query(lpszPhoneNumber, &st_PhoneInfo)) { - if (0 == nType) - { - ModuleProtocol_Packet_PhoneQuery(tszPktBuffer, &nPktLen, NULL, 1010, _T("not found")); - } - else - { - ModuleProtocol_Packet_PhoneQuery2(tszPktBuffer, &nPktLen, NULL, 1010); - } + ModuleProtocol_Packet_PhoneQuery(tszPktBuffer, &nPktLen, NULL, 1010, _T("not found")); RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求的电话号码没有找到:%s"), lpszClientAddr, lpszPhoneNumber); return FALSE; } //打包发送 - if (0 == nType) - { - ModuleProtocol_Packet_PhoneQuery(tszPktBuffer, &nPktLen, &st_PhoneInfo); - } - else - { - ModuleProtocol_Packet_PhoneQuery2(tszPktBuffer, &nPktLen, &st_PhoneInfo); - } + ModuleProtocol_Packet_PhoneQuery(tszPktBuffer, &nPktLen, &st_PhoneInfo); RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,发送电话信息获取请求给服务器,查询号码:%s"), lpszClientAddr, lpszPhoneNumber); diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Phone.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Phone.h index 9a25ff53b11b703f1e6ee7a018b3bd762b8e0a04..2b955c85be9a78fdf6726a16c7dc2fbbc7162b9e 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Phone.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Phone.h @@ -1,3 +1,3 @@ #pragma once -BOOL XEngine_HTTPTask_PhoneInfo(LPCTSTR lpszClientAddr, LPCTSTR lpszPhoneNumber, int nType); \ No newline at end of file +BOOL XEngine_HTTPTask_PhoneInfo(LPCTSTR lpszClientAddr, LPCTSTR lpszPhoneNumber); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_PostCode.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_PostCode.cpp new file mode 100644 index 0000000000000000000000000000000000000000..a83e8501eba5905ac4f074161ef8c7be08b7c7cf --- /dev/null +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_PostCode.cpp @@ -0,0 +1,35 @@ +#include "../XEngine_Hdr.h" + +BOOL XEngine_HTTPTask_PostCode(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int nMsgLen, int nType) +{ + int nSDLen = 4096; + int nRVLen = 4096; + TCHAR tszSDBuffer[4096]; + TCHAR tszRVBuffer[4096]; + XENGINE_ZIPINFO st_ZIPInfo; + RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam; //发送给客户端的参数 + + memset(tszSDBuffer, '\0', sizeof(tszSDBuffer)); + memset(tszRVBuffer, '\0', sizeof(tszRVBuffer)); + memset(&st_ZIPInfo, '\0', sizeof(XENGINE_ZIPINFO)); + memset(&st_HDRParam, '\0', sizeof(RFCCOMPONENTS_HTTP_HDRPARAM)); + + st_HDRParam.nHttpCode = 200; //HTTP CODE码 + st_HDRParam.bIsClose = TRUE; //收到回复后就关闭 + + ModuleProtocol_Parse_ZIPCode(lpszMsgBuffer, nMsgLen, &st_ZIPInfo); + if (0 == nType) + { + ModuleDatabase_ZIPCode_QueryZIPCode(&st_ZIPInfo); + } + else + { + ModuleDatabase_ZIPCode_QueryName(&st_ZIPInfo); + } + + ModuleProtocol_Packet_ZIPCode(tszRVBuffer, &nRVLen, &st_ZIPInfo); + RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen); + XEngine_Network_Send(lpszClientAddr, tszSDBuffer, nSDLen); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("HTTP客户端:%s,请求查询邮政编码地址信息查询成功,查询邮编;%d,查询地址:%s"), lpszClientAddr, st_ZIPInfo.nZipCode, st_ZIPInfo.tszCounty); + return TRUE; +} \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_PostCode.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_PostCode.h new file mode 100644 index 0000000000000000000000000000000000000000..fb06c83b5a9b9ed7b6c4ba967642b78524637ef8 --- /dev/null +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_PostCode.h @@ -0,0 +1,3 @@ +#pragma once + +BOOL XEngine_HTTPTask_PostCode(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int nMsgLen, int nType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Translation.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Translation.cpp index 0086f66a956a341b2b712bb54d6dcd212390f012..6d3027e9cf54dcb8c0992c23f8ebfb13497c05a5 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Translation.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Translation.cpp @@ -1,6 +1,6 @@ #include "../XEngine_Hdr.h" -BOOL XEngine_HTTPTask_Translation(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int nReplyType, int nConvertType) +BOOL XEngine_HTTPTask_Translation(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int nConvertType) { int nMsgLen = 4096; int nPktLen = 4096; @@ -27,14 +27,7 @@ BOOL XEngine_HTTPTask_Translation(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, //转换类型 if (!ModuleHelp_Translation_Convert((ENUM_XENGINE_APISERVICE_TRANSLATION_TYPE)nConvertType, tszTypeBuffer)) { - if (0 == nReplyType) - { - ModuleProtocol_Packet_LanguageQuery(tszPktBuffer, &nPktLen, NULL, 1001, _T("type not support")); - } - else - { - ModuleProtocol_Packet_LanguageQuery2(tszPktBuffer, &nPktLen, NULL, 1001); - } + ModuleProtocol_Packet_LanguageQuery(tszPktBuffer, &nPktLen, NULL, 1001, _T("type not support")); BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBodyBuffer); RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); @@ -42,18 +35,11 @@ BOOL XEngine_HTTPTask_Translation(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, return FALSE; } _stprintf(tszUrlBuffer, st_ServiceConfig.st_XApi.tszTranslationUrl, tszTypeBuffer, lpszMsgBuffer); - APIHelp_HttpRequest_Get(tszUrlBuffer, &ptszBodyBuffer, &nBLen); + APIHelp_HttpRequest_Custom(_T("GET"), tszUrlBuffer, NULL, NULL, &ptszBodyBuffer, &nBLen); //解析数据 if (!ModuleProtocol_Parse_Translation(ptszBodyBuffer, nBLen, &st_LanguageInfo)) { - if (0 == nReplyType) - { - ModuleProtocol_Packet_LanguageQuery(tszPktBuffer, &nPktLen, NULL, 1002, _T("translation failed")); - } - else - { - ModuleProtocol_Packet_LanguageQuery2(tszPktBuffer, &nPktLen, NULL, 1002); - } + ModuleProtocol_Packet_LanguageQuery(tszPktBuffer, &nPktLen, NULL, 1002, _T("translation failed")); BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBodyBuffer); RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); @@ -61,14 +47,7 @@ BOOL XEngine_HTTPTask_Translation(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, return FALSE; } //打包发送 - if (0 == nReplyType) - { - ModuleProtocol_Packet_LanguageQuery(tszPktBuffer, &nPktLen, &st_LanguageInfo); - } - else - { - ModuleProtocol_Packet_LanguageQuery2(tszPktBuffer, &nPktLen, &st_LanguageInfo); - } + ModuleProtocol_Packet_LanguageQuery(tszPktBuffer, &nPktLen, &st_LanguageInfo); RfcComponents_HttpServer_SendMsgEx(xhHTTPPacket, tszMsgBuffer, &nMsgLen, &st_HDRParam, tszPktBuffer, nPktLen); XEngine_Network_Send(lpszClientAddr, tszMsgBuffer, nMsgLen); BaseLib_OperatorMemory_FreeCStyle((XPPMEM)&ptszBodyBuffer); diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Translation.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Translation.h index 7b9a2916ff59f32222ffb0338f52bc1c462697d3..322fa84e2ac975d7846acb982a47a7e4443376c7 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Translation.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HTTPTask/HTTPTask_Translation.h @@ -1,3 +1,3 @@ #pragma once -BOOL XEngine_HTTPTask_Translation(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int nReplyType, int nConvertType); \ No newline at end of file +BOOL XEngine_HTTPTask_Translation(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int nConvertType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Hdr.h b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Hdr.h index 54288953a1748694696194f77a39e39ab84fcd40..76aceadfd8126a5b522e2b464c9e3976f3b3922f 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Hdr.h +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_Hdr.h @@ -68,6 +68,7 @@ using namespace std; #include "XEngine_HTTPTask/HTTPTask_OPtions.h" #include "XEngine_HTTPTask/HTTPTask_P2PClient.h" #include "XEngine_HTTPTask/HTTPTask_CDKey.h" +#include "XEngine_HTTPTask/HTTPTask_PostCode.h" /******************************************************************** // Created: 2022/01/20 14:42:06 // File Name: D:\XEngine_ServiceApp\XEngine_Source\XEngine_ServiceApp\XEngine_HttpApp\XEngine_Hdr.h @@ -85,7 +86,7 @@ extern XLOG xhLog; extern XHANDLE xhHTTPSocket; extern XHANDLE xhHTTPHeart; extern XHANDLE xhHTTPPacket; -extern XNETHANDLE xhHTTPPool; +extern XHANDLE xhHTTPPool; //配置文件 extern XENGINE_SERVICECONFIG st_ServiceConfig; extern XENGINE_OPENCCCONFIG st_OPenccConfig; diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp index 8ee33d924565bba46acc73c9c5e462c1ca06052a..b0007f2d6b31bb25fe7d7e646df6202db9083bf3 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.cpp @@ -16,7 +16,7 @@ XLOG xhLog = NULL; XHANDLE xhHTTPSocket = NULL; XHANDLE xhHTTPHeart = NULL; XHANDLE xhHTTPPacket = NULL; -XNETHANDLE xhHTTPPool = 0; +XHANDLE xhHTTPPool = 0; //配置文件 XENGINE_SERVICECONFIG st_ServiceConfig; XENGINE_OPENCCCONFIG st_OPenccConfig; @@ -39,6 +39,7 @@ void ServiceApp_Stop(int signo) ModuleDatabase_IDCard_Destory(); ModuleDatabase_Phone_Destory(); ModuleDatabase_Bank_Destory(); + ModuleDatabase_ZIPCode_Destory(); //销毁其他 ModulePlugin_Core_Destroy(); ModuleHelp_P2PClient_Destory(); @@ -174,6 +175,13 @@ int main(int argc, char** argv) goto XENGINE_SERVICEAPP_EXIT; } XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,初始化银行卡数据库成功,地址:%s"), st_ServiceConfig.st_XApi.tszBankData); + + if (!ModuleDatabase_ZIPCode_Init(st_ServiceConfig.st_XApi.tszZIPCodeData)) + { + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,初始化行政邮编信息数据库失败,错误:%lX"), ModuleDB_GetLastError()); + goto XENGINE_SERVICEAPP_EXIT; + } + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,初始化行政邮编信息数据库成功,地址:%s"), st_ServiceConfig.st_XApi.tszZIPCodeData); //启动HTTP服务相关代码 if (st_ServiceConfig.nHttpPort > 0) { @@ -220,7 +228,8 @@ int main(int argc, char** argv) ppSt_ListHTTPParam[i]->lParam = pInt_Pos; ppSt_ListHTTPParam[i]->fpCall_ThreadsTask = XEngine_HTTPTask_Thread; } - if (!ManagePool_Thread_NQCreate(&xhHTTPPool, &ppSt_ListHTTPParam, st_ServiceConfig.st_XMax.nHTTPThread)) + xhHTTPPool = ManagePool_Thread_NQCreate(&ppSt_ListHTTPParam, st_ServiceConfig.st_XMax.nHTTPThread); + if (NULL == xhHTTPPool) { XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,启动HTTP线程池服务失败,错误:%lX"), ManagePool_GetLastError()); goto XENGINE_SERVICEAPP_EXIT; @@ -292,6 +301,7 @@ XENGINE_SERVICEAPP_EXIT: ModuleDatabase_IDCard_Destory(); ModuleDatabase_Phone_Destory(); ModuleDatabase_Bank_Destory(); + ModuleDatabase_ZIPCode_Destory(); //销毁其他 ModulePlugin_Core_Destroy(); ModuleHelp_P2PClient_Destory(); diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj index 5618d0c45a903cd9108236ae2da69c6fee6ce247..6bab03221c3a68948c98dc214ee3a4ef5f65a588 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj @@ -165,6 +165,7 @@ + @@ -182,6 +183,7 @@ + diff --git a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj.filters b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj.filters index 5be50f7b3c985e5679fde6f8aaae02d6339135ac..1a8059929a2939f0f8d6e5af471d525fa2849797 100644 --- a/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj.filters +++ b/XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_HttpApp.vcxproj.filters @@ -66,6 +66,9 @@ 源文件\XEngine_HTTPTask + + 源文件\XEngine_HTTPTask + @@ -113,5 +116,8 @@ 头文件\XEngine_HTTPTask + + 头文件\XEngine_HTTPTask + \ No newline at end of file diff --git a/XEngine_Source/XEngine_UserProtocol.h b/XEngine_Source/XEngine_UserProtocol.h index e0084b66d6461b6b3b404deeaf95e8f114be1c9b..a114337caf4f517894361bc09ba12a556d9449e5 100644 --- a/XEngine_Source/XEngine_UserProtocol.h +++ b/XEngine_Source/XEngine_UserProtocol.h @@ -182,4 +182,17 @@ typedef struct tag_XEngine_P2XPIO_Protocol int nDestPort; //要连接的端口 BOOL bIsTcp; //连接类型TCP,否则为UDP }XENGINE_P2XPIO_PROTOCOL, * LPXENGINE_P2XPIO_PROTOCOL; +//邮编信息 +typedef struct +{ + TCHAR tszProvincer[64]; //省/自治区/直辖市 + TCHAR tszCity[64]; //市/区 + TCHAR tszCounty[64]; //县 + TCHAR tszPinYin[64]; //拼音 + double dlLng; //经度 + double dlLat; //纬度 + int nZipCode; //邮编 + int nAreaCode; //区号 + int nLevel; //行政级别 +}XENGINE_ZIPINFO; #pragma pack(pop) \ No newline at end of file