#include "StdAfx.h" #include "ServiceUnits.h" #include "DataBaseEngineSink.h" #include "GameServer.h" #include "GameServerDlg.h" #include "Shop.h" ////////////////////////////////////////////////////////////////////////////////// //构造函数 CDataBaseEngineSink::CDataBaseEngineSink() { //配置变量 m_pGameParameter = NULL; m_pInitParameter = NULL; m_pDataBaseParameter = NULL; m_pGameServiceAttrib = NULL; m_pGameServiceOption = NULL; //组件变量 m_pIDataBaseEngine = NULL; m_pIGameServiceManager = NULL; m_pIDataBaseEngineEvent = NULL; m_pIGameDataBaseEngineSink = NULL; m_pIDBCorrespondManager = NULL; //辅助变量 ZeroMemory(&m_LogonFailure, sizeof(m_LogonFailure)); ZeroMemory(&m_LogonSuccess, sizeof(m_LogonSuccess)); return; } //析构函数 CDataBaseEngineSink::~CDataBaseEngineSink() { //释放对象 SafeRelease(m_pIGameDataBaseEngineSink); return; } //接口查询 VOID * CDataBaseEngineSink::QueryInterface(REFGUID Guid, DWORD dwQueryVer) { QUERYINTERFACE(IDataBaseEngineSink, Guid, dwQueryVer); QUERYINTERFACE(IGameDataBaseEngine, Guid, dwQueryVer); QUERYINTERFACE_IUNKNOWNEX(IDataBaseEngineSink, Guid, dwQueryVer); return NULL; } //获取对象 VOID * CDataBaseEngineSink::GetDataBase(REFGUID Guid, DWORD dwQueryVer) { //效验状态 ASSERT(m_GameDBModule.GetInterface() != NULL); if (m_GameDBModule.GetInterface() == NULL) return NULL; //查询对象 IDataBase * pIDataBase = m_GameDBModule.GetInterface(); VOID * pIQueryObject = pIDataBase->QueryInterface(Guid, dwQueryVer); return pIQueryObject; } //获取对象 VOID * CDataBaseEngineSink::GetDataBaseEngine(REFGUID Guid, DWORD dwQueryVer) { //效验状态 ASSERT(m_pIDataBaseEngine != NULL); if (m_pIDataBaseEngine == NULL) return NULL; //查询对象 VOID * pIQueryObject = m_pIDataBaseEngine->QueryInterface(Guid, dwQueryVer); return pIQueryObject; } // 更新服务器通道状态 bool CDataBaseEngineSink::OnRequestOnLineService(DWORD dwContextID, VOID * pData, WORD wDataSize) { IPLIST* pIPLIST = (IPLIST*)pData; CGameServerDlg *pCLogonServerDlg = (CGameServerDlg *)theApp.m_pMainWnd; CServerListManager *pCServerListManager = &(pCLogonServerDlg->m_ServiceUnits.m_AttemperEngineSink.m_ServerListManager); CList ListLL; for (int i = 0; i < 64; i++) { std::wstring strTemp = pIPLIST->ST_LIST[i]; if (strTemp == _T("")) continue; CTimer Start; try { //构造参数 m_PlatformDBAide.ResetParameter(); m_PlatformDBAide.AddParameter(TEXT("@strIP"), strTemp.c_str()); m_PlatformDBAide.AddParameter(TEXT("@strErrorDescribe"), _T("")); //执行查询 LONG lResultCode = m_PlatformDBAide.ExecuteProcess(TEXT("GSP_MB_IP"), true); //写入记录 if (lResultCode == DB_SUCCESS) { ListLL.RemoveAll(); //节点 while (m_PlatformDBModule->IsRecordsetEnd() == false) { INT ZhuangTai = m_PlatformDBAide.GetValue_INT(TEXT("ZhuangTai")); TCHAR szIP[32]; ZeroMemory(szIP, sizeof(TCHAR) * 32); m_PlatformDBAide.GetValue_String(TEXT("MoreIp"), szIP, 32); SYSTEMTIME SystemTimeConclude; m_PlatformDBAide.GetValue_SystemTime(TEXT("LastAddTime"), SystemTimeConclude); //pGameServerItem->SetLLStat(szIP, ZhuangTai, SystemTimeConclude); LianLu myTemp; ZeroMemory(&myTemp, sizeof(LianLu)); myTemp.iIsOk = ZhuangTai; myTemp.SystemTimeConclude = SystemTimeConclude; StringCchCat(myTemp.szIP, 32, szIP); ListLL.AddTail(myTemp); //移动记录 m_PlatformDBModule->MoveToNext(); } LianLuGroup Buffer; ZeroMemory(&Buffer, sizeof(LianLuGroup)); StringCchCat(Buffer.szAdminIP, 32, strTemp.c_str()); POSITION Pos = ListLL.GetHeadPosition(); int j = 0; while (Pos) { LianLu wRet = ListLL.GetNext(Pos); Buffer.Data[j] = wRet; j++; if (j > (MAX_TONGDAO-1)) break; } ListLL.RemoveAll(); //通知网络线程更新数据 (pCLogonServerDlg->m_ServiceUnits.m_AttemperEngineSink.GetTCPNetworkEngine())->OnTBDataEvent(DBO_GR_UPTONGDAOACK, 0, &Buffer, sizeof(LianLuGroup)); } } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); } double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_MB_IP ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } } return TRUE; } //投递结果 bool CDataBaseEngineSink::PostGameDataBaseResult(WORD wRequestID, VOID * pData, WORD wDataSize) { return true; } //启动事件 bool CDataBaseEngineSink::OnDataBaseEngineStart(IUnknownEx * pIUnknownEx) { CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnDataBaseEngineStart"), TraceLevel_Debug); //查询对象 ASSERT(QUERY_OBJECT_PTR_INTERFACE(pIUnknownEx, IDataBaseEngine) != NULL); m_pIDataBaseEngine = QUERY_OBJECT_PTR_INTERFACE(pIUnknownEx, IDataBaseEngine); //创建对象 if ((m_GameDBModule.GetInterface() == NULL) && (m_GameDBModule.CreateInstance() == false)) { ASSERT(FALSE); return false; } //创建对象 if ((m_TreasureDBModule.GetInterface() == NULL) && (m_TreasureDBModule.CreateInstance() == false)) { ASSERT(FALSE); return false; } //创建对象 if ((m_PlatformDBModule.GetInterface() == NULL) && (m_PlatformDBModule.CreateInstance() == false)) { ASSERT(FALSE); return false; } //连接游戏 try { //连接信息 tagDataBaseParameter * pTreasureDBParameter = &m_pInitParameter->m_TreasureDBParameter; tagDataBaseParameter * pPlatformDBParameter = &m_pInitParameter->m_PlatformDBParameter; //设置连接 m_GameDBModule->SetConnectionInfo(m_pDataBaseParameter->szDataBaseAddr, m_pDataBaseParameter->wDataBasePort, m_pDataBaseParameter->szDataBaseName, m_pDataBaseParameter->szDataBaseUser, m_pDataBaseParameter->szDataBasePass); //设置连接 m_TreasureDBModule->SetConnectionInfo(pTreasureDBParameter->szDataBaseAddr, pTreasureDBParameter->wDataBasePort, pTreasureDBParameter->szDataBaseName, pTreasureDBParameter->szDataBaseUser, pTreasureDBParameter->szDataBasePass); //设置连接 m_PlatformDBModule->SetConnectionInfo(pPlatformDBParameter->szDataBaseAddr, pPlatformDBParameter->wDataBasePort, pPlatformDBParameter->szDataBaseName, pPlatformDBParameter->szDataBaseUser, pPlatformDBParameter->szDataBasePass); //发起连接 m_GameDBModule->OpenConnection(); m_GameDBAide.SetDataBase(m_GameDBModule.GetInterface()); //发起连接 m_TreasureDBModule->OpenConnection(); m_TreasureDBAide.SetDataBase(m_TreasureDBModule.GetInterface()); //发起连接 m_PlatformDBModule->OpenConnection(); m_PlatformDBAide.SetDataBase(m_PlatformDBModule.GetInterface()); //数据钩子 ASSERT(m_pIGameServiceManager != NULL); m_pIGameDataBaseEngineSink = (IGameDataBaseEngineSink *)m_pIGameServiceManager->CreateGameDataBaseEngineSink(IID_IGameDataBaseEngineSink, VER_IGameDataBaseEngineSink); //配置对象 if ((m_pIGameDataBaseEngineSink != NULL) && (m_pIGameDataBaseEngineSink->InitializeSink(QUERY_ME_INTERFACE(IUnknownEx)) == false)) { //错误断言 ASSERT(FALSE); //输出信息 CTraceService::TraceString(TEXT("游戏数据库扩展钩子引擎对象配置失败"), TraceLevel_Exception); return false; } return true; } catch (IDataBaseException * pIException) { //错误信息 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); return false; } return true; } //停止事件 bool CDataBaseEngineSink::OnDataBaseEngineConclude(IUnknownEx * pIUnknownEx) { //解锁机器 //UnLockAndroidUser(); //配置变量 m_pInitParameter = NULL; m_pGameServiceAttrib = NULL; m_pGameServiceOption = NULL; //组件变量 m_pIGameServiceManager = NULL; m_pIDataBaseEngineEvent = NULL; //设置对象 m_GameDBAide.SetDataBase(NULL); //释放对象 SafeRelease(m_pIGameDataBaseEngineSink); //关闭连接 if (m_GameDBModule.GetInterface() != NULL) { m_GameDBModule->CloseConnection(); m_GameDBModule.CloseInstance(); } //关闭连接 if (m_TreasureDBModule.GetInterface() != NULL) { m_TreasureDBModule->CloseConnection(); m_TreasureDBModule.CloseInstance(); } //关闭连接 if (m_PlatformDBModule.GetInterface() != NULL) { m_PlatformDBModule->CloseConnection(); m_PlatformDBModule.CloseInstance(); } return true; } //时间事件 bool CDataBaseEngineSink::OnDataBaseEngineTimer(DWORD dwTimerID, WPARAM dwBindParameter) { return false; } //控制事件 bool CDataBaseEngineSink::OnDataBaseEngineControl(WORD wControlID, VOID * pData, WORD wDataSize) { return false; } //请求事件 bool CDataBaseEngineSink::OnDataBaseEngineRequest(WORD wRequestID, DWORD dwContextID, VOID * pData, WORD wDataSize) { //变量定义 bool bSucceed = false; DWORD dwUserID = 0L; DWORD dValue = 0; if (!m_JiShu.Lookup(wRequestID, dValue)) { m_JiShu.SetAt(wRequestID, dValue); } try { //请求处理 switch (wRequestID) { case SUB_GR_USER_SHRAE_INFO: //分享奖励钻石 { bSucceed = OnRequestShareInfo(dwContextID, pData, wDataSize, dwUserID); } break; case SUB_GR_USER_SHRAE_AWARD_BEAN: //分享奖励钻石 { bSucceed = OnRequestShareAwardBean(dwContextID, pData, wDataSize, dwUserID); } break; case SUB_GR_USER_CHECK_NAME: { bSucceed = onRequestCheckName(dwContextID, pData, wDataSize, dwUserID); } break; case SUB_GR_USER_CHECK_NAME_QUERY: { bSucceed = onRequestCheckNameQuery(dwContextID, pData, wDataSize, dwUserID); } break; case SUB_GR_USER_GET_VERIF_CODE://手机重复绑定查询 { bSucceed = onRequestGetVerifCode(dwContextID, pData, wDataSize, dwUserID); } break; case SUB_GR_USER_CHECK_IPHONE_QUERY://手机绑定查询,闲聊 { bSucceed = onRequestCheckIphoneQuery(dwContextID, pData, wDataSize, dwUserID); } break; case SUB_GR_USER_CHECK_IPHONE://手机绑定 { bSucceed = onRequestCheckIphone(dwContextID, pData, wDataSize, dwUserID); } break; case SUB_GR_USER_CHECK_XIANLIAO://闲聊绑定 { bSucceed = onRequestCheckXianLiao(dwContextID, pData, wDataSize, dwUserID); } break; case SUB_GR_USER_GET_BEAN: { bSucceed = OnRequestGetBean(dwContextID, pData, wDataSize, dwUserID); } break; case DBR_GR_LOGON_MOBILE: //手机登录 { bSucceed = OnRequestLogonMobile(dwContextID, pData, wDataSize, dwUserID); } break; case DBR_GR_WRITE_GAME_SCORE: //游戏写分 { bSucceed = OnRequestWriteGameScore(dwContextID, pData, wDataSize, dwUserID); } break; case SUB_GR_USER_GET_GAME_TEMP_SCORE_RANKLIST: //获取临时积分排行榜 { bSucceed = OnRequestGetGameTempScoreRecordRankList(dwContextID, pData, wDataSize, dwUserID); }break; case DBR_GR_WRITE_GAME_TEMPORARY_SCORE://记录临时积分 { bSucceed = OnRequestWriteGameTempScoreRecord(dwContextID, pData, wDataSize, dwUserID); }break; case DBR_GR_LEAVE_GAME_SERVER: //离开房间 { bSucceed = OnRequestLeaveGameServer(dwContextID, pData, wDataSize, dwUserID); } break; case DBR_GR_GAME_SCORE_RECORD: //游戏记录 { bSucceed = OnRequestGameScoreRecord(dwContextID, pData, wDataSize, dwUserID); }break; case DBR_GR_GET_GAME_SCORE_RECORD_LIST: { bSucceed = OnRequestGetUserGameScoreRecords(dwContextID, pData, wDataSize, dwUserID); }break; case SUB_GR_USER_GET_GAME_SCORE_RECORD_REPLAY: { bSucceed = OnRequestGetUserGameReplayRecord(dwContextID, pData, wDataSize, dwUserID); }break; case DBR_GR_LOAD_PARAMETER: //加载参数 { bSucceed = OnRequestLoadParameter(dwContextID, pData, wDataSize, dwUserID); } break; //case DBR_GR_LOAD_GAME_COLUMN: //加载列表 //{ // bSucceed = true;// OnRequestLoadGameColumn(dwContextID, pData, wDataSize, dwUserID); //} // break; //case DBR_GR_LOAD_ANDROID_PARAMETER: //加载配置 //{ // bSucceed = true;//OnRequestLoadAndroidParameter(dwContextID, pData, wDataSize, dwUserID); //} break; //case DBR_GR_LOAD_ANDROID_USER: //加载机器 //{ // bSucceed = true;//OnRequestLoadAndroidUser(dwContextID, pData, wDataSize, dwUserID); //} // break; case DBR_GP_ONLINE_SERVICE: //加载通道 { return OnRequestOnLineService(dwContextID, pData, wDataSize); } break; //case DBR_GR_LOAD_GAME_PROPERTY: //加载道具 //{ // bSucceed = OnRequestLoadGameProperty(dwContextID, pData, wDataSize, dwUserID); //} // break; case DBR_GR_USER_CHECK_BEANS: //直接扣除元宝 { bSucceed = OnRequestUserCheckBeans(dwContextID, pData, wDataSize, dwUserID); } break; case DBR_GR_USER_REDUCE_BEANS: //消耗元宝 { bSucceed = OnRequestUserReduceBeans(dwContextID, pData, wDataSize, dwUserID); } break; case DBR_GR_USER_LUCK_BEANS: //冻结元宝 { bSucceed = OnRequestUserLockBeans(dwContextID, pData, wDataSize, dwUserID); } break; case DBR_GR_USER_UNLUCK_BEANS: //解冻元宝 { bSucceed = OnRequestUserUnLockBeans(dwContextID, pData, wDataSize, dwUserID); } break; //case DBR_GR_USER_ENABLE_INSURE: //开通银行 //{ // bSucceed = OnRequestUserEnableInsure(dwContextID, pData, wDataSize, dwUserID); //} // break; //case DBR_GR_USER_SAVE_SCORE: //存入游戏币 //{ // bSucceed = OnRequestUserSaveScore(dwContextID, pData, wDataSize, dwUserID); //} // break; //case DBR_GR_USER_TAKE_SCORE: //提取游戏币 //{ // bSucceed = OnRequestUserTakeScore(dwContextID, pData, wDataSize, dwUserID); //} // break; //case DBR_GR_USER_TRANSFER_SCORE: //转帐游戏币 //{ // bSucceed = OnRequestUserTransferScore(dwContextID, pData, wDataSize, dwUserID); //} // break; //case DBR_GR_QUERY_INSURE_INFO: //查询银行 //{ // bSucceed = OnRequestQueryInsureInfo(dwContextID, pData, wDataSize, dwUserID); //} // break; //case DBR_GR_QUERY_TRANSFER_USER_INFO: //查询用户 //{ // bSucceed = OnRequestQueryTransferUserInfo(dwContextID, pData, wDataSize, dwUserID); //} // break; //case DBR_GR_PROPERTY_REQUEST: //道具请求 //{ // bSucceed = OnRequestPropertyRequest(dwContextID, pData, wDataSize, dwUserID); //} // break; //case DBR_GR_MANAGE_USER_RIGHT: //用户权限 //{ // bSucceed = OnRequestManageUserRight(dwContextID, pData, wDataSize, dwUserID); //} // break; //case DBR_GR_LOAD_SYSTEM_MESSAGE: //系统消息 //{ // bSucceed = OnRequestLoadSystemMessage(dwContextID, pData, wDataSize, dwUserID); //} // break; //case DBR_GR_LOAD_SENSITIVE_WORDS://加载敏感词 //{ // return OnRequestLoadSensitiveWords(dwContextID, pData, wDataSize, dwUserID); //} // break; //case DBR_GR_MATCH_SIGNUP: //比赛费用 //{ // bSucceed = OnRequestMatchSignup(dwContextID, pData, wDataSize, dwUserID); //} // break; //case DBR_GR_MATCH_UNSIGNUP: //退出比赛 //{ // bSucceed = OnRequestMatchUnSignup(dwContextID, pData, wDataSize, dwUserID); //} // break; //case DBR_GR_MATCH_START: //比赛开始 //{ // bSucceed = OnRequestMatchStart(dwContextID, pData, wDataSize, dwUserID); //} // break; //case DBR_GR_MATCH_ELIMINATE: //比赛淘汰 //{ // bSucceed = OnRequestMatchEliminate(dwContextID, pData, wDataSize, dwUserID); //} // break; //case DBR_GR_MATCH_OVER: //比赛结束 //{ // bSucceed = OnRequestMatchOver(dwContextID, pData, wDataSize, dwUserID); //} // break; //case DBR_GR_MATCH_REWARD: //比赛奖励 //{ // bSucceed = OnRequestMatchReward(dwContextID, pData, wDataSize, dwUserID); //} // break; //case DBR_GR_TASK_LOAD_LIST: //加载任务 //{ // bSucceed = OnRequestLoadTaskList(dwContextID, pData, wDataSize, dwUserID); //} // break; //case DBR_GR_TASK_QUERY_INFO: //查询任务 //{ // bSucceed = OnRequestTaskQueryInfo(dwContextID, pData, wDataSize, dwUserID); //} // break; //case DBR_GR_TASK_TAKE: //领取任务 //{ // bSucceed = OnRequestTaskTake(dwContextID, pData, wDataSize, dwUserID); //} // break; //case DBR_GR_TASK_REWARD: //领取奖励 //{ // bSucceed = OnRequestTaskReward(dwContextID, pData, wDataSize, dwUserID); //} // break; //case DBR_GR_LOAD_MEMBER_PARAMETER: //会员参数 //{ // bSucceed = OnRequestLoadMemberParameter(dwContextID, pData, wDataSize, dwUserID); //} // break; //case DBR_GR_PURCHASE_MEMBER: //购买会员 //{ // bSucceed = OnRequestPurchaseMember(dwContextID, pData, wDataSize, dwUserID); //} // break; //case DBR_GR_EXCHANGE_SCORE: //兑换游戏币 //{ // bSucceed = OnRequestExchangeScore(dwContextID, pData, wDataSize, dwUserID); //} // break; //case DBO_GP_EXCHANGE_CONFIG_LIST: //钻石兑换金币的商品列表 //{ // bSucceed = OnRequestExchangeConfigs(dwContextID, pData, wDataSize, dwUserID); //} // break; //case DBO_GR_TOP_WIN_LIST: ///+++胜局榜 //{ // bSucceed = OnRequestTopWinList(dwContextID, pData, wDataSize); // break; //} //case DBR_GP_RELIEF_INFO: ///+++查询破产信息 //{ // bSucceed = OnRequestReliefInfo(dwContextID, pData, wDataSize); // break; //} //case DBR_GP_GET_RELIEF: ///+++领取破产 //{ // bSucceed = OnRequestGetRelief(dwContextID, pData, wDataSize); // break; //} case DBR_GP_LOAD_CHECKIN_REWARD: //签到奖励 { bSucceed = OnRequestCheckInReward(dwContextID, pData, wDataSize); break; } case DBR_GP_CHECKIN_QUERY_INFO: //查询签到 { bSucceed = OnRequestCheckInQueryInfo(dwContextID, pData, wDataSize); break; } case DBR_GP_CHECKIN_DONE: //执行签到 { bSucceed = OnRequestCheckInDone(dwContextID, pData, wDataSize); break; } case DBR_GP_WELFARE_INFO: //福利信息 { bSucceed = OnQueryWelfareInfo(dwContextID, pData, wDataSize); break; } case DBR_GR_CLUB_GET_LIST: //获取俱乐部列表 { bSucceed = OnRequestGetClubList(dwContextID, pData, wDataSize, dwUserID); break; } case DBR_GR_CLUB_GET_USER: //获取俱乐部会员 { bSucceed = OnRequestGetClubUser(dwContextID, pData, wDataSize, dwUserID); break; } case DBR_GR_CLUB_GET_USER_EX: //获取俱乐部会员 { bSucceed = OnRequestGetClubUserEx(dwContextID, pData, wDataSize, dwUserID); break; } case DBR_GR_CLUB_GET_USER_ONLINE: //获取俱乐部会员 { bSucceed = OnRequestGetClubUserOnline(dwContextID, pData, wDataSize, dwUserID); break; } case DBR_GR_CLUB_GET_MESSAGE: //获取俱乐部消息 { bSucceed = OnRequestGetClubMessage(dwContextID, pData, wDataSize, dwUserID); break; } case DBR_GR_CLUB_GET_RECORD: //获取俱乐部记录 { bSucceed = OnRequestGetClubRecord(dwContextID, pData, wDataSize, dwUserID); break; } case DBR_GR_CLUB_GET_RECORD_EX: //获取俱乐部记录 { bSucceed = OnRequestGetClubRecordEX(dwContextID, pData, wDataSize, dwUserID); break; } case DBR_GR_CLUB_XIANLIAO_RECORD://分享战绩到闲聊群 { bSucceed = OnRequestFenXiangClubRecord(dwContextID, pData, wDataSize, dwUserID); break; } case DBR_GR_CLUB_WRITE_RECORD: //获取俱乐部记录 { bSucceed = OnRequestWriteClubRecord(dwContextID, pData, wDataSize, dwUserID); break; } case DBR_GR_CLUB_CREATE: //创建俱乐部 { bSucceed = OnRequestCreateClub(dwContextID, pData, wDataSize, dwUserID); break; } case DBR_GR_CLUB_UPDATE: //修改俱乐部 { bSucceed = OnRequestUpdateClub(dwContextID, pData, wDataSize, dwUserID); break; } case DBR_GR_CLUB_DELETE: //删除俱乐部 { bSucceed = OnRequestDeleteClub(dwContextID, pData, wDataSize, dwUserID); break; } case DBR_GR_CLUB_GET: //查看俱乐部 { bSucceed = OnRequestGetClub(dwContextID, pData, wDataSize, dwUserID); break; } case DBR_GR_CLUB_JOIN: //加入俱乐部 { bSucceed = OnRequestJoinClub(dwContextID, pData, wDataSize, dwUserID); break; } case DBR_GR_CLUB_QUIT: //退出俱乐部 { bSucceed = OnRequestQuitClub(dwContextID, pData, wDataSize, dwUserID); break; } case DBR_GR_CLUB_ISAGREE: //同意俱乐部 { bSucceed = OnRequestAgreeClub(dwContextID, pData, wDataSize, dwUserID); break; } //case DBR_GR_CLUB_GET_ONLINE: //获取俱乐部在线信息 //{ // bSucceed = OnRequestGetClubOnLine(dwContextID, pData, wDataSize, dwUserID); // break; //} case DBR_GR_CLUB_GET_ONLINEEX: //获取俱乐部在线信息 { bSucceed = OnRequestGetClubOnLineEx(dwContextID, pData, wDataSize, dwUserID); break; } case DBR_GR_CLUB_GET_USER2: //获取俱乐部会员黑名单 { bSucceed = OnRequestGetClubBlackUser(dwContextID, pData, wDataSize, dwUserID); break; } case DBR_GR_CLUB_GET_PROTOCOL: //获取俱乐部协议 { bSucceed = OnRequestGetClubProtocol(dwContextID, pData, wDataSize, dwUserID); break; } case DBR_GR_CLUB_GET_PROTOCOLAGREE: //同意俱乐部协议 { bSucceed = OnRequestGetClubProtocolAgree(dwContextID, pData, wDataSize, dwUserID); break; } case DBR_GR_CLUB_GET_HOSTINFO: //查询群主信息 { bSucceed = OnRequestGetClubHostInfo(dwContextID, pData, wDataSize, dwUserID); break; } case DBR_GR_CLUB_GET_NOTICE: //俱乐部公告 { bSucceed = OnRequestGetClubNotice(dwContextID, pData, wDataSize, dwUserID); break; } case DBR_GR_CLUB_NotifyUser: //俱乐部广播 { bSucceed = OnRequestNotifyAlluser(dwContextID, pData, wDataSize, dwUserID); break; } case DBR_GP_MY_ROULETTE_INFO: ///+++我的转盘信息 { bSucceed = OnRequestRouletteConfig_new(dwContextID, pData, wDataSize, dwUserID); break; } case DBR_GP_ROULETTE_LOTTERY: ///+++转盘抽奖 { bSucceed = OnRecordRouletteLottery(dwContextID, pData, wDataSize, dwUserID); break; } case DBR_GP_GET_ROULETTE_CONFIG/*DBR_GP_LOAD_ROULETTE_CONFIG*/: //加载轮盘奖品配置信息 { bSucceed = OnRequestRouletteConfig(dwContextID, pData, wDataSize, dwUserID); break; } case DBR_GP_LOTTERY_INFO: //查询抽奖信息 { bSucceed = OnQueryLotteryInfo(dwContextID, pData, wDataSize); break; } case DBR_GP_LOTTERY_HIS: //查询抽奖历史 { bSucceed = OnQueryLotteryHis(dwContextID, pData, wDataSize); break; } case DBR_GP_LOTTERY_HIS_EX: { bSucceed = OnQueryLotteryHisEx(dwContextID, pData, wDataSize); break; } case DBO_GR_TASK_SAOMA: //扫码绑定更新绑定代理id和送8个钻 { bSucceed = OnRequestSetAgentBangDing(dwContextID, pData, wDataSize); break; } case DBR_GP_GET_UNTIE_AGENT_INFO: //用户获得代理解绑相关信息 { bSucceed = OnRequestGetUntieAgentInfo(dwContextID, pData, wDataSize); break; } case DBR_GP_GET_ZUANSHI_INFO: //用户获得解绑所需钻石数目 { bSucceed = OnRequestGetUntieAgentCost(dwContextID, pData, wDataSize); break; } case DBR_GR_CLUB_DISSOLVEROOM: //群主解散俱乐部房间 { bSucceed = OnRequestClubDissolveRoom(dwContextID, pData, wDataSize, dwUserID); break; } case DBR_GP_LOTTERY_FLAG: //更新奖品发放标志 { bSucceed = OnUpdateLotteryFlag(dwContextID, pData, wDataSize); break; } case DBR_GP_LOTTERY_AWARD: //手动领奖 { bSucceed = OnLotteryAward(dwContextID, pData, wDataSize); break; } case DBR_GP_LOTTERY_ADDRESS: //注册收件信息 { bSucceed = OnLotteryAddress(dwContextID, pData, wDataSize); break; } case DBR_GR_CLUB_SAVE_MORE_WANFA: //额外玩法 { bSucceed = OnRequestUpdateAddClub(dwContextID, pData, wDataSize, dwUserID); break; } case DBR_GR_CLUB_GET_MORE_WANFA: //查看俱乐部 额外玩法 { bSucceed = OnRequestGetAddClub(dwContextID, pData, wDataSize, dwUserID); break; } case DBR_GR_CLUB_GET_COUNT_EXPLOITS: { bSucceed = OnRequestGetClubExploits(dwContextID, pData, wDataSize, dwUserID); break; } case DBR_GR_CLUB_GET_COUNT_PLAYGAEMS: //俱乐部统计对局数 { bSucceed = OnRequestGetClubPlaygames(dwContextID, pData, wDataSize, dwUserID); break; } case DBR_GR_CLUB_GET_COUNT_INTEGRAL: //俱乐部统计积分数 { bSucceed = OnRequestGetClubIntegral(dwContextID, pData, wDataSize, dwUserID); break; } case DBR_GR_CLUB_GET_MAKEA_SAMPLE: //俱乐部打样 { bSucceed = OnRequestGetClubSample(dwContextID, pData, wDataSize, dwUserID); break; } case SUB_GP_WENLIN_SHUFFLE: //洗牌动画 { bSucceed = OnWlShuffleGameHandleDB(dwContextID, pData, wDataSize, dwUserID); break; } case DBR_GP_DEDUCT_ZUANSHI_INFO: //洗牌动画 扣钻 { bSucceed = OnWlShuffleGameDeductHandleDB(dwContextID, pData, wDataSize, dwUserID); break; } } } catch (const std::exception&) { } if (!bSucceed) { if (dValue > 3) { bSucceed = true; m_JiShu.SetAt(wRequestID, 0); } else { dValue++; m_JiShu.SetAt(wRequestID, dValue); } } //协调通知 if (m_pIDBCorrespondManager) m_pIDBCorrespondManager->OnPostRequestComplete(dwUserID,true/* bSucceed*/); return bSucceed; } //查询元宝 bool CDataBaseEngineSink::OnRequestGetBean(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetBean"), TraceLevel_Debug); CTimer Start; try { DWORD *pUserID = (DWORD *)pData; //构造参数 m_GameDBAide.ResetParameter(); //获取当前时间 m_GameDBAide.AddParameter(TEXT("dwUserID"), *pUserID); TCHAR szDescribeString[127]; ZeroMemory(szDescribeString, 127* sizeof(TCHAR)); //输出参数 m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //执行查询 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_LookBeans"), true); //结果处理 CDBVarValue DBVarValue; m_GameDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue); DBR_GR_GetBearn Ret; ZeroMemory(&Ret, sizeof(DBR_GR_GetBearn)); Ret.dwUserID = *pUserID; Ret.dwSocket = dwContextID; if (lResultCode == DB_SUCCESS) { Ret.lResultCode = 1; Ret.Currency = m_GameDBAide.GetValue_DWORD(_T("CurrBeans")); Ret.LeiJiZuanShi = m_GameDBAide.GetValue_DWORD(_T("LeiJiZuanShi")); Ret.GouMaiZuanShi = m_GameDBAide.GetValue_DWORD(_T("GouMaiZuanShi")); } else { Ret.lResultCode = 0; _sntprintf(Ret.strErrorDescribe, 127, TEXT("%s"), static_cast(DBVarValue.bstrVal)); } m_pIDataBaseEngineEvent->OnEventDataBaseResult(SUB_GR_USER_GET_BEAN_RESULT, dwContextID, &Ret, sizeof(DBR_GR_GetBearn)); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_LookBeans ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_LookBeans ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_LookBeans ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_LookBeans ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } return true; } //实名认证 bool CDataBaseEngineSink::onRequestCheckName(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTraceService::TraceString(TEXT("CDataBaseEngineSink::onRequestCheckName"), TraceLevel_Debug); CTimer Start; try { CHECKNAMEINFO *pUserID = (CHECKNAMEINFO *)pData; //构造参数 m_GameDBAide.ResetParameter(); //输入参数 m_GameDBAide.AddParameter(TEXT("dwUserID"), pUserID->dUserID); m_GameDBAide.AddParameter(TEXT("dwUserName"), pUserID->nameInfo.Name); m_GameDBAide.AddParameter(TEXT("dwUserCard"), pUserID->nameInfo.IDCard); m_GameDBAide.AddParameter(TEXT("dwUserPhoneNum"), pUserID->nameInfo.PhoneNum); //执行查询 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_CheckName"), true); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_CheckName ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_CheckName ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } return true; } //实名认证查询 bool CDataBaseEngineSink::onRequestCheckNameQuery(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTraceService::TraceString(TEXT("CDataBaseEngineSink::onRequestCheckNameQuery"), TraceLevel_Debug); CTimer Start; try { DWORD *pUserID = (DWORD *)pData; //构造参数 m_GameDBAide.ResetParameter(); //输入参数 m_GameDBAide.AddParameter(TEXT("dwUserID"), *pUserID); TCHAR szDescribeString[127]; ZeroMemory(szDescribeString, 127 * sizeof(TCHAR)); //输出参数 m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //执行查询 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_CheckName_Query"), true); //结果处理 DBR_GR_GetCheckName Ret; ZeroMemory(&Ret, sizeof(DBR_GR_GetCheckName)); Ret.dwUserID = *pUserID; Ret.dwSocket = dwContextID; if (lResultCode == DB_SUCCESS) { if (m_GameDBModule->IsRecordsetEnd() == false) { Ret.lResultCode = 1; m_GameDBAide.GetValue_String(TEXT("Name"), Ret.userName, 20); Ret.userName[20] = 0; m_GameDBAide.GetValue_String(TEXT("IDCard"), Ret.userCard, 18); Ret.userName[18] = 0; m_GameDBAide.GetValue_String(TEXT("iphoneNum"), Ret.userPhoneNum, 11); Ret.userName[11] = 0; m_GameDBAide.GetValue_String(TEXT("Addr"), Ret.userAddr, 128); Ret.userAddr[127] = 0; } } else { Ret.lResultCode = 0; CDBVarValue DBVarValue; m_GameDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue); _sntprintf(Ret.strErrorDescribe, 127, TEXT("%s"), static_cast(DBVarValue.bstrVal)); } m_pIDataBaseEngineEvent->OnEventDataBaseResult(SUB_GR_USER_CHECK_NAME_QUERY, dwContextID, &Ret, sizeof(DBR_GR_GetCheckName)); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_CheckName_Query ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_CheckName_Query ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } return true; } //手机重复绑定查询 bool CDataBaseEngineSink::onRequestGetVerifCode(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTraceService::TraceString(TEXT("CDataBaseEngineSink::onRequestGetVerifCode"), TraceLevel_Debug); CTimer Start; try { CMD_GR_GetVerifCode *pGetVerifCode = (CMD_GR_GetVerifCode *)pData; //构造参数 m_GameDBAide.ResetParameter(); //输入参数 m_GameDBAide.AddParameter(TEXT("IphoneNum"), pGetVerifCode->PhoneNum); TCHAR szDescribeString[127]; ZeroMemory(szDescribeString, 127 * sizeof(TCHAR)); //输出参数 m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //执行查询 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_GetVerifCode"), true); CDBVarValue DBVarValue; m_GameDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue); _sntprintf(szDescribeString, 127, TEXT("%s"), static_cast(DBVarValue.bstrVal)); memcpy(pGetVerifCode->szDescribeString, szDescribeString, sizeof(szDescribeString)); pGetVerifCode->IsRepeat = lResultCode; m_pIDataBaseEngineEvent->OnEventDataBaseResult(SUB_GR_USER_GET_VERIF_CODE, dwContextID, pGetVerifCode, sizeof(CMD_GR_GetVerifCode)); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_GetVerifCode ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_GetVerifCode ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } return true; } //手机号码绑定查询 bool CDataBaseEngineSink::onRequestCheckIphoneQuery(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTraceService::TraceString(TEXT("CDataBaseEngineSink::onRequestCheckIphoneQuery"), TraceLevel_Debug); CTimer Start; try { DWORD *pUserID = (DWORD *)pData; //构造参数 m_GameDBAide.ResetParameter(); //输入参数 m_GameDBAide.AddParameter(TEXT("dwUserID"), *pUserID); TCHAR szDescribeString[127]; ZeroMemory(szDescribeString, 127 * sizeof(TCHAR)); //输出参数 m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //执行查询 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_CheckIphone_Query"), true); //结果处理 CMD_GR_CheckIphone_Query Ret; ZeroMemory(&Ret, sizeof(CMD_GR_CheckIphone_Query)); //Ret.dwUserID = *pUserID; //Ret.dwSocket = dwContextID; if (lResultCode == DB_SUCCESS) { if (m_GameDBModule->IsRecordsetEnd() == false) { Ret.IsBingNum = 1; m_GameDBAide.GetValue_String(TEXT("iphoneNum"), Ret.PhoneNum, 11); Ret.PhoneNum[11] = 0; Ret.dwCurrency = m_GameDBAide.GetValue_WORD(TEXT("Currency")); Ret.IsBingXianLiao = m_GameDBAide.GetValue_BYTE(TEXT("IsXianLiao")); } } else { Ret.IsBingNum = 0; CDBVarValue DBVarValue; m_GameDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue); Ret.dwCurrency = m_GameDBAide.GetValue_WORD(TEXT("Currency")); Ret.IsBingXianLiao = m_GameDBAide.GetValue_BYTE(TEXT("IsXianLiao")); _sntprintf(szDescribeString, 127, TEXT("%s"), static_cast(DBVarValue.bstrVal)); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(616)) { //提示消息 CTraceService::TraceString(szDescribeString, TraceLevel_Normal); } } m_pIDataBaseEngineEvent->OnEventDataBaseResult(SUB_GR_USER_CHECK_IPHONE_QUERY, dwContextID, &Ret, sizeof(CMD_GR_CheckIphone_Query)); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_CheckIphone_Query ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_CheckIphone_Query ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } return true; } //手机号码绑定 bool CDataBaseEngineSink::onRequestCheckIphone(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTraceService::TraceString(TEXT("CDataBaseEngineSink::onRequestCheckIphone"), TraceLevel_Debug); CTimer Start; try { DBR_GR_GetCheckIphone *pUserID = (DBR_GR_GetCheckIphone *)pData; //构造参数 m_GameDBAide.ResetParameter(); //输入参数 m_GameDBAide.AddParameter(TEXT("UserID"), pUserID->dwUserID); m_GameDBAide.AddParameter(TEXT("IphoneNum"), pUserID->PhoneNum); m_GameDBAide.AddParameter(TEXT("VerfCode"), pUserID->VerfCode); TCHAR szDescribeString[127]; ZeroMemory(szDescribeString, 127 * sizeof(TCHAR)); //输出参数 m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //执行查询 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_CheckIphone"), true); //结果处理 CMD_GR_CheckIphone Ret; ZeroMemory(&Ret, sizeof(CMD_GR_CheckIphone)); if (lResultCode == DB_SUCCESS) { if (m_GameDBModule->IsRecordsetEnd() == false) { Ret.IsBingNum = 1; Ret.dwCurrency = m_GameDBAide.GetValue_WORD(TEXT("Currency")); _sntprintf(Ret.PhoneNum, 11, TEXT("%s"), pUserID->PhoneNum); Ret.PhoneNum[11] = 0; } } else if (lResultCode == 2) { Ret.IsBingNum = 1; Ret.dwCurrency = m_GameDBAide.GetValue_WORD(TEXT("Currency")); _sntprintf(Ret.PhoneNum, 11, TEXT("%s"), pUserID->PhoneNum); Ret.PhoneNum[11] = 0; } else { Ret.IsBingNum = 0; CDBVarValue DBVarValue; m_GameDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue); _sntprintf(szDescribeString, 127, TEXT("%s"), static_cast(DBVarValue.bstrVal)); CTraceService::TraceString(szDescribeString, TraceLevel_Warning); _sntprintf(Ret.PhoneNum, 11, TEXT("%s"), szDescribeString); Ret.PhoneNum[11] = 0; } m_pIDataBaseEngineEvent->OnEventDataBaseResult(SUB_GR_USER_CHECK_IPHONE, dwContextID, &Ret, sizeof(CMD_GR_CheckIphone)); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_CheckIphone ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_CheckIphone ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } return true; } //闲聊绑定 bool CDataBaseEngineSink::onRequestCheckXianLiao(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTraceService::TraceString(TEXT("CDataBaseEngineSink::onRequestCheckIphone"), TraceLevel_Debug); CTimer Start; try { DBR_GR_GetCheckXianLiao *pUserID = (DBR_GR_GetCheckXianLiao *)pData; //构造参数 m_GameDBAide.ResetParameter(); //输入参数 m_GameDBAide.AddParameter(TEXT("UserID"), pUserID->dwUserID); m_GameDBAide.AddParameter(TEXT("UserOpenID"), pUserID->OpenID); TCHAR szDescribeString[127]; ZeroMemory(szDescribeString, 127 * sizeof(TCHAR)); //输出参数 m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //执行查询 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_CheckXianLiao"), true); //结果处理 CMD_GR_CheckIphone Ret; ZeroMemory(&Ret, sizeof(CMD_GR_CheckIphone)); if (lResultCode == DB_SUCCESS) { if (m_GameDBModule->IsRecordsetEnd() == false) { Ret.IsBingNum = 1; Ret.dwCurrency = m_GameDBAide.GetValue_WORD(TEXT("Currency")); } } else if (lResultCode == 2) { Ret.IsBingNum = 1; Ret.dwCurrency = m_GameDBAide.GetValue_WORD(TEXT("Currency")); } else { Ret.IsBingNum = 0; CDBVarValue DBVarValue; m_GameDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue); _sntprintf(szDescribeString, 127, TEXT("%s"), static_cast(DBVarValue.bstrVal)); CTraceService::TraceString(szDescribeString, TraceLevel_Warning); _sntprintf(Ret.PhoneNum, 11, TEXT("%s"), szDescribeString); } m_pIDataBaseEngineEvent->OnEventDataBaseResult(SUB_GR_USER_CHECK_IPHONE, dwContextID, &Ret, sizeof(CMD_GR_CheckIphone)); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_CheckXianLiao ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_CheckXianLiao ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } return true; } //手机登录 bool CDataBaseEngineSink::OnRequestLogonMobile(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestLogonMobile"), TraceLevel_Debug); //执行查询 DBR_GR_LogonMobile * pLogonMobile = (DBR_GR_LogonMobile *)pData; dwUserID = pLogonMobile->dwUserID; CTimer Start; try { //效验参数 ASSERT(wDataSize == sizeof(DBR_GR_LogonMobile)); if (wDataSize != sizeof(DBR_GR_LogonMobile)) return false; //转化地址 TCHAR szClientAddr[16] = TEXT(""); BYTE * pClientAddr = (BYTE *)&pLogonMobile->dwClientAddr; _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]); //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@dwUserID"), pLogonMobile->dwUserID); m_GameDBAide.AddParameter(TEXT("@strPassword"), pLogonMobile->szPassword); m_GameDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr); m_GameDBAide.AddParameter(TEXT("@strMachineID"), pLogonMobile->szMachineID); m_GameDBAide.AddParameter(TEXT("@wKindID"), m_pGameServiceOption->wKindID); m_GameDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID); m_GameDBAide.AddParameter(TEXT("@dX"), pLogonMobile->dX); m_GameDBAide.AddParameter(TEXT("@dY"), pLogonMobile->dY); m_GameDBAide.AddParameter(TEXT("@szChengShi"), pLogonMobile->szChengShi); //比赛参数 //if ((m_pGameServiceOption->wServerType&GAME_GENRE_MATCH) != 0) //{ // m_GameDBAide.AddParameter(TEXT("@dwMatchID"), pLogonMobile->dwMatchID); // m_GameDBAide.AddParameter(TEXT("@dwMatchNO"), pLogonMobile->dwMatchNO); //} //输出参数 m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), m_LogonFailure.szDescribeString, sizeof(m_LogonFailure.szDescribeString), adParamOutput); //执行查询 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_EfficacyMobile"), true); //用户信息 ZeroMemory(&m_LogonSuccess, sizeof(m_LogonSuccess)); lstrcpyn(m_LogonSuccess.szPassword, pLogonMobile->szPassword, CountArray(m_LogonSuccess.szPassword)); lstrcpyn(m_LogonSuccess.szMachineID, pLogonMobile->szMachineID, CountArray(m_LogonSuccess.szMachineID)); m_LogonSuccess.cbDeviceType = pLogonMobile->cbDeviceType; m_LogonSuccess.wBehaviorFlags = pLogonMobile->wBehaviorFlags; m_LogonSuccess.wPageTableCount = pLogonMobile->wPageTableCount; m_LogonSuccess.dX = pLogonMobile->dX; m_LogonSuccess.dY = pLogonMobile->dY; _sntprintf(m_LogonSuccess.szChengShi, CountArray(m_LogonSuccess.szChengShi), TEXT("%s"), pLogonMobile->szChengShi); //结果处理 CDBVarValue DBVarValue; m_GameDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue); OnLogonDisposeResult(dwContextID, lResultCode, CW2CT(DBVarValue.bstrVal), true, pLogonMobile->cbDeviceType, pLogonMobile->wBehaviorFlags, pLogonMobile->wPageTableCount); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_EfficacyMobile ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //错误信息 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); //错误处理 OnLogonDisposeResult(dwContextID, DB_ERROR, TEXT("由于数据库操作异常,请您稍后重试或选择另一服务器登录!"), true); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_EfficacyMobile ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } return true; } //游戏写临时分记录 bool CDataBaseEngineSink::OnRequestWriteGameTempScoreRecord(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestWriteGameTempScoreRecord"), TraceLevel_Debug); //请求处理 DBR_GR_WriteGameTemporaryScore * pWriteGameScore = (DBR_GR_WriteGameTemporaryScore *)pData; dwUserID = pWriteGameScore->dwUserID; CTimer Start; try { //效验参数 ASSERT(wDataSize == sizeof(DBR_GR_WriteGameTemporaryScore)); if (wDataSize != sizeof(DBR_GR_WriteGameTemporaryScore)) return false; //转化地址 //TCHAR szClientAddr[16] = TEXT(""); //BYTE * pClientAddr = (BYTE *)&pWriteGameScore->dwClientAddr; //_sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]); //构造参数 m_GameDBAide.ResetParameter(); //用户信息 m_GameDBAide.AddParameter(TEXT("@dwUserID"), pWriteGameScore->dwUserID); //变更成绩 //m_GameDBAide.AddParameter(TEXT("@lScore"), pWriteGameScore->lScore); //m_GameDBAide.AddParameter(TEXT("@lWinCount"), pWriteGameScore->dwWinCount); //m_GameDBAide.AddParameter(TEXT("@lLostCount"), pWriteGameScore->dwLostCount); //m_GameDBAide.AddParameter(TEXT("@dwPlayTimeCount"), pWriteGameScore->dwPlayTimeCount); ////属性信息 //m_GameDBAide.AddParameter(TEXT("@wKindID"), m_pGameServiceOption->wKindID); //m_GameDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID); //m_GameDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr); //执行查询 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_WriteGameTemporaryScoreRecord"), false); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 TemporaryScoreRecord ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_WriteGameTemporaryScoreRecord ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return false; } return true; } //获取每日临时分排行榜 bool CDataBaseEngineSink::OnRequestGetGameTempScoreRecordRankList(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetGameTempScoreRecordRankList"), TraceLevel_Debug); CTimer Start; try { //构造参数 m_GameDBAide.ResetParameter(); SYSTEMTIME nowTime; CTime::GetCurrentTime().GetAsSystemTime(nowTime); //获取当前时间 m_GameDBAide.AddParameter(TEXT("@queryDate"), nowTime); //获取前100名玩家 m_GameDBAide.AddParameter(TEXT("@wNum"), 100); //执行查询 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_GetGameTemporaryScoreRecords"), true); CMD_GR_USER_GET_GAME_TEMP_SCORE_RANKLIST_RESULT resp; resp.wRankListCount = m_GameDBModule->GetRecordCount(); int totalSize = resp.wRankListCount * sizeof(tagUserRankListInfo) + sizeof(CMD_GR_USER_GET_GAME_TEMP_SCORE_RANKLIST_RESULT); char* data = new char[totalSize]; CopyMemory(data, &resp, sizeof(resp)); int offset = sizeof(CMD_GR_USER_GET_GAME_TEMP_SCORE_RANKLIST_RESULT); while (m_GameDBModule->IsRecordsetEnd() == false) { tagUserRankListInfo info; ZeroMemory(&info, sizeof(info)); info.dwUserID = m_GameDBAide.GetValue_DWORD(TEXT("UserID")); m_GameDBAide.GetValue_String(TEXT("NickName"), info.szNickName, LEN_NICKNAME); m_GameDBAide.GetValue_String(TEXT("HeadUrl"), info.szHeadUrl, LEN_HEAD_URL); info.lScore = m_GameDBAide.GetValue_INT(TEXT("TempScoreChange")); info.wWinCount = m_GameDBAide.GetValue_WORD(TEXT("WinCount")); info.wLostCount = m_GameDBAide.GetValue_WORD(TEXT("LostCount")); CopyMemory(data + offset, &info, sizeof(tagUserRankListInfo)); offset += sizeof(tagUserRankListInfo); m_GameDBModule->MoveToNext(); } m_pIDataBaseEngineEvent->OnEventDataBaseResult(SUB_GR_USER_GET_GAME_TEMP_SCORE_RANKLIST_RESULT, dwContextID, data, totalSize); //内存修改 SafeDeleteArray(data); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_GetGameTemporaryScoreRecords ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_GetGameTemporaryScoreRecords ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return false; } return true; } //游戏写分 bool CDataBaseEngineSink::OnRequestWriteGameScore(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestWriteGameScore"), TraceLevel_Debug); //请求处理 DBR_GR_WriteGameScore * pWriteGameScore = (DBR_GR_WriteGameScore *)pData; dwUserID = pWriteGameScore->dwUserID; CTimer Start; try { //效验参数 ASSERT(wDataSize == sizeof(DBR_GR_WriteGameScore)); if (wDataSize != sizeof(DBR_GR_WriteGameScore)) return false; //转化地址 TCHAR szClientAddr[16] = TEXT(""); BYTE * pClientAddr = (BYTE *)&pWriteGameScore->dwClientAddr; _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]); //构造参数 m_GameDBAide.ResetParameter(); //用户信息 m_GameDBAide.AddParameter(TEXT("@dwUserID"), pWriteGameScore->dwUserID); m_GameDBAide.AddParameter(TEXT("@dwDBQuestID"), pWriteGameScore->dwDBQuestID); m_GameDBAide.AddParameter(TEXT("@dwInoutIndex"), pWriteGameScore->dwInoutIndex); //变更成绩 m_GameDBAide.AddParameter(TEXT("@lScore"), pWriteGameScore->VariationInfo.lScore); m_GameDBAide.AddParameter(TEXT("@lGrade"), pWriteGameScore->VariationInfo.lGrade); m_GameDBAide.AddParameter(TEXT("@lInsure"), pWriteGameScore->VariationInfo.lInsure); m_GameDBAide.AddParameter(TEXT("@lRevenue"), pWriteGameScore->VariationInfo.lRevenue); m_GameDBAide.AddParameter(TEXT("@lWinCount"), pWriteGameScore->VariationInfo.dwWinCount); m_GameDBAide.AddParameter(TEXT("@lLostCount"), pWriteGameScore->VariationInfo.dwLostCount); m_GameDBAide.AddParameter(TEXT("@lDrawCount"), pWriteGameScore->VariationInfo.dwDrawCount); m_GameDBAide.AddParameter(TEXT("@lFleeCount"), pWriteGameScore->VariationInfo.dwFleeCount); m_GameDBAide.AddParameter(TEXT("@lUserMedal"), pWriteGameScore->VariationInfo.lIngot); m_GameDBAide.AddParameter(TEXT("@lExperience"), pWriteGameScore->VariationInfo.dwExperience); m_GameDBAide.AddParameter(TEXT("@lLoveLiness"), pWriteGameScore->VariationInfo.lLoveLiness); m_GameDBAide.AddParameter(TEXT("@dwPlayTimeCount"), pWriteGameScore->VariationInfo.dwPlayTimeCount); //任务参数 m_GameDBAide.AddParameter(TEXT("@cbTaskForward"), pWriteGameScore->bTaskForward); //比赛参数 if ((m_pGameServiceOption->wServerType&GAME_GENRE_MATCH) != 0) { //比赛信息 m_GameDBAide.AddParameter(TEXT("@dwMatchID"), pWriteGameScore->dwMatchID); m_GameDBAide.AddParameter(TEXT("@dwMatchNo"), pWriteGameScore->dwMatchNO); } //属性信息 m_GameDBAide.AddParameter(TEXT("@wKindID"), m_pGameServiceOption->wKindID); m_GameDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID); m_GameDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr); //执行查询 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_WriteGameScore"), false); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_WriteGameScore ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_WriteGameScore ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return false; } return true; } //离开房间 bool CDataBaseEngineSink::OnRequestLeaveGameServer(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestLeaveGameServer"), TraceLevel_Debug); //请求处理 DBR_GR_LeaveGameServer * pLeaveGameServer = (DBR_GR_LeaveGameServer *)pData; dwUserID = pLeaveGameServer->dwUserID; CTimer Start; try { //效验参数 ASSERT(wDataSize == sizeof(DBR_GR_LeaveGameServer)); if (wDataSize != sizeof(DBR_GR_LeaveGameServer)) return false; //转化地址 TCHAR szClientAddr[16] = TEXT(""); BYTE * pClientAddr = (BYTE *)&pLeaveGameServer->dwClientAddr; _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]); //构造参数 m_GameDBAide.ResetParameter(); //用户信息 m_GameDBAide.AddParameter(TEXT("@dwUserID"), pLeaveGameServer->dwUserID); m_GameDBAide.AddParameter(TEXT("@dwOnLineTimeCount"), pLeaveGameServer->dwOnLineTimeCount); //系统信息 m_GameDBAide.AddParameter(TEXT("@dwInoutIndex"), pLeaveGameServer->dwInoutIndex); m_GameDBAide.AddParameter(TEXT("@dwLeaveReason"), pLeaveGameServer->dwLeaveReason); //记录成绩 m_GameDBAide.AddParameter(TEXT("@lRecordScore"), pLeaveGameServer->RecordInfo.lScore); m_GameDBAide.AddParameter(TEXT("@lRecordGrade"), pLeaveGameServer->RecordInfo.lGrade); m_GameDBAide.AddParameter(TEXT("@lRecordInsure"), pLeaveGameServer->RecordInfo.lInsure); m_GameDBAide.AddParameter(TEXT("@lRecordRevenue"), pLeaveGameServer->RecordInfo.lRevenue); m_GameDBAide.AddParameter(TEXT("@lRecordWinCount"), pLeaveGameServer->RecordInfo.dwWinCount); m_GameDBAide.AddParameter(TEXT("@lRecordLostCount"), pLeaveGameServer->RecordInfo.dwLostCount); m_GameDBAide.AddParameter(TEXT("@lRecordDrawCount"), pLeaveGameServer->RecordInfo.dwDrawCount); m_GameDBAide.AddParameter(TEXT("@lRecordFleeCount"), pLeaveGameServer->RecordInfo.dwFleeCount); m_GameDBAide.AddParameter(TEXT("@lRecordUserMedal"), pLeaveGameServer->RecordInfo.lIngot); m_GameDBAide.AddParameter(TEXT("@lRecordExperience"), pLeaveGameServer->RecordInfo.dwExperience); m_GameDBAide.AddParameter(TEXT("@lRecordLoveLiness"), pLeaveGameServer->RecordInfo.lLoveLiness); m_GameDBAide.AddParameter(TEXT("@dwRecordPlayTimeCount"), pLeaveGameServer->RecordInfo.dwPlayTimeCount); //变更成绩 m_GameDBAide.AddParameter(TEXT("@lVariationScore"), pLeaveGameServer->VariationInfo.lScore); m_GameDBAide.AddParameter(TEXT("@lVariationGrade"), pLeaveGameServer->VariationInfo.lGrade); m_GameDBAide.AddParameter(TEXT("@lVariationInsure"), pLeaveGameServer->VariationInfo.lInsure); m_GameDBAide.AddParameter(TEXT("@lVariationRevenue"), pLeaveGameServer->VariationInfo.lRevenue); m_GameDBAide.AddParameter(TEXT("@lVariationWinCount"), pLeaveGameServer->VariationInfo.dwWinCount); m_GameDBAide.AddParameter(TEXT("@lVariationLostCount"), pLeaveGameServer->VariationInfo.dwLostCount); m_GameDBAide.AddParameter(TEXT("@lVariationDrawCount"), pLeaveGameServer->VariationInfo.dwDrawCount); m_GameDBAide.AddParameter(TEXT("@lVariationFleeCount"), pLeaveGameServer->VariationInfo.dwFleeCount); m_GameDBAide.AddParameter(TEXT("@lVariationUserMedal"), pLeaveGameServer->VariationInfo.lIngot); m_GameDBAide.AddParameter(TEXT("@lVariationExperience"), pLeaveGameServer->VariationInfo.dwExperience); m_GameDBAide.AddParameter(TEXT("@lVariationLoveLiness"), pLeaveGameServer->VariationInfo.lLoveLiness); m_GameDBAide.AddParameter(TEXT("@dwVariationPlayTimeCount"), pLeaveGameServer->VariationInfo.dwPlayTimeCount); //其他参数 m_GameDBAide.AddParameter(TEXT("@wKindID"), m_pGameServiceOption->wKindID); m_GameDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID); m_GameDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr); m_GameDBAide.AddParameter(TEXT("@strMachineID"), pLeaveGameServer->szMachineID); //执行查询 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_LeaveGameServer"), false); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_LeaveGameServer ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_LeaveGameServer ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return false; } return true; } //游戏记录 bool CDataBaseEngineSink::OnRequestGameScoreRecord(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGameScoreRecord"), TraceLevel_Debug); CTimer Start; try { //变量定义 DBR_GR_GameScoreRecordEx * pGameScoreRecord = (DBR_GR_GameScoreRecordEx *)pData; dwUserID = INVALID_DWORD; //效验参数 ASSERT(wDataSize <= (sizeof(DBR_GR_GameScoreRecord) + pGameScoreRecord->wRePlayRecordSize)); ASSERT(wDataSize >= (sizeof(DBR_GR_GameScoreRecord) - sizeof(pGameScoreRecord->GameScoreRecord))); ASSERT(wDataSize == (sizeof(DBR_GR_GameScoreRecord) - sizeof(pGameScoreRecord->GameScoreRecord) + pGameScoreRecord->wRecordCount * sizeof(pGameScoreRecord->GameScoreRecord[0]) + pGameScoreRecord->wRePlayRecordSize)); //效验参数 if (wDataSize > (sizeof(DBR_GR_GameScoreRecord) + pGameScoreRecord->wRePlayRecordSize)) return false; if (wDataSize < (sizeof(DBR_GR_GameScoreRecord) - sizeof(pGameScoreRecord->GameScoreRecord))) return false; if (wDataSize != (sizeof(DBR_GR_GameScoreRecord) - sizeof(pGameScoreRecord->GameScoreRecord) + pGameScoreRecord->wRecordCount * sizeof(pGameScoreRecord->GameScoreRecord[0]) + pGameScoreRecord->wRePlayRecordSize)) return false; //房间信息 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@wKindID"), m_pGameServiceOption->wKindID); m_GameDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID); //桌子信息 m_GameDBAide.AddParameter(TEXT("@wTableID"), pGameScoreRecord->wTableID); m_GameDBAide.AddParameter(TEXT("@wUserCount"), pGameScoreRecord->wUserCount); m_GameDBAide.AddParameter(TEXT("@wAndroidCount"), pGameScoreRecord->wAndroidCount); //税收损耗 m_GameDBAide.AddParameter(TEXT("@lWasteCount"), pGameScoreRecord->lWasteCount); m_GameDBAide.AddParameter(TEXT("@lRevenueCount"), pGameScoreRecord->lRevenueCount); //统计信息 m_GameDBAide.AddParameter(TEXT("@dwUserMemal"), pGameScoreRecord->UserMemal); m_GameDBAide.AddParameter(TEXT("@dwPlayTimeCount"), pGameScoreRecord->dwPlayTimeCount); //时间信息 m_GameDBAide.AddParameter(TEXT("@SystemTimeStart"), pGameScoreRecord->SystemTimeStart); m_GameDBAide.AddParameter(TEXT("@SystemTimeConclude"), pGameScoreRecord->SystemTimeConclude); m_GameDBAide.AddParameter(TEXT("@wParentID"), pGameScoreRecord->wPrivateTableParentNodeID); m_GameDBAide.AddParameter(TEXT("@bUpdateParent"), pGameScoreRecord->cbUpdateParent); m_GameDBAide.AddParameter(TEXT("@szPrivateTableID"), pGameScoreRecord->szPrivateTableID); //执行查询 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_RecordDrawInfo"), true); //写入记录 if (lResultCode == DB_SUCCESS) { //获取标识 DWORD dwDrawID = m_GameDBAide.GetValue_DWORD(TEXT("DrawID")); if (pGameScoreRecord->wRePlayRecordSize > 0) { //房间信息 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@DrawID"), dwDrawID); m_GameDBAide.AddParameter(TEXT("@ReplayRecordSize"), pGameScoreRecord->wRePlayRecordSize); WORD wHeadSize = sizeof(DBR_GR_GameScoreRecord) - sizeof(pGameScoreRecord->GameScoreRecord); WORD wDataSize = sizeof(pGameScoreRecord->GameScoreRecord[0])*pGameScoreRecord->wRecordCount; char* pReplayRecordData = (char*)pData + wHeadSize + wDataSize; //CMD_GR_ReplayRecordResp2* pReq = (CMD_GR_ReplayRecordResp2*)pReplayRecordData; //变量定义 SAFEARRAYBOUND SafeArrayBound; ZeroMemory(&SafeArrayBound, sizeof(SafeArrayBound)); //设置变量 SafeArrayBound.lLbound = 0L; SafeArrayBound.cElements = pGameScoreRecord->wRePlayRecordSize; SAFEARRAY * pSafeArray = SafeArrayCreate(VT_UI1, 1, &SafeArrayBound); //创建数组 for (LONG nIndex = 0; nIndex < pGameScoreRecord->wRePlayRecordSize; nIndex++) SafeArrayPutElement(pSafeArray, &nIndex, pReplayRecordData + nIndex); //设置变量 VARIANT VarChunk; VarChunk.parray = pSafeArray; VarChunk.vt = VT_ARRAY | VT_UI1; ASSERT(m_GameDBModule.GetInterface() != NULL); IDataBase * pIDataBase = m_GameDBModule.GetInterface(); pIDataBase->AddParameter(TEXT("@ReplayRecord"), adLongVarBinary, adParamInput, pGameScoreRecord->wRePlayRecordSize, CDBVarValue(VarChunk)); //执行查询 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_SaveGameReplay"), false); } //写入记录 for (WORD i = 0; i < pGameScoreRecord->wRecordCount; i++) { //当玩法为2人玩法的时候,且数据相同时,就过滤一下战绩存储 if (i==1 && pGameScoreRecord->GameScoreRecord[1].dwUserID == pGameScoreRecord->GameScoreRecord[2].dwUserID)continue; //重置参数 m_GameDBAide.ResetParameter(); //房间信息 m_GameDBAide.AddParameter(TEXT("@dwDrawID"), dwDrawID); m_GameDBAide.AddParameter(TEXT("@dwUserID"), pGameScoreRecord->GameScoreRecord[i].dwUserID); m_GameDBAide.AddParameter(TEXT("@wChairID"), pGameScoreRecord->GameScoreRecord[i].wChairID); TCHAR szBuffer[128] = { 0 }; ZeroMemory(szBuffer, 128 * sizeof(TCHAR)); int iRet = BASE64_Encode((const BYTE*)pGameScoreRecord->GameScoreRecord[i].szUserName, 32, szBuffer); if (iRet < 0) { ZeroMemory(szBuffer, 128 * sizeof(TCHAR)); _sntprintf(szBuffer, 128, TEXT("%s"), TEXT("麻将高手")); } m_GameDBAide.AddParameter(TEXT("@UserName"), szBuffer); //用户信息 m_GameDBAide.AddParameter(TEXT("@dwDBQuestID"), pGameScoreRecord->GameScoreRecord[i].dwDBQuestID); m_GameDBAide.AddParameter(TEXT("@dwInoutIndex"), pGameScoreRecord->GameScoreRecord[i].dwInoutIndex); //成绩信息 m_GameDBAide.AddParameter(TEXT("@lScore"), pGameScoreRecord->GameScoreRecord[i].lScore); m_GameDBAide.AddParameter(TEXT("@lGrade"), pGameScoreRecord->GameScoreRecord[i].lGrade); m_GameDBAide.AddParameter(TEXT("@lRevenue"), pGameScoreRecord->GameScoreRecord[i].lRevenue); m_GameDBAide.AddParameter(TEXT("@dwUserMedal"), pGameScoreRecord->GameScoreRecord[i].dwUserMemal); m_GameDBAide.AddParameter(TEXT("@dwPlayTimeCount"), pGameScoreRecord->GameScoreRecord[i].dwPlayTimeCount); m_GameDBAide.AddParameter(TEXT("@bUpdateParent"), pGameScoreRecord->cbUpdateParent); m_GameDBAide.AddParameter(TEXT("@Head"), pGameScoreRecord->GameScoreRecord[i].szHeadImg); //执行查询 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_RecordDrawScore"), false); } //分数写入俱乐部 if (pGameScoreRecord->cbUpdateParent == 0 && pGameScoreRecord->wTableType == 1) { //重置参数 m_GameDBAide.ResetParameter(); int Temp[4] = { 0 }; for (BYTE i = 0; i < pGameScoreRecord->wRecordCount; i++) { Temp[i] = pGameScoreRecord->GameScoreRecord[i].lScore; } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(302)) { CString csTest1; csTest1.Format(_T("玩家结算分数pGameScoreRecord->GameScoreRecord.lScore1 %d %d %d %d %d"), _ttol(pGameScoreRecord->szPrivateTableID), Temp[0], Temp[1], Temp[2], Temp[3]); //提示消息 CTraceService::TraceString(csTest1, TraceLevel_Normal); } //写入记录 m_GameDBAide.AddParameter(TEXT("@PrivateTableID"), _ttol(pGameScoreRecord->szPrivateTableID)); m_GameDBAide.AddParameter(TEXT("@lScore1"), Temp[0]); m_GameDBAide.AddParameter(TEXT("@lScore2"), Temp[1]); m_GameDBAide.AddParameter(TEXT("@lScore3"), Temp[2]); m_GameDBAide.AddParameter(TEXT("@lScore4"), Temp[3]); //执行查询 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_RecordDrawScore"), false); } if (pGameScoreRecord->wPrivateTableParentNodeID == 0) {//如果是父节点房间,需要返回父节点房间号 DBR_GR_GameScoreRecordResult ret; ret.wTableID = pGameScoreRecord->wTableID; ret.wPrivateTableParentNodeID = dwDrawID; m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_GameScoreRecord_RESULT, dwContextID, &ret, sizeof(ret)); } } double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_RecordDrawInfo ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); return false; } return true; } bool CDataBaseEngineSink::OnRequestGetUserGameReplayRecord(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTimer Start; CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetUserGameReplayRecord"), TraceLevel_Debug); try { //变量定义 CMD_GR_ReplayRecordReq * pGameScoreRecord = (CMD_GR_ReplayRecordReq *)pData; dwUserID = INVALID_DWORD; //效验参数 ASSERT(wDataSize <= sizeof(CMD_GR_ReplayRecordReq)); //效验参数 if (wDataSize > sizeof(CMD_GR_ReplayRecordReq)) return false; CMD_GR_ReplayRecordReq* pRecord = (CMD_GR_ReplayRecordReq*)pData; //房间信息 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@DrawID"), pRecord->dwRecordID); //执行查询 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_GetGameReplay"), true); //写入记录 if (lResultCode == DB_SUCCESS) { //获取标识 //读取列表 _variant_t VarChunk; m_GameDBAide.GetValue_VarValue(TEXT("ReplayRecordSize"), VarChunk); DWORD wSize = VarChunk; //头像信息 ASSERT(m_GameDBModule.GetInterface() != NULL); IDataBase * pIDataBase = m_GameDBModule.GetInterface(); char* data = new char[wSize]; ZeroMemory(data, wSize); _variant_t VarChunk2; m_GameDBAide.GetValue_VarValue(TEXT("ReplayRecord"), VarChunk2); if (VarChunk2.vt == (VT_ARRAY | VT_UI1)) { char *pBuf = NULL; SafeArrayAccessData(VarChunk2.parray, (void **)&pBuf); memcpy(data, pBuf, wSize); ///复制数据到缓冲区m_pBMPBuffer SafeArrayUnaccessData(VarChunk2.parray); } //CMD_GR_ReplayRecordResp2* pReq = (CMD_GR_ReplayRecordResp2*)data; m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_GET_USER_GAMESCORE_REPLAY_RECORD, dwContextID, data, wSize); //内存修改 SafeDeleteArray(data); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_GetGameReplay ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } } } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_GetGameReplay ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return false; } return true; } //获取游戏记录 bool CDataBaseEngineSink::OnRequestGetUserGameScoreRecords(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetUserGameScoreRecords"), TraceLevel_Debug); CTimer Start; try { //效验参数 ASSERT(wDataSize == sizeof(CMD_GR_GetUserRecordListReq) || wDataSize == sizeof(CMD_GR_GetUserRecordListReqNew)); //效验参数 if (wDataSize != sizeof(CMD_GR_GetUserRecordListReq) && wDataSize != sizeof(CMD_GR_GetUserRecordListReqNew)) return false; DWORD dwP = 0; int iLen1 = sizeof(CMD_GR_GetUserRecordListReqNew); int iLen2 = sizeof(CMD_GR_GetUserRecordListReq); CMD_GR_GetUserRecordListReqNew* pRecord = (CMD_GR_GetUserRecordListReqNew*)pData; //房间信息 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@dwUserID"), pRecord->dwUserID); m_GameDBAide.AddParameter(TEXT("@wKindID"), m_pGameServiceOption->wKindID); m_GameDBAide.AddParameter(TEXT("@wParentID"), pRecord->wParentID); m_GameDBAide.AddParameter(TEXT("@wMinLimit"), pRecord->wLimitIndex); m_GameDBAide.AddParameter(TEXT("@wMaxLimit"), pRecord->wLimitIndex + pRecord->wLimitCount); dwP = pRecord->wParentID; //执行查询 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_GetRecordDrawInfo"), true); //写入记录 if (lResultCode == DB_SUCCESS) { //获取标识 //读取列表 CMD_GR_GetUserScoreRecordListResp records; ZeroMemory(&records, sizeof(CMD_GR_GetUserScoreRecordListResp)); if (dwP == 0) { records.wParentRecordID = dwP; WORD difen = 0; WORD wUserMedal = 0; std::unordered_map DrawID_2_DiFen; //Socket关联UserID //节点 std::vector GameScoreRecord(m_GameDBModule->GetRecordCount()); //m_GameDBModule->MoveToFirst(); int i = 0; while (m_GameDBModule->IsRecordsetEnd() == false) { int iTemp = i; tagGameRecordDrawInfo& grdi = GameScoreRecord[i++]; grdi.dwDrawID = m_GameDBAide.GetValue_DWORD(TEXT("DrawID")); grdi.wTableID = m_GameDBAide.GetValue_WORD(TEXT("TableID")); m_GameDBAide.GetValue_String(TEXT("PrivateTableID"), grdi.szPrivateTableID, LEN_PRIVATE_TABLE_ID); DWORD dTest = m_GameDBAide.GetValue_DWORD(TEXT("UserMedal")); WORD* wpData = (WORD*)&dTest; grdi.wTableID = wpData[1]; grdi.wUserMedal = wpData[0]; difen = grdi.wTableID; DrawID_2_DiFen[grdi.dwDrawID] = difen; wUserMedal = grdi.wUserMedal; GameScoreRecord[iTemp].wTableID = difen; GameScoreRecord[iTemp].wUserMedal = wUserMedal; grdi.wUserCount = m_GameDBAide.GetValue_WORD(TEXT("UserCount")); SYSTEMTIME SystemTimeStart, SystemTimeConclude; m_GameDBAide.GetValue_SystemTime(TEXT("StartTime"), SystemTimeStart); m_GameDBAide.GetValue_SystemTime(TEXT("ConcludeTime"), SystemTimeConclude); CTime StartTime(SystemTimeStart); CTime ConcludeTime(SystemTimeConclude); grdi.SystemTimeStart = StartTime.GetTime(); grdi.SystemTimeConclude = ConcludeTime.GetTime(); grdi.wParentID = m_GameDBAide.GetValue_WORD(TEXT("ParentID")); grdi.wWanFa = m_GameDBAide.GetValue_WORD(TEXT("Waste")); //移动记录 m_GameDBModule->MoveToNext(); } records.wRecordCount = GameScoreRecord.size(); for (int i = 0; i < records.wRecordCount; i++) { tagGameRecordDrawInfo& grdi = GameScoreRecord[i]; m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@DrawID"), grdi.dwDrawID); int j = 0; LONG lResultCode2 = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_GetRecordDrawScore"), true); if (lResultCode2 == DB_SUCCESS) { while (m_GameDBModule->IsRecordsetEnd() == false) { if (j > 3) break; //读取数据 tagGameRecordDrawScore& grds = grdi.GameChairScore[j++]; grds.dwDrawID = m_GameDBAide.GetValue_DWORD(TEXT("DrawID")); grds.dwUserID = m_GameDBAide.GetValue_DWORD(TEXT("UserID")); m_GameDBAide.GetValue_String(TEXT("UserImg"), grds.szHeadImg, 255); CString csTest = grds.szHeadImg; if (csTest == _T("0")) { ZeroMemory(grds.szHeadImg, 256 * sizeof(TCHAR)); } TCHAR szBuffer[128] = { 0 }; ZeroMemory(szBuffer, 128 * sizeof(TCHAR)); m_GameDBAide.GetValue_String(TEXT("UserName"), szBuffer, 128); TCHAR szOutBuffer[128] = { 0 }; ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR)); //解码 int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer); if (iRet == -1) { szBuffer[32] = 0x0; _sntprintf(grds.szUserName, LEN_NICKNAME, TEXT("%s"), szBuffer); } else { szOutBuffer[32] = 0x0; _sntprintf(grds.szUserName, LEN_NICKNAME, TEXT("%s"), szOutBuffer); } grds.wChairID = m_GameDBAide.GetValue_WORD(TEXT("ChairID")); grds.lScore = m_GameDBAide.GetValue_LONGLONG(TEXT("Score")); grds.lGrade = m_GameDBAide.GetValue_WORD(TEXT("Grade")); DWORD dTest = m_GameDBAide.GetValue_DWORD(TEXT("UserMedal")); WORD* wpData = (WORD*)&dTest; auto iter = DrawID_2_DiFen.find(grds.dwDrawID); if (iter == std::end(DrawID_2_DiFen)) { grdi.wTableID = difen; } else { grdi.wTableID = DrawID_2_DiFen[grds.dwDrawID]; } grdi.wUserMedal = wUserMedal; grds.dwPlayTimeCount = m_GameDBAide.GetValue_WORD(TEXT("PlayTimeCount")); //移动记录 m_GameDBModule->MoveToNext(); } } //grdi.wChairCount = j; } DrawID_2_DiFen.clear(); int totalSize = sizeof(CMD_GR_GetUserScoreRecordListResp) + sizeof(tagGameRecordDrawInfo)*GameScoreRecord.size(); char* buff = new char[totalSize]; memcpy(buff, &records, sizeof(WORD) * 2); int offset = sizeof(WORD) * 2; for (tagGameRecordDrawInfo& r : GameScoreRecord) { memcpy(buff + offset, &r, sizeof(tagGameRecordDrawInfo)); offset += sizeof(tagGameRecordDrawInfo); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(4321)) { CString csTest; csTest.Format(_T("【OnRequestGetUserGameScoreRecords】获取战绩长度 ----> %d "), totalSize); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_GET_USER_GAMESCORE_LIST, dwContextID, buff, totalSize); //delete buff; //内存修改 SafeDeleteArray(buff); } else { records.wParentRecordID = 1; //详情 std::vector GameScoreRecord(m_GameDBModule->GetRecordCount()); int i = 0; while (m_GameDBModule->IsRecordsetEnd() == false) { tagGameRecordDrawInfoEx& grdi = GameScoreRecord[i++]; grdi.dwDrawID = m_GameDBAide.GetValue_DWORD(TEXT("DrawID")); grdi.wTableID = m_GameDBAide.GetValue_WORD(TEXT("TableID")); m_GameDBAide.GetValue_String(TEXT("PrivateTableID"), grdi.szPrivateTableID, LEN_PRIVATE_TABLE_ID); DWORD dTest = m_GameDBAide.GetValue_DWORD(TEXT("UserMedal")); grdi.wUserMedal = dTest; grdi.wUserCount = m_GameDBAide.GetValue_WORD(TEXT("UserCount")); grdi.wParentID = 1; grdi.wWanFa = m_GameDBAide.GetValue_WORD(TEXT("Waste")); SYSTEMTIME SystemTimeStart, SystemTimeConclude; m_GameDBAide.GetValue_SystemTime(TEXT("StartTime"), SystemTimeStart); m_GameDBAide.GetValue_SystemTime(TEXT("ConcludeTime"), SystemTimeConclude); CTime StartTime(SystemTimeStart); CTime ConcludeTime(SystemTimeConclude); grdi.SystemTimeStart = StartTime.GetTime(); grdi.SystemTimeConclude = ConcludeTime.GetTime(); //移动记录 m_GameDBModule->MoveToNext(); } records.wRecordCount = GameScoreRecord.size(); for (int i = 0; i < records.wRecordCount; i++) { tagGameRecordDrawInfoEx& grdi = GameScoreRecord[i]; m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@DrawID"), grdi.dwDrawID); int j = 0; LONG lResultCode2 = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_GetRecordDrawScore"), true); if (lResultCode2 == DB_SUCCESS) { while (m_GameDBModule->IsRecordsetEnd() == false) { if (j > 3) break; //读取数据 tagGameRecordDrawScoreEx& grds = grdi.GameChairScore[j++]; grds.dwDrawID = m_GameDBAide.GetValue_DWORD(TEXT("DrawID")); grds.dwUserID = m_GameDBAide.GetValue_DWORD(TEXT("UserID")); TCHAR szBuffer[128] = { 0 }; ZeroMemory(szBuffer, 128 * sizeof(TCHAR)); m_GameDBAide.GetValue_String(TEXT("UserName"), szBuffer, 128); TCHAR szOutBuffer[128] = { 0 }; ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR)); //解码 int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer); if (iRet == -1) { szBuffer[32] = 0x0; _sntprintf(grds.szUserName, LEN_NICKNAME, TEXT("%s"), szBuffer); } else { szOutBuffer[32] = 0x0; _sntprintf(grds.szUserName, LEN_NICKNAME, TEXT("%s"), szOutBuffer); } grds.wChairID = m_GameDBAide.GetValue_WORD(TEXT("ChairID")); grds.lScore = m_GameDBAide.GetValue_LONGLONG(TEXT("Score")); grds.lGrade = m_GameDBAide.GetValue_WORD(TEXT("Grade")); grds.dwUserMedal = m_GameDBAide.GetValue_WORD(TEXT("UserMedal")); grds.dwPlayTimeCount = m_GameDBAide.GetValue_WORD(TEXT("PlayTimeCount")); //移动记录 m_GameDBModule->MoveToNext(); } } //grdi.wChairCount = j; } int totalSize = sizeof(CMD_GR_GetUserScoreRecordListResp) + sizeof(tagGameRecordDrawInfoEx)*GameScoreRecord.size(); char* buff = new char[totalSize]; memcpy(buff, &records, sizeof(WORD) * 2); int offset = sizeof(WORD) * 2; for (tagGameRecordDrawInfoEx& r : GameScoreRecord) { memcpy(buff + offset, &r, sizeof(tagGameRecordDrawInfoEx)); offset += sizeof(tagGameRecordDrawInfoEx); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(4321)) { CString csTest; csTest.Format(_T("【OnRequestGetUserGameScoreRecords】获取战绩长度 ----> %d "), totalSize); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_GET_USER_GAMESCORE_LIST, dwContextID, buff, totalSize); //delete buff; //内存修改 SafeDeleteArray(buff); } } double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_GetRecordDrawInfo ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_GetRecordDrawInfo ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_GetRecordDrawInfo ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } //return false; } return true; } //加载参数 bool CDataBaseEngineSink::OnRequestLoadParameter(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestLoadParameter"), TraceLevel_Debug); CTimer Start; try { //变量定义 DBO_GR_GameParameter GameParameter; ZeroMemory(&GameParameter, sizeof(GameParameter)); //执行查询 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@wKindID"), m_pGameServiceOption->wKindID); m_GameDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID); //执行查询 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_LoadParameter"), true); ZeroMemory(&GameParameter.msParameter, sizeof(MyStructParameter) * 2); //读取信息 if (lResultCode == DB_SUCCESS) { //汇率信息 GameParameter.wMedalRate = 0;// m_GameDBAide.GetValue_WORD(TEXT("MedalRate")); GameParameter.wRevenueRate = 0;//m_GameDBAide.GetValue_WORD(TEXT("RevenueRate")); GameParameter.wExchangeRate = 0;//m_GameDBAide.GetValue_WORD(TEXT("ExchangeRate")); //经验奖励 GameParameter.dwWinExperience = 0;//m_GameDBAide.GetValue_WORD(TEXT("WinExperience")); //版本信息 GameParameter.dwClientVersion = 0;//m_GameDBAide.GetValue_DWORD(TEXT("ClientVersion")); GameParameter.dwServerVersion = 0;//m_GameDBAide.GetValue_DWORD(TEXT("ServerVersion")); m_GameDBModule->MoveToFirst(); while (m_GameDBModule->IsRecordsetEnd() == false) { int idNum = m_GameDBAide.GetValue_DWORD(TEXT("idNum")); if (idNum == 1) { m_GameDBAide.GetValue_String(TEXT("gameTypeCfg"), GameParameter.msParameter[0].szgameTypeCfg, _countof(GameParameter.msParameter[0].szgameTypeCfg)); m_GameDBAide.GetValue_String(TEXT("diJinCfg"), GameParameter.msParameter[0].diJinCfg, _countof(GameParameter.msParameter[0].diJinCfg)); m_GameDBAide.GetValue_String(TEXT("payTypeCfg"), GameParameter.msParameter[0].payTypeCfg, _countof(GameParameter.msParameter[0].payTypeCfg)); m_GameDBAide.GetValue_String(TEXT("juShuCfg"), GameParameter.msParameter[0].juShuCfg, _countof(GameParameter.msParameter[0].juShuCfg)); m_GameDBAide.GetValue_String(TEXT("payCoinCfg"), GameParameter.msParameter[0].payCoinCfg, _countof(GameParameter.msParameter[0].payCoinCfg)); m_GameDBAide.GetValue_String(TEXT("ipLimitCfg"), GameParameter.msParameter[0].ipLimitCfg, _countof(GameParameter.msParameter[0].ipLimitCfg)); m_GameDBAide.GetValue_String(TEXT("defaultDeskCfg"), GameParameter.msParameter[0].defaultDeskCfg, _countof(GameParameter.msParameter[0].defaultDeskCfg)); GameParameter.msParameter[0].idNum = m_GameDBAide.GetValue_DWORD(TEXT("idNum")); } else if (idNum == 2) { m_GameDBAide.GetValue_String(TEXT("gameTypeCfg"), GameParameter.msParameter[1].szgameTypeCfg, _countof(GameParameter.msParameter[1].szgameTypeCfg)); m_GameDBAide.GetValue_String(TEXT("diJinCfg"), GameParameter.msParameter[1].diJinCfg, _countof(GameParameter.msParameter[1].diJinCfg)); m_GameDBAide.GetValue_String(TEXT("payTypeCfg"), GameParameter.msParameter[1].payTypeCfg, _countof(GameParameter.msParameter[1].payTypeCfg)); m_GameDBAide.GetValue_String(TEXT("juShuCfg"), GameParameter.msParameter[1].juShuCfg, _countof(GameParameter.msParameter[1].juShuCfg)); m_GameDBAide.GetValue_String(TEXT("payCoinCfg"), GameParameter.msParameter[1].payCoinCfg, _countof(GameParameter.msParameter[1].payCoinCfg)); m_GameDBAide.GetValue_String(TEXT("ipLimitCfg"), GameParameter.msParameter[1].ipLimitCfg, _countof(GameParameter.msParameter[1].ipLimitCfg)); m_GameDBAide.GetValue_String(TEXT("defaultDeskCfg"), GameParameter.msParameter[1].defaultDeskCfg, _countof(GameParameter.msParameter[1].defaultDeskCfg)); GameParameter.msParameter[1].idNum = m_GameDBAide.GetValue_DWORD(TEXT("idNum")); } else if (3 == idNum) ///modify by yd { m_GameDBAide.GetValue_String(TEXT("gameTypeCfg"), GameParameter.msParameter[2].szgameTypeCfg, _countof(GameParameter.msParameter[2].szgameTypeCfg)); m_GameDBAide.GetValue_String(TEXT("diJinCfg"), GameParameter.msParameter[2].diJinCfg, _countof(GameParameter.msParameter[2].diJinCfg)); m_GameDBAide.GetValue_String(TEXT("payTypeCfg"), GameParameter.msParameter[2].payTypeCfg, _countof(GameParameter.msParameter[2].payTypeCfg)); m_GameDBAide.GetValue_String(TEXT("juShuCfg"), GameParameter.msParameter[2].juShuCfg, _countof(GameParameter.msParameter[2].juShuCfg)); m_GameDBAide.GetValue_String(TEXT("payCoinCfg"), GameParameter.msParameter[2].payCoinCfg, _countof(GameParameter.msParameter[2].payCoinCfg)); m_GameDBAide.GetValue_String(TEXT("ipLimitCfg"), GameParameter.msParameter[2].ipLimitCfg, _countof(GameParameter.msParameter[2].ipLimitCfg)); m_GameDBAide.GetValue_String(TEXT("defaultDeskCfg"), GameParameter.msParameter[2].defaultDeskCfg, _countof(GameParameter.msParameter[2].defaultDeskCfg)); GameParameter.msParameter[2].idNum = m_GameDBAide.GetValue_DWORD(TEXT("idNum")); } else if (4 == idNum) { m_GameDBAide.GetValue_String(TEXT("gameTypeCfg"), GameParameter.msParameter[3].szgameTypeCfg, _countof(GameParameter.msParameter[3].szgameTypeCfg)); m_GameDBAide.GetValue_String(TEXT("diJinCfg"), GameParameter.msParameter[3].diJinCfg, _countof(GameParameter.msParameter[3].diJinCfg)); m_GameDBAide.GetValue_String(TEXT("payTypeCfg"), GameParameter.msParameter[3].payTypeCfg, _countof(GameParameter.msParameter[3].payTypeCfg)); m_GameDBAide.GetValue_String(TEXT("juShuCfg"), GameParameter.msParameter[3].juShuCfg, _countof(GameParameter.msParameter[3].juShuCfg)); m_GameDBAide.GetValue_String(TEXT("payCoinCfg"), GameParameter.msParameter[3].payCoinCfg, _countof(GameParameter.msParameter[3].payCoinCfg)); m_GameDBAide.GetValue_String(TEXT("ipLimitCfg"), GameParameter.msParameter[3].ipLimitCfg, _countof(GameParameter.msParameter[3].ipLimitCfg)); m_GameDBAide.GetValue_String(TEXT("defaultDeskCfg"), GameParameter.msParameter[3].defaultDeskCfg, _countof(GameParameter.msParameter[3].defaultDeskCfg)); GameParameter.msParameter[3].idNum = m_GameDBAide.GetValue_DWORD(TEXT("idNum")); } //移动记录 m_GameDBModule->MoveToNext(); } //发送信息 m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_GAME_PARAMETER, dwContextID, &GameParameter, sizeof(GameParameter)); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_LoadParameter ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_LoadParameter ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return false; } return true; } ////加载列表 //bool CDataBaseEngineSink::OnRequestLoadGameColumn(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) //{ // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestLoadGameColumn"), TraceLevel_Debug); // CTimer Start; // // try // { // //变量定义 // DBO_GR_GameColumnInfo GameColumnInfo; // ZeroMemory(&GameColumnInfo, sizeof(GameColumnInfo)); // // //执行查询 // m_GameDBAide.ResetParameter(); // GameColumnInfo.lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_GameColumnItem"), true); // // //读取信息 // for (WORD i = 0; i < CountArray(GameColumnInfo.ColumnItemInfo); i++) // { // //结束判断 // if (m_GameDBModule->IsRecordsetEnd() == true) break; // // //溢出效验 // ASSERT(GameColumnInfo.cbColumnCount < CountArray(GameColumnInfo.ColumnItemInfo)); // if (GameColumnInfo.cbColumnCount >= CountArray(GameColumnInfo.ColumnItemInfo)) break; // // //读取数据 // GameColumnInfo.cbColumnCount++; // GameColumnInfo.ColumnItemInfo[i].cbColumnWidth = m_GameDBAide.GetValue_BYTE(TEXT("ColumnWidth")); // GameColumnInfo.ColumnItemInfo[i].cbDataDescribe = m_GameDBAide.GetValue_BYTE(TEXT("DataDescribe")); // m_GameDBAide.GetValue_String(TEXT("ColumnName"), GameColumnInfo.ColumnItemInfo[i].szColumnName, CountArray(GameColumnInfo.ColumnItemInfo[i].szColumnName)); // // //移动记录 // m_GameDBModule->MoveToNext(); // } // // //发送信息 // WORD wHeadSize = sizeof(GameColumnInfo) - sizeof(GameColumnInfo.ColumnItemInfo); // WORD wPacketSize = wHeadSize + GameColumnInfo.cbColumnCount * sizeof(GameColumnInfo.ColumnItemInfo[0]); // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_GAME_COLUMN_INFO, dwContextID, &GameColumnInfo, wPacketSize); // // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_GameColumnItem ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return true; // } // catch (IDataBaseException * pIException) // { // //输出错误 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // // //变量定义 // DBO_GR_GameColumnInfo GameColumnInfo; // ZeroMemory(&GameColumnInfo, sizeof(GameColumnInfo)); // // //构造变量 // GameColumnInfo.cbColumnCount = 0L; // GameColumnInfo.lResultCode = pIException->GetExceptionResult(); // // //发送信息 // WORD wPacketSize = sizeof(GameColumnInfo) - sizeof(GameColumnInfo.ColumnItemInfo); // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_GAME_COLUMN_INFO, dwContextID, &GameColumnInfo, wPacketSize); // // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_GameColumnItem ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return false; // } // // return true; //} ////加载机器 //bool CDataBaseEngineSink::OnRequestLoadAndroidUser(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) //{ // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestLoadAndroidUser"), TraceLevel_Debug); // //参数校验 // ASSERT(sizeof(DBR_GR_LoadAndroidUser) == wDataSize); // if (sizeof(DBR_GR_LoadAndroidUser) != wDataSize) return false; // CTimer Start; // try // { // //提取变量 // DBR_GR_LoadAndroidUser * pLoadAndroidUser = (DBR_GR_LoadAndroidUser *)pData; // if (pLoadAndroidUser == NULL) return false; // // //变量定义 // DBO_GR_GameAndroidInfo GameAndroidInfo; // ZeroMemory(&GameAndroidInfo, sizeof(GameAndroidInfo)); // // //设置批次 // GameAndroidInfo.dwBatchID = pLoadAndroidUser->dwBatchID; // // //用户帐户 // m_TreasureDBAide.ResetParameter(); // m_TreasureDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID); // m_TreasureDBAide.AddParameter(TEXT("@dwBatchID"), pLoadAndroidUser->dwBatchID); // m_TreasureDBAide.AddParameter(TEXT("@dwAndroidCount"), pLoadAndroidUser->dwAndroidCount); // // //执行查询 // GameAndroidInfo.lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_LoadAndroidUser"), true); // // //读取信息 // for (WORD i = 0; i < CountArray(GameAndroidInfo.AndroidAccountsInfo); i++) // { // //结束判断 // if (m_TreasureDBModule->IsRecordsetEnd() == true) break; // // //溢出效验 // ASSERT(GameAndroidInfo.wAndroidCount < CountArray(GameAndroidInfo.AndroidAccountsInfo)); // if (GameAndroidInfo.wAndroidCount >= CountArray(GameAndroidInfo.AndroidAccountsInfo)) break; // // //读取数据 // GameAndroidInfo.wAndroidCount++; // GameAndroidInfo.AndroidAccountsInfo[i].dwUserID = m_TreasureDBAide.GetValue_DWORD(TEXT("UserID")); // m_TreasureDBAide.GetValue_String(TEXT("LogonPass"), GameAndroidInfo.AndroidAccountsInfo[i].szPassword, CountArray(GameAndroidInfo.AndroidAccountsInfo[i].szPassword)); // // //移动记录 // m_TreasureDBModule->MoveToNext(); // } // // //发送信息 // WORD wHeadSize = sizeof(GameAndroidInfo) - sizeof(GameAndroidInfo.AndroidAccountsInfo); // WORD wDataSize = GameAndroidInfo.wAndroidCount * sizeof(GameAndroidInfo.AndroidAccountsInfo[0]); // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_GAME_ANDROID_INFO, dwContextID, &GameAndroidInfo, wHeadSize + wDataSize); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_LoadAndroidUser ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return true; // } // catch (IDataBaseException * pIException) // { // //输出错误 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // // //变量定义 // DBO_GR_GameAndroidInfo GameAndroidInfo; // ZeroMemory(&GameAndroidInfo, sizeof(GameAndroidInfo)); // // //构造变量 // GameAndroidInfo.wAndroidCount = 0L; // GameAndroidInfo.lResultCode = DB_ERROR; // // //发送信息 // WORD wHeadSize = sizeof(GameAndroidInfo) - sizeof(GameAndroidInfo.AndroidAccountsInfo); // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_GAME_ANDROID_INFO, dwContextID, &GameAndroidInfo, wHeadSize); // } // // return false; //} // ////加载机器 //bool CDataBaseEngineSink::OnRequestLoadAndroidParameter(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) //{ // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestLoadAndroidParameter"), TraceLevel_Debug); // CTimer Start; // try // { // //变量定义 // DBO_GR_GameAndroidParameter GameAndroidParameter; // ZeroMemory(&GameAndroidParameter, sizeof(GameAndroidParameter)); // // //用户帐户 // m_TreasureDBAide.ResetParameter(); // m_TreasureDBAide.AddParameter(TEXT("@wKindID"), m_pGameServiceAttrib->wKindID); // m_TreasureDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID); // // //执行查询 // GameAndroidParameter.lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_LoadAndroidConfigure"), true); // // //读取信息 // for (WORD i = 0; i < CountArray(GameAndroidParameter.AndroidParameter); i++) // { // //结束判断 // if (m_TreasureDBModule->IsRecordsetEnd() == true) break; // // //溢出效验 // ASSERT(GameAndroidParameter.wParameterCount < CountArray(GameAndroidParameter.AndroidParameter)); // if (GameAndroidParameter.wParameterCount >= CountArray(GameAndroidParameter.AndroidParameter)) break; // // //读取数据 // GameAndroidParameter.wParameterCount++; // GameAndroidParameter.AndroidParameter[i].dwBatchID = m_TreasureDBAide.GetValue_DWORD(TEXT("BatchID")); // GameAndroidParameter.AndroidParameter[i].dwServiceMode = m_TreasureDBAide.GetValue_DWORD(TEXT("ServiceMode")); // GameAndroidParameter.AndroidParameter[i].dwAndroidCount = m_TreasureDBAide.GetValue_DWORD(TEXT("AndroidCount")); // GameAndroidParameter.AndroidParameter[i].dwEnterTime = m_TreasureDBAide.GetValue_DWORD(TEXT("EnterTime")); // GameAndroidParameter.AndroidParameter[i].dwLeaveTime = m_TreasureDBAide.GetValue_DWORD(TEXT("LeaveTime")); // GameAndroidParameter.AndroidParameter[i].lTakeMinScore = m_TreasureDBAide.GetValue_LONGLONG(TEXT("TakeMinScore")); // GameAndroidParameter.AndroidParameter[i].lTakeMaxScore = m_TreasureDBAide.GetValue_LONGLONG(TEXT("TakeMaxScore")); // GameAndroidParameter.AndroidParameter[i].dwEnterMinInterval = m_TreasureDBAide.GetValue_DWORD(TEXT("EnterMinInterval")); // GameAndroidParameter.AndroidParameter[i].dwEnterMaxInterval = m_TreasureDBAide.GetValue_DWORD(TEXT("EnterMaxInterval")); // GameAndroidParameter.AndroidParameter[i].dwLeaveMinInterval = m_TreasureDBAide.GetValue_DWORD(TEXT("LeaveMinInterval")); // GameAndroidParameter.AndroidParameter[i].dwLeaveMaxInterval = m_TreasureDBAide.GetValue_DWORD(TEXT("LeaveMaxInterval")); // GameAndroidParameter.AndroidParameter[i].dwSwitchMinInnings = m_TreasureDBAide.GetValue_DWORD(TEXT("SwitchMinInnings")); // GameAndroidParameter.AndroidParameter[i].dwSwitchMaxInnings = m_TreasureDBAide.GetValue_DWORD(TEXT("SwitchMaxInnings")); // // //移动记录 // m_TreasureDBModule->MoveToNext(); // } // // //发送信息 // WORD wHeadSize = sizeof(GameAndroidParameter) - sizeof(GameAndroidParameter.AndroidParameter); // WORD wDataSize = GameAndroidParameter.wParameterCount * sizeof(GameAndroidParameter.AndroidParameter[0]); // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_GAME_ANDROID_PARAMETER, dwContextID, &GameAndroidParameter, wHeadSize + wDataSize); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_LoadAndroidConfigure ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return true; // } // catch (IDataBaseException * pIException) // { // //输出错误 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // // //变量定义 // DBO_GR_GameAndroidParameter GameAndroidParameter; // ZeroMemory(&GameAndroidParameter, sizeof(GameAndroidParameter)); // // //构造变量 // GameAndroidParameter.wParameterCount = 0L; // GameAndroidParameter.lResultCode = DB_ERROR; // // //发送信息 // WORD wHeadSize = sizeof(GameAndroidParameter) - sizeof(GameAndroidParameter.AndroidParameter); // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_GAME_ANDROID_PARAMETER, dwContextID, &GameAndroidParameter, wHeadSize); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_LoadAndroidConfigure ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // } // // return false; //} // //加载道具 //bool CDataBaseEngineSink::OnRequestLoadGameProperty(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) //{ // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestLoadGameProperty"), TraceLevel_Debug); // CTimer Start; // try // { // //变量定义 // DBO_GR_GamePropertyInfo GamePropertyInfo; // ZeroMemory(&GamePropertyInfo, sizeof(GamePropertyInfo)); // // //构造参数 // m_GameDBAide.ResetParameter(); // m_GameDBAide.AddParameter(TEXT("@wKindID"), m_pGameServiceOption->wKindID); // m_GameDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID); // // //执行查询 // GamePropertyInfo.lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_LoadGameProperty"), true); // // //读取信息 // for (WORD i = 0; i < CountArray(GamePropertyInfo.PropertyInfo); i++) // { // //结束判断 // if (m_GameDBModule->IsRecordsetEnd() == true) break; // // //溢出效验 // ASSERT(GamePropertyInfo.cbPropertyCount < CountArray(GamePropertyInfo.PropertyInfo)); // if (GamePropertyInfo.cbPropertyCount >= CountArray(GamePropertyInfo.PropertyInfo)) break; // // //读取数据 // GamePropertyInfo.cbPropertyCount++; // GamePropertyInfo.PropertyInfo[i].wIndex = m_GameDBAide.GetValue_WORD(TEXT("ID")); // GamePropertyInfo.PropertyInfo[i].wDiscount = m_GameDBAide.GetValue_WORD(TEXT("Discount")); // GamePropertyInfo.PropertyInfo[i].wIssueArea = m_GameDBAide.GetValue_WORD(TEXT("IssueArea")); // GamePropertyInfo.PropertyInfo[i].dPropertyCash = m_GameDBAide.GetValue_DOUBLE(TEXT("Cash")); // GamePropertyInfo.PropertyInfo[i].lPropertyGold = m_GameDBAide.GetValue_LONGLONG(TEXT("Gold")); // GamePropertyInfo.PropertyInfo[i].lSendLoveLiness = m_GameDBAide.GetValue_LONGLONG(TEXT("SendLoveLiness")); // GamePropertyInfo.PropertyInfo[i].lRecvLoveLiness = m_GameDBAide.GetValue_LONGLONG(TEXT("RecvLoveLiness")); // // //移动记录 // m_GameDBModule->MoveToNext(); // } // // //发送信息 // WORD wHeadSize = sizeof(GamePropertyInfo) - sizeof(GamePropertyInfo.PropertyInfo); // WORD wDataSize = GamePropertyInfo.cbPropertyCount * sizeof(GamePropertyInfo.PropertyInfo[0]); // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_GAME_PROPERTY_INFO, dwContextID, &GamePropertyInfo, wHeadSize + wDataSize); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_LoadGameProperty ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // // } // catch (IDataBaseException * pIException) // { // //输出错误 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // // //变量定义 // DBO_GR_GamePropertyInfo GamePropertyInfo; // ZeroMemory(&GamePropertyInfo, sizeof(GamePropertyInfo)); // // //构造变量 // GamePropertyInfo.cbPropertyCount = 0L; // GamePropertyInfo.lResultCode = DB_ERROR; // // //发送信息 // WORD wHeadSize = sizeof(GamePropertyInfo) - sizeof(GamePropertyInfo.PropertyInfo); // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_GAME_PROPERTY_INFO, dwContextID, &GamePropertyInfo, wHeadSize); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_LoadGameProperty ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return false; // } // // return true; //} ////开通银行 //bool CDataBaseEngineSink::OnRequestUserEnableInsure(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) //{ // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestUserEnableInsure"), TraceLevel_Debug); // CTimer Start; // try // { // //效验参数 // ASSERT(wDataSize == sizeof(DBR_GR_UserEnableInsure)); // if (wDataSize != sizeof(DBR_GR_UserEnableInsure)) return false; // // //请求处理 // DBR_GR_UserEnableInsure * pUserEnableInsure = (DBR_GR_UserEnableInsure *)pData; // // //设置标识 // dwUserID = pUserEnableInsure->dwUserID; // // //转化地址 // TCHAR szClientAddr[16] = TEXT(""); // BYTE * pClientAddr = (BYTE *)&pUserEnableInsure->dwClientAddr; // _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]); // // //构造参数 // m_TreasureDBAide.ResetParameter(); // m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), pUserEnableInsure->dwUserID); // m_TreasureDBAide.AddParameter(TEXT("@strLogonPass"), pUserEnableInsure->szLogonPass); // m_TreasureDBAide.AddParameter(TEXT("@strInsurePass"), pUserEnableInsure->szInsurePass); // m_TreasureDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr); // m_TreasureDBAide.AddParameter(TEXT("@strMachineID"), pUserEnableInsure->szMachineID); // // //输出参数 // TCHAR szDescribeString[128] = TEXT(""); // m_TreasureDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); // // //执行查询 // LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_UserEnableInsure"), true); // // //结果处理 // CDBVarValue DBVarValue; // m_TreasureDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue); // // //构造对象 // DBO_GR_UserInsureEnableResult UserEnableInsureResult; // ZeroMemory(&UserEnableInsureResult, sizeof(UserEnableInsureResult)); // // //设置变量 // UserEnableInsureResult.cbActivityGame = pUserEnableInsure->cbActivityGame; // UserEnableInsureResult.cbInsureEnabled = (lResultCode == DB_SUCCESS) ? TRUE : FALSE; // lstrcpyn(UserEnableInsureResult.szDescribeString, CW2CT(DBVarValue.bstrVal), CountArray(UserEnableInsureResult.szDescribeString)); // // //发送结果 // WORD wDataSize = CountStringBuffer(UserEnableInsureResult.szDescribeString); // WORD wHeadSize = sizeof(UserEnableInsureResult) - sizeof(UserEnableInsureResult.szDescribeString); // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_USER_INSURE_ENABLE_RESULT, dwContextID, &UserEnableInsureResult, wHeadSize + wDataSize); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_UserEnableInsure ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // // return true; // } // catch (IDataBaseException * pIException) // { // //错误信息 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // // //构造对象 // DBO_GR_UserInsureEnableResult UserEnableInsureResult; // ZeroMemory(&UserEnableInsureResult, sizeof(UserEnableInsureResult)); // // //请求处理 // DBR_GR_UserEnableInsure * pUserEnableInsure = (DBR_GR_UserEnableInsure *)pData; // // //设置变量 // UserEnableInsureResult.cbInsureEnabled = FALSE; // UserEnableInsureResult.cbActivityGame = pUserEnableInsure->cbActivityGame; // lstrcpyn(UserEnableInsureResult.szDescribeString, TEXT("由于数据库操作异常,请您稍后重试!"), CountArray(UserEnableInsureResult.szDescribeString)); // // //发送结果 // WORD wDataSize = CountStringBuffer(UserEnableInsureResult.szDescribeString); // WORD wHeadSize = sizeof(UserEnableInsureResult) - sizeof(UserEnableInsureResult.szDescribeString); // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_USER_INSURE_ENABLE_RESULT, dwContextID, &UserEnableInsureResult, wHeadSize + wDataSize); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_UserEnableInsure ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return false; // } //} // //直接扣除元宝 bool CDataBaseEngineSink::OnRequestUserCheckBeans(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestUserCheckBeans"), TraceLevel_Debug); //效验参数 ASSERT(wDataSize == sizeof(DBR_GR_UserReduceBeans)); if (wDataSize != sizeof(DBR_GR_UserReduceBeans)) return false; CTimer Start; //变量定义 DBR_GR_UserReduceBeans * pInfo = (DBR_GR_UserReduceBeans *)pData; dwUserID = pInfo->dwUserID; //请求处理 try { //转化地址 TCHAR szClientAddr[16] = TEXT(""); BYTE * pClientAddr = (BYTE *)&pInfo->dwClientAddr; _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]); //构造参数 m_TreasureDBAide.ResetParameter(); m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), pInfo->dwUserID); m_TreasureDBAide.AddParameter(TEXT("@ConsumeCurrency"), pInfo->ConsumeCurrency); m_TreasureDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr); m_TreasureDBAide.AddParameter(TEXT("@strMachineID"), pInfo->szMachineID); //输出参数 TCHAR szDescribeString[128] = TEXT(""); m_TreasureDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //执行查询 LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_CheckBeans"), true); if (lResultCode == 0) { //结果处理 DWORD CurrBeans = m_TreasureDBAide.GetValue_DWORD(TEXT("CurrBeans")); DWORD LockBeans = m_TreasureDBAide.GetValue_DWORD(TEXT("LockCurrency")); DBO_GR_UserReduceResult result; result.result = lResultCode; result.dwCurrBeans = CurrBeans; result.dwLockBeans = LockBeans; result.dwTable = pInfo->dwTableID; result.dwUserID = pInfo->dwUserID; result.dwActiveBeans = pInfo->ConsumeCurrency; m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_USER_CHECK_BEANS_RETURN, dwContextID, &result, sizeof(result)); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_CheckBeans ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_CheckBeans ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } } return true; } catch (IDataBaseException * pIException) { //错误信息 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); DBO_GR_UserCheckResult result; result.result = 100; lstrcpy(result.szDescribeString, pIException->GetExceptionDescribe()); m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_USER_CHECK_BEANS_RETURN, dwContextID, &result, sizeof(result)); //错误处理 //OnInsureDisposeResult(dwContextID, DB_ERROR, pUserSaveScore->lSaveScore, TEXT("由于数据库操作异常,请您稍后重试!"), false, pUserSaveScore->cbActivityGame); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("异常存储过程耗时 GSP_GR_CheckBeans ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时异常 GSP_GR_CheckBeans ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } CString csTemp; csTemp.Format(_T("[%d]直接扣除元宝失败 需要扣除:%d"), pInfo->dwUserID, pInfo->ConsumeCurrency); //提示消息 CTraceService::TraceString(csTemp, TraceLevel_Warning); return false; } return true; } //消耗元宝 bool CDataBaseEngineSink::OnRequestUserReduceBeans(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTraceService::TraceString(TEXT(" CDataBaseEngineSink::OnRequestUserReduceBeans"), TraceLevel_Debug); //效验参数 ASSERT(wDataSize == sizeof(DBR_GR_UserReduceBeans)); if (wDataSize != sizeof(DBR_GR_UserReduceBeans)) return false; CTimer Start; //变量定义 DBR_GR_UserReduceBeans * pInfo = (DBR_GR_UserReduceBeans *)pData; dwUserID = pInfo->dwUserID; //请求处理 try { //转化地址 TCHAR szClientAddr[16] = TEXT(""); BYTE * pClientAddr = (BYTE *)&pInfo->dwClientAddr; _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]); //构造参数 m_TreasureDBAide.ResetParameter(); m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), pInfo->dwUserID); m_TreasureDBAide.AddParameter(TEXT("@ConsumeCurrency"), pInfo->ConsumeCurrency); m_TreasureDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr); m_TreasureDBAide.AddParameter(TEXT("@strMachineID"), pInfo->szMachineID); //输出参数 TCHAR szDescribeString[128] = TEXT(""); m_TreasureDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //执行查询 LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_ReduceBeans"), true); //结果处理 DWORD CurrBeans = m_TreasureDBAide.GetValue_DWORD(TEXT("CurrBeans")); DWORD LockBeans = m_TreasureDBAide.GetValue_DWORD(TEXT("LockCurrency")); DBO_GR_UserReduceResult result; result.result = lResultCode; result.dwCurrBeans = CurrBeans; result.dwLockBeans = LockBeans; result.dwTable = pInfo->dwTableID; result.dwUserID = pInfo->dwUserID; result.dwActiveBeans = pInfo->ConsumeCurrency; m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_USER_REDUCE_BEANS_RETURN, dwContextID, &result, sizeof(result)); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_ReduceBeans ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_ReduceBeans ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //错误信息 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); DBO_GR_UserReduceResult result; result.result = 100; lstrcpy(result.szDescribeString, pIException->GetExceptionDescribe()); m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_USER_REDUCE_BEANS_RETURN, dwContextID, &result, sizeof(result)); //错误处理 //OnInsureDisposeResult(dwContextID, DB_ERROR, pInfo->lSaveScore, TEXT("由于数据库操作异常,请您稍后重试!"), false, pUserSaveScore->cbActivityGame); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_ReduceBeans ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时异常 GSP_GR_ReduceBeans ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return false; } return true; } //冻结元宝 bool CDataBaseEngineSink::OnRequestUserLockBeans(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTraceService::TraceString(TEXT(" CDataBaseEngineSink::OnRequestUserLockBeans"), TraceLevel_Debug); //效验参数 ASSERT(wDataSize == sizeof(DBR_GR_UserReduceBeans)); if (wDataSize != sizeof(DBR_GR_UserReduceBeans)) return false; //变量定义 DBR_GR_UserReduceBeans * pInfo = (DBR_GR_UserReduceBeans *)pData; dwUserID = pInfo->dwUserID; CTimer Start; //请求处理 try { //转化地址 TCHAR szClientAddr[16] = TEXT(""); BYTE * pClientAddr = (BYTE *)&pInfo->dwClientAddr; _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]); //构造参数 m_TreasureDBAide.ResetParameter(); m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), pInfo->dwUserID); m_TreasureDBAide.AddParameter(TEXT("@ConsumeCurrency"), pInfo->ConsumeCurrency); m_TreasureDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr); m_TreasureDBAide.AddParameter(TEXT("@strMachineID"), pInfo->szMachineID); //输出参数 TCHAR szDescribeString[128] = TEXT(""); m_TreasureDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //执行查询 LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_LockBeans"), true); //结果处理 DWORD CurrBeans = 0; DWORD LockBeans = 0; if (lResultCode == 0) { CurrBeans = m_TreasureDBAide.GetValue_DWORD(TEXT("CurrBeans")); LockBeans = m_TreasureDBAide.GetValue_DWORD(TEXT("LockCurrency")); } DBO_GR_UserReduceResult result; result.result = lResultCode; result.dwCurrBeans = CurrBeans; result.dwLockBeans = LockBeans; result.dwActiveBeans = pInfo->ConsumeCurrency; result.dwTable = pInfo->dwTableID; result.dwUserID = pInfo->dwUserID; m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_USER_LUCK_BEANS_RETURN, dwContextID, &result, sizeof(result)); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_LockBeans ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_LockBeans ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //错误信息 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); DBO_GR_UserReduceResult result; result.result = 100; lstrcpy(result.szDescribeString, pIException->GetExceptionDescribe()); m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_USER_LUCK_BEANS_RETURN, dwContextID, &result, sizeof(result)); //错误处理 //OnInsureDisposeResult(dwContextID, DB_ERROR, pInfo->lSaveScore, TEXT("由于数据库操作异常,请您稍后重试!"), false, pUserSaveScore->cbActivityGame); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_LockBeans ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时异常 GSP_GR_LockBeans ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return false; } return true; } //解冻元宝 bool CDataBaseEngineSink::OnRequestUserUnLockBeans(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTraceService::TraceString(TEXT(" CDataBaseEngineSink::OnRequestUserUnLockBeans"), TraceLevel_Debug); //效验参数 ASSERT(wDataSize == sizeof(DBR_GR_UserReduceBeans)); if (wDataSize != sizeof(DBR_GR_UserReduceBeans)) return false; //变量定义 DBR_GR_UserReduceBeans * pInfo = (DBR_GR_UserReduceBeans *)pData; dwUserID = pInfo->dwUserID; CTimer Start; //请求处理 try { //转化地址 TCHAR szClientAddr[16] = TEXT(""); BYTE * pClientAddr = (BYTE *)&pInfo->dwClientAddr; _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]); //构造参数 m_TreasureDBAide.ResetParameter(); m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), pInfo->dwUserID); m_TreasureDBAide.AddParameter(TEXT("@ConsumeCurrency"), pInfo->ConsumeCurrency); m_TreasureDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr); m_TreasureDBAide.AddParameter(TEXT("@strMachineID"), pInfo->szMachineID); //输出参数 TCHAR szDescribeString[128] = TEXT(""); m_TreasureDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //执行查询 LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_UnLockBeans"), true); //结果处理 DWORD CurrBeans = m_TreasureDBAide.GetValue_DWORD(TEXT("CurrBeans")); DWORD LockBeans = m_TreasureDBAide.GetValue_DWORD(TEXT("LockCurrency")); DBO_GR_UserReduceResult result; result.result = lResultCode; result.dwCurrBeans = CurrBeans; result.dwLockBeans = LockBeans; result.dwActiveBeans = pInfo->ConsumeCurrency; result.dwUserID = pInfo->dwUserID; result.dwTable = pInfo->dwTableID; m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_USER_UNLUCK_BEANS_RETURN, dwContextID, &result, sizeof(result)); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_UnLockBeans ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_UnLockBeans ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //错误信息 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); DBO_GR_UserReduceResult result; result.result = 100; lstrcpy(result.szDescribeString, pIException->GetExceptionDescribe()); m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_USER_UNLUCK_BEANS_RETURN, dwContextID, &result, sizeof(result)); //错误处理 //OnInsureDisposeResult(dwContextID, DB_ERROR, pInfo->lSaveScore, TEXT("由于数据库操作异常,请您稍后重试!"), false, pUserSaveScore->cbActivityGame); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_UnLockBeans ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时异常 GSP_GR_UnLockBeans ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return false; } return true; } ////存入游戏币 //bool CDataBaseEngineSink::OnRequestUserSaveScore(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) //{ // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestUserSaveScore"), TraceLevel_Debug); // //效验参数 // ASSERT(wDataSize == sizeof(DBR_GR_UserSaveScore)); // if (wDataSize != sizeof(DBR_GR_UserSaveScore)) return false; // CTimer Start; // //变量定义 // DBR_GR_UserSaveScore * pUserSaveScore = (DBR_GR_UserSaveScore *)pData; // dwUserID = pUserSaveScore->dwUserID; // // //请求处理 // try // { // //转化地址 // TCHAR szClientAddr[16] = TEXT(""); // BYTE * pClientAddr = (BYTE *)&pUserSaveScore->dwClientAddr; // _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]); // // //构造参数 // m_TreasureDBAide.ResetParameter(); // m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), pUserSaveScore->dwUserID); // m_TreasureDBAide.AddParameter(TEXT("@lSaveScore"), pUserSaveScore->lSaveScore); // m_TreasureDBAide.AddParameter(TEXT("@wKindID"), m_pGameServiceOption->wKindID); // m_TreasureDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID); // m_TreasureDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr); // m_TreasureDBAide.AddParameter(TEXT("@strMachineID"), pUserSaveScore->szMachineID); // // //输出参数 // TCHAR szDescribeString[128] = TEXT(""); // m_TreasureDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); // // //执行查询 // LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_UserSaveScore"), true); // // //结果处理 // CDBVarValue DBVarValue; // m_TreasureDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue); // OnInsureDisposeResult(dwContextID, lResultCode, pUserSaveScore->lSaveScore, CW2CT(DBVarValue.bstrVal), false, pUserSaveScore->cbActivityGame); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_UserSaveScore ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // // return true; // } // catch (IDataBaseException * pIException) // { // //错误信息 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // // //错误处理 // OnInsureDisposeResult(dwContextID, DB_ERROR, pUserSaveScore->lSaveScore, TEXT("由于数据库操作异常,请您稍后重试!"), false, pUserSaveScore->cbActivityGame); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_UserSaveScore ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return false; // } // // return true; //} // ////提取游戏币 //bool CDataBaseEngineSink::OnRequestUserTakeScore(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) //{ // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestUserTakeScore"), TraceLevel_Debug); // //效验参数 // ASSERT(wDataSize == sizeof(DBR_GR_UserTakeScore)); // if (wDataSize != sizeof(DBR_GR_UserTakeScore)) return false; // // //变量定义 // DBR_GR_UserTakeScore * pUserTakeScore = (DBR_GR_UserTakeScore *)pData; // dwUserID = pUserTakeScore->dwUserID; // CTimer Start; // //请求处理 // try // { // //转化地址 // TCHAR szClientAddr[16] = TEXT(""); // BYTE * pClientAddr = (BYTE *)&pUserTakeScore->dwClientAddr; // _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]); // // //构造参数 // m_TreasureDBAide.ResetParameter(); // m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), pUserTakeScore->dwUserID); // m_TreasureDBAide.AddParameter(TEXT("@lTakeScore"), pUserTakeScore->lTakeScore); // m_TreasureDBAide.AddParameter(TEXT("@strPassword"), pUserTakeScore->szPassword); // m_TreasureDBAide.AddParameter(TEXT("@wKindID"), m_pGameServiceOption->wKindID); // m_TreasureDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID); // m_TreasureDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr); // m_TreasureDBAide.AddParameter(TEXT("@strMachineID"), pUserTakeScore->szMachineID); // // //输出参数 // TCHAR szDescribeString[128] = TEXT(""); // m_TreasureDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); // // //执行查询 // LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_UserTakeScore"), true); // // //结果处理 // CDBVarValue DBVarValue; // m_TreasureDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue); // OnInsureDisposeResult(dwContextID, lResultCode, 0L, CW2CT(DBVarValue.bstrVal), false, pUserTakeScore->cbActivityGame); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_UserTakeScore ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return true; // } // catch (IDataBaseException * pIException) // { // //错误信息 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // // //错误处理 // OnInsureDisposeResult(dwContextID, DB_ERROR, 0L, TEXT("由于数据库操作异常,请您稍后重试!"), false, pUserTakeScore->cbActivityGame); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_UserTakeScore ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return false; // } // // return true; //} // ////转帐游戏币 //bool CDataBaseEngineSink::OnRequestUserTransferScore(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) //{ // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestUserTransferScore"), TraceLevel_Debug); // //效验参数 // ASSERT(wDataSize == sizeof(DBR_GR_UserTransferScore)); // if (wDataSize != sizeof(DBR_GR_UserTransferScore)) return false; // // //变量定义 // DBR_GR_UserTransferScore * pUserTransferScore = (DBR_GR_UserTransferScore *)pData; // dwUserID = pUserTransferScore->dwUserID; // CTimer Start; // //请求处理 // try // { // //转化地址 // TCHAR szClientAddr[16] = TEXT(""); // BYTE * pClientAddr = (BYTE *)&pUserTransferScore->dwClientAddr; // _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]); // // //构造参数 // m_TreasureDBAide.ResetParameter(); // m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), pUserTransferScore->dwUserID); // m_TreasureDBAide.AddParameter(TEXT("@lTransferScore"), pUserTransferScore->lTransferScore); // m_TreasureDBAide.AddParameter(TEXT("@strPassword"), pUserTransferScore->szPassword); // m_TreasureDBAide.AddParameter(TEXT("@strNickName"), pUserTransferScore->szAccounts); // m_TreasureDBAide.AddParameter(TEXT("@strTransRemark"), pUserTransferScore->szTransRemark); // m_TreasureDBAide.AddParameter(TEXT("@wKindID"), m_pGameServiceOption->wKindID); // m_TreasureDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID); // m_TreasureDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr); // m_TreasureDBAide.AddParameter(TEXT("@strMachineID"), pUserTransferScore->szMachineID); // // //输出参数 // TCHAR szDescribeString[128] = TEXT(""); // m_TreasureDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); // // //执行查询 // LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_UserTransferScore"), true); // // //结果处理 // CDBVarValue DBVarValue; // m_TreasureDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue); // OnInsureDisposeResult(dwContextID, lResultCode, 0L, CW2CT(DBVarValue.bstrVal), false, pUserTransferScore->cbActivityGame); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_UserTransferScore ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return true; // } // catch (IDataBaseException * pIException) // { // //错误信息 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // // //错误处理 // OnInsureDisposeResult(dwContextID, DB_ERROR, 0L, TEXT("由于数据库操作异常,请您稍后重试!"), false, pUserTransferScore->cbActivityGame); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_UserTransferScore ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return false; // } // // return true; //} // ////查询银行 //bool CDataBaseEngineSink::OnRequestQueryInsureInfo(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) //{ // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestQueryInsureInfo"), TraceLevel_Debug); // //效验参数 // ASSERT(wDataSize == sizeof(DBR_GR_QueryInsureInfo)); // if (wDataSize != sizeof(DBR_GR_QueryInsureInfo)) return false; // CTimer Start; // //请求处理 // DBR_GR_QueryInsureInfo * pQueryInsureInfo = (DBR_GR_QueryInsureInfo *)pData; // dwUserID = pQueryInsureInfo->dwUserID; // // try // { // //转化地址 // TCHAR szClientAddr[16] = TEXT(""); // BYTE * pClientAddr = (BYTE *)&pQueryInsureInfo->dwClientAddr; // _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]); // // //构造参数 // m_TreasureDBAide.ResetParameter(); // m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), pQueryInsureInfo->dwUserID); // m_TreasureDBAide.AddParameter(TEXT("@strPassword"), pQueryInsureInfo->szPassword); // m_TreasureDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr); // // //输出参数 // TCHAR szDescribeString[128] = TEXT(""); // m_TreasureDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); // // //结果处理 // if (m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_QueryUserInsureInfo"), true) == DB_SUCCESS) // { // //变量定义 // DBO_GR_UserInsureInfo UserInsureInfo; // ZeroMemory(&UserInsureInfo, sizeof(UserInsureInfo)); // // //银行信息 // UserInsureInfo.cbActivityGame = pQueryInsureInfo->cbActivityGame; // UserInsureInfo.cbEnjoinTransfer = m_TreasureDBAide.GetValue_BYTE(TEXT("EnjoinTransfer")); // UserInsureInfo.wRevenueTake = m_TreasureDBAide.GetValue_WORD(TEXT("RevenueTake")); // UserInsureInfo.wRevenueTransfer = m_TreasureDBAide.GetValue_WORD(TEXT("RevenueTransfer")); // UserInsureInfo.wRevenueTransferMember = m_TreasureDBAide.GetValue_WORD(TEXT("RevenueTransferMember")); // UserInsureInfo.wServerID = m_TreasureDBAide.GetValue_WORD(TEXT("ServerID")); // UserInsureInfo.lUserScore = m_TreasureDBAide.GetValue_LONGLONG(TEXT("Score")); // UserInsureInfo.lUserInsure = m_TreasureDBAide.GetValue_LONGLONG(TEXT("Insure")); // UserInsureInfo.lTransferPrerequisite = m_TreasureDBAide.GetValue_LONGLONG(TEXT("TransferPrerequisite")); // // //发送结果 // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_USER_INSURE_INFO, dwContextID, &UserInsureInfo, sizeof(UserInsureInfo)); // } // else // { // //获取参数 // CDBVarValue DBVarValue; // m_TreasureDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue); // // //错误处理 // OnInsureDisposeResult(dwContextID, m_TreasureDBAide.GetReturnValue(), 0L, CW2CT(DBVarValue.bstrVal), false, pQueryInsureInfo->cbActivityGame); // } // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_QueryUserInsureInfo ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return true; // } // catch (IDataBaseException * pIException) // { // //输出错误 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // // //结果处理 // OnInsureDisposeResult(dwContextID, DB_ERROR, 0L, TEXT("由于数据库操作异常,请您稍后重试!"), false, pQueryInsureInfo->cbActivityGame); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_QueryUserInsureInfo ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return false; // } // // return true; //} // ////查询用户 //bool CDataBaseEngineSink::OnRequestQueryTransferUserInfo(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) //{ // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestQueryTransferUserInfo"), TraceLevel_Debug); // //效验参数 // ASSERT(wDataSize == sizeof(DBR_GR_QueryTransferUserInfo)); // if (wDataSize != sizeof(DBR_GR_QueryTransferUserInfo)) return false; // // //请求处理 // DBR_GR_QueryTransferUserInfo * pQueryTransferUserInfo = (DBR_GR_QueryTransferUserInfo *)pData; // dwUserID = pQueryTransferUserInfo->dwUserID; // CTimer Start; // try // { // //构造参数 // m_TreasureDBAide.ResetParameter(); // m_TreasureDBAide.AddParameter(TEXT("@cbByNickName"), pQueryTransferUserInfo->cbByNickName); // m_TreasureDBAide.AddParameter(TEXT("@strAccounts"), pQueryTransferUserInfo->szAccounts); // // //输出参数 // TCHAR szDescribeString[128] = TEXT(""); // m_TreasureDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); // // //结果处理 // if (m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_QueryTransferUserInfo"), true) == DB_SUCCESS) // { // //变量定义 // DBO_GR_UserTransferUserInfo TransferUserInfo; // ZeroMemory(&TransferUserInfo, sizeof(TransferUserInfo)); // // //银行信息 // TransferUserInfo.cbActivityGame = pQueryTransferUserInfo->cbActivityGame; // TransferUserInfo.dwGameID = m_TreasureDBAide.GetValue_DWORD(TEXT("GameID")); // m_TreasureDBAide.GetValue_String(TEXT("Accounts"), TransferUserInfo.szAccounts, CountArray(TransferUserInfo.szAccounts)); // // //发送结果 // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_USER_INSURE_USER_INFO, dwContextID, &TransferUserInfo, sizeof(TransferUserInfo)); // } // else // { // //获取参数 // CDBVarValue DBVarValue; // m_TreasureDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue); // // //错误处理 // OnInsureDisposeResult(dwContextID, m_TreasureDBAide.GetReturnValue(), 0L, CW2CT(DBVarValue.bstrVal), false, pQueryTransferUserInfo->cbActivityGame); // } // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_QueryTransferUserInfo ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return true; // } // catch (IDataBaseException * pIException) // { // //输出错误 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // // //结果处理 // OnInsureDisposeResult(dwContextID, DB_ERROR, 0L, TEXT("由于数据库操作异常,请您稍后重试!"), false, pQueryTransferUserInfo->cbActivityGame); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_QueryTransferUserInfo ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return false; // } // // return true; //} ////领取任务 //bool CDataBaseEngineSink::OnRequestTaskTake(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) //{ // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestTaskTake"), TraceLevel_Debug); // CTimer Start; // try // { // //效验参数 // ASSERT(wDataSize == sizeof(DBR_GR_TaskTake)); // if (wDataSize != sizeof(DBR_GR_TaskTake)) return false; // // //请求处理 // DBR_GR_TaskTake * pTaskTake = (DBR_GR_TaskTake *)pData; // // //设置变量 // dwUserID = pTaskTake->dwUserID; // // //转化地址 // TCHAR szClientAddr[16] = TEXT(""); // BYTE * pClientAddr = (BYTE *)&pTaskTake->dwClientAddr; // _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]); // // //构造参数 // m_PlatformDBAide.ResetParameter(); // m_PlatformDBAide.AddParameter(TEXT("@dwUserID"), pTaskTake->dwUserID); // m_PlatformDBAide.AddParameter(TEXT("@wTaskID"), pTaskTake->wTaskID); // m_PlatformDBAide.AddParameter(TEXT("@strPassword"), pTaskTake->szPassword); // m_PlatformDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr); // m_PlatformDBAide.AddParameter(TEXT("@strMachineID"), pTaskTake->szMachineID); // // //输出参数 // TCHAR szDescribeString[128] = TEXT(""); // m_PlatformDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); // // //执行脚本 // LONG lResultCode = m_PlatformDBAide.ExecuteProcess(TEXT("GSP_GR_TaskTake"), false); // // //变量定义 // DBO_GR_TaskResult TaskResult; // ZeroMemory(&TaskResult, sizeof(TaskResult)); // // //获取参数 // CDBVarValue DBVarValue; // m_PlatformDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue); // // //银行信息 // TaskResult.wCommandID = SUB_GR_TASK_TAKE; // TaskResult.wCurrTaskID = pTaskTake->wTaskID; // TaskResult.bSuccessed = lResultCode == DB_SUCCESS; // lstrcpyn(TaskResult.szNotifyContent, CW2CT(DBVarValue.bstrVal), CountArray(TaskResult.szNotifyContent)); // // //发送结果 // WORD wSendSize = sizeof(TaskResult) - sizeof(TaskResult.szNotifyContent) + CountStringBuffer(TaskResult.szNotifyContent); // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_TASK_RESULT, dwContextID, &TaskResult, wSendSize); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_TaskTake ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return true; // } // catch (IDataBaseException * pIException) // { // //输出错误 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // // //构造结构 // DBO_GR_TaskResult TaskResult; // TaskResult.bSuccessed = false; // TaskResult.wCommandID = SUB_GR_TASK_TAKE; // lstrcpyn(TaskResult.szNotifyContent, TEXT("由于数据库操作异常,请您稍后重试!"), CountArray(TaskResult.szNotifyContent)); // // //发送结果 // WORD wSendSize = sizeof(TaskResult) - sizeof(TaskResult.szNotifyContent) + CountStringBuffer(TaskResult.szNotifyContent); // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_TASK_RESULT, dwContextID, &TaskResult, wSendSize); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_TaskTake ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return false; // } //} // ////领取奖励 //bool CDataBaseEngineSink::OnRequestTaskReward(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) //{ // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestTaskReward"), TraceLevel_Debug); // CTimer Start; // try // { // //效验参数 // ASSERT(wDataSize == sizeof(DBR_GR_TaskReward)); // if (wDataSize != sizeof(DBR_GR_TaskReward)) return false; // // //请求处理 // DBR_GR_TaskReward * pTaskReward = (DBR_GR_TaskReward *)pData; // // //设置变量 // dwUserID = pTaskReward->dwUserID; // // //转化地址 // TCHAR szClientAddr[16] = TEXT(""); // BYTE * pClientAddr = (BYTE *)&pTaskReward->dwClientAddr; // _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]); // // //构造参数 // m_PlatformDBAide.ResetParameter(); // m_PlatformDBAide.AddParameter(TEXT("@dwUserID"), pTaskReward->dwUserID); // m_PlatformDBAide.AddParameter(TEXT("@wTaskID"), pTaskReward->wTaskID); // m_PlatformDBAide.AddParameter(TEXT("@strPassword"), pTaskReward->szPassword); // m_PlatformDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr); // m_PlatformDBAide.AddParameter(TEXT("@strMachineID"), pTaskReward->szMachineID); // // //输出参数 // TCHAR szDescribeString[128] = TEXT(""); // m_PlatformDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); // // //执行脚本 // LONG lResultCode = m_PlatformDBAide.ExecuteProcess(TEXT("GSP_GR_TaskReward"), true); // // //变量定义 // DBO_GR_TaskResult TaskResult; // ZeroMemory(&TaskResult, sizeof(TaskResult)); // // //获取参数 // CDBVarValue DBVarValue; // m_PlatformDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue); // // //银行信息 // TaskResult.wCommandID = SUB_GR_TASK_REWARD; // TaskResult.wCurrTaskID = pTaskReward->wTaskID; // TaskResult.bSuccessed = lResultCode == DB_SUCCESS; // lstrcpyn(TaskResult.szNotifyContent, CW2CT(DBVarValue.bstrVal), CountArray(TaskResult.szNotifyContent)); // // //获取分数 // if (TaskResult.bSuccessed == true) // { // TaskResult.lCurrScore = m_PlatformDBAide.GetValue_LONGLONG(TEXT("Score")); // TaskResult.lCurrIngot = m_PlatformDBAide.GetValue_LONGLONG(TEXT("Ingot")); // } // // //发送结果 // WORD wSendSize = sizeof(TaskResult) - sizeof(TaskResult.szNotifyContent) + CountStringBuffer(TaskResult.szNotifyContent); // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_TASK_RESULT, dwContextID, &TaskResult, wSendSize); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_TaskReward ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // // return true; // } // catch (IDataBaseException * pIException) // { // //输出错误 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // // //构造结构 // DBO_GR_TaskResult TaskResult; // TaskResult.bSuccessed = false; // TaskResult.wCommandID = SUB_GR_TASK_REWARD; // lstrcpyn(TaskResult.szNotifyContent, TEXT("由于数据库操作异常,请您稍后重试!"), CountArray(TaskResult.szNotifyContent)); // // //发送结果 // WORD wSendSize = sizeof(TaskResult) - sizeof(TaskResult.szNotifyContent) + CountStringBuffer(TaskResult.szNotifyContent); // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_TASK_RESULT, dwContextID, &TaskResult, wSendSize); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_TaskReward ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return false; // } //} //加载任务 //bool CDataBaseEngineSink::OnRequestLoadTaskList(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) //{ // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestLoadTaskList"), TraceLevel_Debug); // CTimer Start; // try // { // //设置变量 // dwUserID = 0; // // //构造参数 // m_PlatformDBAide.ResetParameter(); // // //执行命令 // LONG lResultCode = m_PlatformDBAide.ExecuteProcess(TEXT("GSP_GR_LoadTaskList"), true); // // //执行成功 // if (lResultCode == DB_SUCCESS) // { // //变量定义 // tagTaskParameter TaskParameter; // BYTE cbDataBuffer[SOCKET_TCP_PACKET - 1024] = { 0 }; // DBO_GR_TaskListInfo * pTaskListInfo = (DBO_GR_TaskListInfo *)cbDataBuffer; // LPBYTE pDataBuffer = cbDataBuffer + sizeof(DBO_GR_TaskListInfo); // // //设置变量 // WORD wTaskCount = 0; // WORD wSendDataSize = sizeof(DBO_GR_TaskListInfo); // // //变量定义 // while (m_PlatformDBModule->IsRecordsetEnd() == false) // { // //读取数据 // TaskParameter.wTaskID = m_PlatformDBAide.GetValue_WORD(TEXT("TaskID")); // TaskParameter.wTaskType = m_PlatformDBAide.GetValue_WORD(TEXT("TaskType")); // TaskParameter.cbPlayerType = m_PlatformDBAide.GetValue_BYTE(TEXT("UserType")); // TaskParameter.wKindID = m_PlatformDBAide.GetValue_WORD(TEXT("KindID")); // TaskParameter.wTaskObject = m_PlatformDBAide.GetValue_WORD(TEXT("Innings")); // TaskParameter.dwTimeLimit = m_PlatformDBAide.GetValue_DWORD(TEXT("TimeLimit")); // TaskParameter.lStandardAwardGold = m_PlatformDBAide.GetValue_LONGLONG(TEXT("StandardAwardGold")); // TaskParameter.lStandardAwardMedal = m_PlatformDBAide.GetValue_LONGLONG(TEXT("StandardAwardMedal")); // TaskParameter.lMemberAwardGold = m_PlatformDBAide.GetValue_LONGLONG(TEXT("MemberAwardGold")); // TaskParameter.lMemberAwardMedal = m_PlatformDBAide.GetValue_LONGLONG(TEXT("MemberAwardMedal")); // // //描述信息 // m_PlatformDBAide.GetValue_String(TEXT("TaskName"), TaskParameter.szTaskName, CountArray(TaskParameter.szTaskName)); // m_PlatformDBAide.GetValue_String(TEXT("TaskDescription"), TaskParameter.szTaskDescribe, CountArray(TaskParameter.szTaskDescribe)); // // //发送判断 // if (wSendDataSize + sizeof(tagTaskParameter) > sizeof(cbDataBuffer)) // { // //设置变量 // pTaskListInfo->wTaskCount = wTaskCount; // // //发送数据 // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_TASK_LIST, dwContextID, pTaskListInfo, wSendDataSize); // // //重置变量 // wTaskCount = 0; // wSendDataSize = sizeof(DBO_GR_TaskListInfo); // pDataBuffer = cbDataBuffer + sizeof(DBO_GR_TaskListInfo); // } // // //拷贝数据 // CopyMemory(pDataBuffer, &TaskParameter, sizeof(tagTaskParameter)); // // //设置变量 // wTaskCount++; // wSendDataSize += sizeof(tagTaskParameter); // pDataBuffer += sizeof(tagTaskParameter); // // //移动记录 // m_PlatformDBModule->MoveToNext(); // } // // //剩余发送 // if (wTaskCount > 0 && wSendDataSize > 0) // { // //设置变量 // pTaskListInfo->wTaskCount = wTaskCount; // // //发送数据 // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_TASK_LIST, dwContextID, pTaskListInfo, wSendDataSize); // } // // //发送通知 // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_TASK_LIST_END, dwContextID, NULL, 0); // } // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_LoadTaskList ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // // return true; // } // catch (IDataBaseException * pIException) // { // //输出错误 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_LoadTaskList ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return false; // } // // return true; //} ////查询任务 //bool CDataBaseEngineSink::OnRequestTaskQueryInfo(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) //{ // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestTaskQueryInfo"), TraceLevel_Debug); // CTimer Start; // try // { // //效验参数 // ASSERT(wDataSize == sizeof(DBR_GR_TaskQueryInfo)); // if (wDataSize != sizeof(DBR_GR_TaskQueryInfo)) return false; // // //请求处理 // DBR_GR_TaskQueryInfo * pTaskQueryInfo = (DBR_GR_TaskQueryInfo *)pData; // // //设置变量 // dwUserID = pTaskQueryInfo->dwUserID; // // //构造参数 // m_PlatformDBAide.ResetParameter(); // m_PlatformDBAide.AddParameter(TEXT("@wKindID"), 0); // m_PlatformDBAide.AddParameter(TEXT("@dwUserID"), pTaskQueryInfo->dwUserID); // m_PlatformDBAide.AddParameter(TEXT("@strPassword"), pTaskQueryInfo->szPassword); // // //输出参数 // TCHAR szDescribeString[128] = TEXT(""); // m_PlatformDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); // // //执行脚本 // LONG lResultCode = m_PlatformDBAide.ExecuteProcess(TEXT("GSP_GR_QueryTaskInfo"), true); // // //执行成功 // if (lResultCode == DB_SUCCESS) // { // //变量定义 // DBO_GR_TaskInfo TaskInfo; // tagTaskStatus * pTaskStatus = NULL; // ZeroMemory(&TaskInfo, sizeof(TaskInfo)); // // //变量定义 // while (m_PlatformDBModule->IsRecordsetEnd() == false) // { // //设置变量 // pTaskStatus = &TaskInfo.TaskStatus[TaskInfo.wTaskCount++]; // // //读取数据 // pTaskStatus->wTaskID = m_PlatformDBAide.GetValue_WORD(TEXT("TaskID")); // pTaskStatus->cbTaskStatus = m_PlatformDBAide.GetValue_BYTE(TEXT("TaskStatus")); // pTaskStatus->wTaskProgress = m_PlatformDBAide.GetValue_WORD(TEXT("Progress")); // // //移动记录 // m_PlatformDBModule->MoveToNext(); // } // // //发送结果 // WORD wSendDataSize = sizeof(TaskInfo) - sizeof(TaskInfo.TaskStatus); // wSendDataSize += sizeof(TaskInfo.TaskStatus[0])*TaskInfo.wTaskCount; // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_TASK_INFO, dwContextID, &TaskInfo, wSendDataSize); // } // else // { // //变量定义 // DBO_GR_TaskResult TaskResult; // ZeroMemory(&TaskResult, sizeof(TaskResult)); // // //获取参数 // CDBVarValue DBVarValue; // m_PlatformDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue); // // //银行信息 // TaskResult.bSuccessed = false; // TaskResult.wCommandID = SUB_GR_TASK_LOAD_INFO; // lstrcpyn(TaskResult.szNotifyContent, CW2CT(DBVarValue.bstrVal), CountArray(TaskResult.szNotifyContent)); // // //发送结果 // WORD wSendSize = sizeof(TaskResult) - sizeof(TaskResult.szNotifyContent) + CountStringBuffer(TaskResult.szNotifyContent); // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_TASK_RESULT, dwContextID, &TaskResult, wSendSize); // } // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_QueryTaskInfo ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return true; // } // catch (IDataBaseException * pIException) // { // //输出错误 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // // //构造结构 // DBO_GR_TaskResult TaskResult; // TaskResult.bSuccessed = false; // TaskResult.wCommandID = SUB_GR_TASK_LOAD_INFO; // lstrcpyn(TaskResult.szNotifyContent, TEXT("由于数据库操作异常,请您稍后重试!"), CountArray(TaskResult.szNotifyContent)); // // //发送结果 // WORD wSendSize = sizeof(TaskResult) - sizeof(TaskResult.szNotifyContent) + CountStringBuffer(TaskResult.szNotifyContent); // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_TASK_RESULT, dwContextID, &TaskResult, wSendSize); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_QueryTaskInfo ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return false; // } //} ////会员参数 //bool CDataBaseEngineSink::OnRequestLoadMemberParameter(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) //{ // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestLoadMemberParameter"), TraceLevel_Debug); // CTimer Start; // // try // { // //设置变量 // dwUserID = 0; // // //构造参数 // m_TreasureDBAide.ResetParameter(); // // //执行命令 // LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_LoadMemberParameter"), true); // // //执行成功 // if (lResultCode == DB_SUCCESS) // { // //变量定义 // DBO_GR_MemberParameter MemberParameter; // ZeroMemory(&MemberParameter, sizeof(MemberParameter)); // // //设置变量 // WORD wMemberCount = 0; // tagMemberParameter * pMemberParameter = NULL; // // //变量定义 // while (m_TreasureDBModule->IsRecordsetEnd() == false) // { // //设置变量 // pMemberParameter = &MemberParameter.MemberParameter[MemberParameter.wMemberCount++]; // // //读取数据 // pMemberParameter->cbMemberOrder = m_TreasureDBAide.GetValue_BYTE(TEXT("MemberOrder")); // pMemberParameter->lMemberPrice = m_TreasureDBAide.GetValue_LONGLONG(TEXT("MemberPrice")); // pMemberParameter->lPresentScore = m_TreasureDBAide.GetValue_LONGLONG(TEXT("PresentScore")); // m_TreasureDBAide.GetValue_String(TEXT("MemberName"), pMemberParameter->szMemberName, CountArray(pMemberParameter->szMemberName)); // // //移动记录 // m_TreasureDBModule->MoveToNext(); // } // // //发送数据 // WORD wSendDataSize = sizeof(MemberParameter) - sizeof(MemberParameter.MemberParameter); // wSendDataSize += sizeof(tagMemberParameter)*MemberParameter.wMemberCount; // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_GAME_MEMBER_PAREMETER, dwContextID, &MemberParameter, wSendDataSize); // // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_LoadMemberParameter ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // } // // return true; // } // catch (IDataBaseException * pIException) // { // //输出错误 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_LoadMemberParameter ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return false; // } // // return true; //} // ////购买会员 //bool CDataBaseEngineSink::OnRequestPurchaseMember(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) //{ // CTraceService::TraceString(TEXT(" CDataBaseEngineSink::OnRequestPurchaseMember"), TraceLevel_Debug); // CTimer Start; // try // { // //效验参数 // ASSERT(wDataSize == sizeof(DBR_GR_PurchaseMember)); // if (wDataSize != sizeof(DBR_GR_PurchaseMember)) return false; // // //请求处理 // DBR_GR_PurchaseMember * pPurchaseMember = (DBR_GR_PurchaseMember *)pData; // // //设置变量 // dwUserID = pPurchaseMember->dwUserID; // // //转化地址 // TCHAR szClientAddr[16] = TEXT(""); // BYTE * pClientAddr = (BYTE *)&pPurchaseMember->dwClientAddr; // _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]); // // //构造参数 // m_TreasureDBAide.ResetParameter(); // m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), pPurchaseMember->dwUserID); // m_TreasureDBAide.AddParameter(TEXT("@cbMemberOrder"), pPurchaseMember->cbMemberOrder); // m_TreasureDBAide.AddParameter(TEXT("@PurchaseTime"), pPurchaseMember->wPurchaseTime); // m_TreasureDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr); // m_TreasureDBAide.AddParameter(TEXT("@strMachineID"), pPurchaseMember->szMachineID); // // //输出参数 // TCHAR szDescribeString[128] = TEXT(""); // m_TreasureDBAide.AddParameterOutput(TEXT("@strNotifyContent"), szDescribeString, sizeof(szDescribeString), adParamOutput); // // //执行脚本 // LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_PurchaseMember"), true); // // //构造结构 // DBO_GR_PurchaseResult PurchaseResult; // ZeroMemory(&PurchaseResult, sizeof(PurchaseResult)); // // //执行成功 // if (lResultCode == DB_SUCCESS) // { // //设置变量 // PurchaseResult.bSuccessed = true; // // //变量定义 // if (m_TreasureDBModule->IsRecordsetEnd() == false) // { // //读取数据 // PurchaseResult.lCurrScore = m_TreasureDBAide.GetValue_LONGLONG(TEXT("CurrScore")); // PurchaseResult.dwUserRight = m_TreasureDBAide.GetValue_DWORD(TEXT("UserRight")); // PurchaseResult.cbMemberOrder = m_TreasureDBAide.GetValue_BYTE(TEXT("MemberOrder")); // } // } // // //提示内容 // CDBVarValue DBVarValue; // m_TreasureDBModule->GetParameter(TEXT("@strNotifyContent"), DBVarValue); // lstrcpyn(PurchaseResult.szNotifyContent, CW2CT(DBVarValue.bstrVal), CountArray(PurchaseResult.szNotifyContent)); // // //计算大小 // WORD wSendDataSize = sizeof(PurchaseResult) - sizeof(PurchaseResult.szNotifyContent); // wSendDataSize += CountStringBuffer(PurchaseResult.szNotifyContent); // // //发送参数 // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_PURCHASE_RESULT, dwContextID, &PurchaseResult, wSendDataSize); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_PurchaseMember ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // // return true; // } // catch (IDataBaseException * pIException) // { // //输出错误 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // // //构造结构 // DBO_GR_PurchaseResult PurchaseResult; // ZeroMemory(&PurchaseResult, sizeof(PurchaseResult)); // // //设置变量 // lstrcpyn(PurchaseResult.szNotifyContent, TEXT("数据库异常,请稍后再试!"), CountArray(PurchaseResult.szNotifyContent)); // // //计算大小 // WORD wSendDataSize = sizeof(PurchaseResult) - sizeof(PurchaseResult.szNotifyContent); // wSendDataSize += CountStringBuffer(PurchaseResult.szNotifyContent); // // //发送参数 // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_PURCHASE_RESULT, dwContextID, &PurchaseResult, wSendDataSize); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_PurchaseMember ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return false; // } //} // ////兑换游戏币 //bool CDataBaseEngineSink::OnRequestExchangeScore(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) //{ // CTimer Start; // try // { // //效验参数 // ASSERT(wDataSize == sizeof(DBR_GR_ExchangeScore)); // if (wDataSize != sizeof(DBR_GR_ExchangeScore)) return false; // // //请求处理 // DBR_GR_ExchangeScore * pExchangeScore = (DBR_GR_ExchangeScore *)pData; // // //设置变量 // dwUserID = pExchangeScore->dwUserID; // // //转化地址 // TCHAR szClientAddr[16] = TEXT(""); // BYTE * pClientAddr = (BYTE *)&pExchangeScore->dwClientAddr; // _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]); // // //构造参数 // m_TreasureDBAide.ResetParameter(); // m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), pExchangeScore->dwUserID); // ///---m_TreasureDBAide.AddParameter(TEXT("@ExchangeIngot"), pExchangeScore->lExchangeIngot); // m_TreasureDBAide.AddParameter(TEXT("@ExchangeID"), pExchangeScore->dwExchangeID); ///兑换id // m_TreasureDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr); // m_TreasureDBAide.AddParameter(TEXT("@strMachineID"), pExchangeScore->szMachineID); // // //输出参数 // TCHAR szDescribeString[128] = TEXT(""); // m_TreasureDBAide.AddParameterOutput(TEXT("@strNotifyContent"), szDescribeString, sizeof(szDescribeString), adParamOutput); // // //执行脚本 // LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_ExchangeScoreByID"), true); // // //构造结构 // DBO_GR_ExchangeResult ExchangeResult; // ZeroMemory(&ExchangeResult, sizeof(ExchangeResult)); // // ExchangeResult.bSuccessed = false; // //执行成功 // if (lResultCode == DB_SUCCESS) // { // ExchangeResult.bSuccessed = true; // if (m_TreasureDBModule->IsRecordsetEnd() == false) // { // //读取数据 // ExchangeResult.lCurrScore = m_TreasureDBAide.GetValue_LONGLONG(TEXT("CurrScore")); // ExchangeResult.lCurrIngot = m_TreasureDBAide.GetValue_LONGLONG(TEXT("CurrIngot")); // } // } // // //提示内容 // CDBVarValue DBVarValue; // m_TreasureDBModule->GetParameter(TEXT("@strNotifyContent"), DBVarValue); // lstrcpyn(ExchangeResult.szNotifyContent, CW2CT(DBVarValue.bstrVal), CountArray(ExchangeResult.szNotifyContent)); // // //计算大小 // WORD wSendDataSize = sizeof(ExchangeResult) - sizeof(ExchangeResult.szNotifyContent); // wSendDataSize += CountStringBuffer(ExchangeResult.szNotifyContent); // // //发送参数 // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_EXCHANGE_RESULT, dwContextID, &ExchangeResult, wSendDataSize); // // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // csTest.Format(_T("存储过程耗时 GSP_GR_ExchangeScoreByID ----> %.3f "), dRet); // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // // return true; // } // catch (IDataBaseException * pIException) // { // //输出错误 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // // //构造结构 // DBO_GR_ExchangeResult ExchangeResult; // ZeroMemory(&ExchangeResult, sizeof(ExchangeResult)); // // //设置变量 // lstrcpyn(ExchangeResult.szNotifyContent, TEXT("数据库异常,请稍后再试!"), CountArray(ExchangeResult.szNotifyContent)); // // //计算大小 // WORD wSendDataSize = sizeof(ExchangeResult) - sizeof(ExchangeResult.szNotifyContent); // wSendDataSize += CountStringBuffer(ExchangeResult.szNotifyContent); // // //发送参数 // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_EXCHANGE_RESULT, dwContextID, &ExchangeResult, wSendDataSize); // // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // csTest.Format(_T("存储过程耗时 GSP_GR_ExchangeScoreByID ----> %.3f "), dRet); // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return false; // } //} //道具请求 //bool CDataBaseEngineSink::OnRequestPropertyRequest(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) //{ // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestPropertyRequest"), TraceLevel_Debug); // CTimer Start; // try // { // //效验参数 // ASSERT(wDataSize == sizeof(DBR_GR_PropertyRequest)); // if (wDataSize != sizeof(DBR_GR_PropertyRequest)) return false; // // //请求处理 // DBR_GR_PropertyRequest * pPropertyRequest = (DBR_GR_PropertyRequest *)pData; // dwUserID = pPropertyRequest->dwSourceUserID; // // //转化地址 // TCHAR szClientAddr[16] = TEXT(""); // BYTE * pClientAddr = (BYTE *)&pPropertyRequest->dwClientAddr; // _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]); // // //构造参数 // m_GameDBAide.ResetParameter(); // // //消费信息 // m_GameDBAide.AddParameter(TEXT("@dwSourceUserID"), pPropertyRequest->dwSourceUserID); // m_GameDBAide.AddParameter(TEXT("@dwTargetUserID"), pPropertyRequest->dwTargetUserID); // m_GameDBAide.AddParameter(TEXT("@wPropertyID"), pPropertyRequest->wPropertyIndex); // m_GameDBAide.AddParameter(TEXT("@wPropertyCount"), pPropertyRequest->wItemCount); // // //消费区域 // m_GameDBAide.AddParameter(TEXT("@wKindID"), m_pGameServiceOption->wKindID); // m_GameDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID); // m_GameDBAide.AddParameter(TEXT("@wTableID"), pPropertyRequest->wTableID); // // //购买方式 // m_GameDBAide.AddParameter(TEXT("@cbConsumeScore"), pPropertyRequest->cbConsumeScore); // m_GameDBAide.AddParameter(TEXT("@lFrozenedScore"), pPropertyRequest->lFrozenedScore); // // //系统信息 // m_GameDBAide.AddParameter(TEXT("@dwEnterID"), pPropertyRequest->dwInoutIndex); // m_GameDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr); // m_GameDBAide.AddParameter(TEXT("@strMachineID"), pPropertyRequest->szMachineID); // // //输出参数 // TCHAR szDescribeString[128] = TEXT(""); // m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); // // //结果处理 // if (m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_ConsumeProperty"), true) == DB_SUCCESS) // { // //变量定义 // DBO_GR_S_PropertySuccess PresentSuccess; // ZeroMemory(&PresentSuccess, sizeof(PresentSuccess)); // // //道具信息 // PresentSuccess.cbRequestArea = pPropertyRequest->cbRequestArea; // PresentSuccess.wItemCount = pPropertyRequest->wItemCount; // PresentSuccess.wPropertyIndex = pPropertyRequest->wPropertyIndex; // PresentSuccess.dwSourceUserID = pPropertyRequest->dwSourceUserID; // PresentSuccess.dwTargetUserID = pPropertyRequest->dwTargetUserID; // // //消费模式 // PresentSuccess.cbConsumeScore = pPropertyRequest->cbConsumeScore; // PresentSuccess.lFrozenedScore = pPropertyRequest->lFrozenedScore; // // //用户权限 // PresentSuccess.dwUserRight = pPropertyRequest->dwUserRight; // // //结果信息 // PresentSuccess.lConsumeGold = m_GameDBAide.GetValue_LONGLONG(TEXT("ConsumeGold")); // PresentSuccess.lSendLoveLiness = m_GameDBAide.GetValue_LONG(TEXT("SendLoveLiness")); // PresentSuccess.lRecvLoveLiness = m_GameDBAide.GetValue_LONG(TEXT("RecvLoveLiness")); // PresentSuccess.cbMemberOrder = m_GameDBAide.GetValue_BYTE(TEXT("MemberOrder")); // // //发送结果 // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_PROPERTY_SUCCESS, dwContextID, &PresentSuccess, sizeof(PresentSuccess)); // } // else // { // //获取参数 // CDBVarValue DBVarValue; // m_GameDBAide.GetParameter(TEXT("@strErrorDescribe"), DBVarValue); // // //变量定义 // DBO_GR_PropertyFailure PropertyFailure; // ZeroMemory(&PropertyFailure, sizeof(PropertyFailure)); // // //设置变量 // PropertyFailure.lResultCode = m_GameDBAide.GetReturnValue(); // PropertyFailure.lFrozenedScore = pPropertyRequest->lFrozenedScore; // PropertyFailure.cbRequestArea = pPropertyRequest->cbRequestArea; // lstrcpyn(PropertyFailure.szDescribeString, CW2CT(DBVarValue.bstrVal), CountArray(PropertyFailure.szDescribeString)); // // //发送结果 // WORD wDataSize = CountStringBuffer(PropertyFailure.szDescribeString); // WORD wHeadSize = sizeof(PropertyFailure) - sizeof(PropertyFailure.szDescribeString); // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_PROPERTY_FAILURE, dwContextID, &PropertyFailure, wHeadSize + wDataSize); // } // // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_ConsumeProperty ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // } // catch (IDataBaseException * pIException) // { // //输出错误 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // // //变量定义 // DBO_GR_PropertyFailure PropertyFailure; // ZeroMemory(&PropertyFailure, sizeof(PropertyFailure)); // // //变量定义 // DBR_GR_PropertyRequest * pPropertyRequest = (DBR_GR_PropertyRequest *)pData; // // //设置变量 // PropertyFailure.lResultCode = DB_ERROR; // PropertyFailure.lFrozenedScore = pPropertyRequest->lFrozenedScore; // PropertyFailure.cbRequestArea = pPropertyRequest->cbRequestArea; // lstrcpyn(PropertyFailure.szDescribeString, TEXT("由于数据库操作异常,请您稍后重试!"), CountArray(PropertyFailure.szDescribeString)); // // //发送结果 // WORD wDataSize = CountStringBuffer(PropertyFailure.szDescribeString); // WORD wHeadSize = sizeof(PropertyFailure) - sizeof(PropertyFailure.szDescribeString); // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_PROPERTY_FAILURE, dwContextID, &PropertyFailure, wHeadSize + wDataSize); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_ConsumeProperty ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return false; // } // // return true; //} ////比赛报名 //bool CDataBaseEngineSink::OnRequestMatchSignup(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) //{ // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestMatchSignup"), TraceLevel_Debug); // //效验参数 // ASSERT(wDataSize == sizeof(DBR_GR_MatchSignup)); // if (wDataSize != sizeof(DBR_GR_MatchSignup)) return false; // CTimer Start; // //变量定义 // DBR_GR_MatchSignup * pMatchSignup = (DBR_GR_MatchSignup *)pData; // dwUserID = pMatchSignup->dwUserID; // // //请求处理 // try // { // //转化地址 // TCHAR szClientAddr[16] = TEXT(""); // BYTE * pClientAddr = (BYTE *)&pMatchSignup->dwClientAddr; // _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]); // // //构造参数 // m_GameDBAide.ResetParameter(); // m_GameDBAide.AddParameter(TEXT("@dwUserID"), pMatchSignup->dwUserID); // m_GameDBAide.AddParameter(TEXT("@lMatchFee"), pMatchSignup->lMatchFee); // m_GameDBAide.AddParameter(TEXT("@wKindID"), m_pGameServiceOption->wKindID); // m_GameDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID); // m_GameDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr); // m_GameDBAide.AddParameter(TEXT("@dwMatchID"), pMatchSignup->dwMatchID); // m_GameDBAide.AddParameter(TEXT("@dwMatchNo"), pMatchSignup->dwMatchNO); // m_GameDBAide.AddParameter(TEXT("@strMachineID"), pMatchSignup->szMachineID); // // //输出参数 // TCHAR szDescribeString[128] = TEXT(""); // m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); // // //结果处理 // LONG lReturnValue = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_UserMatchFee"), true); // // //构造结构 // DBO_GR_MatchSingupResult MatchSignupResult; // ZeroMemory(&MatchSignupResult, sizeof(MatchSignupResult)); // // //设置变量 // MatchSignupResult.bResultCode = lReturnValue == DB_SUCCESS; // // //读取财富 // if (MatchSignupResult.bResultCode == true) // { // MatchSignupResult.lCurrGold = m_GameDBAide.GetValue_LONGLONG(TEXT("Score")); // MatchSignupResult.lCurrIngot = m_GameDBAide.GetValue_LONGLONG(TEXT("Ingot")); // } // else // { // //错误描述 // CDBVarValue DBVarValue; // m_GameDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue); // lstrcpyn(MatchSignupResult.szDescribeString, CW2CT(DBVarValue.bstrVal), CountArray(MatchSignupResult.szDescribeString)); // } // // //发送结果 // WORD wSendDataSize = sizeof(MatchSignupResult) - sizeof(MatchSignupResult.szDescribeString); // wSendDataSize += CountStringBuffer(MatchSignupResult.szDescribeString); // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_MATCH_SIGNUP_RESULT, dwContextID, &MatchSignupResult, wSendDataSize); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_UserMatchFee ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return true; // } // catch (IDataBaseException * pIException) // { // //错误信息 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // // //构造结构 // DBO_GR_MatchSingupResult MatchSignupResult; // ZeroMemory(&MatchSignupResult, sizeof(MatchSignupResult)); // // //设置变量 // MatchSignupResult.bResultCode = false; // lstrcpyn(MatchSignupResult.szDescribeString, TEXT("由于数据库操作异常,请您稍后重试!"), CountArray(MatchSignupResult.szDescribeString)); // // //发送结果 // WORD wSendDataSize = sizeof(MatchSignupResult) - sizeof(MatchSignupResult.szDescribeString); // wSendDataSize += CountStringBuffer(MatchSignupResult.szDescribeString); // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_MATCH_SIGNUP_RESULT, dwContextID, &MatchSignupResult, wSendDataSize); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_UserMatchFee ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return false; // } // // return true; //} // ////退出比赛 //bool CDataBaseEngineSink::OnRequestMatchUnSignup(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) //{ // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestMatchUnSignup"), TraceLevel_Debug); // //效验参数 // ASSERT(wDataSize == sizeof(DBR_GR_MatchSignup)); // if (wDataSize != sizeof(DBR_GR_MatchSignup)) return false; // CTimer Start; // //变量定义 // DBR_GR_MatchSignup * pMatchSignup = (DBR_GR_MatchSignup *)pData; // dwUserID = pMatchSignup->dwUserID; // // //请求处理 // try // { // //转化地址 // TCHAR szClientAddr[16] = TEXT(""); // BYTE * pClientAddr = (BYTE *)&pMatchSignup->dwClientAddr; // _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]); // // //构造参数 // m_GameDBAide.ResetParameter(); // m_GameDBAide.AddParameter(TEXT("@dwUserID"), pMatchSignup->dwUserID); // m_GameDBAide.AddParameter(TEXT("@lMatchFee"), pMatchSignup->lMatchFee); // m_GameDBAide.AddParameter(TEXT("@wKindID"), m_pGameServiceOption->wKindID); // m_GameDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID); // m_GameDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr); // m_GameDBAide.AddParameter(TEXT("@dwMatchID"), pMatchSignup->dwMatchID); // m_GameDBAide.AddParameter(TEXT("@dwMatchNo"), pMatchSignup->dwMatchNO); // m_GameDBAide.AddParameter(TEXT("@strMachineID"), pMatchSignup->szMachineID); // // //输出参数 // TCHAR szDescribeString[128] = TEXT(""); // m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); // // //结果处理 // LONG lReturnValue = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_UserMatchQuit"), true); // // //构造结构 // DBO_GR_MatchSingupResult MatchSignupResult; // ZeroMemory(&MatchSignupResult, sizeof(MatchSignupResult)); // // //设置变量 // MatchSignupResult.bResultCode = lReturnValue == DB_SUCCESS; // // //读取财富 // if (MatchSignupResult.bResultCode == true) // { // MatchSignupResult.lCurrGold = m_GameDBAide.GetValue_LONGLONG(TEXT("Score")); // MatchSignupResult.lCurrIngot = m_GameDBAide.GetValue_LONGLONG(TEXT("Ingot")); // } // else // { // //错误描述 // CDBVarValue DBVarValue; // m_GameDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue); // lstrcpyn(MatchSignupResult.szDescribeString, CW2CT(DBVarValue.bstrVal), CountArray(MatchSignupResult.szDescribeString)); // } // // //发送结果 // WORD wSendDataSize = sizeof(MatchSignupResult) - sizeof(MatchSignupResult.szDescribeString); // wSendDataSize += CountStringBuffer(MatchSignupResult.szDescribeString); // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_MATCH_UNSIGNUP_RESULT, dwContextID, &MatchSignupResult, wSendDataSize); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_UserMatchQuit ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // // return true; // } // catch (IDataBaseException * pIException) // { // //错误信息 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // // //构造结构 // DBO_GR_MatchSingupResult MatchSignupResult; // ZeroMemory(&MatchSignupResult, sizeof(MatchSignupResult)); // // //设置变量 // MatchSignupResult.bResultCode = false; // lstrcpyn(MatchSignupResult.szDescribeString, TEXT("由于数据库操作异常,请您稍后重试!"), CountArray(MatchSignupResult.szDescribeString)); // // //发送结果 // WORD wSendDataSize = sizeof(MatchSignupResult) - sizeof(MatchSignupResult.szDescribeString); // wSendDataSize += CountStringBuffer(MatchSignupResult.szDescribeString); // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_MATCH_SIGNUP_RESULT, dwContextID, &MatchSignupResult, wSendDataSize); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_UserMatchQuit ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return false; // } //} // ////比赛开始 //bool CDataBaseEngineSink::OnRequestMatchStart(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) //{ // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestMatchStart"), TraceLevel_Debug); // //效验参数 // ASSERT(wDataSize == sizeof(DBR_GR_MatchStart)); // if (wDataSize != sizeof(DBR_GR_MatchStart)) return false; // CTimer Start; // //变量定义 // DBR_GR_MatchStart * pMatchStart = (DBR_GR_MatchStart *)pData; // // //请求处理 // try // { // //构造参数 // m_GameDBAide.ResetParameter(); // m_GameDBAide.AddParameter(TEXT("@wServerID"), pMatchStart->dwMatchID); // m_GameDBAide.AddParameter(TEXT("@wMatchID"), pMatchStart->dwMatchID); // m_GameDBAide.AddParameter(TEXT("@wMatchNo"), pMatchStart->dwMatchNO); // m_GameDBAide.AddParameter(TEXT("@cbMatchType"), pMatchStart->cbMatchType); // // //结果处理 // LONG lReturnValue = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_MatchStart"), true); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_MatchStart ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return true; // } // catch (IDataBaseException * pIException) // { // //错误信息 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // // //错误处理 // OnInsureDisposeResult(dwContextID, DB_ERROR, 0L, TEXT("由于数据库操作异常,请您稍后重试!"), false); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_MatchStart ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return false; // } // // return true; //} // ////比赛结束 //bool CDataBaseEngineSink::OnRequestMatchOver(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) //{ // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestMatchOver"), TraceLevel_Debug); // //效验参数 // ASSERT(wDataSize == sizeof(DBR_GR_MatchOver)); // if (wDataSize != sizeof(DBR_GR_MatchOver)) return false; // CTimer Start; // // //变量定义 // DBR_GR_MatchOver * pMatchOver = (DBR_GR_MatchOver *)pData; // // //请求处理 // try // { // //构造参数 // m_GameDBAide.ResetParameter(); // m_GameDBAide.AddParameter(TEXT("@wServerID"), pMatchOver->wServerID); // m_GameDBAide.AddParameter(TEXT("@dwMatchID"), pMatchOver->dwMatchID); // m_GameDBAide.AddParameter(TEXT("@dwMatchNo"), pMatchOver->dwMatchNO); // m_GameDBAide.AddParameter(TEXT("@cbMatchType"), pMatchOver->cbMatchType); // m_GameDBAide.AddParameter(TEXT("@MatchStartTime"), pMatchOver->MatchStartTime); // m_GameDBAide.AddParameter(TEXT("@MatchEndTime"), pMatchOver->MatchEndTime); // // //结果处理 // LONG lReturnValue = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_MatchOver"), true); // // //执行成功 // if (lReturnValue == DB_SUCCESS) // { // //构造结构 // DBO_GR_MatchRankList MatchRankList; // ZeroMemory(&MatchRankList, sizeof(MatchRankList)); // // //变量定义 // tagMatchRankInfo * pMatchRankInfo = NULL; // // //设置变量 // MatchRankList.dwMatchID = pMatchOver->dwMatchID; // MatchRankList.dwMatchNO = pMatchOver->dwMatchNO; // // //读取记录 // while (m_GameDBModule->IsRecordsetEnd() == false) // { // pMatchRankInfo = &MatchRankList.MatchRankInfo[MatchRankList.wUserCount++]; // pMatchRankInfo->wRankID = m_GameDBAide.GetValue_WORD(TEXT("RankID")); // pMatchRankInfo->dwUserID = m_GameDBAide.GetValue_DWORD(TEXT("UserID")); // pMatchRankInfo->lMatchScore = m_GameDBAide.GetValue_LONGLONG(TEXT("Score")); // pMatchRankInfo->lRewardGold = m_GameDBAide.GetValue_LONGLONG(TEXT("RewardGold")); // pMatchRankInfo->dwRewardIngot = m_GameDBAide.GetValue_DWORD(TEXT("RewardMedal")); // pMatchRankInfo->dwRewardExperience = m_GameDBAide.GetValue_DWORD(TEXT("RewardExperience")); // // //移动游标 // m_GameDBModule->MoveToNext(); // } // // //发送数据 // WORD wSendDataSize = sizeof(MatchRankList) - sizeof(MatchRankList.MatchRankInfo); // wSendDataSize += MatchRankList.wUserCount * sizeof(MatchRankList.MatchRankInfo[0]); // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_MATCH_RANK_LIST, dwContextID, &MatchRankList, wSendDataSize); // } // // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_MatchOver ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // // return true; // } // catch (IDataBaseException * pIException) // { // //错误信息 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_MatchOver ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return false; // } // // return true; //} // ////比赛奖励 //bool CDataBaseEngineSink::OnRequestMatchReward(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) //{ // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestMatchReward"), TraceLevel_Debug); // //效验参数 // ASSERT(wDataSize == sizeof(DBR_GR_MatchReward)); // if (wDataSize != sizeof(DBR_GR_MatchReward)) return false; // CTimer Start; // //变量定义 // DBR_GR_MatchReward * pMatchReward = (DBR_GR_MatchReward *)pData; // dwUserID = pMatchReward->dwUserID; // // //请求处理 // try // { // //转化地址 // TCHAR szClientAddr[16] = TEXT(""); // BYTE * pClientAddr = (BYTE *)&pMatchReward->dwClientAddr; // _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]); // // //构造参数 // m_GameDBAide.ResetParameter(); // m_GameDBAide.AddParameter(TEXT("@dwUserID"), pMatchReward->dwUserID); // m_GameDBAide.AddParameter(TEXT("@dwRewardGold"), pMatchReward->lRewardGold); // m_GameDBAide.AddParameter(TEXT("@dwRewardIngot"), pMatchReward->dwRewardIngot); // m_GameDBAide.AddParameter(TEXT("@dwRewardExperience"), pMatchReward->dwRewardExperience); // m_GameDBAide.AddParameter(TEXT("@wKindID"), m_pGameServiceOption->wKindID); // m_GameDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID); // m_GameDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr); // // //结果处理 // LONG lReturnValue = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_MatchReward"), true); // // //构造结构 // DBR_GR_MatchRewardResult MatchRewardResult; // ZeroMemory(&MatchRewardResult, sizeof(MatchRewardResult)); // // //设置变量 // MatchRewardResult.bResultCode = lReturnValue == DB_SUCCESS; // // //读取财富 // if (MatchRewardResult.bResultCode == true) // { // MatchRewardResult.lCurrGold = m_GameDBAide.GetValue_LONGLONG(TEXT("Score")); // MatchRewardResult.lCurrIngot = m_GameDBAide.GetValue_LONGLONG(TEXT("Ingot")); // MatchRewardResult.dwCurrExperience = m_GameDBAide.GetValue_DWORD(TEXT("Experience")); // } // // //发送结果 // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_MATCH_REWARD_RESULT, dwContextID, &MatchRewardResult, sizeof(MatchRewardResult)); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_MatchReward ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // // return true; // } // catch (IDataBaseException * pIException) // { // //错误信息 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // // //构造结构 // DBR_GR_MatchRewardResult MatchRewardResult; // ZeroMemory(&MatchRewardResult, sizeof(MatchRewardResult)); // // //设置变量 // MatchRewardResult.bResultCode = false; // // //发送结果 // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_MATCH_REWARD_RESULT, dwContextID, &MatchRewardResult, sizeof(MatchRewardResult)); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_MatchReward ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return false; // } // // return true; //} // ////比赛淘汰 //bool CDataBaseEngineSink::OnRequestMatchEliminate(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) //{ // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestMatchEliminate"), TraceLevel_Debug); // //效验参数 // ASSERT(wDataSize == sizeof(DBR_GR_MatchEliminate)); // if (wDataSize != sizeof(DBR_GR_MatchEliminate)) return false; // CTimer Start; // //变量定义 // DBR_GR_MatchEliminate * pMatchEliminate = (DBR_GR_MatchEliminate *)pData; // // //请求处理 // try // { // //构造参数 // m_GameDBAide.ResetParameter(); // m_GameDBAide.AddParameter(TEXT("@dwUserID"), pMatchEliminate->dwUserID); // m_GameDBAide.AddParameter(TEXT("@wServerID"), pMatchEliminate->wServerID); // m_GameDBAide.AddParameter(TEXT("@wMatchID"), pMatchEliminate->dwMatchID); // m_GameDBAide.AddParameter(TEXT("@wMatchNo"), pMatchEliminate->dwMatchNO); // m_GameDBAide.AddParameter(TEXT("@cbMatchType"), pMatchEliminate->cbMatchType); // // //结果处理 // LONG lReturnValue = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_MatchEliminate"), false); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_MatchEliminate ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return true; // } // catch (IDataBaseException * pIException) // { // //错误信息 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_MatchEliminate ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return false; // } // // return true; //} // ////用户权限 //bool CDataBaseEngineSink::OnRequestManageUserRight(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) //{ // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestManageUserRight"), TraceLevel_Debug); // CTimer Start; // try // { // //效验参数 // ASSERT(wDataSize == sizeof(DBR_GR_ManageUserRight)); // if (wDataSize != sizeof(DBR_GR_ManageUserRight)) return false; // // //请求处理 // DBR_GR_ManageUserRight * pManageUserRight = (DBR_GR_ManageUserRight *)pData; // dwUserID = pManageUserRight->dwUserID; // // //构造参数 // m_GameDBAide.ResetParameter(); // m_GameDBAide.AddParameter(TEXT("@dwUserID"), pManageUserRight->dwUserID); // m_GameDBAide.AddParameter(TEXT("@dwAddRight"), pManageUserRight->dwAddRight); // m_GameDBAide.AddParameter(TEXT("@dwRemoveRight"), pManageUserRight->dwRemoveRight); // // //执行查询 // LONG lReturnValue = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_ManageUserRight"), false); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_ManageUserRight ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // // return true; // } // catch (IDataBaseException * pIException) // { // //错误信息 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_ManageUserRight ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return false; // } // // return true; //} // ////比赛权限 //bool CDataBaseEngineSink::OnRequestManageMatchRight(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) //{ // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestManageMatchRight"), TraceLevel_Debug); // CTimer Start; // try // { // //效验参数 // ASSERT(wDataSize == sizeof(DBR_GR_ManageUserRight)); // if (wDataSize != sizeof(DBR_GR_ManageUserRight)) return false; // // //请求处理 // DBR_GR_ManageMatchRight * pManageMatchRight = (DBR_GR_ManageMatchRight *)pData; // dwUserID = pManageMatchRight->dwUserID; // // //构造参数 // m_GameDBAide.ResetParameter(); // m_GameDBAide.AddParameter(TEXT("@dwUserID"), pManageMatchRight->dwUserID); // m_GameDBAide.AddParameter(TEXT("@dwAddRight"), pManageMatchRight->dwAddRight); // m_GameDBAide.AddParameter(TEXT("@dwRemoveRight"), pManageMatchRight->dwRemoveRight); // m_GameDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID); // m_GameDBAide.AddParameter(TEXT("@dwMatchID"), pManageMatchRight->dwMatchID); // m_GameDBAide.AddParameter(TEXT("@dwMatchNo"), pManageMatchRight->dwMatchNO); // // //执行查询 // LONG lReturnValue = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_ManageMatchRight"), false); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_ManageMatchRight ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return true; // } // catch (IDataBaseException * pIException) // { // //错误信息 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // // //错误处理 // OnInsureDisposeResult(dwContextID, DB_ERROR, 0L, TEXT("由于数据库操作异常,请您稍后重试!"), false); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_ManageMatchRight ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return false; // } // // return true; //} ////系统消息 //bool CDataBaseEngineSink::OnRequestLoadSystemMessage(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) //{ // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestLoadSystemMessage"), TraceLevel_Debug); // CTimer Start; // try // { // //构造参数 // m_GameDBAide.ResetParameter(); // m_GameDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID); // // //执行查询 // LONG lReturnValue = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_LoadSystemMessage"), true); // // //结果处理 // if (lReturnValue == 0) // { // TCHAR szServerID[32] = { 0 }; // _sntprintf(szServerID, CountArray(szServerID), TEXT("%d"), m_pGameServiceOption->wServerID); // // while (true) // { // //结束判断 // if (m_GameDBModule->IsRecordsetEnd() == true) break; // // //定义变量 // TCHAR szServerRange[1024] = { 0 }; // CString strServerRange; // bool bSendMessage = false; // bool bAllRoom = false; // // //读取范围 // m_GameDBAide.GetValue_String(TEXT("ServerRange"), szServerRange, CountArray(szServerRange)); // szServerRange[1023] = 0; // strServerRange.Format(TEXT("%s"), szServerRange); // // //范围判断 // while (true) // { // int nfind = strServerRange.Find(TEXT(',')); // if (nfind != -1 && nfind > 0) // { // CString strID = strServerRange.Left(nfind); // WORD wServerID = StrToInt(strID); // bSendMessage = (wServerID == 0 || wServerID == m_pGameServiceOption->wServerID); // if (wServerID == 0)bAllRoom = true; // // if (bSendMessage) break; // // strServerRange = strServerRange.Right(strServerRange.GetLength() - nfind - 1); // } // else // { // WORD wServerID = StrToInt(szServerRange); // bSendMessage = (wServerID == 0 || wServerID == m_pGameServiceOption->wServerID); // if (wServerID == 0)bAllRoom = true; // // break; // } // } // // //发送消息 // if (bSendMessage) // { // //定义变量 // DBR_GR_SystemMessage SystemMessage; // ZeroMemory(&SystemMessage, sizeof(SystemMessage)); // // //读取消息 // SystemMessage.dwMessageID = m_GameDBAide.GetValue_DWORD(TEXT("ID")); // SystemMessage.cbMessageType = m_GameDBAide.GetValue_BYTE(TEXT("MessageType")); // SystemMessage.dwTimeRate = m_GameDBAide.GetValue_DWORD(TEXT("TimeRate")); // SystemMessage.cbAllRoom = bAllRoom ? TRUE : FALSE; // m_GameDBAide.GetValue_String(TEXT("MessageString"), SystemMessage.szSystemMessage, CountArray(SystemMessage.szSystemMessage)); // // //读取时间 // SYSTEMTIME systime; // ZeroMemory(&systime, sizeof(systime)); // // //开始时间 // m_GameDBAide.GetValue_SystemTime(TEXT("StartTime"), systime); // CTime StarTime(systime); // SystemMessage.tStartTime = StarTime.GetTime(); // // //结束时间 // m_GameDBAide.GetValue_SystemTime(TEXT("ConcludeTime"), systime); // CTime ConcludeTime(systime); // SystemMessage.tConcludeTime = ConcludeTime.GetTime(); // // //发送结果 // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_SYSTEM_MESSAGE_RESULT, dwContextID, &SystemMessage, sizeof(SystemMessage)); // } // // //下一条 // m_GameDBModule->MoveToNext(); // } // // //加载完成 // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_SYSTEM_MESSAGE_FINISH, dwContextID, NULL, 0); // } // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_LoadSystemMessage ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // // return true; // } // catch (IDataBaseException * pIException) // { // //错误信息 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // // //错误处理 // //OnInsureDisposeResult(dwContextID, DB_ERROR, 0L, TEXT("由于数据库操作异常,请您稍后重试!"), false); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_LoadSystemMessage ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return false; // } // // return true; //} // // ////加载敏感词 //bool CDataBaseEngineSink::OnRequestLoadSensitiveWords(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) //{ // CTimer Start; // try // { // //构造参数 // m_PlatformDBAide.ResetParameter(); // // //执行查询 // LONG lReturnValue = m_PlatformDBAide.ExecuteProcess(TEXT("GSP_GR_LoadSensitiveWords"), true); // // //读取信息 // if (lReturnValue == DB_SUCCESS) // { // //起始消息 // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_SENSITIVE_WORDS, 0xfffe, NULL, 0); // // //读取消息 // while (m_PlatformDBModule->IsRecordsetEnd() == false) // { // //变量定义 // TCHAR szSensitiveWords[32] = TEXT(""); // // //读取消息 // m_PlatformDBAide.GetValue_String(TEXT("SensitiveWords"), szSensitiveWords, CountArray(szSensitiveWords)); // // //发送消息 // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_SENSITIVE_WORDS, 0, szSensitiveWords, sizeof(szSensitiveWords)); // // //移动记录 // m_PlatformDBModule->MoveToNext(); // }; // // //结束消息 // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_SENSITIVE_WORDS, 0xffff, NULL, 0); // } // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_LoadSensitiveWords ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return true; // } // catch (IDataBaseException * pIException) // { // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_LoadSensitiveWords ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return false; // } // // return true; //} void CDataBaseEngineSink::Fstring(TCHAR* pCheck) { for (int i = 0; i < 32; i++) { try { WORD bb = pCheck[i]; if ((bb > 126 && bb < 19968) || (bb > 40869) || bb < 33) { if (pCheck[i] == 0x00) break; pCheck[i] = L' '; } } catch (...) { } } } //解锁机器 //bool CDataBaseEngineSink::UnLockAndroidUser() //{ // CTraceService::TraceString(TEXT("CDataBaseEngineSink::UnLockAndroidUser"), TraceLevel_Debug); // CTimer Start; // try // { // //构造参数 // m_GameDBAide.ResetParameter(); // m_GameDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID); // // //执行查询 // LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_UnlockAndroidUser"), false); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_UnlockAndroidUser ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return true; // } // catch (IDataBaseException * pIException) // { // //输出错误 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GR_UnlockAndroidUser ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // } // // return false; //} //登录结果 VOID CDataBaseEngineSink::OnLogonDisposeResult(DWORD dwContextID, DWORD dwErrorCode, LPCTSTR pszErrorString, bool bMobileClient, BYTE cbDeviceType, WORD wBehaviorFlags, WORD wPageTableCount) { if (dwErrorCode == DB_SUCCESS) { //属性资料 m_LogonSuccess.wFaceID = m_GameDBAide.GetValue_WORD(TEXT("FaceID")); m_LogonSuccess.dwUserID = m_GameDBAide.GetValue_DWORD(TEXT("UserID")); m_LogonSuccess.dwGameID = m_GameDBAide.GetValue_DWORD(TEXT("GameID")); m_LogonSuccess.dwGroupID = m_GameDBAide.GetValue_DWORD(TEXT("GroupID")); m_LogonSuccess.dwCustomID = m_GameDBAide.GetValue_DWORD(TEXT("CustomID")); m_LogonSuccess.llJiePing = m_GameDBAide.GetValue_LONGLONG(TEXT("llJiePing")); m_LogonSuccess.iXinYong = m_GameDBAide.GetValue_INT(TEXT("iXinYong")); TCHAR szBuffer[128] = { 0 }; ZeroMemory(szBuffer, 128 * sizeof(TCHAR)); m_GameDBAide.GetValue_String(TEXT("NickName"), szBuffer, CountArray(szBuffer)); TCHAR szOutBuffer[128] = { 0 }; ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR)); //解码 int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer); if (iRet == -1) { szBuffer[32] = 0x0; _sntprintf(m_LogonSuccess.szNickName, 32, TEXT("%s"), szBuffer); } else { szOutBuffer[32] = 0x0; _sntprintf(m_LogonSuccess.szNickName, 32, TEXT("%s"), szOutBuffer); } //过滤字符 Fstring(m_LogonSuccess.szNickName); m_GameDBAide.GetValue_String(TEXT("UserUin"), m_LogonSuccess.szUnionID, CountArray(m_LogonSuccess.szUnionID)); COleDateTime Time; CString csTest1, csTest2, csTest3, csTest; m_GameDBAide.GetValue_String(TEXT("RegisterDate"), m_LogonSuccess.RegTime, CountArray(m_LogonSuccess.RegTime)); csTest = m_LogonSuccess.RegTime; csTest1 = csTest.Mid(6, 4); csTest2 = csTest.Mid(0, 2); csTest3 = csTest.Mid(3, 2); csTest = csTest1 + _T("/") + csTest2 + _T("/") + csTest3; _sntprintf(m_LogonSuccess.RegTime, 16, TEXT("%s"), csTest.GetBuffer()); csTest.ReleaseBuffer(); m_LogonSuccess.dDaiLi = m_GameDBAide.GetValue_DWORD(TEXT("BingID")); //用户资料 m_LogonSuccess.cbGender = m_GameDBAide.GetValue_BYTE(TEXT("Gender")); m_LogonSuccess.cbMemberOrder = m_GameDBAide.GetValue_BYTE(TEXT("MemberOrder")); m_LogonSuccess.cbMasterOrder = m_GameDBAide.GetValue_BYTE(TEXT("MasterOrder")); //m_GameDBAide.GetValue_String(TEXT("UnderWrite"), m_LogonSuccess.szUnderWrite, CountArray(m_LogonSuccess.szUnderWrite)); //积分信息 m_LogonSuccess.lScore = m_GameDBAide.GetValue_LONGLONG(TEXT("Score")); //m_LogonSuccess.lIngot = m_GameDBAide.GetValue_LONG(TEXT("Ingot")); m_LogonSuccess.lGrade = m_GameDBAide.GetValue_LONGLONG(TEXT("Grade")); m_LogonSuccess.lInsure = m_GameDBAide.GetValue_LONGLONG(TEXT("Insure")); m_LogonSuccess.dwBean = m_GameDBAide.GetValue_DWORD(TEXT("Beans")); //索引变量 m_LogonSuccess.dwInoutIndex = m_GameDBAide.GetValue_LONG(TEXT("InoutIndex")); m_LogonSuccess.dwWinCount = m_GameDBAide.GetValue_LONG(TEXT("WinCount")); m_LogonSuccess.dwLostCount = m_GameDBAide.GetValue_LONG(TEXT("LostCount")); m_LogonSuccess.dwDrawCount = m_GameDBAide.GetValue_LONG(TEXT("DrawCount")); m_LogonSuccess.dwFleeCount = m_GameDBAide.GetValue_LONG(TEXT("FleeCount")); m_LogonSuccess.dwExperience = m_GameDBAide.GetValue_LONG(TEXT("Experience")); m_LogonSuccess.lLoveLiness = m_GameDBAide.GetValue_LONG(TEXT("LoveLiness")); //附加信息 m_LogonSuccess.dwUserRight = m_GameDBAide.GetValue_DWORD(TEXT("UserRight")); m_LogonSuccess.dwMasterRight = m_GameDBAide.GetValue_DWORD(TEXT("MasterRight")); m_GameDBAide.GetValue_String(TEXT("DaiLiName"), m_LogonSuccess.DaiLiName, CountArray(m_LogonSuccess.DaiLiName)); m_GameDBAide.GetValue_String(TEXT("DaiLiQQ"), m_LogonSuccess.DaiLiQQ, CountArray(m_LogonSuccess.DaiLiQQ)); m_GameDBAide.GetValue_String(TEXT("DaiLiWX"), m_LogonSuccess.DaiLiWX, CountArray(m_LogonSuccess.DaiLiWX)); m_LogonSuccess.LeiJiZuanShi = m_GameDBAide.GetValue_INT(TEXT("LeiJiZuanShi")); m_LogonSuccess.GouMaiZuanShi = m_GameDBAide.GetValue_INT(TEXT("GouMaiZuanShi")); m_LogonSuccess.cbDeviceType = cbDeviceType; m_LogonSuccess.wBehaviorFlags = wBehaviorFlags; m_LogonSuccess.wPageTableCount = wPageTableCount; //用户头像地址 ZeroMemory(m_LogonSuccess.szHeadUrl, CountArray(m_LogonSuccess.szHeadUrl)); m_GameDBAide.GetValue_String(TEXT("HeadUrl"), m_LogonSuccess.szHeadUrl, CountArray(m_LogonSuccess.szHeadUrl)); ZeroMemory(m_LogonSuccess.szDescribeString, 128 * sizeof(TCHAR)); m_GameDBAide.GetValue_String(TEXT("LastLogonMobile"), m_LogonSuccess.szDescribeString, CountArray(m_LogonSuccess.szDescribeString)); //俱乐部信息 //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("UserID"), m_LogonSuccess.dwUserID); //获取俱乐部消息 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetID"), true); if (DB_SUCCESS == lResultCode) { int count = 0; while (m_GameDBModule->IsRecordsetEnd() == false) { m_LogonSuccess.dwClubID[count] = m_GameDBAide.GetValue_DWORD(TEXT("ClubID")); //移动记录 m_GameDBModule->MoveToNext(); count++; if (count == 20) break; } } //获取信息 //if (pszErrorString != NULL) lstrcpyn(m_LogonSuccess.szDescribeString, pszErrorString, CountArray(m_LogonSuccess.szDescribeString)); //任务变量 //m_LogonSuccess.wTaskCount = 0; //ZeroMemory(m_LogonSuccess.UserTaskInfo, sizeof(m_LogonSuccess.UserTaskInfo)); //发送结果 m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_LOGON_SUCCESS, dwContextID, &m_LogonSuccess, sizeof(m_LogonSuccess)); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(302)) { CString strTip; strTip.Format(L"代理请求:%d", m_LogonSuccess.dDaiLi);//新用户ID:%d,dwUserID, CTraceService::TraceString(strTip, TraceLevel_Normal); } //扫码绑定代理验证 //2018 7/31 lyh if (0 == m_LogonSuccess.dDaiLi){ GETDUILIEBASE Temp; ZeroMemory(&Temp, sizeof(GETDUILIEBASE)); StringCchCat(Temp.szUnionID, CountArray(Temp.szUnionID), m_LogonSuccess.szUnionID); Temp.dUserID = m_LogonSuccess.dwUserID; Temp.CommendID = 7; Temp.dwSocketID = dwContextID; StringCchCat(Temp.bb.szName, CountArray(Temp.bb.szName), m_LogonSuccess.szNickName); CHttpClient::AddLog(dwContextID, Temp); } } else { //变量定义 DBO_GR_LogonFailure LogonFailure; ZeroMemory(&LogonFailure, sizeof(LogonFailure)); //构造数据 LogonFailure.lResultCode = dwErrorCode; lstrcpyn(LogonFailure.szDescribeString, pszErrorString, CountArray(LogonFailure.szDescribeString)); //发送结果 WORD wDataSize = CountStringBuffer(LogonFailure.szDescribeString); WORD wHeadSize = sizeof(LogonFailure) - sizeof(LogonFailure.szDescribeString); m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_LOGON_FAILURE, dwContextID, &LogonFailure, wHeadSize + wDataSize); } return; } ////银行结果 //VOID CDataBaseEngineSink::OnInsureDisposeResult(DWORD dwContextID, DWORD dwErrorCode, SCORE lFrozenedScore, LPCTSTR pszErrorString, bool bMobileClient, BYTE cbActivityGame) //{ // if (dwErrorCode == DB_SUCCESS) // { // //变量定义 // DBO_GR_UserInsureSuccess UserInsureSuccess; // ZeroMemory(&UserInsureSuccess, sizeof(UserInsureSuccess)); // // //构造变量 // UserInsureSuccess.cbActivityGame = cbActivityGame; // UserInsureSuccess.lFrozenedScore = lFrozenedScore; // UserInsureSuccess.dwUserID = m_TreasureDBAide.GetValue_DWORD(TEXT("UserID")); // UserInsureSuccess.lSourceScore = m_TreasureDBAide.GetValue_LONGLONG(TEXT("SourceScore")); // UserInsureSuccess.lSourceInsure = m_TreasureDBAide.GetValue_LONGLONG(TEXT("SourceInsure")); // UserInsureSuccess.lInsureRevenue = m_TreasureDBAide.GetValue_LONGLONG(TEXT("InsureRevenue")); // UserInsureSuccess.lVariationScore = m_TreasureDBAide.GetValue_LONGLONG(TEXT("VariationScore")); // UserInsureSuccess.lVariationInsure = m_TreasureDBAide.GetValue_LONGLONG(TEXT("VariationInsure")); // lstrcpyn(UserInsureSuccess.szDescribeString, pszErrorString, CountArray(UserInsureSuccess.szDescribeString)); // // //发送结果 // WORD wDataSize = CountStringBuffer(UserInsureSuccess.szDescribeString); // WORD wHeadSize = sizeof(UserInsureSuccess) - sizeof(UserInsureSuccess.szDescribeString); // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_USER_INSURE_SUCCESS, dwContextID, &UserInsureSuccess, wHeadSize + wDataSize); // } // else // { // //变量定义 // DBO_GR_UserInsureFailure UserInsureFailure; // ZeroMemory(&UserInsureFailure, sizeof(UserInsureFailure)); // // //构造变量 // UserInsureFailure.cbActivityGame = cbActivityGame; // UserInsureFailure.lResultCode = dwErrorCode; // UserInsureFailure.lFrozenedScore = lFrozenedScore; // lstrcpyn(UserInsureFailure.szDescribeString, pszErrorString, CountArray(UserInsureFailure.szDescribeString)); // // //发送结果 // WORD wDataSize = CountStringBuffer(UserInsureFailure.szDescribeString); // WORD wHeadSize = sizeof(UserInsureFailure) - sizeof(UserInsureFailure.szDescribeString); // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_USER_INSURE_FAILURE, dwContextID, &UserInsureFailure, wHeadSize + wDataSize); // } // // return; //} //分享通知 bool CDataBaseEngineSink::OnShareMessage(VOID * pData, WORD wDataSize, DWORD dwUserID) { //效验参数 ASSERT(wDataSize == sizeof(CMD_GR_BangDing)); if (wDataSize < sizeof(CMD_GR_BangDing)) return false; //效验数据 CMD_GR_BangDing * pUser = (CMD_GR_BangDing *)pData; GETDUILIEBASE Base; ZeroMemory(&Base, sizeof(GETDUILIEBASE)); StringCchCat(Base.szUnionID, 32, L""); Base.CommendID = 4;//分享通知 Base.dwSocketID = 0; Base.dUserID = dwUserID; CopyMemory(Base.szBuffer, pUser, sizeof(CMD_GR_BangDing)); CMD_GR_Info aa; ZeroMemory(&aa, sizeof(CMD_GR_Info)); StringCchCat(aa.szName, 32, L""); StringCchCat(aa.szImgHead, 256, L""); Base.bb = aa; CHttpClient::AddLog(0, Base); return true; } //分享奖励钻石 bool CDataBaseEngineSink::OnRequestShareAwardBean(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestShareAwardBean"), TraceLevel_Debug); CTimer Start; try { CMD_GR_ShareAwardBean *pShareAwardBean = (CMD_GR_ShareAwardBean *)pData; TCHAR szDescribeString[127]; ZeroMemory(szDescribeString, 127 * sizeof(TCHAR)); //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@UserID"), pShareAwardBean->dwUserID); m_GameDBAide.AddParameter(TEXT("@strClientIP"), pShareAwardBean->szClientIp); m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //给指定玩家增加元宝 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_ShareAwardUserCurrency"), true); //结果处理 CDBVarValue DBVarValue; m_GameDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue); DBR_GR_ShareAwardBeanResult shareAwardResult; //返回码 shareAwardResult.lResultCode = lResultCode; _sntprintf(shareAwardResult.strErrorDescribe, 128, TEXT("%s"), static_cast(DBVarValue.bstrVal)); if (0 == lResultCode) { //shareAwardResult.dwUserID = m_GameDBAide.GetValue_INT(TEXT("MYUserID")); shareAwardResult.dwCurrency = m_GameDBAide.GetValue_INT(TEXT("MYCurrency")); shareAwardResult.wAwardCurrency = m_GameDBAide.GetValue_INT(TEXT("ShareAwardBeanCount")); CString csRet = shareAwardResult.strErrorDescribe; if (csRet == L"分享赠送成功!") { //调用网页端 } } m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_USER_SHRAE_AWARD_RETURN, dwContextID, &shareAwardResult, sizeof(DBR_GR_ShareAwardBeanResult)); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 ShareAwardBeanCount ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 ShareAwardBeanCount ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 ShareAwardBeanCount ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 ShareAwardBeanCount ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } return true; } //查询用户分享的信息 bool CDataBaseEngineSink::OnRequestShareInfo(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestShareInfo"), TraceLevel_Debug); CTimer Start; try { DWORD* pdwUserID = (DWORD*)pData; TCHAR szDescribeString[127]; ZeroMemory(szDescribeString, 127 * sizeof(TCHAR)); //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@UserID"), *pdwUserID); m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //给指定玩家增加元宝 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_GetShareAwardInfo"), true); //结果处理 CDBVarValue DBVarValue; m_GameDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue); DBR_GR_ShareAwardInfo shareAwardInfo; //返回码 shareAwardInfo.lResultCode = lResultCode; _sntprintf(shareAwardInfo.strErrorDescribe, 128, TEXT("%s"), static_cast(DBVarValue.bstrVal)); if (0 == lResultCode) { //shareAwardInfo.dwUserID = m_GameDBAide.GetValue_INT(TEXT("MYUserID")); shareAwardInfo.wTodaySharedFlag = m_GameDBAide.GetValue_INT(TEXT("TodayAwardCount")); shareAwardInfo.wShardAwardCurrency = m_GameDBAide.GetValue_INT(TEXT("ShareAwardBeanCount")); } m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_USER_SHRAE_INFO_RETURN, dwContextID, &shareAwardInfo, sizeof(DBR_GR_ShareAwardInfo)); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_GetShareAwardInfo ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_GetShareAwardInfo ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_GetShareAwardInfo ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_GetShareAwardInfo ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } return true; } ////////////////////////////////////////////////////////////////////////////////// //钻石兑换金币的配置列表 \存储过程\数据库SQL\DataBase\Script\Platform\存储过程\金币数据库\兑换管理.sql //bool CDataBaseEngineSink::OnRequestExchangeConfigs(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) //{ // CTimer Start; // try // { // //构造参数 // m_TreasureDBAide.ResetParameter(); // LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_ExchangeConfig"), true); // // //变量定义 // WORD wPacketSize = 0; // BYTE cbBuffer[MAX_ASYNCHRONISM_DATA] = { 0 }; // // //发送种类 // wPacketSize = 0; // tagExchangeConfig * pExchageCfg = NULL; // while (!m_TreasureDBModule->IsRecordsetEnd()) // { // //发送信息 // if ((wPacketSize + sizeof(tagExchangeConfig)) > sizeof(cbBuffer)) // { // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_EXCHANGE_CONFIG_LIST_ACK, dwContextID, cbBuffer, wPacketSize); // wPacketSize = 0; // } // // //读取信息 // pExchageCfg = (tagExchangeConfig *)(cbBuffer + wPacketSize); // pExchageCfg->wID = m_TreasureDBAide.GetValue_DWORD(TEXT("ID")); // pExchageCfg->dwIngot = m_TreasureDBAide.GetValue_DWORD(TEXT("Ingot")); ///注意数据范围 // pExchageCfg->dwSCORE = m_TreasureDBAide.GetValue_DWORD(TEXT("Score")); // // //设置位移 // wPacketSize += sizeof(tagExchangeConfig); // // //移动记录 // m_TreasureDBModule->MoveToNext(); // } // // if (wPacketSize > 0) // { // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_EXCHANGE_CONFIG_LIST_ACK, dwContextID, cbBuffer, wPacketSize); // } // // double dRet = Start.End(); // // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(3333)) // { // CString csTest; // csTest.Format(_T("存储过程耗时 GSP_GR_ExchangeConfig ----> %.3f wPacketSize=%d"), dRet, wPacketSize); // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // // return true; // } // catch (IDataBaseException * pIException) // { // //输出错误 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // return false; // } //} /////////////////////////////俱乐部/////////////////////////////////////// void ff(CMD_S_ClubInfo & ClubInfo, CList& list) { //总共13条数据 int i = 0; //游戏类型 POSITION p = list.FindIndex(i++); if (p) ClubInfo.csGameConfig.wSubGameID = list.GetAt(p); //底分 p = list.FindIndex(i++); if (p) ClubInfo.csGameConfig.wPlayRule = list.GetAt(p); //房费 p = list.FindIndex(i++); if (p) ClubInfo.csGameConfig.wMaxFanRule = list.GetAt(p); //IP限制 p = list.FindIndex(i++); if (p) ClubInfo.csGameConfig.wMaxScore = list.GetAt(p); //局数 p = list.FindIndex(i++); if (p) ClubInfo.csGameConfig.wPlayCountRule = list.GetAt(p); //是否是房主 p = list.FindIndex(i++); if (p) ClubInfo.csGameConfig.zmExtraRule = list.GetAt(p); //胡法 p = list.FindIndex(i++); if (p) ClubInfo.csGameConfig.bDuoLai = list.GetAt(p); //玩法 p = list.FindIndex(i++); if (p) ClubInfo.csGameConfig.wFengDing = list.GetAt(p); //备用 p = list.FindIndex(i++); if (p) ClubInfo.csGameConfig.tmp1 = list.GetAt(p); p = list.FindIndex(i++); if (p) ClubInfo.csGameConfig.tmp2 = list.GetAt(p); p = list.FindIndex(i++); if (p) ClubInfo.csGameConfig.tmp3 = list.GetAt(p); p = list.FindIndex(i++); if (p) ClubInfo.csGameConfig.tmp4 = list.GetAt(p); p = list.FindIndex(i++); if (p) ClubInfo.csGameConfig.tmp5 = list.GetAt(p); } //俱乐部列表 //m_GameDBAide连接的是THTreause数据库 bool CDataBaseEngineSink::OnRequestGetClubList(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { OutputDebugStringA("CDataBaseEngineSink::OnRequestGetClubList"); CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClubList"), TraceLevel_Debug); CTimer Start; try { DBR_GR_ClubList* pClubList = (DBR_GR_ClubList*)pData; if (pClubList == NULL) return false; //返回数据 CMD_GR_ClubList_Ack ClubListAck; ZeroMemory(&ClubListAck, sizeof(ClubListAck)); //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("UserID"), pClubList->dwUserID); //玩家获取通知个数 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetMessgeCount"), true); if (DB_SUCCESS == lResultCode) { ClubListAck.wNewsCount = m_GameDBAide.GetValue_WORD(TEXT("MessageCount")); } //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("UserID"), pClubList->dwUserID); m_GameDBAide.AddParameter(TEXT("StartIndex"), pClubList->wStartIndex); m_GameDBAide.AddParameter(TEXT("Count"), pClubList->wCount); //玩家获取俱乐部信息 lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetList"), true); DWORD clubId[20] = { 0 }; if (DB_SUCCESS == lResultCode) { for (int j = 0; j < m_GameDBModule->GetRecordCount(); j++) { if (j >= 20){ break;} //构造数据 CMD_S_ClubInfo ClubInfo; ZeroMemory(&ClubInfo, sizeof(ClubInfo)); //cbIsOwner用来区分发给的是房主还是玩家 int ClubRole = m_GameDBAide.GetValue_DWORD(TEXT("ClubRole")); if (ClubRole == 10) { ClubInfo.cbIsOwner = 1; } else if (ClubRole == 2) { ClubInfo.cbIsOwner = 2; } else if (ClubRole == 3) { ClubInfo.cbIsOwner = 3; } //兼容老版本 if (pClubList->dwUserID == m_GameDBAide.GetValue_DWORD(TEXT("HostID"))) { ClubInfo.cbIsOwner = 1; } ClubInfo.dwClubID = m_GameDBAide.GetValue_DWORD(TEXT("CLubID")); m_GameDBAide.GetValue_String(TEXT("CLubName"), ClubInfo.szClubName, LEN_CLUB_NAME); ClubInfo.dwOwnerID = m_GameDBAide.GetValue_DWORD(TEXT("HostID")); ClubInfo.temp1 = m_GameDBAide.GetValue_DWORD(TEXT("TableChoice")); clubId[j] = ClubInfo.dwClubID; //名称 TCHAR szBuffer[128] = { 0 }; ZeroMemory(szBuffer, 128 * sizeof(TCHAR)); m_GameDBAide.GetValue_String(TEXT("HostName"), szBuffer,128); TCHAR szOutBuffer[128] = { 0 }; ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR)); //解码 int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer); if (iRet == -1) { szBuffer[32] = 0x0; _sntprintf(ClubInfo.szHostName, CountArray(ClubInfo.szHostName), TEXT("%s"), szBuffer); } else { szOutBuffer[32] = 0x0; _sntprintf(ClubInfo.szHostName, CountArray(ClubInfo.szHostName), TEXT("%s"), szOutBuffer); } //头像 m_GameDBAide.GetValue_String(TEXT("HostHeadUrl"), ClubInfo.szHeadUrl, 256); //配置 TCHAR tcconfig[LEN_TABLE_CONFIG] = { 0 }; m_GameDBAide.GetValue_String(TEXT("GameConfig"), tcconfig, LEN_TABLE_CONFIG); CList list; CString Config = tcconfig; int pos = Config.Find(_T('#')); while (pos != -1) { CString field = Config.Left(pos); int iRet = _wtoi(field); list.AddTail(iRet); Config.ReleaseBuffer(); Config = Config.Right(Config.GetLength() - pos - 1); pos = Config.Find(_T('#')); } if (Config.GetLength() > 0) { int iRet = _wtoi(Config.GetBuffer(0)); list.AddTail(iRet); Config.ReleaseBuffer(); } ff(ClubInfo, list); //复制数据 CopyMemory(&(ClubListAck.csGameClubInfo[j]), &ClubInfo, sizeof(ClubInfo)); //移动记录 m_GameDBModule->MoveToNext(); } ClubListAck.wClubCount = m_GameDBModule->GetRecordCount(); if (ClubListAck.wClubCount > 20){ ClubListAck.wClubCount = 20; } } for (int j = 0; j < 20; j++) { //构造参数 if (clubId[j] > 0) { m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("CLubID"), clubId[j]); //玩家获取俱乐部信息 lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_Sample_Select"), true); if (DB_SUCCESS == lResultCode) { ClubListAck.csGameClubInfo[j].temp2 = m_GameDBAide.GetValue_DWORD(TEXT("Sample")); } } } //查看群主是否开启房主选项 int PayChoice = 0; m_GameDBAide.ResetParameter(); //执行存储过程 lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_PayChoice"), true); if (DB_SUCCESS == lResultCode) { PayChoice = m_GameDBAide.GetValue_DWORD(TEXT("PayChoice")); } for (int i = 0; i < ClubListAck.wClubCount;i++) { if (i >= 20){ break; } //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("ClubID"), ClubListAck.csGameClubInfo[i].dwClubID); //玩家获取俱乐部信息 lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetUserCount"), true); if (DB_SUCCESS == lResultCode) { ClubListAck.csGameClubInfo[i].wTotalNum = m_GameDBAide.GetValue_DWORD(TEXT("UserNum")); } if (PayChoice == 1 && ClubListAck.csGameClubInfo[i].csGameConfig.wMaxFanRule >= 10) { ClubListAck.csGameClubInfo[i].csGameConfig.wMaxFanRule -= 10; } } //返回数据 int totalSize = ClubListAck.wClubCount * sizeof(CMD_S_ClubInfo) + sizeof(WORD) + sizeof(WORD); m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_GET_LIST_ACK, dwContextID, &ClubListAck, totalSize);//sizeof(ClubListAck) double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetList ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetList ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); CString csTest; csTest.Format(_T("异常存储过程耗时 GSP_GP_Club_GetList ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Warning); return true; } return true; } //俱乐部会员 bool CDataBaseEngineSink::OnRequestGetClubUser(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { OutputDebugStringA("CDataBaseEngineSink::OnRequestGetClubUser"); CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClubUser"), TraceLevel_Debug); CTimer Start; try { DBR_GR_ClubUser* pClubUser = (DBR_GR_ClubUser*)pData; if (pClubUser == NULL) return false; //返回数据 CMD_GR_ClubUser_Ack ClubUserAck; ZeroMemory(&ClubUserAck, sizeof(ClubUserAck)); //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("UserID"), pClubUser->dwUserID); m_GameDBAide.AddParameter(TEXT("ClubID"), pClubUser->dwClubID); DWORD Role = 0; LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetRole"), true); if (DB_SUCCESS == lResultCode) { if (m_GameDBModule->GetRecordCount() == 1) { Role = m_GameDBAide.GetValue_DWORD(TEXT("ClubRole")); if (Role == 10) { ClubUserAck.cbHost = 1; } else if (Role == 3) { ClubUserAck.cbHost = 2; } } } //获取俱乐部会员 ClubUserAck.dwClubID = pClubUser->dwClubID; //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("UserID"), pClubUser->dwUserID); m_GameDBAide.AddParameter(TEXT("ClubID"), pClubUser->dwClubID); m_GameDBAide.AddParameter(TEXT("StartIndex"), pClubUser->wStartIndex); m_GameDBAide.AddParameter(TEXT("Count"), pClubUser->wCount); lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetUser"), true); if (DB_SUCCESS == lResultCode) { for (int i = 0; i < m_GameDBModule->GetRecordCount(); i++) { if (i >= 20) { break; } //构造数据 CMD_S_MemberInfo ClubUser; ZeroMemory(&ClubUser, sizeof(ClubUser)); ClubUser.dwUserID = m_GameDBAide.GetValue_DWORD(TEXT("UserID")); ClubUser.BangMaID = m_GameDBAide.GetValue_DWORD(TEXT("BangMa")); ClubUser.cbStaus = m_GameDBAide.GetValue_BYTE(TEXT("Agree")); int role = m_GameDBAide.GetValue_DWORD(TEXT("ClubRole")); if (role == 10) { ClubUser.isHost = 1; } else if (role == 3) { ClubUser.isHost = 2; } TCHAR szBuffer[128] = { 0 }; ZeroMemory(szBuffer, 128 * sizeof(TCHAR)); m_GameDBAide.GetValue_String(TEXT("UserName"), szBuffer, 128); TCHAR szOutBuffer[128] = { 0 }; ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR)); //解码 int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer); if (iRet == -1) { szBuffer[32] = 0x0; _sntprintf(ClubUser.szName, CountArray(ClubUser.szName), TEXT("%s"), szBuffer); } else { szOutBuffer[32] = 0x0; _sntprintf(ClubUser.szName, CountArray(ClubUser.szName), TEXT("%s"), szOutBuffer); } m_GameDBAide.GetValue_String(TEXT("HeadUrl"), ClubUser.szHeadUrl, LEN_HEAD_URL); //复制数据 CopyMemory(&(ClubUserAck.csMemberInfo[i]), &ClubUser, sizeof(ClubUser)); //移动记录 m_GameDBModule->MoveToNext(); } ClubUserAck.wCount = m_GameDBModule->GetRecordCount(); if (ClubUserAck.wCount > 20){ ClubUserAck.wCount = 20; } } //返回数据 int totalSize = ClubUserAck.wCount * sizeof(CMD_S_MemberInfo) + sizeof(WORD) + sizeof(DWORD) + sizeof(BYTE); m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_GET_USER_ACK, dwContextID, &ClubUserAck, totalSize); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetUser ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetUser ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetUser ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetUser ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } return true; } //俱乐部会员(在线) bool CDataBaseEngineSink::OnRequestGetClubUserEx(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClubUserEx"), TraceLevel_Debug); CTimer Start; try { DBR_GR_ClubUser* pClubUser = (DBR_GR_ClubUser*)pData; if (pClubUser == NULL) return false; //返回数据 CMD_GR_ClubUser_Ack_Ex ClubUserAck; ZeroMemory(&ClubUserAck, sizeof(ClubUserAck)); ClubUserAck.wStartIndex = pClubUser->wStartIndex; ClubUserAck.wCount = pClubUser->wCount; //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("UserID"), pClubUser->dwUserID); m_GameDBAide.AddParameter(TEXT("ClubID"), pClubUser->dwClubID); DWORD Role = 0; LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetRole"), true); if (DB_SUCCESS == lResultCode) { if (m_GameDBModule->GetRecordCount() == 1) { Role = m_GameDBAide.GetValue_DWORD(TEXT("ClubRole")); if (Role == 10) { ClubUserAck.cbHost = 1; } else if (Role == 3) { ClubUserAck.cbHost = 2; } } } //获取俱乐部会员 ClubUserAck.dwClubID = pClubUser->dwClubID; //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("UserID"), pClubUser->dwUserID); m_GameDBAide.AddParameter(TEXT("ClubID"), pClubUser->dwClubID); lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetUser_Ex"), true); if (DB_SUCCESS == lResultCode) { for (int i = 0; i < m_GameDBModule->GetRecordCount(); i++) { if (i >= 1000) { break; } //构造数据 CMD_S_MemberInfoEx ClubUser; ZeroMemory(&ClubUser, sizeof(ClubUser)); ClubUser.dwUserID = m_GameDBAide.GetValue_DWORD(TEXT("UserID")); ClubUser.Agree = m_GameDBAide.GetValue_DWORD(TEXT("Agree")); int role = m_GameDBAide.GetValue_DWORD(TEXT("ClubRole")); if (role == 10) { ClubUser.isHost = 1; } else if (role == 3) { ClubUser.isHost = 2; } //复制数据 CopyMemory(&(ClubUserAck.csMemberInfo[i]), &ClubUser, sizeof(ClubUser)); //移动记录 m_GameDBModule->MoveToNext(); } ClubUserAck.wMemCount = m_GameDBModule->GetRecordCount(); if (ClubUserAck.wMemCount > 1000){ ClubUserAck.wMemCount = 1000; } } //返回数据 m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_GET_USER_ACK_EX, dwContextID, &ClubUserAck, sizeof(ClubUserAck)); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetUser_Ex ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetUser_Ex ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetUser_Ex ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetUser_Ex ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } return true; } //俱乐部会员(在线) bool CDataBaseEngineSink::OnRequestGetClubUserOnline(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { OutputDebugStringA("CDataBaseEngineSink::OnRequestGetClubUserOnline"); CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClubUserOnline"), TraceLevel_Debug); CTimer Start; try { CMD_GR_ClubUser_Ack_Ex* pClubUser = (CMD_GR_ClubUser_Ack_Ex*)pData; if (pClubUser == NULL) return false; //返回数据 CMD_GR_ClubUser_Ack ClubUserAck; ZeroMemory(&ClubUserAck, sizeof(ClubUserAck)); ClubUserAck.cbHost = pClubUser->cbHost; ClubUserAck.dwClubID = pClubUser->dwClubID; int k = 0; for (int i = pClubUser->wStartIndex; i < pClubUser->wCount + pClubUser->wStartIndex; i++) { if (i >= 1000) break; if (pClubUser->csMemberInfo[i].dwUserID == 0 ) break; //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("UserID"), pClubUser->csMemberInfo[i].dwUserID); m_GameDBAide.AddParameter(TEXT("ClubID"), pClubUser->dwClubID); LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetUserOnline"), true); if (DB_SUCCESS == lResultCode) { //构造数据 CMD_S_MemberInfo ClubUser; ZeroMemory(&ClubUser, sizeof(ClubUser)); ClubUser.dwUserID = m_GameDBAide.GetValue_DWORD(TEXT("UserID")); ClubUser.BangMaID = m_GameDBAide.GetValue_DWORD(TEXT("BangMa")); ClubUser.cbStaus = m_GameDBAide.GetValue_BYTE(TEXT("Agree")); int role = m_GameDBAide.GetValue_DWORD(TEXT("ClubRole")); if (role == 10) { ClubUser.isHost = 1; } else if (role == 3) { ClubUser.isHost = 2; } TCHAR szBuffer[128] = { 0 }; ZeroMemory(szBuffer, 128 * sizeof(TCHAR)); m_GameDBAide.GetValue_String(TEXT("UserName"), szBuffer, 128); TCHAR szOutBuffer[128] = { 0 }; ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR)); //解码 int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer); if (iRet == -1) { szBuffer[32] = 0x0; _sntprintf(ClubUser.szName, CountArray(ClubUser.szName), TEXT("%s"), szBuffer); } else { szOutBuffer[32] = 0x0; _sntprintf(ClubUser.szName, CountArray(ClubUser.szName), TEXT("%s"), szOutBuffer); } m_GameDBAide.GetValue_String(TEXT("HeadUrl"), ClubUser.szHeadUrl, LEN_HEAD_URL); //复制数据 if (k >= 20){ break; } CopyMemory(&(ClubUserAck.csMemberInfo[k++]), &ClubUser, sizeof(ClubUser)); } ClubUserAck.wCount = k; } //返回数据 int totalSize = ClubUserAck.wCount * sizeof(CMD_S_MemberInfo) + sizeof(WORD) + sizeof(DWORD) + sizeof(BYTE); m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_GET_USER_ACK, dwContextID, &ClubUserAck, totalSize); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetUserOnLine ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetUserOnLine ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); CString csTest; csTest.Format(_T("异常存储过程耗时 GSP_GP_Club_GetUserOnLine ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Warning); return true; } return true; } //俱乐部通知 bool CDataBaseEngineSink::OnRequestGetClubMessage(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { OutputDebugStringA("CDataBaseEngineSink::OnRequestGetClubMessage"); CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClubMessage"), TraceLevel_Debug); CTimer Start; try { DBR_GR_ClubMessage * pClubMessage = (DBR_GR_ClubMessage*)pData; if (pClubMessage == NULL) return false; //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("UserID"), pClubMessage->dwUserID); m_GameDBAide.AddParameter(TEXT("StartIndex"), pClubMessage->wStartIndex); m_GameDBAide.AddParameter(TEXT("Count"), pClubMessage->wCount); //返回数据 CMD_GR_ClubMessage_Ack ClubMessageAck; ZeroMemory(&ClubMessageAck, sizeof(ClubMessageAck)); //获取俱乐部消息 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetMessage"), true); if (DB_SUCCESS == lResultCode) { int count = 0; while (m_GameDBModule->IsRecordsetEnd() == false) { //构造数据 CMD_S_MessageInfo ClubMessage; ZeroMemory(&ClubMessage, sizeof(ClubMessage)); ClubMessage.dType = m_GameDBAide.GetValue_WORD(TEXT("Kind")); ClubMessage.dtActionTime = m_GameDBAide.GetValue_DWORD(TEXT("ActionTime")); m_GameDBAide.GetValue_String(TEXT("Content"), ClubMessage.szContent, LEN_CLUB_MESSAGE); //复制数据 CopyMemory(&(ClubMessageAck.CMD_S_MessageInfo[count]), &ClubMessage, sizeof(ClubMessage)); //移动记录 m_GameDBModule->MoveToNext(); count++; if (count >= 20){ break; } } ClubMessageAck.wCount = count; } //返回数据 int totalSize = ClubMessageAck.wCount * sizeof(CMD_S_MessageInfo) + sizeof(WORD); m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_GET_MESSAGE_ACK, dwContextID, &ClubMessageAck, totalSize); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetMessage ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetMessage ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetMessage ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetMessage ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } return true; } //分享战绩到闲聊 bool CDataBaseEngineSink::OnRequestFenXiangClubRecord(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { try { DBR_GR_ClubRecordXianLiao * pClubRecord = (DBR_GR_ClubRecordXianLiao*)pData; if (pClubRecord == NULL) return false; //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubRecord->dwClubID); //写入俱乐部消息 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_CheckXLQ"), true); if (lResultCode == DB_SUCCESS) { m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_XIANLIAO_RECORD, dwContextID, pData, wDataSize); } else if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(302)) { CString csTest; csTest.Format(_T("俱乐部未绑定闲聊群")); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Warning); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); CString csTest; csTest.Format(_T("存储过程异常 GSP_GP_Club_CheckXLQ ----> %s "), pIException->GetExceptionDescribe()); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Warning); } return true; } //俱乐部记录写入 bool CDataBaseEngineSink::OnRequestWriteClubRecord(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { OutputDebugStringA("CDataBaseEngineSink::OnRequestWriteClubRecord"); CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestWriteClubRecord"), TraceLevel_Debug); CTimer Start; try { DBR_GR_ClubRecordWrite * pClubRecord = (DBR_GR_ClubRecordWrite*)pData; if (pClubRecord == NULL) return false; //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubRecord->dwClubID); m_GameDBAide.AddParameter(TEXT("@TableID"), pClubRecord->dwTableID); m_GameDBAide.AddParameter(TEXT("@TableOwnerID"), pClubRecord->dwUserID); m_GameDBAide.AddParameter(TEXT("@JuShu"), pClubRecord->Jushu); m_GameDBAide.AddParameter(TEXT("@PayWay"), pClubRecord->PayWay); m_GameDBAide.AddParameter(TEXT("@UserCount"), pClubRecord->dwUserCount); m_GameDBAide.AddParameter(TEXT("@Player0"), pClubRecord->Player[0]); m_GameDBAide.AddParameter(TEXT("@Player1"), pClubRecord->Player[1]); m_GameDBAide.AddParameter(TEXT("@Player2"), pClubRecord->Player[2]); m_GameDBAide.AddParameter(TEXT("@Player3"), pClubRecord->Player[3]); m_GameDBAide.AddParameter(TEXT("@CreateTime"), pClubRecord->SystemTimeStart); //写入俱乐部消息 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_WriteRecord"), true); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_WriteRecord ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_WriteRecord ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_WriteRecord ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_WriteRecord ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } return true; } //俱乐部记录 bool CDataBaseEngineSink::OnRequestGetClubRecord(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { OutputDebugStringA("CDataBaseEngineSink::OnRequestGetClubRecord"); CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClubRecord"), TraceLevel_Debug); CTimer Start; try { DBR_GR_ClubRecordRead * pClubRecord = (DBR_GR_ClubRecordRead*)pData; if (pClubRecord == NULL) return false; //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("UserID"), pClubRecord->dwUserID); m_GameDBAide.AddParameter(TEXT("ClubID"), pClubRecord->dwClubID); m_GameDBAide.AddParameter(TEXT("StartIndex"), pClubRecord->wStartIndex); m_GameDBAide.AddParameter(TEXT("Count"), pClubRecord->wCount); m_GameDBAide.AddParameter(TEXT("StartTime"), pClubRecord->dtStartTime + 8 * 3600); m_GameDBAide.AddParameter(TEXT("dwPrivateTable"), pClubRecord->dwPrivateTable); //返回数据 CMD_GR_ClubRecord_Ack ClubRecordAck; ZeroMemory(&ClubRecordAck, sizeof(ClubRecordAck)); ClubRecordAck.dwClubID = pClubRecord->dwClubID; //获取俱乐部消息 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetRecord"), true); if (DB_SUCCESS == lResultCode) { int count = 0; while (m_GameDBModule->IsRecordsetEnd() == false) { //构造数据 int playCount = 0; CMD_S_RecordInfo ClubRecord; ZeroMemory(&ClubRecord, sizeof(ClubRecord)); ClubRecord.dwTableID = m_GameDBAide.GetValue_DWORD(TEXT("TableID")); ClubRecord.dwTableOwnerID = m_GameDBAide.GetValue_DWORD(TEXT("TableOwnerID")); ClubRecord.dtCreateTime = m_GameDBAide.GetValue_DWORD(TEXT("CreateTime")); ClubRecord.cbPayWay = m_GameDBAide.GetValue_BYTE(TEXT("PayWay")); ClubRecord.cbJuShu = m_GameDBAide.GetValue_BYTE(TEXT("JuShu")); ClubRecord.PlayerID[0] = m_GameDBAide.GetValue_DWORD(TEXT("Player1")); ClubRecord.PlayerID[1] = m_GameDBAide.GetValue_DWORD(TEXT("Player2")); ClubRecord.PlayerID[2] = m_GameDBAide.GetValue_DWORD(TEXT("Player3")); ClubRecord.PlayerID[3] = m_GameDBAide.GetValue_DWORD(TEXT("Player4")); if (ClubRecord.PlayerID[0])playCount = 1; if (ClubRecord.PlayerID[1])playCount = 2; if (ClubRecord.PlayerID[2])playCount = 3; if (ClubRecord.PlayerID[3])playCount = 4; //名字 for (int i = 0; i < playCount; i++) { TCHAR szBuffer[128] = { 0 }; ZeroMemory(szBuffer, 128 * sizeof(TCHAR)); if (i == 0) m_GameDBAide.GetValue_String(TEXT("NickName1"), szBuffer, 128); if (i == 1) m_GameDBAide.GetValue_String(TEXT("NickName2"), szBuffer, 128); if (i == 2) m_GameDBAide.GetValue_String(TEXT("NickName3"), szBuffer, 128); if (i == 3) m_GameDBAide.GetValue_String(TEXT("NickName4"), szBuffer, 128); TCHAR szOutBuffer[128] = { 0 }; ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR)); //解码 int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer); if (iRet == -1) { szBuffer[32] = 0x0; _sntprintf(ClubRecord.PlayerName[i], CountArray(ClubRecord.PlayerName[i]), TEXT("%s"), szBuffer); } else { szOutBuffer[32] = 0x0; _sntprintf(ClubRecord.PlayerName[i], CountArray(ClubRecord.PlayerName[i]), TEXT("%s"), szOutBuffer); } } //复制数据 CopyMemory(&(ClubRecordAck.csRecordInfo[count]), &ClubRecord, sizeof(ClubRecord)); //移动记录 m_GameDBModule->MoveToNext(); count++; if (count >= 10) { break; } } ClubRecordAck.wCount = count; } m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("UserID"), pClubRecord->dwUserID); m_GameDBAide.AddParameter(TEXT("ClubID"), pClubRecord->dwClubID); m_GameDBAide.AddParameter(TEXT("StartTime"), pClubRecord->dtStartTime + 8 * 3600); m_GameDBAide.AddParameter(TEXT("dwPrivateTable"), pClubRecord->dwPrivateTable); //获取俱乐部消息 lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetRecordCount"), true); if (DB_SUCCESS == lResultCode) { ClubRecordAck.dwTableCount = m_GameDBAide.GetValue_DWORD(TEXT("TableCount")); ClubRecordAck.dwZunShi = m_GameDBAide.GetValue_DWORD(TEXT("ZuanShiCount")); } //返回数据 int totalSize = ClubRecordAck.wCount * sizeof(CMD_S_RecordInfo) + sizeof(DWORD) * 3 + sizeof(WORD); m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_GET_RECORD_ACK, dwContextID, &ClubRecordAck, totalSize); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetRecord ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetRecord ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetRecord ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetRecord ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } return true; } bool CDataBaseEngineSink::OnRequestGetClubRecordEX(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { OutputDebugStringA("CDataBaseEngineSink::OnRequestGetClubRecord"); CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClubRecord"), TraceLevel_Debug); CTimer Start; try { DBR_GR_ClubRecordRead * pClubRecord = (DBR_GR_ClubRecordRead*)pData; if (pClubRecord == NULL) return false; //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("UserID"), pClubRecord->dwUserID); m_GameDBAide.AddParameter(TEXT("ClubID"), pClubRecord->dwClubID); m_GameDBAide.AddParameter(TEXT("StartIndex"), pClubRecord->wStartIndex); m_GameDBAide.AddParameter(TEXT("Count"), pClubRecord->wCount); m_GameDBAide.AddParameter(TEXT("StartTime"), pClubRecord->dtStartTime + 8 * 3600); m_GameDBAide.AddParameter(TEXT("dwPrivateTable"), pClubRecord->dwPrivateTable); //返回数据2 CMD_GR_ClubRecord_Ack_EX ClubRecordAckEx; ZeroMemory(&ClubRecordAckEx, sizeof(ClubRecordAckEx)); ClubRecordAckEx.dwClubID = pClubRecord->dwClubID; //获取俱乐部消息 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetRecord"), true); if (DB_SUCCESS == lResultCode) { int count = 0; while (m_GameDBModule->IsRecordsetEnd() == false) { //构造数据 int playCount = 0; CMD_S_RecordInfoEX ClubRecordEX; ZeroMemory(&ClubRecordEX, sizeof(ClubRecordEX)); ClubRecordEX.Record.dwTableID = m_GameDBAide.GetValue_DWORD(TEXT("TableID")); ClubRecordEX.Record.dwTableOwnerID = m_GameDBAide.GetValue_DWORD(TEXT("TableOwnerID")); ClubRecordEX.Record.dtCreateTime = m_GameDBAide.GetValue_DWORD(TEXT("CreateTime")); ClubRecordEX.Record.cbPayWay = m_GameDBAide.GetValue_BYTE(TEXT("PayWay")); ClubRecordEX.Record.cbJuShu = m_GameDBAide.GetValue_BYTE(TEXT("JuShu")); ClubRecordEX.Record.PlayerID[0] = m_GameDBAide.GetValue_DWORD(TEXT("Player1")); ClubRecordEX.Record.PlayerID[1] = m_GameDBAide.GetValue_DWORD(TEXT("Player2")); ClubRecordEX.Record.PlayerID[2] = m_GameDBAide.GetValue_DWORD(TEXT("Player3")); ClubRecordEX.Record.PlayerID[3] = m_GameDBAide.GetValue_DWORD(TEXT("Player4")); if (ClubRecordEX.Record.PlayerID[0])playCount = 1; if (ClubRecordEX.Record.PlayerID[1])playCount = 2; if (ClubRecordEX.Record.PlayerID[2])playCount = 3; if (ClubRecordEX.Record.PlayerID[3])playCount = 4; //名字 for (int i = 0; i < playCount; i++) { TCHAR szBuffer[128] = { 0 }; ZeroMemory(szBuffer, 128 * sizeof(TCHAR)); if (i == 0) m_GameDBAide.GetValue_String(TEXT("NickName1"), szBuffer, 128); if (i == 1) m_GameDBAide.GetValue_String(TEXT("NickName2"), szBuffer, 128); if (i == 2) m_GameDBAide.GetValue_String(TEXT("NickName3"), szBuffer, 128); if (i == 3) m_GameDBAide.GetValue_String(TEXT("NickName4"), szBuffer, 128); TCHAR szOutBuffer[128] = { 0 }; ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR)); //解码 int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer); if (iRet == -1) { szBuffer[32] = 0x0; _sntprintf(ClubRecordEX.Record.PlayerName[i], CountArray(ClubRecordEX.Record.PlayerName[i]), TEXT("%s"), szBuffer); } else { szOutBuffer[32] = 0x0; _sntprintf(ClubRecordEX.Record.PlayerName[i], CountArray(ClubRecordEX.Record.PlayerName[i]), TEXT("%s"), szOutBuffer); } } //给新结构体赋值 ClubRecordEX.Score[0] = m_GameDBAide.GetValue_INT(TEXT("Score1")); ClubRecordEX.Score[1] = m_GameDBAide.GetValue_INT(TEXT("Score2")); ClubRecordEX.Score[2] = m_GameDBAide.GetValue_INT(TEXT("Score3")); ClubRecordEX.Score[3] = m_GameDBAide.GetValue_INT(TEXT("Score4")); //复制数据 CopyMemory(&(ClubRecordAckEx.csRecordInfo[count]), &ClubRecordEX, sizeof(ClubRecordEX)); //移动记录 m_GameDBModule->MoveToNext(); count++; if (count >= 10) { break; } } ClubRecordAckEx.wCount = count; } m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("UserID"), pClubRecord->dwUserID); m_GameDBAide.AddParameter(TEXT("ClubID"), pClubRecord->dwClubID); m_GameDBAide.AddParameter(TEXT("StartTime"), pClubRecord->dtStartTime + 8 * 3600); m_GameDBAide.AddParameter(TEXT("dwPrivateTable"), pClubRecord->dwPrivateTable); //获取俱乐部消息 lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetRecordCount"), true); if (DB_SUCCESS == lResultCode) { ClubRecordAckEx.dwTableCount = m_GameDBAide.GetValue_DWORD(TEXT("TableCount")); ClubRecordAckEx.dwZunShi = m_GameDBAide.GetValue_DWORD(TEXT("ZuanShiCount")); } //返回数据 int totalSizeEx = ClubRecordAckEx.wCount * sizeof(CMD_S_RecordInfoEX) + sizeof(DWORD) * 3 + sizeof(WORD); m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_GET_RECORD_ACK_EX, dwContextID, &ClubRecordAckEx, totalSizeEx); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetRecord ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetRecord ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); CString csTest; csTest.Format(_T("异常存储过程耗时 GSP_GP_Club_GetRecord ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Warning); return true; } return true; } //俱乐部获取战绩数据 bool CDataBaseEngineSink::OnRequestGetClubExploits(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTimer Start; try { CMD_GR_ClubExploits * pClubRecord = (CMD_GR_ClubExploits*)pData; if (pClubRecord == NULL) return false; //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("PrivateTableID"), pClubRecord->PrivateTableID); //获取俱乐部消息 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetExploits"), true); CMD_GR_GetUserScoreRecordListResp records; ZeroMemory(&records, sizeof(CMD_GR_GetUserScoreRecordListResp)); records.wParentRecordID = 1; if (DB_SUCCESS == lResultCode) { std::vector GameScoreRecord(m_GameDBModule->GetRecordCount()); int i = 0; while (m_GameDBModule->IsRecordsetEnd() == false) { tagGameRecordDrawInfoEx& grdi = GameScoreRecord[i++]; grdi.dwDrawID = m_GameDBAide.GetValue_DWORD(TEXT("DrawID")); grdi.wParentID = m_GameDBAide.GetValue_DWORD(TEXT("ParentID")); SYSTEMTIME SystemTimeStart, SystemTimeConclude; m_GameDBAide.GetValue_SystemTime(TEXT("StartTime"), SystemTimeStart); m_GameDBAide.GetValue_SystemTime(TEXT("ConcludeTime"), SystemTimeConclude); CTime StartTime(SystemTimeStart); CTime ConcludeTime(SystemTimeConclude); grdi.SystemTimeStart = StartTime.GetTime(); grdi.SystemTimeConclude = ConcludeTime.GetTime(); //移动记录 m_GameDBModule->MoveToNext(); } records.wRecordCount = GameScoreRecord.size(); for (int i = 0; i < records.wRecordCount; i++) { tagGameRecordDrawInfoEx& grdi = GameScoreRecord[i]; m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@DrawID"), grdi.dwDrawID); int j = 0; LONG lResultCode2 = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_GetRecordDrawScore"), true); if (lResultCode2 == DB_SUCCESS) { while (m_GameDBModule->IsRecordsetEnd() == false) { if (j > 3)break; //读取数据 tagGameRecordDrawScoreEx& grds = grdi.GameChairScore[j++]; grds.dwDrawID = m_GameDBAide.GetValue_DWORD(TEXT("DrawID")); grds.dwUserID = m_GameDBAide.GetValue_DWORD(TEXT("UserID")); TCHAR szBuffer[128] = { 0 }; ZeroMemory(szBuffer, 128 * sizeof(TCHAR)); m_GameDBAide.GetValue_String(TEXT("UserName"), szBuffer, 128); TCHAR szOutBuffer[128] = { 0 }; ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR)); //解码 int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer); if (iRet == -1) { szBuffer[32] = 0x0; _sntprintf(grds.szUserName, LEN_NICKNAME, TEXT("%s"), szBuffer); } else { szOutBuffer[32] = 0x0; _sntprintf(grds.szUserName, LEN_NICKNAME, TEXT("%s"), szOutBuffer); } grds.wChairID = m_GameDBAide.GetValue_WORD(TEXT("ChairID")); grds.lScore = m_GameDBAide.GetValue_LONGLONG(TEXT("Score")); grds.lGrade = m_GameDBAide.GetValue_WORD(TEXT("Grade")); grds.dwUserMedal = m_GameDBAide.GetValue_WORD(TEXT("UserMedal")); grds.dwPlayTimeCount = m_GameDBAide.GetValue_WORD(TEXT("PlayTimeCount")); //移动记录 m_GameDBModule->MoveToNext(); } } } int totalSize = sizeof(CMD_GR_GetUserScoreRecordListResp) + sizeof(tagGameRecordDrawInfoEx)*GameScoreRecord.size(); char* buff = new char[totalSize]; memcpy(buff, &records, sizeof(WORD) * 2); int offset = sizeof(WORD) * 2; for (tagGameRecordDrawInfoEx& r : GameScoreRecord) { memcpy(buff + offset, &r, sizeof(tagGameRecordDrawInfoEx)); offset += sizeof(tagGameRecordDrawInfoEx); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(302)) { CString csTest; csTest.Format(_T("【OnRequestGetUserGameScoreRecords】获取战绩长度 ----> %d "), totalSize); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_GET_USER_GAMESCORE_LIST, dwContextID, buff, totalSize); SafeDeleteArray(buff); } double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时俱乐部查战绩 GSP_GP_Club_GetExploits GSP_GP_GetRecordDrawScore----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); CString csTest; csTest.Format(_T("异常存储过程耗时 GSP_GP_Club_GetExploits ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Warning); return true; } return true; } //俱乐部获取对局数据 bool CDataBaseEngineSink::OnRequestGetClubPlaygames(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTimer Start; try { CMD_GR_ClubPlaygamesUser * pClubPlaygames = (CMD_GR_ClubPlaygamesUser*)pData; if (pClubPlaygames == NULL) return false; //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubPlaygames->dwClubID); m_GameDBAide.AddParameter(TEXT("@wType"), pClubPlaygames->wType); m_GameDBAide.AddParameter(TEXT("@StartIndex"), pClubPlaygames->StartIndex); m_GameDBAide.AddParameter(TEXT("@mCount"), pClubPlaygames->mCount); m_GameDBAide.AddParameter(TEXT("@wDateCount"), pClubPlaygames->wDateCount); m_GameDBAide.AddParameter(TEXT("@UserID"), pClubPlaygames->UserID); //获取俱乐部消息 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_Playgames"), true); if (lResultCode == DB_SUCCESS) { std::vector PlaygamesCount(m_GameDBModule->GetRecordCount()); BYTE temp = 0; while (m_GameDBModule->IsRecordsetEnd() == false) { if (temp > pClubPlaygames->mCount)break; tagClubPlaygames & gms = PlaygamesCount[temp++]; gms.dwUserID = m_GameDBAide.GetValue_DWORD(TEXT("UserID")); gms.mCount = m_GameDBAide.GetValue_WORD(TEXT("mCount")); TCHAR szBuffer[128] = { 0 }; ZeroMemory(szBuffer, 128 * sizeof(TCHAR)); m_GameDBAide.GetValue_String(TEXT("UserName"), szBuffer, 128); TCHAR szOutBuffer[128] = { 0 }; ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR)); //解码 int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer); if (iRet == -1) { szBuffer[32] = 0x0; _sntprintf(gms.szUserName, LEN_NICKNAME, TEXT("%s"), szBuffer); } else { szOutBuffer[32] = 0x0; _sntprintf(gms.szUserName, LEN_NICKNAME, TEXT("%s"), szOutBuffer); } m_GameDBAide.GetValue_String(TEXT("UserImg"), gms.szHeadImg, 255); CString csTest = gms.szHeadImg; if (csTest == _T("0")) { ZeroMemory(gms.szHeadImg, 256 * sizeof(TCHAR)); } //移动记录 m_GameDBModule->MoveToNext(); } int totalSize = sizeof(tagClubPlaygames)*PlaygamesCount.size() + sizeof(WORD) + sizeof(BYTE); char* buff = new char[totalSize]; WORD wCount = pClubPlaygames->wDateCount; CopyMemory(buff, &wCount, sizeof(WORD)); CopyMemory(buff + sizeof(WORD), &temp, sizeof(BYTE)); int offset = sizeof(BYTE) + sizeof(WORD); for (tagClubPlaygames& r : PlaygamesCount) { memcpy(buff + offset, &r, sizeof(tagClubPlaygames)); offset += sizeof(tagClubPlaygames); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(302)) { CString csTest; csTest.Format(_T("【OnRequestGetUserGameScoreRecords】获取战绩长度 ----> %d "), totalSize); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_GET_COUNT_PLAYGAEMS_ACK, dwContextID, buff, totalSize); SafeDeleteArray(buff); } double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_Playgames ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); CString csTest; csTest.Format(_T("异常存储过程耗时 GSP_GP_Club_Playgames ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Warning); return true; } } //俱乐部获取积分数据 bool CDataBaseEngineSink::OnRequestGetClubIntegral(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTimer Start; try { CMD_GR_ClubIntegralUser * pClubIntegral = (CMD_GR_ClubIntegralUser*)pData; if (pClubIntegral == NULL) return false; //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("ClubID"), pClubIntegral->dwClubID); m_GameDBAide.AddParameter(TEXT("wType"), pClubIntegral->wType); m_GameDBAide.AddParameter(TEXT("wDateCount"), pClubIntegral->wDateCount); m_GameDBAide.AddParameter(TEXT("@UserID"), pClubIntegral->UserID); //获取俱乐部消息 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_Integral"), true); if (lResultCode == DB_SUCCESS) { std::vector ClubIntegral(m_GameDBModule->GetRecordCount()); BYTE temp = 0; while (m_GameDBModule->IsRecordsetEnd() == false) { if (temp > 10)break; tagClubIntegral & gms = ClubIntegral[temp++]; gms.dwUserID = m_GameDBAide.GetValue_DWORD(TEXT("UserID")); gms.mCount = m_GameDBAide.GetValue_WORD(TEXT("mCount")); gms.mJiFen = m_GameDBAide.GetValue_LONGLONG(TEXT("Score")); TCHAR szBuffer[128] = { 0 }; ZeroMemory(szBuffer, 128 * sizeof(TCHAR)); m_GameDBAide.GetValue_String(TEXT("UserName"), szBuffer, 128); TCHAR szOutBuffer[128] = { 0 }; ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR)); //解码 int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer); if (iRet == -1) { szBuffer[32] = 0x0; _sntprintf(gms.szUserName, LEN_NICKNAME, TEXT("%s"), szBuffer); } else { szOutBuffer[32] = 0x0; _sntprintf(gms.szUserName, LEN_NICKNAME, TEXT("%s"), szOutBuffer); } m_GameDBAide.GetValue_String(TEXT("UserImg"), gms.szHeadImg, 255); CString csTest = gms.szHeadImg; if (csTest == _T("0")) { ZeroMemory(gms.szHeadImg, 256 * sizeof(TCHAR)); } //移动记录 m_GameDBModule->MoveToNext(); } int totalSize = sizeof(tagClubIntegral)*ClubIntegral.size() + sizeof(WORD) + sizeof(BYTE); char* buff = new char[totalSize]; WORD wCount = pClubIntegral->wDateCount; CopyMemory(buff, &wCount, sizeof(WORD)); CopyMemory(buff + sizeof(WORD), &temp, sizeof(BYTE)); int offset = sizeof(BYTE) + sizeof(WORD); for (tagClubIntegral& r : ClubIntegral) { memcpy(buff + offset, &r, sizeof(tagClubIntegral)); offset += sizeof(tagClubIntegral); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(302)) { CString csTest; csTest.Format(_T("【OnRequestGetUserGameScoreRecords】获取战绩长度 ----> %d "), totalSize); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_GET_COUNT_INTEGRAL_ACK, dwContextID, buff, totalSize); SafeDeleteArray(buff); } double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_Integral ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); CString csTest; csTest.Format(_T("异常存储过程耗时 GSP_GP_Club_Integral ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Warning); return true; } } void CDataBaseEngineSink::OnHandleConfigToCString(CString & gameConfig, const tagTableConfig csGameConfig) { CString kongZhi = L"#"; TCHAR temp[10]; //类型 ZeroMemory(temp, 10); _itow_s(csGameConfig.wSubGameID, temp, 10); gameConfig.Append(temp); gameConfig.Append(kongZhi); //底分 ZeroMemory(temp, 10); _itow_s(csGameConfig.wPlayRule, temp, 10); gameConfig.Append(temp); gameConfig.Append(kongZhi); //房费 ZeroMemory(temp, 10); _itow_s(csGameConfig.wMaxFanRule, temp, 10); gameConfig.Append(temp); gameConfig.Append(kongZhi); //IP限制 ZeroMemory(temp, 10); _itow_s(csGameConfig.wMaxScore, temp, 10); gameConfig.Append(temp); gameConfig.Append(kongZhi); //局数 ZeroMemory(temp, 10); _itow_s(csGameConfig.wPlayCountRule, temp, 10); gameConfig.Append(temp); gameConfig.Append(kongZhi); //支付方式 ZeroMemory(temp, 10); _itow_s(csGameConfig.zmExtraRule, temp, 10); gameConfig.Append(temp); gameConfig.Append(kongZhi); //胡法 ZeroMemory(temp, 10); _itow_s(csGameConfig.bDuoLai, temp, 10); gameConfig.Append(temp); gameConfig.Append(kongZhi); //玩法 ZeroMemory(temp, 10); _itow_s(csGameConfig.wFengDing, temp, 10); gameConfig.Append(temp); gameConfig.Append(kongZhi); //备用 ZeroMemory(temp, 10); _itow_s(csGameConfig.tmp1, temp, 10); gameConfig.Append(temp); gameConfig.Append(kongZhi); ZeroMemory(temp, 10); _itow_s(csGameConfig.tmp2, temp, 10); gameConfig.Append(temp); gameConfig.Append(kongZhi); ZeroMemory(temp, 10); _itow_s(csGameConfig.tmp3, temp, 10); gameConfig.Append(temp); gameConfig.Append(kongZhi); ZeroMemory(temp, 10); _itow_s(csGameConfig.tmp4, temp, 10); gameConfig.Append(temp); gameConfig.Append(kongZhi); ZeroMemory(temp, 10); _itow_s(csGameConfig.tmp5, temp, 10); gameConfig.Append(temp); } //俱乐部创建 bool CDataBaseEngineSink::OnRequestCreateClub(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { OutputDebugStringA("CDataBaseEngineSink::OnRequestCreateClub"); CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestCreateClub"), TraceLevel_Debug); CTimer Start; try { DBR_GR_ClubAction1 *pClubAction1 = (DBR_GR_ClubAction1*)pData; if (pClubAction1 == NULL) return false; //构造参数 TCHAR szDescribeString[127]; ZeroMemory(szDescribeString, 127 * sizeof(TCHAR)); //输入参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("UserID"), pClubAction1->dwUserID); m_GameDBAide.AddParameter(TEXT("ClubName"), pClubAction1->ClubInfo.szClubName); m_GameDBAide.AddParameter(TEXT("TableChoice"), pClubAction1->ClubInfo.temp1); CString gameConfig; OnHandleConfigToCString(gameConfig, pClubAction1->ClubInfo.csGameConfig);//LYH26 //CString kongZhi = L"#"; //TCHAR temp[10]; ////类型 //ZeroMemory(temp, 10); //_itow_s(pClubAction1->ClubInfo.csGameConfig.wSubGameID, temp, 10); //gameConfig.Append(temp); //gameConfig.Append(kongZhi); ////底分 //ZeroMemory(temp, 10); //_itow_s(pClubAction1->ClubInfo.csGameConfig.wPlayRule, temp, 10); // //gameConfig.Append(temp); //gameConfig.Append(kongZhi); ////房费 //ZeroMemory(temp, 10); //_itow_s(pClubAction1->ClubInfo.csGameConfig.wMaxFanRule, temp, 10); //gameConfig.Append(temp); //gameConfig.Append(kongZhi); ////IP限制 //ZeroMemory(temp, 10); //_itow_s(pClubAction1->ClubInfo.csGameConfig.wMaxScore, temp, 10); //gameConfig.Append(temp); //gameConfig.Append(kongZhi); ////局数 //ZeroMemory(temp, 10); //_itow_s(pClubAction1->ClubInfo.csGameConfig.wPlayCountRule, temp, 10); //gameConfig.Append(temp); //gameConfig.Append(kongZhi); ////支付方式 //ZeroMemory(temp, 10); //_itow_s(pClubAction1->ClubInfo.csGameConfig.zmExtraRule, temp, 10); //gameConfig.Append(temp); //gameConfig.Append(kongZhi); ////胡法 //ZeroMemory(temp, 10); //_itow_s(pClubAction1->ClubInfo.csGameConfig.bDuoLai, temp, 10); //gameConfig.Append(temp); //gameConfig.Append(kongZhi); ////玩法 //ZeroMemory(temp, 10); //_itow_s(pClubAction1->ClubInfo.csGameConfig.wFengDing, temp, 10); //gameConfig.Append(temp); //gameConfig.Append(kongZhi); ////备用 //ZeroMemory(temp, 10); //_itow_s(pClubAction1->ClubInfo.csGameConfig.tmp1, temp, 10); //gameConfig.Append(temp); //gameConfig.Append(kongZhi); //ZeroMemory(temp, 10); //_itow_s(pClubAction1->ClubInfo.csGameConfig.tmp2, temp, 10); //gameConfig.Append(temp); //gameConfig.Append(kongZhi); //ZeroMemory(temp, 10); //_itow_s(pClubAction1->ClubInfo.csGameConfig.tmp3, temp, 10); //gameConfig.Append(temp); //gameConfig.Append(kongZhi); //ZeroMemory(temp, 10); //_itow_s(pClubAction1->ClubInfo.csGameConfig.tmp4, temp, 10); //gameConfig.Append(temp); //gameConfig.Append(kongZhi); //ZeroMemory(temp, 10); //_itow_s(pClubAction1->ClubInfo.csGameConfig.tmp5, temp, 10); //gameConfig.Append(temp); m_GameDBAide.AddParameter(TEXT("GameConfig"), gameConfig); m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //返回数据 DBR_GR_Club_Action_Ack4 ActionAck1; ZeroMemory(&ActionAck1, sizeof(ActionAck1)); //创建俱乐部 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_Create"), true); if (DB_SUCCESS == lResultCode) { CopyMemory(&ActionAck1.ClubInfo, &(pClubAction1->ClubInfo), sizeof(CMD_S_ClubInfo)); ActionAck1.ClubInfo.dwOwnerID = pClubAction1->dwUserID; ActionAck1.ClubInfo.dwClubID = m_GameDBAide.GetValue_DWORD(TEXT("ClubID")); m_GameDBAide.GetValue_String(TEXT("HeadUrl"), ActionAck1.ClubInfo.szHeadUrl, LEN_HEAD_URL); TCHAR szBuffer[128] = { 0 }; ZeroMemory(szBuffer, 128 * sizeof(TCHAR)); m_GameDBAide.GetValue_String(TEXT("NickName"), szBuffer, 128); TCHAR szOutBuffer[128] = { 0 }; ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR)); //解码 int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer); if (iRet == -1) { szBuffer[32] = 0x0; _sntprintf(ActionAck1.ClubInfo.szHostName, CountArray(ActionAck1.ClubInfo.szHostName), TEXT("%s"), szBuffer); } else { szOutBuffer[32] = 0x0; _sntprintf(ActionAck1.ClubInfo.szHostName, CountArray(ActionAck1.ClubInfo.szHostName), TEXT("%s"), szOutBuffer); } ActionAck1.Result = 1; } else { //获取参数 CDBVarValue DBVarValue; m_GameDBAide.GetParameter(TEXT("@strErrorDescribe"), DBVarValue); ZeroMemory(szDescribeString, sizeof(szDescribeString)); lstrcpyn(szDescribeString, CW2CT(DBVarValue.bstrVal), sizeof(szDescribeString)); CopyMemory(ActionAck1.Message, szDescribeString, 127 * sizeof(TCHAR)); } //返回数据 m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_CREATE_ACK, dwContextID, &ActionAck1, sizeof(ActionAck1)); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_Create ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_Create ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_Create ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_Create ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } return true; } //俱乐部额外玩法修改 bool CDataBaseEngineSink::OnRequestUpdateAddClub(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestUpdateClub"), TraceLevel_Debug); CTimer Start; try { DBR_GR_ClubAddAction *pClubAction1 = (DBR_GR_ClubAddAction*)pData; if (pClubAction1 == NULL) return false; //构造参数 TCHAR szDescribeString[127]; ZeroMemory(szDescribeString, 127 * sizeof(TCHAR)); //输入参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@AddId"), pClubAction1->tbAutoAddInfo.cbWanfaId);//额外玩法自动开房与默认玩法区别 m_GameDBAide.AddParameter(TEXT("@UserID"), pClubAction1->dwUserID); m_GameDBAide.AddParameter(TEXT("@CLubID"), pClubAction1->tbAutoAddInfo.dwClubID); CString gameConfig; if (1 == pClubAction1->tbAutoAddInfo.cbStatus) { OnHandleConfigToCString(gameConfig, pClubAction1->tbAutoAddInfo.gameconfig);//只修改默认玩法,额外玩法不改 目前 LYH26 } m_GameDBAide.AddParameter(TEXT("@GameConfig"), gameConfig); m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //返回数据 CMD_GR_Club_Action_Ack1Add ActionAck1; ZeroMemory(&ActionAck1, sizeof(ActionAck1)); CMD_S_ClubAutoAddInfo tAutoAddInfo; //额外玩法信息 ZeroMemory(&tAutoAddInfo, sizeof(CMD_S_ClubAutoAddInfo)); CopyMemory(&ActionAck1.AutoAddInfo, &pClubAction1->tbAutoAddInfo, sizeof(CMD_S_ClubAutoAddInfo)); //更新俱乐部 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_UpdateAdd"), true); if (DB_SUCCESS == lResultCode) { ActionAck1.Result = 1; } else { //获取参数 CDBVarValue DBVarValue; m_GameDBAide.GetParameter(TEXT("@strErrorDescribe"), DBVarValue); ZeroMemory(szDescribeString, sizeof(szDescribeString)); lstrcpyn(szDescribeString, CW2CT(DBVarValue.bstrVal), sizeof(szDescribeString)); CopyMemory(ActionAck1.Message, szDescribeString, 127 * sizeof(TCHAR)); ActionAck1.Result = 0; } //返回数据 m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_SAVE_MORE_WANFA_ACK, dwContextID, &ActionAck1, sizeof(CMD_GR_Club_Action_Ack1Add)); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_UpdateAdd ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_UpdateAdd ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); CString csTest; csTest.Format(_T("异常存储过程耗时 GSP_GP_Club_UpdateAdd ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Warning); return true; } return true; } //俱乐部修改 bool CDataBaseEngineSink::OnRequestUpdateClub(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestUpdateClub"), TraceLevel_Debug); CTimer Start; try { DBR_GR_ClubAction1 *pClubAction1 = (DBR_GR_ClubAction1*)pData; if (pClubAction1 == NULL) return false; //构造参数 TCHAR szDescribeString[127]; ZeroMemory(szDescribeString, 127 * sizeof(TCHAR)); //输入参数 m_GameDBAide.ResetParameter(); //int nAddId = *(int*)(pClubAction1 + 1);//额外玩法自动开房与默认玩法区别 //m_GameDBAide.AddParameter(TEXT("@AddId"), nAddId); m_GameDBAide.AddParameter(TEXT("@UserID"), pClubAction1->dwUserID); m_GameDBAide.AddParameter(TEXT("@CLubID"), pClubAction1->ClubInfo.dwClubID); m_GameDBAide.AddParameter(TEXT("@TableChoice"), pClubAction1->ClubInfo.temp1); m_GameDBAide.AddParameter(TEXT("@ClubName"), pClubAction1->ClubInfo.szClubName); CString gameConfig; OnHandleConfigToCString(gameConfig, pClubAction1->ClubInfo.csGameConfig);//只修改默认玩法,额外玩法不改 目前 LYH26 //CString kongZhi = L"#"; //TCHAR temp[10]; ////类型 //ZeroMemory(temp, 10); //_itow_s(pClubAction1->ClubInfo.csGameConfig.wSubGameID, temp, 10); //gameConfig.Append(temp); //gameConfig.Append(kongZhi); ////底分 //ZeroMemory(temp, 10); //_itow_s(pClubAction1->ClubInfo.csGameConfig.wPlayRule, temp, 10); //gameConfig.Append(temp); //gameConfig.Append(kongZhi); ////房费 //ZeroMemory(temp, 10); //_itow_s(pClubAction1->ClubInfo.csGameConfig.wMaxFanRule, temp, 10); //gameConfig.Append(temp); //gameConfig.Append(kongZhi); ////IP限制 //ZeroMemory(temp, 10); //_itow_s(pClubAction1->ClubInfo.csGameConfig.wMaxScore, temp, 10); //gameConfig.Append(temp); //gameConfig.Append(kongZhi); ////局数 //ZeroMemory(temp, 10); //_itow_s(pClubAction1->ClubInfo.csGameConfig.wPlayCountRule, temp, 10); //gameConfig.Append(temp); //gameConfig.Append(kongZhi); ////支付方式 //ZeroMemory(temp, 10); //_itow_s(pClubAction1->ClubInfo.csGameConfig.zmExtraRule, temp, 10); //gameConfig.Append(temp); //gameConfig.Append(kongZhi); ////胡法 //ZeroMemory(temp, 10); //_itow_s(pClubAction1->ClubInfo.csGameConfig.bDuoLai, temp, 10); //gameConfig.Append(temp); //gameConfig.Append(kongZhi); ////玩法 //ZeroMemory(temp, 10); //_itow_s(pClubAction1->ClubInfo.csGameConfig.wFengDing, temp, 10); //gameConfig.Append(temp); //gameConfig.Append(kongZhi); ////备用 //ZeroMemory(temp, 10); //_itow_s(pClubAction1->ClubInfo.csGameConfig.tmp1, temp, 10); //gameConfig.Append(temp); //gameConfig.Append(kongZhi); //ZeroMemory(temp, 10); //_itow_s(pClubAction1->ClubInfo.csGameConfig.tmp2, temp, 10); //gameConfig.Append(temp); //gameConfig.Append(kongZhi); //ZeroMemory(temp, 10); //_itow_s(pClubAction1->ClubInfo.csGameConfig.tmp3, temp, 10); //gameConfig.Append(temp); //gameConfig.Append(kongZhi); //ZeroMemory(temp, 10); //_itow_s(pClubAction1->ClubInfo.csGameConfig.tmp4, temp, 10); //gameConfig.Append(temp); //gameConfig.Append(kongZhi); //ZeroMemory(temp, 10); //_itow_s(pClubAction1->ClubInfo.csGameConfig.tmp5, temp, 10); //gameConfig.Append(temp); m_GameDBAide.AddParameter(TEXT("@GameConfig"), gameConfig); m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //返回数据 CMD_GR_Club_Action_Ack2Ex ActionAck2; ZeroMemory(&ActionAck2, sizeof(ActionAck2)); //更新俱乐部 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_Update"), true); if (DB_SUCCESS == lResultCode) { ActionAck2.TableChoiceChange = m_GameDBAide.GetValue_BYTE(TEXT("TableChoiceChange")); ActionAck2.Ack2.Result = 1; CopyMemory(&(ActionAck2.Ack2.ClubInfo), &(pClubAction1->ClubInfo), sizeof(CMD_S_ClubInfo)); ActionAck2.Ack2.ClubInfo.dwOwnerID = pClubAction1->dwUserID; m_GameDBAide.GetValue_String(TEXT("HeadUrl"), ActionAck2.Ack2.ClubInfo.szHeadUrl, LEN_HEAD_URL); TCHAR szBuffer[128] = { 0 }; ZeroMemory(szBuffer, 128 * sizeof(TCHAR)); m_GameDBAide.GetValue_String(TEXT("NickName"), szBuffer, 128); TCHAR szOutBuffer[128] = { 0 }; ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR)); //解码 int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer); if (iRet == -1) { szBuffer[32] = 0x0; _sntprintf(ActionAck2.Ack2.ClubInfo.szHostName, CountArray(ActionAck2.Ack2.ClubInfo.szHostName), TEXT("%s"), szBuffer); } else { szOutBuffer[32] = 0x0; _sntprintf(ActionAck2.Ack2.ClubInfo.szHostName, CountArray(ActionAck2.Ack2.ClubInfo.szHostName), TEXT("%s"), szOutBuffer); } } else { //获取参数 CDBVarValue DBVarValue; m_GameDBAide.GetParameter(TEXT("@strErrorDescribe"), DBVarValue); ZeroMemory(szDescribeString, sizeof(szDescribeString)); lstrcpyn(szDescribeString, CW2CT(DBVarValue.bstrVal), sizeof(szDescribeString)); CopyMemory(ActionAck2.Ack2.Message, szDescribeString, 127 * sizeof(TCHAR)); } //返回数据 m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_UPDATE_ACK, dwContextID, &ActionAck2, sizeof(ActionAck2)); //推送给其他用户 if (DB_SUCCESS == lResultCode) { //输入参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction1->ClubInfo.dwClubID); //执行存储过程 lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetAllUser"), true); //返回数据 DBR_GR_UserData UserData; ZeroMemory(&UserData, sizeof(UserData)); CString s = L"创建者修改了牌友圈"; CString tmp; tmp.Format(_T("%d"),pClubAction1->ClubInfo.dwClubID); s = s + tmp; _tcscpy(UserData.Message, s); int i = 0; if (DB_SUCCESS == lResultCode) { while (m_GameDBModule->IsRecordsetEnd() == false) { if (i >= 1000){ break; } UserData.dwUserID[i++] = m_GameDBAide.GetValue_DWORD(TEXT("UserID")); m_GameDBModule->MoveToNext(); } } UserData.wUserCount = i; UserData.newsFlag = 1; m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_NOTIFY_ACK, dwContextID, &UserData, sizeof(UserData)); } double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_Update ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_Update ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_Update ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_Update ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } return true; } //俱乐部删除 bool CDataBaseEngineSink::OnRequestDeleteClub(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { OutputDebugStringA("CDataBaseEngineSink::OnRequestDeleteClub"); CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestDeleteClub"), TraceLevel_Debug); CTimer Start; try { DBR_GR_ClubAction2 *pClubAction2 = (DBR_GR_ClubAction2*)pData; if (pClubAction2 == NULL) return false; //构造参数 TCHAR szDescribeString[127]; ZeroMemory(szDescribeString, 127 * sizeof(TCHAR)); //输入参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction2->dwClubID); //执行存储过程 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetAllUser"), true); //返回数据 DBR_GR_UserData UserData; ZeroMemory(&UserData, sizeof(UserData)); CString s = L"创建者删除了牌友圈"; CString tmp; tmp.Format(_T("%d"), pClubAction2->dwClubID); s = s + tmp; _tcscpy(UserData.Message, s); int i = 0; if (DB_SUCCESS == lResultCode) { while (m_GameDBModule->IsRecordsetEnd() == false) { if (i >= 1000){ break; } UserData.dwUserID[i++] = m_GameDBAide.GetValue_DWORD(TEXT("UserID")); m_GameDBModule->MoveToNext(); } } UserData.wUserCount = i; //输入数据 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("UserID"), pClubAction2->dwUserID); m_GameDBAide.AddParameter(TEXT("ClubID"), pClubAction2->dwClubID); m_GameDBAide.AddParameterOutput(TEXT("strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //执行存储过程 lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_Delete"), true); //返回数据 DBR_GR_Club_Action_Ack1 ActionAck1; ZeroMemory(&ActionAck1, sizeof(ActionAck1)); if (DB_SUCCESS == lResultCode) { ActionAck1.dwClubID = pClubAction2->dwClubID; ActionAck1.Result = 1; } else { //获取参数 CDBVarValue DBVarValue; m_GameDBAide.GetParameter(TEXT("@strErrorDescribe"), DBVarValue); ZeroMemory(szDescribeString, sizeof(szDescribeString)); lstrcpyn(szDescribeString, CW2CT(DBVarValue.bstrVal), sizeof(szDescribeString)); CopyMemory(ActionAck1.Message, szDescribeString, 127 * sizeof(TCHAR)); } //推送给其他用户 if (DB_SUCCESS == lResultCode) { UserData.newsFlag = 1; m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_NOTIFY_ACK, dwContextID, &UserData, sizeof(UserData)); } //返回数据 m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_DELETE_ACK, dwContextID, &ActionAck1, sizeof(ActionAck1)); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_Delete ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_Delete ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_Delete ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_Delete ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } return true; } //处理玩法配置 tagTableConfig——》CString bool CDataBaseEngineSink::OnHandleCStringToConfig(tagTableConfig & csGameConfig, CString Config) { if (L"" == Config) { return false; } CList list; /*CString Config = tcconfig;*/ int pos = Config.Find(_T('#')); while (pos != -1) { CString field = Config.Left(pos); int iRet = _wtoi(Config.GetBuffer(0)); list.AddTail(iRet); Config.ReleaseBuffer(); Config = Config.Right(Config.GetLength() - pos - 1); pos = Config.Find(_T('#')); } if (Config.GetLength() > 0) { int iRet = _wtoi(Config.GetBuffer(0)); list.AddTail(iRet); Config.ReleaseBuffer(); } int i = 0; //游戏类型 POSITION p = list.FindIndex(i++); if (p) csGameConfig.wSubGameID = list.GetAt(p); //底分 p = list.FindIndex(i++); if (p) csGameConfig.wPlayRule = list.GetAt(p); //房费 p = list.FindIndex(i++); if (p) csGameConfig.wMaxFanRule = list.GetAt(p); //IP限制 p = list.FindIndex(i++); if (p) csGameConfig.wMaxScore = list.GetAt(p); //局数 p = list.FindIndex(i++); if (p) csGameConfig.wPlayCountRule = list.GetAt(p); //是否房主 p = list.FindIndex(i++); if (p) csGameConfig.zmExtraRule = list.GetAt(p); //胡法 p = list.FindIndex(i++); if (p) csGameConfig.bDuoLai = list.GetAt(p); //玩法 p = list.FindIndex(i++); if (p) csGameConfig.wFengDing = list.GetAt(p); //备用 p = list.FindIndex(i++); if (p) csGameConfig.tmp1 = list.GetAt(p); p = list.FindIndex(i++); if (p) csGameConfig.tmp2 = list.GetAt(p); p = list.FindIndex(i++); if (p) csGameConfig.tmp3 = list.GetAt(p); p = list.FindIndex(i++); if (p) csGameConfig.tmp4 = list.GetAt(p); p = list.FindIndex(i++); if (p) csGameConfig.tmp5 = list.GetAt(p); return true; } //俱乐部查看 额外玩法 bool CDataBaseEngineSink::OnRequestGetAddClub(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { OutputDebugStringA("CDataBaseEngineSink::OnRequestGetClub"); CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClub"), TraceLevel_Debug); CTimer Start; try { DBR_GR_ClubAddAction *pClubAction2 = (DBR_GR_ClubAddAction*)pData; if (pClubAction2 == NULL || pClubAction2->tbAutoAddInfo.dwClubID == 0) return false; //构造参数 TCHAR szDescribeString[127]; ZeroMemory(szDescribeString, 127 * sizeof(TCHAR)); //输入参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@AddID"), pClubAction2->tbAutoAddInfo.cbWanfaId); m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction2->tbAutoAddInfo.dwClubID); m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //执行存储过程 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetAdd"), true); //返回数据 CMD_GR_Club_Action_Ack1Add ActionAck2; ZeroMemory(&ActionAck2, sizeof(ActionAck2)); CopyMemory(&ActionAck2.AutoAddInfo, &pClubAction2->tbAutoAddInfo, (sizeof(CMD_S_ClubAutoAddInfo) - sizeof(tagTableConfig))); if (DB_SUCCESS == lResultCode) { ActionAck2.Result = 1; ActionAck2.AutoAddInfo.dwClubID = m_GameDBAide.GetValue_DWORD(TEXT("ClubID")); //配置 TCHAR tcconfig[LEN_TABLE_CONFIG] = { 0 }; m_GameDBAide.GetValue_String(TEXT("ClubGameConfig"), tcconfig, LEN_TABLE_CONFIG); OnHandleCStringToConfig(ActionAck2.AutoAddInfo.gameconfig, tcconfig); CString csTempCFG; csTempCFG.Format(L"%s", tcconfig); if (L"" != csTempCFG) { ActionAck2.AutoAddInfo.cbStatus = 1; //查看群主是否开启房主选项 //输入参数 m_GameDBAide.ResetParameter(); //执行存储过程 lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_PayChoice"), true); if (DB_SUCCESS == lResultCode) { int PayChoice = m_GameDBAide.GetValue_DWORD(TEXT("PayChoice")); if (PayChoice == 1 && ActionAck2.AutoAddInfo.gameconfig.wMaxFanRule >= 10) { ActionAck2.AutoAddInfo.gameconfig.wMaxFanRule -= 10; } } } else { ActionAck2.AutoAddInfo.cbStatus = 2; } } else { //获取参数 CDBVarValue DBVarValue; m_GameDBAide.GetParameter(TEXT("@strErrorDescribe"), DBVarValue); ZeroMemory(szDescribeString, sizeof(szDescribeString)); lstrcpyn(szDescribeString, CW2CT(DBVarValue.bstrVal), sizeof(szDescribeString)); CopyMemory(ActionAck2.Message, szDescribeString, 127 * sizeof(TCHAR)); } //返回数据 /*if (dwContextID == 0 && ActionAck2.ClubInfo.temp1 == 2) { CMD_GR_Club_Action_Ack2 CMD_GR_Club_Action_Ack2Ex2 ActionAck2Ex; ZeroMemory(&ActionAck2Ex, sizeof(ActionAck2Ex)); ActionAck2Ex.dwUserID = pClubAction2->dwUserID; CopyMemory(&(ActionAck2Ex.Ack2), &ActionAck2, sizeof(ActionAck2)); m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_AUTOTABLE_ACK, dwContextID, &ActionAck2Ex, sizeof(ActionAck2Ex)); } else*/ { //获取俱乐部信息 m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_GET_MORE_WANFA_ACK, dwContextID, &ActionAck2, sizeof(ActionAck2)); } double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetAdd ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetAdd ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetAdd ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetAdd ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } return true; } //俱乐部查看 bool CDataBaseEngineSink::OnRequestGetClub(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { OutputDebugStringA("CDataBaseEngineSink::OnRequestGetClub"); CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClub"), TraceLevel_Debug); CTimer Start; try { DBR_GR_ClubAction2 *pClubAction2 = (DBR_GR_ClubAction2*)pData; if (pClubAction2 == NULL) return false; //构造参数 TCHAR szDescribeString[127]; ZeroMemory(szDescribeString, 127 * sizeof(TCHAR)); //输入参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction2->dwClubID); m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //执行存储过程 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_Get"), true); //返回数据 CMD_GR_Club_Action_Ack2 ActionAck2; ZeroMemory(&ActionAck2, sizeof(ActionAck2)); if (DB_SUCCESS == lResultCode) { ActionAck2.Result = 1; ActionAck2.ClubInfo.dwClubID = m_GameDBAide.GetValue_DWORD(TEXT("ClubID")); ActionAck2.ClubInfo.dwOwnerID = m_GameDBAide.GetValue_DWORD(TEXT("HostID")); ActionAck2.ClubInfo.wTotalNum = m_GameDBAide.GetValue_DWORD(TEXT("TotalNum")); ActionAck2.ClubInfo.temp1 = m_GameDBAide.GetValue_DWORD(TEXT("TableChoice")); m_GameDBAide.GetValue_String(TEXT("ClubName"), ActionAck2.ClubInfo.szClubName, LEN_CLUB_NAME); m_GameDBAide.GetValue_String(TEXT("HostHeadUrl"), ActionAck2.ClubInfo.szHeadUrl, LEN_HEAD_URL); TCHAR szBuffer[128] = { 0 }; ZeroMemory(szBuffer, 128 * sizeof(TCHAR)); m_GameDBAide.GetValue_String(TEXT("HostName"), szBuffer, 128); TCHAR szOutBuffer[128] = { 0 }; ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR)); //解码 int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer); if (iRet == -1) { szBuffer[32] = 0x0; _sntprintf(ActionAck2.ClubInfo.szHostName, CountArray(ActionAck2.ClubInfo.szHostName), TEXT("%s"), szBuffer); } else { szOutBuffer[32] = 0x0; _sntprintf(ActionAck2.ClubInfo.szHostName, CountArray(ActionAck2.ClubInfo.szHostName), TEXT("%s"), szOutBuffer); } //配置 TCHAR tcconfig[LEN_TABLE_CONFIG] = { 0 }; tagTableConfig csGameConfigTemp; ZeroMemory(&csGameConfigTemp, sizeof(tagTableConfig)); m_GameDBAide.GetValue_String(TEXT("ClubGameConfig"), tcconfig, LEN_TABLE_CONFIG); OnHandleCStringToConfig(csGameConfigTemp, tcconfig); ActionAck2.ClubInfo.temp4 = 0; if (dwContextID == 0) { if (1 == pClubAction2->wWanFa) { ZeroMemory(&csGameConfigTemp, sizeof(tagTableConfig)); ZeroMemory(tcconfig, sizeof(TCHAR)*LEN_TABLE_CONFIG); m_GameDBAide.GetValue_String(TEXT("AddPlay1"), tcconfig, LEN_TABLE_CONFIG); ActionAck2.ClubInfo.temp4 = 1; if (!OnHandleCStringToConfig(csGameConfigTemp, tcconfig)) { CString csTest; csTest.Format(_T("获取玩法1失败 查询GSP_GP_Club_Get中玩法类型"), pClubAction2->wWanFa); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Warning); return true; } } else if (2 == pClubAction2->wWanFa) { ZeroMemory(&csGameConfigTemp, sizeof(tagTableConfig)); ZeroMemory(tcconfig, sizeof(TCHAR)*LEN_TABLE_CONFIG); ActionAck2.ClubInfo.temp4 = 2; m_GameDBAide.GetValue_String(TEXT("AddPlay2"), tcconfig, LEN_TABLE_CONFIG); if (!OnHandleCStringToConfig(csGameConfigTemp, tcconfig)) { CString csTest; csTest.Format(_T("获取玩法2失败 查询GSP_GP_Club_Get中玩法类型"), pClubAction2->wWanFa); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Warning); return true; } } else { ZeroMemory(&csGameConfigTemp, sizeof(tagTableConfig)); ZeroMemory(tcconfig, sizeof(TCHAR)*LEN_TABLE_CONFIG); m_GameDBAide.GetValue_String(TEXT("ClubGameConfig"), tcconfig, LEN_TABLE_CONFIG); if (!OnHandleCStringToConfig(csGameConfigTemp, tcconfig)) { CString csTest; csTest.Format(_T("获取默认玩法失败 查询GSP_GP_Club_Get中玩法类型"), pClubAction2->wWanFa); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Warning); return true; } } if (pClubAction2->wWanFa > 3) { ZeroMemory(&csGameConfigTemp, sizeof(tagTableConfig)); ZeroMemory(tcconfig, sizeof(TCHAR)*LEN_TABLE_CONFIG); CString csTest; csTest.Format(_T("异常传玩法 %d"), pClubAction2->wWanFa); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Warning); } } CopyMemory(&ActionAck2.ClubInfo.csGameConfig,&csGameConfigTemp, sizeof(tagTableConfig)); //CList list; //CString Config = tcconfig[0]; //int pos = Config.Find(_T('#')); //while (pos != -1) //{ // CString field = Config.Left(pos); // int iRet = _wtoi(Config.GetBuffer(0)); // list.AddTail(iRet); // Config.ReleaseBuffer(); // Config = Config.Right(Config.GetLength() - pos - 1); // pos = Config.Find(_T('#')); //} //if (Config.GetLength() > 0) //{ // int iRet = _wtoi(Config.GetBuffer(0)); // list.AddTail(iRet); // Config.ReleaseBuffer(); //} // //int i = 0; ////游戏类型 //POSITION p = list.FindIndex(i++); //if (p) // ActionAck2.ClubInfo.csGameConfig.wSubGameID = list.GetAt(p); ////底分 //p = list.FindIndex(i++); //if (p) // ActionAck2.ClubInfo.csGameConfig.wPlayRule = list.GetAt(p); ////房费 //p = list.FindIndex(i++); //if (p) // ActionAck2.ClubInfo.csGameConfig.wMaxFanRule = list.GetAt(p); ////IP限制 //p = list.FindIndex(i++); //if (p) // ActionAck2.ClubInfo.csGameConfig.wMaxScore = list.GetAt(p); ////局数 //p = list.FindIndex(i++); //if (p) // ActionAck2.ClubInfo.csGameConfig.wPlayCountRule = list.GetAt(p); ////是否房主 //p = list.FindIndex(i++); //if (p) // ActionAck2.ClubInfo.csGameConfig.zmExtraRule = list.GetAt(p); ////胡法 //p = list.FindIndex(i++); //if (p) // ActionAck2.ClubInfo.csGameConfig.bDuoLai = list.GetAt(p); ////玩法 //p = list.FindIndex(i++); //if (p) // ActionAck2.ClubInfo.csGameConfig.wFengDing = list.GetAt(p); ////备用 //p = list.FindIndex(i++); //if (p) // ActionAck2.ClubInfo.csGameConfig.tmp1 = list.GetAt(p); //p = list.FindIndex(i++); //if (p) // ActionAck2.ClubInfo.csGameConfig.tmp2 = list.GetAt(p); //p = list.FindIndex(i++); //if (p) // ActionAck2.ClubInfo.csGameConfig.tmp3 = list.GetAt(p); //p = list.FindIndex(i++); //if (p) // ActionAck2.ClubInfo.csGameConfig.tmp4 = list.GetAt(p); //p = list.FindIndex(i++); //if (p) // ActionAck2.ClubInfo.csGameConfig.tmp5 = list.GetAt(p); //查看群主是否开启房主选项 //输入参数 m_GameDBAide.ResetParameter(); //执行存储过程 lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_PayChoice"), true); if (DB_SUCCESS == lResultCode) { int PayChoice = m_GameDBAide.GetValue_DWORD(TEXT("PayChoice")); if (PayChoice == 1 && ActionAck2.ClubInfo.csGameConfig.wMaxFanRule >= 10) { ActionAck2.ClubInfo.csGameConfig.wMaxFanRule -= 10; } } } else { //获取参数 CDBVarValue DBVarValue; m_GameDBAide.GetParameter(TEXT("@strErrorDescribe"), DBVarValue); ZeroMemory(szDescribeString, sizeof(szDescribeString)); lstrcpyn(szDescribeString, CW2CT(DBVarValue.bstrVal), sizeof(szDescribeString)); CopyMemory(ActionAck2.Message, szDescribeString, 127 * sizeof(TCHAR)); } //返回数据 if (dwContextID == 0 && ActionAck2.ClubInfo.temp1 == 2) { CMD_GR_Club_Action_Ack2Ex2 ActionAck2Ex; ZeroMemory(&ActionAck2Ex, sizeof(ActionAck2Ex)); ActionAck2Ex.dwUserID = pClubAction2->dwUserID; CopyMemory(&(ActionAck2Ex.Ack2), &ActionAck2, sizeof(ActionAck2)); m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_AUTOTABLE_ACK, dwContextID, &ActionAck2Ex, sizeof(ActionAck2Ex)); } else { m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_GET_ACK, dwContextID, &ActionAck2, sizeof(ActionAck2)); } double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_Get ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_Get ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); CString csTest; csTest.Format(_T("异常存储过程耗时 GSP_GP_Club_Get ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Warning); return true; } return true; } //俱乐部加入 bool CDataBaseEngineSink::OnRequestJoinClub(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { OutputDebugStringA("CDataBaseEngineSink::OnRequestJoinClub"); CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestJoinClub"), TraceLevel_Debug); CTimer Start; try { DBR_GR_ClubAction2 *pClubAction2 = (DBR_GR_ClubAction2*)pData; if (pClubAction2 == NULL) return false; TCHAR szDescribeString[127]; ZeroMemory(szDescribeString, 127 * sizeof(TCHAR)); //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@UserID"), pClubAction2->dwUserID); m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction2->dwClubID); m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //执行存储过程 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_Join"), true); //返回数据 CMD_GR_Club_Action_Ack1 ActionAck1; ZeroMemory(&ActionAck1, sizeof(ActionAck1)); if (DB_SUCCESS == lResultCode) { ActionAck1.Result = 1; //传递参数 DBR_GR_UserData UserData; ZeroMemory(&UserData, sizeof(UserData)); //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction2->dwClubID); //执行存储过程 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetAdmInfo"), true); if (DB_SUCCESS == lResultCode) { int i = 0; while (m_GameDBModule->IsRecordsetEnd() == false) { if (i >= 5){ break; } UserData.dwUserID[i++] = m_GameDBAide.GetValue_DWORD(TEXT("UserID")); m_GameDBModule->MoveToNext(); } //存储过程 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@UserID"), UserData.dwUserID[0]); m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction2->dwClubID); //执行存储过程 lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetNewUser"), true); if (DB_SUCCESS == lResultCode) { UserData.newUserCount = m_GameDBAide.GetValue_DWORD(TEXT("UserCount")); } UserData.wUserCount = i + 1; UserData.newsFlag = 3; UserData.dwClubID = pClubAction2->dwClubID; m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_NOTIFY_ACK, dwContextID, &UserData, sizeof(UserData)); } } else { //获取参数 CDBVarValue DBVarValue; m_GameDBAide.GetParameter(TEXT("@strErrorDescribe"), DBVarValue); ZeroMemory(szDescribeString, sizeof(szDescribeString)); lstrcpyn(szDescribeString, CW2CT(DBVarValue.bstrVal), sizeof(szDescribeString)); CopyMemory(ActionAck1.Message, szDescribeString, 127 * sizeof(TCHAR)); } //返回数据 m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_JOIN_ACK, dwContextID, &ActionAck1, sizeof(ActionAck1)); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_Join ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_Join ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_Join ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_Join ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } return true; } //俱乐部退出 bool CDataBaseEngineSink::OnRequestQuitClub(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { OutputDebugStringA("CDataBaseEngineSink::OnRequestQuitClub"); CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestQuitClub"), TraceLevel_Debug); CTimer Start; try { DBR_GR_ClubAction2 *pClubAction2 = (DBR_GR_ClubAction2*)pData; if (pClubAction2 == NULL) return false; TCHAR szDescribeString[127]; ZeroMemory(szDescribeString, 127 * sizeof(TCHAR)); //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@UserID"), pClubAction2->dwUserID); m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction2->dwClubID); m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //执行存储过程 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_Quit"), true); //返回数据 DBR_GR_Club_Action_Ack1 ActionAck1; ZeroMemory(&ActionAck1, sizeof(ActionAck1)); if (DB_SUCCESS == lResultCode) { ActionAck1.dwClubID = pClubAction2->dwClubID; ActionAck1.Result = 1; } else { //获取参数 CDBVarValue DBVarValue; m_GameDBAide.GetParameter(TEXT("@strErrorDescribe"), DBVarValue); ZeroMemory(szDescribeString, sizeof(szDescribeString)); lstrcpyn(szDescribeString, CW2CT(DBVarValue.bstrVal), sizeof(szDescribeString)); CopyMemory(ActionAck1.Message, szDescribeString, 127 * sizeof(TCHAR)); } //返回数据 m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_QUIT_ACK, dwContextID, &ActionAck1, sizeof(ActionAck1)); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_Quit ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_Quit ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_Quit ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_Quit ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } return true; } //俱乐部同意加入 bool CDataBaseEngineSink::OnRequestAgreeClub(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { OutputDebugStringA("CDataBaseEngineSink::OnRequestAgreeClub"); CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestAgreeClub"), TraceLevel_Debug); CTimer Start; try { DBR_GR_ClubAction3 *pClubAction3 = (DBR_GR_ClubAction3*)pData; if (pClubAction3 == NULL)return false; //构造参数 TCHAR szDescribeString[127]; ZeroMemory(szDescribeString, 127 * sizeof(TCHAR)); //输入参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@UserID"), pClubAction3->dwUserID); m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction3->dwClubID); m_GameDBAide.AddParameter(TEXT("@CurrentID"), pClubAction3->dwCurrentID); m_GameDBAide.AddParameter(TEXT("@Agree"), pClubAction3->Agree); m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //执行存储过程 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_Agree"), true); //返回数据 DBR_GR_Club_Action_Ack3 ActionAck3; ZeroMemory(&ActionAck3, sizeof(ActionAck3)); if (DB_SUCCESS == lResultCode) { ActionAck3.dwUserID = pClubAction3->dwUserID; ActionAck3.dwClubID = pClubAction3->dwClubID; ActionAck3.Agree = pClubAction3->Agree; ActionAck3.Result = 1; } else { //获取参数 CDBVarValue DBVarValue; m_GameDBAide.GetParameter(TEXT("@strErrorDescribe"), DBVarValue); ZeroMemory(szDescribeString, sizeof(szDescribeString)); lstrcpyn(szDescribeString, CW2CT(DBVarValue.bstrVal), sizeof(szDescribeString)); CopyMemory(ActionAck3.Message, szDescribeString, 127 * sizeof(TCHAR)); } //返回数据 m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_ISAGREE_ACK, dwContextID, &ActionAck3, sizeof(ActionAck3)); //推送给其他用户 if (DB_SUCCESS == lResultCode) { //返回数据 DBR_GR_UserData UserData; ZeroMemory(&UserData, sizeof(UserData)); if (pClubAction3->Agree == 1) { CString s = L"创建者同意您加入牌友圈"; CString tmp; tmp.Format(_T("%d"), pClubAction3->dwClubID); s = s + tmp; _tcscpy(UserData.Message, s); UserData.dwUserID[0] = pClubAction3->dwUserID; UserData.wUserCount = 1; UserData.newsFlag = 1; m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_NOTIFY_ACK, dwContextID, &UserData, sizeof(UserData)); } if (pClubAction3->Agree == 2) { CString s = L"创建者强制您退出牌友圈"; CString tmp; tmp.Format(_T("%d"), pClubAction3->dwClubID); s = s + tmp; _tcscpy(UserData.Message, s); UserData.dwUserID[0] = pClubAction3->dwUserID; UserData.wUserCount = 1; UserData.newsFlag = 1; m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_NOTIFY_ACK, dwContextID, &UserData, sizeof(UserData)); } if (pClubAction3->Agree == 13) { CString s = L"同意成为了群主牌友圈"; CString tmp1; tmp1.Format(_T("%d"), pClubAction3->dwClubID); CString tmp2; tmp2.Format(_T("%d"), pClubAction3->dwCurrentID); s = tmp2 + s + tmp1; _tcscpy(UserData.Message, s); if (pClubAction3->dwUserID != 0) { UserData.dwUserID[0] = pClubAction3->dwUserID; UserData.wUserCount = 1; UserData.newsFlag = 1; m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_NOTIFY_ACK, dwContextID, &UserData, sizeof(UserData)); } } //黑名单和管理员 if (pClubAction3->Agree >=4 && pClubAction3->Agree <= 7 ) { UserData.dwUserID[0] = pClubAction3->dwUserID; UserData.wUserCount = 1; UserData.newsFlag = 1; m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_NOTIFY_ACK, dwContextID, &UserData, sizeof(UserData)); } } double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_Agree ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_Agree ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_Agree ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_Agree ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } return true; } //俱乐部在线信息 //bool CDataBaseEngineSink::OnRequestGetClubOnLine(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) //{ // OutputDebugStringA("CDataBaseEngineSink::OnRequestGetClubOnLine"); // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClubOnLine"), TraceLevel_Debug); // CTimer Start; // try // { // DBR_GR_ClubOnLineRq *pClubAction2 = (DBR_GR_ClubOnLineRq*)pData; // if (pClubAction2 == NULL) return false; // // TCHAR szDescribeString[127]; // ZeroMemory(szDescribeString, 127 * sizeof(TCHAR)); // // // //构造参数 // m_GameDBAide.ResetParameter(); // m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction2->dwClubID); // // // //执行存储过程 // LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetAllUser"), true); // // //返回数据 // DBR_GR_ClubOnLine ClubOnLine; // ZeroMemory(&ClubOnLine, sizeof(ClubOnLine)); // // ClubOnLine.dwClubID = pClubAction2->dwClubID; // ClubOnLine.wStartIndex = pClubAction2->wStartIndex; // ClubOnLine.wCount = pClubAction2->wCount; // // int i = 0; // if (DB_SUCCESS == lResultCode) // { // while (m_GameDBModule->IsRecordsetEnd() == false) // { // if (i >= 1000){ break; } // ClubOnLine.dwUserID[i++] = m_GameDBAide.GetValue_DWORD(TEXT("UserID")); // m_GameDBModule->MoveToNext(); // } // } // ClubOnLine.wUserCount = i; // // //存储过程2 // m_GameDBAide.ResetParameter(); // m_GameDBAide.AddParameter(TEXT("@UserID"), pClubAction2->dwUserID); // //执行存储过程 // lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetMessgeCount"), true); // // if (DB_SUCCESS == lResultCode) // { // ClubOnLine.wMessageCount = m_GameDBAide.GetValue_DWORD(TEXT("MessageCount")); // } // // //存储过程3 // m_GameDBAide.ResetParameter(); // m_GameDBAide.AddParameter(TEXT("@UserID"), pClubAction2->dwUserID); // m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction2->dwClubID); // //执行存储过程 // lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetNewUser"), true); // // if (DB_SUCCESS == lResultCode) // { // ClubOnLine.wNewUserCount = m_GameDBAide.GetValue_DWORD(TEXT("UserCount")); // ClubOnLine.TableChoice = m_GameDBAide.GetValue_DWORD(TEXT("TableChoice")); // // //添加hostID用于群主刷新创建房间 // int hostId = m_GameDBAide.GetValue_DWORD(TEXT("HostID")); // if (hostId == pClubAction2->dwUserID) ClubOnLine.isHost = 1; // } // // // //LYH 2018-11-2,初始化获取俱乐部玩法是否存在,0表示不开启,否者就存在 // ClubOnLine.IsWanFa[0] = 1; // ClubOnLine.IsWanFa[1] = 0; // ClubOnLine.IsWanFa[2] = 0; // // //存储过程4 // m_GameDBAide.ResetParameter(); // m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction2->dwClubID); // //执行存储过程 // lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetPlayConfig"), true); // // if (DB_SUCCESS == lResultCode) // { // //获取玩法配置 大玩法类型值 // tagTableConfig tTableConfig; // ZeroMemory(&tTableConfig, sizeof(tagTableConfig)); // TCHAR tcClubGameConfig[3][LEN_TABLE_CONFIG] = { 0 }; // m_GameDBAide.GetValue_String(TEXT("ClubGameConfig"), tcClubGameConfig[0], LEN_TABLE_CONFIG); // m_GameDBAide.GetValue_String(TEXT("AddPlay1"), tcClubGameConfig[1], LEN_TABLE_CONFIG); // m_GameDBAide.GetValue_String(TEXT("AddPlay2"), tcClubGameConfig[2], LEN_TABLE_CONFIG); // for (int nIndex=0; nIndex < 3; nIndex++) // { // ZeroMemory(&tTableConfig, sizeof(tagTableConfig)); // if (OnHandleCStringToConfig(tTableConfig, tcClubGameConfig[nIndex])) // { // ClubOnLine.IsWanFa[nIndex] = 1; // } // else // { // ClubOnLine.IsWanFa[nIndex] = 0; // } // } // } // // // int nSize = (ClubOnLine.wUserCount*sizeof(DWORD)) + (7 * sizeof(WORD)) + sizeof(DWORD) + (sizeof(BYTE)*CountArray(ClubOnLine.IsWanFa)); // //返回数据 // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_GET_ONLINE_ACK, dwContextID, &ClubOnLine, nSize); // double dRet = Start.End(); // // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetNewUser ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetNewUser ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return true; // } // catch (IDataBaseException * pIException) // { // //输出错误 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetNewUser ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetNewUser ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // // return true; // } // // return true; // // //} bool CDataBaseEngineSink::OnRequestGetClubOnLineEx(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { OutputDebugStringA("CDataBaseEngineSink::OnRequestGetClubOnLineEx"); CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClubOnLineEx"), TraceLevel_Debug); CTimer Start; try { DBR_GR_ClubAction2 *pClubAction2 = (DBR_GR_ClubAction2*)pData; if (pClubAction2 == NULL || pClubAction2->dwClubID == 0) { CString csTest; csTest.Format(_T("俱乐部id不能为0,")); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Warning); return false; } TCHAR szDescribeString[127]; ZeroMemory(szDescribeString, 127 * sizeof(TCHAR)); //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction2->dwClubID); //执行存储过程 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetAllUser"), true); //返回数据 DBR_GR_ClubOnLine ClubOnLine; ZeroMemory(&ClubOnLine, sizeof(ClubOnLine)); ClubOnLine.dwClubID = pClubAction2->dwClubID; int i = 0; if (DB_SUCCESS == lResultCode) { while (m_GameDBModule->IsRecordsetEnd() == false) { if (i >= 1000){ break; } ClubOnLine.dwUserID[i++] = m_GameDBAide.GetValue_DWORD(TEXT("UserID")); m_GameDBModule->MoveToNext(); } } ClubOnLine.wUserCount = i; //存储过程2 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@UserID"), pClubAction2->dwUserID); //执行存储过程 lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetMessgeCount"), true); if (DB_SUCCESS == lResultCode) { ClubOnLine.wMessageCount = m_GameDBAide.GetValue_DWORD(TEXT("MessageCount")); } //存储过程3 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@UserID"), pClubAction2->dwUserID); m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction2->dwClubID); //执行存储过程 lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetNewUser"), true); if (DB_SUCCESS == lResultCode) { ClubOnLine.wNewUserCount = m_GameDBAide.GetValue_DWORD(TEXT("UserCount")); ClubOnLine.TableChoice = m_GameDBAide.GetValue_DWORD(TEXT("TableChoice")); DWORD TempUserID = m_GameDBAide.GetValue_DWORD(TEXT("HostID")); if (TempUserID == pClubAction2->dwUserID) { ClubOnLine.isHost = 1; } } //LYH 2018-11-2 ClubOnLine.IsWanFa[0] = 1; ClubOnLine.IsWanFa[1] = 0; ClubOnLine.IsWanFa[2] = 0; //存储过程4 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction2->dwClubID); //执行存储过程 lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetPlayConfig"), true); if (DB_SUCCESS == lResultCode) { //获取玩法配置 大玩法类型值 tagTableConfig tTableConfig; ZeroMemory(&tTableConfig, sizeof(tagTableConfig)); TCHAR tcClubGameConfig[3][LEN_TABLE_CONFIG] = { 0 }; m_GameDBAide.GetValue_String(TEXT("ClubGameConfig"), tcClubGameConfig[0], LEN_TABLE_CONFIG); m_GameDBAide.GetValue_String(TEXT("AddPlay1"), tcClubGameConfig[1], LEN_TABLE_CONFIG); m_GameDBAide.GetValue_String(TEXT("AddPlay2"), tcClubGameConfig[2], LEN_TABLE_CONFIG); for (int nIndex = 0; nIndex < 3; nIndex++) { ZeroMemory(&tTableConfig, sizeof(tagTableConfig)); if (OnHandleCStringToConfig(tTableConfig, tcClubGameConfig[nIndex])) { ClubOnLine.IsWanFa[nIndex] = 1; } else { ClubOnLine.IsWanFa[nIndex] = 0; } } } //返回数据 m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_GET_ONLINE_ACKEX, dwContextID, &ClubOnLine, sizeof(ClubOnLine)); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时GSP_GP_Club_GetMessgeCount----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetMessgeCount ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); CString csTest; csTest.Format(_T("异常存储过程耗时 GSP_GP_Club_GetAllUser GSP_GP_Club_GetMessgeCount GSP_GP_Club_GetPlayConfig GSP_GP_Club_GetNewUser ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Warning); return true; } return true; } //俱乐部会员黑名单 bool CDataBaseEngineSink::OnRequestGetClubBlackUser(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClubBlackUser"), TraceLevel_Debug); CTimer Start; try { DBR_GR_ClubUser2* pClubUser = (DBR_GR_ClubUser2*)pData; if (pClubUser == NULL) return false; //返回数据 CMD_GR_ClubUser2_Ack ClubUserAck; ZeroMemory(&ClubUserAck, sizeof(ClubUserAck)); //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("UserID"), pClubUser->dwUserID); m_GameDBAide.AddParameter(TEXT("ClubID"), pClubUser->dwClubID); DWORD Role = 0; LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetRole"), true); if (DB_SUCCESS == lResultCode) { if (m_GameDBModule->GetRecordCount() == 1) { Role = m_GameDBAide.GetValue_DWORD(TEXT("ClubRole")); if (Role == 10) { ClubUserAck.cbHost = 1; } else if (Role == 3) { ClubUserAck.cbHost = 2; } } } ClubUserAck.dwClubID = pClubUser->dwClubID; ClubUserAck.cbKind = pClubUser->cbKind; //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("UserID"), pClubUser->dwUserID); m_GameDBAide.AddParameter(TEXT("ClubID"), pClubUser->dwClubID); m_GameDBAide.AddParameter(TEXT("Kind"), pClubUser->cbKind); m_GameDBAide.AddParameter(TEXT("TargetUserID"), pClubUser->dwTemp); m_GameDBAide.AddParameter(TEXT("StartIndex"), pClubUser->wStartIndex); m_GameDBAide.AddParameter(TEXT("Count"), pClubUser->wCount); lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetBlackUser"), true); if (DB_SUCCESS == lResultCode) { for (int i = 0; i < m_GameDBModule->GetRecordCount(); i++) { if (i >= 20) { break; } //构造数据 CMD_S_MemberInfo ClubUser; ZeroMemory(&ClubUser, sizeof(ClubUser)); ClubUser.dwUserID = m_GameDBAide.GetValue_DWORD(TEXT("UserID")); ClubUser.BangMaID = m_GameDBAide.GetValue_DWORD(TEXT("BangMa")); ClubUser.cbStaus = m_GameDBAide.GetValue_BYTE(TEXT("Agree")); //如果是查找黑名单 if (pClubUser->cbKind == 2) { ClubUser.cbStaus = 2; } //如果是查找管理员 if (pClubUser->cbKind == 3) { ClubUser.cbStaus = 3; } TCHAR szBuffer[128] = { 0 }; ZeroMemory(szBuffer, 128 * sizeof(TCHAR)); m_GameDBAide.GetValue_String(TEXT("UserName"), szBuffer, 128); TCHAR szOutBuffer[128] = { 0 }; ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR)); //解码 int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer); if (iRet == -1) { szBuffer[32] = 0x0; _sntprintf(ClubUser.szName, CountArray(ClubUser.szName), TEXT("%s"), szBuffer); } else { szOutBuffer[32] = 0x0; _sntprintf(ClubUser.szName, CountArray(ClubUser.szName), TEXT("%s"), szOutBuffer); } m_GameDBAide.GetValue_String(TEXT("HeadUrl"), ClubUser.szHeadUrl, LEN_HEAD_URL); //复制数据 CopyMemory(&(ClubUserAck.csMemberInfo[i]), &ClubUser, sizeof(ClubUser)); //移动记录 m_GameDBModule->MoveToNext(); } ClubUserAck.wCount = m_GameDBModule->GetRecordCount(); if (ClubUserAck.wCount > 20){ ClubUserAck.wCount = 20; } } //返回数据 int totalSize = ClubUserAck.wCount * sizeof(CMD_S_MemberInfo) + sizeof(WORD) + 2*sizeof(DWORD) + 2*sizeof(BYTE); m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_GET_BLACKUSER_ACK, dwContextID, &ClubUserAck, totalSize); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetBlackUser ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetBlackUser ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetBlackUser ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetBlackUser ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } return true; } //俱乐部协议 bool CDataBaseEngineSink::OnRequestGetClubProtocol(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { OutputDebugStringA("CDataBaseEngineSink::OnRequestGetClubProtocol"); CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClubProtocol"), TraceLevel_Debug); CTimer Start; try { DBR_GR_ClubProtocol *pClubAction2 = (DBR_GR_ClubProtocol*)pData; if (pClubAction2 == NULL) return false; TCHAR szDescribeString[127]; ZeroMemory(szDescribeString, 127 * sizeof(TCHAR)); //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@UserID"), pClubAction2->dwUserID); m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction2->dwClubID); //执行存储过程 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetProtocol"), true); //返回数据 DBR_GR_ClubProtocolAgree ClubProtocolAgree; ZeroMemory(&ClubProtocolAgree, sizeof(ClubProtocolAgree)); if (DB_SUCCESS == lResultCode) { ClubProtocolAgree.dwUserID = pClubAction2->dwUserID; ClubProtocolAgree.dwClubID = pClubAction2->dwClubID; ClubProtocolAgree.cbAgree = m_GameDBAide.GetValue_BYTE(TEXT("Protocol")); } //返回数据 m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_PROTOCOL_ACK, dwContextID, &ClubProtocolAgree, sizeof(ClubProtocolAgree)); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetProtocol ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetProtocol ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetProtocol ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetProtocol ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } return true; } //俱乐部协议同意 bool CDataBaseEngineSink::OnRequestGetClubProtocolAgree(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { OutputDebugStringA("CDataBaseEngineSink::OnRequestGetClubProtocolAgree"); CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClubProtocolAgree"), TraceLevel_Debug); CTimer Start; try { DBR_GR_ClubProtocolAgree *pClubAction2 = (DBR_GR_ClubProtocolAgree*)pData; if (pClubAction2 == NULL) return false; TCHAR szDescribeString[127]; ZeroMemory(szDescribeString, 127 * sizeof(TCHAR)); //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@UserID"), pClubAction2->dwUserID); m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction2->dwClubID); m_GameDBAide.AddParameter(TEXT("@Agree"), pClubAction2->cbAgree); m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //执行存储过程 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_AgreeProtocol"), true); //返回数据 DBR_GR_Club_Action_Ack1 ClubProtocolAgree; ZeroMemory(&ClubProtocolAgree, sizeof(ClubProtocolAgree)); if (DB_SUCCESS == lResultCode) { ClubProtocolAgree.dwClubID = pClubAction2->dwClubID; ClubProtocolAgree.Result = 1; } else { //获取参数 CDBVarValue DBVarValue; m_GameDBAide.GetParameter(TEXT("@strErrorDescribe"), DBVarValue); ZeroMemory(szDescribeString, sizeof(szDescribeString)); lstrcpyn(szDescribeString, CW2CT(DBVarValue.bstrVal), sizeof(szDescribeString)); CopyMemory(ClubProtocolAgree.Message, szDescribeString, 127 * sizeof(TCHAR)); } //返回数据 m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_PROTOCOLAGREE_ACK, dwContextID, &ClubProtocolAgree, sizeof(ClubProtocolAgree)); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_AgreeProtocol ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_AgreeProtocol ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_AgreeProtocol ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_AgreeProtocol ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } return true; } //查询群主信息(自动创房和群主支付创房) bool CDataBaseEngineSink::OnRequestGetClubHostInfo(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { OutputDebugStringA("CDataBaseEngineSink::OnRequestGetClubHostInfo"); CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClubHostInfo"), TraceLevel_Debug); CTimer Start; try { CMD_GR_UserSitDownEx2 *pUserSitDown = (CMD_GR_UserSitDownEx2*)pData; if (pUserSitDown == NULL) return false; TCHAR szDescribeString[127]; ZeroMemory(szDescribeString, 127 * sizeof(TCHAR)); //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@ClubID"), pUserSitDown->data.clubID); //执行存储过程 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetHostInfo"), true); //返回数据 void * pBuffer = NULL; try { pBuffer = malloc(sizeof(DBR_GR_UserSitDownEx2) + sizeof(tagGameConfig) + 5 * sizeof(CMD_GR_UserInfo)); ZeroMemory(pBuffer, sizeof(DBR_GR_UserSitDownEx2) + sizeof(tagGameConfig) + 5 * sizeof(CMD_GR_UserInfo)); DBR_GR_UserSitDownEx3 * pEx = (DBR_GR_UserSitDownEx3 *)pBuffer; CopyMemory(&(pEx->UserSitDownData), pUserSitDown, sizeof(CMD_GR_UserSitDownEx2)); CopyMemory(&(pEx->UserSitDownData.data.TableConfig), pUserSitDown->data.TableConfig, sizeof(tagGameConfig)); if (DB_SUCCESS == lResultCode) { pEx->currCurrency = m_GameDBAide.GetValue_DWORD(TEXT("Currency")); pEx->UserSitDownData.hostInfo.dwOwnerID = m_GameDBAide.GetValue_DWORD(TEXT("UserID")); } //执行存储过程2 找管理员的信息 //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@ClubID"), pUserSitDown->data.clubID); //执行存储过程 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetAdmInfo"), true); if (DB_SUCCESS == lResultCode) { int i = 0; while (m_GameDBModule->IsRecordsetEnd() == false) { if (i >= 5){ break; } pEx->AdmInfo[i].dwOwnerID = m_GameDBAide.GetValue_DWORD(TEXT("UserID")); m_GameDBAide.GetValue_String(TEXT("HeadUrl"), pEx->AdmInfo[i].szHeadUrl, sizeof(pEx->AdmInfo[i].szHeadUrl)); TCHAR szBuffer[128] = { 0 }; ZeroMemory(szBuffer, 128 * sizeof(TCHAR)); m_GameDBAide.GetValue_String(TEXT("NickName"), szBuffer, 128); TCHAR szOutBuffer[128] = { 0 }; ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR)); //解码 int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer); if (iRet == -1) { szBuffer[32] = 0x0; _sntprintf(pEx->AdmInfo[i].szHostName, CountArray(pEx->AdmInfo[i].szHostName), TEXT("%s"), szBuffer); } else { szOutBuffer[32] = 0x0; _sntprintf(pEx->AdmInfo[i].szHostName, CountArray(pEx->AdmInfo[i].szHostName), TEXT("%s"), szOutBuffer); } i++; m_GameDBModule->MoveToNext(); } } //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@ClubID"), pUserSitDown->data.clubID); //执行存储过程 LONG lResultCodes = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_Sample_Select"), true); //返回数据 DBR_GR_Club_Make_A_Sample Sample; ZeroMemory(&Sample, sizeof(Sample)); if (DB_SUCCESS == lResultCodes) { pEx->UserSitDownData.data.cbCreateTable = m_GameDBAide.GetValue_DWORD(TEXT("Sample")); } //返回数据 m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_HOSTINFO_ACK, dwContextID, pBuffer, sizeof(DBR_GR_UserSitDownEx2) + sizeof(tagGameConfig) + 5 * sizeof(CMD_GR_UserInfo)); if (pBuffer) free(pBuffer); pBuffer = NULL; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); if (pBuffer) free(pBuffer); } double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetAdmInfo ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetAdmInfo ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetAdmInfo ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetAdmInfo ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } return true; } //俱乐部打样 bool CDataBaseEngineSink::OnRequestGetClubSample(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { OutputDebugStringA("CDataBaseEngineSink::OnRequestGetClubSample"); CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClubSample"), TraceLevel_Debug); CTimer Start; try { DBR_GR_Club_Make_A_Sample *pSample = (DBR_GR_Club_Make_A_Sample*)pData; if (pSample == NULL) return false; TCHAR szDescribeString[127]; ZeroMemory(szDescribeString, 127 * sizeof(TCHAR)); //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@ClubID"), pSample->dwClubID); //执行存储过程 LONG lResultCodes = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_Sample_Select"), true); if (DB_SUCCESS == lResultCodes) { pSample->IsSample = m_GameDBAide.GetValue_DWORD(TEXT("Sample")); } //查询出这个俱乐部上次打样状态,取反存入数据库并发送前端 if (pSample->IsSample == 0) { pSample->IsSample = 1; } else { pSample->IsSample = 0; } //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@ClubID"), pSample->dwClubID); m_GameDBAide.AddParameter(TEXT("@Sample"), pSample->IsSample); //执行存储过程 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_Sample"), true); //返回数据 DBR_GR_Club_Make_A_Sample Sample; ZeroMemory(&Sample, sizeof(Sample)); if (DB_SUCCESS == lResultCode) { Sample.dwClubID = pSample->dwClubID; Sample.IsSample = pSample->IsSample; } else { Sample.dwClubID = pSample->dwClubID; Sample.IsSample = pSample->IsSample; } //返回数据 m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_GET_MAKEA_SAMPLE_ACK, dwContextID, &Sample, sizeof(Sample)); //推送给其他用户 if (DB_SUCCESS == lResultCode) { //输入参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@ClubID"), pSample->dwClubID); //执行存储过程 lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetAllUser"), true); //返回数据 DBR_GR_UserData UserData; ZeroMemory(&UserData, sizeof(UserData)); int i = 0; if (DB_SUCCESS == lResultCode) { while (m_GameDBModule->IsRecordsetEnd() == false) { if (i >= 1000){ break; } UserData.dwUserID[i++] = m_GameDBAide.GetValue_DWORD(TEXT("UserID")); m_GameDBModule->MoveToNext(); } } UserData.dwClubID = pSample->dwClubID; UserData.wUserCount = i; if (pSample->IsSample == 1) { UserData.newsFlag = 100; } else { UserData.newsFlag = 99; } m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_NOTIFY_ACK, dwContextID, &UserData, sizeof(UserData)); } double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_Sample ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_Sample ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_Sample ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_Sample ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } return true; } //查询公告 bool CDataBaseEngineSink::OnRequestGetClubNotice(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { OutputDebugStringA("CDataBaseEngineSink::OnRequestGetClubNotice"); CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClubNotice"), TraceLevel_Debug); CTimer Start; try { DBR_GR_ClubNotice *pClubNotice= (DBR_GR_ClubNotice*)pData; if (pClubNotice == NULL) return false; TCHAR szDescribeString[127]; ZeroMemory(szDescribeString, 127 * sizeof(TCHAR)); //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubNotice->dwClubID); m_GameDBAide.AddParameter(TEXT("@UserID"), pClubNotice->dwUserID); m_GameDBAide.AddParameter(TEXT("@Type"), pClubNotice->cbType); m_GameDBAide.AddParameter(TEXT("@Message"), pClubNotice->Message); m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //执行存储过程 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetClubNotice"), true); //返回数据 DBR_GR_ClubNotice_ACK ClubNoticeAck; ZeroMemory(&ClubNoticeAck, sizeof(ClubNoticeAck)); ClubNoticeAck.cbType = pClubNotice->cbType; ClubNoticeAck.dwClubID = pClubNotice->dwClubID; if (DB_SUCCESS == lResultCode) { ClubNoticeAck.Result = 1; m_GameDBAide.GetValue_String(TEXT("ClubMessage"), ClubNoticeAck.Message, sizeof(ClubNoticeAck.Message)); } else { CDBVarValue DBVarValue; m_GameDBAide.GetParameter(TEXT("@strErrorDescribe"), DBVarValue); lstrcpyn(ClubNoticeAck.Message, CW2CT(DBVarValue.bstrVal), CountArray(ClubNoticeAck.Message)); } //返回数据 m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_NOTICE_ACK, dwContextID, &ClubNoticeAck, sizeof(ClubNoticeAck)); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetClubNotice ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetClubNotice ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetClubNotice ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetClubNotice ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } return true; } //通知所有用户 bool CDataBaseEngineSink::OnRequestNotifyAlluser(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { OutputDebugStringA("CDataBaseEngineSink::OnRequestNotifyAlluser"); CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestNotifyAlluser"), TraceLevel_Debug); CTimer Start; try { //输入参数 CMD_GR_UserData *pUserData = (CMD_GR_UserData*)pData; m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@ClubID"), pUserData->dwClubID); //返回数据 DBR_GR_UserData UserData; ZeroMemory(&UserData, sizeof(UserData)); if (pUserData->newsFlag == 4) { if (pUserData->dwUserId == 0) { LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetHostInfo"), true); if (DB_SUCCESS == lResultCode) { UserData.dwUserID[0] = m_GameDBAide.GetValue_DWORD(TEXT("UserID")); } } else { UserData.dwUserID[0] = pUserData->dwUserId; } UserData.wUserCount = 1; } else { //执行存储过程 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetAllUser"), true); int i = 0; if (DB_SUCCESS == lResultCode) { while (m_GameDBModule->IsRecordsetEnd() == false) { if (i >= 1000){ break; } UserData.dwUserID[i++] = m_GameDBAide.GetValue_DWORD(TEXT("UserID")); m_GameDBModule->MoveToNext(); } } UserData.wUserCount = i; } UserData.newsFlag = pUserData->newsFlag; UserData.dwClubID = pUserData->dwClubID; CopyMemory(UserData.Message, pUserData->Message, sizeof(UserData.Message)); m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_NOTIFY_ACK, dwContextID, &UserData, sizeof(UserData)); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetAllUser ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetAllUser ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetAllUser ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetAllUser ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } return true; } //群主解散俱乐部房间 bool CDataBaseEngineSink::OnRequestClubDissolveRoom(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { OutputDebugStringA("CDataBaseEngineSink::OnRequestClubDissolveRoom"); CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestClubDissolveRoom"), TraceLevel_Debug); CTimer Start; try { //输入参数 DBR_GR_ClubDissolveRoom *pClubData = (DBR_GR_ClubDissolveRoom*)pData; m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubData->dwClubID); m_GameDBAide.AddParameter(TEXT("@dwUserId"), pClubData->dwUserID); //执行存储过程 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_AdminDisTable"), true); DBR_GR_ClubDissolveRoom ClubDissolveRoom = { 0 }; memcpy(&ClubDissolveRoom, pClubData, sizeof(ClubDissolveRoom)); ClubDissolveRoom.cbIsAdmin = lResultCode; /*if (DB_SUCCESS == lResultCode) { while (m_GameDBModule->IsRecordsetEnd() == false) { DWORD dwUserID = m_GameDBAide.GetValue_DWORD(TEXT("UserID")); if (dwUserID == pClubData->dwUserID) { ClubDissolveRoom.cbIsAdmin = 1; break; } m_GameDBModule->MoveToNext(); } }*/ //if (ClubDissolveRoom.cbIsAdmin == 1) m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_DISSOLVEROOM_ACK, dwContextID, &ClubDissolveRoom, sizeof(ClubDissolveRoom)); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetAdmInfo ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetAdmInfo ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } return true; } ////////////////////////////////////////////////////////////////////////////////// ///---拉取胜局榜列表 \存储过程\数据库SQL\DataBase\Script\Platform\存储过程\金币数据库\游戏写分.sql //bool CDataBaseEngineSink::OnRequestTopWinList(DWORD dwContextID, VOID * pData, WORD wDataSize) //{ // CTimer Start; // try // { // //变量定义 // WORD wPacketSize = 0; // BYTE cbBuffer[MAX_ASYNCHRONISM_DATA] = { 0 }; // // //加载类型 // m_TreasureDBAide.ResetParameter(); // m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_TopGameScore"), true); // // //发送种类 // wPacketSize = 0; // tagTopWinInfo * pTopWinInfo = NULL; // while (m_TreasureDBModule->IsRecordsetEnd() == false) // { // //发送信息 // if ((wPacketSize + sizeof(tagTopWinInfo)) > sizeof(cbBuffer)) // { // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_TOP_WIN_LIST_RESULT, dwContextID, cbBuffer, wPacketSize); // wPacketSize = 0; // } // // //读取信息 // pTopWinInfo = (tagTopWinInfo *)(cbBuffer + wPacketSize); // pTopWinInfo->dwUserID = m_TreasureDBAide.GetValue_DWORD(TEXT("UserID")); // // //m_TreasureDBAide.GetValue_String(TEXT("NickName"), pTopWinInfo->szNickname, CountArray(pTopWinInfo->szNickname)); ///昵称要解码 // // TCHAR szBuffer[128] = { 0 }; // ZeroMemory(szBuffer, 128 * sizeof(TCHAR)); // m_TreasureDBAide.GetValue_String(TEXT("NickName"), szBuffer, 128); // TCHAR szOutBuffer[128] = { 0 }; // ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR)); // // //解码 // int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer); // if (iRet == -1) // { // szBuffer[32] = 0x0; // _sntprintf(pTopWinInfo->szNickname, CountArray(pTopWinInfo->szNickname), TEXT("%s"), szBuffer); // } // else // { // szOutBuffer[32] = 0x0; // _sntprintf(pTopWinInfo->szNickname, CountArray(pTopWinInfo->szNickname), TEXT("%s"), szOutBuffer); // } // // m_TreasureDBAide.GetValue_String(TEXT("HeadUrl"), pTopWinInfo->szHeadUrl, CountArray(pTopWinInfo->szHeadUrl)); // // pTopWinInfo->iBingID = m_TreasureDBAide.GetValue_INT(TEXT("BingID")); // // //pTopWinInfo->lScore = m_TreasureDBAide.GetValue_LONGLONG(TEXT("Score")); // pTopWinInfo->dwWinCount = m_TreasureDBAide.GetValue_DWORD(TEXT("WinCount")); // // DWORD dwLostCount = m_TreasureDBAide.GetValue_DWORD(TEXT("LostCount")); // DWORD dwDrawCount = m_TreasureDBAide.GetValue_DWORD(TEXT("DrawCount")); // DWORD dwFleeCount = m_TreasureDBAide.GetValue_DWORD(TEXT("FleeCount")); // // //总局数 // pTopWinInfo->dwTotalCount = pTopWinInfo->dwWinCount + dwLostCount + dwDrawCount + dwFleeCount; // // //设置位移 // wPacketSize += sizeof(tagTopWinInfo); // // //移动记录 // m_TreasureDBModule->MoveToNext(); // } // // if (wPacketSize > 0) // { // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_TOP_WIN_LIST_RESULT, dwContextID, cbBuffer, wPacketSize); // } // // // double dRet = Start.End(); // // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // csTest.Format(_T("存储过程耗时 GSP_GR_TopGameScore ----> %.3f "), dRet); // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // // } // catch (IDataBaseException * pIException) // { // //错误信息 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // // return false; // } // // return true; //} // /////---查询破产信息 //bool CDataBaseEngineSink::OnRequestReliefInfo(DWORD dwContextID, VOID * pData, WORD wDataSize) //{ // CTimer Start; // try // { // DWORD* pDwUserID = (DWORD*)(pData); // // if (0 == *pDwUserID) // { // ASSERT(FALSE); // return false; // } // // //构造参数 // m_GameDBAide.ResetParameter(); // m_GameDBAide.AddParameter(TEXT("@dwUserID"), *pDwUserID); // // TCHAR szDescribeString[127]; // ZeroMemory(szDescribeString, 127 * sizeof(TCHAR)); // m_GameDBAide.AddParameterOutput(TEXT("@strNotifyContent"), szDescribeString, sizeof(szDescribeString), adParamOutput); // // //执行查询 \存储过程\存储过程\金币_破产领取.sql // LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_ReliefInfo"), true); // // //结果处理 // CDBVarValue DBVarValue; // m_GameDBModule->GetParameter(TEXT("@strNotifyContent"), DBVarValue); // // tagReliefInfo reliefInfo; // if (lResultCode == DB_SUCCESS) // { // reliefInfo.wTotalCount = m_GameDBAide.GetValue_INT(_T("ReliefCount")); ///---每天能领取的总次数 // reliefInfo.wGetCount = m_GameDBAide.GetValue_INT(_T("TodayReliefCount")); ///---已经领取次数 // reliefInfo.dwReliefScore = m_GameDBAide.GetValue_INT(_T("ReliefScore")); ///---救济额度 // // //m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_RELIEF_INFO_ACK, dwContextID, &reliefInfo, sizeof(reliefInfo)); // } // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_RELIEF_INFO_ACK, dwContextID, &reliefInfo, sizeof(reliefInfo)); // // // double dRet = Start.End(); // // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // csTest.Format(_T("存储过程耗时 GSP_GR_ReliefInfo ----> %.3f "), dRet); // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // // return true; // } // catch (IDataBaseException * pIException) // { // //输出错误 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 OnRequestReliefInfo ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // } // // return false; //} // // /////---破产领取 \doc\存储过程\存储过程\金币_破产领取.sql //bool CDataBaseEngineSink::OnRequestGetRelief(DWORD dwContextID, VOID * pData, WORD wDataSize) //{ // CTimer Start; // try // { // DBR_GR_GetRelief* pGetRelief = (DBR_GR_GetRelief*)(pData); // // if (0 == pGetRelief->dwUserID) // { // ASSERT(FALSE); // return false; // } // // //转化地址 // TCHAR szClientAddr[16] = TEXT(""); // BYTE * pClientAddr = (BYTE *)&pGetRelief->dwClientAddr; // _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]); // // // TCHAR szDescribeString[127]; // ZeroMemory(szDescribeString, 127 * sizeof(TCHAR)); // // //构造参数 // m_GameDBAide.ResetParameter(); // m_GameDBAide.AddParameter(TEXT("@dwUserID"), pGetRelief->dwUserID); // m_GameDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr); // m_GameDBAide.AddParameter(TEXT("@strMachineID"), pGetRelief->szMachineID); // // m_GameDBAide.AddParameterOutput(TEXT("@strNotifyContent"), szDescribeString, sizeof(szDescribeString), adParamOutput); // // //执行查询 // LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_GetRelief"), true); // // //结果处理 // CDBVarValue DBVarValue; // m_GameDBModule->GetParameter(TEXT("@strNotifyContent"), DBVarValue); // // tagReliefScore reliefScore; // if (lResultCode == DB_SUCCESS) // { // reliefScore.dwReliefScore = m_GameDBAide.GetValue_DWORD(_T("GetReliefScore")); ///救济金额 // reliefScore.lCurrScore = m_GameDBAide.GetValue_LONGLONG(_T("CurrScore")); ///最新携带金币 // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_GET_RELIEF_INFO_ACK, dwContextID, &reliefScore, sizeof(reliefScore)); // } // else // { // ///没有救济可领,就不要下发了? // TCHAR szHint[256] = { 0 }; // swprintf(szHint, TEXT("救济领取[%d]%s"), pGetRelief->dwUserID, static_cast(DBVarValue.bstrVal)); // CTraceService::TraceString(szHint, TraceLevel_Normal); // } // // double dRet = Start.End(); // // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // csTest.Format(_T("存储过程耗时 领取救济 GSP_GR_GetRelief ----> %.3f "), dRet); // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // return true; // } // catch (IDataBaseException * pIException) // { // //输出错误 // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); // double dRet = Start.End(); // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) // { // CString csTest; // // csTest.Format(_T("存储过程耗时 OnRequestReliefInfo ----> %.3f "), dRet); // // //提示消息 // CTraceService::TraceString(csTest, TraceLevel_Normal); // } // } // // return false; //} //转盘奖品配置列表 bool CDataBaseEngineSink::OnRequestRouletteConfig(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTimer Start; try { //构造参数 m_TreasureDBAide.ResetParameter(); LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_RouletteConfig"), true); //变量定义 WORD wPacketSize = 0; BYTE cbBuffer[MAX_ASYNCHRONISM_DATA] = { 0 }; ///+++1透传的数据(不用了,只有一种抽奖方式) //memcpy(cbBuffer, pData, wDataSize); //wPacketSize += wDataSize; wPacketSize = 0; tagRouletteConfig * pRouletteCfg = NULL; while (!m_TreasureDBModule->IsRecordsetEnd()) { //发送信息 if ((wPacketSize + sizeof(tagRouletteConfig)) > sizeof(cbBuffer)) { m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_GET_ROULETTE_CONFIG_ACK, dwContextID, cbBuffer, wPacketSize); wPacketSize = 0; } //读取信息 pRouletteCfg = (tagRouletteConfig *)(cbBuffer + wPacketSize); pRouletteCfg->wID = m_TreasureDBAide.GetValue_WORD(TEXT("ID")); m_TreasureDBAide.GetValue_String(TEXT("Name"), pRouletteCfg->szName, CountArray(pRouletteCfg->szName)); //--奖品名称 m_TreasureDBAide.GetValue_String(TEXT("ICON"), pRouletteCfg->szICON, CountArray(pRouletteCfg->szICON)); //--奖品图像 pRouletteCfg->wProperty = m_TreasureDBAide.GetValue_WORD(TEXT("Property")); //--奖励值 pRouletteCfg->wType = m_TreasureDBAide.GetValue_WORD(TEXT("Type")); //--类型 1:钻石 2:金币 3:话费 4:实物1 5:实物2 ... pRouletteCfg->wOdds = m_TreasureDBAide.GetValue_WORD(TEXT("Odds")); //--概率值 pRouletteCfg->iQuantity = m_TreasureDBAide.GetValue_INT(TEXT("Quantity")); //设置位移 wPacketSize += sizeof(tagRouletteConfig); //移动记录 m_TreasureDBModule->MoveToNext(); } if (wPacketSize > 0) { m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_GET_ROULETTE_CONFIG_ACK, dwContextID, cbBuffer, wPacketSize); } double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(3333)) { CString csTest; csTest.Format(_T("存储过程耗时 OnRequestRouletteConfig ----> %.3f wPacketSize=%d"), dRet, wPacketSize); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); return false; } } ///---我的转盘配置信息 bool CDataBaseEngineSink::OnRequestRouletteConfig_new(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTimer Start; try { //效验参数 ASSERT(wDataSize == sizeof(DWORD)); if (wDataSize != sizeof(DWORD)) { return false; } //请求处理 DWORD * pdwUserID = (DWORD *)pData; //构造参数 m_TreasureDBAide.ResetParameter(); m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), *pdwUserID); m_TreasureDBAide.AddParameter(TEXT("@wLotteryType"), 0); ///--轮盘抽奖 //输出参数 TCHAR szDescribeString[128] = TEXT(""); m_TreasureDBAide.AddParameterOutput(TEXT("@strNotifyContent"), szDescribeString, sizeof(szDescribeString), adParamOutput); LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_RouletteConfig_new"), true); //变量定义 tagRouletteConfig2 rouletteConfig2; rouletteConfig2.wResult = lResultCode; //出参 CDBVarValue DBVarValue; m_TreasureDBModule->GetParameter(TEXT("@strNotifyContent"), DBVarValue); lstrcpyn(rouletteConfig2.szDesc, CW2CT(DBVarValue.bstrVal), CountArray(rouletteConfig2.szDesc)); //结果处理 if (lResultCode == DB_SUCCESS) { rouletteConfig2.wID = m_TreasureDBAide.GetValue_WORD(TEXT("ID")); //奖品ID m_TreasureDBAide.GetValue_String(TEXT("ICON"), rouletteConfig2.szICON, CountArray(rouletteConfig2.szICON)); //--奖品图像 rouletteConfig2.wHadLotteryCount = m_TreasureDBAide.GetValue_WORD(TEXT("HadLotteryCount")); //“我”已抽奖次数 rouletteConfig2.wLotteryCountPara = m_TreasureDBAide.GetValue_WORD(TEXT("LotteryCountPara")); //“我”可抽奖总次数 //新转盘功能 rouletteConfig2.wLotteryLimit = m_TreasureDBAide.GetValue_WORD(TEXT("LotteryLimit")); //抽奖限制 rouletteConfig2.wInningValue = m_TreasureDBAide.GetValue_WORD(TEXT("InningValue")); //局数标准 rouletteConfig2.wRechargeValue = m_TreasureDBAide.GetValue_WORD(TEXT("RechargeValue")); //充值标准 rouletteConfig2.wInningInfo[0] = m_TreasureDBAide.GetValue_WORD(TEXT("InningInfo1")); //局数详情 前天 rouletteConfig2.wInningInfo[1] = m_TreasureDBAide.GetValue_WORD(TEXT("InningInfo2")); //局数详情 昨天 rouletteConfig2.wInningInfo[2] = m_TreasureDBAide.GetValue_WORD(TEXT("InningInfo3")); //局数详情 今天 rouletteConfig2.cbRechargeInfo = m_TreasureDBAide.GetValue_BYTE(TEXT("RechargeInfo")); //充值详情 m_TreasureDBAide.GetValue_String(TEXT("LotteryRule"), rouletteConfig2.szLotteryRule, CountArray(rouletteConfig2.szLotteryRule)); //--抽奖规则 } //发送结果 m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_MY_ROULETTE_INFO_ACK, dwContextID, &rouletteConfig2, sizeof(rouletteConfig2)); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_RouletteConfig_new ----> %.3f"), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); return false; } } //记录轮盘抽奖 bool CDataBaseEngineSink::OnRecordRouletteLottery(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTimer Start; try { DBR_GR_RouletteLottery* pLottery = (DBR_GR_RouletteLottery*)(pData); if (0 == pLottery->dwUserID) { ASSERT(FALSE); return false; } //转化地址 TCHAR szClientAddr[16] = TEXT(""); BYTE * pClientAddr = (BYTE *)&pLottery->dwClientAddr; _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]); TCHAR szDescribeString[127]; ZeroMemory(szDescribeString, 127 * sizeof(TCHAR)); //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@dwUserID"), pLottery->dwUserID); m_GameDBAide.AddParameter(TEXT("@wLotteryType"), pLottery->wLotteryType); //抽奖类型(0: 轮盘抽奖 1: 玩牌抽奖) add 2017-12-29 m_GameDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr); m_GameDBAide.AddParameter(TEXT("@strMachineID"), pLottery->szMachineID); m_GameDBAide.AddParameter(TEXT("@wRouletteLotteryID"), pLottery->wRouletteLotteryID); m_GameDBAide.AddParameter(TEXT("@strLotteryName"), pLottery->szLotteryName); m_GameDBAide.AddParameterOutput(TEXT("@strNotifyContent"), szDescribeString, sizeof(szDescribeString), adParamOutput); //执行查询 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_RouletteLottery"), true); //结果处理 CDBVarValue DBVarValue; m_GameDBModule->GetParameter(TEXT("@strNotifyContent"), DBVarValue); //抽奖结果 tagLotteryResultEx rouletteLottery; rouletteLottery.LotteryResult.wLotteryType = pLottery->wLotteryType; ///+++记录抽奖类型 rouletteLottery.LotteryResult.wResult = lResultCode; if (lResultCode == DB_SUCCESS) { ///---成功则为奖品名称 m_GameDBAide.GetValue_String(TEXT("strLotteryName"), rouletteLottery.LotteryResult.szDesc, CountArray(rouletteLottery.LotteryResult.szDesc)); //--奖品名称 rouletteLottery.LotteryResult.wRouletteLotterID = m_GameDBAide.GetValue_WORD(TEXT("RouletteLotteryID")); //++奖品ID rouletteLottery.LotteryResult.wHadLotteryCount = m_GameDBAide.GetValue_WORD(TEXT("TodayLotteryCount")); //++“我”已抽奖次数 rouletteLottery.LotteryResult.wLotteryCountPara = m_GameDBAide.GetValue_WORD(TEXT("LotteryCountPara")); //++抽奖总次数 ///+++最新携带 rouletteLottery.LotteryResult.lScore = m_GameDBAide.GetValue_LONGLONG(TEXT("Score")); ///--携带金币 rouletteLottery.LotteryResult.dwBean = m_GameDBAide.GetValue_DWORD(TEXT("Bean")); ///--携带钻石 m_GameDBAide.GetValue_String(TEXT("PhoneNum"), rouletteLottery.szPhoneNum, CountArray(rouletteLottery.szPhoneNum)); //--手机号码 rouletteLottery.wAwardType = m_GameDBAide.GetValue_WORD(TEXT("AwardType")); //--奖品类型 rouletteLottery.dwRecordID = m_GameDBAide.GetValue_DWORD(TEXT("RecordID")); } else { lstrcpyn(rouletteLottery.LotteryResult.szDesc, CW2CT(DBVarValue.bstrVal), CountArray(rouletteLottery.LotteryResult.szDesc)); } m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_ROULETTE_LOTTERY_ACK, dwContextID, &rouletteLottery, sizeof(rouletteLottery)); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 轮盘抽奖 OnRecordRouletteLottery ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 OnRecordRouletteLottery ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } } return false; } ///+++加载签到奖励配置 bool CDataBaseEngineSink::OnRequestCheckInReward(DWORD dwContextID, VOID * pData, WORD wDataSize) { CTimer Start; try { //构造参数 m_PlatformDBAide.ResetParameter(); //执行命令 SELECT * FROM SigninConfig LONG lResultCode = m_PlatformDBAide.ExecuteProcess(TEXT("GSP_GP_LoadCheckInReward"), true); //7天奖励 tagCheckinReward chkReward[LEN_WEEK]; ZeroMemory(&chkReward, sizeof(chkReward)); //执行成功 if (lResultCode == DB_SUCCESS) { //变量定义 WORD wDayIndex = 0; while (m_PlatformDBModule->IsRecordsetEnd() == false) { wDayIndex = m_PlatformDBAide.GetValue_WORD(TEXT("DayID")); if (wDayIndex <= LEN_WEEK) { chkReward[wDayIndex - 1].lRewardGold = m_PlatformDBAide.GetValue_LONGLONG(TEXT("RewardGold")); chkReward[wDayIndex - 1].iRewardCurrency = m_PlatformDBAide.GetValue_INT(TEXT("RewardCurrency")); } //移动记录 m_PlatformDBModule->MoveToNext(); } //投递结果 m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_CHECKIN_REWARD, dwContextID, &chkReward, sizeof(chkReward)); } else { CString strHint; strHint.Format(L"签到奖励配置读取失败[GSP_GP_LoadCheckInReward]"); //提示消息 CTraceService::TraceString(strHint, TraceLevel_Warning); } double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 签到奖励配置 OnRequestCheckInReward ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); return false; } return true; } //查询签到信息 bool CDataBaseEngineSink::OnRequestCheckInQueryInfo(DWORD dwContextID, VOID * pData, WORD wDataSize) { CTimer Start; try { //效验参数 ASSERT(wDataSize == sizeof(DWORD)); if (wDataSize != sizeof(DWORD)) { return false; } //请求处理 DWORD * pdwUserID = (DWORD *)pData; //构造参数 m_PlatformDBAide.ResetParameter(); m_PlatformDBAide.AddParameter(TEXT("@dwUserID"), *pdwUserID); //输出参数 TCHAR szDescribeString[128] = TEXT(""); m_PlatformDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //执行脚本 LONG lResultCode = m_PlatformDBAide.ExecuteProcess(TEXT("GSP_GR_CheckInQueryInfo"), true); //变量定义 tagCheckInInfo CheckInInfo; ZeroMemory(&CheckInInfo, sizeof(CheckInInfo)); CheckInInfo.bSuccessed = false; //出参 CDBVarValue DBVarValue; m_PlatformDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue); lstrcpyn(CheckInInfo.szNotifyContent, CW2CT(DBVarValue.bstrVal), CountArray(CheckInInfo.szNotifyContent)); //结果处理 if (lResultCode == DB_SUCCESS) { CheckInInfo.bSuccessed = true; CheckInInfo.wSeriesDate = m_PlatformDBAide.GetValue_WORD(TEXT("SeriesDate")); ///连续签到的天数 CheckInInfo.bTodayChecked = 1==(m_PlatformDBAide.GetValue_BYTE(TEXT("TodayCheckIned"))); ///今天是否签到 } //发送结果 m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_CHECKIN_INFO, dwContextID, &CheckInInfo, sizeof(CheckInInfo)); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 查询签到信息 OnRequestCheckInQueryInfo ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 查询签到信息 OnRequestCheckInQueryInfo ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } //构造结构 tagCheckInInfo CheckInInfo; ZeroMemory(&CheckInInfo, sizeof(CheckInInfo)); CheckInInfo.bSuccessed = false; lstrcpyn(CheckInInfo.szNotifyContent, TEXT("由于数据库操作异常,请您稍后重试!"), CountArray(CheckInInfo.szNotifyContent)); //发送结果 m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_CHECKIN_INFO, dwContextID, &CheckInInfo, sizeof(CheckInInfo)); return false; } } //执行签到 bool CDataBaseEngineSink::OnRequestCheckInDone(DWORD dwContextID, VOID * pData, WORD wDataSize) { try { //效验参数 ASSERT(wDataSize == sizeof(tagCheckInDone)); if (wDataSize != sizeof(tagCheckInDone)) { return false; } //请求处理 tagCheckInDone * pCheckInDone = (tagCheckInDone *)pData; //转化地址 TCHAR szClientAddr[16] = TEXT(""); BYTE * pClientAddr = (BYTE *)&pCheckInDone->dwClientAddr; _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]); //构造参数 m_PlatformDBAide.ResetParameter(); m_PlatformDBAide.AddParameter(TEXT("@dwUserID"), pCheckInDone->dwUserID); m_PlatformDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr); m_PlatformDBAide.AddParameter(TEXT("@strMachineID"), pCheckInDone->szMachineID); //输出参数 TCHAR szDescribeString[128] = TEXT(""); m_PlatformDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //执行脚本 LONG lResultCode = m_PlatformDBAide.ExecuteProcess(TEXT("GSP_GR_CheckInDone"), true); //签到结果 tagCheckInResult CheckInResult; ZeroMemory(&CheckInResult, sizeof(CheckInResult)); ///===CheckInResult.bSuccessed = false; CheckInResult.btSuccessed = 0; //出参 CDBVarValue DBVarValue; m_PlatformDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue); lstrcpyn(CheckInResult.szNotifyContent, CW2CT(DBVarValue.bstrVal), CountArray(CheckInResult.szNotifyContent)); //读取分数 if (lResultCode == DB_SUCCESS) { ///===CheckInResult.bSuccessed = true; CheckInResult.btSuccessed = 1; CheckInResult.lScore = m_PlatformDBAide.GetValue_LONGLONG(TEXT("Score")); CheckInResult.dwBean = m_PlatformDBAide.GetValue_DWORD(TEXT("Bean")); } //发送结果 m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_CHECKIN_RESULT, dwContextID, &CheckInResult, sizeof(CheckInResult)); return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); //构造结构 tagCheckInResult CheckInResult; ///===CheckInResult.bSuccessed = false; CheckInResult.btSuccessed = 0; lstrcpyn(CheckInResult.szNotifyContent, TEXT("由于数据库操作异常,请您稍后重试!"), CountArray(CheckInResult.szNotifyContent)); //发送结果 WORD wSendSize = sizeof(CheckInResult) - sizeof(CheckInResult.szNotifyContent) + CountStringBuffer(CheckInResult.szNotifyContent); m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_CHECKIN_RESULT, dwContextID, &CheckInResult, wSendSize); return false; } } //查询抽奖信息 bool CDataBaseEngineSink::OnQueryLotteryInfo(DWORD dwContextID, VOID * pData, WORD wDataSize) { CTimer Start; try { DBR_GR_LotteryInfo* pLotteryInfo = (DBR_GR_LotteryInfo*)(pData); if (0 == pLotteryInfo->dwUserID) { ASSERT(FALSE); return false; } TCHAR szDescribeString[127]; ZeroMemory(szDescribeString, 127 * sizeof(TCHAR)); //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@dwUserID"), pLotteryInfo->dwUserID); m_GameDBAide.AddParameter(TEXT("@wLotteryType"), pLotteryInfo->wLotteryType); //抽奖类型(0: 轮盘抽奖 1: 玩牌抽奖) add 2017-12-29 m_GameDBAide.AddParameterOutput(TEXT("@strNotifyContent"), szDescribeString, sizeof(szDescribeString), adParamOutput); //执行查询 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_QueryLotteryInfo"), true); //结果处理 CDBVarValue DBVarValue; m_GameDBModule->GetParameter(TEXT("@strNotifyContent"), DBVarValue); //抽奖结果 tagLotteryInfo rouletteLotteryInfo; rouletteLotteryInfo.wLotteryType = pLotteryInfo->wLotteryType; ///+++记录抽奖类型 rouletteLotteryInfo.wResult = lResultCode; //查询结果 lstrcpyn(rouletteLotteryInfo.szDesc, CW2CT(DBVarValue.bstrVal), CountArray(rouletteLotteryInfo.szDesc)); //描述信息 rouletteLotteryInfo.wHadLotteryCount = m_GameDBAide.GetValue_WORD(TEXT("HadLotteryCount")); rouletteLotteryInfo.wLotteryCountPara = m_GameDBAide.GetValue_WORD(TEXT("LotteryCountPara")); rouletteLotteryInfo.wCurrentDrawCount = m_GameDBAide.GetValue_WORD(TEXT("CurrentDrawCount")); rouletteLotteryInfo.wDrawLotteryCountPara = m_GameDBAide.GetValue_WORD(TEXT("DrawLotteryCountPara")); m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_LOTTERY_INFO_ACK, dwContextID, &rouletteLotteryInfo, sizeof(rouletteLotteryInfo)); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 查询抽奖信息 OnQueryLotteryInfo ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 OnQueryLotteryInfo ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } } return false; } //查询抽奖历史记录 bool CDataBaseEngineSink::OnQueryLotteryHis(DWORD dwContextID, VOID * pData, WORD wDataSize) { CTimer Start; try { DBR_GR_LotteryHis* pDBR_GR_LotteryHis = (DBR_GR_LotteryHis*)(pData); TCHAR szDescribeString[127]; ZeroMemory(szDescribeString, 127 * sizeof(TCHAR)); //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@dwUserID"), pDBR_GR_LotteryHis->dwUserID); m_GameDBAide.AddParameter(TEXT("@btQueryFlag"), pDBR_GR_LotteryHis->btQueryFlag); //查询标志 0:只查自己的;1:查最近中奖记录 m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //执行查询 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_QueryLotteryHis"), true); //结果处理 CDBVarValue DBVarValue; m_GameDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue); //变量定义 WORD wPacketSize = 0; BYTE cbBuffer[MAX_ASYNCHRONISM_DATA] = { 0 }; wPacketSize = 0; tagLotteryHis * pLotteryHis = NULL; while (!m_GameDBModule->IsRecordsetEnd()) { //发送信息 if ((wPacketSize + sizeof(tagLotteryHis)) > sizeof(cbBuffer)) { m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_LOTTERY_HIS_ACK, dwContextID, cbBuffer, wPacketSize); wPacketSize = 0; } //读取信息 pLotteryHis = (tagLotteryHis *)(cbBuffer + wPacketSize); pLotteryHis->dwUserID = m_GameDBAide.GetValue_DWORD(TEXT("UserID")); //玩家ID //m_GameDBAide.GetValue_String(TEXT("NickName"), pLotteryHis->szUserName, CountArray(pLotteryHis->szUserName)); //玩家名称 TCHAR szBuffer[128] = { 0 }; ZeroMemory(szBuffer, 128 * sizeof(TCHAR)); m_GameDBAide.GetValue_String(TEXT("NickName"), szBuffer, 128); TCHAR szOutBuffer[128] = { 0 }; ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR)); //解码 int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer); if (iRet == -1) { szBuffer[32] = 0x0; _sntprintf(pLotteryHis->szUserName, CountArray(pLotteryHis->szUserName), TEXT("%s"), szBuffer); } else { szOutBuffer[32] = 0x0; _sntprintf(pLotteryHis->szUserName, CountArray(pLotteryHis->szUserName), TEXT("%s"), szOutBuffer); } pLotteryHis->wLotteryType = m_GameDBAide.GetValue_WORD(TEXT("LotteryType")); //抽奖类型 0:轮盘抽奖;1:玩牌抽奖 pLotteryHis->wRouletteID = m_GameDBAide.GetValue_WORD(TEXT("ID")); //奖品ID m_GameDBAide.GetValue_String(TEXT("LotteryName"), pLotteryHis->szLotteryName, CountArray(pLotteryHis->szLotteryName)); //奖品名称 SYSTEMTIME SystemTimeInputDate, SystemTimeGetLotteryDate; memset(&SystemTimeInputDate, 0, sizeof(SystemTimeInputDate)); memset(&SystemTimeGetLotteryDate, 0, sizeof(SystemTimeGetLotteryDate)); m_GameDBAide.GetValue_SystemTime(TEXT("InputDate"), SystemTimeInputDate); m_GameDBAide.GetValue_SystemTime(TEXT("GetLotteryDate"), SystemTimeGetLotteryDate); if (SystemTimeInputDate.wYear != 0) { CTime inputDateTime(SystemTimeInputDate); CString strInputDate = inputDateTime.Format("%Y-%m-%d %H:%M:%S"); lstrcpyn(pLotteryHis->szInputeDate, strInputDate, CountArray(pLotteryHis->szInputeDate)); // 中奖时间 } if (SystemTimeGetLotteryDate.wYear != 0) { CTime getLotteryDateTime(SystemTimeGetLotteryDate); CString strGetLotteryDate = getLotteryDateTime.Format("%Y-%m-%d %H:%M:%S"); lstrcpyn(pLotteryHis->szGetLotteryDate, strGetLotteryDate, CountArray(pLotteryHis->szGetLotteryDate)); //领奖奖时间 } pLotteryHis->btGetLotteryFlag = m_GameDBAide.GetValue_WORD(TEXT("GetLotteryFlag")); //领奖标志 0:未领取 1:领取 //设置位移 wPacketSize += sizeof(tagLotteryHis); //移动记录 m_GameDBModule->MoveToNext(); } if (wPacketSize > 0) { m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_LOTTERY_HIS_ACK, dwContextID, cbBuffer, wPacketSize); } double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 查询抽奖信息 GSP_GR_QueryLotteryHis ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_QueryLotteryHis ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } } return false; } //查询抽奖历史记录-额外兼容 bool CDataBaseEngineSink::OnQueryLotteryHisEx(DWORD dwContextID, VOID * pData, WORD wDataSize) { CTimer Start; try { DBR_GR_LotteryHis* pDBR_GR_LotteryHis = (DBR_GR_LotteryHis*)(pData); TCHAR szDescribeString[127]; ZeroMemory(szDescribeString, 127 * sizeof(TCHAR)); //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@dwUserID"), pDBR_GR_LotteryHis->dwUserID); m_GameDBAide.AddParameter(TEXT("@btQueryFlag"), pDBR_GR_LotteryHis->btQueryFlag); //查询标志 0:只查自己的;1:查最近中奖记录 if (pDBR_GR_LotteryHis->btQueryFlag == 1) { //变量定义 WORD wPacketSize = 0; BYTE cbBuffer[MAX_ASYNCHRONISM_DATA] = { 0 }; m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //执行查询 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_QueryLotteryHis"), true); //结果处理 CDBVarValue DBVarValue; m_GameDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue); tagLotteryHis * pLotteryHis = NULL; while (!m_GameDBModule->IsRecordsetEnd()) { //发送信息 if ((wPacketSize + sizeof(tagLotteryHis)) > sizeof(cbBuffer)) { m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_LOTTERY_HIS_ACK, dwContextID, cbBuffer, wPacketSize); wPacketSize = 0; } //读取信息 pLotteryHis = (tagLotteryHis *)(cbBuffer + wPacketSize); pLotteryHis->dwUserID = m_GameDBAide.GetValue_DWORD(TEXT("UserID")); //玩家ID //m_GameDBAide.GetValue_String(TEXT("NickName"), pLotteryHis->szUserName, CountArray(pLotteryHis->szUserName)); //玩家名称 TCHAR szBuffer[128] = { 0 }; ZeroMemory(szBuffer, 128 * sizeof(TCHAR)); m_GameDBAide.GetValue_String(TEXT("NickName"), szBuffer, 128); TCHAR szOutBuffer[128] = { 0 }; ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR)); //解码 int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer); if (iRet == -1) { szBuffer[32] = 0x0; _sntprintf(pLotteryHis->szUserName, CountArray(pLotteryHis->szUserName), TEXT("%s"), szBuffer); } else { szOutBuffer[32] = 0x0; _sntprintf(pLotteryHis->szUserName, CountArray(pLotteryHis->szUserName), TEXT("%s"), szOutBuffer); } pLotteryHis->wLotteryType = m_GameDBAide.GetValue_WORD(TEXT("LotteryType")); //抽奖类型 0:轮盘抽奖;1:玩牌抽奖 pLotteryHis->wRouletteID = (WORD)m_GameDBAide.GetValue_DWORD(TEXT("ID")); //奖品ID m_GameDBAide.GetValue_String(TEXT("LotteryName"), pLotteryHis->szLotteryName, CountArray(pLotteryHis->szLotteryName)); //奖品名称 SYSTEMTIME SystemTimeInputDate, SystemTimeGetLotteryDate; memset(&SystemTimeInputDate, 0, sizeof(SystemTimeInputDate)); memset(&SystemTimeGetLotteryDate, 0, sizeof(SystemTimeGetLotteryDate)); m_GameDBAide.GetValue_SystemTime(TEXT("InputDate"), SystemTimeInputDate); m_GameDBAide.GetValue_SystemTime(TEXT("GetLotteryDate"), SystemTimeGetLotteryDate); if (SystemTimeInputDate.wYear != 0) { CTime inputDateTime(SystemTimeInputDate); CString strInputDate = inputDateTime.Format("%Y-%m-%d %H:%M:%S"); lstrcpyn(pLotteryHis->szInputeDate, strInputDate, CountArray(pLotteryHis->szInputeDate)); // 中奖时间 } if (SystemTimeGetLotteryDate.wYear != 0) { CTime getLotteryDateTime(SystemTimeGetLotteryDate); CString strGetLotteryDate = getLotteryDateTime.Format("%Y-%m-%d %H:%M:%S"); lstrcpyn(pLotteryHis->szGetLotteryDate, strGetLotteryDate, CountArray(pLotteryHis->szGetLotteryDate)); //领奖奖时间 } pLotteryHis->btGetLotteryFlag = m_GameDBAide.GetValue_WORD(TEXT("GetLotteryFlag")); //领奖标志 0:未领取 1:领取 //设置位移 wPacketSize += sizeof(tagLotteryHis); //移动记录 m_GameDBModule->MoveToNext(); } if (wPacketSize > 0) { m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_LOTTERY_HIS_ACK, dwContextID, cbBuffer, wPacketSize); } } else { //变量定义 WORD wPacketSize = 0; BYTE cbBuffer[MAX_ASYNCHRONISM_DATA] = { 0 }; m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //执行查询 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_QueryLotteryHis"), true); //结果处理 CDBVarValue DBVarValue; m_GameDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue); tagLotteryHisEx * pLotteryHis = NULL; while (!m_GameDBModule->IsRecordsetEnd()) { //发送信息 if ((wPacketSize + sizeof(tagLotteryHisEx)) > sizeof(cbBuffer)) { m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_LOTTERY_HIS_ACK, dwContextID, cbBuffer, wPacketSize); wPacketSize = 0; } //读取信息 pLotteryHis = (tagLotteryHisEx *)(cbBuffer + wPacketSize); pLotteryHis->dwRecordID = m_GameDBAide.GetValue_DWORD(TEXT("ID")); //记录ID pLotteryHis->wRouletteID = m_GameDBAide.GetValue_WORD(TEXT("LotteryType")); //奖品类型 m_GameDBAide.GetValue_String(TEXT("LotteryName"), pLotteryHis->szLotteryName, CountArray(pLotteryHis->szLotteryName)); //奖品名称 SYSTEMTIME SystemTimeInputDate, SystemTimeGetLotteryDate; memset(&SystemTimeInputDate, 0, sizeof(SystemTimeInputDate)); memset(&SystemTimeGetLotteryDate, 0, sizeof(SystemTimeGetLotteryDate)); m_GameDBAide.GetValue_SystemTime(TEXT("InputDate"), SystemTimeInputDate); m_GameDBAide.GetValue_SystemTime(TEXT("GetLotteryDate"), SystemTimeGetLotteryDate); if (SystemTimeInputDate.wYear != 0) { CTime inputDateTime(SystemTimeInputDate); CString strInputDate = inputDateTime.Format("%Y-%m-%d %H:%M:%S"); lstrcpyn(pLotteryHis->szInputeDate, strInputDate, CountArray(pLotteryHis->szInputeDate)); // 中奖时间 } pLotteryHis->btGetLotteryFlag = m_GameDBAide.GetValue_WORD(TEXT("GetLotteryFlag")); //领奖标志 0:未领取 1:领取 2异常未知 //设置位移 wPacketSize += sizeof(tagLotteryHisEx); //移动记录 m_GameDBModule->MoveToNext(); } m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_LOTTERY_HIS_ACKEX, dwContextID, cbBuffer, wPacketSize); } double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 查询抽奖信息 GSP_GR_QueryLotteryHis ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_QueryLotteryHis ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } } return false; } //更新奖品发放标志 bool CDataBaseEngineSink::OnUpdateLotteryFlag(DWORD dwContextID, VOID * pData, WORD wDataSize) { CTimer Start; try { DBR_GR_LotteryFlag* pLotteryFlag = (DBR_GR_LotteryFlag*)(pData); TCHAR szDescribeString[127]; ZeroMemory(szDescribeString, 127 * sizeof(TCHAR)); //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@dwUserID"), pLotteryFlag->dwUserID); m_GameDBAide.AddParameter(TEXT("@wLotteryID"), pLotteryFlag->wLotteryID); m_GameDBAide.AddParameterOutput(TEXT("@strNotifyContent"), szDescribeString, sizeof(szDescribeString), adParamOutput); //执行查询 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_UpdateLotteryFlag"), true); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_UpdateLotteryFlag ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_UpdateLotteryFlag ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } } return false; } //查询福利信息 bool CDataBaseEngineSink::OnQueryWelfareInfo(DWORD dwContextID, VOID * pData, WORD wDataSize) { CTimer Start; try { //效验参数 ASSERT(wDataSize == sizeof(DWORD)); if (wDataSize != sizeof(DWORD)) { return false; } //请求处理 DWORD * pdwUserID = (DWORD *)pData; //构造参数 m_PlatformDBAide.ResetParameter(); m_PlatformDBAide.AddParameter(TEXT("@dwUserID"), *pdwUserID); //输出参数 TCHAR szDescribeString[128] = TEXT(""); m_PlatformDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //执行脚本 LONG lResultCode = m_PlatformDBAide.ExecuteProcess(TEXT("GSP_GP_WELFARE_INFO"), true); //变量定义 tagWelfareInfo welfareInfArr[3]; ZeroMemory(&welfareInfArr, sizeof(welfareInfArr)); //出参 CDBVarValue DBVarValue; m_PlatformDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue); //结果处理 if (lResultCode == DB_SUCCESS) { welfareInfArr[0].btWelfareType = m_PlatformDBAide.GetValue_BYTE(TEXT("btWelfareType_Signin")); welfareInfArr[1].btWelfareType = m_PlatformDBAide.GetValue_BYTE(TEXT("btWelfareType_Relief")); welfareInfArr[2].btWelfareType = m_PlatformDBAide.GetValue_BYTE(TEXT("btWelfareType_Roulette")); welfareInfArr[0].btTakedNum = m_PlatformDBAide.GetValue_BYTE(TEXT("btTakedNum_Signin")); welfareInfArr[1].btTakedNum = m_PlatformDBAide.GetValue_BYTE(TEXT("btTakedNum_Relief")); welfareInfArr[2].btTakedNum = m_PlatformDBAide.GetValue_BYTE(TEXT("btTakedNum_Roulette")); welfareInfArr[0].btTotalNum = m_PlatformDBAide.GetValue_BYTE(TEXT("btTotalNum_Signin")); welfareInfArr[1].btTotalNum = m_PlatformDBAide.GetValue_BYTE(TEXT("btTotalNum_Relief")); welfareInfArr[2].btTotalNum = m_PlatformDBAide.GetValue_BYTE(TEXT("btTotalNum_Roulette")); welfareInfArr[0].btValidFlag = m_PlatformDBAide.GetValue_BYTE(TEXT("btValidFlag_Signin")); welfareInfArr[1].btValidFlag = m_PlatformDBAide.GetValue_BYTE(TEXT("btValidFlag_Relief")); welfareInfArr[2].btValidFlag = m_PlatformDBAide.GetValue_BYTE(TEXT("btValidFlag_Roulette")); } //发送结果 m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_WELFARE_INFO_ACK, dwContextID, &welfareInfArr, sizeof(welfareInfArr)); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 查询福利信息 GSP_GP_WELFARE_INFO ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 查询福利信息 GSP_GP_WELFARE_INFO ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } //构造结构 tagWelfareInfo welfareInfArr[3]; ZeroMemory(&welfareInfArr, sizeof(welfareInfArr)); //发送结果 m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_WELFARE_INFO_ACK, dwContextID, &welfareInfArr, sizeof(welfareInfArr)); return false; } } //用户获得代理解绑相关信息 bool CDataBaseEngineSink::OnRequestGetUntieAgentInfo(DWORD dwContextID, VOID * pData, WORD wDataSize) { CTimer Start; try { //效验参数 ASSERT(wDataSize == sizeof(DWORD)); if (wDataSize != sizeof(DWORD)) { return false; } //请求处理 DWORD * pdwUserID = (DWORD *)pData; //构造参数 m_TreasureDBAide.ResetParameter(); m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), *pdwUserID); //输出参数 TCHAR szDescribeString[128] = TEXT(""); m_TreasureDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //执行脚本 LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GP_GetUntieAgentInfo"), true); //出参 CDBVarValue DBVarValue; m_TreasureDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue); //结果处理 if (lResultCode == DB_SUCCESS) { DBR_GR_GetUntieAgentInfo GetUntieAgentInfo = { 0 }; GetUntieAgentInfo.cbCost = m_TreasureDBAide.GetValue_BYTE(TEXT("Cost")); GetUntieAgentInfo.cbDays = m_TreasureDBAide.GetValue_BYTE(TEXT("OperateDay")); GetUntieAgentInfo.dwCurrency = m_TreasureDBAide.GetValue_DWORD(TEXT("Currency")); //发送结果 m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_GET_UNTIE_AGENT_INFO_ACK, dwContextID, &GetUntieAgentInfo, sizeof(GetUntieAgentInfo)); } double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_GetUntieAgentInfo ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_GetUntieAgentInfo ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return false; } } //用户获得解绑所需钻石数目 bool CDataBaseEngineSink::OnRequestGetUntieAgentCost(DWORD dwContextID, VOID * pData, WORD wDataSize) { CTimer Start; try { //效验参数 ASSERT(wDataSize == sizeof(DWORD)); if (wDataSize != sizeof(DWORD)) { return false; } //请求处理 DWORD * pdwUserID = (DWORD *)pData; //构造参数 m_TreasureDBAide.ResetParameter(); m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), *pdwUserID); //输出参数 TCHAR szDescribeString[128] = TEXT(""); m_TreasureDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //执行脚本 LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GP_GetUntieAgentInfo"), true); //出参 CDBVarValue DBVarValue; m_TreasureDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue); //结果处理 if (lResultCode == DB_SUCCESS) { DBR_GR_GetUntieAgentInfo GetUntieAgentInfo = { 0 }; GetUntieAgentInfo.cbCost = m_TreasureDBAide.GetValue_BYTE(TEXT("Cost")); GetUntieAgentInfo.cbDays = m_TreasureDBAide.GetValue_BYTE(TEXT("OperateDay")); GetUntieAgentInfo.dwCurrency = m_TreasureDBAide.GetValue_DWORD(TEXT("Currency")); //发送结果 m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_GET_ZUANSHI_INFO_ACK, dwContextID, &GetUntieAgentInfo, sizeof(GetUntieAgentInfo)); } double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_GetUntieAgentInfo ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GP_GetUntieAgentInfo ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return false; } } //扫码绑定设置代理id绑定和送钻 bool CDataBaseEngineSink::OnRequestSetAgentBangDing(DWORD dwContextID, VOID * pData, WORD wDataSize) { CTimer Start; try { //效验参数 ASSERT(wDataSize == sizeof(CMD_GR_GetDaiLiSaoMaResult)); if (wDataSize != sizeof(CMD_GR_GetDaiLiSaoMaResult)) { return false; } //请求处理 CMD_GR_GetDaiLiSaoMaResult * pdwUserID = (CMD_GR_GetDaiLiSaoMaResult *)pData; //构造参数 m_TreasureDBAide.ResetParameter(); m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), pdwUserID->dwUserID); m_TreasureDBAide.AddParameter(TEXT("@dwBingID"), pdwUserID->dwBingID); //输出参数 TCHAR szDescribeString[128] = TEXT(""); m_TreasureDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //执行脚本 LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_AddBingID"), true); //出参 CDBVarValue DBVarValue; m_TreasureDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue); DWORD dwCurrency = 0; //结果处理 if (lResultCode != DB_SUCCESS) { //dwCurrency = m_TreasureDBAide.GetValue_DWORD(TEXT("Currency")); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(320)) { CString csTest; csTest.Format(_T("存储过程 GSP_GR_AddBingID 执行失败,参数userid=%d,bingid=%d"), pdwUserID->dwUserID, pdwUserID->dwBingID); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Warning); } } else{ //变量定义 CMD_GR_UserBean UserBeans; ZeroMemory(&UserBeans, sizeof(UserBeans)); //构造变量 UserBeans.dwCurrBeans = m_TreasureDBAide.GetValue_INT(TEXT("CurrBeans")); ////发送数据 //SendData(pIServerUserItem, MDM_GR_USER, SUB_GR_USER_BEAN, &UserBeans, sizeof(UserBeans)); //发送结果 m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_GET_SAOMA_INFO_ACK, dwContextID, &UserBeans, sizeof(UserBeans)); } double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_AddBingID ----> %.3f"), dRet); //csTest.Format(_T("存储过程耗时 GSP_GR_AddBingID ----> %.3f,绑定代理ID:%d,送钻个数:%d "), dRet, dwCurrency); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_AddBingID ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } CString csTest; csTest.Format(_T("存储过程耗时异常 GSP_GR_AddBingID ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); return false; } } //手动领奖 bool CDataBaseEngineSink::OnLotteryAward(DWORD dwContextID, VOID * pData, WORD wDataSize) { CTimer Start; try { DBR_GR_LotteryAward* pLotteryAward = (DBR_GR_LotteryAward*)(pData); //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@dwUserID"), pLotteryAward->dwUserID); m_GameDBAide.AddParameter(TEXT("@dwRecordID"), pLotteryAward->dwRecordID); //执行查询 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_LotteryAward"), true); pLotteryAward->cbCheckResult = lResultCode; if (DB_SUCCESS == lResultCode) { m_GameDBAide.GetValue_String(TEXT("szAddress"), pLotteryAward->szAddress, CountArray(pLotteryAward->szAddress)); m_GameDBAide.GetValue_String(TEXT("szAddressee"), pLotteryAward->szAddressee, CountArray(pLotteryAward->szAddressee)); m_GameDBAide.GetValue_String(TEXT("szAddrPhoneNum"), pLotteryAward->szAddrPhoneNum, CountArray(pLotteryAward->szAddrPhoneNum)); } //返回数据 m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_LOTTERY_AWARD, dwContextID, pLotteryAward, sizeof(DBR_GR_LotteryAward)); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_LotteryAward ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return true; } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); } return false; } //注册收件信息 bool CDataBaseEngineSink::OnLotteryAddress(DWORD dwContextID, VOID * pData, WORD wDataSize) { CTimer Start; try { DBR_GR_LotteryAddr* pLotteryAddr = (DBR_GR_LotteryAddr*)(pData); //构造参数 m_GameDBAide.ResetParameter(); m_GameDBAide.AddParameter(TEXT("@dwUserID"), pLotteryAddr->dwUserID); m_GameDBAide.AddParameter(TEXT("@szAddress"), pLotteryAddr->szAddress); m_GameDBAide.AddParameter(TEXT("@szAddressee"), pLotteryAddr->szAddressName); m_GameDBAide.AddParameter(TEXT("@szAddrPhoneNum"), pLotteryAddr->szAddrPhoneNum); //执行查询 LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_LotteryAddr"), true); if (lResultCode == DB_SUCCESS) { BYTE bFlag = 0; m_pIDataBaseEngineEvent->OnEventDataBaseResult(SUB_GF_LOTTERY_ADDRESS, dwContextID, &bFlag, sizeof(BYTE)); } else { BYTE bFlag = 1; m_pIDataBaseEngineEvent->OnEventDataBaseResult(SUB_GF_LOTTERY_ADDRESS, dwContextID, &bFlag, sizeof(BYTE)); } } catch (IDataBaseException * pIException) { //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222)) { CString csTest; csTest.Format(_T("存储过程耗时 GSP_GR_LotteryAddr ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } } return false; } //洗牌动画 获取砖石数据 bool CDataBaseEngineSink::OnWlShuffleGameHandleDB(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTimer Start; try { //构造参数 m_TreasureDBAide.ResetParameter(); m_TreasureDBAide.AddParameter(TEXT("@SortID"), 300);//温岭洗牌消耗钻石 //执行查询 LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GP_SearchWLShuffleValue"), true); USER_SHUFFLE_ZUANSHI sZUANSHI; ZeroMemory(&sZUANSHI, sizeof(sZUANSHI)); sZUANSHI.dwNeedZuanshi = m_TreasureDBAide.GetValue_DWORD(TEXT("StatusValue")); m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_GET_WENLIN_SHUFFLE_ACK, dwContextID, &sZUANSHI, sizeof(sZUANSHI)); } catch (IDataBaseException * pIException) { USER_SHUFFLE_ZUANSHI sZUANSHI; ZeroMemory(&sZUANSHI, sizeof(sZUANSHI)); m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_GET_WENLIN_SHUFFLE_ACK, dwContextID, &sZUANSHI, sizeof(sZUANSHI)); //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); CString csTest; csTest.Format(_T("存储过程耗时失败 GSP_GP_SearchWLShuffleValue ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return false; } bool CDataBaseEngineSink::OnWlShuffleGameDeductHandleDB(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID) { CTimer Start; try { DWORD* pInfo = (DWORD*)(pData); //USERid //构造参数 TCHAR szDescribeString[127]; ZeroMemory(szDescribeString, 127 * sizeof(TCHAR)); //构造参数 m_TreasureDBAide.ResetParameter(); m_TreasureDBAide.AddParameter(TEXT("@UserID"), (*pInfo));//温岭洗牌消耗钻石 m_TreasureDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput); //执行查询 LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GP_DeductWLShuffleZuanShi"), true); DBR_GR_WLDeductInfo sZUANSHI; ZeroMemory(&sZUANSHI, sizeof(sZUANSHI)); if (DB_SUCCESS != lResultCode) { TCHAR strErrorDescribe[127]; ZeroMemory(strErrorDescribe, 127 * sizeof(TCHAR)); //结果处理 CDBVarValue DBVarValue; m_GameDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue); _sntprintf(strErrorDescribe, 127, TEXT("GSP_GP_DeductWLShuffleZuanShi 执行失败,err:%s"), static_cast(DBVarValue.bstrVal)); //提示消息 CTraceService::TraceString(strErrorDescribe, TraceLevel_Warning); } else { sZUANSHI.dwConsumeCurrency = m_TreasureDBAide.GetValue_DWORD(TEXT("CurCurrency")); } sZUANSHI.dwUserID = (DWORD)*pInfo; m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_DEDUCT_RE_ZUANSHI_INFO, dwContextID, &sZUANSHI, sizeof(sZUANSHI)); } catch (IDataBaseException * pIException) { DBR_GR_WLDeductInfo sZUANSHI; ZeroMemory(&sZUANSHI, sizeof(sZUANSHI)); m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_DEDUCT_RE_ZUANSHI_INFO, dwContextID, &sZUANSHI, sizeof(sZUANSHI)); //输出错误 CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception); double dRet = Start.End(); CString csTest; csTest.Format(_T("存储过程耗时失败 GSP_GP_DeductWLShuffleZuanShi ----> %.3f "), dRet); //提示消息 CTraceService::TraceString(csTest, TraceLevel_Normal); } return false; }