diff --git a/XEngine_Release/XEngine_Config/XEngine_Config.json b/XEngine_Release/XEngine_Config/XEngine_Config.json
index 977c10c4c1ebd0e6ea58f0b2a7a630f71cba7bad..12cffee742f2019fee0b8c15c582a943dc8cdf8c 100644
--- a/XEngine_Release/XEngine_Config/XEngine_Config.json
+++ b/XEngine_Release/XEngine_Config/XEngine_Config.json
@@ -1,57 +1,64 @@
{
- "nTCPPort":5300,
- "nWSPort":5301,
- "nHTTPPort":5302,
- "bDeamon":false,
- "bTimeNotify":false,
- "XMax":{
- "nMaxClient":10000,
- "nMaxQueue":10000,
- "nIOThread":2,
- "nTCPThread":2,
- "nWSThread":2,
- "nHTTPThread":2
+ "nTCPPort": 5300,
+ "nWSPort": 5301,
+ "nHTTPPort": 5302,
+ "bDeamon": false,
+ "bTimeNotify": false,
+ "bDB": false,
+ "XMax": {
+ "nMaxClient": 10000,
+ "nMaxQueue": 10000,
+ "nIOThread": 2,
+ "nTCPThread": 2,
+ "nWSThread": 2,
+ "nHTTPThread": 2
+ },
+ "XVerification": {
+ "nTokenTimeout": 3600,
+ "nDynamicTimeout": 30,
+ "nVerTime": 5,
+ "nVerMode": 2,
+ "nTryTime": 30,
+ "nTryMode": 1
+ },
+ "XLogin": {
+ "bHTTPAuth": false,
+ "bPassAuth": false,
+ "nMultiMode": 0,
+ "st_PassUrl": {
+ "tszPassLogin": "http://127.0.0.1:5303/auth/pass/login",
+ "tszPassLogout": "http://127.0.0.1:5303/auth/pass/logout",
+ "tszPassTimeout": "http://127.0.0.1:5303/auth/pass/timeout"
},
- "XVerification":{
- "nTokenTimeout":3600,
- "nDynamicTimeout":30,
- "nVerTime":5,
- "nVerMode":2,
- "nTryTime":30,
- "nTryMode":1
- },
- "XLogin":{
- "bHTTPAuth":false,
- "bPassAuth":false,
- "nMultiMode":0,
- "st_PassUrl":{
- "tszPassLogin":"http://127.0.0.1:5303/auth/pass/login",
- "tszPassLogout":"http://127.0.0.1:5303/auth/pass/logout",
- "tszPassTimeout":"http://127.0.0.1:5303/auth/pass/timeout"
- },
- "st_MulitLogin":{
- "bSecond":true,
- "bTime":true,
- "bDay":false,
- "bCustom":false
- }
- },
- "XCrypto":{
- "bEnable":false,
- "nPass":123123
- },
- "XSQL":{
- "tszSQLFile":"./XEngine_DataBase/SQL_User.db"
- },
- "XLog":{
- "tszLogFile":"./XEngine_XLog/XEngine_Authorize.log",
- "MaxSize":1024000,
- "MaxCount":10,
- "LogLeave":32
- },
- "XReport":{
- "bEnable":true,
- "tszServiceName":"XEngine_Authorize",
- "tszAPIUrl":"http://app.xyry.org:5501/api?function=machine"
+ "st_MulitLogin": {
+ "bSecond": true,
+ "bTime": true,
+ "bDay": false,
+ "bCustom": false
}
+ },
+ "XCrypto": {
+ "bEnable": false,
+ "nPass": 123123
+ },
+ "XSQL": {
+ "tszSQLFile": "./XEngine_DataBase/SQL_User.db"
+ },
+ "XSql": {
+ "SQLAddr": "127.0.0.1",
+ "SQLPort": 3306,
+ "SQLUser": "root",
+ "SQLPass": "love270090"
+ },
+ "XLog": {
+ "tszLogFile": "./XEngine_XLog/XEngine_Authorize.log",
+ "MaxSize": 1024000,
+ "MaxCount": 10,
+ "LogLeave": 32
+ },
+ "XReport": {
+ "bEnable": true,
+ "tszServiceName": "XEngine_Authorize",
+ "tszAPIUrl": "http://app.xyry.org:5501/api?function=machine"
+ }
}
\ No newline at end of file
diff --git a/XEngine_SQL/xengine_authorize.sql b/XEngine_SQL/xengine_authorize.sql
new file mode 100644
index 0000000000000000000000000000000000000000..af9c9a7e5ad5867fbed87783b4b5524902f68fea
--- /dev/null
+++ b/XEngine_SQL/xengine_authorize.sql
@@ -0,0 +1,159 @@
+/*
+ Navicat Premium Data Transfer
+
+ Source Server : 本地mysql
+ Source Server Type : MySQL
+ Source Server Version : 50726
+ Source Host : localhost:3306
+ Source Schema : xengine_authorize
+
+ Target Server Type : MySQL
+ Target Server Version : 50726
+ File Encoding : 65001
+
+ Date: 04/07/2024 20:51:48
+*/
+
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for authorize_announcement
+-- ----------------------------
+DROP TABLE IF EXISTS `authorize_announcement`;
+CREATE TABLE `authorize_announcement` (
+ `ID` int(11) NOT NULL AUTO_INCREMENT,
+ `tszContext` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL,
+ `tszCreateTime` date NULL DEFAULT NULL,
+ PRIMARY KEY (`ID`) USING BTREE
+) ENGINE = MyISAM AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of authorize_announcement
+-- ----------------------------
+INSERT INTO `authorize_announcement` VALUES (5, 'test0003', '2024-06-20');
+
+-- ----------------------------
+-- Table structure for authorize_bannedaddr
+-- ----------------------------
+DROP TABLE IF EXISTS `authorize_bannedaddr`;
+CREATE TABLE `authorize_bannedaddr` (
+ `ID` int(11) NOT NULL AUTO_INCREMENT,
+ `bEnable` tinyint(4) NOT NULL,
+ `tszIPAddr` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
+ `tszLeftTime` date NULL DEFAULT NULL,
+ `tszCreateTime` date NOT NULL,
+ PRIMARY KEY (`ID`) USING BTREE
+) ENGINE = MyISAM AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of authorize_bannedaddr
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for authorize_banneduser
+-- ----------------------------
+DROP TABLE IF EXISTS `authorize_banneduser`;
+CREATE TABLE `authorize_banneduser` (
+ `ID` int(11) NOT NULL AUTO_INCREMENT,
+ `bEnable` tinyint(1) NOT NULL,
+ `tszUserName` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
+ `tszLeftTime` date NULL DEFAULT NULL,
+ `tszCreateTime` date NOT NULL,
+ PRIMARY KEY (`ID`) USING BTREE
+) ENGINE = MyISAM AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of authorize_banneduser
+-- ----------------------------
+INSERT INTO `authorize_banneduser` VALUES (3, 0, '123123aa', '2023-11-01', '2024-06-26');
+
+
+-- ----------------------------
+-- Table structure for authorize_serial
+-- ----------------------------
+DROP TABLE IF EXISTS `authorize_serial`;
+CREATE TABLE `authorize_serial` (
+ `ID` int(11) NOT NULL AUTO_INCREMENT,
+ `UserName` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL,
+ `SerialNumber` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL,
+ `MaxTime` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL,
+ `CardSerialType` int(11) NULL DEFAULT NULL,
+ `bIsUsed` tinyint(1) NULL DEFAULT NULL,
+ `CreateTime` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
+ PRIMARY KEY (`ID`) USING BTREE
+) ENGINE = MyISAM AUTO_INCREMENT = 17 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of authorize_serial
+-- ----------------------------
+INSERT INTO `authorize_serial` VALUES (1, 'NOT', 'XAUTH-XYRYS-MAR60-54RRO-FZRUA-26014-HLL22', '60', 1, 0, '2024-06-18 23:22:35');
+INSERT INTO `authorize_serial` VALUES (2, 'NOT', 'XAUTH-XYRYS-SGL60-44NHI-IGFGX-40652-MRH79', '60', 1, 0, '2024-06-18 23:22:35');
+INSERT INTO `authorize_serial` VALUES (3, 'NOT', 'XAUTH-XYRYS-WGP60-49HLJ-JDACQ-33453-OUZ13', '60', 1, 0, '2024-06-18 23:22:35');
+INSERT INTO `authorize_serial` VALUES (5, 'NOT', 'XAUTH-XYRYS-QIV60-75CBB-ERYVY-29360-ODF41', '60', 1, 0, '2024-06-18 23:22:35');
+INSERT INTO `authorize_serial` VALUES (6, 'NOT', 'XAUTH-XYRYS-JDF60-92JNY-OGPWV-37503-IBN97', '60', 1, 0, '2024-06-18 23:22:35');
+
+-- ----------------------------
+-- Table structure for authorize_tempver
+-- ----------------------------
+DROP TABLE IF EXISTS `authorize_tempver`;
+CREATE TABLE `authorize_tempver` (
+ `ID` int(11) NOT NULL AUTO_INCREMENT,
+ `tszVSerial` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
+ `nVMode` int(11) NOT NULL,
+ `nVTime` int(11) NOT NULL,
+ `nLTime` int(11) NOT NULL,
+ `CreateTime` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
+ PRIMARY KEY (`ID`) USING BTREE
+) ENGINE = MyISAM AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of authorize_tempver
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for authorize_user
+-- ----------------------------
+DROP TABLE IF EXISTS `authorize_user`;
+CREATE TABLE `authorize_user` (
+ `ID` int(11) NOT NULL AUTO_INCREMENT,
+ `UserName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户名',
+ `Password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '密码',
+ `LeftTime` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '剩余时间',
+ `EmailAddr` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '电子邮件',
+ `HardCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '设备SN',
+ `CardSerialType` int(11) NOT NULL,
+ `PhoneNumber` bigint(20) NOT NULL COMMENT '电话号码',
+ `IDCard` bigint(20) NOT NULL COMMENT '身份证',
+ `nUserLevel` int(11) NOT NULL COMMENT '用户等级,数字越小越高',
+ `UPTime` datetime NULL DEFAULT NULL COMMENT '登录时间',
+ `CreateTime` datetime NOT NULL COMMENT '注册时间',
+ PRIMARY KEY (`ID`) USING BTREE
+) ENGINE = MyISAM AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of authorize_user
+-- ----------------------------
+INSERT INTO `authorize_user` VALUES (1, 'admin', '123123aa', '0', '486179@qq.com', 'DAFD2A2DAD', 1, 13699430000, 511025198881118888, 0, '2022-09-21 15:06:45', '2022-09-21 15:06:45');
+INSERT INTO `authorize_user` VALUES (2, 'test001', '123123', '600', '123@qq.com', 'FD52FD2TYH7', 1, 13444444444, 5111222333, 5, '2024-06-26 02:48:37', '2024-06-19 03:05:50');
+INSERT INTO `authorize_user` VALUES (4, '123123aa', '123123', '59884582', '486179@qq.com', '2FDWAD02JD2091', 1, 1366666666, 511025111111111111, 10, '2024-06-27 23:31:11', '2024-06-19 03:23:51');
+
+-- ----------------------------
+-- Table structure for sqlite_sequence
+-- ----------------------------
+DROP TABLE IF EXISTS `sqlite_sequence`;
+CREATE TABLE `sqlite_sequence` (
+ `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
+ `seq` int(11) NULL DEFAULT NULL
+) ENGINE = MyISAM CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of sqlite_sequence
+-- ----------------------------
+INSERT INTO `sqlite_sequence` VALUES ('Authorize_BannedUser', 6);
+INSERT INTO `sqlite_sequence` VALUES ('Authorize_BannedAddr', 5);
+INSERT INTO `sqlite_sequence` VALUES ('Authorize_TempVer', 1);
+INSERT INTO `sqlite_sequence` VALUES ('Authorize_Serial', 10);
+INSERT INTO `sqlite_sequence` VALUES ('Authorize_User', 5);
+
+SET FOREIGN_KEY_CHECKS = 1;
diff --git a/XEngine_Source/AuthorizeModule_Configure/Config_Define.h b/XEngine_Source/AuthorizeModule_Configure/Config_Define.h
index fa980f62f2ded12f8bcb5d3a4157a6be71dfe35d..efb55610c5174116fbe82d7bde77e07696bc2fee 100644
--- a/XEngine_Source/AuthorizeModule_Configure/Config_Define.h
+++ b/XEngine_Source/AuthorizeModule_Configure/Config_Define.h
@@ -15,6 +15,9 @@
//////////////////////////////////////////////////////////////////////////
typedef struct
{
+ XCHAR tszIPAddr[128];
+ XCHAR tszTopic[128];
+ bool bDB; //是否是DB数据库
int nTCPPort; //TCP端口
int nWSPort; //WEBSOCKET端口
int nHTTPPort; //HTTP管理端口
@@ -65,6 +68,11 @@ typedef struct
}st_XCrypto;
struct
{
+ XCHAR tszSQLAddr[128]; //数据库地址
+ XCHAR tszSQLUser[128]; //数据库账号
+ XCHAR tszSQLPass[128]; //数据库密码
+ XCHAR tszDBName[128]; //数据库名
+ int nSQLPort; //数据库端口
XCHAR tszSQLite[MAX_PATH]; //数据库文件位置
}st_XSql;
struct
diff --git a/XEngine_Source/AuthorizeModule_Configure/ModuleConfigure_Json/ModuleConfigure_Json.cpp b/XEngine_Source/AuthorizeModule_Configure/ModuleConfigure_Json/ModuleConfigure_Json.cpp
index 9eff1c2825665a2c95962c216df2e8eb54bb61d9..2be26211626d9b82b12abd71a75a38c4fcd37f83 100644
--- a/XEngine_Source/AuthorizeModule_Configure/ModuleConfigure_Json/ModuleConfigure_Json.cpp
+++ b/XEngine_Source/AuthorizeModule_Configure/ModuleConfigure_Json/ModuleConfigure_Json.cpp
@@ -86,6 +86,7 @@ bool CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, XE
pSt_ServerConfig->nHTTPPort = st_JsonRoot["nHTTPPort"].asInt();
pSt_ServerConfig->bDeamon = st_JsonRoot["bDeamon"].asBool();
pSt_ServerConfig->bTimeNotify = st_JsonRoot["bTimeNotify"].asBool();
+ pSt_ServerConfig->bDB = st_JsonRoot["bDB"].asBool();
//最大配置
if (st_JsonRoot["XMax"].empty() || (6 != st_JsonRoot["XMax"].size()))
{
@@ -147,14 +148,30 @@ bool CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, XE
pSt_ServerConfig->st_XCrypto.bEnable = st_JsonXCrypto["bEnable"].asBool();
pSt_ServerConfig->st_XCrypto.nPassword = st_JsonXCrypto["nPass"].asInt();
//数据库配置
- if (st_JsonRoot["XSQL"].empty() || (1 != st_JsonRoot["XSQL"].size()))
+ if (pSt_ServerConfig->bDB) {
+ if (st_JsonRoot["XSQL"].empty() || (1 != st_JsonRoot["XSQL"].size()))
+ {
+ Config_IsErrorOccur = true;
+ Config_dwErrorCode = ERROR_AUTHORIZE_MODULE_CONFIGURE_XSQL;
+ return false;
+ }
+ Json::Value st_JsonXSQL = st_JsonRoot["XSQL"];
+ _tcsxcpy(pSt_ServerConfig->st_XSql.tszSQLite, st_JsonXSQL["tszSQLFile"].asCString()); //数据库文件位置
+ }
+ else
{
- Config_IsErrorOccur = true;
- Config_dwErrorCode = ERROR_AUTHORIZE_MODULE_CONFIGURE_XSQL;
- return false;
+ if (st_JsonRoot["XSql"].empty() || (4 != st_JsonRoot["XSql"].size()))
+ {
+ Config_IsErrorOccur = true;
+ Config_dwErrorCode = ERROR_AUTHORIZE_MODULE_CONFIGURE_XSQL;
+ return false;
+ }
+ Json::Value st_JsonXSql = st_JsonRoot["XSql"];
+ pSt_ServerConfig->st_XSql.nSQLPort = st_JsonXSql["SQLPort"].asInt();
+ _tcsxcpy(pSt_ServerConfig->st_XSql.tszSQLAddr, st_JsonXSql["SQLAddr"].asCString());
+ _tcsxcpy(pSt_ServerConfig->st_XSql.tszSQLUser, st_JsonXSql["SQLUser"].asCString());
+ _tcsxcpy(pSt_ServerConfig->st_XSql.tszSQLPass, st_JsonXSql["SQLPass"].asCString());
}
- Json::Value st_JsonXSQL = st_JsonRoot["XSQL"];
- _tcsxcpy(pSt_ServerConfig->st_XSql.tszSQLite, st_JsonXSQL["tszSQLFile"].asCString());
//日志配置
if (st_JsonRoot["XLog"].empty() || (4 != st_JsonRoot["XLog"].size()))
{
diff --git a/XEngine_Source/AuthorizeModule_Database/AuthorizeModule_Database.def b/XEngine_Source/AuthorizeModule_Database/AuthorizeModule_Database.def
index eed0328fcc53520348dc74e3e4d284f0781d68cb..fdea44d3ca0d47b0f1bba21aa556c35ab682daaa 100644
--- a/XEngine_Source/AuthorizeModule_Database/AuthorizeModule_Database.def
+++ b/XEngine_Source/AuthorizeModule_Database/AuthorizeModule_Database.def
@@ -35,4 +35,38 @@ EXPORTS
Database_SQLite_AnnouncementInsert
Database_SQLite_AnnouncementDelete
- Database_SQLite_AnnouncementList
\ No newline at end of file
+ Database_SQLite_AnnouncementList
+
+ Database_MYSQL_Init
+ Database_MYSQL_Destroy
+
+ Database_MYSQL_UserDelete
+ Database_MYSQL_UserRegister
+ Database_MYSQL_UserQuery
+ Database_MYSQL_UserPay
+ Database_MYSQL_UserLeave
+ Database_MYSQL_UserSet
+ Database_MYSQL_UserList
+
+ Database_MYSQL_SerialInsert
+ Database_MYSQL_SerialDelete
+ Database_MYSQL_SerialQuery
+ Database_MYSQL_SerialQueryAll
+ Database_MYSQL_SerialPush
+
+ Database_MYSQL_TryInsert
+ Database_MYSQL_TryQuery
+ Database_MYSQL_TryDelete
+ Database_MYSQL_TryClear
+ Database_MYSQL_TrySet
+ Database_MYSQL_TryList
+
+ Database_MYSQL_BannedInsert
+ Database_MYSQL_BannedDelete
+ Database_MYSQL_BannedList
+ Database_MYSQL_BannedExist
+ Database_MYSQL_BannedUPDate
+
+ Database_MYSQL_AnnouncementInsert
+ Database_MYSQL_AnnouncementDelete
+ Database_MYSQL_AnnouncementList
\ No newline at end of file
diff --git a/XEngine_Source/AuthorizeModule_Database/AuthorizeModule_Database.vcxproj b/XEngine_Source/AuthorizeModule_Database/AuthorizeModule_Database.vcxproj
index d5e921813a5c2121c12ec23c04542b130a534f1f..82f9f63df79b89a37546152fbf04b2e4c758ea84 100644
--- a/XEngine_Source/AuthorizeModule_Database/AuthorizeModule_Database.vcxproj
+++ b/XEngine_Source/AuthorizeModule_Database/AuthorizeModule_Database.vcxproj
@@ -161,11 +161,13 @@
+
+
diff --git a/XEngine_Source/AuthorizeModule_Database/AuthorizeModule_Database.vcxproj.filters b/XEngine_Source/AuthorizeModule_Database/AuthorizeModule_Database.vcxproj.filters
index 6cbd88b5afbe74bc87e3b05716325736e257c29b..3b2b3327794fcbbe5f30fb0900d44f919927dded 100644
--- a/XEngine_Source/AuthorizeModule_Database/AuthorizeModule_Database.vcxproj.filters
+++ b/XEngine_Source/AuthorizeModule_Database/AuthorizeModule_Database.vcxproj.filters
@@ -19,6 +19,12 @@
{be64df35-6ef0-4c8c-b95a-444977d7d1c4}
+
+ {cc959676-8b04-4219-9710-35ff66daf39b}
+
+
+ {6d3af570-e47c-492d-a0c8-3632c14d7c6e}
+
@@ -36,6 +42,9 @@
头文件
+
+ 头文件\Database_MySQL
+
@@ -47,6 +56,9 @@
源文件\Database_SQLite
+
+ 源文件\Database_MySQL
+
diff --git a/XEngine_Source/AuthorizeModule_Database/Database_Define.h b/XEngine_Source/AuthorizeModule_Database/Database_Define.h
index dd02840759a5cb55b6e5215f7c3f1dc5b5a4a8e3..116895c55b1e9fd92a3a59f9dde22b0787fdeccd 100644
--- a/XEngine_Source/AuthorizeModule_Database/Database_Define.h
+++ b/XEngine_Source/AuthorizeModule_Database/Database_Define.h
@@ -503,4 +503,493 @@ extern "C" bool Database_SQLite_AnnouncementDelete(AUTHREG_ANNOUNCEMENT* pSt_Ann
意思:是否成功
备注:
*********************************************************************/
-extern "C" bool Database_SQLite_AnnouncementList(AUTHREG_ANNOUNCEMENT*** ppppSt_Announcement, int* pInt_ListCount);
\ No newline at end of file
+extern "C" bool Database_SQLite_AnnouncementList(AUTHREG_ANNOUNCEMENT*** ppppSt_Announcement, int* pInt_ListCount);
+
+/************************************************************************/
+/* MYSQL数据库服务导出函数 */
+/************************************************************************/
+/********************************************************************
+函数名称:Database_MYSQL_Init
+函数功能:初始化数据库管理器
+ 参数.一:pSt_DBConnector
+ In/Out:In
+ 类型:数据结构指针
+ 参数.二:bIsChange
+ In/Out:In
+ 类型:逻辑型
+ 可空:Y
+ 意思:是否允许更改用户充值类型
+返回值
+ 类型:逻辑型
+ 意思:是否成功
+备注:先初始化数据库服务,在初始化网络服务,才可以使用本验证服务器!
+*********************************************************************/
+extern "C" bool Database_MYSQL_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector, bool bIsChange = true);
+/********************************************************************
+函数名称:Database_MYSQL_Destroy
+函数功能:销毁数据库服务
+返回值
+ 类型:逻辑型
+ 意思:是否销毁成功
+备注:
+*********************************************************************/
+extern "C" bool Database_MYSQL_Destroy();
+/********************************************************************
+函数名称:Database_MYSQL_UserDelete
+函数功能:删除一个用户从数据库中
+ 参数.一:lpszUserName
+ In/Out:In
+ 类型:常量字符指针
+ 可空:N
+ 意思:要删除的用户
+返回值
+ 类型:逻辑型
+ 意思:是否删除成功
+备注:
+*********************************************************************/
+extern "C" bool Database_MYSQL_UserDelete(LPCXSTR lpszUserName);
+/********************************************************************
+函数名称:Database_MYSQL_UserRegister
+函数功能:用户注册处理数据库语句函数
+ 参数.一:pSt_UserInfo
+ In/Out:In
+ 类型:数据结构指针
+ 可空:N
+ 意思:要插入的用户数据
+返回值
+ 类型:逻辑型
+ 意思:是否插入成功
+备注:
+*********************************************************************/
+extern "C" bool Database_MYSQL_UserRegister(AUTHREG_USERTABLE* pSt_UserInfo);
+/********************************************************************
+函数名称:Database_MYSQL_UserQuery
+函数功能:查询用户相对应的值
+ 参数.一:lpszUserName
+ In/Out:In
+ 类型:常量字符指针
+ 可空:N
+ 意思:要查询的指定用户
+ 参数.二:pSt_UserInfo
+ In/Out:Out
+ 类型:数据结构指针
+ 可空:Y
+ 意思:如果为空NULL,那么将只判断此用户是否存在
+返回值
+ 类型:逻辑型
+ 意思:是否查询成功
+备注:
+*********************************************************************/
+extern "C" bool Database_MYSQL_UserQuery(LPCXSTR lpszUserName, AUTHREG_USERTABLE* pSt_UserInfo);
+/********************************************************************
+函数名称:Database_MYSQL_UserPay
+函数功能:用户充值函数
+ 参数.一:lpszUserName
+ In/Out:In
+ 类型:常量字符指针
+ 可空:N
+ 意思:要充值的用户名
+ 参数.二:lpszSerialName
+ In/Out:In
+ 类型:常量字符指针
+ 可空:N
+ 意思:充值使用的序列号
+返回值
+ 类型:逻辑型
+ 意思:是否成功充值
+备注:
+*********************************************************************/
+extern "C" bool Database_MYSQL_UserPay(LPCXSTR lpszUserName, LPCXSTR lpszSerialName);
+/********************************************************************
+函数名称:Database_MYSQL_UserLeave
+函数功能:用户离开处理事件
+ 参数.一:pSt_TimeProtocol
+ In/Out:In
+ 类型:数据结构指针
+ 可空:N
+ 意思:离开的用户信息
+返回值
+ 类型:逻辑型
+ 意思:是否处理成功
+备注:
+*********************************************************************/
+extern "C" bool Database_MYSQL_UserLeave(AUTHREG_PROTOCOL_TIME* pSt_TimeProtocol);
+/********************************************************************
+函数名称:Database_MYSQL_UserSet
+函数功能:设置用户信息
+ 参数.一:pSt_UserTable
+ In/Out:In
+ 类型:数据结构指针
+ 可空:N
+ 意思:输入要设置的信息
+返回值
+ 类型:逻辑型
+ 意思:是否成功
+备注:
+*********************************************************************/
+extern "C" bool Database_MYSQL_UserSet(AUTHREG_USERTABLE* pSt_UserTable);
+/********************************************************************
+函数名称:Database_MYSQL_UserList
+函数功能:获取用户列表
+ 参数.一:pppSt_UserInfo
+ In/Out:Out
+ 类型:三级指针
+ 可空:N
+ 意思:输出用户列表,内存由用户释放
+ 参数.二:pInt_ListCount
+ In/Out:Out
+ 类型:整数型
+ 可空:N
+ 意思:输出列表个数
+ 参数.三:nPosStart
+ In/Out:In
+ 类型:整数型
+ 可空:Y
+ 意思:输入起始位置
+ 参数.四:nPosEnd
+ In/Out:In
+ 类型:整数型
+ 可空:Y
+ 意思:输入结束位置
+返回值
+ 类型:逻辑型
+ 意思:是否成功
+备注:
+*********************************************************************/
+extern "C" bool Database_MYSQL_UserList(AUTHREG_USERTABLE*** pppSt_UserInfo, int* pInt_ListCount, int nPosStart, int nPosEnd);
+/********************************************************************
+函数名称:Database_MYSQL_SerialInsert
+函数功能:插入一个序列号到数据库
+ 参数.一:lpszSerialNumber
+ In/Out:In
+ 类型:常量字符指针
+ 可空:N
+ 意思:要插入的序列号
+返回值
+ 类型:逻辑型
+ 意思:是否插入成功
+备注:
+*********************************************************************/
+extern "C" bool Database_MYSQL_SerialInsert(LPCXSTR lpszSerialNumber);
+/********************************************************************
+函数名称:Database_MYSQL_SerialDelete
+函数功能:从数据库删除指定序列号
+ 参数.一:lpszSerialNumber
+ In/Out:In
+ 类型:常量字符指针
+ 可空:N
+ 意思:要删除的序列号
+返回值
+ 类型:逻辑型
+ 意思:是否删除成功
+备注:
+*********************************************************************/
+extern "C" bool Database_MYSQL_SerialDelete(LPCXSTR lpszSerialNumber);
+/********************************************************************
+函数名称:Database_MYSQL_SerialQuery
+函数功能:查询一个指定的序列号信息
+ 参数.一:lpszSerialNumber
+ In/Out:In
+ 类型:常量字符指针
+ 可空:N
+ 意思:要查询的序列号
+ 参数.二:pSt_SerialTable
+ In/Out:Out
+ 类型:数据结构指针
+ 可空:Y
+ 意思:导出查询到的信息,如果为NULL,此参数将不起作用
+返回值
+ 类型:逻辑型
+ 意思:是否查询成功,如果第二个参数为NULL,那么将只返回是否有这个序列号
+备注:
+*********************************************************************/
+extern "C" bool Database_MYSQL_SerialQuery(LPCXSTR lpszSerialNumber, LPAUTHREG_SERIALTABLE pSt_SerialTable);
+/********************************************************************
+函数名称:Database_MYSQL_SerialQueryAll
+函数功能:查询序列卡表中的所有序列号
+ 参数.一:pppSt_SerialTable
+ In/Out:Out
+ 类型:三级指针
+ 可空:N
+ 意思:输出序列卡列表
+ 参数.二:pInt_ListCount
+ In/Out:Out
+ 类型:整数型指针
+ 可空:Y
+ 意思:输出多少张卡
+ 参数.三:nPosStart
+ In/Out:In
+ 类型:整数型
+ 可空:Y
+ 意思:输入起始位置
+ 参数.四:nPosEnd
+ In/Out:In
+ 类型:整数型
+ 可空:Y
+ 意思:输入结束位置
+返回值
+ 类型:逻辑型
+ 意思:是否查询成功
+备注:参数一需要调用基础库的释放内存函数进行内存释放
+*********************************************************************/
+extern "C" bool Database_MYSQL_SerialQueryAll(AUTHREG_SERIALTABLE*** pppSt_SerialTable, int* pInt_ListCount, int nPosStart, int nPosEnd);
+/********************************************************************
+函数名称:Database_MYSQL_SerialPush
+函数功能:插入一条指定的序列号信息到服务器
+ 参数.一:pSt_SerialTable
+ In/Out:In
+ 类型:数据结构指针
+ 可空:N
+ 意思:输入要插入的信息
+返回值
+ 类型:逻辑型
+ 意思:是否成功
+备注:
+*********************************************************************/
+extern "C" bool Database_MYSQL_SerialPush(AUTHREG_SERIALTABLE* pSt_SerialTable);
+/********************************************************************
+函数名称:Database_MYSQL_TryInsert
+函数功能:网络使用模式插入一条数据
+ 参数.一:pSt_AuthVer
+ In/Out:In
+ 类型:数据结构指针
+ 可空:N
+ 意思:输入要插入的数据
+返回值
+ 类型:逻辑型
+ 意思:是否成功
+备注:
+*********************************************************************/
+extern "C" bool Database_MYSQL_TryInsert(AUTHREG_TEMPVER* pSt_AuthVer);
+/********************************************************************
+函数名称:Database_MYSQL_TryQuery
+函数功能:试用序列号查询函数
+ 参数.一:pSt_AuthVer
+ In/Out:In/Out
+ 类型:数据结构指针
+ 可空:N
+ 意思:输入序列号,输出获取到的内容
+返回值
+ 类型:逻辑型
+ 意思:是否成功
+备注:
+*********************************************************************/
+extern "C" bool Database_MYSQL_TryQuery(AUTHREG_TEMPVER* pSt_AuthVer);
+/********************************************************************
+函数名称:Database_MYSQL_TryDelete
+函数功能:删除一条指定的试用数据
+ 参数.一:lpszSerial
+ In/Out:In
+ 类型:常量字符指针
+ 可空:N
+ 意思:输入要删除的序列号
+返回值
+ 类型:逻辑型
+ 意思:是否成功
+备注:
+*********************************************************************/
+extern "C" bool Database_MYSQL_TryDelete(LPCXSTR lpszSerial);
+/********************************************************************
+函数名称:Database_MYSQL_TryClear
+函数功能:清理函数,自动清理过期数据
+ 参数.一:nThanValue
+ In/Out:In
+ 类型:整数型
+ 可空:N
+ 意思:清理用于判断需要大于此的值
+ 参数.二:enVerMode
+ In/Out:In
+ 类型:枚举型
+ 可空:Y
+ 意思:判断注册类型,默认不判断全部执行
+返回值
+ 类型:逻辑型
+ 意思:是否成功
+备注:
+*********************************************************************/
+extern "C" bool Database_MYSQL_TryClear(int nThanValue, ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE enVerMode = ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_UNKNOW);
+/********************************************************************
+函数名称:Database_MYSQL_TrySet
+函数功能:设置用户信息函数
+ 参数.一:pSt_AuthVer
+ In/Out:In
+ 类型:数据结构指针
+ 可空:N
+ 意思:输入要更新的用户信息
+返回值
+ 类型:逻辑型
+ 意思:是否成功
+备注:
+*********************************************************************/
+extern "C" bool Database_MYSQL_TrySet(AUTHREG_TEMPVER* pSt_AuthVer);
+/********************************************************************
+函数名称:Database_MYSQL_TryList
+函数功能:请求试用期列表
+ 参数.一:pppSt_AuthVer
+ In/Out:Out
+ 类型:三级指针
+ 可空:N
+ 意思:输出获取到的列表
+ 参数.二:pInt_ListCount
+ In/Out:Out
+ 类型:整数型指针
+ 可空:N
+ 意思:输出列表个数
+ 参数.三:nPosStart
+ In/Out:In
+ 类型:整数型
+ 可空:N
+ 意思:输入查询起始编号
+ 参数.四:nPosEnd
+ In/Out:In
+ 类型:整数型
+ 可空:N
+ 意思:输入查询结束编号
+返回值
+ 类型:逻辑型
+ 意思:是否成功
+备注:
+*********************************************************************/
+extern "C" bool Database_MYSQL_TryList(AUTHREG_TEMPVER*** pppSt_AuthVer, int* pInt_ListCount, int nPosStart = 0, int nPosEnd = 1000);
+/********************************************************************
+函数名称:Database_MYSQL_BannedInsert
+函数功能:黑名单列表插入
+ 参数.一:pSt_Banned
+ In/Out:In
+ 类型:数据结构指针
+ 可空:N
+ 意思:要操作的数据
+返回值
+ 类型:逻辑型
+ 意思:是否成功
+备注:
+*********************************************************************/
+extern "C" bool Database_MYSQL_BannedInsert(AUTHREG_BANNED* pSt_Banned);
+/********************************************************************
+函数名称:Database_MYSQL_BannedDelete
+函数功能:黑名单列表删除
+ 参数.一:pSt_Banned
+ In/Out:In
+ 类型:数据结构指针
+ 可空:N
+ 意思:要操作的数据
+返回值
+ 类型:逻辑型
+ 意思:是否成功
+备注:
+*********************************************************************/
+extern "C" bool Database_MYSQL_BannedDelete(AUTHREG_BANNED* pSt_Banned);
+/********************************************************************
+函数名称:Database_MYSQL_BannedList
+函数功能:黑名单列表查询
+ 参数.一:pppSt_BannedUser
+ In/Out:Out
+ 类型:三级指针
+ 可空:N
+ 意思:禁用的用户名列表
+ 参数.二:pInt_UserCount
+ In/Out:Out
+ 类型:整数型指针
+ 可空:N
+ 意思:输出用户禁用列表个数
+ 参数.三:pppSt_BannedAddr
+ In/Out:Out
+ 类型:三级指针
+ 可空:N
+ 意思:禁用的IP地址列表
+ 参数.四:pInt_AddrCount
+ In/Out:Out
+ 类型:整数型指针
+ 可空:N
+ 意思:输出地址禁用列表个数
+ 参数.五:nPosStart
+ In/Out:In
+ 类型:整数型
+ 可空:N
+ 意思:输入查找起始位置
+ 参数.六:nPosEnd
+ In/Out:In
+ 类型:整数型
+ 可空:N
+ 意思:输入查找结束位置
+返回值
+ 类型:逻辑型
+ 意思:是否成功
+备注:
+*********************************************************************/
+extern "C" bool Database_MYSQL_BannedList(AUTHREG_BANNED*** pppSt_BannedUser, int* pInt_UserCount, AUTHREG_BANNED*** pppSt_BannedAddr, int* pInt_AddrCount, int nPosStart, int nPosEnd);
+/********************************************************************
+函数名称:Database_MYSQL_BannedExist
+函数功能:名单是否存在黑名单列表
+ 参数.一:pSt_Banned
+ In/Out:In
+ 类型:数据结构指针
+ 可空:N
+ 意思:要操作的数据
+返回值
+ 类型:逻辑型
+ 意思:是否成功
+备注:
+*********************************************************************/
+extern "C" bool Database_MYSQL_BannedExist(AUTHREG_BANNED* pSt_Banned);
+/********************************************************************
+函数名称:Database_MYSQL_BannedUPDate
+函数功能:更新名单列表信息
+ 参数.一:pSt_Banned
+ In/Out:In
+ 类型:数据结构指针
+ 可空:N
+ 意思:要操作的数据
+返回值
+ 类型:逻辑型
+ 意思:是否成功
+备注:
+*********************************************************************/
+extern "C" bool Database_MYSQL_BannedUPDate(AUTHREG_BANNED* pSt_Banned);
+/********************************************************************
+函数名称:Database_MYSQL_AnnouncementInsert
+函数功能:公告插入
+ 参数.一:pSt_Announcement
+ In/Out:In
+ 类型:数据结构指针
+ 可空:N
+ 意思:输入要插入的信息
+返回值
+ 类型:逻辑型
+ 意思:是否成功
+备注:
+*********************************************************************/
+extern "C" bool Database_MYSQL_AnnouncementInsert(AUTHREG_ANNOUNCEMENT* pSt_Announcement);
+/********************************************************************
+函数名称:Database_MYSQL_AnnouncementDelete
+函数功能:公告删除
+ 参数.一:pSt_Announcement
+ In/Out:In
+ 类型:数据结构指针
+ 可空:N
+ 意思:输入要删除的信息
+返回值
+ 类型:逻辑型
+ 意思:是否成功
+备注:
+*********************************************************************/
+extern "C" bool Database_MYSQL_AnnouncementDelete(AUTHREG_ANNOUNCEMENT* pSt_Announcement);
+/********************************************************************
+函数名称:Database_MYSQL_AnnouncementList
+函数功能:列举所有公告
+ 参数.一:ppppSt_Announcement
+ In/Out:Out
+ 类型:三级指针
+ 可空:N
+ 意思:输出列举数据
+ 参数.二:pInt_ListCount
+ In/Out:Out
+ 类型:整数型指针
+ 可空:N
+ 意思:导出数据个数
+返回值
+ 类型:逻辑型
+ 意思:是否成功
+备注:
+*********************************************************************/
+extern "C" bool Database_MYSQL_AnnouncementList(AUTHREG_ANNOUNCEMENT*** ppppSt_Announcement, int* pInt_ListCount);
diff --git a/XEngine_Source/AuthorizeModule_Database/Database_MySQL/Database_MySQL.cpp b/XEngine_Source/AuthorizeModule_Database/Database_MySQL/Database_MySQL.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..7b66552e3d4b44177e06b2eae1187401d6cb908e
--- /dev/null
+++ b/XEngine_Source/AuthorizeModule_Database/Database_MySQL/Database_MySQL.cpp
@@ -0,0 +1,2008 @@
+#include "pch.h"
+#include "Database_MySQL.h"
+
+/********************************************************************
+// Created: 2022/05/26 11:01:13
+// File Name: D:\XEngine_Authorize\XEngine_Source\AuthorizeModule_Database\Database_MySQL\Database_MySQL.cpp
+// File Path: D:\XEngine_Authorize\XEngine_Source\AuthorizeModule_Database\Database_MySQL
+// File Base: Database_SQLite
+// File Ext: cpp
+// Project: XEngine(ͨ)
+// Author: qyt
+// Purpose: ݿ
+// History:
+*********************************************************************/
+CDatabase_MySQL::CDatabase_MySQL()
+{
+ m_bChange = false;
+ xhData = 0;
+}
+
+CDatabase_MySQL::~CDatabase_MySQL()
+{
+}
+//////////////////////////////////////////////////////////////////////////
+// к
+//////////////////////////////////////////////////////////////////////////
+/********************************************************************
+ƣDatabase_MYSQL_Init
+ܣʼݿ
+ .һpSt_DBConnector
+ In/OutIn
+ ͣݽṹָ
+ ɿգN
+ ˼MYSQLݿϢ
+ֵ
+ ͣ
+ ˼Ƿɹ
+ע
+*********************************************************************/
+bool CDatabase_MySQL::Database_MYSQL_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector, bool bIsChange)
+{
+ SQLPacket_IsErrorOccur = false;
+ m_bChange = bIsChange;
+ if (NULL == pSt_DBConnector)
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = DataBase_GetLastError();
+ return false;
+ }
+ _tcsxcpy(pSt_DBConnector->tszDBName, _X("XEngine_Authorize")); //ÿ
+ if (!DataBase_MySQL_Connect(&xhData, pSt_DBConnector)) //ݿ
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = DataBase_GetLastError();
+ return false;
+ }
+ return true;
+}
+/********************************************************************
+ƣDatabase_MYSQL_Destroy
+ܣݿ
+ֵ
+ ͣ
+ ˼Ƿɹ
+ע
+*********************************************************************/
+bool CDatabase_MySQL::Database_MYSQL_Destroy()
+{
+ SQLPacket_IsErrorOccur = false;
+
+ DataBase_MySQL_Close(xhData);
+ return true;
+}
+/********************************************************************
+ƣDatabase_MYSQL_UserDelete
+ܣɾһûݿ
+ .һlpszUserName
+ In/OutIn
+ ַָͣ
+ ɿգN
+ ˼Ҫɾû
+ֵ
+ ͣ
+ ˼Ƿɾɹ
+ע
+*********************************************************************/
+bool CDatabase_MySQL::Database_MYSQL_UserDelete(LPCXSTR lpszUserName)
+{
+ SQLPacket_IsErrorOccur = false;
+ XCHAR tszSQLStatement[1024]; //SQL
+ memset(tszSQLStatement, '\0', 1024);
+ _xstprintf(tszSQLStatement, _X("delete from Authorize_User where UserName = '%s'"), lpszUserName);
+ //ִ
+ if (!DataBase_MySQL_Execute(xhData, tszSQLStatement))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_EXEC;
+ return false;
+ }
+ return true;
+}
+/********************************************************************
+ƣDatabase_MYSQL_UserRegister
+ܣûעᴦݿ亯
+ .һpSt_UserInfo
+ In/OutIn
+ ͣݽṹָ
+ ɿգN
+ ˼Ҫû
+ֵ
+ ͣ
+ ˼Ƿɹ
+ע
+*********************************************************************/
+bool CDatabase_MySQL::Database_MYSQL_UserRegister(AUTHREG_USERTABLE* pSt_UserInfo)
+{
+ SQLPacket_IsErrorOccur = false;
+ XCHAR tszSQLStatement[1024]; //SQL
+ memset(tszSQLStatement, '\0', 1024);
+
+ if (Database_MYSQL_UserQuery(pSt_UserInfo->st_UserInfo.tszUserName))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_EXIST;
+ return false;
+ }
+ _xstprintf(tszSQLStatement, _X("INSERT INTO Authorize_User(UserName, Password, LeftTime, EmailAddr, HardCode, CardSerialType, PhoneNumber, IDCard, nUserLevel, CreateTime) values('%s','%s','%s','%s','%s','%d',%lld,%lld,%d,NOW())"), pSt_UserInfo->st_UserInfo.tszUserName, pSt_UserInfo->st_UserInfo.tszUserPass, pSt_UserInfo->tszLeftTime, pSt_UserInfo->st_UserInfo.tszEMailAddr, pSt_UserInfo->tszHardCode, pSt_UserInfo->enSerialType, pSt_UserInfo->st_UserInfo.nPhoneNumber, pSt_UserInfo->st_UserInfo.nIDNumber, pSt_UserInfo->st_UserInfo.nUserLevel);
+ if (!DataBase_MySQL_Execute(xhData, tszSQLStatement))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_INSERT;
+ return false;
+ }
+ return true;
+}
+/********************************************************************
+ƣDatabase_MYSQL_UserQuery
+ܣѯûӦֵ
+ .һlpszUserName
+ In/OutIn
+ ַָͣ
+ ɿգN
+ ˼Ҫѯָû
+ .pSt_UserInfo
+ In/OutOut
+ ͣݽṹָ
+ ɿգY
+ ˼ΪNULLôֻжϴûǷ
+ֵ
+ ͣ
+ ˼Ƿѯɹ
+ע
+*********************************************************************/
+bool CDatabase_MySQL::Database_MYSQL_UserQuery(LPCXSTR lpszUserName, AUTHREG_USERTABLE* pSt_UserInfo)
+{
+ SQLPacket_IsErrorOccur = false;
+ //ѯ
+ XNETHANDLE xhTable = 0;
+ __int64u nColumn = 0;
+ __int64u nRow = 0;
+
+ XCHAR tszSQLStatement[1024]; //SQL
+ memset(tszSQLStatement, '\0', 1024);
+
+ _xstprintf(tszSQLStatement, _X("select * from Authorize_User where UserName = '%s'"), lpszUserName);
+ if (!DataBase_MySQL_ExecuteQuery(xhData, &xhTable, tszSQLStatement, &nRow, &nColumn))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_GETTABLE;
+ return false;
+ }
+ if (nRow <= 0)
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_GETTABLE;
+ return false;
+ }
+ XCHAR** pptszResult = DataBase_MySQL_GetResult(xhData, xhTable);
+ XLONG* pInt_Length = DataBase_MySQL_GetLength(xhData, xhTable);
+
+ //NULLʾ֪
+ if (NULL != pSt_UserInfo)
+ {
+ memset(pSt_UserInfo, '\0', sizeof(AUTHREG_USERTABLE));
+
+ //ID
+ int nFliedValue = 0;
+
+ //û
+ nFliedValue++;
+ if (NULL != pptszResult[nFliedValue]) {
+ //printf("%d û%s\n", nFliedValue, pptszResult[nFliedValue]);
+ _tcsxcpy(pSt_UserInfo->st_UserInfo.tszUserName, pptszResult[nFliedValue]);
+ }
+
+ //
+ nFliedValue++;
+ if (NULL != pptszResult[nFliedValue]) {
+ //printf("%d 룺%s\n", nFliedValue, pptszResult[nFliedValue]);
+ _tcsxcpy(pSt_UserInfo->st_UserInfo.tszUserPass, pptszResult[nFliedValue]);
+ }
+
+ //ʱ
+ nFliedValue++;
+ if (NULL != pptszResult[nFliedValue]) {
+ //printf("%d ʱ䣺%s\n", nFliedValue, pptszResult[nFliedValue]);
+ _tcsxcpy(pSt_UserInfo->tszLeftTime, pptszResult[nFliedValue]);
+ }
+
+ //ʼ
+ nFliedValue++;
+ if (NULL != pptszResult[nFliedValue]) {
+ //printf("%d ʼ%s\n", nFliedValue, pptszResult[nFliedValue]);
+ _tcsxcpy(pSt_UserInfo->st_UserInfo.tszEMailAddr, pptszResult[nFliedValue]);
+ }
+
+ //Ӳ
+ nFliedValue++;
+ if (NULL != pptszResult[nFliedValue]) {
+ //printf("%d Ӳ룺%s\n", nFliedValue, pptszResult[nFliedValue]);
+ _tcsxcpy(pSt_UserInfo->tszHardCode, pptszResult[nFliedValue]);
+ }
+
+ //ֵ
+ nFliedValue++;
+ if (NULL != pptszResult[nFliedValue]) {
+ //printf("%d ֵͣ%s\n", nFliedValue, pptszResult[nFliedValue]);
+ pSt_UserInfo->enSerialType = (ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE)_ttxoi(pptszResult[nFliedValue]);
+ }
+
+ //QQ
+ nFliedValue++;
+ if (NULL != pptszResult[nFliedValue]) {
+ //printf("%d QQţ%s\n", nFliedValue, pptszResult[nFliedValue]);
+ pSt_UserInfo->st_UserInfo.nPhoneNumber = _ttxoll(pptszResult[nFliedValue]);
+ }
+
+ //֤ID
+ nFliedValue++;
+ if (NULL != pptszResult[nFliedValue]) {
+ //printf("%d ֤ID%s\n", nFliedValue, pptszResult[nFliedValue]);
+ pSt_UserInfo->st_UserInfo.nIDNumber = _ttxoll(pptszResult[nFliedValue]);
+ }
+
+ //û -1ʾ
+ nFliedValue++;
+ if (NULL != pptszResult[nFliedValue]) {
+ //printf("%d û -1ʾ%s\n", nFliedValue, pptszResult[nFliedValue]);
+ pSt_UserInfo->st_UserInfo.nUserLevel = _ttxoi(pptszResult[nFliedValue]);
+ }
+
+ //¼
+ nFliedValue++;
+ if (NULL != pptszResult[nFliedValue] && _tcsxlen(pptszResult[nFliedValue]) > 0)
+ {
+ //printf("%d ¼ڣ%s\n", nFliedValue, pptszResult[nFliedValue]);
+ _tcsxcpy(pSt_UserInfo->st_UserInfo.tszLoginTime, pptszResult[nFliedValue]);
+ }
+ //ע
+ nFliedValue++;
+ if (NULL != pptszResult[nFliedValue]) {
+ //printf("%d עڣ%s\n", nFliedValue, pptszResult[nFliedValue]);
+ _tcsxcpy(pSt_UserInfo->st_UserInfo.tszCreateTime, pptszResult[nFliedValue]);
+ }
+
+ }
+ DataBase_MySQL_FreeResult(xhData, xhTable);
+ return true;
+}
+/********************************************************************
+ƣDatabase_MYSQL_UserPay
+ܣûֵ
+ .һlpszUserName
+ In/OutIn
+ ַָͣ
+ ɿգN
+ ˼Ҫֵû
+ .lpszSerialName
+ In/OutIn
+ ַָͣ
+ ɿգN
+ ˼ֵʹõк
+ֵ
+ ͣ
+ ˼Ƿɹֵ
+ע
+*********************************************************************/
+bool CDatabase_MySQL::Database_MYSQL_UserPay(LPCXSTR lpszUserName, LPCXSTR lpszSerialName)
+{
+ SQLPacket_IsErrorOccur = false;
+
+ AUTHREG_SERIALTABLE st_SerialTable;
+ AUTHREG_USERTABLE st_UserTable;
+ XCHAR tszSQLStatement[1024]; //SQL
+
+ memset(tszSQLStatement, '\0', 1024);
+ memset(&st_SerialTable, '\0', sizeof(st_SerialTable));
+ memset(&st_UserTable, '\0', sizeof(st_UserTable));
+ //
+ if ((NULL == lpszUserName) || (NULL == lpszSerialName))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_PARAMENT;
+ return false;
+ }
+ //ѯֵǷ
+ if (!Database_MYSQL_SerialQuery(lpszSerialName, &st_SerialTable))
+ {
+ return false;
+ }
+ //ֵǷʹ
+ if (st_SerialTable.bIsUsed)
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_ISUSED;
+ return false;
+ }
+ //ѯûϢ
+ if (!Database_MYSQL_UserQuery(lpszUserName, &st_UserTable))
+ {
+ return false;
+ }
+ //뷽ʽ
+ switch (st_SerialTable.enSerialType)
+ {
+ case ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_SECOND:
+ if (!Database_MYSQL_UserPayTime(lpszUserName, st_UserTable.tszLeftTime, st_SerialTable.tszMaxTime, st_SerialTable.enSerialType, st_UserTable.enSerialType))
+ {
+ return false;
+ }
+ break;
+ case ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_DAY:
+ if (!Database_MYSQL_UserPayTime(lpszUserName, st_UserTable.tszLeftTime, st_SerialTable.tszMaxTime, st_SerialTable.enSerialType, st_UserTable.enSerialType))
+ {
+ return false;
+ }
+ break;
+ case ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_TIME:
+ if (!Database_MYSQL_UserPayTime(lpszUserName, st_UserTable.tszLeftTime, st_SerialTable.tszMaxTime, st_SerialTable.enSerialType, st_UserTable.enSerialType))
+ {
+ return false;
+ }
+ break;
+ case ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_CUSTOM:
+ if (!Database_MYSQL_UserPayTime(lpszUserName, st_UserTable.tszLeftTime, st_SerialTable.tszMaxTime, st_SerialTable.enSerialType, st_UserTable.enSerialType))
+ {
+ return false;
+ }
+ break;
+ default:
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_NOTSUPPORT;
+ return false;
+ }
+ _xstprintf(tszSQLStatement, _X("UPDATE Authorize_Serial SET UserName = '%s',bIsUsed = '1' WHERE SerialNumber = '%s'"), lpszUserName, lpszSerialName);
+ if (!DataBase_MySQL_Execute(xhData, tszSQLStatement))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_UPDATAUSEDNAME;
+ return false;
+ }
+ return true;
+}
+/********************************************************************
+ƣDatabase_MYSQL_UserLeave
+ܣû뿪¼
+ .һpSt_TimeProtocol
+ In/OutIn
+ ͣݽṹָ
+ ɿգN
+ ˼뿪ûϢ
+ֵ
+ ͣ
+ ˼Ƿɹ
+ע
+*********************************************************************/
+bool CDatabase_MySQL::Database_MYSQL_UserLeave(AUTHREG_PROTOCOL_TIME* pSt_TimeProtocol)
+{
+ SQLPacket_IsErrorOccur = false;
+
+ XCHAR tszSQLStatement[1024]; //SQL
+ memset(tszSQLStatement, '\0', 1024);
+
+
+ if ((ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_DAY == pSt_TimeProtocol->enSerialType) || (ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_CUSTOM == pSt_TimeProtocol->enSerialType))
+ {
+ //ֻʣʱûеʱҪ
+ if (pSt_TimeProtocol->nTimeLeft <= 0)
+ {
+ _xstprintf(tszSQLStatement, _X("UPDATE Authorize_User SET LeftTime = '0' WHERE UserName = '%s'"), pSt_TimeProtocol->tszUserName);
+ }
+ }
+ if (ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_SECOND == pSt_TimeProtocol->enSerialType)
+ {
+ //ӿҪʱܼ
+ if (pSt_TimeProtocol->nTimeLeft <= 0)
+ {
+ pSt_TimeProtocol->nTimeLeft = 0;
+ }
+ _xstprintf(tszSQLStatement, _X("UPDATE Authorize_User SET LeftTime = '%lld' WHERE UserName = '%s'"), pSt_TimeProtocol->nTimeLeft, pSt_TimeProtocol->tszUserName);
+ }
+ else if (ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_TIME == pSt_TimeProtocol->enSerialType)
+ {
+ //Ҫʱ,ֱӼȥһξͿ
+ _xstprintf(tszSQLStatement, _X("UPDATE Authorize_User SET LeftTime = '%lld' WHERE UserName = '%s'"), _ttxoll(pSt_TimeProtocol->tszLeftTime), pSt_TimeProtocol->tszUserName);
+ }
+ else
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_UNKNOWTYPE;
+ return false;
+ }
+ //ûʣʱ
+ if (!DataBase_MySQL_Execute(xhData, tszSQLStatement))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_UPDATA;
+ return false;
+ }
+ return true;
+}
+/********************************************************************
+ƣDatabase_MYSQL_UserSet
+ܣûϢ
+ .һpSt_UserTable
+ In/OutIn
+ ͣݽṹָ
+ ɿգN
+ ˼ҪõϢ
+ֵ
+ ͣ
+ ˼Ƿɹ
+ע
+*********************************************************************/
+bool CDatabase_MySQL::Database_MYSQL_UserSet(AUTHREG_USERTABLE* pSt_UserTable)
+{
+ SQLPacket_IsErrorOccur = false;
+
+ XCHAR tszSQLStatement[1024]; //SQL
+ memset(tszSQLStatement, '\0', 1024);
+
+ _xstprintf(tszSQLStatement, _X("UPDATE Authorize_User SET Password = '%s',LeftTime = '%s',EmailAddr = '%s',HardCode = '%s',CardSerialType = '%d',PhoneNumber = '%lld',IDCard = '%lld',nUserLevel = '%d',UPTime = NOW(),CreateTime = '%s' WHERE UserName = '%s'"), pSt_UserTable->st_UserInfo.tszUserPass, pSt_UserTable->tszLeftTime, pSt_UserTable->st_UserInfo.tszEMailAddr, pSt_UserTable->tszHardCode, pSt_UserTable->enSerialType, pSt_UserTable->st_UserInfo.nPhoneNumber, pSt_UserTable->st_UserInfo.nIDNumber, pSt_UserTable->st_UserInfo.nUserLevel/*, pSt_UserTable->st_UserInfo.tszLoginTime*/, pSt_UserTable->st_UserInfo.tszCreateTime, pSt_UserTable->st_UserInfo.tszUserName);
+
+ //printf("22ûϢ(SQL)%s\n", tszSQLStatement);
+ //ûʣʱ
+ if (!DataBase_MySQL_Execute(xhData, tszSQLStatement))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = DataBase_GetLastError();
+ return false;
+ }
+ return true;
+}
+/********************************************************************
+ƣDatabase_MYSQL_UserList
+ܣȡûб
+ .һpppSt_UserInfo
+ In/OutOut
+ ָͣ
+ ɿգN
+ ˼ûб,ڴûͷ
+ .pInt_ListCount
+ In/OutOut
+ ͣ
+ ɿգN
+ ˼б
+ .nPosStart
+ In/OutIn
+ ͣ
+ ɿգY
+ ˼ʼλ
+ .ģnPosEnd
+ In/OutIn
+ ͣ
+ ɿգY
+ ˼λ
+ֵ
+ ͣ
+ ˼Ƿɹ
+ע
+*********************************************************************/
+bool CDatabase_MySQL::Database_MYSQL_UserList(AUTHREG_USERTABLE*** pppSt_UserInfo, int* pInt_ListCount, int nPosStart, int nPosEnd)
+{
+ SQLPacket_IsErrorOccur = false;
+
+ //ѯ
+ XNETHANDLE xhTable = 0;
+ __int64u nRow = 0;
+ __int64u nColumn = 0;
+ char** ppszResult = NULL;
+ XCHAR tszSQLStatement[1024]; //SQL
+ memset(tszSQLStatement, '\0', 1024);
+
+ _xstprintf(tszSQLStatement, _X("SELECT * FROM Authorize_User LIMIT %d,%d"), nPosStart, nPosEnd - nPosStart);
+ if (!DataBase_MySQL_ExecuteQuery(xhData, &xhTable, tszSQLStatement, &nRow, &nColumn))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_GETTABLE;
+ return false;
+ }
+ if (nRow <= 0)
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_NOTUSER;
+ return false;
+ }
+ *pInt_ListCount = nRow;
+ BaseLib_OperatorMemory_Malloc((XPPPMEM)pppSt_UserInfo, (int)nRow, sizeof(AUTHREG_USERTABLE));
+
+ for (int i = 0; i < nRow; i++)
+ {
+ ppszResult = DataBase_MySQL_GetResult(xhData, xhTable);
+ //XLONG* pInt_Length = DataBase_MySQL_GetLength(xhData, xhTable);
+
+ //ID
+ int nFliedValue = 0;
+ nFliedValue++;
+ //û
+ _tcsxcpy((*pppSt_UserInfo)[i]->st_UserInfo.tszUserName, ppszResult[nFliedValue]);
+ //
+ nFliedValue++;
+ _tcsxcpy((*pppSt_UserInfo)[i]->st_UserInfo.tszUserPass, ppszResult[nFliedValue]);
+ //ʱ
+ nFliedValue++;
+ _tcsxcpy((*pppSt_UserInfo)[i]->tszLeftTime, ppszResult[nFliedValue]);
+ //ʼ
+ nFliedValue++;
+ _tcsxcpy((*pppSt_UserInfo)[i]->st_UserInfo.tszEMailAddr, ppszResult[nFliedValue]);
+ //Ӳ
+ nFliedValue++;
+ _tcsxcpy((*pppSt_UserInfo)[i]->tszHardCode, ppszResult[nFliedValue]);
+ //ֵ
+ nFliedValue++;
+ (*pppSt_UserInfo)[i]->enSerialType = (ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE)_ttxoi(ppszResult[nFliedValue]);
+ //QQ
+ nFliedValue++;
+ (*pppSt_UserInfo)[i]->st_UserInfo.nPhoneNumber = _ttxoll(ppszResult[nFliedValue]);
+ //֤ID
+ nFliedValue++;
+ (*pppSt_UserInfo)[i]->st_UserInfo.nIDNumber = _ttxoll(ppszResult[nFliedValue]);
+ //û -1ʾ
+ nFliedValue++;
+ (*pppSt_UserInfo)[i]->st_UserInfo.nUserLevel = _ttxoi(ppszResult[nFliedValue]);
+ //¼
+ nFliedValue++;
+ if (NULL != ppszResult[nFliedValue] && _tcsxlen(ppszResult[nFliedValue]) > 0)
+ {
+ _tcsxcpy((*pppSt_UserInfo)[i]->st_UserInfo.tszLoginTime, ppszResult[nFliedValue]);
+ }
+ //ע
+ nFliedValue++;
+ _tcsxcpy((*pppSt_UserInfo)[i]->st_UserInfo.tszCreateTime, ppszResult[nFliedValue]);
+ nFliedValue++;
+ }
+ DataBase_MySQL_FreeResult(xhData, xhTable);
+ return true;
+}
+/********************************************************************
+ƣDatabase_MYSQL_SerialInsert
+ܣһкŵݿ
+ .һlpszSerialNumber
+ In/OutIn
+ ַָͣ
+ ɿգN
+ ˼Ҫк
+ֵ
+ ͣ
+ ˼Ƿɹ
+ע
+*********************************************************************/
+bool CDatabase_MySQL::Database_MYSQL_SerialInsert(LPCXSTR lpszSerialNumber)
+{
+ SQLPacket_IsErrorOccur = false;
+
+ XCHAR tszSQLStatement[1024]; //SQL
+ memset(tszSQLStatement, '\0', 1024);
+
+ if (Database_MYSQL_SerialQuery(lpszSerialNumber))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_EXIST;
+ return false;
+ }
+ ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE enAuthSerialType;
+ XENGINE_LIBTIMER st_AuthTimer;
+ memset(&st_AuthTimer, '\0', sizeof(st_AuthTimer));
+
+ if (!Authorize_Serial_GetType(lpszSerialNumber, &enAuthSerialType, &st_AuthTimer))
+ {
+ return false;
+ }
+ if (ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_SECOND == enAuthSerialType)
+ {
+ _xstprintf(tszSQLStatement, _X("INSERT INTO Authorize_Serial values(NULL,'NOT','%s','%d','%d',0,NOW())"), lpszSerialNumber, st_AuthTimer.wSecond, enAuthSerialType);
+ }
+ else if (ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_DAY == enAuthSerialType)
+ {
+ _xstprintf(tszSQLStatement, _X("INSERT INTO Authorize_Serial values(NULL,'NOT','%s','%d','%d',0,NOW())"), lpszSerialNumber, st_AuthTimer.wDay, enAuthSerialType);
+ }
+ else if (ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_TIME == enAuthSerialType)
+ {
+ _xstprintf(tszSQLStatement, _X("INSERT INTO Authorize_Serial values(NULL,'NOT','%s','%d','%d',0,NOW())"), lpszSerialNumber, st_AuthTimer.wFlags, enAuthSerialType);
+ }
+ else if (ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_CUSTOM == enAuthSerialType)
+ {
+ XCHAR tszLeftTime[MAX_PATH];
+ memset(tszLeftTime, '\0', MAX_PATH);
+ _xstprintf(tszLeftTime, _X("%04d-%02d-%02d %02d:%02d:%02d"), st_AuthTimer.wYear, st_AuthTimer.wMonth, st_AuthTimer.wDay, st_AuthTimer.wHour, st_AuthTimer.wMinute, st_AuthTimer.wSecond);
+ _xstprintf(tszSQLStatement, _X("INSERT INTO Authorize_Serial values(NULL,'NOT','%s','%s','%d',0,NOW())"), lpszSerialNumber, tszLeftTime, enAuthSerialType);
+ }
+ else
+ {
+ _xstprintf(tszSQLStatement, _X("INSERT INTO Authorize_Serial values(NULL,'NOT','%s',0,'%d',0,NOW())"), lpszSerialNumber, enAuthSerialType);
+ }
+
+ if (!DataBase_MySQL_Execute(xhData, tszSQLStatement))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_ISFAILED;
+ return false;
+ }
+ return true;
+}
+/********************************************************************
+ƣDatabase_MYSQL_SerialDelete
+ܣݿɾָк
+ .һlpszSerialNumber
+ In/OutIn
+ ַָͣ
+ ɿգN
+ ˼Ҫɾк
+ֵ
+ ͣ
+ ˼Ƿɾɹ
+ע
+*********************************************************************/
+bool CDatabase_MySQL::Database_MYSQL_SerialDelete(LPCXSTR lpszSerialNumber)
+{
+ SQLPacket_IsErrorOccur = false;
+
+ XCHAR tszSQLStatement[1024]; //SQL
+ memset(tszSQLStatement, '\0', 1024);
+ _xstprintf(tszSQLStatement, _X("delete from Authorize_Serial where SerialNumber = '%s'"), lpszSerialNumber);
+ //ִ
+ if (!DataBase_MySQL_Execute(xhData, tszSQLStatement))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_ISFAILED;
+ return false;
+ }
+ return true;
+}
+/********************************************************************
+ƣDatabase_MYSQL_SerialQuery
+ܣѯһָкϢ
+ .һlpszSerialNumber
+ In/OutIn
+ ַָͣ
+ ɿգN
+ ˼Ҫѯк
+ .pSt_SerialTable
+ In/OutOut
+ ͣݽṹָ
+ ɿգY
+ ˼ѯϢΪNULL˲
+ֵ
+ ͣ
+ ˼ǷѯɹڶΪNULLôֻǷк
+ע
+*********************************************************************/
+bool CDatabase_MySQL::Database_MYSQL_SerialQuery(LPCXSTR lpszSerialNumber, LPAUTHREG_SERIALTABLE pSt_SerialTable)
+{
+ SQLPacket_IsErrorOccur = false;
+ XCHAR tszSQLStatement[1024]; //SQL
+ char** ppszResult = NULL;
+ XNETHANDLE xhTable = 0;
+ __int64u nRow = 0;
+ __int64u nColumn = 0;
+ memset(tszSQLStatement, '\0', 1024);
+
+ _xstprintf(tszSQLStatement, _X("select * from Authorize_Serial where SerialNumber = '%s'"), lpszSerialNumber);
+ if (!DataBase_MySQL_ExecuteQuery(xhData, &xhTable, tszSQLStatement, &nRow, &nColumn)) {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_GETTABLE;
+ return false;
+ }
+
+ if (nRow <= 0)
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_SERIAL;
+ return false;
+ }
+ ppszResult = DataBase_MySQL_GetResult(xhData, xhTable);
+ //XLONG* pInt_Length = DataBase_MySQL_GetLength(xhData, xhTable);
+
+ if (NULL != pSt_SerialTable)
+ {
+ memset(pSt_SerialTable, '\0', sizeof(AUTHREG_SERIALTABLE));
+ //ID
+ int nFliedValue = 0;
+ //ʹ
+ nFliedValue++;
+ _tcsxcpy(pSt_SerialTable->tszUserName, ppszResult[nFliedValue]);
+ //к
+ nFliedValue++;
+ _tcsxcpy(pSt_SerialTable->tszSerialNumber, ppszResult[nFliedValue]);
+ //ʱʱ
+ nFliedValue++;
+ _tcsxcpy(pSt_SerialTable->tszMaxTime, ppszResult[nFliedValue]);
+ //п
+ nFliedValue++;
+ pSt_SerialTable->enSerialType = (ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE)_ttxoi(ppszResult[nFliedValue]);
+ //ǷѾʹ
+ nFliedValue++;
+ pSt_SerialTable->bIsUsed = _ttxoi(ppszResult[nFliedValue]);
+ //ʱʱ
+ nFliedValue++;
+ _tcsxcpy(pSt_SerialTable->tszCreateTime, ppszResult[nFliedValue]);
+ }
+
+ DataBase_MySQL_FreeResult(xhData, xhTable);
+ return true;
+}
+/********************************************************************
+ƣDatabase_MYSQL_SerialQueryAll
+ܣѯпек
+ .һpppSt_SerialTable
+ In/OutOut
+ ָͣ
+ ɿգN
+ ˼пб
+ .pInt_ListCount
+ In/OutOut
+ ָͣ
+ ɿգY
+ ˼ſ
+ .nPosStart
+ In/OutIn
+ ͣ
+ ɿգY
+ ˼ʼλ
+ .ģnPosEnd
+ In/OutIn
+ ͣ
+ ɿգY
+ ˼λ
+ֵ
+ ͣ
+ ˼Ƿѯɹ
+עһҪûͷڴ溯ڴͷ
+*********************************************************************/
+bool CDatabase_MySQL::Database_MYSQL_SerialQueryAll(AUTHREG_SERIALTABLE*** pppSt_SerialTable, int* pInt_ListCount, int nPosStart, int nPosEnd)
+{
+ SQLPacket_IsErrorOccur = false;
+
+ XNETHANDLE xhTable = 0;
+ __int64u nRow = 0;
+ __int64u nColumn = 0;
+ char** ppszResult = NULL;
+ XCHAR tszSQLStatement[1024]; //SQL
+
+ memset(tszSQLStatement, '\0', 1024);
+
+ _xstprintf(tszSQLStatement, _X("SELECT * FROM Authorize_Serial LIMIT %d,%d"), nPosStart, nPosEnd - nPosStart);
+ if (!DataBase_MySQL_ExecuteQuery(xhData, &xhTable, tszSQLStatement, &nRow, &nColumn))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_GETTABLE;
+ return false;
+ }
+ if (nRow <= 0)
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_NONE;
+ return false;
+ }
+ BaseLib_OperatorMemory_Malloc((XPPPMEM)pppSt_SerialTable, (int)nRow, sizeof(AUTHREG_SERIALTABLE));
+
+ *pInt_ListCount = nRow;
+
+ for (int i = 0; i < nRow; i++)
+ {
+ // ȡݿ
+ ppszResult = DataBase_MySQL_GetResult(xhData, xhTable);
+ //XLONG* pInt_Length = DataBase_MySQL_GetLength(xhData, xhTable);
+
+ int nFliedValue = 0;
+ //ID
+ nFliedValue++;
+ //ʹ
+ _tcsxcpy((*pppSt_SerialTable)[i]->tszUserName, ppszResult[nFliedValue]);
+ nFliedValue++;
+ //к
+ _tcsxcpy((*pppSt_SerialTable)[i]->tszSerialNumber, ppszResult[nFliedValue]);
+ nFliedValue++;
+ //ʱʱ
+ _tcsxcpy((*pppSt_SerialTable)[i]->tszMaxTime, ppszResult[nFliedValue]);
+ nFliedValue++;
+ //п
+ (*pppSt_SerialTable)[i]->enSerialType = (ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE)_ttxoi(ppszResult[nFliedValue]);
+ nFliedValue++;
+ //ǷѾʹ
+ (*pppSt_SerialTable)[i]->bIsUsed = _ttxoi(ppszResult[nFliedValue]);
+ nFliedValue++;
+ //ʱ
+ _tcsxcpy((*pppSt_SerialTable)[i]->tszCreateTime, ppszResult[nFliedValue]);
+ nFliedValue++;
+ }
+ DataBase_MySQL_FreeResult(xhData, xhTable);
+ return true;
+}
+/********************************************************************
+ƣDatabase_MYSQL_SerialPush
+ܣһָкϢ
+ .һpSt_SerialTable
+ In/OutIn
+ ͣݽṹָ
+ ɿգN
+ ˼ҪϢ
+ֵ
+ ͣ
+ ˼Ƿɹ
+ע
+*********************************************************************/
+bool CDatabase_MySQL::Database_MYSQL_SerialPush(AUTHREG_SERIALTABLE* pSt_SerialTable)
+{
+ SQLPacket_IsErrorOccur = false;
+
+ XCHAR tszSQLStatement[1024]; //SQL
+ memset(tszSQLStatement, '\0', 1024);
+
+ if (Database_MYSQL_SerialQuery(pSt_SerialTable->tszSerialNumber))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_EXIST;
+ return false;
+ }
+ _xstprintf(tszSQLStatement, _X("INSERT INTO Authorize_Serial values(NULL,'%s','%s','%s',%d,%d,'%s')"), pSt_SerialTable->tszUserName, pSt_SerialTable->tszSerialNumber, pSt_SerialTable->tszMaxTime, pSt_SerialTable->enSerialType, pSt_SerialTable->bIsUsed, pSt_SerialTable->tszCreateTime);
+
+ if (!DataBase_MySQL_Execute(xhData, tszSQLStatement))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_ISFAILED;
+ return false;
+ }
+ return true;
+}
+/********************************************************************
+ƣDatabase_MYSQL_TryInsert
+ܣʹģʽһ
+ .һpSt_AuthVer
+ In/OutIn
+ ͣݽṹָ
+ ɿգN
+ ˼Ҫ
+ֵ
+ ͣ
+ ˼Ƿɹ
+ע
+*********************************************************************/
+bool CDatabase_MySQL::Database_MYSQL_TryInsert(AUTHREG_TEMPVER* pSt_AuthVer)
+{
+ SQLPacket_IsErrorOccur = false;
+
+ if (NULL == pSt_AuthVer)
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_PARAMENT;
+ return false;
+ }
+ XCHAR tszSQLStatement[1024];
+ AUTHREG_TEMPVER st_AuthVer;
+
+ memset(tszSQLStatement, '\0', 1024);
+ memset(&st_AuthVer, '\0', sizeof(AUTHREG_TEMPVER));
+ //printf("444444444444\n");
+ //֤Ƿ
+ _tcsxcpy(st_AuthVer.tszVSerial, pSt_AuthVer->tszVSerial);
+ if (Database_MYSQL_TryQuery(&st_AuthVer))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_EXIST;
+ return false;
+ }
+ //ݿ
+ _xstprintf(tszSQLStatement, _X("INSERT INTO Authorize_TempVer(tszVSerial,nVMode,nVTime,nLTime,CreateTime) VALUES('%s',%d,%d,%d,NOW())"), pSt_AuthVer->tszVSerial, pSt_AuthVer->enVMode, pSt_AuthVer->nVTime, pSt_AuthVer->nVTime);
+
+ //printf("ʹģʽһݣSQL%s\n", tszSQLStatement);
+ if (!DataBase_MySQL_Execute(xhData, tszSQLStatement))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = DataBase_GetLastError();
+ return false;
+ }
+ return true;
+}
+/********************************************************************
+ƣDatabase_MYSQL_TryQuery
+ܣкŲѯ
+ .һpSt_AuthVer
+ In/OutIn/Out
+ ͣݽṹָ
+ ɿգN
+ ˼к,ȡ
+ֵ
+ ͣ
+ ˼Ƿɹ
+ע
+*********************************************************************/
+bool CDatabase_MySQL::Database_MYSQL_TryQuery(AUTHREG_TEMPVER* pSt_AuthVer)
+{
+ SQLPacket_IsErrorOccur = false;
+
+ if (NULL == pSt_AuthVer)
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_PARAMENT;
+ return false;
+ }
+ XNETHANDLE xhTable = 0;
+ __int64u nColumn = 0;
+ __int64u nRow = 0;
+ XCHAR** ppszResult = NULL;
+ XCHAR tszSQLStatement[1024]; //SQL
+
+ memset(tszSQLStatement, '\0', 1024);
+ _xstprintf(tszSQLStatement, _X("SELECT * FROM Authorize_TempVer WHERE tszVSerial = '%s'"), pSt_AuthVer->tszVSerial);
+
+ //printf("кŲѯLSQL䣺%s\n", tszSQLStatement);
+ if (!DataBase_MySQL_ExecuteQuery(xhData, &xhTable, tszSQLStatement, &nRow, &nColumn))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = DataBase_GetLastError();
+ return false;
+ }
+
+ //printf("3333 :%d :%d\n", nRow, nColumn);
+
+ if (nRow <= 0)
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_NONE;
+ return false;
+ }
+ ppszResult = DataBase_MySQL_GetResult(xhData, xhTable);
+ //XLONG* pInt_Length = DataBase_MySQL_GetLength(xhData, xhTable);
+
+ //ID
+ int nFliedValue = 0;
+ nFliedValue++;
+ //к
+ nFliedValue++;
+
+ //
+ if (NULL != ppszResult[nFliedValue]) {
+ pSt_AuthVer->enVMode = (ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE)_ttxoi(ppszResult[nFliedValue]);
+ }
+
+ //ʱ
+ nFliedValue++;
+ if (NULL != ppszResult[nFliedValue]) {
+ pSt_AuthVer->nVTime = _ttxoi(ppszResult[nFliedValue]);
+ }
+
+ //ʣʱ
+ nFliedValue++;
+ if (NULL != ppszResult[nFliedValue]) {
+ pSt_AuthVer->nLTime = _ttxoi(ppszResult[nFliedValue]);
+ }
+
+ //עʱ
+ nFliedValue++;
+ if (NULL != ppszResult[nFliedValue]) {
+ _tcsxcpy(pSt_AuthVer->tszVDate, ppszResult[nFliedValue]);
+ }
+
+ DataBase_MySQL_FreeResult(xhData, xhTable);
+ return true;
+}
+/********************************************************************
+ƣDatabase_MYSQL_TryDelete
+ܣɾһָ
+ .һlpszSerial
+ In/OutIn
+ ַָͣ
+ ɿգN
+ ˼Ҫɾк
+ֵ
+ ͣ
+ ˼Ƿɹ
+ע
+*********************************************************************/
+bool CDatabase_MySQL::Database_MYSQL_TryDelete(LPCXSTR lpszSerial)
+{
+ SQLPacket_IsErrorOccur = false;
+
+ if (NULL == lpszSerial)
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_PARAMENT;
+ return false;
+ }
+ XCHAR tszSQLStatement[1024];
+ memset(tszSQLStatement, '\0', 1024);
+
+ _xstprintf(tszSQLStatement, _X("DELETE FROM Authorize_TempVer WHERE tszVSerial = '%s'"), lpszSerial);
+
+ if (!DataBase_MySQL_Execute(xhData, tszSQLStatement))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = DataBase_GetLastError();
+ return false;
+ }
+ return true;
+}
+/********************************************************************
+ƣDatabase_MYSQL_TryClear
+ܣ,Զ
+ .һnThanValue
+ In/OutIn
+ ͣ
+ ɿգN
+ ˼жҪڴ˵ֵ
+ .enVMode
+ In/OutIn
+ ͣö
+ ɿգY
+ ˼жע,Ĭϲжȫִ
+ֵ
+ ͣ
+ ˼Ƿɹ
+ע
+*********************************************************************/
+bool CDatabase_MySQL::Database_MYSQL_TryClear(int nThanValue, ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE enVerMode)
+{
+ SQLPacket_IsErrorOccur = false;
+
+ XNETHANDLE xhTable = 0;
+ __int64u nRow = 0;
+ __int64u nColumn = 0;
+ XCHAR** ppszResult = NULL;
+ XCHAR tszSQLStatement[1024]; //SQL
+
+ memset(tszSQLStatement, '\0', 1024);
+ _xstprintf(tszSQLStatement, _X("SELECT * FROM Authorize_TempVer"));
+
+ if (!DataBase_MySQL_ExecuteQuery(xhData, &xhTable, tszSQLStatement, &nRow, &nColumn))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = DataBase_GetLastError();
+ return false;
+ }
+
+ list stl_ListVer;
+ //ѵ
+ for (int i = 0; i < nRow; i++)
+ {
+ ppszResult = DataBase_MySQL_GetResult(xhData, xhTable);
+ //XLONG* pInt_Length = DataBase_MySQL_GetLength(xhData, xhTable);
+
+ int nFliedValue = 0;
+ AUTHREG_TEMPVER st_AuthVer;
+ memset(&st_AuthVer, '\0', sizeof(AUTHREG_TEMPVER));
+ //ID
+ nFliedValue++;
+ //к
+ _tcsxcpy(st_AuthVer.tszVSerial, ppszResult[nFliedValue]);
+ nFliedValue++;
+ //ģʽ
+ st_AuthVer.enVMode = (ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE)_ttxoi(ppszResult[nFliedValue]);
+ nFliedValue++;
+ //ʱ
+ st_AuthVer.nVTime = _ttxoi(ppszResult[nFliedValue]);
+ nFliedValue++;
+ //ʱ
+ st_AuthVer.nLTime = _ttxoi(ppszResult[nFliedValue]);
+ nFliedValue++;
+ //עʱ
+ _tcsxcpy(st_AuthVer.tszVDate, ppszResult[nFliedValue]);
+
+ stl_ListVer.push_back(st_AuthVer);
+ }
+ DataBase_MySQL_FreeResult(xhData, xhTable);
+ //
+ list::const_iterator stl_ListIterator = stl_ListVer.begin();
+ for (; stl_ListIterator != stl_ListVer.end(); stl_ListIterator++)
+ {
+ //жDzDzעģʽֱ
+ if (ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_UNKNOW == enVerMode)
+ {
+ if (nThanValue > stl_ListIterator->nVTime)
+ {
+ memset(tszSQLStatement, '\0', 1024);
+ _xstprintf(tszSQLStatement, _X("DELETE FROM Authorize_TempVer WHERE tszVSerial = '%s'"), stl_ListIterator->tszVSerial);
+
+ if (!DataBase_MySQL_Execute(xhData, tszSQLStatement))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = DataBase_GetLastError();
+ return false;
+ }
+ }
+ }
+ else
+ {
+ if (enVerMode == stl_ListIterator->enVMode)
+ {
+ memset(tszSQLStatement, '\0', 1024);
+ _xstprintf(tszSQLStatement, _X("DELETE FROM Authorize_TempVer WHERE tszVSerial = '%s'"), stl_ListIterator->tszVSerial);
+
+ if (!DataBase_MySQL_Execute(xhData, tszSQLStatement))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = DataBase_GetLastError();
+ return false;
+ }
+ }
+ }
+ }
+ stl_ListVer.clear();
+ return true;
+}
+/********************************************************************
+ƣDatabase_MYSQL_TrySet
+ܣûϢ
+ .һpSt_AuthVer
+ In/OutIn
+ ͣݽṹָ
+ ɿգN
+ ˼ҪµûϢ
+ֵ
+ ͣ
+ ˼Ƿɹ
+ע
+*********************************************************************/
+bool CDatabase_MySQL::Database_MYSQL_TrySet(AUTHREG_TEMPVER* pSt_AuthVer)
+{
+ SQLPacket_IsErrorOccur = false;
+
+ XCHAR tszSQLStatement[1024];
+ memset(tszSQLStatement, '\0', sizeof(tszSQLStatement));
+
+ _xstprintf(tszSQLStatement, _X("UPDATE Authorize_TempVer SET nVMode = '%d',nVTime = '%d',nLTime = '%d',CreateTime = '%s' WHERE tszVSerial = '%s'"), pSt_AuthVer->enVMode, pSt_AuthVer->nVTime, pSt_AuthVer->nLTime, pSt_AuthVer->tszVDate, pSt_AuthVer->tszVSerial);
+ //û
+ if (!DataBase_MySQL_Execute(xhData, tszSQLStatement))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = DataBase_GetLastError();
+ return false;
+ }
+ return true;
+}
+/********************************************************************
+ƣDatabase_MYSQL_TryList
+ܣб
+ .һpppSt_AuthVer
+ In/OutOut
+ ָͣ
+ ɿգN
+ ˼ȡб
+ .pInt_ListCount
+ In/OutOut
+ ָͣ
+ ɿգN
+ ˼б
+ .nPosStart
+ In/OutIn
+ ͣ
+ ɿգN
+ ˼ѯʼ
+ .ģnPosEnd
+ In/OutIn
+ ͣ
+ ɿգN
+ ˼ѯ
+ֵ
+ ͣ
+ ˼Ƿɹ
+ע
+*********************************************************************/
+bool CDatabase_MySQL::Database_MYSQL_TryList(AUTHREG_TEMPVER*** pppSt_AuthVer, int* pInt_ListCount, int nPosStart, int nPosEnd)
+{
+ SQLPacket_IsErrorOccur = false;
+
+ XNETHANDLE xhTable = 0;
+ __int64u nColumn = 0;
+ __int64u nRow = 0;
+ XCHAR** ppszResult = NULL;
+ XCHAR tszSQLStr[1024]; //SQL
+
+ memset(tszSQLStr, '\0', 1024);
+ _xstprintf(tszSQLStr, _X("SELECT * FROM Authorize_TempVer LIMIT %d,%d"), nPosStart, nPosEnd - nPosStart);
+
+ if (!DataBase_MySQL_ExecuteQuery(xhData, &xhTable, tszSQLStr, &nRow, &nColumn))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = DataBase_GetLastError();
+ return false;
+ }
+ BaseLib_OperatorMemory_Malloc((XPPPMEM)pppSt_AuthVer, (int)nRow, sizeof(AUTHREG_TEMPVER));
+
+ //ѵ
+ for (int i = 0; i < nRow; i++)
+ {
+ ppszResult = DataBase_MySQL_GetResult(xhData, xhTable);
+ //XLONG* pInt_Length = DataBase_MySQL_GetLength(xhData, xhTable);
+
+ int nFliedValue = 0;
+ //ID
+ (*pppSt_AuthVer)[i]->nID = _ttxoi(ppszResult[nFliedValue]);
+ nFliedValue++;
+ //Ƿ
+ _tcsxcpy((*pppSt_AuthVer)[i]->tszVSerial, ppszResult[nFliedValue]);
+ nFliedValue++;
+ //
+ (*pppSt_AuthVer)[i]->enVMode = (ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE)_ttxoi(ppszResult[nFliedValue]);
+ nFliedValue++;
+ //ʱ
+ (*pppSt_AuthVer)[i]->nVTime = _ttxoi(ppszResult[nFliedValue]);
+ nFliedValue++;
+ //ʱ
+ (*pppSt_AuthVer)[i]->nLTime = _ttxoi(ppszResult[nFliedValue]);
+ nFliedValue++;
+ //עʱ
+ _tcsxcpy((*pppSt_AuthVer)[i]->tszVDate, ppszResult[nFliedValue]);
+ nFliedValue++;
+ }
+ *pInt_ListCount = nRow;
+ DataBase_MySQL_FreeResult(xhData, xhTable);
+ return true;
+}
+/********************************************************************
+ƣDatabase_MYSQL_BannedInsert
+ܣб
+ .һpSt_Banned
+ In/OutIn
+ ͣݽṹָ
+ ɿգN
+ ˼Ҫ
+ֵ
+ ͣ
+ ˼Ƿɹ
+ע
+*********************************************************************/
+bool CDatabase_MySQL::Database_MYSQL_BannedInsert(AUTHREG_BANNED* pSt_Banned)
+{
+ SQLPacket_IsErrorOccur = false;
+
+ if (NULL == pSt_Banned)
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_PARAMENT;
+ return false;
+ }
+ //ֱӷ
+ if (Database_MYSQL_BannedExist(pSt_Banned))
+ {
+ return true;
+ }
+ XCHAR tszSQLStatement[1024];
+ memset(tszSQLStatement, '\0', sizeof(tszSQLStatement));
+ //
+ if (_tcsxlen(pSt_Banned->tszUserName) > 0)
+ {
+ _xstprintf(tszSQLStatement, _X("INSERT INTO Authorize_BannedUser(bEnable,tszUserName,tszLeftTime,tszCreateTime) VALUES(%d,'%s','%s',NOW())"), pSt_Banned->bEnable, pSt_Banned->tszUserName, pSt_Banned->tszLeftTime);
+ }
+ else
+ {
+ _xstprintf(tszSQLStatement, _X("INSERT INTO Authorize_BannedAddr(bEnable,tszIPAddr,tszLeftTime,tszCreateTime) VALUES(%d,'%s','%s',NOW())"), pSt_Banned->bEnable, pSt_Banned->tszIPAddr, pSt_Banned->tszLeftTime);
+ }
+
+ //printf("б(SQL):%s\n", tszSQLStatement);
+ //ݿ
+ if (!DataBase_MySQL_Execute(xhData, tszSQLStatement))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = DataBase_GetLastError();
+ return false;
+ }
+ return true;
+}
+/********************************************************************
+ƣDatabase_MYSQL_BannedDelete
+ܣбɾ
+ .һpSt_Banned
+ In/OutIn
+ ͣݽṹָ
+ ɿգN
+ ˼Ҫ
+ֵ
+ ͣ
+ ˼Ƿɹ
+ע
+*********************************************************************/
+bool CDatabase_MySQL::Database_MYSQL_BannedDelete(AUTHREG_BANNED* pSt_Banned)
+{
+ SQLPacket_IsErrorOccur = false;
+
+ if (NULL == pSt_Banned)
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_PARAMENT;
+ return false;
+ }
+ XCHAR tszSQLStatement[1024];
+ memset(tszSQLStatement, '\0', 1024);
+ //
+ if (_tcsxlen(pSt_Banned->tszUserName) > 0)
+ {
+ _xstprintf(tszSQLStatement, _X("DELETE FROM Authorize_BannedUser WHERE tszUserName = '%s'"), pSt_Banned->tszUserName);
+ }
+ else
+ {
+ _xstprintf(tszSQLStatement, _X("DELETE FROM Authorize_BannedAddr WHERE tszIPAddr = '%s'"), pSt_Banned->tszIPAddr);
+ }
+ //ݿ
+ if (!DataBase_MySQL_Execute(xhData, tszSQLStatement))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = DataBase_GetLastError();
+ return false;
+ }
+ return true;
+}
+/********************************************************************
+ƣDatabase_MYSQL_BannedList
+ܣбѯ
+ .һpppSt_BannedUser
+ In/OutOut
+ ָͣ
+ ɿգN
+ ˼õûб
+ .pInt_UserCount
+ In/OutOut
+ ָͣ
+ ɿգN
+ ˼ûб
+ .pppSt_BannedAddr
+ In/OutOut
+ ָͣ
+ ɿգN
+ ˼õIPַб
+ .ģpInt_AddrCount
+ In/OutOut
+ ָͣ
+ ɿգN
+ ˼ַб
+ .壺nPosStart
+ In/OutIn
+ ͣ
+ ɿգN
+ ˼ʼλ
+ .nPosEnd
+ In/OutIn
+ ͣ
+ ɿգN
+ ˼ҽλ
+ֵ
+ ͣ
+ ˼Ƿɹ
+ע
+*********************************************************************/
+bool CDatabase_MySQL::Database_MYSQL_BannedList(AUTHREG_BANNED*** pppSt_BannedUser, int* pInt_UserCount, AUTHREG_BANNED*** pppSt_BannedAddr, int* pInt_AddrCount, int nPosStart, int nPosEnd)
+{
+ SQLPacket_IsErrorOccur = false;
+ //ѯ
+ XNETHANDLE xhTable = 0;
+ __int64u nColumn = 0;
+ __int64u nRow = 0;
+
+ XCHAR** ppszResult = NULL;
+ XCHAR tszSQLStatement[1024]; //SQL
+
+ memset(tszSQLStatement, '\0', 1024);
+ _xstprintf(tszSQLStatement, _X("SELECT * FROM Authorize_BannedAddr LIMIT %d,%d"), nPosStart, nPosEnd - nPosStart);
+
+ if (!DataBase_MySQL_ExecuteQuery(xhData, &xhTable, tszSQLStatement, &nRow, &nColumn))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = DataBase_GetLastError();
+ return false;
+ }
+
+ list stl_ListAddr;
+ //ѵ
+ for (int i = 0; i < nRow; i++)
+ {
+ ppszResult = DataBase_MySQL_GetResult(xhData, xhTable);
+ //XLONG* pInt_Length = DataBase_MySQL_GetLength(xhData, xhTable);
+ int nFliedValue = 0;
+
+ AUTHREG_BANNED st_Banned;
+ memset(&st_Banned, '\0', sizeof(AUTHREG_BANNED));
+ //ID
+ st_Banned.nID = _ttxoll(ppszResult[nFliedValue]);
+ nFliedValue++;
+ //Ƿ
+ st_Banned.bEnable = _ttxoi(ppszResult[nFliedValue]);
+ nFliedValue++;
+ //ַ
+ _tcsxcpy(st_Banned.tszIPAddr, ppszResult[nFliedValue]);
+ nFliedValue++;
+ //ʱ
+ _tcsxcpy(st_Banned.tszLeftTime, ppszResult[nFliedValue]);
+ nFliedValue++;
+ //עʱ
+ _tcsxcpy(st_Banned.tszCreateTime, ppszResult[nFliedValue]);
+ nFliedValue++;
+
+ stl_ListAddr.push_back(st_Banned);
+ }
+ DataBase_MySQL_FreeResult(xhData, xhTable);
+ //ûб
+ xhTable = 0;
+ nRow = 0;
+ nColumn = 0;
+ ppszResult = NULL;
+ memset(tszSQLStatement, '\0', 1024);
+ _xstprintf(tszSQLStatement, _X("SELECT * FROM Authorize_BannedUser LIMIT %d,%d"), nPosStart, nPosEnd - nPosStart);
+
+ if (!DataBase_MySQL_ExecuteQuery(xhData, &xhTable, tszSQLStatement, &nRow, &nColumn))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = DataBase_GetLastError();
+ return false;
+ }
+
+ list stl_ListUser;
+ //ѵ
+ for (int i = 0; i < nRow; i++)
+ {
+ AUTHREG_BANNED st_Banned;
+ memset(&st_Banned, '\0', sizeof(AUTHREG_BANNED));
+
+ ppszResult = DataBase_MySQL_GetResult(xhData, xhTable);
+ //XLONG* pInt_Length = DataBase_MySQL_GetLength(xhData, xhTable);
+ int nFliedValue = 0;
+
+ //ID
+ st_Banned.nID = _ttxoll(ppszResult[nFliedValue]);
+ nFliedValue++;
+ //Ƿ
+ st_Banned.bEnable = _ttxoi(ppszResult[nFliedValue]);
+ nFliedValue++;
+ //û
+ _tcsxcpy(st_Banned.tszUserName, ppszResult[nFliedValue]);
+ nFliedValue++;
+ //ʱ
+ _tcsxcpy(st_Banned.tszLeftTime, ppszResult[nFliedValue]);
+ nFliedValue++;
+ //עʱ
+ _tcsxcpy(st_Banned.tszCreateTime, ppszResult[nFliedValue]);
+ nFliedValue++;
+
+ stl_ListUser.push_back(st_Banned);
+ }
+ DataBase_MySQL_FreeResult(xhData, xhTable);
+ //
+ *pInt_AddrCount = stl_ListAddr.size();
+ *pInt_UserCount = stl_ListUser.size();
+ BaseLib_OperatorMemory_Malloc((XPPPMEM)pppSt_BannedAddr, stl_ListAddr.size(), sizeof(AUTHREG_BANNED));
+ BaseLib_OperatorMemory_Malloc((XPPPMEM)pppSt_BannedUser, stl_ListUser.size(), sizeof(AUTHREG_BANNED));
+
+ list::const_iterator stl_ListIterator = stl_ListAddr.begin();
+ for (int i = 0; stl_ListIterator != stl_ListAddr.end(); stl_ListIterator++, i++)
+ {
+ (*pppSt_BannedAddr)[i]->nID = stl_ListIterator->nID;
+ (*pppSt_BannedAddr)[i]->bEnable = stl_ListIterator->bEnable;
+ _tcsxcpy((*pppSt_BannedAddr)[i]->tszIPAddr, stl_ListIterator->tszIPAddr);
+ _tcsxcpy((*pppSt_BannedAddr)[i]->tszLeftTime, stl_ListIterator->tszLeftTime);
+ _tcsxcpy((*pppSt_BannedAddr)[i]->tszCreateTime, stl_ListIterator->tszCreateTime);
+ }
+ stl_ListIterator = stl_ListUser.begin();
+ for (int i = 0; stl_ListIterator != stl_ListUser.end(); stl_ListIterator++, i++)
+ {
+ (*pppSt_BannedUser)[i]->nID = stl_ListIterator->nID;
+ (*pppSt_BannedUser)[i]->bEnable = stl_ListIterator->bEnable;
+ _tcsxcpy((*pppSt_BannedUser)[i]->tszUserName, stl_ListIterator->tszUserName);
+ _tcsxcpy((*pppSt_BannedUser)[i]->tszLeftTime, stl_ListIterator->tszLeftTime);
+ _tcsxcpy((*pppSt_BannedUser)[i]->tszCreateTime, stl_ListIterator->tszCreateTime);
+ }
+
+ stl_ListAddr.clear();
+ stl_ListUser.clear();
+ return true;
+}
+/********************************************************************
+ƣDatabase_MYSQL_BannedExist
+ܣǷںб
+ .һpSt_Banned
+ In/OutIn
+ ͣݽṹָ
+ ɿգN
+ ˼Ҫ
+ֵ
+ ͣ
+ ˼Ƿɹ
+ע
+*********************************************************************/
+bool CDatabase_MySQL::Database_MYSQL_BannedExist(AUTHREG_BANNED* pSt_Banned)
+{
+ SQLPacket_IsErrorOccur = false;
+ XCHAR** ppszResult = nullptr;
+ XLONG* pInt_Length = nullptr;
+
+ //жûǷ
+ if (_tcsxlen(pSt_Banned->tszUserName) > 0)
+ {
+ __int64u nRow = 0;
+ __int64u nColumn = 0;
+ XNETHANDLE xhTable = 0;
+
+ XCHAR tszSQLStatement[1024];
+ memset(tszSQLStatement, '\0', 1024);
+
+ _xstprintf(tszSQLStatement, _X("SELECT * FROM Authorize_BannedUser WHERE tszUserName = '%s'"), pSt_Banned->tszUserName);
+
+
+ if (!DataBase_MySQL_ExecuteQuery(xhData, &xhTable, tszSQLStatement, &nRow, &nColumn))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = DataBase_GetLastError();
+ return false;
+ }
+
+ if (nRow <= 0)
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_GETTABLE;
+ DataBase_MySQL_FreeResult(xhData, xhTable);
+ return false;
+ }
+
+ ppszResult = DataBase_MySQL_GetResult(xhData, xhTable);
+ pInt_Length = DataBase_MySQL_GetLength(xhData, xhTable);
+
+ //ID
+ int nFliedValue = 0;
+ if (NULL != ppszResult[nFliedValue]) {
+ pSt_Banned->nID = _ttxoll(ppszResult[nFliedValue]);
+ }
+ //Ƿ
+ nFliedValue++;
+ if (NULL != ppszResult[nFliedValue]) {
+ pSt_Banned->bEnable = _ttxoi(ppszResult[nFliedValue]);
+ }
+
+ //ַ
+ nFliedValue++;
+
+ //ʱ
+ nFliedValue++;
+ if (NULL != ppszResult[nFliedValue]) {
+ _tcsxcpy(pSt_Banned->tszLeftTime, ppszResult[nFliedValue]);
+ }
+
+ //עʱ
+ nFliedValue++;
+ if (NULL != ppszResult[nFliedValue]) {
+ _tcsxcpy(pSt_Banned->tszCreateTime, ppszResult[nFliedValue]);
+ }
+
+ DataBase_MySQL_FreeResult(xhData, xhTable);
+ }
+
+ //жIPַǷ
+ if (_tcsxlen(pSt_Banned->tszIPAddr) > 0)
+ {
+ XNETHANDLE xhTable = 0;
+ __int64u nRow = 0;
+ __int64u nColumn = 0;
+ ppszResult = nullptr;
+ pInt_Length = nullptr;
+
+ XCHAR tszSQLStatement[1024];
+ memset(tszSQLStatement, '\0', 1024);
+
+ _xstprintf(tszSQLStatement, _X("SELECT * FROM Authorize_BannedAddr WHERE tszIPAddr = '%s'"), pSt_Banned->tszIPAddr);
+
+ if (!DataBase_MySQL_ExecuteQuery(xhData, &xhTable, tszSQLStatement, &nRow, &nColumn))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = DataBase_GetLastError();
+ DataBase_MySQL_FreeResult(xhData, xhTable);
+ return false;
+ }
+ //printf("2 :%d :%d\n", nRow, nColumn);
+
+ if (nRow <= 0)
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_GETTABLE;
+ DataBase_MySQL_FreeResult(xhData, xhTable);
+ return false;
+ }
+ ppszResult = DataBase_MySQL_GetResult(xhData, xhTable);
+ pInt_Length = DataBase_MySQL_GetLength(xhData, xhTable);
+
+ //ID
+ int nFliedValue = 0;
+ if (NULL != ppszResult[nFliedValue])
+ {
+ //printf("%d ID%s\n", nFliedValue, ppszResult[nFliedValue]);
+ pSt_Banned->nID = _ttxoll(ppszResult[nFliedValue]);
+ }
+
+ //Ƿ
+ nFliedValue++;
+ if (NULL != ppszResult[nFliedValue])
+ {
+ //printf("%d Ƿã%s\n", nFliedValue, ppszResult[nFliedValue]);
+ pSt_Banned->bEnable = _ttxoi(ppszResult[nFliedValue]);
+ }
+
+ //ַ
+ nFliedValue++;
+
+ //ʱ
+ nFliedValue++;
+ if (NULL != ppszResult[nFliedValue])
+ {
+ //printf("%d ʱ䣺%s\n", nFliedValue, ppszResult[nFliedValue]);
+ _tcsxcpy(pSt_Banned->tszLeftTime, ppszResult[nFliedValue]);
+ }
+
+
+ //עʱ
+ nFliedValue++;
+ if (NULL != ppszResult[nFliedValue])
+ {
+ //printf("%d עʱ䣺%s\n", nFliedValue, ppszResult[nFliedValue]);
+ _tcsxcpy(pSt_Banned->tszCreateTime, ppszResult[nFliedValue]);
+ }
+
+ DataBase_MySQL_FreeResult(xhData, xhTable);
+ }
+ //Ƿ
+ if (!pSt_Banned->bEnable)
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_NOTENABLE;
+ return false;
+ }
+ if (_tcsxlen(pSt_Banned->tszLeftTime) > 0)
+ {
+ __int64x nTimer = 0;
+ XCHAR tszStrTime[128];
+ memset(tszStrTime, '\0', sizeof(tszStrTime));
+ BaseLib_OperatorTime_TimeToStr(tszStrTime);
+ BaseLib_OperatorTimeSpan_GetForStr(pSt_Banned->tszLeftTime, tszStrTime, &nTimer, 3);
+ if (nTimer > 0)
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_TIMELEFT;
+ return false;
+ }
+ }
+ return true;
+}
+/********************************************************************
+ƣDatabase_MYSQL_BannedUPDate
+ܣбϢ
+ .һpSt_Banned
+ In/OutIn
+ ͣݽṹָ
+ ɿգN
+ ˼Ҫ
+ֵ
+ ͣ
+ ˼Ƿɹ
+ע
+*********************************************************************/
+bool CDatabase_MySQL::Database_MYSQL_BannedUPDate(AUTHREG_BANNED* pSt_Banned)
+{
+ SQLPacket_IsErrorOccur = false;
+
+ if (NULL == pSt_Banned)
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_PARAMENT;
+ return false;
+ }
+ XCHAR tszSQLStatement[1024];
+ memset(tszSQLStatement, '\0', sizeof(tszSQLStatement));
+ //
+ if (_tcsxlen(pSt_Banned->tszUserName) > 0)
+ {
+ _xstprintf(tszSQLStatement, _X("UPDATE Authorize_BannedUser SET bEnable = %d,tszLeftTime = '%s' WHERE tszUserName = '%s'"), pSt_Banned->bEnable, pSt_Banned->tszLeftTime, pSt_Banned->tszUserName);
+ }
+ else
+ {
+ _xstprintf(tszSQLStatement, _X("UPDATE Authorize_BannedAddr SET bEnable = %d,tszLeftTime = '%s' WHERE tszIPAddr = '%s'"), pSt_Banned->bEnable, pSt_Banned->tszLeftTime, pSt_Banned->tszIPAddr);
+ }
+ //ݿ
+ if (!DataBase_MySQL_Execute(xhData, tszSQLStatement))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = DataBase_GetLastError();
+ return false;
+ }
+ return true;
+}
+/********************************************************************
+ƣDatabase_MYSQL_AnnouncementInsert
+ܣ
+ .һpSt_Announcement
+ In/OutIn
+ ͣݽṹָ
+ ɿգN
+ ˼ҪϢ
+ֵ
+ ͣ
+ ˼Ƿɹ
+ע
+*********************************************************************/
+bool CDatabase_MySQL::Database_MYSQL_AnnouncementInsert(AUTHREG_ANNOUNCEMENT* pSt_Announcement)
+{
+ SQLPacket_IsErrorOccur = false;
+
+ if (NULL == pSt_Announcement)
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_PARAMENT;
+ return false;
+ }
+ XCHAR tszSQLStatement[8192];
+ memset(tszSQLStatement, '\0', sizeof(tszSQLStatement));
+
+ _xstprintf(tszSQLStatement, _X("INSERT INTO Authorize_Announcement(tszContext,tszCreateTime) VALUES('%s',NOW())"), pSt_Announcement->tszContext);
+
+ //printf("SQL䣺%s\n", tszSQLStatement);
+ //ݿ
+ if (!DataBase_MySQL_Execute(xhData, tszSQLStatement))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = DataBase_GetLastError();
+ return false;
+ }
+ return true;
+}
+/********************************************************************
+ƣDatabase_MYSQL_AnnouncementDelete
+ܣɾ
+ .һpSt_Announcement
+ In/OutIn
+ ͣݽṹָ
+ ɿգN
+ ˼ҪɾϢ
+ֵ
+ ͣ
+ ˼Ƿɹ
+ע
+*********************************************************************/
+bool CDatabase_MySQL::Database_MYSQL_AnnouncementDelete(AUTHREG_ANNOUNCEMENT* pSt_Announcement)
+{
+ SQLPacket_IsErrorOccur = false;
+
+ if (NULL == pSt_Announcement)
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_PARAMENT;
+ return false;
+ }
+ XCHAR tszSQLStatement[1024];
+ memset(tszSQLStatement, '\0', sizeof(tszSQLStatement));
+
+ _xstprintf(tszSQLStatement, _X("DELETE FROM Authorize_Announcement WHERE ID = %lld"), pSt_Announcement->nID);
+ //ݿ
+ if (!DataBase_MySQL_Execute(xhData, tszSQLStatement))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = DataBase_GetLastError();
+ return false;
+ }
+ return true;
+}
+/********************************************************************
+ƣDatabase_MYSQL_AnnouncementList
+ܣой
+ .һppppSt_Announcement
+ In/OutOut
+ ָͣ
+ ɿգN
+ ˼о
+ .pInt_ListCount
+ In/OutOut
+ ָͣ
+ ɿգN
+ ˼ݸ
+ֵ
+ ͣ
+ ˼Ƿɹ
+ע
+*********************************************************************/
+bool CDatabase_MySQL::Database_MYSQL_AnnouncementList(AUTHREG_ANNOUNCEMENT*** ppppSt_Announcement, int* pInt_ListCount)
+{
+ SQLPacket_IsErrorOccur = false;
+ XNETHANDLE xhTable = 0;
+ __int64u nRow = 0;
+ __int64u nColumn = 0;
+ XCHAR** ppszResult = NULL;
+ XCHAR tszSQLStatement[1024]; //SQL
+ memset(tszSQLStatement, '\0', 1024);
+ _xstprintf(tszSQLStatement, _X("SELECT * FROM Authorize_Announcement"));
+
+ if (!DataBase_MySQL_ExecuteQuery(xhData, &xhTable, tszSQLStatement, &nRow, &nColumn))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = DataBase_GetLastError();
+ return false;
+ }
+ *pInt_ListCount = nRow;
+ if (NULL == ppppSt_Announcement)
+ {
+ return true;
+ }
+ BaseLib_OperatorMemory_Malloc((XPPPMEM)ppppSt_Announcement, (int)nRow, sizeof(AUTHREG_ANNOUNCEMENT));
+
+ //ѵ
+ for (int i = 0; i < nRow; i++)
+ {
+ ppszResult = DataBase_MySQL_GetResult(xhData, xhTable);
+ //XLONG* pInt_Length = DataBase_MySQL_GetLength(xhData, xhTable);
+ int nFliedValue = 0;
+ (*ppppSt_Announcement)[i]->nID = _ttxoll(ppszResult[nFliedValue]);
+ nFliedValue++;
+ _tcsxcpy((*ppppSt_Announcement)[i]->tszContext, ppszResult[nFliedValue]);
+ nFliedValue++;
+ _tcsxcpy((*ppppSt_Announcement)[i]->tszCreateTime, ppszResult[nFliedValue]);
+ nFliedValue++;
+
+ }
+ DataBase_MySQL_FreeResult(xhData, xhTable);
+ return true;
+}
+
+//////////////////////////////////////////////////////////////////////////
+//
+//////////////////////////////////////////////////////////////////////////
+/********************************************************************
+ƣDatabase_MYSQL_UserPayTime
+ܣڷʽֵʽ
+ .һlpszUserName
+ In/OutIn
+ ַָͣ
+ ɿգN
+ ˼ֵû
+ .lpszUserTime
+ In/OutIn
+ ַָͣ
+ ɿգN
+ ˼ûǰijʱʱ
+ .lpszCardTime
+ In/OutIn
+ ַָͣ
+ ɿգN
+ ˼ֵʱ
+ .ģen_AuthSerialType
+ In/OutIn
+ ͣö
+ ɿգN
+ ˼ֵijֵ
+ .壺en_AuthUserType
+ In/OutIn
+ ͣö
+ ɿգN
+ ˼ûǰijֵ
+ֵ
+ ͣ
+ ˼Ƿɹֵ
+ע
+*********************************************************************/
+bool CDatabase_MySQL::Database_MYSQL_UserPayTime(LPCXSTR lpszUserName, LPCXSTR lpszUserTime, LPCXSTR lpszCardTime, ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE en_AuthSerialType, ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE en_AuthUserType)
+{
+ SQLPacket_IsErrorOccur = false;
+ XCHAR tszSQLStatement[1024];
+ memset(tszSQLStatement, '\0', sizeof(tszSQLStatement));
+ //жϺǰijֵǷƥ䡣
+ if (en_AuthSerialType != en_AuthUserType)
+ {
+ //,Ҫд
+ if (ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_UNKNOW != en_AuthUserType)
+ {
+ //жǷд
+ if (!m_bChange)
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_NOTMATCH;
+ return false;
+ }
+ }
+ //ûijֵ
+ memset(tszSQLStatement, '\0', sizeof(tszSQLStatement));
+ _xstprintf(tszSQLStatement, _X("UPDATE Authorize_User SET CardSerialType = '%d' WHERE UserName = '%s'"), en_AuthSerialType, lpszUserName);
+ //ִû£Ϊпͱı䣬Ҫ¡
+ if (!DataBase_MySQL_Execute(xhData, tszSQLStatement))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_UPDATATYPE;
+ return false;
+ }
+ //
+ switch (en_AuthSerialType)
+ {
+ case ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_SECOND:
+ {
+ //Ƿӿ
+ //ǰijֵͲƥ䣬ôǰijֵȫᱻɾ
+ _xstprintf(tszSQLStatement, _X("UPDATE Authorize_User SET LeftTime = '%d' WHERE UserName = '%s'"), _ttxoi(lpszCardTime), lpszUserName); //ûĹʱ
+ }
+ break;
+ case ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_DAY:
+ {
+ //
+ //ûĹʱ
+ _xstprintf(tszSQLStatement, _X("UPDATE Authorize_User SET LeftTime = '%d' WHERE UserName = '%s'"), _ttxoi(lpszCardTime), lpszUserName); //ûĹʱ
+ }
+ break;
+ case ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_TIME:
+ {
+ //Ǵ
+ //ûĹʱ
+ _xstprintf(tszSQLStatement, _X("UPDATE Authorize_User SET LeftTime = '%d' WHERE UserName = '%s'"), _ttxoi(lpszCardTime), lpszUserName);
+ }
+ break;
+ case ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_CUSTOM:
+ {
+ XCHAR tszTime[128];
+ XENGINE_LIBTIMER st_AuthTime;
+ ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE en_GeneraterSerialType;
+
+ memset(tszTime, '\0', sizeof(tszTime));
+ memset(&st_AuthTime, '\0', sizeof(XENGINE_LIBTIMER));
+ //ȡÿͺʱ
+ if (!Authorize_Serial_GetType(lpszCardTime, &en_GeneraterSerialType, &st_AuthTime))
+ {
+ return false;
+ }
+ _xstprintf(tszTime, _X("%04d-%02d-%02d %02d:%02d:%02d"), st_AuthTime.wYear, st_AuthTime.wMonth, st_AuthTime.wDay, st_AuthTime.wHour, st_AuthTime.wMinute, st_AuthTime.wSecond);
+ //ûĹʱ
+ _xstprintf(tszSQLStatement, _X("UPDATE Authorize_User SET LeftTime = '%s' WHERE UserName = '%s'"), tszTime, lpszUserName);
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ else
+ {
+ switch (en_AuthSerialType)
+ {
+ case ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_SECOND:
+ {
+ int nCardTime = _ttxoi(lpszCardTime);
+ nCardTime += _ttxoi(lpszUserTime); //ǰûǰʱҲ
+ _xstprintf(tszSQLStatement, _X("UPDATE Authorize_User SET LeftTime = '%d' WHERE UserName = '%s'"), nCardTime, lpszUserName); //ûĹʱ
+ }
+ break;
+ case ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_DAY:
+ {
+ int nCardTime = _ttxoi(lpszCardTime);
+ nCardTime += _ttxoi(lpszUserTime); //ǰûǰʱҲ
+ //ûĹʱ
+ _xstprintf(tszSQLStatement, _X("UPDATE Authorize_User SET LeftTime = '%d' WHERE UserName = '%s'"), nCardTime, lpszUserName);
+ }
+ break;
+ case ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_TIME:
+ {
+ //Ǵ
+ int nCardTime = _ttxoi(lpszCardTime);
+ nCardTime += _ttxoi(lpszUserTime); //ǰûǰʱҲ
+ _xstprintf(tszSQLStatement, _X("UPDATE Authorize_User SET LeftTime = '%d' WHERE UserName = '%s'"), nCardTime, lpszUserName); //ûĹʱ
+ }
+ break;
+ case ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_CUSTOM:
+ {
+ //Զ忨,
+ XCHAR tszTime[128];
+ XENGINE_LIBTIMER st_AuthTime;
+ ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE en_GeneraterSerialType;
+
+ memset(tszTime, '\0', sizeof(tszTime));
+ memset(&st_AuthTime, '\0', sizeof(XENGINE_LIBTIMER));
+ //ȡÿͺʱ
+ if (!Authorize_Serial_GetType(lpszCardTime, &en_GeneraterSerialType, &st_AuthTime))
+ {
+ return false;
+ }
+ _xstprintf(tszTime, _X("%04d-%02d-%02d %02d:%02d:%02d"), st_AuthTime.wYear, st_AuthTime.wMonth, st_AuthTime.wDay, st_AuthTime.wHour, st_AuthTime.wMinute, st_AuthTime.wSecond);
+ //ûĹʱ
+ _xstprintf(tszSQLStatement, _X("UPDATE Authorize_User SET LeftTime = '%s' WHERE UserName = '%s'"), tszTime, lpszUserName);
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ //ûĹʱ
+ if (!DataBase_MySQL_Execute(xhData, tszSQLStatement))
+ {
+ SQLPacket_IsErrorOccur = true;
+ SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_UPDATA;
+ return false;
+ }
+ return true;
+}
+
diff --git a/XEngine_Source/AuthorizeModule_Database/Database_MySQL/Database_MySQL.h b/XEngine_Source/AuthorizeModule_Database/Database_MySQL/Database_MySQL.h
new file mode 100644
index 0000000000000000000000000000000000000000..cd6c4724ac2fc4e3e2d676bcacdcbc4ccb98512c
--- /dev/null
+++ b/XEngine_Source/AuthorizeModule_Database/Database_MySQL/Database_MySQL.h
@@ -0,0 +1,63 @@
+#pragma once
+/********************************************************************
+// Created: 2022/05/26 11:01:06
+// File Name: D:\XEngine_Authorize\XEngine_Source\AuthorizeModule_Database\Database_MySQL\Database_MySQL.h
+// File Path: D:\XEngine_Authorize\XEngine_Source\AuthorizeModule_Database\Database_MySQL
+// File Base: Database_MySQL
+// File Ext: h
+// Project: XEngine(ͨ)
+// Author: qyt
+// Purpose: ݿ
+// History:
+*********************************************************************/
+//////////////////////////////////////////////////////////////////////////
+// AuthReg_UserTableݣID û ע ʣʱ Ӳ עļ QQ ֤
+// AuthReg_SerialTableݣID ʹ к ʹʱ ʱ Ƿʹ
+//////////////////////////////////////////////////////////////////////////
+class CDatabase_MySQL
+{
+public:
+ CDatabase_MySQL();
+ ~CDatabase_MySQL();
+public:
+ bool Database_MYSQL_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector, bool bIsChange = true); //ʼ
+ bool Database_MYSQL_Destroy(); //
+public:
+ bool Database_MYSQL_UserDelete(LPCXSTR lpszUserName); //ɾû
+ bool Database_MYSQL_UserRegister(AUTHREG_USERTABLE* pSt_UserInfo); //ûע
+ bool Database_MYSQL_UserQuery(LPCXSTR lpszUserName, AUTHREG_USERTABLE* pSt_UserInfo = NULL); //ûѯ
+ bool Database_MYSQL_UserPay(LPCXSTR lpszUserName, LPCXSTR lpszSerialName); //ֵֵ
+ bool Database_MYSQL_UserLeave(AUTHREG_PROTOCOL_TIME* pSt_TimeProtocol); //û뿪±
+ bool Database_MYSQL_UserSet(AUTHREG_USERTABLE* pSt_UserTable); //ûϢ
+ bool Database_MYSQL_UserList(AUTHREG_USERTABLE*** pppSt_UserInfo, int* pInt_ListCount, int nPosStart, int nPosEnd); //ȡûб
+public:
+ bool Database_MYSQL_SerialInsert(LPCXSTR lpszSerialNumber); //п
+ bool Database_MYSQL_SerialDelete(LPCXSTR lpszSerialNumber); //ɾһк
+ bool Database_MYSQL_SerialQuery(LPCXSTR lpszSerialNumber, LPAUTHREG_SERIALTABLE pSt_SerialTable = NULL); //տŻûѯ
+ bool Database_MYSQL_SerialQueryAll(AUTHREG_SERIALTABLE*** pppSt_SerialTable, int* pInt_ListCount, int nPosStart, int nPosEnd);//ѯп
+ bool Database_MYSQL_SerialPush(AUTHREG_SERIALTABLE* pSt_SerialTable);//һָкϢ
+public:
+ bool Database_MYSQL_TryInsert(AUTHREG_TEMPVER* pSt_AuthVer); //ʹģʽһ
+ bool Database_MYSQL_TryQuery(AUTHREG_TEMPVER* pSt_AuthVer); //кŲѯ
+ bool Database_MYSQL_TryDelete(LPCXSTR lpszSerial); //ɾһָ
+ bool Database_MYSQL_TryClear(int nThanValue, ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE enVerMode = ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_UNKNOW); //,Զ
+ bool Database_MYSQL_TrySet(AUTHREG_TEMPVER* pSt_AuthVer); //ûϢ
+ bool Database_MYSQL_TryList(AUTHREG_TEMPVER*** pppSt_AuthVer, int* pInt_ListCount, int nPosStart = 0, int nPosEnd = 1000); //б
+public:
+ bool Database_MYSQL_BannedInsert(AUTHREG_BANNED* pSt_Banned); //б
+ bool Database_MYSQL_BannedDelete(AUTHREG_BANNED* pSt_Banned); //бɾ
+ bool Database_MYSQL_BannedList(AUTHREG_BANNED*** pppSt_BannedUser, int* pInt_UserCount, AUTHREG_BANNED*** pppSt_BannedAddr, int* pInt_AddrCount, int nPosStart, int nPosEnd); //бѯ
+ bool Database_MYSQL_BannedExist(AUTHREG_BANNED* pSt_Banned); //Ƿںб
+ bool Database_MYSQL_BannedUPDate(AUTHREG_BANNED* pSt_Banned); //бϢ
+public:
+ bool Database_MYSQL_AnnouncementInsert(AUTHREG_ANNOUNCEMENT* pSt_Announcement); //
+ bool Database_MYSQL_AnnouncementDelete(AUTHREG_ANNOUNCEMENT* pSt_Announcement); //ɾ
+ bool Database_MYSQL_AnnouncementList(AUTHREG_ANNOUNCEMENT*** ppppSt_Announcement, int* pInt_ListCount); //ой
+
+
+protected:
+ bool Database_MYSQL_UserPayTime(LPCXSTR lpszUserName, LPCXSTR lpszUserTime, LPCXSTR lpszCardTime, ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE en_AuthSerialType, ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE en_AuthUserType); //ڷʽֵʽ
+private:
+ bool m_bChange;
+ XNETHANDLE xhData; //ݿ
+};
diff --git a/XEngine_Source/AuthorizeModule_Database/pch.cpp b/XEngine_Source/AuthorizeModule_Database/pch.cpp
index 7b844cff974e7a3755d6d809091884750346ff27..23aba521f36dbc65e73f7d6f3b7cff6a69877b8e 100644
--- a/XEngine_Source/AuthorizeModule_Database/pch.cpp
+++ b/XEngine_Source/AuthorizeModule_Database/pch.cpp
@@ -1,5 +1,6 @@
#include "pch.h"
#include "Database_SQLite/Database_SQLite.h"
+#include "Database_MySQL/Database_MySQL.h"
/********************************************************************
// Created: 2022/05/26 11:02:23
// File Name: D:\XEngine_Authorize\XEngine_Source\AuthorizeModule_Database\pch.cpp
@@ -15,6 +16,7 @@ bool SQLPacket_IsErrorOccur = false;
XLONG SQLPacket_dwErrorCode = 0;
//////////////////////////////////////////////////////////////////////////
CDatabase_SQLite m_SQLAuth;
+CDatabase_MySQL m_MySQL;
//////////////////////////////////////////////////////////////////////////
// 导出的函数
//////////////////////////////////////////////////////////////////////////
@@ -140,4 +142,120 @@ extern "C" bool Database_SQLite_AnnouncementDelete(AUTHREG_ANNOUNCEMENT * pSt_An
extern "C" bool Database_SQLite_AnnouncementList(AUTHREG_ANNOUNCEMENT * **ppppSt_Announcement, int* pInt_ListCount)
{
return m_SQLAuth.Database_SQLite_AnnouncementList(ppppSt_Announcement, pInt_ListCount);
+}
+
+/************************************************************************/
+/* MYSQL数据库服务导出函数 */
+/************************************************************************/
+extern "C" bool Database_MYSQL_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector, bool bIsChange)
+{
+ return m_MySQL.Database_MYSQL_Init(pSt_DBConnector, bIsChange);
+}
+extern "C" bool Database_MYSQL_Destroy()
+{
+ return m_MySQL.Database_MYSQL_Destroy();
+}
+extern "C" bool Database_MYSQL_UserDelete(LPCXSTR lpszUserName)
+{
+ return m_MySQL.Database_MYSQL_UserDelete(lpszUserName);
+}
+extern "C" bool Database_MYSQL_UserRegister(AUTHREG_USERTABLE* pSt_UserInfo)
+{
+ return m_MySQL.Database_MYSQL_UserRegister(pSt_UserInfo);
+}
+extern "C" bool Database_MYSQL_UserQuery(LPCXSTR lpszUserName, AUTHREG_USERTABLE* pSt_UserInfo)
+{
+ return m_MySQL.Database_MYSQL_UserQuery(lpszUserName, pSt_UserInfo);
+}
+extern "C" bool Database_MYSQL_UserPay(LPCXSTR lpszUserName, LPCXSTR lpszSerialName)
+{
+ return m_MySQL.Database_MYSQL_UserPay(lpszUserName, lpszSerialName);
+}
+extern "C" bool Database_MYSQL_UserLeave(AUTHREG_PROTOCOL_TIME* pSt_TimeProtocol)
+{
+ return m_MySQL.Database_MYSQL_UserLeave(pSt_TimeProtocol);
+}
+extern "C" bool Database_MYSQL_UserSet(AUTHREG_USERTABLE* pSt_UserTable)
+{
+ return m_MySQL.Database_MYSQL_UserSet(pSt_UserTable);
+}
+extern "C" bool Database_MYSQL_UserList(AUTHREG_USERTABLE*** pppSt_UserInfo, int* pInt_ListCount, int nPosStart, int nPosEnd)
+{
+ return m_MySQL.Database_MYSQL_UserList(pppSt_UserInfo, pInt_ListCount, nPosStart, nPosEnd);
+}
+extern "C" bool Database_MYSQL_SerialInsert(LPCXSTR lpszSerialNumber)
+{
+ return m_MySQL.Database_MYSQL_SerialInsert(lpszSerialNumber);
+}
+extern "C" bool Database_MYSQL_SerialDelete(LPCXSTR lpszSerialNumber)
+{
+ return m_MySQL.Database_MYSQL_SerialDelete(lpszSerialNumber);
+}
+extern "C" bool Database_MYSQL_SerialQuery(LPCXSTR lpszSerialNumber, LPAUTHREG_SERIALTABLE pSt_SerialTable)
+{
+ return m_MySQL.Database_MYSQL_SerialQuery(lpszSerialNumber, pSt_SerialTable);
+}
+extern "C" bool Database_MYSQL_SerialQueryAll(AUTHREG_SERIALTABLE*** pppSt_SerialTable, int* pInt_ListCount, int nPosStart, int nPosEnd)
+{
+ return m_MySQL.Database_MYSQL_SerialQueryAll(pppSt_SerialTable, pInt_ListCount, nPosStart, nPosEnd);
+}
+extern "C" bool Database_MYSQL_SerialPush(AUTHREG_SERIALTABLE* pSt_SerialTable)
+{
+ return m_MySQL.Database_MYSQL_SerialPush(pSt_SerialTable);
+}
+extern "C" bool Database_MYSQL_TryInsert(AUTHREG_TEMPVER* pSt_AuthVer)
+{
+ return m_MySQL.Database_MYSQL_TryInsert(pSt_AuthVer);
+}
+extern "C" bool Database_MYSQL_TryQuery(AUTHREG_TEMPVER* pSt_AuthVer)
+{
+ return m_MySQL.Database_MYSQL_TryQuery(pSt_AuthVer);
+}
+extern "C" bool Database_MYSQL_TryDelete(LPCXSTR lpszSerial)
+{
+ return m_MySQL.Database_MYSQL_TryDelete(lpszSerial);
+}
+extern "C" bool Database_MYSQL_TryClear(int nThanValue, ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE enVerMode)
+{
+ return m_MySQL.Database_MYSQL_TryClear(nThanValue, enVerMode);
+}
+extern "C" bool Database_MYSQL_TrySet(AUTHREG_TEMPVER* pSt_AuthVer)
+{
+ return m_MySQL.Database_MYSQL_TrySet(pSt_AuthVer);
+}
+extern "C" bool Database_MYSQL_TryList(AUTHREG_TEMPVER*** pppSt_AuthVer, int* pInt_ListCount, int nPosStart, int nPosEnd)
+{
+ return m_MySQL.Database_MYSQL_TryList(pppSt_AuthVer, pInt_ListCount, nPosStart, nPosEnd);
+}
+extern "C" bool Database_MYSQL_BannedInsert(AUTHREG_BANNED* pSt_Banned)
+{
+ return m_MySQL.Database_MYSQL_BannedInsert(pSt_Banned);
+}
+extern "C" bool Database_MYSQL_BannedDelete(AUTHREG_BANNED* pSt_Banned)
+{
+ return m_MySQL.Database_MYSQL_BannedDelete(pSt_Banned);
+}
+extern "C" bool Database_MYSQL_BannedList(AUTHREG_BANNED*** pppSt_BannedUser, int* pInt_UserCount, AUTHREG_BANNED*** pppSt_BannedAddr, int* pInt_AddrCount, int nPosStart, int nPosEnd)
+{
+ return m_MySQL.Database_MYSQL_BannedList(pppSt_BannedUser, pInt_UserCount, pppSt_BannedAddr, pInt_AddrCount, nPosStart, nPosEnd);
+}
+extern "C" bool Database_MYSQL_BannedExist(AUTHREG_BANNED* pSt_Banned)
+{
+ return m_MySQL.Database_MYSQL_BannedExist(pSt_Banned);
+}
+extern "C" bool Database_MYSQL_BannedUPDate(AUTHREG_BANNED* pSt_Banned)
+{
+ return m_MySQL.Database_MYSQL_BannedUPDate(pSt_Banned);
+}
+extern "C" bool Database_MYSQL_AnnouncementInsert(AUTHREG_ANNOUNCEMENT* pSt_Announcement)
+{
+ return m_MySQL.Database_MYSQL_AnnouncementInsert(pSt_Announcement);
+}
+extern "C" bool Database_MYSQL_AnnouncementDelete(AUTHREG_ANNOUNCEMENT* pSt_Announcement)
+{
+ return m_MySQL.Database_MYSQL_AnnouncementDelete(pSt_Announcement);
+}
+extern "C" bool Database_MYSQL_AnnouncementList(AUTHREG_ANNOUNCEMENT*** ppppSt_Announcement, int* pInt_ListCount)
+{
+ return m_MySQL.Database_MYSQL_AnnouncementList(ppppSt_Announcement, pInt_ListCount);
}
\ No newline at end of file
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Get/AuthorizeHTTP_Token.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Get/AuthorizeHTTP_Token.cpp
index f7d2290feb5c6a44002822ace9e12d6e90f9583f..156974b12c62b994e3694ec130a8736216f4cf33 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Get/AuthorizeHTTP_Token.cpp
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Get/AuthorizeHTTP_Token.cpp
@@ -68,8 +68,14 @@ bool XEngine_AuthorizeHTTP_Token(LPCXSTR lpszClientAddr, XCHAR** pptszList, int
return false;
}
}
- if (!Database_SQLite_UserQuery(tszUserName, &st_UserTable))
- {
+ bool bSuccess = false;
+ if (st_AuthConfig.bDB) {
+ bSuccess = Database_SQLite_UserQuery(tszUserName, &st_UserTable);
+ }
+ else {
+ bSuccess = Database_MYSQL_UserQuery(tszUserName, &st_UserTable);
+ }
+ if (!bSuccess) {
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 404, "user not found");
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,登录失败,用户名不存在"), lpszClientAddr);
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Announcement.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Announcement.cpp
index 0f1e9ce935043f52b437c8510de8a4ffb72d792a..98813b5b41b55656203b3d78aad03f650d3ff97b 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Announcement.cpp
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Announcement.cpp
@@ -23,7 +23,13 @@ bool XEngine_AuthorizeHTTP_Announcement(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIN
AUTHREG_ANNOUNCEMENT st_Announcement;
memset(&st_Announcement, '\0', sizeof(AUTHREG_ANNOUNCEMENT));
- Database_SQLite_AnnouncementList(NULL, &nListCount);
+ if (st_AuthConfig.bDB) {
+ Database_SQLite_AnnouncementList(NULL, &nListCount);
+ }
+ else
+ {
+ Database_MYSQL_AnnouncementList(NULL, &nListCount);
+ }
if (nListCount > 10)
{
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 510, "server limited");
@@ -32,7 +38,13 @@ bool XEngine_AuthorizeHTTP_Announcement(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIN
return false;
}
Protocol_Parse_HttpParseAnnouncement(lpszMsgBuffer, nMsgLen, &st_Announcement);
- Database_SQLite_AnnouncementInsert(&st_Announcement);
+ if (st_AuthConfig.bDB) {
+ Database_SQLite_AnnouncementInsert(&st_Announcement);
+ }
+ else
+ {
+ Database_MYSQL_AnnouncementInsert(&st_Announcement);
+ }
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen);
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,插入公告成功,公告信息:%s"), lpszClientAddr, st_Announcement.tszContext);
@@ -43,7 +55,13 @@ bool XEngine_AuthorizeHTTP_Announcement(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIN
memset(&st_Announcement, '\0', sizeof(AUTHREG_ANNOUNCEMENT));
Protocol_Parse_HttpParseAnnouncement(lpszMsgBuffer, nMsgLen, &st_Announcement);
- Database_SQLite_AnnouncementDelete(&st_Announcement);
+ if (st_AuthConfig.bDB) {
+ Database_SQLite_AnnouncementDelete(&st_Announcement);
+ }
+ else
+ {
+ Database_MYSQL_AnnouncementDelete(&st_Announcement);
+ }
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen);
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,删除公告成功.删除公告ID:%lld"), lpszClientAddr, st_Announcement.nID);
@@ -53,7 +71,13 @@ bool XEngine_AuthorizeHTTP_Announcement(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIN
int nListCount = 0;
AUTHREG_ANNOUNCEMENT** ppSt_Announcement;
- Database_SQLite_AnnouncementList(&ppSt_Announcement, &nListCount);
+ if (st_AuthConfig.bDB) {
+ Database_SQLite_AnnouncementList(&ppSt_Announcement, &nListCount);
+ }
+ else
+ {
+ Database_MYSQL_AnnouncementList(&ppSt_Announcement, &nListCount);
+ }
Protocol_Packet_HttpAnnouncement(tszSDBuffer, &nSDLen, &ppSt_Announcement, nListCount);
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
BaseLib_OperatorMemory_Free((XPPPMEM)&ppSt_Announcement, nListCount);
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Banned.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Banned.cpp
index f066df2e0ab9b22d2f49f5f14dd637ec6332ea38..fb33ceedf536417954c68105207532f8aa3b3f70 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Banned.cpp
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Banned.cpp
@@ -17,7 +17,13 @@ bool XEngine_AuthorizeHTTP_Banned(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L
memset(&st_Banned, '\0', sizeof(AUTHREG_BANNED));
Protocol_Parse_HttpParseBanned(lpszMsgBuffer, nMsgLen, &st_Banned);
- Database_SQLite_BannedInsert(&st_Banned);
+ if (st_AuthConfig.bDB) {
+ Database_SQLite_BannedInsert(&st_Banned);
+ }
+ else
+ {
+ Database_MYSQL_BannedInsert(&st_Banned);
+ }
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen);
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,插入禁用列表成功,禁用的用户:%s,禁用的IP地址:%s"), lpszClientAddr, st_Banned.tszUserName, st_Banned.tszIPAddr);
@@ -28,7 +34,13 @@ bool XEngine_AuthorizeHTTP_Banned(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L
memset(&st_Banned, '\0', sizeof(AUTHREG_BANNED));
Protocol_Parse_HttpParseBanned(lpszMsgBuffer, nMsgLen, &st_Banned);
- Database_SQLite_BannedDelete(&st_Banned);
+ if (st_AuthConfig.bDB) {
+ Database_SQLite_BannedDelete(&st_Banned);
+ }
+ else
+ {
+ Database_MYSQL_BannedDelete(&st_Banned);
+ }
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen);
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,删除禁用列表成功,删除禁用的用户:%s,删除禁用的IP地址:%s"), lpszClientAddr, st_Banned.tszUserName, st_Banned.tszIPAddr);
@@ -44,7 +56,13 @@ bool XEngine_AuthorizeHTTP_Banned(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L
Protocol_Parse_HttpParseBanned2(lpszMsgBuffer, nMsgLen, &nPosStart, &nPosEnd);
- Database_SQLite_BannedList(&ppSt_BannedUser, &nCountUser, &ppSt_BannedAddr, &nCountAddr, nPosStart, nPosEnd);
+ if (st_AuthConfig.bDB) {
+ Database_SQLite_BannedList(&ppSt_BannedUser, &nCountUser, &ppSt_BannedAddr, &nCountAddr, nPosStart, nPosEnd);
+ }
+ else
+ {
+ Database_MYSQL_BannedList(&ppSt_BannedUser, &nCountUser, &ppSt_BannedAddr, &nCountAddr, nPosStart, nPosEnd);
+ }
Protocol_Packet_HttpBanned(tszSDBuffer, &nSDLen, &ppSt_BannedUser, nCountUser, &ppSt_BannedAddr, nCountAddr);
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
BaseLib_OperatorMemory_Free((XPPPMEM)&ppSt_BannedAddr, nCountAddr);
@@ -57,7 +75,13 @@ bool XEngine_AuthorizeHTTP_Banned(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L
memset(&st_Banned, '\0', sizeof(AUTHREG_BANNED));
Protocol_Parse_HttpParseBanned(lpszMsgBuffer, nMsgLen, &st_Banned);
- Database_SQLite_BannedUPDate(&st_Banned);
+ if (st_AuthConfig.bDB) {
+ Database_SQLite_BannedUPDate(&st_Banned);
+ }
+ else
+ {
+ Database_MYSQL_BannedUPDate(&st_Banned);
+ }
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen);
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,修改禁用列表成功,修改的用户:%s,修改的IP地址:%s"), lpszClientAddr, st_Banned.tszUserName, st_Banned.tszIPAddr);
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Client.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Client.cpp
index c4f257b5b1e0f792db3ca52cade952a07f3b1990..f48312f86d0da07f341bd7dee3a266ffbecef802 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Client.cpp
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Client.cpp
@@ -17,8 +17,14 @@ bool XEngine_AuthorizeHTTP_Client(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L
memset(&st_UserTable, '\0', sizeof(AUTHREG_USERTABLE));
Protocol_Parse_HttpParseUser(lpszMsgBuffer, nMsgLen, &st_UserTable.st_UserInfo);
- if (!Database_SQLite_UserQuery(st_UserTable.st_UserInfo.tszUserName, &st_UserTable))
- {
+ bool bSuccess = false;
+ if (st_AuthConfig.bDB) {
+ bSuccess = Database_SQLite_UserQuery(st_UserTable.st_UserInfo.tszUserName, &st_UserTable);
+ }
+ else {
+ bSuccess = Database_MYSQL_UserQuery(st_UserTable.st_UserInfo.tszUserName, &st_UserTable);
+ }
+ if (!bSuccess) {
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 404, "not found client");
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求用户:%s 信息失败,错误码:%lX"), lpszClientAddr, st_UserTable.st_UserInfo.tszUserName, DBModule_GetLastError());
@@ -63,7 +69,13 @@ bool XEngine_AuthorizeHTTP_Client(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L
if (!bOnline)
{
//只有bOnline不是在线列表的时候才执行
- Database_SQLite_UserList(&ppSt_UserInfo, &nOffCount, nPosStart, nPosEnd);
+ if (st_AuthConfig.bDB) {
+ Database_SQLite_UserList(&ppSt_UserInfo, &nOffCount, nPosStart, nPosEnd);
+ }
+ else
+ {
+ Database_MYSQL_UserList(&ppSt_UserInfo, &nOffCount, nPosStart, nPosEnd);
+ }
}
Protocol_Packet_HttpClientList(ptszMsgBuffer, &nSDLen, &ppSt_ListClient, nOnCount, &ppSt_UserInfo, nOffCount);
@@ -104,8 +116,14 @@ bool XEngine_AuthorizeHTTP_Client(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L
memset(&st_UserTable, '\0', sizeof(AUTHREG_USERTABLE));
Protocol_Parse_HttpParseTable(lpszMsgBuffer, nMsgLen, &st_UserTable);
- if (!Database_SQLite_UserSet(&st_UserTable))
- {
+ bool bSuccess = false;
+ if (st_AuthConfig.bDB) {
+ bSuccess = Database_SQLite_UserSet(&st_UserTable);
+ }
+ else {
+ bSuccess = Database_MYSQL_UserSet(&st_UserTable);
+ }
+ if (!bSuccess) {
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 404, "not found client");
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求修改用户信息失败:%s 错误码:%lX"), lpszClientAddr, st_UserTable.st_UserInfo.tszUserName, DBModule_GetLastError());
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Pass.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Pass.cpp
index 94935d1cf5576fac3a2778f33abc4bc7921cb6b8..22e08b6effbe460dfae7fd8814581d46e9084c93 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Pass.cpp
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Pass.cpp
@@ -19,8 +19,14 @@ bool XEngine_AuthorizeHTTP_Pass(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, LPC
memset(&st_UserTable, '\0', sizeof(AUTHREG_USERTABLE));
Protocol_Parse_HttpParseAuth(lpszMsgBuffer, nMsgLen, &st_UserAuth);
- if (!Database_SQLite_UserQuery(st_UserAuth.tszUserName, &st_UserTable))
- {
+ bool bSuccess = false;
+ if (st_AuthConfig.bDB) {
+ bSuccess = Database_SQLite_UserQuery(st_UserAuth.tszUserName, &st_UserTable);
+ }
+ else {
+ bSuccess = Database_MYSQL_UserQuery(st_UserAuth.tszUserName, &st_UserTable);
+ }
+ if (!bSuccess) {
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 404, "user notfound");
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("PASS客户端:%s,用户名:%s,登录失败,用户名不存在"), lpszClientAddr, st_UserAuth.tszUserName);
@@ -43,7 +49,13 @@ bool XEngine_AuthorizeHTTP_Pass(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, LPC
memset(&st_ProtocolTime, '\0', sizeof(AUTHREG_PROTOCOL_TIME));
Protocol_Parse_HttpParseTime(lpszMsgBuffer, nMsgLen, &st_ProtocolTime);
- Database_SQLite_UserLeave(&st_ProtocolTime);
+ if (st_AuthConfig.bDB) {
+ Database_SQLite_UserLeave(&st_ProtocolTime);
+ }
+ else
+ {
+ Database_MYSQL_UserLeave(&st_ProtocolTime);
+ }
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen);
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
@@ -55,7 +67,13 @@ bool XEngine_AuthorizeHTTP_Pass(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, LPC
memset(&st_ProtocolTime, '\0', sizeof(AUTHREG_PROTOCOL_TIME));
Protocol_Parse_HttpParseTime(lpszMsgBuffer, nMsgLen, &st_ProtocolTime);
- Database_SQLite_UserLeave(&st_ProtocolTime);
+ if (st_AuthConfig.bDB) {
+ Database_SQLite_UserLeave(&st_ProtocolTime);
+ }
+ else
+ {
+ Database_MYSQL_UserLeave(&st_ProtocolTime);
+ }
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen);
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("PASS客户端:%s,用户名:%s,超时通知成功"), lpszClientAddr, st_ProtocolTime.tszUserName);
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Serial.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Serial.cpp
index 97bd0df59ce9503b27099077faa6719d929928c3..9cbefff33403af1c3af60d5e798a13f7fcf99da0 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Serial.cpp
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Serial.cpp
@@ -32,7 +32,13 @@ bool XEngine_AuthorizeHTTP_Serial(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L
return false;
}
AUTHREG_SERIALTABLE** ppSt_SerialTable;
- Database_SQLite_SerialQueryAll(&ppSt_SerialTable, &nListCount, nPosStart, nPosEnd);
+ if (st_AuthConfig.bDB) {
+ Database_SQLite_SerialQueryAll(&ppSt_SerialTable, &nListCount, nPosStart, nPosEnd);
+ }
+ else
+ {
+ Database_MYSQL_SerialQueryAll(&ppSt_SerialTable, &nListCount, nPosStart, nPosEnd);
+ }
Protocol_Packet_HttpSerialList(ptszMsgBuffer, &nSDLen, &ppSt_SerialTable, nListCount);
BaseLib_OperatorMemory_Free((XPPPMEM)&ppSt_SerialTable, nListCount);
XEngine_Client_TaskSend(lpszClientAddr, ptszMsgBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
@@ -93,9 +99,15 @@ bool XEngine_AuthorizeHTTP_Serial(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L
return false;
}
//导入序列卡
- for (int i = 0; i < nSerialCount; i++)
- {
- Database_SQLite_SerialInsert(pptszSerialNumber[i]);
+ if (st_AuthConfig.bDB) {
+ for (int i = 0; i < nSerialCount; i++) {//导入序列卡
+ Database_SQLite_SerialInsert(pptszSerialNumber[i]);
+ }
+ }
+ else {
+ for (int i = 0; i < nSerialCount; i++) {//导入序列卡
+ Database_MYSQL_SerialInsert(pptszSerialNumber[i]);
+ }
}
BaseLib_OperatorMemory_Free((XPPPMEM)&pptszSerialNumber, nSerialCount);
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen);
@@ -108,9 +120,17 @@ bool XEngine_AuthorizeHTTP_Serial(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L
AUTHREG_SERIALTABLE** ppSt_SerialTable;
Protocol_Parse_HttpParseSerial(lpszMsgBuffer, nMsgLen, &ppSt_SerialTable, &nListCount);
- for (int i = 0; i < nListCount; i++)
- {
- Database_SQLite_SerialDelete(ppSt_SerialTable[i]->tszSerialNumber);
+ if (st_AuthConfig.bDB) {
+ for (int i = 0; i < nListCount; i++)
+ {
+ Database_SQLite_SerialDelete(ppSt_SerialTable[i]->tszSerialNumber);
+ }
+ }
+ else {
+ for (int i = 0; i < nListCount; i++)
+ {
+ Database_MYSQL_SerialDelete(ppSt_SerialTable[i]->tszSerialNumber);
+ }
}
BaseLib_OperatorMemory_Free((XPPPMEM)&ppSt_SerialTable, nListCount);
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen);
@@ -123,9 +143,17 @@ bool XEngine_AuthorizeHTTP_Serial(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L
AUTHREG_SERIALTABLE** ppSt_SerialTable;
Protocol_Parse_HttpParseSerial(lpszMsgBuffer, nMsgLen, &ppSt_SerialTable, &nListCount);
- for (int i = 0; i < nListCount; i++)
- {
- Database_SQLite_SerialPush(ppSt_SerialTable[i]);
+ if (st_AuthConfig.bDB) {
+ for (int i = 0; i < nListCount; i++)
+ {
+ Database_SQLite_SerialPush(ppSt_SerialTable[i]);
+ }
+ }
+ else {
+ for (int i = 0; i < nListCount; i++)
+ {
+ Database_MYSQL_SerialPush(ppSt_SerialTable[i]);
+ }
}
BaseLib_OperatorMemory_Free((XPPPMEM)&ppSt_SerialTable, nListCount);
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen);
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Try.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Try.cpp
index 86d70890a06416c4e637dd23cd6983f4542cf127..8dacf05b1b269d5d77454aa2455a9a09b22ad243 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Try.cpp
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_Try.cpp
@@ -29,7 +29,13 @@ bool XEngine_AuthorizeHTTP_Try(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, LPCX
int nListCount = 0;
AUTHREG_TEMPVER** ppSt_AuthVer;
- Database_SQLite_TryList(&ppSt_AuthVer, &nListCount);
+ if (st_AuthConfig.bDB) {
+ Database_SQLite_TryList(&ppSt_AuthVer, &nListCount);
+ }
+ else
+ {
+ Database_MYSQL_TryList(&ppSt_AuthVer, &nListCount);
+ }
Protocol_Packet_HttpTryList(ptszMsgBuffer, &nSDLen, &ppSt_AuthVer, nListCount);
BaseLib_OperatorMemory_Free((XPPPMEM)&ppSt_AuthVer, nListCount);
XEngine_Client_TaskSend(lpszClientAddr, ptszMsgBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
@@ -43,7 +49,13 @@ bool XEngine_AuthorizeHTTP_Try(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, LPCX
memset(&st_VERTemp, '\0', sizeof(AUTHREG_TEMPVER));
Protocol_Parse_HttpParseTry(lpszMsgBuffer, nMsgLen, &st_VERTemp);
- Database_SQLite_TryDelete(st_VERTemp.tszVSerial);
+ if (st_AuthConfig.bDB) {
+ Database_SQLite_TryDelete(st_VERTemp.tszVSerial);
+ }
+ else
+ {
+ Database_MYSQL_TryDelete(st_VERTemp.tszVSerial);
+ }
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen);
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,序列号:%s,临时验证删除成功"), lpszClientAddr, st_VERTemp.tszVSerial);
@@ -54,7 +66,13 @@ bool XEngine_AuthorizeHTTP_Try(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, LPCX
memset(&st_VERTemp, '\0', sizeof(AUTHREG_TEMPVER));
Protocol_Parse_HttpParseTry(lpszMsgBuffer, nMsgLen, &st_VERTemp);
- Database_SQLite_TrySet(&st_VERTemp);
+ if (st_AuthConfig.bDB) {
+ Database_SQLite_TrySet(&st_VERTemp);
+ }
+ else
+ {
+ Database_MYSQL_TrySet(&st_VERTemp);
+ }
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen);
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,序列号:%s,临时验证修改成功"), lpszClientAddr, st_VERTemp.tszVSerial);
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_User.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_User.cpp
index 6654cee030c716c48e0908529f1ca10794fb6ea9..a8c806c275b92383694fb13dd0db918cb890117d 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_User.cpp
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/AuthorizeHTTP_Post/AuthorizeHTTP_User.cpp
@@ -36,7 +36,13 @@ bool XEngine_AuthorizeHTTP_User(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, LPC
}
BaseLib_OperatorMemory_Free((XPPPMEM)&ppSt_ListClient, nListCount);
- Database_SQLite_UserDelete(st_UserInfo.tszUserName);
+ if (st_AuthConfig.bDB) {
+ Database_SQLite_UserDelete(st_UserInfo.tszUserName);
+ }
+ else
+ {
+ Database_MYSQL_UserDelete(st_UserInfo.tszUserName);
+ }
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen);
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求删除用户:%s 成功,在线用户数:%d"), lpszClientAddr, st_UserInfo.tszUserName, nListCount);
@@ -60,8 +66,14 @@ bool XEngine_AuthorizeHTTP_User(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, LPC
memset(&st_Banned, '\0', sizeof(AUTHREG_BANNED));
_tcsxcpy(st_Banned.tszUserName, st_UserTable.st_UserInfo.tszUserName);
- if (Database_SQLite_BannedExist(&st_Banned))
- {
+ bool bSuccess = false;
+ if (st_AuthConfig.bDB) {
+ bSuccess = Database_SQLite_BannedExist(&st_Banned);
+ }
+ else {
+ bSuccess = Database_MYSQL_BannedExist(&st_Banned);
+ }
+ if (bSuccess) {
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 423, "user name is banned");
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户名:%s,注册失败,用户名已经被禁用!"), lpszClientAddr, st_Banned.tszUserName);
@@ -85,8 +97,14 @@ bool XEngine_AuthorizeHTTP_User(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, LPC
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,注册失败,没有设置用户和密码"), lpszClientAddr);
return false;
}
- if (!Database_SQLite_UserRegister(&st_UserTable))
- {
+ bSuccess = false;
+ if (st_AuthConfig.bDB) {
+ bSuccess = Database_SQLite_UserRegister(&st_UserTable);
+ }
+ else {
+ bSuccess = Database_MYSQL_UserRegister(&st_UserTable);
+ }
+ if (!bSuccess) {
XLONG dwRet = DBModule_GetLastError();
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, dwRet, "user register is failed");
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
@@ -113,14 +131,26 @@ bool XEngine_AuthorizeHTTP_User(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, LPC
return false;
}
Protocol_Parse_HttpParsePay(lpszMsgBuffer, nMsgLen, &st_UserPay);
- if (!Database_SQLite_UserPay(st_UserPay.tszUserName, st_UserPay.tszSerialNumber))
- {
+ bool bSuccess = false;
+ if (st_AuthConfig.bDB) {
+ bSuccess = Database_SQLite_UserPay(st_UserPay.tszUserName, st_UserPay.tszSerialNumber);
+ }
+ else {
+ bSuccess = Database_MYSQL_UserPay(st_UserPay.tszUserName, st_UserPay.tszSerialNumber);
+ }
+ if (!bSuccess) {
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 404, "Serial number not available");
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户名:%s,充值失败,无法继续,错误:%X"), lpszClientAddr, st_UserPay.tszUserName, DBModule_GetLastError());
return false;
}
- Database_SQLite_UserQuery(st_UserPay.tszUserName, &st_UserInfo);
+ if (st_AuthConfig.bDB) {
+ Database_SQLite_UserQuery(st_UserPay.tszUserName, &st_UserInfo);
+ }
+ else
+ {
+ Database_MYSQL_UserQuery(st_UserPay.tszUserName, &st_UserInfo);
+ }
Session_Authorize_SetUser(&st_UserInfo);
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen);
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
@@ -144,8 +174,14 @@ bool XEngine_AuthorizeHTTP_User(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, LPC
return false;
}
Protocol_Parse_HttpParseUser(lpszMsgBuffer, nMsgLen, &st_UserInfo);
- if (!Database_SQLite_UserQuery(st_UserInfo.tszUserName, &st_UserTable))
- {
+ bool bSuccess = false;
+ if (st_AuthConfig.bDB) {
+ bSuccess = Database_SQLite_UserQuery(st_UserInfo.tszUserName, &st_UserTable);
+ }
+ else {
+ bSuccess = Database_MYSQL_UserQuery(st_UserInfo.tszUserName, &st_UserTable);
+ }
+ if (!bSuccess) {
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 404, "user not found");
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户名:%s,找回密码失败,用户不存在"), lpszClientAddr, st_UserInfo.tszUserName);
@@ -200,7 +236,15 @@ bool XEngine_AuthorizeHTTP_User(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, LPC
return false;
}
Protocol_Parse_HttpParseTry(lpszMsgBuffer, nMsgLen, &st_VERTemp);
- if (Database_SQLite_TryQuery(&st_VERTemp))
+ bool bSuccess = false;
+ //判断是使用哪个数据库
+ if (st_AuthConfig.bDB) {
+ bSuccess = Database_SQLite_TryQuery(&st_VERTemp);
+ }
+ else {
+ bSuccess = Database_MYSQL_TryQuery(&st_VERTemp);
+ }
+ if (bSuccess)
{
__int64x nTimeSpan = 0;
//根据方式来计算剩余时间
@@ -231,7 +275,13 @@ bool XEngine_AuthorizeHTTP_User(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, LPC
//是否超过
if (nTimeSpan >= 0)
{
- Database_SQLite_TrySet(&st_VERTemp);
+ if (st_AuthConfig.bDB) {
+ Database_SQLite_TrySet(&st_VERTemp);
+ }
+ else
+ {
+ Database_MYSQL_TrySet(&st_VERTemp);
+ }
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen);
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,序列号:%s,类型:%s,临时验证成功,剩余时间:%lld"), lpszClientAddr, st_VERTemp.tszVSerial, lpszXSerialType[st_VERTemp.enVMode], nTimeSpan);
@@ -256,8 +306,14 @@ bool XEngine_AuthorizeHTTP_User(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, LPC
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("HTTP客户端:%s,序列号:%s,临时验证插入失败,因为服务器关闭了此功能"), lpszClientAddr, st_VERTemp.tszVSerial);
return false;
}
- if (!Database_SQLite_TryInsert(&st_VERTemp))
- {
+ bool bSuccess = false;
+ if (st_AuthConfig.bDB) {
+ bSuccess = Database_SQLite_TryInsert(&st_VERTemp);
+ }
+ else {
+ bSuccess = Database_MYSQL_TryInsert(&st_VERTemp);
+ }
+ if (!bSuccess) {
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 500, "Internal Server Error");
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,序列号:%s,临时验证插入失败,无法继续,错误:%X"), lpszClientAddr, st_VERTemp.tszVSerial, DBModule_GetLastError());
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Hdr.h b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Hdr.h
index 78d426db7c1a563e065e34de27522c9c58676d54..34784b83b6a8157e94a55d092aaa00c0bdff7dc5 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Hdr.h
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Hdr.h
@@ -40,6 +40,8 @@ using namespace std;
#include
#include
#include
+#include
+#include
#include "../../XAuth_Protocol.h"
#include "../../AuthorizeModule_Configure/Config_Define.h"
#include "../../AuthorizeModule_Configure/Config_Error.h"
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.cpp
index 1240c6b8a8a41cd59e2edf37e5008f97ea522bad..5db95682c3ea17e5dd59d0ca1505e7aee68cd3a6 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.cpp
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.cpp
@@ -63,8 +63,14 @@ bool XEngine_Client_HttpTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int
_tcsxcpy(st_Banned.tszIPAddr, lpszClientAddr);
BaseLib_OperatorIPAddr_SegAddr(st_Banned.tszIPAddr);
//是否在黑名单
- if (Database_SQLite_BannedExist(&st_Banned))
- {
+ bool bSuccess = false;
+ if (st_AuthConfig.bDB) {
+ bSuccess = Database_SQLite_BannedExist(&st_Banned); //IP地址是否在黑名单
+ }
+ else {
+ bSuccess = Database_MYSQL_BannedExist(&st_Banned);//IP地址是否在黑名单
+ }
+ if (bSuccess) {
Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 423, "ip address is banned");
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("客户端:%s,登录连接被阻止,IP地址被禁用!"), lpszClientAddr);
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp
index af26d111113f10ec4a5ba0a863196ee81ee2c870..13dd97a666d2c4b2127bb21d4bbf2c2531c8a39d 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp
@@ -61,8 +61,14 @@ bool XEngine_Client_TCPTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int n
_tcsxcpy(st_Banned.tszIPAddr, lpszClientAddr);
BaseLib_OperatorIPAddr_SegAddr(st_Banned.tszIPAddr);
//是否在黑名单
- if (Database_SQLite_BannedExist(&st_Banned))
- {
+ bool bSuccess = false;
+ if (st_AuthConfig.bDB) {
+ bSuccess = Database_SQLite_BannedExist(&st_Banned); //是否在黑名单
+ }
+ else {
+ bSuccess = Database_MYSQL_BannedExist(&st_Banned);//是否在黑名单
+ }
+ if (bSuccess) {
pSt_ProtocolHdr->wReserve = 423;
Protocol_Packet_HDRComm(tszSDBuffer, &nSDLen, pSt_ProtocolHdr, nNetType);
XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, nNetType);
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Task.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Task.cpp
index 40e8fc89a61275d1087331290d5b81f98b0f069b..9750b59e2f59ca94ee728682a3e7b7f3b4d98af7 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Task.cpp
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Task.cpp
@@ -52,7 +52,13 @@ void CALLBACK XEngine_TaskEvent_Client(LPCXSTR lpszUserAddr, LPCXSTR lpszUserNam
_tcsxcpy(st_AuthTime.tszUserName, lpszUserName);
_tcsxcpy(st_AuthTime.tszUserAddr, lpszUserAddr);
- Database_SQLite_UserLeave(&st_AuthTime);
+ if (st_AuthConfig.bDB) {
+ Database_SQLite_UserLeave(&st_AuthTime);
+ }
+ else
+ {
+ Database_MYSQL_UserLeave(&st_AuthTime);
+ }
}
void CALLBACK XEngine_TaskEvent_Token(XNETHANDLE xhToken, XPVOID lParam)
{
diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.cpp
index ef866c7eae9d43773aa0b4cf750fbfe17538c669..00b9fcaa34909e9b7a82d30e1290257d47bb4745 100644
--- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.cpp
+++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.cpp
@@ -50,7 +50,13 @@ void ServiceApp_Stop(int signo)
Session_Authorize_Destroy();
Session_Token_Destroy();
AuthHelp_DynamicCode_Destory();
- Database_SQLite_Destroy();
+ if (st_AuthConfig.bDB) {
+ Database_SQLite_Destroy();//销毁DB数据库服务
+ }
+ else
+ {
+ Database_MYSQL_Destroy();// 待处理 销毁MYsql数据库服务
+ }
exit(0);
}
}
@@ -139,13 +145,25 @@ int main(int argc, char** argv)
}
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,初始化内存池成功"));
- if (!Database_SQLite_Init(st_AuthConfig.st_XSql.tszSQLite))
+ /*********** 初始化 MySql/DB数据库 ***********/
+ if (st_AuthConfig.bDB)
+ { //SQLite数据库
+ if (!Database_SQLite_Init(st_AuthConfig.st_XSql.tszSQLite))
+ {
+ XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,初始化DB数据库服务失败,错误:%lX"), DBModule_GetLastError());
+ goto XENGINE_EXITAPP;
+ }
+ XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,初始化DB数据库服务成功,数据库:%s"), st_AuthConfig.st_XSql.tszSQLite);
+ }
+ else
{
- XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,初始化数据库服务失败,错误:%lX"), DBModule_GetLastError());
- goto XENGINE_EXITAPP;
+ if (!Database_MYSQL_Init((DATABASE_MYSQL_CONNECTINFO*)&st_AuthConfig.st_XSql))
+ {
+ XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,初始化MySql数据库失败,错误:%lX"), DBModule_GetLastError());
+ goto XENGINE_EXITAPP;
+ }
+ XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,初始化MySql数据库服务成功,数据库:%s"), st_AuthConfig.st_XSql.tszDBName);
}
- XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,初始化数据库服务成功,数据库:%s"), st_AuthConfig.st_XSql.tszSQLite);
-
if (!Session_Authorize_Init(XEngine_TaskEvent_Client))
{
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,初始化会话客户端服务失败,错误:%lX"), Session_GetLastError());
@@ -332,7 +350,13 @@ XENGINE_EXITAPP:
Session_Authorize_Destroy();
Session_Token_Destroy();
AuthHelp_DynamicCode_Destory();
- Database_SQLite_Destroy();
+ if (st_AuthConfig.bDB) {
+ Database_SQLite_Destroy();//销毁DB数据库服务
+ }
+ else
+ {
+ Database_MYSQL_Destroy();// 待处理 销毁MYsql数据库服务
+ }
}
#ifdef _WINDOWS
WSACleanup();