diff --git a/XEngine_Release/XEngine_Config/XEngine_Config.json b/XEngine_Release/XEngine_Config/XEngine_Config.json index 977c10c4c1ebd0e6ea58f0b2a7a630f71cba7bad..4d95f244bbcd2635bc782202b7ad31dcfe5cf05b 100644 --- a/XEngine_Release/XEngine_Config/XEngine_Config.json +++ b/XEngine_Release/XEngine_Config/XEngine_Config.json @@ -40,8 +40,13 @@ "bEnable":false, "nPass":123123 }, - "XSQL":{ - "tszSQLFile":"./XEngine_DataBase/SQL_User.db" + "XSql":{ + "nSQLType":1, + "SQLAddr": "127.0.0.1", + "SQLPort": 3306, + "SQLUser": "root", + "SQLPass": "123123", + "SQLFile":"./XEngine_DataBase/SQL_User.db" }, "XLog":{ "tszLogFile":"./XEngine_XLog/XEngine_Authorize.log", @@ -54,4 +59,4 @@ "tszServiceName":"XEngine_Authorize", "tszAPIUrl":"http://app.xyry.org:5501/api?function=machine" } -} \ No newline at end of file +} diff --git a/XEngine_SQL/mysql.sql b/XEngine_SQL/mysql.sql new file mode 100644 index 0000000000000000000000000000000000000000..a1486904ef04e04c6659eb63477ba78bd4a00ab7 --- /dev/null +++ b/XEngine_SQL/mysql.sql @@ -0,0 +1,150 @@ +/* + 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 = InnoDB AUTO_INCREMENT = 0 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of Authorize_Announcement +-- ---------------------------- + + +-- ---------------------------- +-- 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 = InnoDB AUTO_INCREMENT = 0 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 = InnoDB AUTO_INCREMENT = 0 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of Authorize_BannedUser +-- ---------------------------- + + +-- ---------------------------- +-- 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 = InnoDB AUTO_INCREMENT = 0 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of Authorize_Serial +-- ---------------------------- + +-- ---------------------------- +-- 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 = InnoDB AUTO_INCREMENT = 0 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 = InnoDB AUTO_INCREMENT = 0 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'); +-- ---------------------------- +-- 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 = InnoDB 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..687982a572ed6a77f5dba809ae4b0a2e1e1f076c 100644 --- a/XEngine_Source/AuthorizeModule_Configure/Config_Define.h +++ b/XEngine_Source/AuthorizeModule_Configure/Config_Define.h @@ -15,6 +15,8 @@ ////////////////////////////////////////////////////////////////////////// typedef struct { + XCHAR tszIPAddr[128]; + XCHAR tszTopic[128]; int nTCPPort; //TCP端口 int nWSPort; //WEBSOCKET端口 int nHTTPPort; //HTTP管理端口 @@ -64,8 +66,20 @@ typedef struct int nPassword; //密码 }st_XCrypto; struct - { - XCHAR tszSQLite[MAX_PATH]; //数据库文件位置 + { + int nDBType; + struct + { + XCHAR tszSQLAddr[128]; //数据库地址 + XCHAR tszSQLUser[128]; //数据库账号 + XCHAR tszSQLPass[128]; //数据库密码 + XCHAR tszDBName[128]; //数据库名 + int nSQLPort; //数据库端口 + }st_MYSQL; + struct + { + XCHAR tszSQLite[MAX_PATH]; //数据库文件位置 + }st_SQLite; }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..dd051b0b518deeae17ee89279d6050fe15326224 100644 --- a/XEngine_Source/AuthorizeModule_Configure/ModuleConfigure_Json/ModuleConfigure_Json.cpp +++ b/XEngine_Source/AuthorizeModule_Configure/ModuleConfigure_Json/ModuleConfigure_Json.cpp @@ -147,14 +147,22 @@ 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 (st_JsonRoot["XSql"].empty() || (6 != 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()); + Json::Value st_JsonXSql = st_JsonRoot["XSql"]; + + pSt_ServerConfig->st_XSql.nDBType = st_JsonXSql["nSQLType"].asInt(); + + _tcsxcpy(pSt_ServerConfig->st_XSql.st_SQLite.tszSQLite, st_JsonXSql["SQLFile"].asCString()); + + pSt_ServerConfig->st_XSql.st_MYSQL.nSQLPort = st_JsonXSql["SQLPort"].asInt(); + _tcsxcpy(pSt_ServerConfig->st_XSql.st_MYSQL.tszSQLAddr, st_JsonXSql["SQLAddr"].asCString()); + _tcsxcpy(pSt_ServerConfig->st_XSql.st_MYSQL.tszSQLUser, st_JsonXSql["SQLUser"].asCString()); + _tcsxcpy(pSt_ServerConfig->st_XSql.st_MYSQL.tszSQLPass, st_JsonXSql["SQLPass"].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..ca0bf350e12e1a706d3ef9766727b37b1ed0d5f8 100644 --- a/XEngine_Source/AuthorizeModule_Database/AuthorizeModule_Database.def +++ b/XEngine_Source/AuthorizeModule_Database/AuthorizeModule_Database.def @@ -3,36 +3,70 @@ LIBRARY EXPORTS DBModule_GetLastError - Database_SQLite_Init - Database_SQLite_Destroy - - Database_SQLite_UserDelete - Database_SQLite_UserRegister - Database_SQLite_UserQuery - Database_SQLite_UserPay - Database_SQLite_UserLeave - Database_SQLite_UserSet - Database_SQLite_UserList - - Database_SQLite_SerialInsert - Database_SQLite_SerialDelete - Database_SQLite_SerialQuery - Database_SQLite_SerialQueryAll - Database_SQLite_SerialPush - - Database_SQLite_TryInsert - Database_SQLite_TryQuery - Database_SQLite_TryDelete - Database_SQLite_TryClear - Database_SQLite_TrySet - Database_SQLite_TryList - - Database_SQLite_BannedInsert - Database_SQLite_BannedDelete - Database_SQLite_BannedList - Database_SQLite_BannedExist - Database_SQLite_BannedUPDate - - Database_SQLite_AnnouncementInsert - Database_SQLite_AnnouncementDelete - Database_SQLite_AnnouncementList \ No newline at end of file + DBModule_SQLite_Init + DBModule_SQLite_Destroy + + DBModule_SQLite_UserDelete + DBModule_SQLite_UserRegister + DBModule_SQLite_UserQuery + DBModule_SQLite_UserPay + DBModule_SQLite_UserLeave + DBModule_SQLite_UserSet + DBModule_SQLite_UserList + + DBModule_SQLite_SerialInsert + DBModule_SQLite_SerialDelete + DBModule_SQLite_SerialQuery + DBModule_SQLite_SerialQueryAll + DBModule_SQLite_SerialPush + + DBModule_SQLite_TryInsert + DBModule_SQLite_TryQuery + DBModule_SQLite_TryDelete + DBModule_SQLite_TryClear + DBModule_SQLite_TrySet + DBModule_SQLite_TryList + + DBModule_SQLite_BannedInsert + DBModule_SQLite_BannedDelete + DBModule_SQLite_BannedList + DBModule_SQLite_BannedExist + DBModule_SQLite_BannedUPDate + + DBModule_SQLite_AnnouncementInsert + DBModule_SQLite_AnnouncementDelete + DBModule_SQLite_AnnouncementList + + DBModule_MySQL_Init + DBModule_MySQL_Destroy + + DBModule_MySQL_UserDelete + DBModule_MySQL_UserRegister + DBModule_MySQL_UserQuery + DBModule_MySQL_UserPay + DBModule_MySQL_UserLeave + DBModule_MySQL_UserSet + DBModule_MySQL_UserList + + DBModule_MySQL_SerialInsert + DBModule_MySQL_SerialDelete + DBModule_MySQL_SerialQuery + DBModule_MySQL_SerialQueryAll + DBModule_MySQL_SerialPush + + DBModule_MySQL_TryInsert + DBModule_MySQL_TryQuery + DBModule_MySQL_TryDelete + DBModule_MySQL_TryClear + DBModule_MySQL_TrySet + DBModule_MySQL_TryList + + DBModule_MySQL_BannedInsert + DBModule_MySQL_BannedDelete + DBModule_MySQL_BannedList + DBModule_MySQL_BannedExist + DBModule_MySQL_BannedUPDate + + DBModule_MySQL_AnnouncementInsert + DBModule_MySQL_AnnouncementDelete + DBModule_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..b71286a6a38f8f9689a238ae8764f620a1b85a1f 100644 --- a/XEngine_Source/AuthorizeModule_Database/AuthorizeModule_Database.vcxproj +++ b/XEngine_Source/AuthorizeModule_Database/AuthorizeModule_Database.vcxproj @@ -161,12 +161,14 @@ - + + - + + Create diff --git a/XEngine_Source/AuthorizeModule_Database/AuthorizeModule_Database.vcxproj.filters b/XEngine_Source/AuthorizeModule_Database/AuthorizeModule_Database.vcxproj.filters index 6cbd88b5afbe74bc87e3b05716325736e257c29b..1218446e3952a4d68041c738ce8154649b5816a4 100644 --- a/XEngine_Source/AuthorizeModule_Database/AuthorizeModule_Database.vcxproj.filters +++ b/XEngine_Source/AuthorizeModule_Database/AuthorizeModule_Database.vcxproj.filters @@ -13,10 +13,16 @@ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - + + {e8a2076d-4bed-4439-9493-1a33b0f6fd2b} + + + {dc9f7cbb-dd1b-4430-99ee-15793188c3a0} + + {bb64f825-b769-444e-b078-90c2727b694f} - + {be64df35-6ef0-4c8c-b95a-444977d7d1c4} @@ -27,15 +33,18 @@ 头文件 - - 头文件\Database_SQLite - 头文件 头文件 + + 头文件\DBModule_MySQL + + + 头文件\DBModule_SQLite + @@ -44,8 +53,11 @@ 源文件 - - 源文件\Database_SQLite + + 源文件\DBModule_MySQL + + + 源文件\DBModule_SQLite diff --git a/XEngine_Source/AuthorizeModule_Database/DBModule_MySQL/DBModule_MySQL.cpp b/XEngine_Source/AuthorizeModule_Database/DBModule_MySQL/DBModule_MySQL.cpp new file mode 100644 index 0000000000000000000000000000000000000000..89094b421450019b350e5f3e30ed1a72ce19a5d4 --- /dev/null +++ b/XEngine_Source/AuthorizeModule_Database/DBModule_MySQL/DBModule_MySQL.cpp @@ -0,0 +1,1997 @@ +#include "pch.h" +#include "DBModule_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: +*********************************************************************/ +CDBModule_MySQL::CDBModule_MySQL() +{ + m_bChange = false; + xhData = 0; +} + +CDBModule_MySQL::~CDBModule_MySQL() +{ +} +////////////////////////////////////////////////////////////////////////// +// 公有函数 +////////////////////////////////////////////////////////////////////////// +/******************************************************************** +函数名称:DBModule_MySQL_Init +函数功能:初始化数据库管理器 + 参数.一:pSt_DBConnector + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:数据MYSQL数据库连接信息 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +bool CDBModule_MySQL::DBModule_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; +} +/******************************************************************** +函数名称:DBModule_MySQL_Destroy +函数功能:销毁数据库管理器 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +bool CDBModule_MySQL::DBModule_MySQL_Destroy() +{ + SQLPacket_IsErrorOccur = false; + + DataBase_MySQL_Close(xhData); + return true; +} +/******************************************************************** +函数名称:DBModule_MySQL_UserDelete +函数功能:删除一个用户从数据库中 + 参数.一:lpszUserName + In/Out:In + 类型:常量字符指针 + 可空:N + 意思:要删除的用户 +返回值 + 类型:逻辑型 + 意思:是否删除成功 +备注: +*********************************************************************/ +bool CDBModule_MySQL::DBModule_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; +} +/******************************************************************** +函数名称:DBModule_MySQL_UserRegister +函数功能:用户注册处理数据库语句函数 + 参数.一:pSt_UserInfo + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:要插入的用户数据 +返回值 + 类型:逻辑型 + 意思:是否插入成功 +备注: +*********************************************************************/ +bool CDBModule_MySQL::DBModule_MySQL_UserRegister(AUTHREG_USERTABLE* pSt_UserInfo) +{ + SQLPacket_IsErrorOccur = false; + XCHAR tszSQLStatement[1024]; //SQL语句 + memset(tszSQLStatement, '\0', 1024); + + if (DBModule_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; +} +/******************************************************************** +函数名称:DBModule_MySQL_UserQuery +函数功能:查询用户相对应的值 + 参数.一:lpszUserName + In/Out:In + 类型:常量字符指针 + 可空:N + 意思:要查询的指定用户 + 参数.二:pSt_UserInfo + In/Out:Out + 类型:数据结构指针 + 可空:Y + 意思:如果为空NULL,那么将只判断此用户是否存在 +返回值 + 类型:逻辑型 + 意思:是否查询成功 +备注: +*********************************************************************/ +bool CDBModule_MySQL::DBModule_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); + + if (NULL != pSt_UserInfo) + { + memset(pSt_UserInfo, '\0', sizeof(AUTHREG_USERTABLE)); + + //ID + int nFliedValue = 0; + + //用户名 + nFliedValue++; + if (NULL != pptszResult[nFliedValue]) + { + _tcsxcpy(pSt_UserInfo->st_UserInfo.tszUserName, pptszResult[nFliedValue]); + } + + //密码 + nFliedValue++; + if (NULL != pptszResult[nFliedValue]) + { + _tcsxcpy(pSt_UserInfo->st_UserInfo.tszUserPass, pptszResult[nFliedValue]); + } + + //过期时间 + nFliedValue++; + if (NULL != pptszResult[nFliedValue]) + { + _tcsxcpy(pSt_UserInfo->tszLeftTime, pptszResult[nFliedValue]); + } + + //电子邮件 + nFliedValue++; + if (NULL != pptszResult[nFliedValue]) + { + _tcsxcpy(pSt_UserInfo->st_UserInfo.tszEMailAddr, pptszResult[nFliedValue]); + } + + //硬件码 + nFliedValue++; + if (NULL != pptszResult[nFliedValue]) + { + _tcsxcpy(pSt_UserInfo->tszHardCode, pptszResult[nFliedValue]); + } + + //充值卡类型 + nFliedValue++; + if (NULL != pptszResult[nFliedValue]) + { + pSt_UserInfo->enSerialType = (ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE)_ttxoi(pptszResult[nFliedValue]); + } + + //QQ号 + nFliedValue++; + if (NULL != pptszResult[nFliedValue]) + { + pSt_UserInfo->st_UserInfo.nPhoneNumber = _ttxoll(pptszResult[nFliedValue]); + } + + //身份证ID + nFliedValue++; + if (NULL != pptszResult[nFliedValue]) + { + pSt_UserInfo->st_UserInfo.nIDNumber = _ttxoll(pptszResult[nFliedValue]); + } + + //用户级别 -1表示封禁 + nFliedValue++; + if (NULL != pptszResult[nFliedValue]) + { + pSt_UserInfo->st_UserInfo.nUserLevel = _ttxoi(pptszResult[nFliedValue]); + } + + //登录日期 + nFliedValue++; + if (NULL != pptszResult[nFliedValue] && _tcsxlen(pptszResult[nFliedValue]) > 0) + { + _tcsxcpy(pSt_UserInfo->st_UserInfo.tszLoginTime, pptszResult[nFliedValue]); + } + //注册日期 + nFliedValue++; + if (NULL != pptszResult[nFliedValue]) + { + _tcsxcpy(pSt_UserInfo->st_UserInfo.tszCreateTime, pptszResult[nFliedValue]); + } + + } + DataBase_MySQL_FreeResult(xhData, xhTable); + return true; +} +/******************************************************************** +函数名称:DBModule_MySQL_UserPay +函数功能:用户充值函数 + 参数.一:lpszUserName + In/Out:In + 类型:常量字符指针 + 可空:N + 意思:要充值的用户名 + 参数.二:lpszSerialName + In/Out:In + 类型:常量字符指针 + 可空:N + 意思:充值使用的序列号 +返回值 + 类型:逻辑型 + 意思:是否成功充值 +备注: +*********************************************************************/ +bool CDBModule_MySQL::DBModule_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 (!DBModule_MySQL_SerialQuery(lpszSerialName, &st_SerialTable)) + { + return false; + } + //充值卡是否被使用 + if (st_SerialTable.bIsUsed) + { + SQLPacket_IsErrorOccur = true; + SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_ISUSED; + return false; + } + //查询用户信息 + if (!DBModule_MySQL_UserQuery(lpszUserName, &st_UserTable)) + { + return false; + } + //分析插入方式 + switch (st_SerialTable.enSerialType) + { + case ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_SECOND: + if (!DBModule_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 (!DBModule_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 (!DBModule_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 (!DBModule_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; +} +/******************************************************************** +函数名称:DBModule_MySQL_UserLeave +函数功能:用户离开处理事件 + 参数.一:pSt_TimeProtocol + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:离开的用户信息 +返回值 + 类型:逻辑型 + 意思:是否处理成功 +备注: +*********************************************************************/ +bool CDBModule_MySQL::DBModule_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; +} +/******************************************************************** +函数名称:DBModule_MySQL_UserSet +函数功能:设置用户信息 + 参数.一:pSt_UserTable + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:输入要设置的信息 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +bool CDBModule_MySQL::DBModule_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); + + //更新用户剩余时间 + if (!DataBase_MySQL_Execute(xhData, tszSQLStatement)) + { + SQLPacket_IsErrorOccur = true; + SQLPacket_dwErrorCode = DataBase_GetLastError(); + return false; + } + return true; +} +/******************************************************************** +函数名称:DBModule_MySQL_UserList +函数功能:获取用户列表 + 参数.一:pppSt_UserInfo + In/Out:Out + 类型:三级指针 + 可空:N + 意思:输出用户列表,内存由用户释放 + 参数.二:pInt_ListCount + In/Out:Out + 类型:整数型 + 可空:N + 意思:输出列表个数 + 参数.三:nPosStart + In/Out:In + 类型:整数型 + 可空:Y + 意思:输入起始位置 + 参数.四:nPosEnd + In/Out:In + 类型:整数型 + 可空:Y + 意思:输入结束位置 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +bool CDBModule_MySQL::DBModule_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; +} +/******************************************************************** +函数名称:DBModule_MySQL_SerialInsert +函数功能:插入一个序列号到数据库 + 参数.一:lpszSerialNumber + In/Out:In + 类型:常量字符指针 + 可空:N + 意思:要插入的序列号 +返回值 + 类型:逻辑型 + 意思:是否插入成功 +备注: +*********************************************************************/ +bool CDBModule_MySQL::DBModule_MySQL_SerialInsert(LPCXSTR lpszSerialNumber) +{ + SQLPacket_IsErrorOccur = false; + + XCHAR tszSQLStatement[1024]; //SQL语句 + memset(tszSQLStatement, '\0', 1024); + + if (DBModule_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; +} +/******************************************************************** +函数名称:DBModule_MySQL_SerialDelete +函数功能:从数据库删除指定序列号 + 参数.一:lpszSerialNumber + In/Out:In + 类型:常量字符指针 + 可空:N + 意思:要删除的序列号 +返回值 + 类型:逻辑型 + 意思:是否删除成功 +备注: +*********************************************************************/ +bool CDBModule_MySQL::DBModule_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; +} +/******************************************************************** +函数名称:DBModule_MySQL_SerialQuery +函数功能:查询一个指定的序列号信息 + 参数.一:lpszSerialNumber + In/Out:In + 类型:常量字符指针 + 可空:N + 意思:要查询的序列号 + 参数.二:pSt_SerialTable + In/Out:Out + 类型:数据结构指针 + 可空:Y + 意思:导出查询到的信息,如果为NULL,此参数将不起作用 +返回值 + 类型:逻辑型 + 意思:是否查询成功,如果第二个参数为NULL,那么将只返回是否有这个序列号 +备注: +*********************************************************************/ +bool CDBModule_MySQL::DBModule_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; +} +/******************************************************************** +函数名称:DBModule_MySQL_SerialQueryAll +函数功能:查询序列卡表中的所有序列号 + 参数.一:pppSt_SerialTable + In/Out:Out + 类型:三级指针 + 可空:N + 意思:输出序列卡列表 + 参数.二:pInt_ListCount + In/Out:Out + 类型:整数型指针 + 可空:Y + 意思:输出多少张卡 + 参数.三:nPosStart + In/Out:In + 类型:整数型 + 可空:Y + 意思:输入起始位置 + 参数.四:nPosEnd + In/Out:In + 类型:整数型 + 可空:Y + 意思:输入结束位置 +返回值 + 类型:逻辑型 + 意思:是否查询成功 +备注:参数一需要调用基础库的释放内存函数进行内存释放 +*********************************************************************/ +bool CDBModule_MySQL::DBModule_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; +} +/******************************************************************** +函数名称:DBModule_MySQL_SerialPush +函数功能:插入一条指定的序列号信息到服务器 + 参数.一:pSt_SerialTable + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:输入要插入的信息 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +bool CDBModule_MySQL::DBModule_MySQL_SerialPush(AUTHREG_SERIALTABLE* pSt_SerialTable) +{ + SQLPacket_IsErrorOccur = false; + + XCHAR tszSQLStatement[1024]; //SQL语句 + memset(tszSQLStatement, '\0', 1024); + + if (DBModule_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; +} +/******************************************************************** +函数名称:DBModule_MySQL_TryInsert +函数功能:网络使用模式插入一条数据 + 参数.一:pSt_AuthVer + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:输入要插入的数据 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +bool CDBModule_MySQL::DBModule_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)); + //验证是否存在 + _tcsxcpy(st_AuthVer.tszVSerial, pSt_AuthVer->tszVSerial); + if (DBModule_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); + + if (!DataBase_MySQL_Execute(xhData, tszSQLStatement)) + { + SQLPacket_IsErrorOccur = true; + SQLPacket_dwErrorCode = DataBase_GetLastError(); + return false; + } + return true; +} +/******************************************************************** +函数名称:DBModule_MySQL_TryQuery +函数功能:试用序列号查询函数 + 参数.一:pSt_AuthVer + In/Out:In/Out + 类型:数据结构指针 + 可空:N + 意思:输入序列号,输出获取到的内容 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +bool CDBModule_MySQL::DBModule_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); + + + 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_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; +} +/******************************************************************** +函数名称:DBModule_MySQL_TryDelete +函数功能:删除一条指定的试用数据 + 参数.一:lpszSerial + In/Out:In + 类型:常量字符指针 + 可空:N + 意思:输入要删除的序列号 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +bool CDBModule_MySQL::DBModule_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; +} +/******************************************************************** +函数名称:DBModule_MySQL_TryClear +函数功能:清理函数,自动清理过期数据 + 参数.一:nThanValue + In/Out:In + 类型:整数型 + 可空:N + 意思:清理用于判断需要大于此的值 + 参数.二:enVMode + In/Out:In + 类型:枚举型 + 可空:Y + 意思:判断注册类型,默认不判断全部执行 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +bool CDBModule_MySQL::DBModule_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++) + { + //判断是不是不关心注册的模式直接清理 + 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; +} +/******************************************************************** +函数名称:DBModule_MySQL_TrySet +函数功能:设置用户信息函数 + 参数.一:pSt_AuthVer + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:输入要更新的用户信息 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +bool CDBModule_MySQL::DBModule_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; +} +/******************************************************************** +函数名称:DBModule_MySQL_TryList +函数功能:请求试用期列表 + 参数.一:pppSt_AuthVer + In/Out:Out + 类型:三级指针 + 可空:N + 意思:输出获取到的列表 + 参数.二:pInt_ListCount + In/Out:Out + 类型:整数型指针 + 可空:N + 意思:输出列表个数 + 参数.三:nPosStart + In/Out:In + 类型:整数型 + 可空:N + 意思:输入查询起始编号 + 参数.四:nPosEnd + In/Out:In + 类型:整数型 + 可空:N + 意思:输入查询结束编号 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +bool CDBModule_MySQL::DBModule_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; +} +/******************************************************************** +函数名称:DBModule_MySQL_BannedInsert +函数功能:黑名单列表插入 + 参数.一:pSt_Banned + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:要操作的数据 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +bool CDBModule_MySQL::DBModule_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 (DBModule_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); + } + + if (!DataBase_MySQL_Execute(xhData, tszSQLStatement)) + { + SQLPacket_IsErrorOccur = true; + SQLPacket_dwErrorCode = DataBase_GetLastError(); + return false; + } + return true; +} +/******************************************************************** +函数名称:DBModule_MySQL_BannedDelete +函数功能:黑名单列表删除 + 参数.一:pSt_Banned + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:要操作的数据 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +bool CDBModule_MySQL::DBModule_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; +} +/******************************************************************** +函数名称:DBModule_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 + 意思:输入查找结束位置 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +bool CDBModule_MySQL::DBModule_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; +} +/******************************************************************** +函数名称:DBModule_MySQL_BannedExist +函数功能:名单是否存在黑名单列表 + 参数.一:pSt_Banned + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:要操作的数据 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +bool CDBModule_MySQL::DBModule_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_PARAMENT; + 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; + } + + if (nRow <= 0) + { + SQLPacket_IsErrorOccur = true; + SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_PARAMENT; + 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); + } + //处理是否被禁用 + 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; +} +/******************************************************************** +函数名称:DBModule_MySQL_BannedUPDate +函数功能:更新名单列表信息 + 参数.一:pSt_Banned + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:要操作的数据 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +bool CDBModule_MySQL::DBModule_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; +} +/******************************************************************** +函数名称:DBModule_MySQL_AnnouncementInsert +函数功能:公告插入 + 参数.一:pSt_Announcement + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:输入要插入的信息 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +bool CDBModule_MySQL::DBModule_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); + + //插入数据库 + if (!DataBase_MySQL_Execute(xhData, tszSQLStatement)) + { + SQLPacket_IsErrorOccur = true; + SQLPacket_dwErrorCode = DataBase_GetLastError(); + return false; + } + return true; +} +/******************************************************************** +函数名称:DBModule_MySQL_AnnouncementDelete +函数功能:公告删除 + 参数.一:pSt_Announcement + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:输入要删除的信息 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +bool CDBModule_MySQL::DBModule_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; +} +/******************************************************************** +函数名称:DBModule_MySQL_AnnouncementList +函数功能:列举所有公告 + 参数.一:ppppSt_Announcement + In/Out:Out + 类型:三级指针 + 可空:N + 意思:输出列举数据 + 参数.二:pInt_ListCount + In/Out:Out + 类型:整数型指针 + 可空:N + 意思:导出数据个数 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +bool CDBModule_MySQL::DBModule_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; +} + +////////////////////////////////////////////////////////////////////////// +// 保护函数 +////////////////////////////////////////////////////////////////////////// +/******************************************************************** +函数名称:DBModule_MySQL_UserPayTime +函数功能:日期方式充值方式 + 参数.一:lpszUserName + In/Out:In + 类型:常量字符指针 + 可空:N + 意思:充值的用户 + 参数.二:lpszUserTime + In/Out:In + 类型:常量字符指针 + 可空:N + 意思:用户以前的超时时间 + 参数.三:lpszCardTime + In/Out:In + 类型:常量字符指针 + 可空:N + 意思:充值卡时间 + 参数.四:en_AuthSerialType + In/Out:In + 类型:枚举型 + 可空:N + 意思:充值卡的充值类型 + 参数.五:en_AuthUserType + In/Out:In + 类型:枚举型 + 可空:N + 意思:用户表中以前的充值卡类型 +返回值 + 类型:逻辑型 + 意思:是否成功充值 +备注: +*********************************************************************/ +bool CDBModule_MySQL::DBModule_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)); + //判断和以前的充值卡是否匹配。 + 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; + } + } + //更新用户表的充值卡类型 + 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: + { + //如果是分钟卡 + //如果当前的充值卡类型不匹配,那么他以前的充值内容全部都会被删除! + _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/DBModule_MySQL/DBModule_MySQL.h b/XEngine_Source/AuthorizeModule_Database/DBModule_MySQL/DBModule_MySQL.h new file mode 100644 index 0000000000000000000000000000000000000000..eea88f3b718a7cd7e4a89c3371ea67581f3fd728 --- /dev/null +++ b/XEngine_Source/AuthorizeModule_Database/DBModule_MySQL/DBModule_MySQL.h @@ -0,0 +1,61 @@ +#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 CDBModule_MySQL +{ +public: + CDBModule_MySQL(); + ~CDBModule_MySQL(); +public: + bool DBModule_MySQL_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector, bool bIsChange = true); //初始化 + bool DBModule_MySQL_Destroy(); //销毁 +public: + bool DBModule_MySQL_UserDelete(LPCXSTR lpszUserName); //删除用户 + bool DBModule_MySQL_UserRegister(AUTHREG_USERTABLE* pSt_UserInfo); //用户注册 + bool DBModule_MySQL_UserQuery(LPCXSTR lpszUserName, AUTHREG_USERTABLE* pSt_UserInfo = NULL); //用户查询 + bool DBModule_MySQL_UserPay(LPCXSTR lpszUserName, LPCXSTR lpszSerialName); //充值卡充值 + bool DBModule_MySQL_UserLeave(AUTHREG_PROTOCOL_TIME* pSt_TimeProtocol); //用户离开更新表 + bool DBModule_MySQL_UserSet(AUTHREG_USERTABLE* pSt_UserTable); //设置用户信息 + bool DBModule_MySQL_UserList(AUTHREG_USERTABLE*** pppSt_UserInfo, int* pInt_ListCount, int nPosStart, int nPosEnd); //获取用户列表 +public: + bool DBModule_MySQL_SerialInsert(LPCXSTR lpszSerialNumber); //插入序列卡 + bool DBModule_MySQL_SerialDelete(LPCXSTR lpszSerialNumber); //删除一个序列号 + bool DBModule_MySQL_SerialQuery(LPCXSTR lpszSerialNumber, LPAUTHREG_SERIALTABLE pSt_SerialTable = NULL); //按照卡号或者用户查询 + bool DBModule_MySQL_SerialQueryAll(AUTHREG_SERIALTABLE*** pppSt_SerialTable, int* pInt_ListCount, int nPosStart, int nPosEnd);//查询所有序列卡 + bool DBModule_MySQL_SerialPush(AUTHREG_SERIALTABLE* pSt_SerialTable);//插入一条指定的序列号信息到服务器 +public: + bool DBModule_MySQL_TryInsert(AUTHREG_TEMPVER* pSt_AuthVer); //网络使用模式插入一条数据 + bool DBModule_MySQL_TryQuery(AUTHREG_TEMPVER* pSt_AuthVer); //试用序列号查询函数 + bool DBModule_MySQL_TryDelete(LPCXSTR lpszSerial); //删除一条指定的试用数据 + bool DBModule_MySQL_TryClear(int nThanValue, ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE enVerMode = ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_UNKNOW); //清理函数,自动清理过期数据 + bool DBModule_MySQL_TrySet(AUTHREG_TEMPVER* pSt_AuthVer); //设置用户信息函数 + bool DBModule_MySQL_TryList(AUTHREG_TEMPVER*** pppSt_AuthVer, int* pInt_ListCount, int nPosStart = 0, int nPosEnd = 1000); //请求试用期列表 +public: + bool DBModule_MySQL_BannedInsert(AUTHREG_BANNED* pSt_Banned); //黑名单列表插入 + bool DBModule_MySQL_BannedDelete(AUTHREG_BANNED* pSt_Banned); //黑名单列表删除 + bool DBModule_MySQL_BannedList(AUTHREG_BANNED*** pppSt_BannedUser, int* pInt_UserCount, AUTHREG_BANNED*** pppSt_BannedAddr, int* pInt_AddrCount, int nPosStart, int nPosEnd); //黑名单列表查询 + bool DBModule_MySQL_BannedExist(AUTHREG_BANNED* pSt_Banned); //名单是否存在黑名单列表 + bool DBModule_MySQL_BannedUPDate(AUTHREG_BANNED* pSt_Banned); //更新名单列表信息 +public: + bool DBModule_MySQL_AnnouncementInsert(AUTHREG_ANNOUNCEMENT* pSt_Announcement); //公告插入 + bool DBModule_MySQL_AnnouncementDelete(AUTHREG_ANNOUNCEMENT* pSt_Announcement); //公告删除 + bool DBModule_MySQL_AnnouncementList(AUTHREG_ANNOUNCEMENT*** ppppSt_Announcement, int* pInt_ListCount); //列举所有公告 +protected: + bool DBModule_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/Database_SQLite/Database_SQLite.cpp b/XEngine_Source/AuthorizeModule_Database/DBModule_SQLite/DBModule_SQLite.cpp similarity index 94% rename from XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.cpp rename to XEngine_Source/AuthorizeModule_Database/DBModule_SQLite/DBModule_SQLite.cpp index e5c42f09119f2ea08fd2cb3b6ca16d20ff61c8cf..08c33ef5a296b2f09bbd5205a81f5b64539e701d 100644 --- a/XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.cpp +++ b/XEngine_Source/AuthorizeModule_Database/DBModule_SQLite/DBModule_SQLite.cpp @@ -1,5 +1,5 @@ #include "pch.h" -#include "Database_SQLite.h" +#include "DBModule_SQLite.h" /******************************************************************** // Created: 2022/05/26 11:01:13 // File Name: D:\XEngine_Authorize\XEngine_Source\AuthorizeModule_Database\Database_SQLite\Database_SQLite.cpp @@ -11,11 +11,11 @@ // Purpose: 数据库管理器 // History: *********************************************************************/ -CDatabase_SQLite::CDatabase_SQLite() +CDBModule_SQLite::CDBModule_SQLite() { m_bChange = false; } -CDatabase_SQLite::~CDatabase_SQLite() +CDBModule_SQLite::~CDBModule_SQLite() { } @@ -23,7 +23,7 @@ CDatabase_SQLite::~CDatabase_SQLite() // 公有函数 ////////////////////////////////////////////////////////////////////////// /******************************************************************** -函数名称:Database_SQLite_Init +函数名称:DBModule_SQLite_Init 函数功能:初始化数据库服务 参数.一:lpszSQLFile In/Out:In @@ -40,7 +40,7 @@ CDatabase_SQLite::~CDatabase_SQLite() 意思:是否成功 备注:先初始化数据库服务,在初始化网络服务,才可以使用本验证服务器! *********************************************************************/ -bool CDatabase_SQLite::Database_SQLite_Init(LPCXSTR lpszSQLFile, bool bIsChange /* = true */) +bool CDBModule_SQLite::DBModule_SQLite_Init(LPCXSTR lpszSQLFile, bool bIsChange /* = true */) { SQLPacket_IsErrorOccur = false; m_bChange = bIsChange; @@ -54,14 +54,14 @@ bool CDatabase_SQLite::Database_SQLite_Init(LPCXSTR lpszSQLFile, bool bIsChange return true; } /******************************************************************** -函数名称:Database_SQLite_Destroy +函数名称:DBModule_SQLite_Destroy 函数功能:销毁数据库服务 返回值 类型:逻辑型 意思:是否销毁成功 备注: *********************************************************************/ -bool CDatabase_SQLite::Database_SQLite_Destroy() +bool CDBModule_SQLite::DBModule_SQLite_Destroy() { SQLPacket_IsErrorOccur = false; @@ -74,7 +74,7 @@ bool CDatabase_SQLite::Database_SQLite_Destroy() return true; } /******************************************************************** -函数名称:Database_SQLite_UserDelete +函数名称:DBModule_SQLite_UserDelete 函数功能:删除一个用户从数据库中 参数.一:lpszUserName In/Out:In @@ -86,7 +86,7 @@ bool CDatabase_SQLite::Database_SQLite_Destroy() 意思:是否删除成功 备注: *********************************************************************/ -bool CDatabase_SQLite::Database_SQLite_UserDelete(LPCXSTR lpszUserName) +bool CDBModule_SQLite::DBModule_SQLite_UserDelete(LPCXSTR lpszUserName) { SQLPacket_IsErrorOccur = false; XCHAR tszSQLStatement[1024]; //SQL语句 @@ -102,7 +102,7 @@ bool CDatabase_SQLite::Database_SQLite_UserDelete(LPCXSTR lpszUserName) return true; } /******************************************************************** -函数名称:Database_SQLite_UserRegister +函数名称:DBModule_SQLite_UserRegister 函数功能:用户注册处理数据库语句函数 参数.一:pSt_UserInfo In/Out:In @@ -114,13 +114,13 @@ bool CDatabase_SQLite::Database_SQLite_UserDelete(LPCXSTR lpszUserName) 意思:是否插入成功 备注: *********************************************************************/ -bool CDatabase_SQLite::Database_SQLite_UserRegister(AUTHREG_USERTABLE* pSt_UserInfo) +bool CDBModule_SQLite::DBModule_SQLite_UserRegister(AUTHREG_USERTABLE* pSt_UserInfo) { SQLPacket_IsErrorOccur = false; XCHAR tszSQLStatement[1024]; //SQL语句 memset(tszSQLStatement, '\0', 1024); - if (Database_SQLite_UserQuery(pSt_UserInfo->st_UserInfo.tszUserName)) + if (DBModule_SQLite_UserQuery(pSt_UserInfo->st_UserInfo.tszUserName)) { SQLPacket_IsErrorOccur = true; SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_EXIST; @@ -136,7 +136,7 @@ bool CDatabase_SQLite::Database_SQLite_UserRegister(AUTHREG_USERTABLE* pSt_UserI return true; } /******************************************************************** -函数名称:Database_SQLite_UserQuery +函数名称:DBModule_SQLite_UserQuery 函数功能:查询用户相对应的值 参数.一:lpszUserName In/Out:In @@ -153,7 +153,7 @@ bool CDatabase_SQLite::Database_SQLite_UserRegister(AUTHREG_USERTABLE* pSt_UserI 意思:是否查询成功 备注: *********************************************************************/ -bool CDatabase_SQLite::Database_SQLite_UserQuery(LPCXSTR lpszUserName, AUTHREG_USERTABLE* pSt_UserInfo /* = NULL */) +bool CDBModule_SQLite::DBModule_SQLite_UserQuery(LPCXSTR lpszUserName, AUTHREG_USERTABLE* pSt_UserInfo /* = NULL */) { SQLPacket_IsErrorOccur = false; XCHAR tszSQLStatement[1024]; //SQL语句 @@ -223,7 +223,7 @@ bool CDatabase_SQLite::Database_SQLite_UserQuery(LPCXSTR lpszUserName, AUTHREG_U return true; } /******************************************************************** -函数名称:Database_SQLite_UserPay +函数名称:DBModule_SQLite_UserPay 函数功能:用户充值函数 参数.一:lpszUserName In/Out:In @@ -240,7 +240,7 @@ bool CDatabase_SQLite::Database_SQLite_UserQuery(LPCXSTR lpszUserName, AUTHREG_U 意思:是否成功充值 备注: *********************************************************************/ -bool CDatabase_SQLite::Database_SQLite_UserPay(LPCXSTR lpszUserName, LPCXSTR lpszSerialName) +bool CDBModule_SQLite::DBModule_SQLite_UserPay(LPCXSTR lpszUserName, LPCXSTR lpszSerialName) { SQLPacket_IsErrorOccur = false; @@ -259,7 +259,7 @@ bool CDatabase_SQLite::Database_SQLite_UserPay(LPCXSTR lpszUserName, LPCXSTR lps return false; } //查询充值卡是否存在 - if (!Database_SQLite_SerialQuery(lpszSerialName, &st_SerialTable)) + if (!DBModule_SQLite_SerialQuery(lpszSerialName, &st_SerialTable)) { return false; } @@ -271,7 +271,7 @@ bool CDatabase_SQLite::Database_SQLite_UserPay(LPCXSTR lpszUserName, LPCXSTR lps return false; } //查询用户信息 - if (!Database_SQLite_UserQuery(lpszUserName, &st_UserTable)) + if (!DBModule_SQLite_UserQuery(lpszUserName, &st_UserTable)) { return false; } @@ -279,25 +279,25 @@ bool CDatabase_SQLite::Database_SQLite_UserPay(LPCXSTR lpszUserName, LPCXSTR lps switch (st_SerialTable.enSerialType) { case ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_SECOND: - if (!Database_SQLite_UserPayTime(lpszUserName, st_UserTable.tszLeftTime, st_SerialTable.tszMaxTime, st_SerialTable.enSerialType, st_UserTable.enSerialType)) + if (!DBModule_SQLite_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_SQLite_UserPayTime(lpszUserName, st_UserTable.tszLeftTime, st_SerialTable.tszMaxTime, st_SerialTable.enSerialType, st_UserTable.enSerialType)) + if (!DBModule_SQLite_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_SQLite_UserPayTime(lpszUserName, st_UserTable.tszLeftTime, st_SerialTable.tszMaxTime, st_SerialTable.enSerialType, st_UserTable.enSerialType)) + if (!DBModule_SQLite_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_SQLite_UserPayTime(lpszUserName, st_UserTable.tszLeftTime, st_SerialTable.tszMaxTime, st_SerialTable.enSerialType, st_UserTable.enSerialType)) + if (!DBModule_SQLite_UserPayTime(lpszUserName, st_UserTable.tszLeftTime, st_SerialTable.tszMaxTime, st_SerialTable.enSerialType, st_UserTable.enSerialType)) { return false; } @@ -317,7 +317,7 @@ bool CDatabase_SQLite::Database_SQLite_UserPay(LPCXSTR lpszUserName, LPCXSTR lps return true; } /******************************************************************** -函数名称:Database_SQLite_UserLeave +函数名称:DBModule_SQLite_UserLeave 函数功能:用户离开处理事件 参数.一:pSt_TimeProtocol In/Out:In @@ -329,7 +329,7 @@ bool CDatabase_SQLite::Database_SQLite_UserPay(LPCXSTR lpszUserName, LPCXSTR lps 意思:是否处理成功 备注: *********************************************************************/ -bool CDatabase_SQLite::Database_SQLite_UserLeave(AUTHREG_PROTOCOL_TIME* pSt_TimeProtocol) +bool CDBModule_SQLite::DBModule_SQLite_UserLeave(AUTHREG_PROTOCOL_TIME* pSt_TimeProtocol) { SQLPacket_IsErrorOccur = false; @@ -374,7 +374,7 @@ bool CDatabase_SQLite::Database_SQLite_UserLeave(AUTHREG_PROTOCOL_TIME* pSt_Time return true; } /******************************************************************** -函数名称:Database_SQLite_UserSet +函数名称:DBModule_SQLite_UserSet 函数功能:设置用户信息 参数.一:pSt_UserTable In/Out:In @@ -386,7 +386,7 @@ bool CDatabase_SQLite::Database_SQLite_UserLeave(AUTHREG_PROTOCOL_TIME* pSt_Time 意思:是否成功 备注: *********************************************************************/ -bool CDatabase_SQLite::Database_SQLite_UserSet(AUTHREG_USERTABLE* pSt_UserTable) +bool CDBModule_SQLite::DBModule_SQLite_UserSet(AUTHREG_USERTABLE* pSt_UserTable) { SQLPacket_IsErrorOccur = false; @@ -404,7 +404,7 @@ bool CDatabase_SQLite::Database_SQLite_UserSet(AUTHREG_USERTABLE* pSt_UserTable) return true; } /******************************************************************** -函数名称:Database_SQLite_UserList +函数名称:DBModule_SQLite_UserList 函数功能:获取用户列表 参数.一:pppSt_UserInfo In/Out:Out @@ -431,7 +431,7 @@ bool CDatabase_SQLite::Database_SQLite_UserSet(AUTHREG_USERTABLE* pSt_UserTable) 意思:是否成功 备注: *********************************************************************/ -bool CDatabase_SQLite::Database_SQLite_UserList(AUTHREG_USERTABLE*** pppSt_UserInfo, int* pInt_ListCount, int nPosStart, int nPosEnd) +bool CDBModule_SQLite::DBModule_SQLite_UserList(AUTHREG_USERTABLE*** pppSt_UserInfo, int* pInt_ListCount, int nPosStart, int nPosEnd) { SQLPacket_IsErrorOccur = false; @@ -502,7 +502,7 @@ bool CDatabase_SQLite::Database_SQLite_UserList(AUTHREG_USERTABLE*** pppSt_UserI return true; } /******************************************************************** -函数名称:Database_SQLite_SerialInsert +函数名称:DBModule_SQLite_SerialInsert 函数功能:插入一个序列号到数据库 参数.一:lpszSerialNumber In/Out:In @@ -514,14 +514,14 @@ bool CDatabase_SQLite::Database_SQLite_UserList(AUTHREG_USERTABLE*** pppSt_UserI 意思:是否插入成功 备注: *********************************************************************/ -bool CDatabase_SQLite::Database_SQLite_SerialInsert(LPCXSTR lpszSerialNumber) +bool CDBModule_SQLite::DBModule_SQLite_SerialInsert(LPCXSTR lpszSerialNumber) { SQLPacket_IsErrorOccur = false; XCHAR tszSQLStatement[1024]; //SQL语句 memset(tszSQLStatement, '\0', 1024); - if (Database_SQLite_SerialQuery(lpszSerialNumber)) + if (DBModule_SQLite_SerialQuery(lpszSerialNumber)) { SQLPacket_IsErrorOccur = true; SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_EXIST; @@ -568,7 +568,7 @@ bool CDatabase_SQLite::Database_SQLite_SerialInsert(LPCXSTR lpszSerialNumber) return true; } /******************************************************************** -函数名称:Database_SQLite_SerialDelete +函数名称:DBModule_SQLite_SerialDelete 函数功能:从数据库删除指定序列号 参数.一:lpszSerialNumber In/Out:In @@ -580,7 +580,7 @@ bool CDatabase_SQLite::Database_SQLite_SerialInsert(LPCXSTR lpszSerialNumber) 意思:是否删除成功 备注: *********************************************************************/ -bool CDatabase_SQLite::Database_SQLite_SerialDelete(LPCXSTR lpszSerialNumber) +bool CDBModule_SQLite::DBModule_SQLite_SerialDelete(LPCXSTR lpszSerialNumber) { SQLPacket_IsErrorOccur = false; @@ -597,7 +597,7 @@ bool CDatabase_SQLite::Database_SQLite_SerialDelete(LPCXSTR lpszSerialNumber) return true; } /******************************************************************** -函数名称:Database_SQLite_SerialQuery +函数名称:DBModule_SQLite_SerialQuery 函数功能:查询一个指定的序列号信息 参数.一:lpszSerialNumber In/Out:In @@ -614,7 +614,7 @@ bool CDatabase_SQLite::Database_SQLite_SerialDelete(LPCXSTR lpszSerialNumber) 意思:是否查询成功,如果第二个参数为NULL,那么将只返回是否有这个序列号 备注: *********************************************************************/ -bool CDatabase_SQLite::Database_SQLite_SerialQuery(LPCXSTR lpszSerialNumber, LPAUTHREG_SERIALTABLE pSt_SerialTable /* = NULL */) +bool CDBModule_SQLite::DBModule_SQLite_SerialQuery(LPCXSTR lpszSerialNumber, LPAUTHREG_SERIALTABLE pSt_SerialTable /* = NULL */) { SQLPacket_IsErrorOccur = false; XCHAR tszSQLStatement[1024]; //SQL语句 @@ -665,7 +665,7 @@ bool CDatabase_SQLite::Database_SQLite_SerialQuery(LPCXSTR lpszSerialNumber, LPA return true; } /******************************************************************** -函数名称:Database_SQLite_SerialQueryAll +函数名称:DBModule_SQLite_SerialQueryAll 函数功能:查询序列卡表中的所有序列号 参数.一:pppSt_SerialTable In/Out:Out @@ -692,7 +692,7 @@ bool CDatabase_SQLite::Database_SQLite_SerialQuery(LPCXSTR lpszSerialNumber, LPA 意思:是否查询成功 备注:参数一需要调用基础库的释放内存函数进行内存释放 *********************************************************************/ -bool CDatabase_SQLite::Database_SQLite_SerialQueryAll(AUTHREG_SERIALTABLE*** pppSt_SerialTable, int* pInt_ListCount, int nPosStart, int nPosEnd) +bool CDBModule_SQLite::DBModule_SQLite_SerialQueryAll(AUTHREG_SERIALTABLE*** pppSt_SerialTable, int* pInt_ListCount, int nPosStart, int nPosEnd) { SQLPacket_IsErrorOccur = false; @@ -747,7 +747,7 @@ bool CDatabase_SQLite::Database_SQLite_SerialQueryAll(AUTHREG_SERIALTABLE*** ppp return true; } /******************************************************************** -函数名称:Database_SQLite_SerialPush +函数名称:DBModule_SQLite_SerialPush 函数功能:插入一条指定的序列号信息到服务器 参数.一:pSt_SerialTable In/Out:In @@ -759,14 +759,14 @@ bool CDatabase_SQLite::Database_SQLite_SerialQueryAll(AUTHREG_SERIALTABLE*** ppp 意思:是否成功 备注: *********************************************************************/ -bool CDatabase_SQLite::Database_SQLite_SerialPush(AUTHREG_SERIALTABLE* pSt_SerialTable) +bool CDBModule_SQLite::DBModule_SQLite_SerialPush(AUTHREG_SERIALTABLE* pSt_SerialTable) { SQLPacket_IsErrorOccur = false; XCHAR tszSQLStatement[1024]; //SQL语句 memset(tszSQLStatement, '\0', 1024); - if (Database_SQLite_SerialQuery(pSt_SerialTable->tszSerialNumber)) + if (DBModule_SQLite_SerialQuery(pSt_SerialTable->tszSerialNumber)) { SQLPacket_IsErrorOccur = true; SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_EXIST; @@ -783,7 +783,7 @@ bool CDatabase_SQLite::Database_SQLite_SerialPush(AUTHREG_SERIALTABLE* pSt_Seria return true; } /******************************************************************** -函数名称:Database_SQLite_TryInsert +函数名称:DBModule_SQLite_TryInsert 函数功能:网络使用模式插入一条数据 参数.一:pSt_AuthVer In/Out:In @@ -795,7 +795,7 @@ bool CDatabase_SQLite::Database_SQLite_SerialPush(AUTHREG_SERIALTABLE* pSt_Seria 意思:是否成功 备注: *********************************************************************/ -bool CDatabase_SQLite::Database_SQLite_TryInsert(AUTHREG_TEMPVER* pSt_AuthVer) +bool CDBModule_SQLite::DBModule_SQLite_TryInsert(AUTHREG_TEMPVER* pSt_AuthVer) { SQLPacket_IsErrorOccur = false; @@ -813,7 +813,7 @@ bool CDatabase_SQLite::Database_SQLite_TryInsert(AUTHREG_TEMPVER* pSt_AuthVer) //验证是否存在 _tcsxcpy(st_AuthVer.tszVSerial, pSt_AuthVer->tszVSerial); - if (Database_SQLite_TryQuery(&st_AuthVer)) + if (DBModule_SQLite_TryQuery(&st_AuthVer)) { SQLPacket_IsErrorOccur = true; SQLPacket_dwErrorCode = ERROR_AUTHORIZE_MODULE_DATABASE_EXIST; @@ -830,7 +830,7 @@ bool CDatabase_SQLite::Database_SQLite_TryInsert(AUTHREG_TEMPVER* pSt_AuthVer) return true; } /******************************************************************** -函数名称:Database_SQLite_TryQuery +函数名称:DBModule_SQLite_TryQuery 函数功能:试用序列号查询函数 参数.一:pSt_AuthVer In/Out:In/Out @@ -842,7 +842,7 @@ bool CDatabase_SQLite::Database_SQLite_TryInsert(AUTHREG_TEMPVER* pSt_AuthVer) 意思:是否成功 备注: *********************************************************************/ -bool CDatabase_SQLite::Database_SQLite_TryQuery(AUTHREG_TEMPVER* pSt_AuthVer) +bool CDBModule_SQLite::DBModule_SQLite_TryQuery(AUTHREG_TEMPVER* pSt_AuthVer) { SQLPacket_IsErrorOccur = false; @@ -892,7 +892,7 @@ bool CDatabase_SQLite::Database_SQLite_TryQuery(AUTHREG_TEMPVER* pSt_AuthVer) return true; } /******************************************************************** -函数名称:Database_SQLite_TryDelete +函数名称:DBModule_SQLite_TryDelete 函数功能:删除一条指定的试用数据 参数.一:lpszSerial In/Out:In @@ -904,7 +904,7 @@ bool CDatabase_SQLite::Database_SQLite_TryQuery(AUTHREG_TEMPVER* pSt_AuthVer) 意思:是否成功 备注: *********************************************************************/ -bool CDatabase_SQLite::Database_SQLite_TryDelete(LPCXSTR lpszSerial) +bool CDBModule_SQLite::DBModule_SQLite_TryDelete(LPCXSTR lpszSerial) { SQLPacket_IsErrorOccur = false; @@ -928,7 +928,7 @@ bool CDatabase_SQLite::Database_SQLite_TryDelete(LPCXSTR lpszSerial) return true; } /******************************************************************** -函数名称:Database_SQLite_TryClear +函数名称:DBModule_SQLite_TryClear 函数功能:清理函数,自动清理过期数据 参数.一:nThanValue In/Out:In @@ -945,7 +945,7 @@ bool CDatabase_SQLite::Database_SQLite_TryDelete(LPCXSTR lpszSerial) 意思:是否成功 备注: *********************************************************************/ -bool CDatabase_SQLite::Database_SQLite_TryClear(int nThanValue, ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE enVMode /* = ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_UNKNOW */) +bool CDBModule_SQLite::DBModule_SQLite_TryClear(int nThanValue, ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE enVMode /* = ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_UNKNOW */) { SQLPacket_IsErrorOccur = false; @@ -1030,7 +1030,7 @@ bool CDatabase_SQLite::Database_SQLite_TryClear(int nThanValue, ENUM_HELPCOMPONE return true; } /******************************************************************** -函数名称:Database_SQLite_TrySet +函数名称:DBModule_SQLite_TrySet 函数功能:设置用户信息函数 参数.一:pSt_AuthVer In/Out:In @@ -1042,7 +1042,7 @@ bool CDatabase_SQLite::Database_SQLite_TryClear(int nThanValue, ENUM_HELPCOMPONE 意思:是否成功 备注: *********************************************************************/ -bool CDatabase_SQLite::Database_SQLite_TrySet(AUTHREG_TEMPVER* pSt_AuthVer) +bool CDBModule_SQLite::DBModule_SQLite_TrySet(AUTHREG_TEMPVER* pSt_AuthVer) { SQLPacket_IsErrorOccur = false; @@ -1060,7 +1060,7 @@ bool CDatabase_SQLite::Database_SQLite_TrySet(AUTHREG_TEMPVER* pSt_AuthVer) return true; } /******************************************************************** -函数名称:Database_SQLite_TryList +函数名称:DBModule_SQLite_TryList 函数功能:请求试用期列表 参数.一:pppSt_AuthVer In/Out:Out @@ -1087,7 +1087,7 @@ bool CDatabase_SQLite::Database_SQLite_TrySet(AUTHREG_TEMPVER* pSt_AuthVer) 意思:是否成功 备注: *********************************************************************/ -bool CDatabase_SQLite::Database_SQLite_TryList(AUTHREG_TEMPVER*** pppSt_AuthVer, int* pInt_ListCount, int nPosStart, int nPosEnd) +bool CDBModule_SQLite::DBModule_SQLite_TryList(AUTHREG_TEMPVER*** pppSt_AuthVer, int* pInt_ListCount, int nPosStart, int nPosEnd) { SQLPacket_IsErrorOccur = false; @@ -1134,7 +1134,7 @@ bool CDatabase_SQLite::Database_SQLite_TryList(AUTHREG_TEMPVER*** pppSt_AuthVer, return true; } /******************************************************************** -函数名称:Database_SQLite_BannedInsert +函数名称:DBModule_SQLite_BannedInsert 函数功能:黑名单列表插入 参数.一:pSt_Banned In/Out:In @@ -1146,7 +1146,7 @@ bool CDatabase_SQLite::Database_SQLite_TryList(AUTHREG_TEMPVER*** pppSt_AuthVer, 意思:是否成功 备注: *********************************************************************/ -bool CDatabase_SQLite::Database_SQLite_BannedInsert(AUTHREG_BANNED* pSt_Banned) +bool CDBModule_SQLite::DBModule_SQLite_BannedInsert(AUTHREG_BANNED* pSt_Banned) { SQLPacket_IsErrorOccur = false; @@ -1157,7 +1157,7 @@ bool CDatabase_SQLite::Database_SQLite_BannedInsert(AUTHREG_BANNED* pSt_Banned) return false; } //存在直接返回 - if (Database_SQLite_BannedExist(pSt_Banned)) + if (DBModule_SQLite_BannedExist(pSt_Banned)) { return true; } @@ -1182,7 +1182,7 @@ bool CDatabase_SQLite::Database_SQLite_BannedInsert(AUTHREG_BANNED* pSt_Banned) return true; } /******************************************************************** -函数名称:Database_SQLite_BannedDelete +函数名称:DBModule_SQLite_BannedDelete 函数功能:黑名单列表删除 参数.一:pSt_Banned In/Out:In @@ -1194,7 +1194,7 @@ bool CDatabase_SQLite::Database_SQLite_BannedInsert(AUTHREG_BANNED* pSt_Banned) 意思:是否成功 备注: *********************************************************************/ -bool CDatabase_SQLite::Database_SQLite_BannedDelete(AUTHREG_BANNED* pSt_Banned) +bool CDBModule_SQLite::DBModule_SQLite_BannedDelete(AUTHREG_BANNED* pSt_Banned) { SQLPacket_IsErrorOccur = false; @@ -1225,7 +1225,7 @@ bool CDatabase_SQLite::Database_SQLite_BannedDelete(AUTHREG_BANNED* pSt_Banned) return true; } /******************************************************************** -函数名称:Database_SQLite_BannedList +函数名称:DBModule_SQLite_BannedList 函数功能:黑名单列表查询 参数.一:pppSt_BannedUser In/Out:Out @@ -1262,7 +1262,7 @@ bool CDatabase_SQLite::Database_SQLite_BannedDelete(AUTHREG_BANNED* pSt_Banned) 意思:是否成功 备注: *********************************************************************/ -bool CDatabase_SQLite::Database_SQLite_BannedList(AUTHREG_BANNED*** pppSt_BannedUser, int* pInt_UserCount, AUTHREG_BANNED*** pppSt_BannedAddr, int* pInt_AddrCount, int nPosStart, int nPosEnd) +bool CDBModule_SQLite::DBModule_SQLite_BannedList(AUTHREG_BANNED*** pppSt_BannedUser, int* pInt_UserCount, AUTHREG_BANNED*** pppSt_BannedAddr, int* pInt_AddrCount, int nPosStart, int nPosEnd) { SQLPacket_IsErrorOccur = false; @@ -1374,7 +1374,7 @@ bool CDatabase_SQLite::Database_SQLite_BannedList(AUTHREG_BANNED*** pppSt_Banned return true; } /******************************************************************** -函数名称:Database_SQLite_BannedExist +函数名称:DBModule_SQLite_BannedExist 函数功能:名单是否存在黑名单列表 参数.一:pSt_Banned In/Out:In @@ -1386,7 +1386,7 @@ bool CDatabase_SQLite::Database_SQLite_BannedList(AUTHREG_BANNED*** pppSt_Banned 意思:是否成功 备注: *********************************************************************/ -bool CDatabase_SQLite::Database_SQLite_BannedExist(AUTHREG_BANNED* pSt_Banned) +bool CDBModule_SQLite::DBModule_SQLite_BannedExist(AUTHREG_BANNED* pSt_Banned) { SQLPacket_IsErrorOccur = false; //判断用域名是否存在 @@ -1493,7 +1493,7 @@ bool CDatabase_SQLite::Database_SQLite_BannedExist(AUTHREG_BANNED* pSt_Banned) return true; } /******************************************************************** -函数名称:Database_SQLite_BannedUPDate +函数名称:DBModule_SQLite_BannedUPDate 函数功能:更新名单列表信息 参数.一:pSt_Banned In/Out:In @@ -1505,7 +1505,7 @@ bool CDatabase_SQLite::Database_SQLite_BannedExist(AUTHREG_BANNED* pSt_Banned) 意思:是否成功 备注: *********************************************************************/ -bool CDatabase_SQLite::Database_SQLite_BannedUPDate(AUTHREG_BANNED* pSt_Banned) +bool CDBModule_SQLite::DBModule_SQLite_BannedUPDate(AUTHREG_BANNED* pSt_Banned) { SQLPacket_IsErrorOccur = false; @@ -1536,7 +1536,7 @@ bool CDatabase_SQLite::Database_SQLite_BannedUPDate(AUTHREG_BANNED* pSt_Banned) return true; } /******************************************************************** -函数名称:Database_SQLite_AnnouncementInsert +函数名称:DBModule_SQLite_AnnouncementInsert 函数功能:公告插入 参数.一:pSt_Announcement In/Out:In @@ -1548,7 +1548,7 @@ bool CDatabase_SQLite::Database_SQLite_BannedUPDate(AUTHREG_BANNED* pSt_Banned) 意思:是否成功 备注: *********************************************************************/ -bool CDatabase_SQLite::Database_SQLite_AnnouncementInsert(AUTHREG_ANNOUNCEMENT* pSt_Announcement) +bool CDBModule_SQLite::DBModule_SQLite_AnnouncementInsert(AUTHREG_ANNOUNCEMENT* pSt_Announcement) { SQLPacket_IsErrorOccur = false; @@ -1572,7 +1572,7 @@ bool CDatabase_SQLite::Database_SQLite_AnnouncementInsert(AUTHREG_ANNOUNCEMENT* return true; } /******************************************************************** -函数名称:Database_SQLite_AnnouncementDelete +函数名称:DBModule_SQLite_AnnouncementDelete 函数功能:公告删除 参数.一:pSt_Announcement In/Out:In @@ -1584,7 +1584,7 @@ bool CDatabase_SQLite::Database_SQLite_AnnouncementInsert(AUTHREG_ANNOUNCEMENT* 意思:是否成功 备注: *********************************************************************/ -bool CDatabase_SQLite::Database_SQLite_AnnouncementDelete(AUTHREG_ANNOUNCEMENT* pSt_Announcement) +bool CDBModule_SQLite::DBModule_SQLite_AnnouncementDelete(AUTHREG_ANNOUNCEMENT* pSt_Announcement) { SQLPacket_IsErrorOccur = false; @@ -1608,7 +1608,7 @@ bool CDatabase_SQLite::Database_SQLite_AnnouncementDelete(AUTHREG_ANNOUNCEMENT* return true; } /******************************************************************** -函数名称:Database_SQLite_AnnouncementList +函数名称:DBModule_SQLite_AnnouncementList 函数功能:列举所有公告 参数.一:ppppSt_Announcement In/Out:Out @@ -1625,7 +1625,7 @@ bool CDatabase_SQLite::Database_SQLite_AnnouncementDelete(AUTHREG_ANNOUNCEMENT* 意思:是否成功 备注: *********************************************************************/ -bool CDatabase_SQLite::Database_SQLite_AnnouncementList(AUTHREG_ANNOUNCEMENT*** ppppSt_Announcement, int* pInt_ListCount) +bool CDBModule_SQLite::DBModule_SQLite_AnnouncementList(AUTHREG_ANNOUNCEMENT*** ppppSt_Announcement, int* pInt_ListCount) { SQLPacket_IsErrorOccur = false; @@ -1669,7 +1669,7 @@ bool CDatabase_SQLite::Database_SQLite_AnnouncementList(AUTHREG_ANNOUNCEMENT*** // 保护函数 ////////////////////////////////////////////////////////////////////////// /******************************************************************** -函数名称:Database_SQLite_UserPayTime +函数名称:DBModule_SQLite_UserPayTime 函数功能:日期方式充值方式 参数.一:lpszUserName In/Out:In @@ -1701,7 +1701,7 @@ bool CDatabase_SQLite::Database_SQLite_AnnouncementList(AUTHREG_ANNOUNCEMENT*** 意思:是否成功充值 备注: *********************************************************************/ -bool CDatabase_SQLite::Database_SQLite_UserPayTime(LPCXSTR lpszUserName, LPCXSTR lpszUserTime, LPCXSTR lpszCardTime, ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE en_AuthSerialType, ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE en_AuthUserType) +bool CDBModule_SQLite::DBModule_SQLite_UserPayTime(LPCXSTR lpszUserName, LPCXSTR lpszUserTime, LPCXSTR lpszCardTime, ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE en_AuthSerialType, ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE en_AuthUserType) { SQLPacket_IsErrorOccur = false; diff --git a/XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.h b/XEngine_Source/AuthorizeModule_Database/DBModule_SQLite/DBModule_SQLite.h similarity index 55% rename from XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.h rename to XEngine_Source/AuthorizeModule_Database/DBModule_SQLite/DBModule_SQLite.h index 5f8a66fed99a1e95b0c06b35b612dc78915ecafb..417c673f44b155516afc837184c749a37ff34605 100644 --- a/XEngine_Source/AuthorizeModule_Database/Database_SQLite/Database_SQLite.h +++ b/XEngine_Source/AuthorizeModule_Database/DBModule_SQLite/DBModule_SQLite.h @@ -14,47 +14,47 @@ // AuthReg_UserTable内容:ID 用户名 密码 注册日期 剩余时间 硬件码 注册文件密码 QQ 身份证 // AuthReg_SerialTable内容:ID 使用者 序列号 使用时间 最大可允许时间 是否使用 ////////////////////////////////////////////////////////////////////////// -class CDatabase_SQLite +class CDBModule_SQLite { public: - CDatabase_SQLite(); - ~CDatabase_SQLite(); + CDBModule_SQLite(); + ~CDBModule_SQLite(); public: - bool Database_SQLite_Init(LPCXSTR lpszSQLFile, bool bIsChange = true); //初始化 - bool Database_SQLite_Destroy(); //销毁 + bool DBModule_SQLite_Init(LPCXSTR lpszSQLFile, bool bIsChange = true); //初始化 + bool DBModule_SQLite_Destroy(); //销毁 public: - bool Database_SQLite_UserDelete(LPCXSTR lpszUserName); //删除用户 - bool Database_SQLite_UserRegister(AUTHREG_USERTABLE*pSt_UserInfo); //用户注册 - bool Database_SQLite_UserQuery(LPCXSTR lpszUserName, AUTHREG_USERTABLE* pSt_UserInfo = NULL); //用户查询 - bool Database_SQLite_UserPay(LPCXSTR lpszUserName,LPCXSTR lpszSerialName); //充值卡充值 - bool Database_SQLite_UserLeave(AUTHREG_PROTOCOL_TIME* pSt_TimeProtocol); //用户离开更新表 - bool Database_SQLite_UserSet(AUTHREG_USERTABLE* pSt_UserTable); - bool Database_SQLite_UserList(AUTHREG_USERTABLE*** pppSt_UserInfo, int* pInt_ListCount, int nPosStart, int nPosEnd); + bool DBModule_SQLite_UserDelete(LPCXSTR lpszUserName); //删除用户 + bool DBModule_SQLite_UserRegister(AUTHREG_USERTABLE*pSt_UserInfo); //用户注册 + bool DBModule_SQLite_UserQuery(LPCXSTR lpszUserName, AUTHREG_USERTABLE* pSt_UserInfo = NULL); //用户查询 + bool DBModule_SQLite_UserPay(LPCXSTR lpszUserName,LPCXSTR lpszSerialName); //充值卡充值 + bool DBModule_SQLite_UserLeave(AUTHREG_PROTOCOL_TIME* pSt_TimeProtocol); //用户离开更新表 + bool DBModule_SQLite_UserSet(AUTHREG_USERTABLE* pSt_UserTable); + bool DBModule_SQLite_UserList(AUTHREG_USERTABLE*** pppSt_UserInfo, int* pInt_ListCount, int nPosStart, int nPosEnd); public: - bool Database_SQLite_SerialInsert(LPCXSTR lpszSerialNumber); //插入序列卡 - bool Database_SQLite_SerialDelete(LPCXSTR lpszSerialNumber); //删除一个序列号 - bool Database_SQLite_SerialQuery(LPCXSTR lpszSerialNumber,LPAUTHREG_SERIALTABLE pSt_SerialTable = NULL); //按照卡号或者用户查询 - bool Database_SQLite_SerialQueryAll(AUTHREG_SERIALTABLE ***pppSt_SerialTable,int *pInt_ListCount, int nPosStart, int nPosEnd);//查询所有序列卡 - bool Database_SQLite_SerialPush(AUTHREG_SERIALTABLE* pSt_SerialTable); + bool DBModule_SQLite_SerialInsert(LPCXSTR lpszSerialNumber); //插入序列卡 + bool DBModule_SQLite_SerialDelete(LPCXSTR lpszSerialNumber); //删除一个序列号 + bool DBModule_SQLite_SerialQuery(LPCXSTR lpszSerialNumber,LPAUTHREG_SERIALTABLE pSt_SerialTable = NULL); //按照卡号或者用户查询 + bool DBModule_SQLite_SerialQueryAll(AUTHREG_SERIALTABLE ***pppSt_SerialTable,int *pInt_ListCount, int nPosStart, int nPosEnd);//查询所有序列卡 + bool DBModule_SQLite_SerialPush(AUTHREG_SERIALTABLE* pSt_SerialTable); public: - bool Database_SQLite_TryInsert(AUTHREG_TEMPVER* pSt_AuthVer); - bool Database_SQLite_TryQuery(AUTHREG_TEMPVER* pSt_AuthVer); - bool Database_SQLite_TryDelete(LPCXSTR lpszSerial); - bool Database_SQLite_TryClear(int nThanValue, ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE enVerMode = ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_UNKNOW); - bool Database_SQLite_TrySet(AUTHREG_TEMPVER* pSt_AuthVer); - bool Database_SQLite_TryList(AUTHREG_TEMPVER*** pppSt_AuthVer, int* pInt_ListCount, int nPosStart = 0, int nPosEnd = 1000); + bool DBModule_SQLite_TryInsert(AUTHREG_TEMPVER* pSt_AuthVer); + bool DBModule_SQLite_TryQuery(AUTHREG_TEMPVER* pSt_AuthVer); + bool DBModule_SQLite_TryDelete(LPCXSTR lpszSerial); + bool DBModule_SQLite_TryClear(int nThanValue, ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE enVerMode = ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_UNKNOW); + bool DBModule_SQLite_TrySet(AUTHREG_TEMPVER* pSt_AuthVer); + bool DBModule_SQLite_TryList(AUTHREG_TEMPVER*** pppSt_AuthVer, int* pInt_ListCount, int nPosStart = 0, int nPosEnd = 1000); public: - bool Database_SQLite_BannedInsert(AUTHREG_BANNED* pSt_Banned); - bool Database_SQLite_BannedDelete(AUTHREG_BANNED* pSt_Banned); - bool Database_SQLite_BannedList(AUTHREG_BANNED*** pppSt_BannedUser, int* pInt_UserCount, AUTHREG_BANNED*** pppSt_BannedAddr, int* pInt_AddrCount, int nPosStart, int nPosEnd); - bool Database_SQLite_BannedExist(AUTHREG_BANNED* pSt_Banned); - bool Database_SQLite_BannedUPDate(AUTHREG_BANNED* pSt_Banned); + bool DBModule_SQLite_BannedInsert(AUTHREG_BANNED* pSt_Banned); + bool DBModule_SQLite_BannedDelete(AUTHREG_BANNED* pSt_Banned); + bool DBModule_SQLite_BannedList(AUTHREG_BANNED*** pppSt_BannedUser, int* pInt_UserCount, AUTHREG_BANNED*** pppSt_BannedAddr, int* pInt_AddrCount, int nPosStart, int nPosEnd); + bool DBModule_SQLite_BannedExist(AUTHREG_BANNED* pSt_Banned); + bool DBModule_SQLite_BannedUPDate(AUTHREG_BANNED* pSt_Banned); public: - bool Database_SQLite_AnnouncementInsert(AUTHREG_ANNOUNCEMENT* pSt_Announcement); - bool Database_SQLite_AnnouncementDelete(AUTHREG_ANNOUNCEMENT* pSt_Announcement); - bool Database_SQLite_AnnouncementList(AUTHREG_ANNOUNCEMENT*** ppppSt_Announcement, int* pInt_ListCount); + bool DBModule_SQLite_AnnouncementInsert(AUTHREG_ANNOUNCEMENT* pSt_Announcement); + bool DBModule_SQLite_AnnouncementDelete(AUTHREG_ANNOUNCEMENT* pSt_Announcement); + bool DBModule_SQLite_AnnouncementList(AUTHREG_ANNOUNCEMENT*** ppppSt_Announcement, int* pInt_ListCount); protected: - bool Database_SQLite_UserPayTime(LPCXSTR lpszUserName, LPCXSTR lpszUserTime, LPCXSTR lpszCardTime, ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE en_AuthSerialType, ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE en_AuthUserType); + bool DBModule_SQLite_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/Database_Define.h b/XEngine_Source/AuthorizeModule_Database/Database_Define.h index dd02840759a5cb55b6e5215f7c3f1dc5b5a4a8e3..7f7774361a70ae971813693b27ddb0f34290c139 100644 --- a/XEngine_Source/AuthorizeModule_Database/Database_Define.h +++ b/XEngine_Source/AuthorizeModule_Database/Database_Define.h @@ -18,7 +18,7 @@ extern "C" XLONG DBModule_GetLastError(int *pInt_SysError = NULL); /* 数据库服务导出函数 */ /************************************************************************/ /******************************************************************** -函数名称:Database_SQLite_Init +函数名称:DBModule_SQLite_Init 函数功能:初始化数据库服务 参数.一:lpszSQLFile In/Out:In @@ -35,18 +35,18 @@ extern "C" XLONG DBModule_GetLastError(int *pInt_SysError = NULL); 意思:是否成功 备注:先初始化数据库服务,在初始化网络服务,才可以使用本验证服务器! *********************************************************************/ -extern "C" bool Database_SQLite_Init(LPCXSTR lpszSQLFile, bool bIsChange = true); +extern "C" bool DBModule_SQLite_Init(LPCXSTR lpszSQLFile, bool bIsChange = true); /******************************************************************** -函数名称:Database_SQLite_Destroy +函数名称:DBModule_SQLite_Destroy 函数功能:销毁数据库服务 返回值 类型:逻辑型 意思:是否销毁成功 备注: *********************************************************************/ -extern "C" bool Database_SQLite_Destroy(); +extern "C" bool DBModule_SQLite_Destroy(); /******************************************************************** -函数名称:Database_SQLite_UserDelete +函数名称:DBModule_SQLite_UserDelete 函数功能:删除一个用户从数据库中 参数.一:lpszUserName In/Out:In @@ -58,9 +58,9 @@ extern "C" bool Database_SQLite_Destroy(); 意思:是否删除成功 备注: *********************************************************************/ -extern "C" bool Database_SQLite_UserDelete(LPCXSTR lpszUserName); +extern "C" bool DBModule_SQLite_UserDelete(LPCXSTR lpszUserName); /******************************************************************** -函数名称:Database_SQLite_UserRegister +函数名称:DBModule_SQLite_UserRegister 函数功能:用户注册处理数据库语句函数 参数.一:pSt_UserInfo In/Out:In @@ -72,9 +72,9 @@ extern "C" bool Database_SQLite_UserDelete(LPCXSTR lpszUserName); 意思:是否插入成功 备注: *********************************************************************/ -extern "C" bool Database_SQLite_UserRegister(AUTHREG_USERTABLE * pSt_UserInfo); +extern "C" bool DBModule_SQLite_UserRegister(AUTHREG_USERTABLE * pSt_UserInfo); /******************************************************************** -函数名称:Database_SQLite_UserQuery +函数名称:DBModule_SQLite_UserQuery 函数功能:查询用户相对应的值 参数.一:lpszUserName In/Out:In @@ -91,9 +91,9 @@ extern "C" bool Database_SQLite_UserRegister(AUTHREG_USERTABLE * pSt_UserInfo); 意思:是否查询成功 备注: *********************************************************************/ -extern "C" bool Database_SQLite_UserQuery(LPCXSTR lpszUserName,AUTHREG_USERTABLE *pSt_UserInfo); +extern "C" bool DBModule_SQLite_UserQuery(LPCXSTR lpszUserName,AUTHREG_USERTABLE *pSt_UserInfo); /******************************************************************** -函数名称:Database_SQLite_UserPay +函数名称:DBModule_SQLite_UserPay 函数功能:用户充值函数 参数.一:lpszUserName In/Out:In @@ -110,9 +110,9 @@ extern "C" bool Database_SQLite_UserQuery(LPCXSTR lpszUserName,AUTHREG_USERTABLE 意思:是否成功充值 备注: *********************************************************************/ -extern "C" bool Database_SQLite_UserPay(LPCXSTR lpszUserName,LPCXSTR lpszSerialName); +extern "C" bool DBModule_SQLite_UserPay(LPCXSTR lpszUserName,LPCXSTR lpszSerialName); /******************************************************************** -函数名称:Database_SQLite_UserLeave +函数名称:DBModule_SQLite_UserLeave 函数功能:用户离开处理事件 参数.一:pSt_TimeProtocol In/Out:In @@ -124,9 +124,9 @@ extern "C" bool Database_SQLite_UserPay(LPCXSTR lpszUserName,LPCXSTR lpszSerialN 意思:是否处理成功 备注: *********************************************************************/ -extern "C" bool Database_SQLite_UserLeave(AUTHREG_PROTOCOL_TIME * pSt_TimeProtocol); +extern "C" bool DBModule_SQLite_UserLeave(AUTHREG_PROTOCOL_TIME * pSt_TimeProtocol); /******************************************************************** -函数名称:Database_SQLite_UserSet +函数名称:DBModule_SQLite_UserSet 函数功能:设置用户信息 参数.一:pSt_UserTable In/Out:In @@ -138,9 +138,9 @@ extern "C" bool Database_SQLite_UserLeave(AUTHREG_PROTOCOL_TIME * pSt_TimeProtoc 意思:是否成功 备注: *********************************************************************/ -extern "C" bool Database_SQLite_UserSet(AUTHREG_USERTABLE* pSt_UserTable); +extern "C" bool DBModule_SQLite_UserSet(AUTHREG_USERTABLE* pSt_UserTable); /******************************************************************** -函数名称:Database_SQLite_UserList +函数名称:DBModule_SQLite_UserList 函数功能:获取用户列表 参数.一:pppSt_UserInfo In/Out:Out @@ -167,9 +167,9 @@ extern "C" bool Database_SQLite_UserSet(AUTHREG_USERTABLE* pSt_UserTable); 意思:是否成功 备注: *********************************************************************/ -extern "C" bool Database_SQLite_UserList(AUTHREG_USERTABLE*** pppSt_UserInfo, int* pInt_ListCount, int nPosStart, int nPosEnd); +extern "C" bool DBModule_SQLite_UserList(AUTHREG_USERTABLE*** pppSt_UserInfo, int* pInt_ListCount, int nPosStart, int nPosEnd); /******************************************************************** -函数名称:Database_SQLite_SerialInsert +函数名称:DBModule_SQLite_SerialInsert 函数功能:插入一个序列号到数据库 参数.一:lpszSerialNumber In/Out:In @@ -181,9 +181,9 @@ extern "C" bool Database_SQLite_UserList(AUTHREG_USERTABLE*** pppSt_UserInfo, in 意思:是否插入成功 备注: *********************************************************************/ -extern "C" bool Database_SQLite_SerialInsert(LPCXSTR lpszSerialNumber); +extern "C" bool DBModule_SQLite_SerialInsert(LPCXSTR lpszSerialNumber); /******************************************************************** -函数名称:Database_SQLite_SerialDelete +函数名称:DBModule_SQLite_SerialDelete 函数功能:从数据库删除指定序列号 参数.一:lpszSerialNumber In/Out:In @@ -195,9 +195,9 @@ extern "C" bool Database_SQLite_SerialInsert(LPCXSTR lpszSerialNumber); 意思:是否删除成功 备注: *********************************************************************/ -extern "C" bool Database_SQLite_SerialDelete(LPCXSTR lpszSerialNumber); +extern "C" bool DBModule_SQLite_SerialDelete(LPCXSTR lpszSerialNumber); /******************************************************************** -函数名称:Database_SQLite_SerialQuery +函数名称:DBModule_SQLite_SerialQuery 函数功能:查询一个指定的序列号信息 参数.一:lpszSerialNumber In/Out:In @@ -214,9 +214,9 @@ extern "C" bool Database_SQLite_SerialDelete(LPCXSTR lpszSerialNumber); 意思:是否查询成功,如果第二个参数为NULL,那么将只返回是否有这个序列号 备注: *********************************************************************/ -extern "C" bool Database_SQLite_SerialQuery(LPCXSTR lpszSerialNumber,LPAUTHREG_SERIALTABLE pSt_SerialTable); +extern "C" bool DBModule_SQLite_SerialQuery(LPCXSTR lpszSerialNumber,LPAUTHREG_SERIALTABLE pSt_SerialTable); /******************************************************************** -函数名称:Database_SQLite_SerialQueryAll +函数名称:DBModule_SQLite_SerialQueryAll 函数功能:查询序列卡表中的所有序列号 参数.一:pppSt_SerialTable In/Out:Out @@ -243,9 +243,9 @@ extern "C" bool Database_SQLite_SerialQuery(LPCXSTR lpszSerialNumber,LPAUTHREG_S 意思:是否查询成功 备注:参数一需要调用基础库的释放内存函数进行内存释放 *********************************************************************/ -extern "C" bool Database_SQLite_SerialQueryAll(AUTHREG_SERIALTABLE * **pppSt_SerialTable, int* pInt_ListCount, int nPosStart, int nPosEnd); +extern "C" bool DBModule_SQLite_SerialQueryAll(AUTHREG_SERIALTABLE * **pppSt_SerialTable, int* pInt_ListCount, int nPosStart, int nPosEnd); /******************************************************************** -函数名称:Database_SQLite_SerialPush +函数名称:DBModule_SQLite_SerialPush 函数功能:插入一条指定的序列号信息到服务器 参数.一:pSt_SerialTable In/Out:In @@ -257,9 +257,9 @@ extern "C" bool Database_SQLite_SerialQueryAll(AUTHREG_SERIALTABLE * **pppSt_Ser 意思:是否成功 备注: *********************************************************************/ -extern "C" bool Database_SQLite_SerialPush(AUTHREG_SERIALTABLE* pSt_SerialTable); +extern "C" bool DBModule_SQLite_SerialPush(AUTHREG_SERIALTABLE* pSt_SerialTable); /******************************************************************** -函数名称:Database_SQLite_TryInsert +函数名称:DBModule_SQLite_TryInsert 函数功能:网络使用模式插入一条数据 参数.一:pSt_AuthVer In/Out:In @@ -271,9 +271,9 @@ extern "C" bool Database_SQLite_SerialPush(AUTHREG_SERIALTABLE* pSt_SerialTable) 意思:是否成功 备注: *********************************************************************/ -extern "C" bool Database_SQLite_TryInsert(AUTHREG_TEMPVER* pSt_AuthVer); +extern "C" bool DBModule_SQLite_TryInsert(AUTHREG_TEMPVER* pSt_AuthVer); /******************************************************************** -函数名称:Database_SQLite_TryQuery +函数名称:DBModule_SQLite_TryQuery 函数功能:试用序列号查询函数 参数.一:pSt_AuthVer In/Out:In/Out @@ -285,9 +285,9 @@ extern "C" bool Database_SQLite_TryInsert(AUTHREG_TEMPVER* pSt_AuthVer); 意思:是否成功 备注: *********************************************************************/ -extern "C" bool Database_SQLite_TryQuery(AUTHREG_TEMPVER* pSt_AuthVer); +extern "C" bool DBModule_SQLite_TryQuery(AUTHREG_TEMPVER* pSt_AuthVer); /******************************************************************** -函数名称:Database_SQLite_TryDelete +函数名称:DBModule_SQLite_TryDelete 函数功能:删除一条指定的试用数据 参数.一:lpszSerial In/Out:In @@ -299,9 +299,9 @@ extern "C" bool Database_SQLite_TryQuery(AUTHREG_TEMPVER* pSt_AuthVer); 意思:是否成功 备注: *********************************************************************/ -extern "C" bool Database_SQLite_TryDelete(LPCXSTR lpszSerial); +extern "C" bool DBModule_SQLite_TryDelete(LPCXSTR lpszSerial); /******************************************************************** -函数名称:Database_SQLite_TryClear +函数名称:DBModule_SQLite_TryClear 函数功能:清理函数,自动清理过期数据 参数.一:nThanValue In/Out:In @@ -318,9 +318,9 @@ extern "C" bool Database_SQLite_TryDelete(LPCXSTR lpszSerial); 意思:是否成功 备注: *********************************************************************/ -extern "C" bool Database_SQLite_TryClear(int nThanValue, ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE enVerMode = ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_UNKNOW); +extern "C" bool DBModule_SQLite_TryClear(int nThanValue, ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE enVerMode = ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_UNKNOW); /******************************************************************** -函数名称:Database_SQLite_TrySet +函数名称:DBModule_SQLite_TrySet 函数功能:设置用户信息函数 参数.一:pSt_AuthVer In/Out:In @@ -332,9 +332,9 @@ extern "C" bool Database_SQLite_TryClear(int nThanValue, ENUM_HELPCOMPONENTS_AUT 意思:是否成功 备注: *********************************************************************/ -extern "C" bool Database_SQLite_TrySet(AUTHREG_TEMPVER* pSt_AuthVer); +extern "C" bool DBModule_SQLite_TrySet(AUTHREG_TEMPVER* pSt_AuthVer); /******************************************************************** -函数名称:Database_SQLite_TryList +函数名称:DBModule_SQLite_TryList 函数功能:请求试用期列表 参数.一:pppSt_AuthVer In/Out:Out @@ -361,9 +361,9 @@ extern "C" bool Database_SQLite_TrySet(AUTHREG_TEMPVER* pSt_AuthVer); 意思:是否成功 备注: *********************************************************************/ -extern "C" bool Database_SQLite_TryList(AUTHREG_TEMPVER*** pppSt_AuthVer, int* pInt_ListCount, int nPosStart = 0, int nPosEnd = 1000); +extern "C" bool DBModule_SQLite_TryList(AUTHREG_TEMPVER*** pppSt_AuthVer, int* pInt_ListCount, int nPosStart = 0, int nPosEnd = 1000); /******************************************************************** -函数名称:Database_SQLite_BannedInsert +函数名称:DBModule_SQLite_BannedInsert 函数功能:黑名单列表插入 参数.一:pSt_Banned In/Out:In @@ -375,9 +375,9 @@ extern "C" bool Database_SQLite_TryList(AUTHREG_TEMPVER*** pppSt_AuthVer, int* p 意思:是否成功 备注: *********************************************************************/ -extern "C" bool Database_SQLite_BannedInsert(AUTHREG_BANNED* pSt_Banned); +extern "C" bool DBModule_SQLite_BannedInsert(AUTHREG_BANNED* pSt_Banned); /******************************************************************** -函数名称:Database_SQLite_BannedDelete +函数名称:DBModule_SQLite_BannedDelete 函数功能:黑名单列表删除 参数.一:pSt_Banned In/Out:In @@ -389,9 +389,9 @@ extern "C" bool Database_SQLite_BannedInsert(AUTHREG_BANNED* pSt_Banned); 意思:是否成功 备注: *********************************************************************/ -extern "C" bool Database_SQLite_BannedDelete(AUTHREG_BANNED* pSt_Banned); +extern "C" bool DBModule_SQLite_BannedDelete(AUTHREG_BANNED* pSt_Banned); /******************************************************************** -函数名称:Database_SQLite_BannedList +函数名称:DBModule_SQLite_BannedList 函数功能:黑名单列表查询 参数.一:pppSt_BannedUser In/Out:Out @@ -428,9 +428,9 @@ extern "C" bool Database_SQLite_BannedDelete(AUTHREG_BANNED* pSt_Banned); 意思:是否成功 备注: *********************************************************************/ -extern "C" bool Database_SQLite_BannedList(AUTHREG_BANNED*** pppSt_BannedUser, int* pInt_UserCount, AUTHREG_BANNED*** pppSt_BannedAddr, int* pInt_AddrCount, int nPosStart, int nPosEnd); +extern "C" bool DBModule_SQLite_BannedList(AUTHREG_BANNED*** pppSt_BannedUser, int* pInt_UserCount, AUTHREG_BANNED*** pppSt_BannedAddr, int* pInt_AddrCount, int nPosStart, int nPosEnd); /******************************************************************** -函数名称:Database_SQLite_BannedExist +函数名称:DBModule_SQLite_BannedExist 函数功能:名单是否存在黑名单列表 参数.一:pSt_Banned In/Out:In @@ -442,9 +442,9 @@ extern "C" bool Database_SQLite_BannedList(AUTHREG_BANNED*** pppSt_BannedUser, i 意思:是否成功 备注: *********************************************************************/ -extern "C" bool Database_SQLite_BannedExist(AUTHREG_BANNED* pSt_Banned); +extern "C" bool DBModule_SQLite_BannedExist(AUTHREG_BANNED* pSt_Banned); /******************************************************************** -函数名称:Database_SQLite_BannedUPDate +函数名称:DBModule_SQLite_BannedUPDate 函数功能:更新名单列表信息 参数.一:pSt_Banned In/Out:In @@ -456,9 +456,9 @@ extern "C" bool Database_SQLite_BannedExist(AUTHREG_BANNED* pSt_Banned); 意思:是否成功 备注: *********************************************************************/ -extern "C" bool Database_SQLite_BannedUPDate(AUTHREG_BANNED* pSt_Banned); +extern "C" bool DBModule_SQLite_BannedUPDate(AUTHREG_BANNED* pSt_Banned); /******************************************************************** -函数名称:Database_SQLite_AnnouncementInsert +函数名称:DBModule_SQLite_AnnouncementInsert 函数功能:公告插入 参数.一:pSt_Announcement In/Out:In @@ -470,9 +470,9 @@ extern "C" bool Database_SQLite_BannedUPDate(AUTHREG_BANNED* pSt_Banned); 意思:是否成功 备注: *********************************************************************/ -extern "C" bool Database_SQLite_AnnouncementInsert(AUTHREG_ANNOUNCEMENT* pSt_Announcement); +extern "C" bool DBModule_SQLite_AnnouncementInsert(AUTHREG_ANNOUNCEMENT* pSt_Announcement); /******************************************************************** -函数名称:Database_SQLite_AnnouncementDelete +函数名称:DBModule_SQLite_AnnouncementDelete 函数功能:公告删除 参数.一:pSt_Announcement In/Out:In @@ -484,9 +484,9 @@ extern "C" bool Database_SQLite_AnnouncementInsert(AUTHREG_ANNOUNCEMENT* pSt_Ann 意思:是否成功 备注: *********************************************************************/ -extern "C" bool Database_SQLite_AnnouncementDelete(AUTHREG_ANNOUNCEMENT* pSt_Announcement); +extern "C" bool DBModule_SQLite_AnnouncementDelete(AUTHREG_ANNOUNCEMENT* pSt_Announcement); /******************************************************************** -函数名称:Database_SQLite_AnnouncementList +函数名称:DBModule_SQLite_AnnouncementList 函数功能:列举所有公告 参数.一:ppppSt_Announcement In/Out:Out @@ -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 DBModule_SQLite_AnnouncementList(AUTHREG_ANNOUNCEMENT*** ppppSt_Announcement, int* pInt_ListCount); + +/************************************************************************/ +/* MYSQL数据库服务导出函数 */ +/************************************************************************/ +/******************************************************************** +函数名称:DBModule_MySQL_Init +函数功能:初始化数据库管理器 + 参数.一:pSt_DBConnector + In/Out:In + 类型:数据结构指针 + 参数.二:bIsChange + In/Out:In + 类型:逻辑型 + 可空:Y + 意思:是否允许更改用户充值类型 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注:先初始化数据库服务,在初始化网络服务,才可以使用本验证服务器! +*********************************************************************/ +extern "C" bool DBModule_MySQL_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector, bool bIsChange = true); +/******************************************************************** +函数名称:DBModule_MySQL_Destroy +函数功能:销毁数据库服务 +返回值 + 类型:逻辑型 + 意思:是否销毁成功 +备注: +*********************************************************************/ +extern "C" bool DBModule_MySQL_Destroy(); +/******************************************************************** +函数名称:DBModule_MySQL_UserDelete +函数功能:删除一个用户从数据库中 + 参数.一:lpszUserName + In/Out:In + 类型:常量字符指针 + 可空:N + 意思:要删除的用户 +返回值 + 类型:逻辑型 + 意思:是否删除成功 +备注: +*********************************************************************/ +extern "C" bool DBModule_MySQL_UserDelete(LPCXSTR lpszUserName); +/******************************************************************** +函数名称:DBModule_MySQL_UserRegister +函数功能:用户注册处理数据库语句函数 + 参数.一:pSt_UserInfo + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:要插入的用户数据 +返回值 + 类型:逻辑型 + 意思:是否插入成功 +备注: +*********************************************************************/ +extern "C" bool DBModule_MySQL_UserRegister(AUTHREG_USERTABLE* pSt_UserInfo); +/******************************************************************** +函数名称:DBModule_MySQL_UserQuery +函数功能:查询用户相对应的值 + 参数.一:lpszUserName + In/Out:In + 类型:常量字符指针 + 可空:N + 意思:要查询的指定用户 + 参数.二:pSt_UserInfo + In/Out:Out + 类型:数据结构指针 + 可空:Y + 意思:如果为空NULL,那么将只判断此用户是否存在 +返回值 + 类型:逻辑型 + 意思:是否查询成功 +备注: +*********************************************************************/ +extern "C" bool DBModule_MySQL_UserQuery(LPCXSTR lpszUserName, AUTHREG_USERTABLE* pSt_UserInfo); +/******************************************************************** +函数名称:DBModule_MySQL_UserPay +函数功能:用户充值函数 + 参数.一:lpszUserName + In/Out:In + 类型:常量字符指针 + 可空:N + 意思:要充值的用户名 + 参数.二:lpszSerialName + In/Out:In + 类型:常量字符指针 + 可空:N + 意思:充值使用的序列号 +返回值 + 类型:逻辑型 + 意思:是否成功充值 +备注: +*********************************************************************/ +extern "C" bool DBModule_MySQL_UserPay(LPCXSTR lpszUserName, LPCXSTR lpszSerialName); +/******************************************************************** +函数名称:DBModule_MySQL_UserLeave +函数功能:用户离开处理事件 + 参数.一:pSt_TimeProtocol + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:离开的用户信息 +返回值 + 类型:逻辑型 + 意思:是否处理成功 +备注: +*********************************************************************/ +extern "C" bool DBModule_MySQL_UserLeave(AUTHREG_PROTOCOL_TIME* pSt_TimeProtocol); +/******************************************************************** +函数名称:DBModule_MySQL_UserSet +函数功能:设置用户信息 + 参数.一:pSt_UserTable + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:输入要设置的信息 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +extern "C" bool DBModule_MySQL_UserSet(AUTHREG_USERTABLE* pSt_UserTable); +/******************************************************************** +函数名称:DBModule_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 DBModule_MySQL_UserList(AUTHREG_USERTABLE*** pppSt_UserInfo, int* pInt_ListCount, int nPosStart, int nPosEnd); +/******************************************************************** +函数名称:DBModule_MySQL_SerialInsert +函数功能:插入一个序列号到数据库 + 参数.一:lpszSerialNumber + In/Out:In + 类型:常量字符指针 + 可空:N + 意思:要插入的序列号 +返回值 + 类型:逻辑型 + 意思:是否插入成功 +备注: +*********************************************************************/ +extern "C" bool DBModule_MySQL_SerialInsert(LPCXSTR lpszSerialNumber); +/******************************************************************** +函数名称:DBModule_MySQL_SerialDelete +函数功能:从数据库删除指定序列号 + 参数.一:lpszSerialNumber + In/Out:In + 类型:常量字符指针 + 可空:N + 意思:要删除的序列号 +返回值 + 类型:逻辑型 + 意思:是否删除成功 +备注: +*********************************************************************/ +extern "C" bool DBModule_MySQL_SerialDelete(LPCXSTR lpszSerialNumber); +/******************************************************************** +函数名称:DBModule_MySQL_SerialQuery +函数功能:查询一个指定的序列号信息 + 参数.一:lpszSerialNumber + In/Out:In + 类型:常量字符指针 + 可空:N + 意思:要查询的序列号 + 参数.二:pSt_SerialTable + In/Out:Out + 类型:数据结构指针 + 可空:Y + 意思:导出查询到的信息,如果为NULL,此参数将不起作用 +返回值 + 类型:逻辑型 + 意思:是否查询成功,如果第二个参数为NULL,那么将只返回是否有这个序列号 +备注: +*********************************************************************/ +extern "C" bool DBModule_MySQL_SerialQuery(LPCXSTR lpszSerialNumber, LPAUTHREG_SERIALTABLE pSt_SerialTable); +/******************************************************************** +函数名称:DBModule_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 DBModule_MySQL_SerialQueryAll(AUTHREG_SERIALTABLE*** pppSt_SerialTable, int* pInt_ListCount, int nPosStart, int nPosEnd); +/******************************************************************** +函数名称:DBModule_MySQL_SerialPush +函数功能:插入一条指定的序列号信息到服务器 + 参数.一:pSt_SerialTable + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:输入要插入的信息 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +extern "C" bool DBModule_MySQL_SerialPush(AUTHREG_SERIALTABLE* pSt_SerialTable); +/******************************************************************** +函数名称:DBModule_MySQL_TryInsert +函数功能:网络使用模式插入一条数据 + 参数.一:pSt_AuthVer + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:输入要插入的数据 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +extern "C" bool DBModule_MySQL_TryInsert(AUTHREG_TEMPVER* pSt_AuthVer); +/******************************************************************** +函数名称:DBModule_MySQL_TryQuery +函数功能:试用序列号查询函数 + 参数.一:pSt_AuthVer + In/Out:In/Out + 类型:数据结构指针 + 可空:N + 意思:输入序列号,输出获取到的内容 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +extern "C" bool DBModule_MySQL_TryQuery(AUTHREG_TEMPVER* pSt_AuthVer); +/******************************************************************** +函数名称:DBModule_MySQL_TryDelete +函数功能:删除一条指定的试用数据 + 参数.一:lpszSerial + In/Out:In + 类型:常量字符指针 + 可空:N + 意思:输入要删除的序列号 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +extern "C" bool DBModule_MySQL_TryDelete(LPCXSTR lpszSerial); +/******************************************************************** +函数名称:DBModule_MySQL_TryClear +函数功能:清理函数,自动清理过期数据 + 参数.一:nThanValue + In/Out:In + 类型:整数型 + 可空:N + 意思:清理用于判断需要大于此的值 + 参数.二:enVerMode + In/Out:In + 类型:枚举型 + 可空:Y + 意思:判断注册类型,默认不判断全部执行 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +extern "C" bool DBModule_MySQL_TryClear(int nThanValue, ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE enVerMode = ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_UNKNOW); +/******************************************************************** +函数名称:DBModule_MySQL_TrySet +函数功能:设置用户信息函数 + 参数.一:pSt_AuthVer + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:输入要更新的用户信息 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +extern "C" bool DBModule_MySQL_TrySet(AUTHREG_TEMPVER* pSt_AuthVer); +/******************************************************************** +函数名称:DBModule_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 DBModule_MySQL_TryList(AUTHREG_TEMPVER*** pppSt_AuthVer, int* pInt_ListCount, int nPosStart = 0, int nPosEnd = 1000); +/******************************************************************** +函数名称:DBModule_MySQL_BannedInsert +函数功能:黑名单列表插入 + 参数.一:pSt_Banned + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:要操作的数据 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +extern "C" bool DBModule_MySQL_BannedInsert(AUTHREG_BANNED* pSt_Banned); +/******************************************************************** +函数名称:DBModule_MySQL_BannedDelete +函数功能:黑名单列表删除 + 参数.一:pSt_Banned + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:要操作的数据 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +extern "C" bool DBModule_MySQL_BannedDelete(AUTHREG_BANNED* pSt_Banned); +/******************************************************************** +函数名称:DBModule_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 DBModule_MySQL_BannedList(AUTHREG_BANNED*** pppSt_BannedUser, int* pInt_UserCount, AUTHREG_BANNED*** pppSt_BannedAddr, int* pInt_AddrCount, int nPosStart, int nPosEnd); +/******************************************************************** +函数名称:DBModule_MySQL_BannedExist +函数功能:名单是否存在黑名单列表 + 参数.一:pSt_Banned + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:要操作的数据 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +extern "C" bool DBModule_MySQL_BannedExist(AUTHREG_BANNED* pSt_Banned); +/******************************************************************** +函数名称:DBModule_MySQL_BannedUPDate +函数功能:更新名单列表信息 + 参数.一:pSt_Banned + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:要操作的数据 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +extern "C" bool DBModule_MySQL_BannedUPDate(AUTHREG_BANNED* pSt_Banned); +/******************************************************************** +函数名称:DBModule_MySQL_AnnouncementInsert +函数功能:公告插入 + 参数.一:pSt_Announcement + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:输入要插入的信息 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +extern "C" bool DBModule_MySQL_AnnouncementInsert(AUTHREG_ANNOUNCEMENT* pSt_Announcement); +/******************************************************************** +函数名称:DBModule_MySQL_AnnouncementDelete +函数功能:公告删除 + 参数.一:pSt_Announcement + In/Out:In + 类型:数据结构指针 + 可空:N + 意思:输入要删除的信息 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +extern "C" bool DBModule_MySQL_AnnouncementDelete(AUTHREG_ANNOUNCEMENT* pSt_Announcement); +/******************************************************************** +函数名称:DBModule_MySQL_AnnouncementList +函数功能:列举所有公告 + 参数.一:ppppSt_Announcement + In/Out:Out + 类型:三级指针 + 可空:N + 意思:输出列举数据 + 参数.二:pInt_ListCount + In/Out:Out + 类型:整数型指针 + 可空:N + 意思:导出数据个数 +返回值 + 类型:逻辑型 + 意思:是否成功 +备注: +*********************************************************************/ +extern "C" bool DBModule_MySQL_AnnouncementList(AUTHREG_ANNOUNCEMENT*** ppppSt_Announcement, int* pInt_ListCount); diff --git a/XEngine_Source/AuthorizeModule_Database/Makefile b/XEngine_Source/AuthorizeModule_Database/Makefile index 2e02eb4a7aaacd54e3be42d41ba3f1c989c2018b..69def228641ef9b937c5c51248b972b9e6f6a6fd 100644 --- a/XEngine_Source/AuthorizeModule_Database/Makefile +++ b/XEngine_Source/AuthorizeModule_Database/Makefile @@ -10,7 +10,7 @@ LOADHDR = -I ./ LOADSO = LIB = -lXEngine_BaseLib -lHelpComponents_DataBase -lHelpComponents_Authorize LIBEX = -OBJECTS = Database_SQLite.o pch.o +OBJECTS = DBModule_SQLite.o DBModule_MySQL.o pch.o ifeq ($(RELEASE),1) FLAGS = -c @@ -51,8 +51,10 @@ endif all:$(OBJECTS) $(CC) $(DEBUG) $(OBJECTS) -o libAuthorizeModule_Database.$(FILEEXT) $(LIBFLAG) $(LIB) $(LIBEX) $(LOADSO) $(LOADBIN) -Database_SQLite.o:./Database_SQLite/Database_SQLite.cpp - $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./Database_SQLite/Database_SQLite.cpp +DBModule_SQLite.o:./DBModule_SQLite/DBModule_SQLite.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./DBModule_SQLite/DBModule_SQLite.cpp +DBModule_MySQL.o:./DBModule_MySQL/DBModule_MySQL.cpp + $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) ./DBModule_MySQL/DBModule_MySQL.cpp pch.o:pch.cpp $(CC) $(DEBUG) $(FLAGS) $(UNICODE) $(PLATVER) $(LOADHDR) pch.cpp diff --git a/XEngine_Source/AuthorizeModule_Database/pch.cpp b/XEngine_Source/AuthorizeModule_Database/pch.cpp index 7b844cff974e7a3755d6d809091884750346ff27..390f698af111b86cd399315defc79e0e0ca291f0 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 "DBModule_SQLite/DBModule_SQLite.h" +#include "DBModule_MySQL/DBModule_MySQL.h" /******************************************************************** // Created: 2022/05/26 11:02:23 // File Name: D:\XEngine_Authorize\XEngine_Source\AuthorizeModule_Database\pch.cpp @@ -14,7 +15,8 @@ bool SQLPacket_IsErrorOccur = false; XLONG SQLPacket_dwErrorCode = 0; ////////////////////////////////////////////////////////////////////////// -CDatabase_SQLite m_SQLAuth; +CDBModule_SQLite m_DBSQLite; +CDBModule_MySQL m_DBMySQL; ////////////////////////////////////////////////////////////////////////// // 导出的函数 ////////////////////////////////////////////////////////////////////////// @@ -29,115 +31,231 @@ extern "C" XLONG DBModule_GetLastError(int* pInt_SysError) /************************************************************************/ /* 数据库服务导出函数 */ /************************************************************************/ -extern "C" bool Database_SQLite_Init(LPCXSTR lpszSQLFile, bool bIsChange) +extern "C" bool DBModule_SQLite_Init(LPCXSTR lpszSQLFile, bool bIsChange) { - return m_SQLAuth.Database_SQLite_Init(lpszSQLFile, bIsChange); + return m_DBSQLite.DBModule_SQLite_Init(lpszSQLFile, bIsChange); } -extern "C" bool Database_SQLite_Destroy() +extern "C" bool DBModule_SQLite_Destroy() { - return m_SQLAuth.Database_SQLite_Destroy(); + return m_DBSQLite.DBModule_SQLite_Destroy(); } -extern "C" bool Database_SQLite_UserDelete(LPCXSTR lpszUserName) +extern "C" bool DBModule_SQLite_UserDelete(LPCXSTR lpszUserName) { - return m_SQLAuth.Database_SQLite_UserDelete(lpszUserName); + return m_DBSQLite.DBModule_SQLite_UserDelete(lpszUserName); } -extern "C" bool Database_SQLite_UserRegister(AUTHREG_USERTABLE * pSt_UserInfo) +extern "C" bool DBModule_SQLite_UserRegister(AUTHREG_USERTABLE * pSt_UserInfo) { - return m_SQLAuth.Database_SQLite_UserRegister(pSt_UserInfo); + return m_DBSQLite.DBModule_SQLite_UserRegister(pSt_UserInfo); } -extern "C" bool Database_SQLite_UserQuery(LPCXSTR lpszUserName, AUTHREG_USERTABLE * pSt_UserInfo) +extern "C" bool DBModule_SQLite_UserQuery(LPCXSTR lpszUserName, AUTHREG_USERTABLE * pSt_UserInfo) { - return m_SQLAuth.Database_SQLite_UserQuery(lpszUserName, pSt_UserInfo); + return m_DBSQLite.DBModule_SQLite_UserQuery(lpszUserName, pSt_UserInfo); } -extern "C" bool Database_SQLite_UserPay(LPCXSTR lpszUserName, LPCXSTR lpszSerialName) +extern "C" bool DBModule_SQLite_UserPay(LPCXSTR lpszUserName, LPCXSTR lpszSerialName) { - return m_SQLAuth.Database_SQLite_UserPay(lpszUserName, lpszSerialName); + return m_DBSQLite.DBModule_SQLite_UserPay(lpszUserName, lpszSerialName); } -extern "C" bool Database_SQLite_UserLeave(AUTHREG_PROTOCOL_TIME * pSt_TimeProtocol) +extern "C" bool DBModule_SQLite_UserLeave(AUTHREG_PROTOCOL_TIME * pSt_TimeProtocol) { - return m_SQLAuth.Database_SQLite_UserLeave(pSt_TimeProtocol); + return m_DBSQLite.DBModule_SQLite_UserLeave(pSt_TimeProtocol); } -extern "C" bool Database_SQLite_UserSet(AUTHREG_USERTABLE * pSt_UserTable) +extern "C" bool DBModule_SQLite_UserSet(AUTHREG_USERTABLE * pSt_UserTable) { - return m_SQLAuth.Database_SQLite_UserSet(pSt_UserTable); + return m_DBSQLite.DBModule_SQLite_UserSet(pSt_UserTable); } -extern "C" bool Database_SQLite_UserList(AUTHREG_USERTABLE * **pppSt_UserInfo, int* pInt_ListCount, int nPosStart, int nPosEnd) +extern "C" bool DBModule_SQLite_UserList(AUTHREG_USERTABLE * **pppSt_UserInfo, int* pInt_ListCount, int nPosStart, int nPosEnd) { - return m_SQLAuth.Database_SQLite_UserList(pppSt_UserInfo, pInt_ListCount, nPosStart, nPosEnd); + return m_DBSQLite.DBModule_SQLite_UserList(pppSt_UserInfo, pInt_ListCount, nPosStart, nPosEnd); } -extern "C" bool Database_SQLite_SerialInsert(LPCXSTR lpszSerialNumber) +extern "C" bool DBModule_SQLite_SerialInsert(LPCXSTR lpszSerialNumber) { - return m_SQLAuth.Database_SQLite_SerialInsert(lpszSerialNumber); + return m_DBSQLite.DBModule_SQLite_SerialInsert(lpszSerialNumber); } -extern "C" bool Database_SQLite_SerialDelete(LPCXSTR lpszSerialNumber) +extern "C" bool DBModule_SQLite_SerialDelete(LPCXSTR lpszSerialNumber) { - return m_SQLAuth.Database_SQLite_SerialDelete(lpszSerialNumber); + return m_DBSQLite.DBModule_SQLite_SerialDelete(lpszSerialNumber); } -extern "C" bool Database_SQLite_SerialQuery(LPCXSTR lpszSerialNumber, LPAUTHREG_SERIALTABLE pSt_SerialTable) +extern "C" bool DBModule_SQLite_SerialQuery(LPCXSTR lpszSerialNumber, LPAUTHREG_SERIALTABLE pSt_SerialTable) { - return m_SQLAuth.Database_SQLite_SerialQuery(lpszSerialNumber, pSt_SerialTable); + return m_DBSQLite.DBModule_SQLite_SerialQuery(lpszSerialNumber, pSt_SerialTable); } -extern "C" bool Database_SQLite_SerialQueryAll(AUTHREG_SERIALTABLE * **pppSt_SerialTable, int* pInt_ListCount, int nPosStart, int nPosEnd) +extern "C" bool DBModule_SQLite_SerialQueryAll(AUTHREG_SERIALTABLE * **pppSt_SerialTable, int* pInt_ListCount, int nPosStart, int nPosEnd) { - return m_SQLAuth.Database_SQLite_SerialQueryAll(pppSt_SerialTable, pInt_ListCount, nPosStart, nPosEnd); + return m_DBSQLite.DBModule_SQLite_SerialQueryAll(pppSt_SerialTable, pInt_ListCount, nPosStart, nPosEnd); } -extern "C" bool Database_SQLite_SerialPush(AUTHREG_SERIALTABLE * pSt_SerialTable) +extern "C" bool DBModule_SQLite_SerialPush(AUTHREG_SERIALTABLE * pSt_SerialTable) { - return m_SQLAuth.Database_SQLite_SerialPush(pSt_SerialTable); + return m_DBSQLite.DBModule_SQLite_SerialPush(pSt_SerialTable); } -extern "C" bool Database_SQLite_TryInsert(AUTHREG_TEMPVER * pSt_AuthVer) +extern "C" bool DBModule_SQLite_TryInsert(AUTHREG_TEMPVER * pSt_AuthVer) { - return m_SQLAuth.Database_SQLite_TryInsert(pSt_AuthVer); + return m_DBSQLite.DBModule_SQLite_TryInsert(pSt_AuthVer); } -extern "C" bool Database_SQLite_TryQuery(AUTHREG_TEMPVER * pSt_AuthVer) +extern "C" bool DBModule_SQLite_TryQuery(AUTHREG_TEMPVER * pSt_AuthVer) { - return m_SQLAuth.Database_SQLite_TryQuery(pSt_AuthVer); + return m_DBSQLite.DBModule_SQLite_TryQuery(pSt_AuthVer); } -extern "C" bool Database_SQLite_TryDelete(LPCXSTR lpszSerial) +extern "C" bool DBModule_SQLite_TryDelete(LPCXSTR lpszSerial) { - return m_SQLAuth.Database_SQLite_TryDelete(lpszSerial); + return m_DBSQLite.DBModule_SQLite_TryDelete(lpszSerial); } -extern "C" bool Database_SQLite_TryClear(int nThanValue, ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE enVerMode) +extern "C" bool DBModule_SQLite_TryClear(int nThanValue, ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE enVerMode) { - return m_SQLAuth.Database_SQLite_TryClear(nThanValue, enVerMode); + return m_DBSQLite.DBModule_SQLite_TryClear(nThanValue, enVerMode); } -extern "C" bool Database_SQLite_TrySet(AUTHREG_TEMPVER * pSt_AuthVer) +extern "C" bool DBModule_SQLite_TrySet(AUTHREG_TEMPVER * pSt_AuthVer) { - return m_SQLAuth.Database_SQLite_TrySet(pSt_AuthVer); + return m_DBSQLite.DBModule_SQLite_TrySet(pSt_AuthVer); } -extern "C" bool Database_SQLite_TryList(AUTHREG_TEMPVER * **pppSt_AuthVer, int* pInt_ListCount, int nPosStart, int nPosEnd) +extern "C" bool DBModule_SQLite_TryList(AUTHREG_TEMPVER * **pppSt_AuthVer, int* pInt_ListCount, int nPosStart, int nPosEnd) { - return m_SQLAuth.Database_SQLite_TryList(pppSt_AuthVer, pInt_ListCount, nPosStart, nPosEnd); + return m_DBSQLite.DBModule_SQLite_TryList(pppSt_AuthVer, pInt_ListCount, nPosStart, nPosEnd); } -extern "C" bool Database_SQLite_BannedInsert(AUTHREG_BANNED * pSt_Banned) +extern "C" bool DBModule_SQLite_BannedInsert(AUTHREG_BANNED * pSt_Banned) { - return m_SQLAuth.Database_SQLite_BannedInsert(pSt_Banned); + return m_DBSQLite.DBModule_SQLite_BannedInsert(pSt_Banned); } -extern "C" bool Database_SQLite_BannedDelete(AUTHREG_BANNED * pSt_Banned) +extern "C" bool DBModule_SQLite_BannedDelete(AUTHREG_BANNED * pSt_Banned) { - return m_SQLAuth.Database_SQLite_BannedDelete(pSt_Banned); + return m_DBSQLite.DBModule_SQLite_BannedDelete(pSt_Banned); } -extern "C" bool Database_SQLite_BannedList(AUTHREG_BANNED * **pppSt_BannedUser, int* pInt_UserCount, AUTHREG_BANNED * **pppSt_BannedAddr, int* pInt_AddrCount, int nPosStart, int nPosEnd) +extern "C" bool DBModule_SQLite_BannedList(AUTHREG_BANNED * **pppSt_BannedUser, int* pInt_UserCount, AUTHREG_BANNED * **pppSt_BannedAddr, int* pInt_AddrCount, int nPosStart, int nPosEnd) { - return m_SQLAuth.Database_SQLite_BannedList(pppSt_BannedUser, pInt_UserCount, pppSt_BannedAddr, pInt_AddrCount, nPosStart, nPosEnd); + return m_DBSQLite.DBModule_SQLite_BannedList(pppSt_BannedUser, pInt_UserCount, pppSt_BannedAddr, pInt_AddrCount, nPosStart, nPosEnd); } -extern "C" bool Database_SQLite_BannedExist(AUTHREG_BANNED * pSt_Banned) +extern "C" bool DBModule_SQLite_BannedExist(AUTHREG_BANNED * pSt_Banned) { - return m_SQLAuth.Database_SQLite_BannedExist(pSt_Banned); + return m_DBSQLite.DBModule_SQLite_BannedExist(pSt_Banned); } -extern "C" bool Database_SQLite_BannedUPDate(AUTHREG_BANNED * pSt_Banned) +extern "C" bool DBModule_SQLite_BannedUPDate(AUTHREG_BANNED * pSt_Banned) { - return m_SQLAuth.Database_SQLite_BannedUPDate(pSt_Banned); + return m_DBSQLite.DBModule_SQLite_BannedUPDate(pSt_Banned); } -extern "C" bool Database_SQLite_AnnouncementInsert(AUTHREG_ANNOUNCEMENT * pSt_Announcement) +extern "C" bool DBModule_SQLite_AnnouncementInsert(AUTHREG_ANNOUNCEMENT * pSt_Announcement) { - return m_SQLAuth.Database_SQLite_AnnouncementInsert(pSt_Announcement); + return m_DBSQLite.DBModule_SQLite_AnnouncementInsert(pSt_Announcement); } -extern "C" bool Database_SQLite_AnnouncementDelete(AUTHREG_ANNOUNCEMENT * pSt_Announcement) +extern "C" bool DBModule_SQLite_AnnouncementDelete(AUTHREG_ANNOUNCEMENT * pSt_Announcement) { - return m_SQLAuth.Database_SQLite_AnnouncementDelete(pSt_Announcement); + return m_DBSQLite.DBModule_SQLite_AnnouncementDelete(pSt_Announcement); } -extern "C" bool Database_SQLite_AnnouncementList(AUTHREG_ANNOUNCEMENT * **ppppSt_Announcement, int* pInt_ListCount) +extern "C" bool DBModule_SQLite_AnnouncementList(AUTHREG_ANNOUNCEMENT * **ppppSt_Announcement, int* pInt_ListCount) { - return m_SQLAuth.Database_SQLite_AnnouncementList(ppppSt_Announcement, pInt_ListCount); + return m_DBSQLite.DBModule_SQLite_AnnouncementList(ppppSt_Announcement, pInt_ListCount); +} + +/************************************************************************/ +/* MYSQL数据库服务导出函数 */ +/************************************************************************/ +extern "C" bool DBModule_MySQL_Init(DATABASE_MYSQL_CONNECTINFO* pSt_DBConnector, bool bIsChange) +{ + return m_DBMySQL.DBModule_MySQL_Init(pSt_DBConnector, bIsChange); +} +extern "C" bool DBModule_MySQL_Destroy() +{ + return m_DBMySQL.DBModule_MySQL_Destroy(); +} +extern "C" bool DBModule_MySQL_UserDelete(LPCXSTR lpszUserName) +{ + return m_DBMySQL.DBModule_MySQL_UserDelete(lpszUserName); +} +extern "C" bool DBModule_MySQL_UserRegister(AUTHREG_USERTABLE* pSt_UserInfo) +{ + return m_DBMySQL.DBModule_MySQL_UserRegister(pSt_UserInfo); +} +extern "C" bool DBModule_MySQL_UserQuery(LPCXSTR lpszUserName, AUTHREG_USERTABLE* pSt_UserInfo) +{ + return m_DBMySQL.DBModule_MySQL_UserQuery(lpszUserName, pSt_UserInfo); +} +extern "C" bool DBModule_MySQL_UserPay(LPCXSTR lpszUserName, LPCXSTR lpszSerialName) +{ + return m_DBMySQL.DBModule_MySQL_UserPay(lpszUserName, lpszSerialName); +} +extern "C" bool DBModule_MySQL_UserLeave(AUTHREG_PROTOCOL_TIME* pSt_TimeProtocol) +{ + return m_DBMySQL.DBModule_MySQL_UserLeave(pSt_TimeProtocol); +} +extern "C" bool DBModule_MySQL_UserSet(AUTHREG_USERTABLE* pSt_UserTable) +{ + return m_DBMySQL.DBModule_MySQL_UserSet(pSt_UserTable); +} +extern "C" bool DBModule_MySQL_UserList(AUTHREG_USERTABLE*** pppSt_UserInfo, int* pInt_ListCount, int nPosStart, int nPosEnd) +{ + return m_DBMySQL.DBModule_MySQL_UserList(pppSt_UserInfo, pInt_ListCount, nPosStart, nPosEnd); +} +extern "C" bool DBModule_MySQL_SerialInsert(LPCXSTR lpszSerialNumber) +{ + return m_DBMySQL.DBModule_MySQL_SerialInsert(lpszSerialNumber); +} +extern "C" bool DBModule_MySQL_SerialDelete(LPCXSTR lpszSerialNumber) +{ + return m_DBMySQL.DBModule_MySQL_SerialDelete(lpszSerialNumber); +} +extern "C" bool DBModule_MySQL_SerialQuery(LPCXSTR lpszSerialNumber, LPAUTHREG_SERIALTABLE pSt_SerialTable) +{ + return m_DBMySQL.DBModule_MySQL_SerialQuery(lpszSerialNumber, pSt_SerialTable); +} +extern "C" bool DBModule_MySQL_SerialQueryAll(AUTHREG_SERIALTABLE*** pppSt_SerialTable, int* pInt_ListCount, int nPosStart, int nPosEnd) +{ + return m_DBMySQL.DBModule_MySQL_SerialQueryAll(pppSt_SerialTable, pInt_ListCount, nPosStart, nPosEnd); +} +extern "C" bool DBModule_MySQL_SerialPush(AUTHREG_SERIALTABLE* pSt_SerialTable) +{ + return m_DBMySQL.DBModule_MySQL_SerialPush(pSt_SerialTable); +} +extern "C" bool DBModule_MySQL_TryInsert(AUTHREG_TEMPVER* pSt_AuthVer) +{ + return m_DBMySQL.DBModule_MySQL_TryInsert(pSt_AuthVer); +} +extern "C" bool DBModule_MySQL_TryQuery(AUTHREG_TEMPVER* pSt_AuthVer) +{ + return m_DBMySQL.DBModule_MySQL_TryQuery(pSt_AuthVer); +} +extern "C" bool DBModule_MySQL_TryDelete(LPCXSTR lpszSerial) +{ + return m_DBMySQL.DBModule_MySQL_TryDelete(lpszSerial); +} +extern "C" bool DBModule_MySQL_TryClear(int nThanValue, ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE enVerMode) +{ + return m_DBMySQL.DBModule_MySQL_TryClear(nThanValue, enVerMode); +} +extern "C" bool DBModule_MySQL_TrySet(AUTHREG_TEMPVER* pSt_AuthVer) +{ + return m_DBMySQL.DBModule_MySQL_TrySet(pSt_AuthVer); +} +extern "C" bool DBModule_MySQL_TryList(AUTHREG_TEMPVER*** pppSt_AuthVer, int* pInt_ListCount, int nPosStart, int nPosEnd) +{ + return m_DBMySQL.DBModule_MySQL_TryList(pppSt_AuthVer, pInt_ListCount, nPosStart, nPosEnd); +} +extern "C" bool DBModule_MySQL_BannedInsert(AUTHREG_BANNED* pSt_Banned) +{ + return m_DBMySQL.DBModule_MySQL_BannedInsert(pSt_Banned); +} +extern "C" bool DBModule_MySQL_BannedDelete(AUTHREG_BANNED* pSt_Banned) +{ + return m_DBMySQL.DBModule_MySQL_BannedDelete(pSt_Banned); +} +extern "C" bool DBModule_MySQL_BannedList(AUTHREG_BANNED*** pppSt_BannedUser, int* pInt_UserCount, AUTHREG_BANNED*** pppSt_BannedAddr, int* pInt_AddrCount, int nPosStart, int nPosEnd) +{ + return m_DBMySQL.DBModule_MySQL_BannedList(pppSt_BannedUser, pInt_UserCount, pppSt_BannedAddr, pInt_AddrCount, nPosStart, nPosEnd); +} +extern "C" bool DBModule_MySQL_BannedExist(AUTHREG_BANNED* pSt_Banned) +{ + return m_DBMySQL.DBModule_MySQL_BannedExist(pSt_Banned); +} +extern "C" bool DBModule_MySQL_BannedUPDate(AUTHREG_BANNED* pSt_Banned) +{ + return m_DBMySQL.DBModule_MySQL_BannedUPDate(pSt_Banned); +} +extern "C" bool DBModule_MySQL_AnnouncementInsert(AUTHREG_ANNOUNCEMENT* pSt_Announcement) +{ + return m_DBMySQL.DBModule_MySQL_AnnouncementInsert(pSt_Announcement); +} +extern "C" bool DBModule_MySQL_AnnouncementDelete(AUTHREG_ANNOUNCEMENT* pSt_Announcement) +{ + return m_DBMySQL.DBModule_MySQL_AnnouncementDelete(pSt_Announcement); +} +extern "C" bool DBModule_MySQL_AnnouncementList(AUTHREG_ANNOUNCEMENT*** ppppSt_Announcement, int* pInt_ListCount) +{ + return m_DBMySQL.DBModule_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..9ac215077cdb199c7d633a3fd8b138570d9f6d0d 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,7 +68,16 @@ bool XEngine_AuthorizeHTTP_Token(LPCXSTR lpszClientAddr, XCHAR** pptszList, int return false; } } - if (!Database_SQLite_UserQuery(tszUserName, &st_UserTable)) + bool bSuccess = false; + if (0 == st_AuthConfig.st_XSql.nDBType) + { + bSuccess = DBModule_SQLite_UserQuery(tszUserName, &st_UserTable); + } + else + { + bSuccess = DBModule_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); 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..3721652c1b85f17ad613ecae9670a98bbbe490de 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,14 @@ 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 (0 == st_AuthConfig.st_XSql.nDBType) + { + DBModule_SQLite_AnnouncementList(NULL, &nListCount); + } + else + { + DBModule_MySQL_AnnouncementList(NULL, &nListCount); + } if (nListCount > 10) { Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, 510, "server limited"); @@ -32,7 +39,14 @@ bool XEngine_AuthorizeHTTP_Announcement(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIN return false; } Protocol_Parse_HttpParseAnnouncement(lpszMsgBuffer, nMsgLen, &st_Announcement); - Database_SQLite_AnnouncementInsert(&st_Announcement); + if (0 == st_AuthConfig.st_XSql.nDBType) + { + DBModule_SQLite_AnnouncementInsert(&st_Announcement); + } + else + { + DBModule_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 +57,14 @@ 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 (0 == st_AuthConfig.st_XSql.nDBType) + { + DBModule_SQLite_AnnouncementDelete(&st_Announcement); + } + else + { + DBModule_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 +74,14 @@ bool XEngine_AuthorizeHTTP_Announcement(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIN int nListCount = 0; AUTHREG_ANNOUNCEMENT** ppSt_Announcement; - Database_SQLite_AnnouncementList(&ppSt_Announcement, &nListCount); + if (0 == st_AuthConfig.st_XSql.nDBType) + { + DBModule_SQLite_AnnouncementList(&ppSt_Announcement, &nListCount); + } + else + { + DBModule_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..20ae19b9067b43d0f2e7fe0ba94e3faab8b74459 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,14 @@ 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 (0 == st_AuthConfig.st_XSql.nDBType) + { + DBModule_SQLite_BannedInsert(&st_Banned); + } + else + { + DBModule_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 +35,14 @@ 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 (0 == st_AuthConfig.st_XSql.nDBType) + { + DBModule_SQLite_BannedDelete(&st_Banned); + } + else + { + DBModule_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 +58,14 @@ 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 (0 == st_AuthConfig.st_XSql.nDBType) + { + DBModule_SQLite_BannedList(&ppSt_BannedUser, &nCountUser, &ppSt_BannedAddr, &nCountAddr, nPosStart, nPosEnd); + } + else + { + DBModule_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 +78,14 @@ 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 (0 == st_AuthConfig.st_XSql.nDBType) + { + DBModule_SQLite_BannedUPDate(&st_Banned); + } + else + { + DBModule_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..f1d1ecbe5e99fbcfe7665cdc3507a2fd0c357d96 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,7 +17,16 @@ 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 (0 == st_AuthConfig.st_XSql.nDBType) + { + bSuccess = DBModule_SQLite_UserQuery(st_UserTable.st_UserInfo.tszUserName, &st_UserTable); + } + else + { + bSuccess = DBModule_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); @@ -63,7 +72,14 @@ bool XEngine_AuthorizeHTTP_Client(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L if (!bOnline) { //只有bOnline不是在线列表的时候才执行 - Database_SQLite_UserList(&ppSt_UserInfo, &nOffCount, nPosStart, nPosEnd); + if (0 == st_AuthConfig.st_XSql.nDBType) + { + DBModule_SQLite_UserList(&ppSt_UserInfo, &nOffCount, nPosStart, nPosEnd); + } + else + { + DBModule_MySQL_UserList(&ppSt_UserInfo, &nOffCount, nPosStart, nPosEnd); + } } Protocol_Packet_HttpClientList(ptszMsgBuffer, &nSDLen, &ppSt_ListClient, nOnCount, &ppSt_UserInfo, nOffCount); @@ -104,7 +120,16 @@ 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 (0 == st_AuthConfig.st_XSql.nDBType) + { + bSuccess = DBModule_SQLite_UserSet(&st_UserTable); + } + else + { + bSuccess = DBModule_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); 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..4dcafaf5c450cc8d198d472334d6aa82e82a6c3b 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,7 +19,16 @@ 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 (0 == st_AuthConfig.st_XSql.nDBType) + { + bSuccess = DBModule_SQLite_UserQuery(st_UserAuth.tszUserName, &st_UserTable); + } + else + { + bSuccess = DBModule_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); @@ -43,7 +52,14 @@ 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 (0 == st_AuthConfig.st_XSql.nDBType) + { + DBModule_SQLite_UserLeave(&st_ProtocolTime); + } + else + { + DBModule_MySQL_UserLeave(&st_ProtocolTime); + } Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen); XEngine_Client_TaskSend(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP); @@ -55,7 +71,14 @@ 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 (0 == st_AuthConfig.st_XSql.nDBType) + { + DBModule_SQLite_UserLeave(&st_ProtocolTime); + } + else + { + DBModule_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..0e54d5db8c8783d7310e802cb290e30873f2e4b7 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,14 @@ bool XEngine_AuthorizeHTTP_Serial(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L return false; } AUTHREG_SERIALTABLE** ppSt_SerialTable; - Database_SQLite_SerialQueryAll(&ppSt_SerialTable, &nListCount, nPosStart, nPosEnd); + if (0 == st_AuthConfig.st_XSql.nDBType) + { + DBModule_SQLite_SerialQueryAll(&ppSt_SerialTable, &nListCount, nPosStart, nPosEnd); + } + else + { + DBModule_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 +100,19 @@ bool XEngine_AuthorizeHTTP_Serial(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, L return false; } //导入序列卡 - for (int i = 0; i < nSerialCount; i++) + if (0 == st_AuthConfig.st_XSql.nDBType) + { + for (int i = 0; i < nSerialCount; i++) //导入序列卡 + { + DBModule_SQLite_SerialInsert(pptszSerialNumber[i]); + } + } + else { - Database_SQLite_SerialInsert(pptszSerialNumber[i]); + for (int i = 0; i < nSerialCount; i++) + { + DBModule_MySQL_SerialInsert(pptszSerialNumber[i]); + } } BaseLib_OperatorMemory_Free((XPPPMEM)&pptszSerialNumber, nSerialCount); Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen); @@ -108,9 +125,19 @@ 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++) + if (0 == st_AuthConfig.st_XSql.nDBType) { - Database_SQLite_SerialDelete(ppSt_SerialTable[i]->tszSerialNumber); + for (int i = 0; i < nListCount; i++) + { + DBModule_SQLite_SerialDelete(ppSt_SerialTable[i]->tszSerialNumber); + } + } + else + { + for (int i = 0; i < nListCount; i++) + { + DBModule_MySQL_SerialDelete(ppSt_SerialTable[i]->tszSerialNumber); + } } BaseLib_OperatorMemory_Free((XPPPMEM)&ppSt_SerialTable, nListCount); Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen); @@ -123,9 +150,19 @@ 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++) + if (0 == st_AuthConfig.st_XSql.nDBType) { - Database_SQLite_SerialPush(ppSt_SerialTable[i]); + for (int i = 0; i < nListCount; i++) + { + DBModule_SQLite_SerialPush(ppSt_SerialTable[i]); + } + } + else + { + for (int i = 0; i < nListCount; i++) + { + DBModule_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..ac5b3ba7234cfa5f053a4ffe9694cdebd5a7bee1 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,14 @@ bool XEngine_AuthorizeHTTP_Try(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, LPCX int nListCount = 0; AUTHREG_TEMPVER** ppSt_AuthVer; - Database_SQLite_TryList(&ppSt_AuthVer, &nListCount); + if (0 == st_AuthConfig.st_XSql.nDBType) + { + DBModule_SQLite_TryList(&ppSt_AuthVer, &nListCount); + } + else + { + DBModule_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 +50,14 @@ 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 (0 == st_AuthConfig.st_XSql.nDBType) + { + DBModule_SQLite_TryDelete(st_VERTemp.tszVSerial); + } + else + { + DBModule_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 +68,14 @@ 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 (0 == st_AuthConfig.st_XSql.nDBType) + { + DBModule_SQLite_TrySet(&st_VERTemp); + } + else + { + DBModule_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..81188f5f4155bf65d1d1f3de9b66feb056f16a21 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,14 @@ bool XEngine_AuthorizeHTTP_User(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, LPC } BaseLib_OperatorMemory_Free((XPPPMEM)&ppSt_ListClient, nListCount); - Database_SQLite_UserDelete(st_UserInfo.tszUserName); + if (0 == st_AuthConfig.st_XSql.nDBType) + { + DBModule_SQLite_UserDelete(st_UserInfo.tszUserName); + } + else + { + DBModule_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,7 +67,16 @@ 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 (0 == st_AuthConfig.st_XSql.nDBType) + { + bSuccess = DBModule_SQLite_BannedExist(&st_Banned); + } + else + { + bSuccess = DBModule_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); @@ -85,7 +101,16 @@ 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 (0 == st_AuthConfig.st_XSql.nDBType) + { + bSuccess = DBModule_SQLite_UserRegister(&st_UserTable); + } + else + { + bSuccess = DBModule_MySQL_UserRegister(&st_UserTable); + } + if (!bSuccess) { XLONG dwRet = DBModule_GetLastError(); Protocol_Packet_HttpComm(tszSDBuffer, &nSDLen, dwRet, "user register is failed"); @@ -113,14 +138,30 @@ 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 (0 == st_AuthConfig.st_XSql.nDBType) + { + bSuccess = DBModule_SQLite_UserPay(st_UserPay.tszUserName, st_UserPay.tszSerialNumber); + } + else + { + bSuccess = DBModule_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 (0 == st_AuthConfig.st_XSql.nDBType) + { + DBModule_SQLite_UserQuery(st_UserPay.tszUserName, &st_UserInfo); + } + else + { + DBModule_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,7 +185,16 @@ 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 (0 == st_AuthConfig.st_XSql.nDBType) + { + bSuccess = DBModule_SQLite_UserQuery(st_UserInfo.tszUserName, &st_UserTable); + } + else + { + bSuccess = DBModule_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); @@ -200,7 +250,17 @@ 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 (0 == st_AuthConfig.st_XSql.nDBType) + { + bSuccess = DBModule_SQLite_TryQuery(&st_VERTemp); + } + else + { + bSuccess = DBModule_MySQL_TryQuery(&st_VERTemp); + } + if (bSuccess) { __int64x nTimeSpan = 0; //根据方式来计算剩余时间 @@ -231,7 +291,14 @@ bool XEngine_AuthorizeHTTP_User(LPCXSTR lpszClientAddr, LPCXSTR lpszAPIName, LPC //是否超过 if (nTimeSpan >= 0) { - Database_SQLite_TrySet(&st_VERTemp); + if (0 == st_AuthConfig.st_XSql.nDBType) + { + DBModule_SQLite_TrySet(&st_VERTemp); + } + else + { + DBModule_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,7 +323,16 @@ 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 (0 == st_AuthConfig.st_XSql.nDBType) + { + bSuccess = DBModule_SQLite_TryInsert(&st_VERTemp); + } + else + { + bSuccess = DBModule_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); 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..fa73a14d15d9163002726d92932d30adbc72b8d6 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_HttpTask.cpp @@ -59,11 +59,20 @@ bool XEngine_Client_HttpTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int AUTHREG_BANNED st_Banned; memset(&st_Banned, '\0', sizeof(AUTHREG_BANNED)); - _tcsxcpy(st_Banned.tszIPAddr, lpszClientAddr); BaseLib_OperatorIPAddr_SegAddr(st_Banned.tszIPAddr); + //是否在黑名单 - if (Database_SQLite_BannedExist(&st_Banned)) + bool bSuccess = false; + if (0 == st_AuthConfig.st_XSql.nDBType) + { + bSuccess = DBModule_SQLite_BannedExist(&st_Banned); //IP地址是否在黑名单 + } + else + { + bSuccess = DBModule_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); @@ -253,7 +262,6 @@ bool XEngine_Client_HttpTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int LPCXSTR lpszFuncName = _X("api"); LPCXSTR lpszAPIVerNotice = _X("notice"); LPCXSTR lpszAPIVerDCode = _X("dcode"); - memset(tszUrlName, '\0', sizeof(tszUrlName)); HttpProtocol_ServerHelp_GetParament(pSt_HTTPParament->tszHttpUri, &pptszList, &nListCount, tszUrlName); if ((nListCount < 1) || (0 != _tcsxnicmp(lpszFuncName, tszUrlName, _tcsxlen(lpszFuncName)))) diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp index af26d111113f10ec4a5ba0a863196ee81ee2c870..b4cb4acf07f15ca9dbc7bdb8a1140b8d0142475d 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_TCPTask.cpp @@ -61,7 +61,16 @@ 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 (0 == st_AuthConfig.st_XSql.nDBType) + { + bSuccess = DBModule_SQLite_BannedExist(&st_Banned); //是否在黑名单 + } + else + { + bSuccess = DBModule_MySQL_BannedExist(&st_Banned);//是否在黑名单 + } + if (bSuccess) { pSt_ProtocolHdr->wReserve = 423; Protocol_Packet_HDRComm(tszSDBuffer, &nSDLen, pSt_ProtocolHdr, nNetType); @@ -132,7 +141,16 @@ bool XEngine_Client_TCPTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int n } else { - if (!Database_SQLite_UserQuery(st_AuthProtocol.tszUserName, &st_UserTable)) + bool bSuccess = false; + if (0 == st_AuthConfig.st_XSql.nDBType) + { + bSuccess = DBModule_SQLite_UserQuery(st_AuthProtocol.tszUserName, &st_UserTable); + } + else + { + bSuccess = DBModule_MySQL_UserQuery(st_AuthProtocol.tszUserName, &st_UserTable); + } + if (!bSuccess) { pSt_ProtocolHdr->wReserve = 251; Protocol_Packet_HDRComm(tszSDBuffer, &nSDLen, pSt_ProtocolHdr, nNetType); @@ -268,7 +286,15 @@ bool XEngine_Client_TCPTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int n __int64x nTime = _ttxoll(st_UserTable.tszLeftTime) - 1; _xstprintf(st_UserTable.tszLeftTime, _X("%lld"), nTime); - Database_SQLite_UserSet(&st_UserTable); + if (0 == st_AuthConfig.st_XSql.nDBType) + { + DBModule_SQLite_UserSet(&st_UserTable); + } + else + { + DBModule_MySQL_UserSet(&st_UserTable); + } + } else if (ENUM_HELPCOMPONENTS_AUTHORIZE_SERIAL_TYPE_DAY == st_UserTable.enSerialType) { @@ -278,7 +304,14 @@ bool XEngine_Client_TCPTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int n __int64x nTime = _ttxoll(st_UserTable.tszLeftTime) - 1; _xstprintf(st_UserTable.tszLeftTime, _X("%lld"), nTime); BaseLib_OperatorTime_TimeToStr(st_UserTable.st_UserInfo.tszLoginTime); - Database_SQLite_UserSet(&st_UserTable); + if (0 == st_AuthConfig.st_XSql.nDBType) + { + DBModule_SQLite_UserSet(&st_UserTable); + } + else + { + DBModule_MySQL_UserSet(&st_UserTable); + } } } diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Task.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Task.cpp index 40e8fc89a61275d1087331290d5b81f98b0f069b..d2cacebe54eb86d361194284e8267c6c92e75de7 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Task.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Task.cpp @@ -52,7 +52,14 @@ 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 (0 == st_AuthConfig.st_XSql.nDBType) + { + DBModule_SQLite_UserLeave(&st_AuthTime); + } + else + { + DBModule_MySQL_UserLeave(&st_AuthTime); + } } void CALLBACK XEngine_TaskEvent_Token(XNETHANDLE xhToken, XPVOID lParam) { diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService new file mode 100644 index 0000000000000000000000000000000000000000..e4e0990bab9209081b0d00ece2aeaa90027cee30 Binary files /dev/null and b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService differ diff --git a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.cpp b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.cpp index ef866c7eae9d43773aa0b4cf750fbfe17538c669..db0ce74fdabdab13e65c33ba8028d3db8987e4b8 100644 --- a/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.cpp +++ b/XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.cpp @@ -50,7 +50,14 @@ void ServiceApp_Stop(int signo) Session_Authorize_Destroy(); Session_Token_Destroy(); AuthHelp_DynamicCode_Destory(); - Database_SQLite_Destroy(); + if (0 == st_AuthConfig.st_XSql.nDBType) + { + DBModule_SQLite_Destroy();//销毁DB数据库服务 + } + else + { + DBModule_MySQL_Destroy();// 销毁MYsql数据库服务 + } exit(0); } } @@ -139,13 +146,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 (0 == st_AuthConfig.st_XSql.nDBType) + { //SQLite数据库 + if (!DBModule_SQLite_Init(st_AuthConfig.st_XSql.st_SQLite.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.st_SQLite.tszSQLite); + } + else { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,初始化数据库服务失败,错误:%lX"), DBModule_GetLastError()); - goto XENGINE_EXITAPP; + if (!DBModule_MySQL_Init((DATABASE_MYSQL_CONNECTINFO *)&st_AuthConfig.st_XSql.st_MYSQL)) + { + 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.st_MYSQL.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()); @@ -295,10 +314,8 @@ int main(int argc, char** argv) { XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("启动服务中,信息报告给API服务器没有启用")); } - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,功能开关选项,删除功能:%d,登录功能:%d,找回密码:%d,充值功能:%d,注册功能:%d,CDKey功能:%d,公告系统:%d,动态验证:%d,多端登录:%d,临时试用:%d"), st_FunSwitch.bSwitchDelete, st_FunSwitch.bSwitchLogin, st_FunSwitch.bSwitchPass, st_FunSwitch.bSwitchPay, st_FunSwitch.bSwitchRegister, st_FunSwitch.bSwitchCDKey, st_FunSwitch.bSwitchNotice, st_FunSwitch.bSwitchDCode, st_FunSwitch.bSwitchMulti, st_FunSwitch.bSwitchTry); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("所有服务成功启动,网络验证服务运行中,XEngien版本:%s%s,发行版本次数:%d,当前运行版本:%s。。。"), BaseLib_OperatorVer_XNumberStr(), BaseLib_OperatorVer_XTypeStr(), st_AuthConfig.st_XVer.pStl_ListVer->size(), st_AuthConfig.st_XVer.pStl_ListVer->front().c_str()); - while (true) { std::this_thread::sleep_for(std::chrono::seconds(1)); @@ -332,7 +349,14 @@ XENGINE_EXITAPP: Session_Authorize_Destroy(); Session_Token_Destroy(); AuthHelp_DynamicCode_Destory(); - Database_SQLite_Destroy(); + if (0 == st_AuthConfig.st_XSql.nDBType) + { + DBModule_SQLite_Destroy(); + } + else + { + DBModule_MySQL_Destroy(); + } } #ifdef _WINDOWS WSACleanup();