诸暨麻将添加redis
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 
 
 

12512 行
420 KiB

  1. #include "StdAfx.h"
  2. #include "ServiceUnits.h"
  3. #include "DataBaseEngineSink.h"
  4. #include "GameServer.h"
  5. #include "GameServerDlg.h"
  6. #include "Shop.h"
  7. //////////////////////////////////////////////////////////////////////////////////
  8. //构造函数
  9. CDataBaseEngineSink::CDataBaseEngineSink()
  10. {
  11. //配置变量
  12. m_pGameParameter = NULL;
  13. m_pInitParameter = NULL;
  14. m_pDataBaseParameter = NULL;
  15. m_pGameServiceAttrib = NULL;
  16. m_pGameServiceOption = NULL;
  17. //组件变量
  18. m_pIDataBaseEngine = NULL;
  19. m_pIGameServiceManager = NULL;
  20. m_pIDataBaseEngineEvent = NULL;
  21. m_pIGameDataBaseEngineSink = NULL;
  22. m_pIDBCorrespondManager = NULL;
  23. //辅助变量
  24. ZeroMemory(&m_LogonFailure, sizeof(m_LogonFailure));
  25. ZeroMemory(&m_LogonSuccess, sizeof(m_LogonSuccess));
  26. return;
  27. }
  28. //析构函数
  29. CDataBaseEngineSink::~CDataBaseEngineSink()
  30. {
  31. //释放对象
  32. SafeRelease(m_pIGameDataBaseEngineSink);
  33. return;
  34. }
  35. //接口查询
  36. VOID * CDataBaseEngineSink::QueryInterface(REFGUID Guid, DWORD dwQueryVer)
  37. {
  38. QUERYINTERFACE(IDataBaseEngineSink, Guid, dwQueryVer);
  39. QUERYINTERFACE(IGameDataBaseEngine, Guid, dwQueryVer);
  40. QUERYINTERFACE_IUNKNOWNEX(IDataBaseEngineSink, Guid, dwQueryVer);
  41. return NULL;
  42. }
  43. //获取对象
  44. VOID * CDataBaseEngineSink::GetDataBase(REFGUID Guid, DWORD dwQueryVer)
  45. {
  46. //效验状态
  47. ASSERT(m_GameDBModule.GetInterface() != NULL);
  48. if (m_GameDBModule.GetInterface() == NULL) return NULL;
  49. //查询对象
  50. IDataBase * pIDataBase = m_GameDBModule.GetInterface();
  51. VOID * pIQueryObject = pIDataBase->QueryInterface(Guid, dwQueryVer);
  52. return pIQueryObject;
  53. }
  54. //获取对象
  55. VOID * CDataBaseEngineSink::GetDataBaseEngine(REFGUID Guid, DWORD dwQueryVer)
  56. {
  57. //效验状态
  58. ASSERT(m_pIDataBaseEngine != NULL);
  59. if (m_pIDataBaseEngine == NULL) return NULL;
  60. //查询对象
  61. VOID * pIQueryObject = m_pIDataBaseEngine->QueryInterface(Guid, dwQueryVer);
  62. return pIQueryObject;
  63. }
  64. // 更新服务器通道状态
  65. bool CDataBaseEngineSink::OnRequestOnLineService(DWORD dwContextID, VOID * pData, WORD wDataSize)
  66. {
  67. IPLIST* pIPLIST = (IPLIST*)pData;
  68. CGameServerDlg *pCLogonServerDlg = (CGameServerDlg *)theApp.m_pMainWnd;
  69. CServerListManager *pCServerListManager = &(pCLogonServerDlg->m_ServiceUnits.m_AttemperEngineSink.m_ServerListManager);
  70. CList<LianLu> ListLL;
  71. for (int i = 0; i < 64; i++)
  72. {
  73. std::wstring strTemp = pIPLIST->ST_LIST[i];
  74. if (strTemp == _T("")) continue;
  75. CTimer Start;
  76. try
  77. {
  78. //构造参数
  79. m_PlatformDBAide.ResetParameter();
  80. m_PlatformDBAide.AddParameter(TEXT("@strIP"), strTemp.c_str());
  81. m_PlatformDBAide.AddParameter(TEXT("@strErrorDescribe"), _T(""));
  82. //执行查询
  83. LONG lResultCode = m_PlatformDBAide.ExecuteProcess(TEXT("GSP_MB_IP"), true);
  84. //写入记录
  85. if (lResultCode == DB_SUCCESS)
  86. {
  87. ListLL.RemoveAll();
  88. //节点
  89. while (m_PlatformDBModule->IsRecordsetEnd() == false)
  90. {
  91. INT ZhuangTai = m_PlatformDBAide.GetValue_INT(TEXT("ZhuangTai"));
  92. TCHAR szIP[32];
  93. ZeroMemory(szIP, sizeof(TCHAR) * 32);
  94. m_PlatformDBAide.GetValue_String(TEXT("MoreIp"), szIP, 32);
  95. SYSTEMTIME SystemTimeConclude;
  96. m_PlatformDBAide.GetValue_SystemTime(TEXT("LastAddTime"), SystemTimeConclude);
  97. //pGameServerItem->SetLLStat(szIP, ZhuangTai, SystemTimeConclude);
  98. LianLu myTemp;
  99. ZeroMemory(&myTemp, sizeof(LianLu));
  100. myTemp.iIsOk = ZhuangTai;
  101. myTemp.SystemTimeConclude = SystemTimeConclude;
  102. StringCchCat(myTemp.szIP, 32, szIP);
  103. ListLL.AddTail(myTemp);
  104. //移动记录
  105. m_PlatformDBModule->MoveToNext();
  106. }
  107. LianLuGroup Buffer;
  108. ZeroMemory(&Buffer, sizeof(LianLuGroup));
  109. StringCchCat(Buffer.szAdminIP, 32, strTemp.c_str());
  110. POSITION Pos = ListLL.GetHeadPosition();
  111. int j = 0;
  112. while (Pos)
  113. {
  114. LianLu wRet = ListLL.GetNext(Pos);
  115. Buffer.Data[j] = wRet;
  116. j++;
  117. if (j > (MAX_TONGDAO-1)) break;
  118. }
  119. ListLL.RemoveAll();
  120. //通知网络线程更新数据
  121. (pCLogonServerDlg->m_ServiceUnits.m_AttemperEngineSink.GetTCPNetworkEngine())->OnTBDataEvent(DBO_GR_UPTONGDAOACK, 0, &Buffer, sizeof(LianLuGroup));
  122. }
  123. }
  124. catch (IDataBaseException * pIException)
  125. {
  126. //输出错误
  127. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  128. }
  129. double dRet = Start.End();
  130. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  131. {
  132. CString csTest;
  133. csTest.Format(_T("存储过程耗时 GSP_MB_IP ----> %.3f "), dRet);
  134. //提示消息
  135. CTraceService::TraceString(csTest, TraceLevel_Normal);
  136. }
  137. }
  138. return TRUE;
  139. }
  140. //投递结果
  141. bool CDataBaseEngineSink::PostGameDataBaseResult(WORD wRequestID, VOID * pData, WORD wDataSize)
  142. {
  143. return true;
  144. }
  145. //启动事件
  146. bool CDataBaseEngineSink::OnDataBaseEngineStart(IUnknownEx * pIUnknownEx)
  147. {
  148. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnDataBaseEngineStart"), TraceLevel_Debug);
  149. //查询对象
  150. ASSERT(QUERY_OBJECT_PTR_INTERFACE(pIUnknownEx, IDataBaseEngine) != NULL);
  151. m_pIDataBaseEngine = QUERY_OBJECT_PTR_INTERFACE(pIUnknownEx, IDataBaseEngine);
  152. //创建对象
  153. if ((m_GameDBModule.GetInterface() == NULL) && (m_GameDBModule.CreateInstance() == false))
  154. {
  155. ASSERT(FALSE);
  156. return false;
  157. }
  158. //创建对象
  159. if ((m_TreasureDBModule.GetInterface() == NULL) && (m_TreasureDBModule.CreateInstance() == false))
  160. {
  161. ASSERT(FALSE);
  162. return false;
  163. }
  164. //创建对象
  165. if ((m_PlatformDBModule.GetInterface() == NULL) && (m_PlatformDBModule.CreateInstance() == false))
  166. {
  167. ASSERT(FALSE);
  168. return false;
  169. }
  170. //连接游戏
  171. try
  172. {
  173. //连接信息
  174. tagDataBaseParameter * pTreasureDBParameter = &m_pInitParameter->m_TreasureDBParameter;
  175. tagDataBaseParameter * pPlatformDBParameter = &m_pInitParameter->m_PlatformDBParameter;
  176. //设置连接
  177. m_GameDBModule->SetConnectionInfo(m_pDataBaseParameter->szDataBaseAddr, m_pDataBaseParameter->wDataBasePort,
  178. m_pDataBaseParameter->szDataBaseName, m_pDataBaseParameter->szDataBaseUser, m_pDataBaseParameter->szDataBasePass);
  179. //设置连接
  180. m_TreasureDBModule->SetConnectionInfo(pTreasureDBParameter->szDataBaseAddr, pTreasureDBParameter->wDataBasePort,
  181. pTreasureDBParameter->szDataBaseName, pTreasureDBParameter->szDataBaseUser, pTreasureDBParameter->szDataBasePass);
  182. //设置连接
  183. m_PlatformDBModule->SetConnectionInfo(pPlatformDBParameter->szDataBaseAddr, pPlatformDBParameter->wDataBasePort,
  184. pPlatformDBParameter->szDataBaseName, pPlatformDBParameter->szDataBaseUser, pPlatformDBParameter->szDataBasePass);
  185. //发起连接
  186. m_GameDBModule->OpenConnection();
  187. m_GameDBAide.SetDataBase(m_GameDBModule.GetInterface());
  188. //发起连接
  189. m_TreasureDBModule->OpenConnection();
  190. m_TreasureDBAide.SetDataBase(m_TreasureDBModule.GetInterface());
  191. //发起连接
  192. m_PlatformDBModule->OpenConnection();
  193. m_PlatformDBAide.SetDataBase(m_PlatformDBModule.GetInterface());
  194. //数据钩子
  195. ASSERT(m_pIGameServiceManager != NULL);
  196. m_pIGameDataBaseEngineSink = (IGameDataBaseEngineSink *)m_pIGameServiceManager->CreateGameDataBaseEngineSink(IID_IGameDataBaseEngineSink, VER_IGameDataBaseEngineSink);
  197. //配置对象
  198. if ((m_pIGameDataBaseEngineSink != NULL) && (m_pIGameDataBaseEngineSink->InitializeSink(QUERY_ME_INTERFACE(IUnknownEx)) == false))
  199. {
  200. //错误断言
  201. ASSERT(FALSE);
  202. //输出信息
  203. CTraceService::TraceString(TEXT("游戏数据库扩展钩子引擎对象配置失败"), TraceLevel_Exception);
  204. return false;
  205. }
  206. return true;
  207. }
  208. catch (IDataBaseException * pIException)
  209. {
  210. //错误信息
  211. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  212. return false;
  213. }
  214. return true;
  215. }
  216. //停止事件
  217. bool CDataBaseEngineSink::OnDataBaseEngineConclude(IUnknownEx * pIUnknownEx)
  218. {
  219. //解锁机器
  220. //UnLockAndroidUser();
  221. //配置变量
  222. m_pInitParameter = NULL;
  223. m_pGameServiceAttrib = NULL;
  224. m_pGameServiceOption = NULL;
  225. //组件变量
  226. m_pIGameServiceManager = NULL;
  227. m_pIDataBaseEngineEvent = NULL;
  228. //设置对象
  229. m_GameDBAide.SetDataBase(NULL);
  230. //释放对象
  231. SafeRelease(m_pIGameDataBaseEngineSink);
  232. //关闭连接
  233. if (m_GameDBModule.GetInterface() != NULL)
  234. {
  235. m_GameDBModule->CloseConnection();
  236. m_GameDBModule.CloseInstance();
  237. }
  238. //关闭连接
  239. if (m_TreasureDBModule.GetInterface() != NULL)
  240. {
  241. m_TreasureDBModule->CloseConnection();
  242. m_TreasureDBModule.CloseInstance();
  243. }
  244. //关闭连接
  245. if (m_PlatformDBModule.GetInterface() != NULL)
  246. {
  247. m_PlatformDBModule->CloseConnection();
  248. m_PlatformDBModule.CloseInstance();
  249. }
  250. return true;
  251. }
  252. //时间事件
  253. bool CDataBaseEngineSink::OnDataBaseEngineTimer(DWORD dwTimerID, WPARAM dwBindParameter)
  254. {
  255. return false;
  256. }
  257. //控制事件
  258. bool CDataBaseEngineSink::OnDataBaseEngineControl(WORD wControlID, VOID * pData, WORD wDataSize)
  259. {
  260. return false;
  261. }
  262. //请求事件
  263. bool CDataBaseEngineSink::OnDataBaseEngineRequest(WORD wRequestID, DWORD dwContextID, VOID * pData, WORD wDataSize)
  264. {
  265. //变量定义
  266. bool bSucceed = false;
  267. DWORD dwUserID = 0L;
  268. DWORD dValue = 0;
  269. if (!m_JiShu.Lookup(wRequestID, dValue))
  270. {
  271. m_JiShu.SetAt(wRequestID, dValue);
  272. }
  273. try
  274. {
  275. //请求处理
  276. switch (wRequestID)
  277. {
  278. case SUB_GR_USER_SHRAE_INFO: //分享奖励钻石
  279. {
  280. bSucceed = OnRequestShareInfo(dwContextID, pData, wDataSize, dwUserID);
  281. }
  282. break;
  283. case SUB_GR_USER_SHRAE_AWARD_BEAN: //分享奖励钻石
  284. {
  285. bSucceed = OnRequestShareAwardBean(dwContextID, pData, wDataSize, dwUserID);
  286. }
  287. break;
  288. case SUB_GR_USER_CHECK_NAME:
  289. {
  290. bSucceed = onRequestCheckName(dwContextID, pData, wDataSize, dwUserID);
  291. }
  292. break;
  293. case SUB_GR_USER_CHECK_NAME_QUERY:
  294. {
  295. bSucceed = onRequestCheckNameQuery(dwContextID, pData, wDataSize, dwUserID);
  296. }
  297. break;
  298. case SUB_GR_USER_GET_VERIF_CODE://手机重复绑定查询
  299. {
  300. bSucceed = onRequestGetVerifCode(dwContextID, pData, wDataSize, dwUserID);
  301. }
  302. break;
  303. case SUB_GR_USER_CHECK_IPHONE_QUERY://手机绑定查询,闲聊
  304. {
  305. bSucceed = onRequestCheckIphoneQuery(dwContextID, pData, wDataSize, dwUserID);
  306. }
  307. break;
  308. case SUB_GR_USER_CHECK_IPHONE://手机绑定
  309. {
  310. bSucceed = onRequestCheckIphone(dwContextID, pData, wDataSize, dwUserID);
  311. }
  312. break;
  313. case SUB_GR_USER_CHECK_XIANLIAO://闲聊绑定
  314. {
  315. bSucceed = onRequestCheckXianLiao(dwContextID, pData, wDataSize, dwUserID);
  316. }
  317. break;
  318. case SUB_GR_USER_GET_BEAN:
  319. {
  320. bSucceed = OnRequestGetBean(dwContextID, pData, wDataSize, dwUserID);
  321. }
  322. break;
  323. case DBR_GR_LOGON_MOBILE: //手机登录
  324. {
  325. bSucceed = OnRequestLogonMobile(dwContextID, pData, wDataSize, dwUserID);
  326. }
  327. break;
  328. case DBR_GR_WRITE_GAME_SCORE: //游戏写分
  329. {
  330. bSucceed = OnRequestWriteGameScore(dwContextID, pData, wDataSize, dwUserID);
  331. }
  332. break;
  333. case SUB_GR_USER_GET_GAME_TEMP_SCORE_RANKLIST: //获取临时积分排行榜
  334. {
  335. bSucceed = OnRequestGetGameTempScoreRecordRankList(dwContextID, pData, wDataSize, dwUserID);
  336. }break;
  337. case DBR_GR_WRITE_GAME_TEMPORARY_SCORE://记录临时积分
  338. {
  339. bSucceed = OnRequestWriteGameTempScoreRecord(dwContextID, pData, wDataSize, dwUserID);
  340. }break;
  341. case DBR_GR_LEAVE_GAME_SERVER: //离开房间
  342. {
  343. bSucceed = OnRequestLeaveGameServer(dwContextID, pData, wDataSize, dwUserID);
  344. }
  345. break;
  346. case DBR_GR_GAME_SCORE_RECORD: //游戏记录
  347. {
  348. bSucceed = OnRequestGameScoreRecord(dwContextID, pData, wDataSize, dwUserID);
  349. }break;
  350. case DBR_GR_GET_GAME_SCORE_RECORD_LIST:
  351. {
  352. bSucceed = OnRequestGetUserGameScoreRecords(dwContextID, pData, wDataSize, dwUserID);
  353. }break;
  354. case SUB_GR_USER_GET_GAME_SCORE_RECORD_REPLAY:
  355. {
  356. bSucceed = OnRequestGetUserGameReplayRecord(dwContextID, pData, wDataSize, dwUserID);
  357. }break;
  358. case DBR_GR_LOAD_PARAMETER: //加载参数
  359. {
  360. bSucceed = OnRequestLoadParameter(dwContextID, pData, wDataSize, dwUserID);
  361. }
  362. break;
  363. //case DBR_GR_LOAD_GAME_COLUMN: //加载列表
  364. //{
  365. // bSucceed = true;// OnRequestLoadGameColumn(dwContextID, pData, wDataSize, dwUserID);
  366. //}
  367. // break;
  368. //case DBR_GR_LOAD_ANDROID_PARAMETER: //加载配置
  369. //{
  370. // bSucceed = true;//OnRequestLoadAndroidParameter(dwContextID, pData, wDataSize, dwUserID);
  371. //}
  372. break;
  373. //case DBR_GR_LOAD_ANDROID_USER: //加载机器
  374. //{
  375. // bSucceed = true;//OnRequestLoadAndroidUser(dwContextID, pData, wDataSize, dwUserID);
  376. //}
  377. // break;
  378. case DBR_GP_ONLINE_SERVICE: //加载通道
  379. {
  380. return OnRequestOnLineService(dwContextID, pData, wDataSize);
  381. }
  382. break;
  383. //case DBR_GR_LOAD_GAME_PROPERTY: //加载道具
  384. //{
  385. // bSucceed = OnRequestLoadGameProperty(dwContextID, pData, wDataSize, dwUserID);
  386. //}
  387. // break;
  388. case DBR_GR_USER_CHECK_BEANS: //直接扣除元宝
  389. {
  390. bSucceed = OnRequestUserCheckBeans(dwContextID, pData, wDataSize, dwUserID);
  391. }
  392. break;
  393. case DBR_GR_USER_REDUCE_BEANS: //消耗元宝
  394. {
  395. bSucceed = OnRequestUserReduceBeans(dwContextID, pData, wDataSize, dwUserID);
  396. }
  397. break;
  398. case DBR_GR_USER_LUCK_BEANS: //冻结元宝
  399. {
  400. bSucceed = OnRequestUserLockBeans(dwContextID, pData, wDataSize, dwUserID);
  401. }
  402. break;
  403. case DBR_GR_USER_UNLUCK_BEANS: //解冻元宝
  404. {
  405. bSucceed = OnRequestUserUnLockBeans(dwContextID, pData, wDataSize, dwUserID);
  406. }
  407. break;
  408. //case DBR_GR_USER_ENABLE_INSURE: //开通银行
  409. //{
  410. // bSucceed = OnRequestUserEnableInsure(dwContextID, pData, wDataSize, dwUserID);
  411. //}
  412. // break;
  413. //case DBR_GR_USER_SAVE_SCORE: //存入游戏币
  414. //{
  415. // bSucceed = OnRequestUserSaveScore(dwContextID, pData, wDataSize, dwUserID);
  416. //}
  417. // break;
  418. //case DBR_GR_USER_TAKE_SCORE: //提取游戏币
  419. //{
  420. // bSucceed = OnRequestUserTakeScore(dwContextID, pData, wDataSize, dwUserID);
  421. //}
  422. // break;
  423. //case DBR_GR_USER_TRANSFER_SCORE: //转帐游戏币
  424. //{
  425. // bSucceed = OnRequestUserTransferScore(dwContextID, pData, wDataSize, dwUserID);
  426. //}
  427. // break;
  428. //case DBR_GR_QUERY_INSURE_INFO: //查询银行
  429. //{
  430. // bSucceed = OnRequestQueryInsureInfo(dwContextID, pData, wDataSize, dwUserID);
  431. //}
  432. // break;
  433. //case DBR_GR_QUERY_TRANSFER_USER_INFO: //查询用户
  434. //{
  435. // bSucceed = OnRequestQueryTransferUserInfo(dwContextID, pData, wDataSize, dwUserID);
  436. //}
  437. // break;
  438. //case DBR_GR_PROPERTY_REQUEST: //道具请求
  439. //{
  440. // bSucceed = OnRequestPropertyRequest(dwContextID, pData, wDataSize, dwUserID);
  441. //}
  442. // break;
  443. //case DBR_GR_MANAGE_USER_RIGHT: //用户权限
  444. //{
  445. // bSucceed = OnRequestManageUserRight(dwContextID, pData, wDataSize, dwUserID);
  446. //}
  447. // break;
  448. //case DBR_GR_LOAD_SYSTEM_MESSAGE: //系统消息
  449. //{
  450. // bSucceed = OnRequestLoadSystemMessage(dwContextID, pData, wDataSize, dwUserID);
  451. //}
  452. // break;
  453. //case DBR_GR_LOAD_SENSITIVE_WORDS://加载敏感词
  454. //{
  455. // return OnRequestLoadSensitiveWords(dwContextID, pData, wDataSize, dwUserID);
  456. //}
  457. // break;
  458. //case DBR_GR_MATCH_SIGNUP: //比赛费用
  459. //{
  460. // bSucceed = OnRequestMatchSignup(dwContextID, pData, wDataSize, dwUserID);
  461. //}
  462. // break;
  463. //case DBR_GR_MATCH_UNSIGNUP: //退出比赛
  464. //{
  465. // bSucceed = OnRequestMatchUnSignup(dwContextID, pData, wDataSize, dwUserID);
  466. //}
  467. // break;
  468. //case DBR_GR_MATCH_START: //比赛开始
  469. //{
  470. // bSucceed = OnRequestMatchStart(dwContextID, pData, wDataSize, dwUserID);
  471. //}
  472. // break;
  473. //case DBR_GR_MATCH_ELIMINATE: //比赛淘汰
  474. //{
  475. // bSucceed = OnRequestMatchEliminate(dwContextID, pData, wDataSize, dwUserID);
  476. //}
  477. // break;
  478. //case DBR_GR_MATCH_OVER: //比赛结束
  479. //{
  480. // bSucceed = OnRequestMatchOver(dwContextID, pData, wDataSize, dwUserID);
  481. //}
  482. // break;
  483. //case DBR_GR_MATCH_REWARD: //比赛奖励
  484. //{
  485. // bSucceed = OnRequestMatchReward(dwContextID, pData, wDataSize, dwUserID);
  486. //}
  487. // break;
  488. //case DBR_GR_TASK_LOAD_LIST: //加载任务
  489. //{
  490. // bSucceed = OnRequestLoadTaskList(dwContextID, pData, wDataSize, dwUserID);
  491. //}
  492. // break;
  493. //case DBR_GR_TASK_QUERY_INFO: //查询任务
  494. //{
  495. // bSucceed = OnRequestTaskQueryInfo(dwContextID, pData, wDataSize, dwUserID);
  496. //}
  497. // break;
  498. //case DBR_GR_TASK_TAKE: //领取任务
  499. //{
  500. // bSucceed = OnRequestTaskTake(dwContextID, pData, wDataSize, dwUserID);
  501. //}
  502. // break;
  503. //case DBR_GR_TASK_REWARD: //领取奖励
  504. //{
  505. // bSucceed = OnRequestTaskReward(dwContextID, pData, wDataSize, dwUserID);
  506. //}
  507. // break;
  508. //case DBR_GR_LOAD_MEMBER_PARAMETER: //会员参数
  509. //{
  510. // bSucceed = OnRequestLoadMemberParameter(dwContextID, pData, wDataSize, dwUserID);
  511. //}
  512. // break;
  513. //case DBR_GR_PURCHASE_MEMBER: //购买会员
  514. //{
  515. // bSucceed = OnRequestPurchaseMember(dwContextID, pData, wDataSize, dwUserID);
  516. //}
  517. // break;
  518. //case DBR_GR_EXCHANGE_SCORE: //兑换游戏币
  519. //{
  520. // bSucceed = OnRequestExchangeScore(dwContextID, pData, wDataSize, dwUserID);
  521. //}
  522. // break;
  523. //case DBO_GP_EXCHANGE_CONFIG_LIST: //钻石兑换金币的商品列表
  524. //{
  525. // bSucceed = OnRequestExchangeConfigs(dwContextID, pData, wDataSize, dwUserID);
  526. //}
  527. // break;
  528. //case DBO_GR_TOP_WIN_LIST: ///+++胜局榜
  529. //{
  530. // bSucceed = OnRequestTopWinList(dwContextID, pData, wDataSize);
  531. // break;
  532. //}
  533. //case DBR_GP_RELIEF_INFO: ///+++查询破产信息
  534. //{
  535. // bSucceed = OnRequestReliefInfo(dwContextID, pData, wDataSize);
  536. // break;
  537. //}
  538. //case DBR_GP_GET_RELIEF: ///+++领取破产
  539. //{
  540. // bSucceed = OnRequestGetRelief(dwContextID, pData, wDataSize);
  541. // break;
  542. //}
  543. case DBR_GP_LOAD_CHECKIN_REWARD: //签到奖励
  544. {
  545. bSucceed = OnRequestCheckInReward(dwContextID, pData, wDataSize);
  546. break;
  547. }
  548. case DBR_GP_CHECKIN_QUERY_INFO: //查询签到
  549. {
  550. bSucceed = OnRequestCheckInQueryInfo(dwContextID, pData, wDataSize);
  551. break;
  552. }
  553. case DBR_GP_CHECKIN_DONE: //执行签到
  554. {
  555. bSucceed = OnRequestCheckInDone(dwContextID, pData, wDataSize);
  556. break;
  557. }
  558. case DBR_GP_WELFARE_INFO: //福利信息
  559. {
  560. bSucceed = OnQueryWelfareInfo(dwContextID, pData, wDataSize);
  561. break;
  562. }
  563. case DBR_GR_CLUB_GET_LIST: //获取俱乐部列表
  564. {
  565. bSucceed = OnRequestGetClubList(dwContextID, pData, wDataSize, dwUserID);
  566. break;
  567. }
  568. case DBR_GR_CLUB_GET_USER: //获取俱乐部会员
  569. {
  570. bSucceed = OnRequestGetClubUser(dwContextID, pData, wDataSize, dwUserID);
  571. break;
  572. }
  573. case DBR_GR_CLUB_GET_USER_EX: //获取俱乐部会员
  574. {
  575. bSucceed = OnRequestGetClubUserEx(dwContextID, pData, wDataSize, dwUserID);
  576. break;
  577. }
  578. case DBR_GR_CLUB_GET_USER_ONLINE: //获取俱乐部会员
  579. {
  580. bSucceed = OnRequestGetClubUserOnline(dwContextID, pData, wDataSize, dwUserID);
  581. break;
  582. }
  583. case DBR_GR_CLUB_GET_MESSAGE: //获取俱乐部消息
  584. {
  585. bSucceed = OnRequestGetClubMessage(dwContextID, pData, wDataSize, dwUserID);
  586. break;
  587. }
  588. case DBR_GR_CLUB_GET_RECORD: //获取俱乐部记录
  589. {
  590. bSucceed = OnRequestGetClubRecord(dwContextID, pData, wDataSize, dwUserID);
  591. break;
  592. }
  593. case DBR_GR_CLUB_GET_RECORD_EX: //获取俱乐部记录
  594. {
  595. bSucceed = OnRequestGetClubRecordEX(dwContextID, pData, wDataSize, dwUserID);
  596. break;
  597. }
  598. case DBR_GR_CLUB_XIANLIAO_RECORD://分享战绩到闲聊群
  599. {
  600. bSucceed = OnRequestFenXiangClubRecord(dwContextID, pData, wDataSize, dwUserID);
  601. break;
  602. }
  603. case DBR_GR_CLUB_WRITE_RECORD: //获取俱乐部记录
  604. {
  605. bSucceed = OnRequestWriteClubRecord(dwContextID, pData, wDataSize, dwUserID);
  606. break;
  607. }
  608. case DBR_GR_CLUB_CREATE: //创建俱乐部
  609. {
  610. bSucceed = OnRequestCreateClub(dwContextID, pData, wDataSize, dwUserID);
  611. break;
  612. }
  613. case DBR_GR_CLUB_UPDATE: //修改俱乐部
  614. {
  615. bSucceed = OnRequestUpdateClub(dwContextID, pData, wDataSize, dwUserID);
  616. break;
  617. }
  618. case DBR_GR_CLUB_DELETE: //删除俱乐部
  619. {
  620. bSucceed = OnRequestDeleteClub(dwContextID, pData, wDataSize, dwUserID);
  621. break;
  622. }
  623. case DBR_GR_CLUB_GET: //查看俱乐部
  624. {
  625. bSucceed = OnRequestGetClub(dwContextID, pData, wDataSize, dwUserID);
  626. break;
  627. }
  628. case DBR_GR_CLUB_JOIN: //加入俱乐部
  629. {
  630. bSucceed = OnRequestJoinClub(dwContextID, pData, wDataSize, dwUserID);
  631. break;
  632. }
  633. case DBR_GR_CLUB_QUIT: //退出俱乐部
  634. {
  635. bSucceed = OnRequestQuitClub(dwContextID, pData, wDataSize, dwUserID);
  636. break;
  637. }
  638. case DBR_GR_CLUB_ISAGREE: //同意俱乐部
  639. {
  640. bSucceed = OnRequestAgreeClub(dwContextID, pData, wDataSize, dwUserID);
  641. break;
  642. }
  643. //case DBR_GR_CLUB_GET_ONLINE: //获取俱乐部在线信息
  644. //{
  645. // bSucceed = OnRequestGetClubOnLine(dwContextID, pData, wDataSize, dwUserID);
  646. // break;
  647. //}
  648. case DBR_GR_CLUB_GET_ONLINEEX: //获取俱乐部在线信息
  649. {
  650. bSucceed = OnRequestGetClubOnLineEx(dwContextID, pData, wDataSize, dwUserID);
  651. break;
  652. }
  653. case DBR_GR_CLUB_GET_USER2: //获取俱乐部会员黑名单
  654. {
  655. bSucceed = OnRequestGetClubBlackUser(dwContextID, pData, wDataSize, dwUserID);
  656. break;
  657. }
  658. case DBR_GR_CLUB_GET_PROTOCOL: //获取俱乐部协议
  659. {
  660. bSucceed = OnRequestGetClubProtocol(dwContextID, pData, wDataSize, dwUserID);
  661. break;
  662. }
  663. case DBR_GR_CLUB_GET_PROTOCOLAGREE: //同意俱乐部协议
  664. {
  665. bSucceed = OnRequestGetClubProtocolAgree(dwContextID, pData, wDataSize, dwUserID);
  666. break;
  667. }
  668. case DBR_GR_CLUB_GET_HOSTINFO: //查询群主信息
  669. {
  670. bSucceed = OnRequestGetClubHostInfo(dwContextID, pData, wDataSize, dwUserID);
  671. break;
  672. }
  673. case DBR_GR_CLUB_GET_NOTICE: //俱乐部公告
  674. {
  675. bSucceed = OnRequestGetClubNotice(dwContextID, pData, wDataSize, dwUserID);
  676. break;
  677. }
  678. case DBR_GR_CLUB_NotifyUser: //俱乐部广播
  679. {
  680. bSucceed = OnRequestNotifyAlluser(dwContextID, pData, wDataSize, dwUserID);
  681. break;
  682. }
  683. case DBR_GP_MY_ROULETTE_INFO: ///+++我的转盘信息
  684. {
  685. bSucceed = OnRequestRouletteConfig_new(dwContextID, pData, wDataSize, dwUserID);
  686. break;
  687. }
  688. case DBR_GP_ROULETTE_LOTTERY: ///+++转盘抽奖
  689. {
  690. bSucceed = OnRecordRouletteLottery(dwContextID, pData, wDataSize, dwUserID);
  691. break;
  692. }
  693. case DBR_GP_GET_ROULETTE_CONFIG/*DBR_GP_LOAD_ROULETTE_CONFIG*/: //加载轮盘奖品配置信息
  694. {
  695. bSucceed = OnRequestRouletteConfig(dwContextID, pData, wDataSize, dwUserID);
  696. break;
  697. }
  698. case DBR_GP_LOTTERY_INFO: //查询抽奖信息
  699. {
  700. bSucceed = OnQueryLotteryInfo(dwContextID, pData, wDataSize);
  701. break;
  702. }
  703. case DBR_GP_LOTTERY_HIS: //查询抽奖历史
  704. {
  705. bSucceed = OnQueryLotteryHis(dwContextID, pData, wDataSize);
  706. break;
  707. }
  708. case DBR_GP_LOTTERY_HIS_EX:
  709. {
  710. bSucceed = OnQueryLotteryHisEx(dwContextID, pData, wDataSize);
  711. break;
  712. }
  713. case DBO_GR_TASK_SAOMA: //扫码绑定更新绑定代理id和送8个钻
  714. {
  715. bSucceed = OnRequestSetAgentBangDing(dwContextID, pData, wDataSize);
  716. break;
  717. }
  718. case DBR_GP_GET_UNTIE_AGENT_INFO: //用户获得代理解绑相关信息
  719. {
  720. bSucceed = OnRequestGetUntieAgentInfo(dwContextID, pData, wDataSize);
  721. break;
  722. }
  723. case DBR_GP_GET_ZUANSHI_INFO: //用户获得解绑所需钻石数目
  724. {
  725. bSucceed = OnRequestGetUntieAgentCost(dwContextID, pData, wDataSize);
  726. break;
  727. }
  728. case DBR_GR_CLUB_DISSOLVEROOM: //群主解散俱乐部房间
  729. {
  730. bSucceed = OnRequestClubDissolveRoom(dwContextID, pData, wDataSize, dwUserID);
  731. break;
  732. }
  733. case DBR_GP_LOTTERY_FLAG: //更新奖品发放标志
  734. {
  735. bSucceed = OnUpdateLotteryFlag(dwContextID, pData, wDataSize);
  736. break;
  737. }
  738. case DBR_GP_LOTTERY_AWARD: //手动领奖
  739. {
  740. bSucceed = OnLotteryAward(dwContextID, pData, wDataSize);
  741. break;
  742. }
  743. case DBR_GP_LOTTERY_ADDRESS: //注册收件信息
  744. {
  745. bSucceed = OnLotteryAddress(dwContextID, pData, wDataSize);
  746. break;
  747. }
  748. case DBR_GR_CLUB_SAVE_MORE_WANFA: //额外玩法
  749. {
  750. bSucceed = OnRequestUpdateAddClub(dwContextID, pData, wDataSize, dwUserID);
  751. break;
  752. }
  753. case DBR_GR_CLUB_GET_MORE_WANFA: //查看俱乐部 额外玩法
  754. {
  755. bSucceed = OnRequestGetAddClub(dwContextID, pData, wDataSize, dwUserID);
  756. break;
  757. }
  758. case DBR_GR_CLUB_GET_COUNT_EXPLOITS:
  759. {
  760. bSucceed = OnRequestGetClubExploits(dwContextID, pData, wDataSize, dwUserID);
  761. break;
  762. }
  763. case DBR_GR_CLUB_GET_COUNT_PLAYGAEMS: //俱乐部统计对局数
  764. {
  765. bSucceed = OnRequestGetClubPlaygames(dwContextID, pData, wDataSize, dwUserID);
  766. break;
  767. }
  768. case DBR_GR_CLUB_GET_COUNT_INTEGRAL: //俱乐部统计积分数
  769. {
  770. bSucceed = OnRequestGetClubIntegral(dwContextID, pData, wDataSize, dwUserID);
  771. break;
  772. }
  773. case DBR_GR_CLUB_GET_MAKEA_SAMPLE: //俱乐部打样
  774. {
  775. bSucceed = OnRequestGetClubSample(dwContextID, pData, wDataSize, dwUserID);
  776. break;
  777. }
  778. case SUB_GP_WENLIN_SHUFFLE: //洗牌动画
  779. {
  780. bSucceed = OnWlShuffleGameHandleDB(dwContextID, pData, wDataSize, dwUserID);
  781. break;
  782. }
  783. case DBR_GP_DEDUCT_ZUANSHI_INFO: //洗牌动画 扣钻
  784. {
  785. bSucceed = OnWlShuffleGameDeductHandleDB(dwContextID, pData, wDataSize, dwUserID);
  786. break;
  787. }
  788. }
  789. }
  790. catch (const std::exception&)
  791. {
  792. }
  793. if (!bSucceed)
  794. {
  795. if (dValue > 3)
  796. {
  797. bSucceed = true;
  798. m_JiShu.SetAt(wRequestID, 0);
  799. }
  800. else
  801. {
  802. dValue++;
  803. m_JiShu.SetAt(wRequestID, dValue);
  804. }
  805. }
  806. //协调通知
  807. if (m_pIDBCorrespondManager) m_pIDBCorrespondManager->OnPostRequestComplete(dwUserID,true/* bSucceed*/);
  808. return bSucceed;
  809. }
  810. //查询元宝
  811. bool CDataBaseEngineSink::OnRequestGetBean(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  812. {
  813. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetBean"), TraceLevel_Debug);
  814. CTimer Start;
  815. try
  816. {
  817. DWORD *pUserID = (DWORD *)pData;
  818. //构造参数
  819. m_GameDBAide.ResetParameter();
  820. //获取当前时间
  821. m_GameDBAide.AddParameter(TEXT("dwUserID"), *pUserID);
  822. TCHAR szDescribeString[127];
  823. ZeroMemory(szDescribeString, 127* sizeof(TCHAR));
  824. //输出参数
  825. m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  826. //执行查询
  827. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_LookBeans"), true);
  828. //结果处理
  829. CDBVarValue DBVarValue;
  830. m_GameDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  831. DBR_GR_GetBearn Ret;
  832. ZeroMemory(&Ret, sizeof(DBR_GR_GetBearn));
  833. Ret.dwUserID = *pUserID;
  834. Ret.dwSocket = dwContextID;
  835. if (lResultCode == DB_SUCCESS)
  836. {
  837. Ret.lResultCode = 1;
  838. Ret.Currency = m_GameDBAide.GetValue_DWORD(_T("CurrBeans"));
  839. Ret.LeiJiZuanShi = m_GameDBAide.GetValue_DWORD(_T("LeiJiZuanShi"));
  840. Ret.GouMaiZuanShi = m_GameDBAide.GetValue_DWORD(_T("GouMaiZuanShi"));
  841. }
  842. else
  843. {
  844. Ret.lResultCode = 0;
  845. _sntprintf(Ret.strErrorDescribe, 127, TEXT("%s"), static_cast<LPCWSTR>(DBVarValue.bstrVal));
  846. }
  847. m_pIDataBaseEngineEvent->OnEventDataBaseResult(SUB_GR_USER_GET_BEAN_RESULT, dwContextID, &Ret, sizeof(DBR_GR_GetBearn));
  848. double dRet = Start.End();
  849. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  850. {
  851. CString csTest;
  852. csTest.Format(_T("存储过程耗时 GSP_GR_LookBeans ----> %.3f "), dRet);
  853. //提示消息
  854. CTraceService::TraceString(csTest, TraceLevel_Normal);
  855. }
  856. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  857. {
  858. CString csTest;
  859. csTest.Format(_T("存储过程耗时 GSP_GR_LookBeans ----> %.3f "), dRet);
  860. //提示消息
  861. CTraceService::TraceString(csTest, TraceLevel_Normal);
  862. }
  863. return true;
  864. }
  865. catch (IDataBaseException * pIException)
  866. {
  867. //输出错误
  868. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  869. double dRet = Start.End();
  870. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  871. {
  872. CString csTest;
  873. csTest.Format(_T("存储过程耗时 GSP_GR_LookBeans ----> %.3f "), dRet);
  874. //提示消息
  875. CTraceService::TraceString(csTest, TraceLevel_Normal);
  876. }
  877. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  878. {
  879. CString csTest;
  880. csTest.Format(_T("存储过程耗时 GSP_GR_LookBeans ----> %.3f "), dRet);
  881. //提示消息
  882. CTraceService::TraceString(csTest, TraceLevel_Normal);
  883. }
  884. return true;
  885. }
  886. return true;
  887. }
  888. //实名认证
  889. bool CDataBaseEngineSink::onRequestCheckName(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  890. {
  891. CTraceService::TraceString(TEXT("CDataBaseEngineSink::onRequestCheckName"), TraceLevel_Debug);
  892. CTimer Start;
  893. try
  894. {
  895. CHECKNAMEINFO *pUserID = (CHECKNAMEINFO *)pData;
  896. //构造参数
  897. m_GameDBAide.ResetParameter();
  898. //输入参数
  899. m_GameDBAide.AddParameter(TEXT("dwUserID"), pUserID->dUserID);
  900. m_GameDBAide.AddParameter(TEXT("dwUserName"), pUserID->nameInfo.Name);
  901. m_GameDBAide.AddParameter(TEXT("dwUserCard"), pUserID->nameInfo.IDCard);
  902. m_GameDBAide.AddParameter(TEXT("dwUserPhoneNum"), pUserID->nameInfo.PhoneNum);
  903. //执行查询
  904. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_CheckName"), true);
  905. double dRet = Start.End();
  906. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  907. {
  908. CString csTest;
  909. csTest.Format(_T("存储过程耗时 GSP_GR_CheckName ----> %.3f "), dRet);
  910. //提示消息
  911. CTraceService::TraceString(csTest, TraceLevel_Normal);
  912. }
  913. return true;
  914. }
  915. catch (IDataBaseException * pIException)
  916. {
  917. //输出错误
  918. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  919. double dRet = Start.End();
  920. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  921. {
  922. CString csTest;
  923. csTest.Format(_T("存储过程耗时 GSP_GR_CheckName ----> %.3f "), dRet);
  924. //提示消息
  925. CTraceService::TraceString(csTest, TraceLevel_Normal);
  926. }
  927. return true;
  928. }
  929. return true;
  930. }
  931. //实名认证查询
  932. bool CDataBaseEngineSink::onRequestCheckNameQuery(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  933. {
  934. CTraceService::TraceString(TEXT("CDataBaseEngineSink::onRequestCheckNameQuery"), TraceLevel_Debug);
  935. CTimer Start;
  936. try
  937. {
  938. DWORD *pUserID = (DWORD *)pData;
  939. //构造参数
  940. m_GameDBAide.ResetParameter();
  941. //输入参数
  942. m_GameDBAide.AddParameter(TEXT("dwUserID"), *pUserID);
  943. TCHAR szDescribeString[127];
  944. ZeroMemory(szDescribeString, 127 * sizeof(TCHAR));
  945. //输出参数
  946. m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  947. //执行查询
  948. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_CheckName_Query"), true);
  949. //结果处理
  950. DBR_GR_GetCheckName Ret;
  951. ZeroMemory(&Ret, sizeof(DBR_GR_GetCheckName));
  952. Ret.dwUserID = *pUserID;
  953. Ret.dwSocket = dwContextID;
  954. if (lResultCode == DB_SUCCESS)
  955. {
  956. if (m_GameDBModule->IsRecordsetEnd() == false)
  957. {
  958. Ret.lResultCode = 1;
  959. m_GameDBAide.GetValue_String(TEXT("Name"), Ret.userName, 20);
  960. Ret.userName[20] = 0;
  961. m_GameDBAide.GetValue_String(TEXT("IDCard"), Ret.userCard, 18);
  962. Ret.userName[18] = 0;
  963. m_GameDBAide.GetValue_String(TEXT("iphoneNum"), Ret.userPhoneNum, 11);
  964. Ret.userName[11] = 0;
  965. m_GameDBAide.GetValue_String(TEXT("Addr"), Ret.userAddr, 128);
  966. Ret.userAddr[127] = 0;
  967. }
  968. }
  969. else
  970. {
  971. Ret.lResultCode = 0;
  972. CDBVarValue DBVarValue;
  973. m_GameDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  974. _sntprintf(Ret.strErrorDescribe, 127, TEXT("%s"), static_cast<LPCWSTR>(DBVarValue.bstrVal));
  975. }
  976. m_pIDataBaseEngineEvent->OnEventDataBaseResult(SUB_GR_USER_CHECK_NAME_QUERY, dwContextID, &Ret, sizeof(DBR_GR_GetCheckName));
  977. double dRet = Start.End();
  978. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  979. {
  980. CString csTest;
  981. csTest.Format(_T("存储过程耗时 GSP_GR_CheckName_Query ----> %.3f "), dRet);
  982. //提示消息
  983. CTraceService::TraceString(csTest, TraceLevel_Normal);
  984. }
  985. return true;
  986. }
  987. catch (IDataBaseException * pIException)
  988. {
  989. //输出错误
  990. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  991. double dRet = Start.End();
  992. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  993. {
  994. CString csTest;
  995. csTest.Format(_T("存储过程耗时 GSP_GR_CheckName_Query ----> %.3f "), dRet);
  996. //提示消息
  997. CTraceService::TraceString(csTest, TraceLevel_Normal);
  998. }
  999. return true;
  1000. }
  1001. return true;
  1002. }
  1003. //手机重复绑定查询
  1004. bool CDataBaseEngineSink::onRequestGetVerifCode(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  1005. {
  1006. CTraceService::TraceString(TEXT("CDataBaseEngineSink::onRequestGetVerifCode"), TraceLevel_Debug);
  1007. CTimer Start;
  1008. try
  1009. {
  1010. CMD_GR_GetVerifCode *pGetVerifCode = (CMD_GR_GetVerifCode *)pData;
  1011. //构造参数
  1012. m_GameDBAide.ResetParameter();
  1013. //输入参数
  1014. m_GameDBAide.AddParameter(TEXT("IphoneNum"), pGetVerifCode->PhoneNum);
  1015. TCHAR szDescribeString[127];
  1016. ZeroMemory(szDescribeString, 127 * sizeof(TCHAR));
  1017. //输出参数
  1018. m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  1019. //执行查询
  1020. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_GetVerifCode"), true);
  1021. CDBVarValue DBVarValue;
  1022. m_GameDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  1023. _sntprintf(szDescribeString, 127, TEXT("%s"), static_cast<LPCWSTR>(DBVarValue.bstrVal));
  1024. memcpy(pGetVerifCode->szDescribeString, szDescribeString, sizeof(szDescribeString));
  1025. pGetVerifCode->IsRepeat = lResultCode;
  1026. m_pIDataBaseEngineEvent->OnEventDataBaseResult(SUB_GR_USER_GET_VERIF_CODE, dwContextID, pGetVerifCode, sizeof(CMD_GR_GetVerifCode));
  1027. double dRet = Start.End();
  1028. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  1029. {
  1030. CString csTest;
  1031. csTest.Format(_T("存储过程耗时 GSP_GR_GetVerifCode ----> %.3f "), dRet);
  1032. //提示消息
  1033. CTraceService::TraceString(csTest, TraceLevel_Normal);
  1034. }
  1035. return true;
  1036. }
  1037. catch (IDataBaseException * pIException)
  1038. {
  1039. //输出错误
  1040. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  1041. double dRet = Start.End();
  1042. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  1043. {
  1044. CString csTest;
  1045. csTest.Format(_T("存储过程耗时 GSP_GR_GetVerifCode ----> %.3f "), dRet);
  1046. //提示消息
  1047. CTraceService::TraceString(csTest, TraceLevel_Normal);
  1048. }
  1049. return true;
  1050. }
  1051. return true;
  1052. }
  1053. //手机号码绑定查询
  1054. bool CDataBaseEngineSink::onRequestCheckIphoneQuery(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  1055. {
  1056. CTraceService::TraceString(TEXT("CDataBaseEngineSink::onRequestCheckIphoneQuery"), TraceLevel_Debug);
  1057. CTimer Start;
  1058. try
  1059. {
  1060. DWORD *pUserID = (DWORD *)pData;
  1061. //构造参数
  1062. m_GameDBAide.ResetParameter();
  1063. //输入参数
  1064. m_GameDBAide.AddParameter(TEXT("dwUserID"), *pUserID);
  1065. TCHAR szDescribeString[127];
  1066. ZeroMemory(szDescribeString, 127 * sizeof(TCHAR));
  1067. //输出参数
  1068. m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  1069. //执行查询
  1070. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_CheckIphone_Query"), true);
  1071. //结果处理
  1072. CMD_GR_CheckIphone_Query Ret;
  1073. ZeroMemory(&Ret, sizeof(CMD_GR_CheckIphone_Query));
  1074. //Ret.dwUserID = *pUserID;
  1075. //Ret.dwSocket = dwContextID;
  1076. if (lResultCode == DB_SUCCESS)
  1077. {
  1078. if (m_GameDBModule->IsRecordsetEnd() == false)
  1079. {
  1080. Ret.IsBingNum = 1;
  1081. m_GameDBAide.GetValue_String(TEXT("iphoneNum"), Ret.PhoneNum, 11);
  1082. Ret.PhoneNum[11] = 0;
  1083. Ret.dwCurrency = m_GameDBAide.GetValue_WORD(TEXT("Currency"));
  1084. Ret.IsBingXianLiao = m_GameDBAide.GetValue_BYTE(TEXT("IsXianLiao"));
  1085. }
  1086. }
  1087. else
  1088. {
  1089. Ret.IsBingNum = 0;
  1090. CDBVarValue DBVarValue;
  1091. m_GameDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  1092. Ret.dwCurrency = m_GameDBAide.GetValue_WORD(TEXT("Currency"));
  1093. Ret.IsBingXianLiao = m_GameDBAide.GetValue_BYTE(TEXT("IsXianLiao"));
  1094. _sntprintf(szDescribeString, 127, TEXT("%s"), static_cast<LPCWSTR>(DBVarValue.bstrVal));
  1095. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(616))
  1096. {
  1097. //提示消息
  1098. CTraceService::TraceString(szDescribeString, TraceLevel_Normal);
  1099. }
  1100. }
  1101. m_pIDataBaseEngineEvent->OnEventDataBaseResult(SUB_GR_USER_CHECK_IPHONE_QUERY, dwContextID, &Ret, sizeof(CMD_GR_CheckIphone_Query));
  1102. double dRet = Start.End();
  1103. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  1104. {
  1105. CString csTest;
  1106. csTest.Format(_T("存储过程耗时 GSP_GR_CheckIphone_Query ----> %.3f "), dRet);
  1107. //提示消息
  1108. CTraceService::TraceString(csTest, TraceLevel_Normal);
  1109. }
  1110. return true;
  1111. }
  1112. catch (IDataBaseException * pIException)
  1113. {
  1114. //输出错误
  1115. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  1116. double dRet = Start.End();
  1117. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  1118. {
  1119. CString csTest;
  1120. csTest.Format(_T("存储过程耗时 GSP_GR_CheckIphone_Query ----> %.3f "), dRet);
  1121. //提示消息
  1122. CTraceService::TraceString(csTest, TraceLevel_Normal);
  1123. }
  1124. return true;
  1125. }
  1126. return true;
  1127. }
  1128. //手机号码绑定
  1129. bool CDataBaseEngineSink::onRequestCheckIphone(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  1130. {
  1131. CTraceService::TraceString(TEXT("CDataBaseEngineSink::onRequestCheckIphone"), TraceLevel_Debug);
  1132. CTimer Start;
  1133. try
  1134. {
  1135. DBR_GR_GetCheckIphone *pUserID = (DBR_GR_GetCheckIphone *)pData;
  1136. //构造参数
  1137. m_GameDBAide.ResetParameter();
  1138. //输入参数
  1139. m_GameDBAide.AddParameter(TEXT("UserID"), pUserID->dwUserID);
  1140. m_GameDBAide.AddParameter(TEXT("IphoneNum"), pUserID->PhoneNum);
  1141. m_GameDBAide.AddParameter(TEXT("VerfCode"), pUserID->VerfCode);
  1142. TCHAR szDescribeString[127];
  1143. ZeroMemory(szDescribeString, 127 * sizeof(TCHAR));
  1144. //输出参数
  1145. m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  1146. //执行查询
  1147. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_CheckIphone"), true);
  1148. //结果处理
  1149. CMD_GR_CheckIphone Ret;
  1150. ZeroMemory(&Ret, sizeof(CMD_GR_CheckIphone));
  1151. if (lResultCode == DB_SUCCESS)
  1152. {
  1153. if (m_GameDBModule->IsRecordsetEnd() == false)
  1154. {
  1155. Ret.IsBingNum = 1;
  1156. Ret.dwCurrency = m_GameDBAide.GetValue_WORD(TEXT("Currency"));
  1157. _sntprintf(Ret.PhoneNum, 11, TEXT("%s"), pUserID->PhoneNum);
  1158. Ret.PhoneNum[11] = 0;
  1159. }
  1160. }
  1161. else if (lResultCode == 2)
  1162. {
  1163. Ret.IsBingNum = 1;
  1164. Ret.dwCurrency = m_GameDBAide.GetValue_WORD(TEXT("Currency"));
  1165. _sntprintf(Ret.PhoneNum, 11, TEXT("%s"), pUserID->PhoneNum);
  1166. Ret.PhoneNum[11] = 0;
  1167. }
  1168. else
  1169. {
  1170. Ret.IsBingNum = 0;
  1171. CDBVarValue DBVarValue;
  1172. m_GameDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  1173. _sntprintf(szDescribeString, 127, TEXT("%s"), static_cast<LPCWSTR>(DBVarValue.bstrVal));
  1174. CTraceService::TraceString(szDescribeString, TraceLevel_Warning);
  1175. _sntprintf(Ret.PhoneNum, 11, TEXT("%s"), szDescribeString);
  1176. Ret.PhoneNum[11] = 0;
  1177. }
  1178. m_pIDataBaseEngineEvent->OnEventDataBaseResult(SUB_GR_USER_CHECK_IPHONE, dwContextID, &Ret, sizeof(CMD_GR_CheckIphone));
  1179. double dRet = Start.End();
  1180. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  1181. {
  1182. CString csTest;
  1183. csTest.Format(_T("存储过程耗时 GSP_GR_CheckIphone ----> %.3f "), dRet);
  1184. //提示消息
  1185. CTraceService::TraceString(csTest, TraceLevel_Normal);
  1186. }
  1187. return true;
  1188. }
  1189. catch (IDataBaseException * pIException)
  1190. {
  1191. //输出错误
  1192. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  1193. double dRet = Start.End();
  1194. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  1195. {
  1196. CString csTest;
  1197. csTest.Format(_T("存储过程耗时 GSP_GR_CheckIphone ----> %.3f "), dRet);
  1198. //提示消息
  1199. CTraceService::TraceString(csTest, TraceLevel_Normal);
  1200. }
  1201. return true;
  1202. }
  1203. return true;
  1204. }
  1205. //闲聊绑定
  1206. bool CDataBaseEngineSink::onRequestCheckXianLiao(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  1207. {
  1208. CTraceService::TraceString(TEXT("CDataBaseEngineSink::onRequestCheckIphone"), TraceLevel_Debug);
  1209. CTimer Start;
  1210. try
  1211. {
  1212. DBR_GR_GetCheckXianLiao *pUserID = (DBR_GR_GetCheckXianLiao *)pData;
  1213. //构造参数
  1214. m_GameDBAide.ResetParameter();
  1215. //输入参数
  1216. m_GameDBAide.AddParameter(TEXT("UserID"), pUserID->dwUserID);
  1217. m_GameDBAide.AddParameter(TEXT("UserOpenID"), pUserID->OpenID);
  1218. TCHAR szDescribeString[127];
  1219. ZeroMemory(szDescribeString, 127 * sizeof(TCHAR));
  1220. //输出参数
  1221. m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  1222. //执行查询
  1223. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_CheckXianLiao"), true);
  1224. //结果处理
  1225. CMD_GR_CheckIphone Ret;
  1226. ZeroMemory(&Ret, sizeof(CMD_GR_CheckIphone));
  1227. if (lResultCode == DB_SUCCESS)
  1228. {
  1229. if (m_GameDBModule->IsRecordsetEnd() == false)
  1230. {
  1231. Ret.IsBingNum = 1;
  1232. Ret.dwCurrency = m_GameDBAide.GetValue_WORD(TEXT("Currency"));
  1233. }
  1234. }
  1235. else if (lResultCode == 2)
  1236. {
  1237. Ret.IsBingNum = 1;
  1238. Ret.dwCurrency = m_GameDBAide.GetValue_WORD(TEXT("Currency"));
  1239. }
  1240. else
  1241. {
  1242. Ret.IsBingNum = 0;
  1243. CDBVarValue DBVarValue;
  1244. m_GameDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  1245. _sntprintf(szDescribeString, 127, TEXT("%s"), static_cast<LPCWSTR>(DBVarValue.bstrVal));
  1246. CTraceService::TraceString(szDescribeString, TraceLevel_Warning);
  1247. _sntprintf(Ret.PhoneNum, 11, TEXT("%s"), szDescribeString);
  1248. }
  1249. m_pIDataBaseEngineEvent->OnEventDataBaseResult(SUB_GR_USER_CHECK_IPHONE, dwContextID, &Ret, sizeof(CMD_GR_CheckIphone));
  1250. double dRet = Start.End();
  1251. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  1252. {
  1253. CString csTest;
  1254. csTest.Format(_T("存储过程耗时 GSP_GR_CheckXianLiao ----> %.3f "), dRet);
  1255. //提示消息
  1256. CTraceService::TraceString(csTest, TraceLevel_Normal);
  1257. }
  1258. return true;
  1259. }
  1260. catch (IDataBaseException * pIException)
  1261. {
  1262. //输出错误
  1263. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  1264. double dRet = Start.End();
  1265. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  1266. {
  1267. CString csTest;
  1268. csTest.Format(_T("存储过程耗时 GSP_GR_CheckXianLiao ----> %.3f "), dRet);
  1269. //提示消息
  1270. CTraceService::TraceString(csTest, TraceLevel_Normal);
  1271. }
  1272. return true;
  1273. }
  1274. return true;
  1275. }
  1276. //手机登录
  1277. bool CDataBaseEngineSink::OnRequestLogonMobile(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  1278. {
  1279. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestLogonMobile"), TraceLevel_Debug);
  1280. //执行查询
  1281. DBR_GR_LogonMobile * pLogonMobile = (DBR_GR_LogonMobile *)pData;
  1282. dwUserID = pLogonMobile->dwUserID;
  1283. CTimer Start;
  1284. try
  1285. {
  1286. //效验参数
  1287. ASSERT(wDataSize == sizeof(DBR_GR_LogonMobile));
  1288. if (wDataSize != sizeof(DBR_GR_LogonMobile)) return false;
  1289. //转化地址
  1290. TCHAR szClientAddr[16] = TEXT("");
  1291. BYTE * pClientAddr = (BYTE *)&pLogonMobile->dwClientAddr;
  1292. _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]);
  1293. //构造参数
  1294. m_GameDBAide.ResetParameter();
  1295. m_GameDBAide.AddParameter(TEXT("@dwUserID"), pLogonMobile->dwUserID);
  1296. m_GameDBAide.AddParameter(TEXT("@strPassword"), pLogonMobile->szPassword);
  1297. m_GameDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr);
  1298. m_GameDBAide.AddParameter(TEXT("@strMachineID"), pLogonMobile->szMachineID);
  1299. m_GameDBAide.AddParameter(TEXT("@wKindID"), m_pGameServiceOption->wKindID);
  1300. m_GameDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID);
  1301. m_GameDBAide.AddParameter(TEXT("@dX"), pLogonMobile->dX);
  1302. m_GameDBAide.AddParameter(TEXT("@dY"), pLogonMobile->dY);
  1303. m_GameDBAide.AddParameter(TEXT("@szChengShi"), pLogonMobile->szChengShi);
  1304. //比赛参数
  1305. //if ((m_pGameServiceOption->wServerType&GAME_GENRE_MATCH) != 0)
  1306. //{
  1307. // m_GameDBAide.AddParameter(TEXT("@dwMatchID"), pLogonMobile->dwMatchID);
  1308. // m_GameDBAide.AddParameter(TEXT("@dwMatchNO"), pLogonMobile->dwMatchNO);
  1309. //}
  1310. //输出参数
  1311. m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), m_LogonFailure.szDescribeString, sizeof(m_LogonFailure.szDescribeString), adParamOutput);
  1312. //执行查询
  1313. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_EfficacyMobile"), true);
  1314. //用户信息
  1315. ZeroMemory(&m_LogonSuccess, sizeof(m_LogonSuccess));
  1316. lstrcpyn(m_LogonSuccess.szPassword, pLogonMobile->szPassword, CountArray(m_LogonSuccess.szPassword));
  1317. lstrcpyn(m_LogonSuccess.szMachineID, pLogonMobile->szMachineID, CountArray(m_LogonSuccess.szMachineID));
  1318. m_LogonSuccess.cbDeviceType = pLogonMobile->cbDeviceType;
  1319. m_LogonSuccess.wBehaviorFlags = pLogonMobile->wBehaviorFlags;
  1320. m_LogonSuccess.wPageTableCount = pLogonMobile->wPageTableCount;
  1321. m_LogonSuccess.dX = pLogonMobile->dX;
  1322. m_LogonSuccess.dY = pLogonMobile->dY;
  1323. _sntprintf(m_LogonSuccess.szChengShi, CountArray(m_LogonSuccess.szChengShi), TEXT("%s"), pLogonMobile->szChengShi);
  1324. //结果处理
  1325. CDBVarValue DBVarValue;
  1326. m_GameDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  1327. OnLogonDisposeResult(dwContextID, lResultCode, CW2CT(DBVarValue.bstrVal), true, pLogonMobile->cbDeviceType, pLogonMobile->wBehaviorFlags, pLogonMobile->wPageTableCount);
  1328. double dRet = Start.End();
  1329. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  1330. {
  1331. CString csTest;
  1332. csTest.Format(_T("存储过程耗时 GSP_GR_EfficacyMobile ----> %.3f "), dRet);
  1333. //提示消息
  1334. CTraceService::TraceString(csTest, TraceLevel_Normal);
  1335. }
  1336. return true;
  1337. }
  1338. catch (IDataBaseException * pIException)
  1339. {
  1340. //错误信息
  1341. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  1342. //错误处理
  1343. OnLogonDisposeResult(dwContextID, DB_ERROR, TEXT("由于数据库操作异常,请您稍后重试或选择另一服务器登录!"), true);
  1344. double dRet = Start.End();
  1345. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  1346. {
  1347. CString csTest;
  1348. csTest.Format(_T("存储过程耗时 GSP_GR_EfficacyMobile ----> %.3f "), dRet);
  1349. //提示消息
  1350. CTraceService::TraceString(csTest, TraceLevel_Normal);
  1351. }
  1352. return true;
  1353. }
  1354. return true;
  1355. }
  1356. //游戏写临时分记录
  1357. bool CDataBaseEngineSink::OnRequestWriteGameTempScoreRecord(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  1358. {
  1359. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestWriteGameTempScoreRecord"), TraceLevel_Debug);
  1360. //请求处理
  1361. DBR_GR_WriteGameTemporaryScore * pWriteGameScore = (DBR_GR_WriteGameTemporaryScore *)pData;
  1362. dwUserID = pWriteGameScore->dwUserID;
  1363. CTimer Start;
  1364. try
  1365. {
  1366. //效验参数
  1367. ASSERT(wDataSize == sizeof(DBR_GR_WriteGameTemporaryScore));
  1368. if (wDataSize != sizeof(DBR_GR_WriteGameTemporaryScore)) return false;
  1369. //转化地址
  1370. //TCHAR szClientAddr[16] = TEXT("");
  1371. //BYTE * pClientAddr = (BYTE *)&pWriteGameScore->dwClientAddr;
  1372. //_sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]);
  1373. //构造参数
  1374. m_GameDBAide.ResetParameter();
  1375. //用户信息
  1376. m_GameDBAide.AddParameter(TEXT("@dwUserID"), pWriteGameScore->dwUserID);
  1377. //变更成绩
  1378. //m_GameDBAide.AddParameter(TEXT("@lScore"), pWriteGameScore->lScore);
  1379. //m_GameDBAide.AddParameter(TEXT("@lWinCount"), pWriteGameScore->dwWinCount);
  1380. //m_GameDBAide.AddParameter(TEXT("@lLostCount"), pWriteGameScore->dwLostCount);
  1381. //m_GameDBAide.AddParameter(TEXT("@dwPlayTimeCount"), pWriteGameScore->dwPlayTimeCount);
  1382. ////属性信息
  1383. //m_GameDBAide.AddParameter(TEXT("@wKindID"), m_pGameServiceOption->wKindID);
  1384. //m_GameDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID);
  1385. //m_GameDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr);
  1386. //执行查询
  1387. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_WriteGameTemporaryScoreRecord"), false);
  1388. double dRet = Start.End();
  1389. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  1390. {
  1391. CString csTest;
  1392. csTest.Format(_T("存储过程耗时 TemporaryScoreRecord ----> %.3f "), dRet);
  1393. //提示消息
  1394. CTraceService::TraceString(csTest, TraceLevel_Normal);
  1395. }
  1396. return true;
  1397. }
  1398. catch (IDataBaseException * pIException)
  1399. {
  1400. //输出错误
  1401. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  1402. double dRet = Start.End();
  1403. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  1404. {
  1405. CString csTest;
  1406. csTest.Format(_T("存储过程耗时 GSP_GR_WriteGameTemporaryScoreRecord ----> %.3f "), dRet);
  1407. //提示消息
  1408. CTraceService::TraceString(csTest, TraceLevel_Normal);
  1409. }
  1410. return false;
  1411. }
  1412. return true;
  1413. }
  1414. //获取每日临时分排行榜
  1415. bool CDataBaseEngineSink::OnRequestGetGameTempScoreRecordRankList(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  1416. {
  1417. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetGameTempScoreRecordRankList"), TraceLevel_Debug);
  1418. CTimer Start;
  1419. try
  1420. {
  1421. //构造参数
  1422. m_GameDBAide.ResetParameter();
  1423. SYSTEMTIME nowTime;
  1424. CTime::GetCurrentTime().GetAsSystemTime(nowTime);
  1425. //获取当前时间
  1426. m_GameDBAide.AddParameter(TEXT("@queryDate"), nowTime);
  1427. //获取前100名玩家
  1428. m_GameDBAide.AddParameter(TEXT("@wNum"), 100);
  1429. //执行查询
  1430. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_GetGameTemporaryScoreRecords"), true);
  1431. CMD_GR_USER_GET_GAME_TEMP_SCORE_RANKLIST_RESULT resp;
  1432. resp.wRankListCount = m_GameDBModule->GetRecordCount();
  1433. int totalSize = resp.wRankListCount * sizeof(tagUserRankListInfo) + sizeof(CMD_GR_USER_GET_GAME_TEMP_SCORE_RANKLIST_RESULT);
  1434. char* data = new char[totalSize];
  1435. CopyMemory(data, &resp, sizeof(resp));
  1436. int offset = sizeof(CMD_GR_USER_GET_GAME_TEMP_SCORE_RANKLIST_RESULT);
  1437. while (m_GameDBModule->IsRecordsetEnd() == false)
  1438. {
  1439. tagUserRankListInfo info;
  1440. ZeroMemory(&info, sizeof(info));
  1441. info.dwUserID = m_GameDBAide.GetValue_DWORD(TEXT("UserID"));
  1442. m_GameDBAide.GetValue_String(TEXT("NickName"), info.szNickName, LEN_NICKNAME);
  1443. m_GameDBAide.GetValue_String(TEXT("HeadUrl"), info.szHeadUrl, LEN_HEAD_URL);
  1444. info.lScore = m_GameDBAide.GetValue_INT(TEXT("TempScoreChange"));
  1445. info.wWinCount = m_GameDBAide.GetValue_WORD(TEXT("WinCount"));
  1446. info.wLostCount = m_GameDBAide.GetValue_WORD(TEXT("LostCount"));
  1447. CopyMemory(data + offset, &info, sizeof(tagUserRankListInfo));
  1448. offset += sizeof(tagUserRankListInfo);
  1449. m_GameDBModule->MoveToNext();
  1450. }
  1451. m_pIDataBaseEngineEvent->OnEventDataBaseResult(SUB_GR_USER_GET_GAME_TEMP_SCORE_RANKLIST_RESULT, dwContextID, data, totalSize);
  1452. //内存修改
  1453. SafeDeleteArray(data);
  1454. double dRet = Start.End();
  1455. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  1456. {
  1457. CString csTest;
  1458. csTest.Format(_T("存储过程耗时 GSP_GR_GetGameTemporaryScoreRecords ----> %.3f "), dRet);
  1459. //提示消息
  1460. CTraceService::TraceString(csTest, TraceLevel_Normal);
  1461. }
  1462. return true;
  1463. }
  1464. catch (IDataBaseException * pIException)
  1465. {
  1466. //输出错误
  1467. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  1468. double dRet = Start.End();
  1469. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  1470. {
  1471. CString csTest;
  1472. csTest.Format(_T("存储过程耗时 GSP_GR_GetGameTemporaryScoreRecords ----> %.3f "), dRet);
  1473. //提示消息
  1474. CTraceService::TraceString(csTest, TraceLevel_Normal);
  1475. }
  1476. return false;
  1477. }
  1478. return true;
  1479. }
  1480. //游戏写分
  1481. bool CDataBaseEngineSink::OnRequestWriteGameScore(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  1482. {
  1483. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestWriteGameScore"), TraceLevel_Debug);
  1484. //请求处理
  1485. DBR_GR_WriteGameScore * pWriteGameScore = (DBR_GR_WriteGameScore *)pData;
  1486. dwUserID = pWriteGameScore->dwUserID;
  1487. CTimer Start;
  1488. try
  1489. {
  1490. //效验参数
  1491. ASSERT(wDataSize == sizeof(DBR_GR_WriteGameScore));
  1492. if (wDataSize != sizeof(DBR_GR_WriteGameScore)) return false;
  1493. //转化地址
  1494. TCHAR szClientAddr[16] = TEXT("");
  1495. BYTE * pClientAddr = (BYTE *)&pWriteGameScore->dwClientAddr;
  1496. _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]);
  1497. //构造参数
  1498. m_GameDBAide.ResetParameter();
  1499. //用户信息
  1500. m_GameDBAide.AddParameter(TEXT("@dwUserID"), pWriteGameScore->dwUserID);
  1501. m_GameDBAide.AddParameter(TEXT("@dwDBQuestID"), pWriteGameScore->dwDBQuestID);
  1502. m_GameDBAide.AddParameter(TEXT("@dwInoutIndex"), pWriteGameScore->dwInoutIndex);
  1503. //变更成绩
  1504. m_GameDBAide.AddParameter(TEXT("@lScore"), pWriteGameScore->VariationInfo.lScore);
  1505. m_GameDBAide.AddParameter(TEXT("@lGrade"), pWriteGameScore->VariationInfo.lGrade);
  1506. m_GameDBAide.AddParameter(TEXT("@lInsure"), pWriteGameScore->VariationInfo.lInsure);
  1507. m_GameDBAide.AddParameter(TEXT("@lRevenue"), pWriteGameScore->VariationInfo.lRevenue);
  1508. m_GameDBAide.AddParameter(TEXT("@lWinCount"), pWriteGameScore->VariationInfo.dwWinCount);
  1509. m_GameDBAide.AddParameter(TEXT("@lLostCount"), pWriteGameScore->VariationInfo.dwLostCount);
  1510. m_GameDBAide.AddParameter(TEXT("@lDrawCount"), pWriteGameScore->VariationInfo.dwDrawCount);
  1511. m_GameDBAide.AddParameter(TEXT("@lFleeCount"), pWriteGameScore->VariationInfo.dwFleeCount);
  1512. m_GameDBAide.AddParameter(TEXT("@lUserMedal"), pWriteGameScore->VariationInfo.lIngot);
  1513. m_GameDBAide.AddParameter(TEXT("@lExperience"), pWriteGameScore->VariationInfo.dwExperience);
  1514. m_GameDBAide.AddParameter(TEXT("@lLoveLiness"), pWriteGameScore->VariationInfo.lLoveLiness);
  1515. m_GameDBAide.AddParameter(TEXT("@dwPlayTimeCount"), pWriteGameScore->VariationInfo.dwPlayTimeCount);
  1516. //任务参数
  1517. m_GameDBAide.AddParameter(TEXT("@cbTaskForward"), pWriteGameScore->bTaskForward);
  1518. //比赛参数
  1519. if ((m_pGameServiceOption->wServerType&GAME_GENRE_MATCH) != 0)
  1520. {
  1521. //比赛信息
  1522. m_GameDBAide.AddParameter(TEXT("@dwMatchID"), pWriteGameScore->dwMatchID);
  1523. m_GameDBAide.AddParameter(TEXT("@dwMatchNo"), pWriteGameScore->dwMatchNO);
  1524. }
  1525. //属性信息
  1526. m_GameDBAide.AddParameter(TEXT("@wKindID"), m_pGameServiceOption->wKindID);
  1527. m_GameDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID);
  1528. m_GameDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr);
  1529. //执行查询
  1530. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_WriteGameScore"), false);
  1531. double dRet = Start.End();
  1532. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  1533. {
  1534. CString csTest;
  1535. csTest.Format(_T("存储过程耗时 GSP_GR_WriteGameScore ----> %.3f "), dRet);
  1536. //提示消息
  1537. CTraceService::TraceString(csTest, TraceLevel_Normal);
  1538. }
  1539. return true;
  1540. }
  1541. catch (IDataBaseException * pIException)
  1542. {
  1543. //输出错误
  1544. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  1545. double dRet = Start.End();
  1546. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  1547. {
  1548. CString csTest;
  1549. csTest.Format(_T("存储过程耗时 GSP_GR_WriteGameScore ----> %.3f "), dRet);
  1550. //提示消息
  1551. CTraceService::TraceString(csTest, TraceLevel_Normal);
  1552. }
  1553. return false;
  1554. }
  1555. return true;
  1556. }
  1557. //离开房间
  1558. bool CDataBaseEngineSink::OnRequestLeaveGameServer(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  1559. {
  1560. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestLeaveGameServer"), TraceLevel_Debug);
  1561. //请求处理
  1562. DBR_GR_LeaveGameServer * pLeaveGameServer = (DBR_GR_LeaveGameServer *)pData;
  1563. dwUserID = pLeaveGameServer->dwUserID;
  1564. CTimer Start;
  1565. try
  1566. {
  1567. //效验参数
  1568. ASSERT(wDataSize == sizeof(DBR_GR_LeaveGameServer));
  1569. if (wDataSize != sizeof(DBR_GR_LeaveGameServer)) return false;
  1570. //转化地址
  1571. TCHAR szClientAddr[16] = TEXT("");
  1572. BYTE * pClientAddr = (BYTE *)&pLeaveGameServer->dwClientAddr;
  1573. _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]);
  1574. //构造参数
  1575. m_GameDBAide.ResetParameter();
  1576. //用户信息
  1577. m_GameDBAide.AddParameter(TEXT("@dwUserID"), pLeaveGameServer->dwUserID);
  1578. m_GameDBAide.AddParameter(TEXT("@dwOnLineTimeCount"), pLeaveGameServer->dwOnLineTimeCount);
  1579. //系统信息
  1580. m_GameDBAide.AddParameter(TEXT("@dwInoutIndex"), pLeaveGameServer->dwInoutIndex);
  1581. m_GameDBAide.AddParameter(TEXT("@dwLeaveReason"), pLeaveGameServer->dwLeaveReason);
  1582. //记录成绩
  1583. m_GameDBAide.AddParameter(TEXT("@lRecordScore"), pLeaveGameServer->RecordInfo.lScore);
  1584. m_GameDBAide.AddParameter(TEXT("@lRecordGrade"), pLeaveGameServer->RecordInfo.lGrade);
  1585. m_GameDBAide.AddParameter(TEXT("@lRecordInsure"), pLeaveGameServer->RecordInfo.lInsure);
  1586. m_GameDBAide.AddParameter(TEXT("@lRecordRevenue"), pLeaveGameServer->RecordInfo.lRevenue);
  1587. m_GameDBAide.AddParameter(TEXT("@lRecordWinCount"), pLeaveGameServer->RecordInfo.dwWinCount);
  1588. m_GameDBAide.AddParameter(TEXT("@lRecordLostCount"), pLeaveGameServer->RecordInfo.dwLostCount);
  1589. m_GameDBAide.AddParameter(TEXT("@lRecordDrawCount"), pLeaveGameServer->RecordInfo.dwDrawCount);
  1590. m_GameDBAide.AddParameter(TEXT("@lRecordFleeCount"), pLeaveGameServer->RecordInfo.dwFleeCount);
  1591. m_GameDBAide.AddParameter(TEXT("@lRecordUserMedal"), pLeaveGameServer->RecordInfo.lIngot);
  1592. m_GameDBAide.AddParameter(TEXT("@lRecordExperience"), pLeaveGameServer->RecordInfo.dwExperience);
  1593. m_GameDBAide.AddParameter(TEXT("@lRecordLoveLiness"), pLeaveGameServer->RecordInfo.lLoveLiness);
  1594. m_GameDBAide.AddParameter(TEXT("@dwRecordPlayTimeCount"), pLeaveGameServer->RecordInfo.dwPlayTimeCount);
  1595. //变更成绩
  1596. m_GameDBAide.AddParameter(TEXT("@lVariationScore"), pLeaveGameServer->VariationInfo.lScore);
  1597. m_GameDBAide.AddParameter(TEXT("@lVariationGrade"), pLeaveGameServer->VariationInfo.lGrade);
  1598. m_GameDBAide.AddParameter(TEXT("@lVariationInsure"), pLeaveGameServer->VariationInfo.lInsure);
  1599. m_GameDBAide.AddParameter(TEXT("@lVariationRevenue"), pLeaveGameServer->VariationInfo.lRevenue);
  1600. m_GameDBAide.AddParameter(TEXT("@lVariationWinCount"), pLeaveGameServer->VariationInfo.dwWinCount);
  1601. m_GameDBAide.AddParameter(TEXT("@lVariationLostCount"), pLeaveGameServer->VariationInfo.dwLostCount);
  1602. m_GameDBAide.AddParameter(TEXT("@lVariationDrawCount"), pLeaveGameServer->VariationInfo.dwDrawCount);
  1603. m_GameDBAide.AddParameter(TEXT("@lVariationFleeCount"), pLeaveGameServer->VariationInfo.dwFleeCount);
  1604. m_GameDBAide.AddParameter(TEXT("@lVariationUserMedal"), pLeaveGameServer->VariationInfo.lIngot);
  1605. m_GameDBAide.AddParameter(TEXT("@lVariationExperience"), pLeaveGameServer->VariationInfo.dwExperience);
  1606. m_GameDBAide.AddParameter(TEXT("@lVariationLoveLiness"), pLeaveGameServer->VariationInfo.lLoveLiness);
  1607. m_GameDBAide.AddParameter(TEXT("@dwVariationPlayTimeCount"), pLeaveGameServer->VariationInfo.dwPlayTimeCount);
  1608. //其他参数
  1609. m_GameDBAide.AddParameter(TEXT("@wKindID"), m_pGameServiceOption->wKindID);
  1610. m_GameDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID);
  1611. m_GameDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr);
  1612. m_GameDBAide.AddParameter(TEXT("@strMachineID"), pLeaveGameServer->szMachineID);
  1613. //执行查询
  1614. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_LeaveGameServer"), false);
  1615. double dRet = Start.End();
  1616. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  1617. {
  1618. CString csTest;
  1619. csTest.Format(_T("存储过程耗时 GSP_GR_LeaveGameServer ----> %.3f "), dRet);
  1620. //提示消息
  1621. CTraceService::TraceString(csTest, TraceLevel_Normal);
  1622. }
  1623. return true;
  1624. }
  1625. catch (IDataBaseException * pIException)
  1626. {
  1627. //输出错误
  1628. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  1629. double dRet = Start.End();
  1630. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  1631. {
  1632. CString csTest;
  1633. csTest.Format(_T("存储过程耗时 GSP_GR_LeaveGameServer ----> %.3f "), dRet);
  1634. //提示消息
  1635. CTraceService::TraceString(csTest, TraceLevel_Normal);
  1636. }
  1637. return false;
  1638. }
  1639. return true;
  1640. }
  1641. //游戏记录
  1642. bool CDataBaseEngineSink::OnRequestGameScoreRecord(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  1643. {
  1644. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGameScoreRecord"), TraceLevel_Debug);
  1645. CTimer Start;
  1646. try
  1647. {
  1648. //变量定义
  1649. DBR_GR_GameScoreRecordEx * pGameScoreRecord = (DBR_GR_GameScoreRecordEx *)pData;
  1650. dwUserID = INVALID_DWORD;
  1651. //效验参数
  1652. ASSERT(wDataSize <= (sizeof(DBR_GR_GameScoreRecord) + pGameScoreRecord->wRePlayRecordSize));
  1653. ASSERT(wDataSize >= (sizeof(DBR_GR_GameScoreRecord) - sizeof(pGameScoreRecord->GameScoreRecord)));
  1654. ASSERT(wDataSize == (sizeof(DBR_GR_GameScoreRecord) - sizeof(pGameScoreRecord->GameScoreRecord) + pGameScoreRecord->wRecordCount * sizeof(pGameScoreRecord->GameScoreRecord[0]) + pGameScoreRecord->wRePlayRecordSize));
  1655. //效验参数
  1656. if (wDataSize > (sizeof(DBR_GR_GameScoreRecord) + pGameScoreRecord->wRePlayRecordSize)) return false;
  1657. if (wDataSize < (sizeof(DBR_GR_GameScoreRecord) - sizeof(pGameScoreRecord->GameScoreRecord))) return false;
  1658. if (wDataSize != (sizeof(DBR_GR_GameScoreRecord) - sizeof(pGameScoreRecord->GameScoreRecord) + pGameScoreRecord->wRecordCount * sizeof(pGameScoreRecord->GameScoreRecord[0]) + pGameScoreRecord->wRePlayRecordSize)) return false;
  1659. //房间信息
  1660. m_GameDBAide.ResetParameter();
  1661. m_GameDBAide.AddParameter(TEXT("@wKindID"), m_pGameServiceOption->wKindID);
  1662. m_GameDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID);
  1663. //桌子信息
  1664. m_GameDBAide.AddParameter(TEXT("@wTableID"), pGameScoreRecord->wTableID);
  1665. m_GameDBAide.AddParameter(TEXT("@wUserCount"), pGameScoreRecord->wUserCount);
  1666. m_GameDBAide.AddParameter(TEXT("@wAndroidCount"), pGameScoreRecord->wAndroidCount);
  1667. //税收损耗
  1668. m_GameDBAide.AddParameter(TEXT("@lWasteCount"), pGameScoreRecord->lWasteCount);
  1669. m_GameDBAide.AddParameter(TEXT("@lRevenueCount"), pGameScoreRecord->lRevenueCount);
  1670. //统计信息
  1671. m_GameDBAide.AddParameter(TEXT("@dwUserMemal"), pGameScoreRecord->UserMemal);
  1672. m_GameDBAide.AddParameter(TEXT("@dwPlayTimeCount"), pGameScoreRecord->dwPlayTimeCount);
  1673. //时间信息
  1674. m_GameDBAide.AddParameter(TEXT("@SystemTimeStart"), pGameScoreRecord->SystemTimeStart);
  1675. m_GameDBAide.AddParameter(TEXT("@SystemTimeConclude"), pGameScoreRecord->SystemTimeConclude);
  1676. m_GameDBAide.AddParameter(TEXT("@wParentID"), pGameScoreRecord->wPrivateTableParentNodeID);
  1677. m_GameDBAide.AddParameter(TEXT("@bUpdateParent"), pGameScoreRecord->cbUpdateParent);
  1678. m_GameDBAide.AddParameter(TEXT("@szPrivateTableID"), pGameScoreRecord->szPrivateTableID);
  1679. //执行查询
  1680. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_RecordDrawInfo"), true);
  1681. //写入记录
  1682. if (lResultCode == DB_SUCCESS)
  1683. {
  1684. //获取标识
  1685. DWORD dwDrawID = m_GameDBAide.GetValue_DWORD(TEXT("DrawID"));
  1686. if (pGameScoreRecord->wRePlayRecordSize > 0)
  1687. {
  1688. //房间信息
  1689. m_GameDBAide.ResetParameter();
  1690. m_GameDBAide.AddParameter(TEXT("@DrawID"), dwDrawID);
  1691. m_GameDBAide.AddParameter(TEXT("@ReplayRecordSize"), pGameScoreRecord->wRePlayRecordSize);
  1692. WORD wHeadSize = sizeof(DBR_GR_GameScoreRecord) - sizeof(pGameScoreRecord->GameScoreRecord);
  1693. WORD wDataSize = sizeof(pGameScoreRecord->GameScoreRecord[0])*pGameScoreRecord->wRecordCount;
  1694. char* pReplayRecordData = (char*)pData + wHeadSize + wDataSize;
  1695. //CMD_GR_ReplayRecordResp2* pReq = (CMD_GR_ReplayRecordResp2*)pReplayRecordData;
  1696. //变量定义
  1697. SAFEARRAYBOUND SafeArrayBound;
  1698. ZeroMemory(&SafeArrayBound, sizeof(SafeArrayBound));
  1699. //设置变量
  1700. SafeArrayBound.lLbound = 0L;
  1701. SafeArrayBound.cElements = pGameScoreRecord->wRePlayRecordSize;
  1702. SAFEARRAY * pSafeArray = SafeArrayCreate(VT_UI1, 1, &SafeArrayBound);
  1703. //创建数组
  1704. for (LONG nIndex = 0; nIndex < pGameScoreRecord->wRePlayRecordSize; nIndex++)
  1705. SafeArrayPutElement(pSafeArray, &nIndex, pReplayRecordData + nIndex);
  1706. //设置变量
  1707. VARIANT VarChunk;
  1708. VarChunk.parray = pSafeArray;
  1709. VarChunk.vt = VT_ARRAY | VT_UI1;
  1710. ASSERT(m_GameDBModule.GetInterface() != NULL);
  1711. IDataBase * pIDataBase = m_GameDBModule.GetInterface();
  1712. pIDataBase->AddParameter(TEXT("@ReplayRecord"), adLongVarBinary, adParamInput, pGameScoreRecord->wRePlayRecordSize, CDBVarValue(VarChunk));
  1713. //执行查询
  1714. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_SaveGameReplay"), false);
  1715. }
  1716. //写入记录
  1717. for (WORD i = 0; i < pGameScoreRecord->wRecordCount; i++)
  1718. {
  1719. //当玩法为2人玩法的时候,且数据相同时,就过滤一下战绩存储
  1720. if (i==1 && pGameScoreRecord->GameScoreRecord[1].dwUserID == pGameScoreRecord->GameScoreRecord[2].dwUserID)continue;
  1721. //重置参数
  1722. m_GameDBAide.ResetParameter();
  1723. //房间信息
  1724. m_GameDBAide.AddParameter(TEXT("@dwDrawID"), dwDrawID);
  1725. m_GameDBAide.AddParameter(TEXT("@dwUserID"), pGameScoreRecord->GameScoreRecord[i].dwUserID);
  1726. m_GameDBAide.AddParameter(TEXT("@wChairID"), pGameScoreRecord->GameScoreRecord[i].wChairID);
  1727. TCHAR szBuffer[128] = { 0 };
  1728. ZeroMemory(szBuffer, 128 * sizeof(TCHAR));
  1729. int iRet = BASE64_Encode((const BYTE*)pGameScoreRecord->GameScoreRecord[i].szUserName, 32, szBuffer);
  1730. if (iRet < 0)
  1731. {
  1732. ZeroMemory(szBuffer, 128 * sizeof(TCHAR));
  1733. _sntprintf(szBuffer, 128, TEXT("%s"), TEXT("麻将高手"));
  1734. }
  1735. m_GameDBAide.AddParameter(TEXT("@UserName"), szBuffer);
  1736. //用户信息
  1737. m_GameDBAide.AddParameter(TEXT("@dwDBQuestID"), pGameScoreRecord->GameScoreRecord[i].dwDBQuestID);
  1738. m_GameDBAide.AddParameter(TEXT("@dwInoutIndex"), pGameScoreRecord->GameScoreRecord[i].dwInoutIndex);
  1739. //成绩信息
  1740. m_GameDBAide.AddParameter(TEXT("@lScore"), pGameScoreRecord->GameScoreRecord[i].lScore);
  1741. m_GameDBAide.AddParameter(TEXT("@lGrade"), pGameScoreRecord->GameScoreRecord[i].lGrade);
  1742. m_GameDBAide.AddParameter(TEXT("@lRevenue"), pGameScoreRecord->GameScoreRecord[i].lRevenue);
  1743. m_GameDBAide.AddParameter(TEXT("@dwUserMedal"), pGameScoreRecord->GameScoreRecord[i].dwUserMemal);
  1744. m_GameDBAide.AddParameter(TEXT("@dwPlayTimeCount"), pGameScoreRecord->GameScoreRecord[i].dwPlayTimeCount);
  1745. m_GameDBAide.AddParameter(TEXT("@bUpdateParent"), pGameScoreRecord->cbUpdateParent);
  1746. m_GameDBAide.AddParameter(TEXT("@Head"), pGameScoreRecord->GameScoreRecord[i].szHeadImg);
  1747. //执行查询
  1748. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_RecordDrawScore"), false);
  1749. }
  1750. //分数写入俱乐部
  1751. if (pGameScoreRecord->cbUpdateParent == 0 && pGameScoreRecord->wTableType == 1)
  1752. {
  1753. //重置参数
  1754. m_GameDBAide.ResetParameter();
  1755. int Temp[4] = { 0 };
  1756. for (BYTE i = 0; i < pGameScoreRecord->wRecordCount; i++)
  1757. {
  1758. Temp[i] = pGameScoreRecord->GameScoreRecord[i].lScore;
  1759. }
  1760. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(302))
  1761. {
  1762. CString csTest1;
  1763. csTest1.Format(_T("玩家结算分数pGameScoreRecord->GameScoreRecord.lScore1 %d %d %d %d %d"), _ttol(pGameScoreRecord->szPrivateTableID), Temp[0], Temp[1], Temp[2], Temp[3]);
  1764. //提示消息
  1765. CTraceService::TraceString(csTest1, TraceLevel_Normal);
  1766. }
  1767. //写入记录
  1768. m_GameDBAide.AddParameter(TEXT("@PrivateTableID"), _ttol(pGameScoreRecord->szPrivateTableID));
  1769. m_GameDBAide.AddParameter(TEXT("@lScore1"), Temp[0]);
  1770. m_GameDBAide.AddParameter(TEXT("@lScore2"), Temp[1]);
  1771. m_GameDBAide.AddParameter(TEXT("@lScore3"), Temp[2]);
  1772. m_GameDBAide.AddParameter(TEXT("@lScore4"), Temp[3]);
  1773. //执行查询
  1774. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_RecordDrawScore"), false);
  1775. }
  1776. if (pGameScoreRecord->wPrivateTableParentNodeID == 0)
  1777. {//如果是父节点房间,需要返回父节点房间号
  1778. DBR_GR_GameScoreRecordResult ret;
  1779. ret.wTableID = pGameScoreRecord->wTableID;
  1780. ret.wPrivateTableParentNodeID = dwDrawID;
  1781. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_GameScoreRecord_RESULT, dwContextID, &ret, sizeof(ret));
  1782. }
  1783. }
  1784. double dRet = Start.End();
  1785. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  1786. {
  1787. CString csTest;
  1788. csTest.Format(_T("存储过程耗时 GSP_GR_RecordDrawInfo ----> %.3f "), dRet);
  1789. //提示消息
  1790. CTraceService::TraceString(csTest, TraceLevel_Normal);
  1791. }
  1792. }
  1793. catch (IDataBaseException * pIException)
  1794. {
  1795. //输出错误
  1796. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  1797. return false;
  1798. }
  1799. return true;
  1800. }
  1801. bool CDataBaseEngineSink::OnRequestGetUserGameReplayRecord(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  1802. {
  1803. CTimer Start;
  1804. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetUserGameReplayRecord"), TraceLevel_Debug);
  1805. try
  1806. {
  1807. //变量定义
  1808. CMD_GR_ReplayRecordReq * pGameScoreRecord = (CMD_GR_ReplayRecordReq *)pData;
  1809. dwUserID = INVALID_DWORD;
  1810. //效验参数
  1811. ASSERT(wDataSize <= sizeof(CMD_GR_ReplayRecordReq));
  1812. //效验参数
  1813. if (wDataSize > sizeof(CMD_GR_ReplayRecordReq)) return false;
  1814. CMD_GR_ReplayRecordReq* pRecord = (CMD_GR_ReplayRecordReq*)pData;
  1815. //房间信息
  1816. m_GameDBAide.ResetParameter();
  1817. m_GameDBAide.AddParameter(TEXT("@DrawID"), pRecord->dwRecordID);
  1818. //执行查询
  1819. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_GetGameReplay"), true);
  1820. //写入记录
  1821. if (lResultCode == DB_SUCCESS)
  1822. {
  1823. //获取标识
  1824. //读取列表
  1825. _variant_t VarChunk;
  1826. m_GameDBAide.GetValue_VarValue(TEXT("ReplayRecordSize"), VarChunk);
  1827. DWORD wSize = VarChunk;
  1828. //头像信息
  1829. ASSERT(m_GameDBModule.GetInterface() != NULL);
  1830. IDataBase * pIDataBase = m_GameDBModule.GetInterface();
  1831. char* data = new char[wSize];
  1832. ZeroMemory(data, wSize);
  1833. _variant_t VarChunk2;
  1834. m_GameDBAide.GetValue_VarValue(TEXT("ReplayRecord"), VarChunk2);
  1835. if (VarChunk2.vt == (VT_ARRAY | VT_UI1))
  1836. {
  1837. char *pBuf = NULL;
  1838. SafeArrayAccessData(VarChunk2.parray, (void **)&pBuf);
  1839. memcpy(data, pBuf, wSize); ///复制数据到缓冲区m_pBMPBuffer
  1840. SafeArrayUnaccessData(VarChunk2.parray);
  1841. }
  1842. //CMD_GR_ReplayRecordResp2* pReq = (CMD_GR_ReplayRecordResp2*)data;
  1843. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_GET_USER_GAMESCORE_REPLAY_RECORD, dwContextID, data, wSize);
  1844. //内存修改
  1845. SafeDeleteArray(data);
  1846. double dRet = Start.End();
  1847. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  1848. {
  1849. CString csTest;
  1850. csTest.Format(_T("存储过程耗时 GSP_GP_GetGameReplay ----> %.3f "), dRet);
  1851. //提示消息
  1852. CTraceService::TraceString(csTest, TraceLevel_Normal);
  1853. }
  1854. }
  1855. }
  1856. catch (IDataBaseException * pIException)
  1857. {
  1858. //输出错误
  1859. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  1860. double dRet = Start.End();
  1861. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  1862. {
  1863. CString csTest;
  1864. csTest.Format(_T("存储过程耗时 GSP_GP_GetGameReplay ----> %.3f "), dRet);
  1865. //提示消息
  1866. CTraceService::TraceString(csTest, TraceLevel_Normal);
  1867. }
  1868. return false;
  1869. }
  1870. return true;
  1871. }
  1872. //获取游戏记录
  1873. bool CDataBaseEngineSink::OnRequestGetUserGameScoreRecords(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  1874. {
  1875. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetUserGameScoreRecords"), TraceLevel_Debug);
  1876. CTimer Start;
  1877. try
  1878. {
  1879. //效验参数
  1880. ASSERT(wDataSize == sizeof(CMD_GR_GetUserRecordListReq)
  1881. || wDataSize == sizeof(CMD_GR_GetUserRecordListReqNew));
  1882. //效验参数
  1883. if (wDataSize != sizeof(CMD_GR_GetUserRecordListReq)
  1884. && wDataSize != sizeof(CMD_GR_GetUserRecordListReqNew)) return false;
  1885. DWORD dwP = 0;
  1886. int iLen1 = sizeof(CMD_GR_GetUserRecordListReqNew);
  1887. int iLen2 = sizeof(CMD_GR_GetUserRecordListReq);
  1888. CMD_GR_GetUserRecordListReqNew* pRecord = (CMD_GR_GetUserRecordListReqNew*)pData;
  1889. //房间信息
  1890. m_GameDBAide.ResetParameter();
  1891. m_GameDBAide.AddParameter(TEXT("@dwUserID"), pRecord->dwUserID);
  1892. m_GameDBAide.AddParameter(TEXT("@wKindID"), m_pGameServiceOption->wKindID);
  1893. m_GameDBAide.AddParameter(TEXT("@wParentID"), pRecord->wParentID);
  1894. m_GameDBAide.AddParameter(TEXT("@wMinLimit"), pRecord->wLimitIndex);
  1895. m_GameDBAide.AddParameter(TEXT("@wMaxLimit"), pRecord->wLimitIndex + pRecord->wLimitCount);
  1896. dwP = pRecord->wParentID;
  1897. //执行查询
  1898. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_GetRecordDrawInfo"), true);
  1899. //写入记录
  1900. if (lResultCode == DB_SUCCESS)
  1901. {
  1902. //获取标识
  1903. //读取列表
  1904. CMD_GR_GetUserScoreRecordListResp records;
  1905. ZeroMemory(&records, sizeof(CMD_GR_GetUserScoreRecordListResp));
  1906. if (dwP == 0)
  1907. {
  1908. records.wParentRecordID = dwP;
  1909. WORD difen = 0;
  1910. WORD wUserMedal = 0;
  1911. std::unordered_map<DWORD, DWORD> DrawID_2_DiFen; //Socket关联UserID
  1912. //节点
  1913. std::vector<tagGameRecordDrawInfo> GameScoreRecord(m_GameDBModule->GetRecordCount());
  1914. //m_GameDBModule->MoveToFirst();
  1915. int i = 0;
  1916. while (m_GameDBModule->IsRecordsetEnd() == false)
  1917. {
  1918. int iTemp = i;
  1919. tagGameRecordDrawInfo& grdi = GameScoreRecord[i++];
  1920. grdi.dwDrawID = m_GameDBAide.GetValue_DWORD(TEXT("DrawID"));
  1921. grdi.wTableID = m_GameDBAide.GetValue_WORD(TEXT("TableID"));
  1922. m_GameDBAide.GetValue_String(TEXT("PrivateTableID"), grdi.szPrivateTableID, LEN_PRIVATE_TABLE_ID);
  1923. DWORD dTest = m_GameDBAide.GetValue_DWORD(TEXT("UserMedal"));
  1924. WORD* wpData = (WORD*)&dTest;
  1925. grdi.wTableID = wpData[1];
  1926. grdi.wUserMedal = wpData[0];
  1927. difen = grdi.wTableID;
  1928. DrawID_2_DiFen[grdi.dwDrawID] = difen;
  1929. wUserMedal = grdi.wUserMedal;
  1930. GameScoreRecord[iTemp].wTableID = difen;
  1931. GameScoreRecord[iTemp].wUserMedal = wUserMedal;
  1932. grdi.wUserCount = m_GameDBAide.GetValue_WORD(TEXT("UserCount"));
  1933. SYSTEMTIME SystemTimeStart, SystemTimeConclude;
  1934. m_GameDBAide.GetValue_SystemTime(TEXT("StartTime"), SystemTimeStart);
  1935. m_GameDBAide.GetValue_SystemTime(TEXT("ConcludeTime"), SystemTimeConclude);
  1936. CTime StartTime(SystemTimeStart);
  1937. CTime ConcludeTime(SystemTimeConclude);
  1938. grdi.SystemTimeStart = StartTime.GetTime();
  1939. grdi.SystemTimeConclude = ConcludeTime.GetTime();
  1940. grdi.wParentID = m_GameDBAide.GetValue_WORD(TEXT("ParentID"));
  1941. grdi.wWanFa = m_GameDBAide.GetValue_WORD(TEXT("Waste"));
  1942. //移动记录
  1943. m_GameDBModule->MoveToNext();
  1944. }
  1945. records.wRecordCount = GameScoreRecord.size();
  1946. for (int i = 0; i < records.wRecordCount; i++)
  1947. {
  1948. tagGameRecordDrawInfo& grdi = GameScoreRecord[i];
  1949. m_GameDBAide.ResetParameter();
  1950. m_GameDBAide.AddParameter(TEXT("@DrawID"), grdi.dwDrawID);
  1951. int j = 0;
  1952. LONG lResultCode2 = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_GetRecordDrawScore"), true);
  1953. if (lResultCode2 == DB_SUCCESS)
  1954. {
  1955. while (m_GameDBModule->IsRecordsetEnd() == false)
  1956. {
  1957. if (j > 3)
  1958. break;
  1959. //读取数据
  1960. tagGameRecordDrawScore& grds = grdi.GameChairScore[j++];
  1961. grds.dwDrawID = m_GameDBAide.GetValue_DWORD(TEXT("DrawID"));
  1962. grds.dwUserID = m_GameDBAide.GetValue_DWORD(TEXT("UserID"));
  1963. m_GameDBAide.GetValue_String(TEXT("UserImg"), grds.szHeadImg, 255);
  1964. CString csTest = grds.szHeadImg;
  1965. if (csTest == _T("0"))
  1966. {
  1967. ZeroMemory(grds.szHeadImg, 256 * sizeof(TCHAR));
  1968. }
  1969. TCHAR szBuffer[128] = { 0 };
  1970. ZeroMemory(szBuffer, 128 * sizeof(TCHAR));
  1971. m_GameDBAide.GetValue_String(TEXT("UserName"), szBuffer, 128);
  1972. TCHAR szOutBuffer[128] = { 0 };
  1973. ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR));
  1974. //解码
  1975. int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer);
  1976. if (iRet == -1)
  1977. {
  1978. szBuffer[32] = 0x0;
  1979. _sntprintf(grds.szUserName, LEN_NICKNAME, TEXT("%s"), szBuffer);
  1980. }
  1981. else
  1982. {
  1983. szOutBuffer[32] = 0x0;
  1984. _sntprintf(grds.szUserName, LEN_NICKNAME, TEXT("%s"), szOutBuffer);
  1985. }
  1986. grds.wChairID = m_GameDBAide.GetValue_WORD(TEXT("ChairID"));
  1987. grds.lScore = m_GameDBAide.GetValue_LONGLONG(TEXT("Score"));
  1988. grds.lGrade = m_GameDBAide.GetValue_WORD(TEXT("Grade"));
  1989. DWORD dTest = m_GameDBAide.GetValue_DWORD(TEXT("UserMedal"));
  1990. WORD* wpData = (WORD*)&dTest;
  1991. auto iter = DrawID_2_DiFen.find(grds.dwDrawID);
  1992. if (iter == std::end(DrawID_2_DiFen))
  1993. {
  1994. grdi.wTableID = difen;
  1995. }
  1996. else
  1997. {
  1998. grdi.wTableID = DrawID_2_DiFen[grds.dwDrawID];
  1999. }
  2000. grdi.wUserMedal = wUserMedal;
  2001. grds.dwPlayTimeCount = m_GameDBAide.GetValue_WORD(TEXT("PlayTimeCount"));
  2002. //移动记录
  2003. m_GameDBModule->MoveToNext();
  2004. }
  2005. }
  2006. //grdi.wChairCount = j;
  2007. }
  2008. DrawID_2_DiFen.clear();
  2009. int totalSize = sizeof(CMD_GR_GetUserScoreRecordListResp) + sizeof(tagGameRecordDrawInfo)*GameScoreRecord.size();
  2010. char* buff = new char[totalSize];
  2011. memcpy(buff, &records, sizeof(WORD) * 2);
  2012. int offset = sizeof(WORD) * 2;
  2013. for (tagGameRecordDrawInfo& r : GameScoreRecord)
  2014. {
  2015. memcpy(buff + offset, &r, sizeof(tagGameRecordDrawInfo));
  2016. offset += sizeof(tagGameRecordDrawInfo);
  2017. }
  2018. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(4321))
  2019. {
  2020. CString csTest;
  2021. csTest.Format(_T("【OnRequestGetUserGameScoreRecords】获取战绩长度 ----> %d "), totalSize);
  2022. //提示消息
  2023. CTraceService::TraceString(csTest, TraceLevel_Normal);
  2024. }
  2025. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_GET_USER_GAMESCORE_LIST, dwContextID, buff, totalSize);
  2026. //delete buff;
  2027. //内存修改
  2028. SafeDeleteArray(buff);
  2029. }
  2030. else
  2031. {
  2032. records.wParentRecordID = 1;
  2033. //详情
  2034. std::vector<tagGameRecordDrawInfoEx> GameScoreRecord(m_GameDBModule->GetRecordCount());
  2035. int i = 0;
  2036. while (m_GameDBModule->IsRecordsetEnd() == false)
  2037. {
  2038. tagGameRecordDrawInfoEx& grdi = GameScoreRecord[i++];
  2039. grdi.dwDrawID = m_GameDBAide.GetValue_DWORD(TEXT("DrawID"));
  2040. grdi.wTableID = m_GameDBAide.GetValue_WORD(TEXT("TableID"));
  2041. m_GameDBAide.GetValue_String(TEXT("PrivateTableID"), grdi.szPrivateTableID, LEN_PRIVATE_TABLE_ID);
  2042. DWORD dTest = m_GameDBAide.GetValue_DWORD(TEXT("UserMedal"));
  2043. grdi.wUserMedal = dTest;
  2044. grdi.wUserCount = m_GameDBAide.GetValue_WORD(TEXT("UserCount"));
  2045. grdi.wParentID = 1;
  2046. grdi.wWanFa = m_GameDBAide.GetValue_WORD(TEXT("Waste"));
  2047. SYSTEMTIME SystemTimeStart, SystemTimeConclude;
  2048. m_GameDBAide.GetValue_SystemTime(TEXT("StartTime"), SystemTimeStart);
  2049. m_GameDBAide.GetValue_SystemTime(TEXT("ConcludeTime"), SystemTimeConclude);
  2050. CTime StartTime(SystemTimeStart);
  2051. CTime ConcludeTime(SystemTimeConclude);
  2052. grdi.SystemTimeStart = StartTime.GetTime();
  2053. grdi.SystemTimeConclude = ConcludeTime.GetTime();
  2054. //移动记录
  2055. m_GameDBModule->MoveToNext();
  2056. }
  2057. records.wRecordCount = GameScoreRecord.size();
  2058. for (int i = 0; i < records.wRecordCount; i++)
  2059. {
  2060. tagGameRecordDrawInfoEx& grdi = GameScoreRecord[i];
  2061. m_GameDBAide.ResetParameter();
  2062. m_GameDBAide.AddParameter(TEXT("@DrawID"), grdi.dwDrawID);
  2063. int j = 0;
  2064. LONG lResultCode2 = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_GetRecordDrawScore"), true);
  2065. if (lResultCode2 == DB_SUCCESS)
  2066. {
  2067. while (m_GameDBModule->IsRecordsetEnd() == false)
  2068. {
  2069. if (j > 3)
  2070. break;
  2071. //读取数据
  2072. tagGameRecordDrawScoreEx& grds = grdi.GameChairScore[j++];
  2073. grds.dwDrawID = m_GameDBAide.GetValue_DWORD(TEXT("DrawID"));
  2074. grds.dwUserID = m_GameDBAide.GetValue_DWORD(TEXT("UserID"));
  2075. TCHAR szBuffer[128] = { 0 };
  2076. ZeroMemory(szBuffer, 128 * sizeof(TCHAR));
  2077. m_GameDBAide.GetValue_String(TEXT("UserName"), szBuffer, 128);
  2078. TCHAR szOutBuffer[128] = { 0 };
  2079. ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR));
  2080. //解码
  2081. int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer);
  2082. if (iRet == -1)
  2083. {
  2084. szBuffer[32] = 0x0;
  2085. _sntprintf(grds.szUserName, LEN_NICKNAME, TEXT("%s"), szBuffer);
  2086. }
  2087. else
  2088. {
  2089. szOutBuffer[32] = 0x0;
  2090. _sntprintf(grds.szUserName, LEN_NICKNAME, TEXT("%s"), szOutBuffer);
  2091. }
  2092. grds.wChairID = m_GameDBAide.GetValue_WORD(TEXT("ChairID"));
  2093. grds.lScore = m_GameDBAide.GetValue_LONGLONG(TEXT("Score"));
  2094. grds.lGrade = m_GameDBAide.GetValue_WORD(TEXT("Grade"));
  2095. grds.dwUserMedal = m_GameDBAide.GetValue_WORD(TEXT("UserMedal"));
  2096. grds.dwPlayTimeCount = m_GameDBAide.GetValue_WORD(TEXT("PlayTimeCount"));
  2097. //移动记录
  2098. m_GameDBModule->MoveToNext();
  2099. }
  2100. }
  2101. //grdi.wChairCount = j;
  2102. }
  2103. int totalSize = sizeof(CMD_GR_GetUserScoreRecordListResp) + sizeof(tagGameRecordDrawInfoEx)*GameScoreRecord.size();
  2104. char* buff = new char[totalSize];
  2105. memcpy(buff, &records, sizeof(WORD) * 2);
  2106. int offset = sizeof(WORD) * 2;
  2107. for (tagGameRecordDrawInfoEx& r : GameScoreRecord)
  2108. {
  2109. memcpy(buff + offset, &r, sizeof(tagGameRecordDrawInfoEx));
  2110. offset += sizeof(tagGameRecordDrawInfoEx);
  2111. }
  2112. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(4321))
  2113. {
  2114. CString csTest;
  2115. csTest.Format(_T("【OnRequestGetUserGameScoreRecords】获取战绩长度 ----> %d "), totalSize);
  2116. //提示消息
  2117. CTraceService::TraceString(csTest, TraceLevel_Normal);
  2118. }
  2119. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_GET_USER_GAMESCORE_LIST, dwContextID, buff, totalSize);
  2120. //delete buff;
  2121. //内存修改
  2122. SafeDeleteArray(buff);
  2123. }
  2124. }
  2125. double dRet = Start.End();
  2126. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  2127. {
  2128. CString csTest;
  2129. csTest.Format(_T("存储过程耗时 GSP_GP_GetRecordDrawInfo ----> %.3f "), dRet);
  2130. //提示消息
  2131. CTraceService::TraceString(csTest, TraceLevel_Normal);
  2132. }
  2133. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  2134. {
  2135. CString csTest;
  2136. csTest.Format(_T("存储过程耗时 GSP_GP_GetRecordDrawInfo ----> %.3f "), dRet);
  2137. //提示消息
  2138. CTraceService::TraceString(csTest, TraceLevel_Normal);
  2139. }
  2140. }
  2141. catch (IDataBaseException * pIException)
  2142. {
  2143. //输出错误
  2144. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  2145. double dRet = Start.End();
  2146. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  2147. {
  2148. CString csTest;
  2149. csTest.Format(_T("存储过程耗时 GSP_GP_GetRecordDrawInfo ----> %.3f "), dRet);
  2150. //提示消息
  2151. CTraceService::TraceString(csTest, TraceLevel_Normal);
  2152. }
  2153. //return false;
  2154. }
  2155. return true;
  2156. }
  2157. //加载参数
  2158. bool CDataBaseEngineSink::OnRequestLoadParameter(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  2159. {
  2160. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestLoadParameter"), TraceLevel_Debug);
  2161. CTimer Start;
  2162. try
  2163. {
  2164. //变量定义
  2165. DBO_GR_GameParameter GameParameter;
  2166. ZeroMemory(&GameParameter, sizeof(GameParameter));
  2167. //执行查询
  2168. m_GameDBAide.ResetParameter();
  2169. m_GameDBAide.AddParameter(TEXT("@wKindID"), m_pGameServiceOption->wKindID);
  2170. m_GameDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID);
  2171. //执行查询
  2172. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_LoadParameter"), true);
  2173. ZeroMemory(&GameParameter.msParameter, sizeof(MyStructParameter) * 2);
  2174. //读取信息
  2175. if (lResultCode == DB_SUCCESS)
  2176. {
  2177. //汇率信息
  2178. GameParameter.wMedalRate = 0;// m_GameDBAide.GetValue_WORD(TEXT("MedalRate"));
  2179. GameParameter.wRevenueRate = 0;//m_GameDBAide.GetValue_WORD(TEXT("RevenueRate"));
  2180. GameParameter.wExchangeRate = 0;//m_GameDBAide.GetValue_WORD(TEXT("ExchangeRate"));
  2181. //经验奖励
  2182. GameParameter.dwWinExperience = 0;//m_GameDBAide.GetValue_WORD(TEXT("WinExperience"));
  2183. //版本信息
  2184. GameParameter.dwClientVersion = 0;//m_GameDBAide.GetValue_DWORD(TEXT("ClientVersion"));
  2185. GameParameter.dwServerVersion = 0;//m_GameDBAide.GetValue_DWORD(TEXT("ServerVersion"));
  2186. m_GameDBModule->MoveToFirst();
  2187. while (m_GameDBModule->IsRecordsetEnd() == false)
  2188. {
  2189. int idNum = m_GameDBAide.GetValue_DWORD(TEXT("idNum"));
  2190. if (idNum == 1)
  2191. {
  2192. m_GameDBAide.GetValue_String(TEXT("gameTypeCfg"), GameParameter.msParameter[0].szgameTypeCfg, _countof(GameParameter.msParameter[0].szgameTypeCfg));
  2193. m_GameDBAide.GetValue_String(TEXT("diJinCfg"), GameParameter.msParameter[0].diJinCfg, _countof(GameParameter.msParameter[0].diJinCfg));
  2194. m_GameDBAide.GetValue_String(TEXT("payTypeCfg"), GameParameter.msParameter[0].payTypeCfg, _countof(GameParameter.msParameter[0].payTypeCfg));
  2195. m_GameDBAide.GetValue_String(TEXT("juShuCfg"), GameParameter.msParameter[0].juShuCfg, _countof(GameParameter.msParameter[0].juShuCfg));
  2196. m_GameDBAide.GetValue_String(TEXT("payCoinCfg"), GameParameter.msParameter[0].payCoinCfg, _countof(GameParameter.msParameter[0].payCoinCfg));
  2197. m_GameDBAide.GetValue_String(TEXT("ipLimitCfg"), GameParameter.msParameter[0].ipLimitCfg, _countof(GameParameter.msParameter[0].ipLimitCfg));
  2198. m_GameDBAide.GetValue_String(TEXT("defaultDeskCfg"), GameParameter.msParameter[0].defaultDeskCfg, _countof(GameParameter.msParameter[0].defaultDeskCfg));
  2199. GameParameter.msParameter[0].idNum = m_GameDBAide.GetValue_DWORD(TEXT("idNum"));
  2200. }
  2201. else if (idNum == 2)
  2202. {
  2203. m_GameDBAide.GetValue_String(TEXT("gameTypeCfg"), GameParameter.msParameter[1].szgameTypeCfg, _countof(GameParameter.msParameter[1].szgameTypeCfg));
  2204. m_GameDBAide.GetValue_String(TEXT("diJinCfg"), GameParameter.msParameter[1].diJinCfg, _countof(GameParameter.msParameter[1].diJinCfg));
  2205. m_GameDBAide.GetValue_String(TEXT("payTypeCfg"), GameParameter.msParameter[1].payTypeCfg, _countof(GameParameter.msParameter[1].payTypeCfg));
  2206. m_GameDBAide.GetValue_String(TEXT("juShuCfg"), GameParameter.msParameter[1].juShuCfg, _countof(GameParameter.msParameter[1].juShuCfg));
  2207. m_GameDBAide.GetValue_String(TEXT("payCoinCfg"), GameParameter.msParameter[1].payCoinCfg, _countof(GameParameter.msParameter[1].payCoinCfg));
  2208. m_GameDBAide.GetValue_String(TEXT("ipLimitCfg"), GameParameter.msParameter[1].ipLimitCfg, _countof(GameParameter.msParameter[1].ipLimitCfg));
  2209. m_GameDBAide.GetValue_String(TEXT("defaultDeskCfg"), GameParameter.msParameter[1].defaultDeskCfg, _countof(GameParameter.msParameter[1].defaultDeskCfg));
  2210. GameParameter.msParameter[1].idNum = m_GameDBAide.GetValue_DWORD(TEXT("idNum"));
  2211. }
  2212. else if (3 == idNum) ///modify by yd
  2213. {
  2214. m_GameDBAide.GetValue_String(TEXT("gameTypeCfg"), GameParameter.msParameter[2].szgameTypeCfg, _countof(GameParameter.msParameter[2].szgameTypeCfg));
  2215. m_GameDBAide.GetValue_String(TEXT("diJinCfg"), GameParameter.msParameter[2].diJinCfg, _countof(GameParameter.msParameter[2].diJinCfg));
  2216. m_GameDBAide.GetValue_String(TEXT("payTypeCfg"), GameParameter.msParameter[2].payTypeCfg, _countof(GameParameter.msParameter[2].payTypeCfg));
  2217. m_GameDBAide.GetValue_String(TEXT("juShuCfg"), GameParameter.msParameter[2].juShuCfg, _countof(GameParameter.msParameter[2].juShuCfg));
  2218. m_GameDBAide.GetValue_String(TEXT("payCoinCfg"), GameParameter.msParameter[2].payCoinCfg, _countof(GameParameter.msParameter[2].payCoinCfg));
  2219. m_GameDBAide.GetValue_String(TEXT("ipLimitCfg"), GameParameter.msParameter[2].ipLimitCfg, _countof(GameParameter.msParameter[2].ipLimitCfg));
  2220. m_GameDBAide.GetValue_String(TEXT("defaultDeskCfg"), GameParameter.msParameter[2].defaultDeskCfg, _countof(GameParameter.msParameter[2].defaultDeskCfg));
  2221. GameParameter.msParameter[2].idNum = m_GameDBAide.GetValue_DWORD(TEXT("idNum"));
  2222. }
  2223. else if (4 == idNum)
  2224. {
  2225. m_GameDBAide.GetValue_String(TEXT("gameTypeCfg"), GameParameter.msParameter[3].szgameTypeCfg, _countof(GameParameter.msParameter[3].szgameTypeCfg));
  2226. m_GameDBAide.GetValue_String(TEXT("diJinCfg"), GameParameter.msParameter[3].diJinCfg, _countof(GameParameter.msParameter[3].diJinCfg));
  2227. m_GameDBAide.GetValue_String(TEXT("payTypeCfg"), GameParameter.msParameter[3].payTypeCfg, _countof(GameParameter.msParameter[3].payTypeCfg));
  2228. m_GameDBAide.GetValue_String(TEXT("juShuCfg"), GameParameter.msParameter[3].juShuCfg, _countof(GameParameter.msParameter[3].juShuCfg));
  2229. m_GameDBAide.GetValue_String(TEXT("payCoinCfg"), GameParameter.msParameter[3].payCoinCfg, _countof(GameParameter.msParameter[3].payCoinCfg));
  2230. m_GameDBAide.GetValue_String(TEXT("ipLimitCfg"), GameParameter.msParameter[3].ipLimitCfg, _countof(GameParameter.msParameter[3].ipLimitCfg));
  2231. m_GameDBAide.GetValue_String(TEXT("defaultDeskCfg"), GameParameter.msParameter[3].defaultDeskCfg, _countof(GameParameter.msParameter[3].defaultDeskCfg));
  2232. GameParameter.msParameter[3].idNum = m_GameDBAide.GetValue_DWORD(TEXT("idNum"));
  2233. }
  2234. //移动记录
  2235. m_GameDBModule->MoveToNext();
  2236. }
  2237. //发送信息
  2238. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_GAME_PARAMETER, dwContextID, &GameParameter, sizeof(GameParameter));
  2239. double dRet = Start.End();
  2240. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  2241. {
  2242. CString csTest;
  2243. csTest.Format(_T("存储过程耗时 GSP_GR_LoadParameter ----> %.3f "), dRet);
  2244. //提示消息
  2245. CTraceService::TraceString(csTest, TraceLevel_Normal);
  2246. }
  2247. }
  2248. return true;
  2249. }
  2250. catch (IDataBaseException * pIException)
  2251. {
  2252. //输出错误
  2253. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  2254. double dRet = Start.End();
  2255. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  2256. {
  2257. CString csTest;
  2258. csTest.Format(_T("存储过程耗时 GSP_GR_LoadParameter ----> %.3f "), dRet);
  2259. //提示消息
  2260. CTraceService::TraceString(csTest, TraceLevel_Normal);
  2261. }
  2262. return false;
  2263. }
  2264. return true;
  2265. }
  2266. ////加载列表
  2267. //bool CDataBaseEngineSink::OnRequestLoadGameColumn(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  2268. //{
  2269. // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestLoadGameColumn"), TraceLevel_Debug);
  2270. // CTimer Start;
  2271. //
  2272. // try
  2273. // {
  2274. // //变量定义
  2275. // DBO_GR_GameColumnInfo GameColumnInfo;
  2276. // ZeroMemory(&GameColumnInfo, sizeof(GameColumnInfo));
  2277. //
  2278. // //执行查询
  2279. // m_GameDBAide.ResetParameter();
  2280. // GameColumnInfo.lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_GameColumnItem"), true);
  2281. //
  2282. // //读取信息
  2283. // for (WORD i = 0; i < CountArray(GameColumnInfo.ColumnItemInfo); i++)
  2284. // {
  2285. // //结束判断
  2286. // if (m_GameDBModule->IsRecordsetEnd() == true) break;
  2287. //
  2288. // //溢出效验
  2289. // ASSERT(GameColumnInfo.cbColumnCount < CountArray(GameColumnInfo.ColumnItemInfo));
  2290. // if (GameColumnInfo.cbColumnCount >= CountArray(GameColumnInfo.ColumnItemInfo)) break;
  2291. //
  2292. // //读取数据
  2293. // GameColumnInfo.cbColumnCount++;
  2294. // GameColumnInfo.ColumnItemInfo[i].cbColumnWidth = m_GameDBAide.GetValue_BYTE(TEXT("ColumnWidth"));
  2295. // GameColumnInfo.ColumnItemInfo[i].cbDataDescribe = m_GameDBAide.GetValue_BYTE(TEXT("DataDescribe"));
  2296. // m_GameDBAide.GetValue_String(TEXT("ColumnName"), GameColumnInfo.ColumnItemInfo[i].szColumnName, CountArray(GameColumnInfo.ColumnItemInfo[i].szColumnName));
  2297. //
  2298. // //移动记录
  2299. // m_GameDBModule->MoveToNext();
  2300. // }
  2301. //
  2302. // //发送信息
  2303. // WORD wHeadSize = sizeof(GameColumnInfo) - sizeof(GameColumnInfo.ColumnItemInfo);
  2304. // WORD wPacketSize = wHeadSize + GameColumnInfo.cbColumnCount * sizeof(GameColumnInfo.ColumnItemInfo[0]);
  2305. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_GAME_COLUMN_INFO, dwContextID, &GameColumnInfo, wPacketSize);
  2306. //
  2307. // double dRet = Start.End();
  2308. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  2309. // {
  2310. // CString csTest;
  2311. //
  2312. // csTest.Format(_T("存储过程耗时 GSP_GR_GameColumnItem ----> %.3f "), dRet);
  2313. //
  2314. // //提示消息
  2315. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  2316. // }
  2317. // return true;
  2318. // }
  2319. // catch (IDataBaseException * pIException)
  2320. // {
  2321. // //输出错误
  2322. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  2323. //
  2324. // //变量定义
  2325. // DBO_GR_GameColumnInfo GameColumnInfo;
  2326. // ZeroMemory(&GameColumnInfo, sizeof(GameColumnInfo));
  2327. //
  2328. // //构造变量
  2329. // GameColumnInfo.cbColumnCount = 0L;
  2330. // GameColumnInfo.lResultCode = pIException->GetExceptionResult();
  2331. //
  2332. // //发送信息
  2333. // WORD wPacketSize = sizeof(GameColumnInfo) - sizeof(GameColumnInfo.ColumnItemInfo);
  2334. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_GAME_COLUMN_INFO, dwContextID, &GameColumnInfo, wPacketSize);
  2335. //
  2336. // double dRet = Start.End();
  2337. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  2338. // {
  2339. // CString csTest;
  2340. //
  2341. // csTest.Format(_T("存储过程耗时 GSP_GR_GameColumnItem ----> %.3f "), dRet);
  2342. //
  2343. // //提示消息
  2344. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  2345. // }
  2346. // return false;
  2347. // }
  2348. //
  2349. // return true;
  2350. //}
  2351. ////加载机器
  2352. //bool CDataBaseEngineSink::OnRequestLoadAndroidUser(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  2353. //{
  2354. // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestLoadAndroidUser"), TraceLevel_Debug);
  2355. // //参数校验
  2356. // ASSERT(sizeof(DBR_GR_LoadAndroidUser) == wDataSize);
  2357. // if (sizeof(DBR_GR_LoadAndroidUser) != wDataSize) return false;
  2358. // CTimer Start;
  2359. // try
  2360. // {
  2361. // //提取变量
  2362. // DBR_GR_LoadAndroidUser * pLoadAndroidUser = (DBR_GR_LoadAndroidUser *)pData;
  2363. // if (pLoadAndroidUser == NULL) return false;
  2364. //
  2365. // //变量定义
  2366. // DBO_GR_GameAndroidInfo GameAndroidInfo;
  2367. // ZeroMemory(&GameAndroidInfo, sizeof(GameAndroidInfo));
  2368. //
  2369. // //设置批次
  2370. // GameAndroidInfo.dwBatchID = pLoadAndroidUser->dwBatchID;
  2371. //
  2372. // //用户帐户
  2373. // m_TreasureDBAide.ResetParameter();
  2374. // m_TreasureDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID);
  2375. // m_TreasureDBAide.AddParameter(TEXT("@dwBatchID"), pLoadAndroidUser->dwBatchID);
  2376. // m_TreasureDBAide.AddParameter(TEXT("@dwAndroidCount"), pLoadAndroidUser->dwAndroidCount);
  2377. //
  2378. // //执行查询
  2379. // GameAndroidInfo.lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_LoadAndroidUser"), true);
  2380. //
  2381. // //读取信息
  2382. // for (WORD i = 0; i < CountArray(GameAndroidInfo.AndroidAccountsInfo); i++)
  2383. // {
  2384. // //结束判断
  2385. // if (m_TreasureDBModule->IsRecordsetEnd() == true) break;
  2386. //
  2387. // //溢出效验
  2388. // ASSERT(GameAndroidInfo.wAndroidCount < CountArray(GameAndroidInfo.AndroidAccountsInfo));
  2389. // if (GameAndroidInfo.wAndroidCount >= CountArray(GameAndroidInfo.AndroidAccountsInfo)) break;
  2390. //
  2391. // //读取数据
  2392. // GameAndroidInfo.wAndroidCount++;
  2393. // GameAndroidInfo.AndroidAccountsInfo[i].dwUserID = m_TreasureDBAide.GetValue_DWORD(TEXT("UserID"));
  2394. // m_TreasureDBAide.GetValue_String(TEXT("LogonPass"), GameAndroidInfo.AndroidAccountsInfo[i].szPassword, CountArray(GameAndroidInfo.AndroidAccountsInfo[i].szPassword));
  2395. //
  2396. // //移动记录
  2397. // m_TreasureDBModule->MoveToNext();
  2398. // }
  2399. //
  2400. // //发送信息
  2401. // WORD wHeadSize = sizeof(GameAndroidInfo) - sizeof(GameAndroidInfo.AndroidAccountsInfo);
  2402. // WORD wDataSize = GameAndroidInfo.wAndroidCount * sizeof(GameAndroidInfo.AndroidAccountsInfo[0]);
  2403. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_GAME_ANDROID_INFO, dwContextID, &GameAndroidInfo, wHeadSize + wDataSize);
  2404. // double dRet = Start.End();
  2405. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  2406. // {
  2407. // CString csTest;
  2408. //
  2409. // csTest.Format(_T("存储过程耗时 GSP_GR_LoadAndroidUser ----> %.3f "), dRet);
  2410. //
  2411. // //提示消息
  2412. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  2413. // }
  2414. // return true;
  2415. // }
  2416. // catch (IDataBaseException * pIException)
  2417. // {
  2418. // //输出错误
  2419. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  2420. //
  2421. // //变量定义
  2422. // DBO_GR_GameAndroidInfo GameAndroidInfo;
  2423. // ZeroMemory(&GameAndroidInfo, sizeof(GameAndroidInfo));
  2424. //
  2425. // //构造变量
  2426. // GameAndroidInfo.wAndroidCount = 0L;
  2427. // GameAndroidInfo.lResultCode = DB_ERROR;
  2428. //
  2429. // //发送信息
  2430. // WORD wHeadSize = sizeof(GameAndroidInfo) - sizeof(GameAndroidInfo.AndroidAccountsInfo);
  2431. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_GAME_ANDROID_INFO, dwContextID, &GameAndroidInfo, wHeadSize);
  2432. // }
  2433. //
  2434. // return false;
  2435. //}
  2436. //
  2437. ////加载机器
  2438. //bool CDataBaseEngineSink::OnRequestLoadAndroidParameter(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  2439. //{
  2440. // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestLoadAndroidParameter"), TraceLevel_Debug);
  2441. // CTimer Start;
  2442. // try
  2443. // {
  2444. // //变量定义
  2445. // DBO_GR_GameAndroidParameter GameAndroidParameter;
  2446. // ZeroMemory(&GameAndroidParameter, sizeof(GameAndroidParameter));
  2447. //
  2448. // //用户帐户
  2449. // m_TreasureDBAide.ResetParameter();
  2450. // m_TreasureDBAide.AddParameter(TEXT("@wKindID"), m_pGameServiceAttrib->wKindID);
  2451. // m_TreasureDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID);
  2452. //
  2453. // //执行查询
  2454. // GameAndroidParameter.lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_LoadAndroidConfigure"), true);
  2455. //
  2456. // //读取信息
  2457. // for (WORD i = 0; i < CountArray(GameAndroidParameter.AndroidParameter); i++)
  2458. // {
  2459. // //结束判断
  2460. // if (m_TreasureDBModule->IsRecordsetEnd() == true) break;
  2461. //
  2462. // //溢出效验
  2463. // ASSERT(GameAndroidParameter.wParameterCount < CountArray(GameAndroidParameter.AndroidParameter));
  2464. // if (GameAndroidParameter.wParameterCount >= CountArray(GameAndroidParameter.AndroidParameter)) break;
  2465. //
  2466. // //读取数据
  2467. // GameAndroidParameter.wParameterCount++;
  2468. // GameAndroidParameter.AndroidParameter[i].dwBatchID = m_TreasureDBAide.GetValue_DWORD(TEXT("BatchID"));
  2469. // GameAndroidParameter.AndroidParameter[i].dwServiceMode = m_TreasureDBAide.GetValue_DWORD(TEXT("ServiceMode"));
  2470. // GameAndroidParameter.AndroidParameter[i].dwAndroidCount = m_TreasureDBAide.GetValue_DWORD(TEXT("AndroidCount"));
  2471. // GameAndroidParameter.AndroidParameter[i].dwEnterTime = m_TreasureDBAide.GetValue_DWORD(TEXT("EnterTime"));
  2472. // GameAndroidParameter.AndroidParameter[i].dwLeaveTime = m_TreasureDBAide.GetValue_DWORD(TEXT("LeaveTime"));
  2473. // GameAndroidParameter.AndroidParameter[i].lTakeMinScore = m_TreasureDBAide.GetValue_LONGLONG(TEXT("TakeMinScore"));
  2474. // GameAndroidParameter.AndroidParameter[i].lTakeMaxScore = m_TreasureDBAide.GetValue_LONGLONG(TEXT("TakeMaxScore"));
  2475. // GameAndroidParameter.AndroidParameter[i].dwEnterMinInterval = m_TreasureDBAide.GetValue_DWORD(TEXT("EnterMinInterval"));
  2476. // GameAndroidParameter.AndroidParameter[i].dwEnterMaxInterval = m_TreasureDBAide.GetValue_DWORD(TEXT("EnterMaxInterval"));
  2477. // GameAndroidParameter.AndroidParameter[i].dwLeaveMinInterval = m_TreasureDBAide.GetValue_DWORD(TEXT("LeaveMinInterval"));
  2478. // GameAndroidParameter.AndroidParameter[i].dwLeaveMaxInterval = m_TreasureDBAide.GetValue_DWORD(TEXT("LeaveMaxInterval"));
  2479. // GameAndroidParameter.AndroidParameter[i].dwSwitchMinInnings = m_TreasureDBAide.GetValue_DWORD(TEXT("SwitchMinInnings"));
  2480. // GameAndroidParameter.AndroidParameter[i].dwSwitchMaxInnings = m_TreasureDBAide.GetValue_DWORD(TEXT("SwitchMaxInnings"));
  2481. //
  2482. // //移动记录
  2483. // m_TreasureDBModule->MoveToNext();
  2484. // }
  2485. //
  2486. // //发送信息
  2487. // WORD wHeadSize = sizeof(GameAndroidParameter) - sizeof(GameAndroidParameter.AndroidParameter);
  2488. // WORD wDataSize = GameAndroidParameter.wParameterCount * sizeof(GameAndroidParameter.AndroidParameter[0]);
  2489. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_GAME_ANDROID_PARAMETER, dwContextID, &GameAndroidParameter, wHeadSize + wDataSize);
  2490. // double dRet = Start.End();
  2491. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  2492. // {
  2493. // CString csTest;
  2494. //
  2495. // csTest.Format(_T("存储过程耗时 GSP_GR_LoadAndroidConfigure ----> %.3f "), dRet);
  2496. //
  2497. // //提示消息
  2498. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  2499. // }
  2500. // return true;
  2501. // }
  2502. // catch (IDataBaseException * pIException)
  2503. // {
  2504. // //输出错误
  2505. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  2506. //
  2507. // //变量定义
  2508. // DBO_GR_GameAndroidParameter GameAndroidParameter;
  2509. // ZeroMemory(&GameAndroidParameter, sizeof(GameAndroidParameter));
  2510. //
  2511. // //构造变量
  2512. // GameAndroidParameter.wParameterCount = 0L;
  2513. // GameAndroidParameter.lResultCode = DB_ERROR;
  2514. //
  2515. // //发送信息
  2516. // WORD wHeadSize = sizeof(GameAndroidParameter) - sizeof(GameAndroidParameter.AndroidParameter);
  2517. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_GAME_ANDROID_PARAMETER, dwContextID, &GameAndroidParameter, wHeadSize);
  2518. // double dRet = Start.End();
  2519. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  2520. // {
  2521. // CString csTest;
  2522. //
  2523. // csTest.Format(_T("存储过程耗时 GSP_GR_LoadAndroidConfigure ----> %.3f "), dRet);
  2524. //
  2525. // //提示消息
  2526. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  2527. // }
  2528. // }
  2529. //
  2530. // return false;
  2531. //}
  2532. //
  2533. //加载道具
  2534. //bool CDataBaseEngineSink::OnRequestLoadGameProperty(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  2535. //{
  2536. // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestLoadGameProperty"), TraceLevel_Debug);
  2537. // CTimer Start;
  2538. // try
  2539. // {
  2540. // //变量定义
  2541. // DBO_GR_GamePropertyInfo GamePropertyInfo;
  2542. // ZeroMemory(&GamePropertyInfo, sizeof(GamePropertyInfo));
  2543. //
  2544. // //构造参数
  2545. // m_GameDBAide.ResetParameter();
  2546. // m_GameDBAide.AddParameter(TEXT("@wKindID"), m_pGameServiceOption->wKindID);
  2547. // m_GameDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID);
  2548. //
  2549. // //执行查询
  2550. // GamePropertyInfo.lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_LoadGameProperty"), true);
  2551. //
  2552. // //读取信息
  2553. // for (WORD i = 0; i < CountArray(GamePropertyInfo.PropertyInfo); i++)
  2554. // {
  2555. // //结束判断
  2556. // if (m_GameDBModule->IsRecordsetEnd() == true) break;
  2557. //
  2558. // //溢出效验
  2559. // ASSERT(GamePropertyInfo.cbPropertyCount < CountArray(GamePropertyInfo.PropertyInfo));
  2560. // if (GamePropertyInfo.cbPropertyCount >= CountArray(GamePropertyInfo.PropertyInfo)) break;
  2561. //
  2562. // //读取数据
  2563. // GamePropertyInfo.cbPropertyCount++;
  2564. // GamePropertyInfo.PropertyInfo[i].wIndex = m_GameDBAide.GetValue_WORD(TEXT("ID"));
  2565. // GamePropertyInfo.PropertyInfo[i].wDiscount = m_GameDBAide.GetValue_WORD(TEXT("Discount"));
  2566. // GamePropertyInfo.PropertyInfo[i].wIssueArea = m_GameDBAide.GetValue_WORD(TEXT("IssueArea"));
  2567. // GamePropertyInfo.PropertyInfo[i].dPropertyCash = m_GameDBAide.GetValue_DOUBLE(TEXT("Cash"));
  2568. // GamePropertyInfo.PropertyInfo[i].lPropertyGold = m_GameDBAide.GetValue_LONGLONG(TEXT("Gold"));
  2569. // GamePropertyInfo.PropertyInfo[i].lSendLoveLiness = m_GameDBAide.GetValue_LONGLONG(TEXT("SendLoveLiness"));
  2570. // GamePropertyInfo.PropertyInfo[i].lRecvLoveLiness = m_GameDBAide.GetValue_LONGLONG(TEXT("RecvLoveLiness"));
  2571. //
  2572. // //移动记录
  2573. // m_GameDBModule->MoveToNext();
  2574. // }
  2575. //
  2576. // //发送信息
  2577. // WORD wHeadSize = sizeof(GamePropertyInfo) - sizeof(GamePropertyInfo.PropertyInfo);
  2578. // WORD wDataSize = GamePropertyInfo.cbPropertyCount * sizeof(GamePropertyInfo.PropertyInfo[0]);
  2579. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_GAME_PROPERTY_INFO, dwContextID, &GamePropertyInfo, wHeadSize + wDataSize);
  2580. // double dRet = Start.End();
  2581. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  2582. // {
  2583. // CString csTest;
  2584. //
  2585. // csTest.Format(_T("存储过程耗时 GSP_GR_LoadGameProperty ----> %.3f "), dRet);
  2586. //
  2587. // //提示消息
  2588. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  2589. // }
  2590. //
  2591. // }
  2592. // catch (IDataBaseException * pIException)
  2593. // {
  2594. // //输出错误
  2595. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  2596. //
  2597. // //变量定义
  2598. // DBO_GR_GamePropertyInfo GamePropertyInfo;
  2599. // ZeroMemory(&GamePropertyInfo, sizeof(GamePropertyInfo));
  2600. //
  2601. // //构造变量
  2602. // GamePropertyInfo.cbPropertyCount = 0L;
  2603. // GamePropertyInfo.lResultCode = DB_ERROR;
  2604. //
  2605. // //发送信息
  2606. // WORD wHeadSize = sizeof(GamePropertyInfo) - sizeof(GamePropertyInfo.PropertyInfo);
  2607. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_GAME_PROPERTY_INFO, dwContextID, &GamePropertyInfo, wHeadSize);
  2608. // double dRet = Start.End();
  2609. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  2610. // {
  2611. // CString csTest;
  2612. //
  2613. // csTest.Format(_T("存储过程耗时 GSP_GR_LoadGameProperty ----> %.3f "), dRet);
  2614. //
  2615. // //提示消息
  2616. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  2617. // }
  2618. // return false;
  2619. // }
  2620. //
  2621. // return true;
  2622. //}
  2623. ////开通银行
  2624. //bool CDataBaseEngineSink::OnRequestUserEnableInsure(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  2625. //{
  2626. // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestUserEnableInsure"), TraceLevel_Debug);
  2627. // CTimer Start;
  2628. // try
  2629. // {
  2630. // //效验参数
  2631. // ASSERT(wDataSize == sizeof(DBR_GR_UserEnableInsure));
  2632. // if (wDataSize != sizeof(DBR_GR_UserEnableInsure)) return false;
  2633. //
  2634. // //请求处理
  2635. // DBR_GR_UserEnableInsure * pUserEnableInsure = (DBR_GR_UserEnableInsure *)pData;
  2636. //
  2637. // //设置标识
  2638. // dwUserID = pUserEnableInsure->dwUserID;
  2639. //
  2640. // //转化地址
  2641. // TCHAR szClientAddr[16] = TEXT("");
  2642. // BYTE * pClientAddr = (BYTE *)&pUserEnableInsure->dwClientAddr;
  2643. // _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]);
  2644. //
  2645. // //构造参数
  2646. // m_TreasureDBAide.ResetParameter();
  2647. // m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), pUserEnableInsure->dwUserID);
  2648. // m_TreasureDBAide.AddParameter(TEXT("@strLogonPass"), pUserEnableInsure->szLogonPass);
  2649. // m_TreasureDBAide.AddParameter(TEXT("@strInsurePass"), pUserEnableInsure->szInsurePass);
  2650. // m_TreasureDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr);
  2651. // m_TreasureDBAide.AddParameter(TEXT("@strMachineID"), pUserEnableInsure->szMachineID);
  2652. //
  2653. // //输出参数
  2654. // TCHAR szDescribeString[128] = TEXT("");
  2655. // m_TreasureDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  2656. //
  2657. // //执行查询
  2658. // LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_UserEnableInsure"), true);
  2659. //
  2660. // //结果处理
  2661. // CDBVarValue DBVarValue;
  2662. // m_TreasureDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  2663. //
  2664. // //构造对象
  2665. // DBO_GR_UserInsureEnableResult UserEnableInsureResult;
  2666. // ZeroMemory(&UserEnableInsureResult, sizeof(UserEnableInsureResult));
  2667. //
  2668. // //设置变量
  2669. // UserEnableInsureResult.cbActivityGame = pUserEnableInsure->cbActivityGame;
  2670. // UserEnableInsureResult.cbInsureEnabled = (lResultCode == DB_SUCCESS) ? TRUE : FALSE;
  2671. // lstrcpyn(UserEnableInsureResult.szDescribeString, CW2CT(DBVarValue.bstrVal), CountArray(UserEnableInsureResult.szDescribeString));
  2672. //
  2673. // //发送结果
  2674. // WORD wDataSize = CountStringBuffer(UserEnableInsureResult.szDescribeString);
  2675. // WORD wHeadSize = sizeof(UserEnableInsureResult) - sizeof(UserEnableInsureResult.szDescribeString);
  2676. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_USER_INSURE_ENABLE_RESULT, dwContextID, &UserEnableInsureResult, wHeadSize + wDataSize);
  2677. // double dRet = Start.End();
  2678. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  2679. // {
  2680. // CString csTest;
  2681. //
  2682. // csTest.Format(_T("存储过程耗时 GSP_GR_UserEnableInsure ----> %.3f "), dRet);
  2683. //
  2684. // //提示消息
  2685. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  2686. // }
  2687. //
  2688. // return true;
  2689. // }
  2690. // catch (IDataBaseException * pIException)
  2691. // {
  2692. // //错误信息
  2693. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  2694. //
  2695. // //构造对象
  2696. // DBO_GR_UserInsureEnableResult UserEnableInsureResult;
  2697. // ZeroMemory(&UserEnableInsureResult, sizeof(UserEnableInsureResult));
  2698. //
  2699. // //请求处理
  2700. // DBR_GR_UserEnableInsure * pUserEnableInsure = (DBR_GR_UserEnableInsure *)pData;
  2701. //
  2702. // //设置变量
  2703. // UserEnableInsureResult.cbInsureEnabled = FALSE;
  2704. // UserEnableInsureResult.cbActivityGame = pUserEnableInsure->cbActivityGame;
  2705. // lstrcpyn(UserEnableInsureResult.szDescribeString, TEXT("由于数据库操作异常,请您稍后重试!"), CountArray(UserEnableInsureResult.szDescribeString));
  2706. //
  2707. // //发送结果
  2708. // WORD wDataSize = CountStringBuffer(UserEnableInsureResult.szDescribeString);
  2709. // WORD wHeadSize = sizeof(UserEnableInsureResult) - sizeof(UserEnableInsureResult.szDescribeString);
  2710. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_USER_INSURE_ENABLE_RESULT, dwContextID, &UserEnableInsureResult, wHeadSize + wDataSize);
  2711. // double dRet = Start.End();
  2712. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  2713. // {
  2714. // CString csTest;
  2715. //
  2716. // csTest.Format(_T("存储过程耗时 GSP_GR_UserEnableInsure ----> %.3f "), dRet);
  2717. //
  2718. // //提示消息
  2719. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  2720. // }
  2721. // return false;
  2722. // }
  2723. //}
  2724. //
  2725. //直接扣除元宝
  2726. bool CDataBaseEngineSink::OnRequestUserCheckBeans(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  2727. {
  2728. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestUserCheckBeans"), TraceLevel_Debug);
  2729. //效验参数
  2730. ASSERT(wDataSize == sizeof(DBR_GR_UserReduceBeans));
  2731. if (wDataSize != sizeof(DBR_GR_UserReduceBeans)) return false;
  2732. CTimer Start;
  2733. //变量定义
  2734. DBR_GR_UserReduceBeans * pInfo = (DBR_GR_UserReduceBeans *)pData;
  2735. dwUserID = pInfo->dwUserID;
  2736. //请求处理
  2737. try
  2738. {
  2739. //转化地址
  2740. TCHAR szClientAddr[16] = TEXT("");
  2741. BYTE * pClientAddr = (BYTE *)&pInfo->dwClientAddr;
  2742. _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]);
  2743. //构造参数
  2744. m_TreasureDBAide.ResetParameter();
  2745. m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), pInfo->dwUserID);
  2746. m_TreasureDBAide.AddParameter(TEXT("@ConsumeCurrency"), pInfo->ConsumeCurrency);
  2747. m_TreasureDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr);
  2748. m_TreasureDBAide.AddParameter(TEXT("@strMachineID"), pInfo->szMachineID);
  2749. //输出参数
  2750. TCHAR szDescribeString[128] = TEXT("");
  2751. m_TreasureDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  2752. //执行查询
  2753. LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_CheckBeans"), true);
  2754. if (lResultCode == 0)
  2755. {
  2756. //结果处理
  2757. DWORD CurrBeans = m_TreasureDBAide.GetValue_DWORD(TEXT("CurrBeans"));
  2758. DWORD LockBeans = m_TreasureDBAide.GetValue_DWORD(TEXT("LockCurrency"));
  2759. DBO_GR_UserReduceResult result;
  2760. result.result = lResultCode;
  2761. result.dwCurrBeans = CurrBeans;
  2762. result.dwLockBeans = LockBeans;
  2763. result.dwTable = pInfo->dwTableID;
  2764. result.dwUserID = pInfo->dwUserID;
  2765. result.dwActiveBeans = pInfo->ConsumeCurrency;
  2766. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_USER_CHECK_BEANS_RETURN, dwContextID, &result, sizeof(result));
  2767. double dRet = Start.End();
  2768. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  2769. {
  2770. CString csTest;
  2771. csTest.Format(_T("存储过程耗时 GSP_GR_CheckBeans ----> %.3f "), dRet);
  2772. //提示消息
  2773. CTraceService::TraceString(csTest, TraceLevel_Normal);
  2774. }
  2775. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  2776. {
  2777. CString csTest;
  2778. csTest.Format(_T("存储过程耗时 GSP_GR_CheckBeans ----> %.3f "), dRet);
  2779. //提示消息
  2780. CTraceService::TraceString(csTest, TraceLevel_Normal);
  2781. }
  2782. }
  2783. return true;
  2784. }
  2785. catch (IDataBaseException * pIException)
  2786. {
  2787. //错误信息
  2788. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  2789. DBO_GR_UserCheckResult result;
  2790. result.result = 100;
  2791. lstrcpy(result.szDescribeString, pIException->GetExceptionDescribe());
  2792. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_USER_CHECK_BEANS_RETURN, dwContextID, &result, sizeof(result));
  2793. //错误处理
  2794. //OnInsureDisposeResult(dwContextID, DB_ERROR, pUserSaveScore->lSaveScore, TEXT("由于数据库操作异常,请您稍后重试!"), false, pUserSaveScore->cbActivityGame);
  2795. double dRet = Start.End();
  2796. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  2797. {
  2798. CString csTest;
  2799. csTest.Format(_T("异常存储过程耗时 GSP_GR_CheckBeans ----> %.3f "), dRet);
  2800. //提示消息
  2801. CTraceService::TraceString(csTest, TraceLevel_Normal);
  2802. }
  2803. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  2804. {
  2805. CString csTest;
  2806. csTest.Format(_T("存储过程耗时异常 GSP_GR_CheckBeans ----> %.3f "), dRet);
  2807. //提示消息
  2808. CTraceService::TraceString(csTest, TraceLevel_Normal);
  2809. }
  2810. CString csTemp;
  2811. csTemp.Format(_T("[%d]直接扣除元宝失败 需要扣除:%d"), pInfo->dwUserID, pInfo->ConsumeCurrency);
  2812. //提示消息
  2813. CTraceService::TraceString(csTemp, TraceLevel_Warning);
  2814. return false;
  2815. }
  2816. return true;
  2817. }
  2818. //消耗元宝
  2819. bool CDataBaseEngineSink::OnRequestUserReduceBeans(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  2820. {
  2821. CTraceService::TraceString(TEXT(" CDataBaseEngineSink::OnRequestUserReduceBeans"), TraceLevel_Debug);
  2822. //效验参数
  2823. ASSERT(wDataSize == sizeof(DBR_GR_UserReduceBeans));
  2824. if (wDataSize != sizeof(DBR_GR_UserReduceBeans)) return false;
  2825. CTimer Start;
  2826. //变量定义
  2827. DBR_GR_UserReduceBeans * pInfo = (DBR_GR_UserReduceBeans *)pData;
  2828. dwUserID = pInfo->dwUserID;
  2829. //请求处理
  2830. try
  2831. {
  2832. //转化地址
  2833. TCHAR szClientAddr[16] = TEXT("");
  2834. BYTE * pClientAddr = (BYTE *)&pInfo->dwClientAddr;
  2835. _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]);
  2836. //构造参数
  2837. m_TreasureDBAide.ResetParameter();
  2838. m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), pInfo->dwUserID);
  2839. m_TreasureDBAide.AddParameter(TEXT("@ConsumeCurrency"), pInfo->ConsumeCurrency);
  2840. m_TreasureDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr);
  2841. m_TreasureDBAide.AddParameter(TEXT("@strMachineID"), pInfo->szMachineID);
  2842. //输出参数
  2843. TCHAR szDescribeString[128] = TEXT("");
  2844. m_TreasureDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  2845. //执行查询
  2846. LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_ReduceBeans"), true);
  2847. //结果处理
  2848. DWORD CurrBeans = m_TreasureDBAide.GetValue_DWORD(TEXT("CurrBeans"));
  2849. DWORD LockBeans = m_TreasureDBAide.GetValue_DWORD(TEXT("LockCurrency"));
  2850. DBO_GR_UserReduceResult result;
  2851. result.result = lResultCode;
  2852. result.dwCurrBeans = CurrBeans;
  2853. result.dwLockBeans = LockBeans;
  2854. result.dwTable = pInfo->dwTableID;
  2855. result.dwUserID = pInfo->dwUserID;
  2856. result.dwActiveBeans = pInfo->ConsumeCurrency;
  2857. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_USER_REDUCE_BEANS_RETURN, dwContextID, &result, sizeof(result));
  2858. double dRet = Start.End();
  2859. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  2860. {
  2861. CString csTest;
  2862. csTest.Format(_T("存储过程耗时 GSP_GR_ReduceBeans ----> %.3f "), dRet);
  2863. //提示消息
  2864. CTraceService::TraceString(csTest, TraceLevel_Normal);
  2865. }
  2866. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  2867. {
  2868. CString csTest;
  2869. csTest.Format(_T("存储过程耗时 GSP_GR_ReduceBeans ----> %.3f "), dRet);
  2870. //提示消息
  2871. CTraceService::TraceString(csTest, TraceLevel_Normal);
  2872. }
  2873. return true;
  2874. }
  2875. catch (IDataBaseException * pIException)
  2876. {
  2877. //错误信息
  2878. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  2879. DBO_GR_UserReduceResult result;
  2880. result.result = 100;
  2881. lstrcpy(result.szDescribeString, pIException->GetExceptionDescribe());
  2882. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_USER_REDUCE_BEANS_RETURN, dwContextID, &result, sizeof(result));
  2883. //错误处理
  2884. //OnInsureDisposeResult(dwContextID, DB_ERROR, pInfo->lSaveScore, TEXT("由于数据库操作异常,请您稍后重试!"), false, pUserSaveScore->cbActivityGame);
  2885. double dRet = Start.End();
  2886. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  2887. {
  2888. CString csTest;
  2889. csTest.Format(_T("存储过程耗时 GSP_GR_ReduceBeans ----> %.3f "), dRet);
  2890. //提示消息
  2891. CTraceService::TraceString(csTest, TraceLevel_Normal);
  2892. }
  2893. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  2894. {
  2895. CString csTest;
  2896. csTest.Format(_T("存储过程耗时异常 GSP_GR_ReduceBeans ----> %.3f "), dRet);
  2897. //提示消息
  2898. CTraceService::TraceString(csTest, TraceLevel_Normal);
  2899. }
  2900. return false;
  2901. }
  2902. return true;
  2903. }
  2904. //冻结元宝
  2905. bool CDataBaseEngineSink::OnRequestUserLockBeans(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  2906. {
  2907. CTraceService::TraceString(TEXT(" CDataBaseEngineSink::OnRequestUserLockBeans"), TraceLevel_Debug);
  2908. //效验参数
  2909. ASSERT(wDataSize == sizeof(DBR_GR_UserReduceBeans));
  2910. if (wDataSize != sizeof(DBR_GR_UserReduceBeans)) return false;
  2911. //变量定义
  2912. DBR_GR_UserReduceBeans * pInfo = (DBR_GR_UserReduceBeans *)pData;
  2913. dwUserID = pInfo->dwUserID;
  2914. CTimer Start;
  2915. //请求处理
  2916. try
  2917. {
  2918. //转化地址
  2919. TCHAR szClientAddr[16] = TEXT("");
  2920. BYTE * pClientAddr = (BYTE *)&pInfo->dwClientAddr;
  2921. _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]);
  2922. //构造参数
  2923. m_TreasureDBAide.ResetParameter();
  2924. m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), pInfo->dwUserID);
  2925. m_TreasureDBAide.AddParameter(TEXT("@ConsumeCurrency"), pInfo->ConsumeCurrency);
  2926. m_TreasureDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr);
  2927. m_TreasureDBAide.AddParameter(TEXT("@strMachineID"), pInfo->szMachineID);
  2928. //输出参数
  2929. TCHAR szDescribeString[128] = TEXT("");
  2930. m_TreasureDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  2931. //执行查询
  2932. LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_LockBeans"), true);
  2933. //结果处理
  2934. DWORD CurrBeans = 0;
  2935. DWORD LockBeans = 0;
  2936. if (lResultCode == 0)
  2937. {
  2938. CurrBeans = m_TreasureDBAide.GetValue_DWORD(TEXT("CurrBeans"));
  2939. LockBeans = m_TreasureDBAide.GetValue_DWORD(TEXT("LockCurrency"));
  2940. }
  2941. DBO_GR_UserReduceResult result;
  2942. result.result = lResultCode;
  2943. result.dwCurrBeans = CurrBeans;
  2944. result.dwLockBeans = LockBeans;
  2945. result.dwActiveBeans = pInfo->ConsumeCurrency;
  2946. result.dwTable = pInfo->dwTableID;
  2947. result.dwUserID = pInfo->dwUserID;
  2948. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_USER_LUCK_BEANS_RETURN, dwContextID, &result, sizeof(result));
  2949. double dRet = Start.End();
  2950. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  2951. {
  2952. CString csTest;
  2953. csTest.Format(_T("存储过程耗时 GSP_GR_LockBeans ----> %.3f "), dRet);
  2954. //提示消息
  2955. CTraceService::TraceString(csTest, TraceLevel_Normal);
  2956. }
  2957. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  2958. {
  2959. CString csTest;
  2960. csTest.Format(_T("存储过程耗时 GSP_GR_LockBeans ----> %.3f "), dRet);
  2961. //提示消息
  2962. CTraceService::TraceString(csTest, TraceLevel_Normal);
  2963. }
  2964. return true;
  2965. }
  2966. catch (IDataBaseException * pIException)
  2967. {
  2968. //错误信息
  2969. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  2970. DBO_GR_UserReduceResult result;
  2971. result.result = 100;
  2972. lstrcpy(result.szDescribeString, pIException->GetExceptionDescribe());
  2973. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_USER_LUCK_BEANS_RETURN, dwContextID, &result, sizeof(result));
  2974. //错误处理
  2975. //OnInsureDisposeResult(dwContextID, DB_ERROR, pInfo->lSaveScore, TEXT("由于数据库操作异常,请您稍后重试!"), false, pUserSaveScore->cbActivityGame);
  2976. double dRet = Start.End();
  2977. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  2978. {
  2979. CString csTest;
  2980. csTest.Format(_T("存储过程耗时 GSP_GR_LockBeans ----> %.3f "), dRet);
  2981. //提示消息
  2982. CTraceService::TraceString(csTest, TraceLevel_Normal);
  2983. }
  2984. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  2985. {
  2986. CString csTest;
  2987. csTest.Format(_T("存储过程耗时异常 GSP_GR_LockBeans ----> %.3f "), dRet);
  2988. //提示消息
  2989. CTraceService::TraceString(csTest, TraceLevel_Normal);
  2990. }
  2991. return false;
  2992. }
  2993. return true;
  2994. }
  2995. //解冻元宝
  2996. bool CDataBaseEngineSink::OnRequestUserUnLockBeans(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  2997. {
  2998. CTraceService::TraceString(TEXT(" CDataBaseEngineSink::OnRequestUserUnLockBeans"), TraceLevel_Debug);
  2999. //效验参数
  3000. ASSERT(wDataSize == sizeof(DBR_GR_UserReduceBeans));
  3001. if (wDataSize != sizeof(DBR_GR_UserReduceBeans)) return false;
  3002. //变量定义
  3003. DBR_GR_UserReduceBeans * pInfo = (DBR_GR_UserReduceBeans *)pData;
  3004. dwUserID = pInfo->dwUserID;
  3005. CTimer Start;
  3006. //请求处理
  3007. try
  3008. {
  3009. //转化地址
  3010. TCHAR szClientAddr[16] = TEXT("");
  3011. BYTE * pClientAddr = (BYTE *)&pInfo->dwClientAddr;
  3012. _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]);
  3013. //构造参数
  3014. m_TreasureDBAide.ResetParameter();
  3015. m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), pInfo->dwUserID);
  3016. m_TreasureDBAide.AddParameter(TEXT("@ConsumeCurrency"), pInfo->ConsumeCurrency);
  3017. m_TreasureDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr);
  3018. m_TreasureDBAide.AddParameter(TEXT("@strMachineID"), pInfo->szMachineID);
  3019. //输出参数
  3020. TCHAR szDescribeString[128] = TEXT("");
  3021. m_TreasureDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  3022. //执行查询
  3023. LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_UnLockBeans"), true);
  3024. //结果处理
  3025. DWORD CurrBeans = m_TreasureDBAide.GetValue_DWORD(TEXT("CurrBeans"));
  3026. DWORD LockBeans = m_TreasureDBAide.GetValue_DWORD(TEXT("LockCurrency"));
  3027. DBO_GR_UserReduceResult result;
  3028. result.result = lResultCode;
  3029. result.dwCurrBeans = CurrBeans;
  3030. result.dwLockBeans = LockBeans;
  3031. result.dwActiveBeans = pInfo->ConsumeCurrency;
  3032. result.dwUserID = pInfo->dwUserID;
  3033. result.dwTable = pInfo->dwTableID;
  3034. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_USER_UNLUCK_BEANS_RETURN, dwContextID, &result, sizeof(result));
  3035. double dRet = Start.End();
  3036. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  3037. {
  3038. CString csTest;
  3039. csTest.Format(_T("存储过程耗时 GSP_GR_UnLockBeans ----> %.3f "), dRet);
  3040. //提示消息
  3041. CTraceService::TraceString(csTest, TraceLevel_Normal);
  3042. }
  3043. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  3044. {
  3045. CString csTest;
  3046. csTest.Format(_T("存储过程耗时 GSP_GR_UnLockBeans ----> %.3f "), dRet);
  3047. //提示消息
  3048. CTraceService::TraceString(csTest, TraceLevel_Normal);
  3049. }
  3050. return true;
  3051. }
  3052. catch (IDataBaseException * pIException)
  3053. {
  3054. //错误信息
  3055. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  3056. DBO_GR_UserReduceResult result;
  3057. result.result = 100;
  3058. lstrcpy(result.szDescribeString, pIException->GetExceptionDescribe());
  3059. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_USER_UNLUCK_BEANS_RETURN, dwContextID, &result, sizeof(result));
  3060. //错误处理
  3061. //OnInsureDisposeResult(dwContextID, DB_ERROR, pInfo->lSaveScore, TEXT("由于数据库操作异常,请您稍后重试!"), false, pUserSaveScore->cbActivityGame);
  3062. double dRet = Start.End();
  3063. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  3064. {
  3065. CString csTest;
  3066. csTest.Format(_T("存储过程耗时 GSP_GR_UnLockBeans ----> %.3f "), dRet);
  3067. //提示消息
  3068. CTraceService::TraceString(csTest, TraceLevel_Normal);
  3069. }
  3070. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  3071. {
  3072. CString csTest;
  3073. csTest.Format(_T("存储过程耗时异常 GSP_GR_UnLockBeans ----> %.3f "), dRet);
  3074. //提示消息
  3075. CTraceService::TraceString(csTest, TraceLevel_Normal);
  3076. }
  3077. return false;
  3078. }
  3079. return true;
  3080. }
  3081. ////存入游戏币
  3082. //bool CDataBaseEngineSink::OnRequestUserSaveScore(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  3083. //{
  3084. // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestUserSaveScore"), TraceLevel_Debug);
  3085. // //效验参数
  3086. // ASSERT(wDataSize == sizeof(DBR_GR_UserSaveScore));
  3087. // if (wDataSize != sizeof(DBR_GR_UserSaveScore)) return false;
  3088. // CTimer Start;
  3089. // //变量定义
  3090. // DBR_GR_UserSaveScore * pUserSaveScore = (DBR_GR_UserSaveScore *)pData;
  3091. // dwUserID = pUserSaveScore->dwUserID;
  3092. //
  3093. // //请求处理
  3094. // try
  3095. // {
  3096. // //转化地址
  3097. // TCHAR szClientAddr[16] = TEXT("");
  3098. // BYTE * pClientAddr = (BYTE *)&pUserSaveScore->dwClientAddr;
  3099. // _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]);
  3100. //
  3101. // //构造参数
  3102. // m_TreasureDBAide.ResetParameter();
  3103. // m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), pUserSaveScore->dwUserID);
  3104. // m_TreasureDBAide.AddParameter(TEXT("@lSaveScore"), pUserSaveScore->lSaveScore);
  3105. // m_TreasureDBAide.AddParameter(TEXT("@wKindID"), m_pGameServiceOption->wKindID);
  3106. // m_TreasureDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID);
  3107. // m_TreasureDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr);
  3108. // m_TreasureDBAide.AddParameter(TEXT("@strMachineID"), pUserSaveScore->szMachineID);
  3109. //
  3110. // //输出参数
  3111. // TCHAR szDescribeString[128] = TEXT("");
  3112. // m_TreasureDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  3113. //
  3114. // //执行查询
  3115. // LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_UserSaveScore"), true);
  3116. //
  3117. // //结果处理
  3118. // CDBVarValue DBVarValue;
  3119. // m_TreasureDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  3120. // OnInsureDisposeResult(dwContextID, lResultCode, pUserSaveScore->lSaveScore, CW2CT(DBVarValue.bstrVal), false, pUserSaveScore->cbActivityGame);
  3121. // double dRet = Start.End();
  3122. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  3123. // {
  3124. // CString csTest;
  3125. //
  3126. // csTest.Format(_T("存储过程耗时 GSP_GR_UserSaveScore ----> %.3f "), dRet);
  3127. //
  3128. // //提示消息
  3129. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  3130. // }
  3131. //
  3132. // return true;
  3133. // }
  3134. // catch (IDataBaseException * pIException)
  3135. // {
  3136. // //错误信息
  3137. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  3138. //
  3139. // //错误处理
  3140. // OnInsureDisposeResult(dwContextID, DB_ERROR, pUserSaveScore->lSaveScore, TEXT("由于数据库操作异常,请您稍后重试!"), false, pUserSaveScore->cbActivityGame);
  3141. // double dRet = Start.End();
  3142. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  3143. // {
  3144. // CString csTest;
  3145. //
  3146. // csTest.Format(_T("存储过程耗时 GSP_GR_UserSaveScore ----> %.3f "), dRet);
  3147. //
  3148. // //提示消息
  3149. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  3150. // }
  3151. // return false;
  3152. // }
  3153. //
  3154. // return true;
  3155. //}
  3156. //
  3157. ////提取游戏币
  3158. //bool CDataBaseEngineSink::OnRequestUserTakeScore(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  3159. //{
  3160. // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestUserTakeScore"), TraceLevel_Debug);
  3161. // //效验参数
  3162. // ASSERT(wDataSize == sizeof(DBR_GR_UserTakeScore));
  3163. // if (wDataSize != sizeof(DBR_GR_UserTakeScore)) return false;
  3164. //
  3165. // //变量定义
  3166. // DBR_GR_UserTakeScore * pUserTakeScore = (DBR_GR_UserTakeScore *)pData;
  3167. // dwUserID = pUserTakeScore->dwUserID;
  3168. // CTimer Start;
  3169. // //请求处理
  3170. // try
  3171. // {
  3172. // //转化地址
  3173. // TCHAR szClientAddr[16] = TEXT("");
  3174. // BYTE * pClientAddr = (BYTE *)&pUserTakeScore->dwClientAddr;
  3175. // _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]);
  3176. //
  3177. // //构造参数
  3178. // m_TreasureDBAide.ResetParameter();
  3179. // m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), pUserTakeScore->dwUserID);
  3180. // m_TreasureDBAide.AddParameter(TEXT("@lTakeScore"), pUserTakeScore->lTakeScore);
  3181. // m_TreasureDBAide.AddParameter(TEXT("@strPassword"), pUserTakeScore->szPassword);
  3182. // m_TreasureDBAide.AddParameter(TEXT("@wKindID"), m_pGameServiceOption->wKindID);
  3183. // m_TreasureDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID);
  3184. // m_TreasureDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr);
  3185. // m_TreasureDBAide.AddParameter(TEXT("@strMachineID"), pUserTakeScore->szMachineID);
  3186. //
  3187. // //输出参数
  3188. // TCHAR szDescribeString[128] = TEXT("");
  3189. // m_TreasureDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  3190. //
  3191. // //执行查询
  3192. // LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_UserTakeScore"), true);
  3193. //
  3194. // //结果处理
  3195. // CDBVarValue DBVarValue;
  3196. // m_TreasureDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  3197. // OnInsureDisposeResult(dwContextID, lResultCode, 0L, CW2CT(DBVarValue.bstrVal), false, pUserTakeScore->cbActivityGame);
  3198. // double dRet = Start.End();
  3199. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  3200. // {
  3201. // CString csTest;
  3202. //
  3203. // csTest.Format(_T("存储过程耗时 GSP_GR_UserTakeScore ----> %.3f "), dRet);
  3204. //
  3205. // //提示消息
  3206. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  3207. // }
  3208. // return true;
  3209. // }
  3210. // catch (IDataBaseException * pIException)
  3211. // {
  3212. // //错误信息
  3213. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  3214. //
  3215. // //错误处理
  3216. // OnInsureDisposeResult(dwContextID, DB_ERROR, 0L, TEXT("由于数据库操作异常,请您稍后重试!"), false, pUserTakeScore->cbActivityGame);
  3217. // double dRet = Start.End();
  3218. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  3219. // {
  3220. // CString csTest;
  3221. //
  3222. // csTest.Format(_T("存储过程耗时 GSP_GR_UserTakeScore ----> %.3f "), dRet);
  3223. //
  3224. // //提示消息
  3225. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  3226. // }
  3227. // return false;
  3228. // }
  3229. //
  3230. // return true;
  3231. //}
  3232. //
  3233. ////转帐游戏币
  3234. //bool CDataBaseEngineSink::OnRequestUserTransferScore(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  3235. //{
  3236. // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestUserTransferScore"), TraceLevel_Debug);
  3237. // //效验参数
  3238. // ASSERT(wDataSize == sizeof(DBR_GR_UserTransferScore));
  3239. // if (wDataSize != sizeof(DBR_GR_UserTransferScore)) return false;
  3240. //
  3241. // //变量定义
  3242. // DBR_GR_UserTransferScore * pUserTransferScore = (DBR_GR_UserTransferScore *)pData;
  3243. // dwUserID = pUserTransferScore->dwUserID;
  3244. // CTimer Start;
  3245. // //请求处理
  3246. // try
  3247. // {
  3248. // //转化地址
  3249. // TCHAR szClientAddr[16] = TEXT("");
  3250. // BYTE * pClientAddr = (BYTE *)&pUserTransferScore->dwClientAddr;
  3251. // _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]);
  3252. //
  3253. // //构造参数
  3254. // m_TreasureDBAide.ResetParameter();
  3255. // m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), pUserTransferScore->dwUserID);
  3256. // m_TreasureDBAide.AddParameter(TEXT("@lTransferScore"), pUserTransferScore->lTransferScore);
  3257. // m_TreasureDBAide.AddParameter(TEXT("@strPassword"), pUserTransferScore->szPassword);
  3258. // m_TreasureDBAide.AddParameter(TEXT("@strNickName"), pUserTransferScore->szAccounts);
  3259. // m_TreasureDBAide.AddParameter(TEXT("@strTransRemark"), pUserTransferScore->szTransRemark);
  3260. // m_TreasureDBAide.AddParameter(TEXT("@wKindID"), m_pGameServiceOption->wKindID);
  3261. // m_TreasureDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID);
  3262. // m_TreasureDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr);
  3263. // m_TreasureDBAide.AddParameter(TEXT("@strMachineID"), pUserTransferScore->szMachineID);
  3264. //
  3265. // //输出参数
  3266. // TCHAR szDescribeString[128] = TEXT("");
  3267. // m_TreasureDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  3268. //
  3269. // //执行查询
  3270. // LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_UserTransferScore"), true);
  3271. //
  3272. // //结果处理
  3273. // CDBVarValue DBVarValue;
  3274. // m_TreasureDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  3275. // OnInsureDisposeResult(dwContextID, lResultCode, 0L, CW2CT(DBVarValue.bstrVal), false, pUserTransferScore->cbActivityGame);
  3276. // double dRet = Start.End();
  3277. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  3278. // {
  3279. // CString csTest;
  3280. //
  3281. // csTest.Format(_T("存储过程耗时 GSP_GR_UserTransferScore ----> %.3f "), dRet);
  3282. //
  3283. // //提示消息
  3284. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  3285. // }
  3286. // return true;
  3287. // }
  3288. // catch (IDataBaseException * pIException)
  3289. // {
  3290. // //错误信息
  3291. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  3292. //
  3293. // //错误处理
  3294. // OnInsureDisposeResult(dwContextID, DB_ERROR, 0L, TEXT("由于数据库操作异常,请您稍后重试!"), false, pUserTransferScore->cbActivityGame);
  3295. // double dRet = Start.End();
  3296. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  3297. // {
  3298. // CString csTest;
  3299. //
  3300. // csTest.Format(_T("存储过程耗时 GSP_GR_UserTransferScore ----> %.3f "), dRet);
  3301. //
  3302. // //提示消息
  3303. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  3304. // }
  3305. // return false;
  3306. // }
  3307. //
  3308. // return true;
  3309. //}
  3310. //
  3311. ////查询银行
  3312. //bool CDataBaseEngineSink::OnRequestQueryInsureInfo(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  3313. //{
  3314. // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestQueryInsureInfo"), TraceLevel_Debug);
  3315. // //效验参数
  3316. // ASSERT(wDataSize == sizeof(DBR_GR_QueryInsureInfo));
  3317. // if (wDataSize != sizeof(DBR_GR_QueryInsureInfo)) return false;
  3318. // CTimer Start;
  3319. // //请求处理
  3320. // DBR_GR_QueryInsureInfo * pQueryInsureInfo = (DBR_GR_QueryInsureInfo *)pData;
  3321. // dwUserID = pQueryInsureInfo->dwUserID;
  3322. //
  3323. // try
  3324. // {
  3325. // //转化地址
  3326. // TCHAR szClientAddr[16] = TEXT("");
  3327. // BYTE * pClientAddr = (BYTE *)&pQueryInsureInfo->dwClientAddr;
  3328. // _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]);
  3329. //
  3330. // //构造参数
  3331. // m_TreasureDBAide.ResetParameter();
  3332. // m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), pQueryInsureInfo->dwUserID);
  3333. // m_TreasureDBAide.AddParameter(TEXT("@strPassword"), pQueryInsureInfo->szPassword);
  3334. // m_TreasureDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr);
  3335. //
  3336. // //输出参数
  3337. // TCHAR szDescribeString[128] = TEXT("");
  3338. // m_TreasureDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  3339. //
  3340. // //结果处理
  3341. // if (m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_QueryUserInsureInfo"), true) == DB_SUCCESS)
  3342. // {
  3343. // //变量定义
  3344. // DBO_GR_UserInsureInfo UserInsureInfo;
  3345. // ZeroMemory(&UserInsureInfo, sizeof(UserInsureInfo));
  3346. //
  3347. // //银行信息
  3348. // UserInsureInfo.cbActivityGame = pQueryInsureInfo->cbActivityGame;
  3349. // UserInsureInfo.cbEnjoinTransfer = m_TreasureDBAide.GetValue_BYTE(TEXT("EnjoinTransfer"));
  3350. // UserInsureInfo.wRevenueTake = m_TreasureDBAide.GetValue_WORD(TEXT("RevenueTake"));
  3351. // UserInsureInfo.wRevenueTransfer = m_TreasureDBAide.GetValue_WORD(TEXT("RevenueTransfer"));
  3352. // UserInsureInfo.wRevenueTransferMember = m_TreasureDBAide.GetValue_WORD(TEXT("RevenueTransferMember"));
  3353. // UserInsureInfo.wServerID = m_TreasureDBAide.GetValue_WORD(TEXT("ServerID"));
  3354. // UserInsureInfo.lUserScore = m_TreasureDBAide.GetValue_LONGLONG(TEXT("Score"));
  3355. // UserInsureInfo.lUserInsure = m_TreasureDBAide.GetValue_LONGLONG(TEXT("Insure"));
  3356. // UserInsureInfo.lTransferPrerequisite = m_TreasureDBAide.GetValue_LONGLONG(TEXT("TransferPrerequisite"));
  3357. //
  3358. // //发送结果
  3359. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_USER_INSURE_INFO, dwContextID, &UserInsureInfo, sizeof(UserInsureInfo));
  3360. // }
  3361. // else
  3362. // {
  3363. // //获取参数
  3364. // CDBVarValue DBVarValue;
  3365. // m_TreasureDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  3366. //
  3367. // //错误处理
  3368. // OnInsureDisposeResult(dwContextID, m_TreasureDBAide.GetReturnValue(), 0L, CW2CT(DBVarValue.bstrVal), false, pQueryInsureInfo->cbActivityGame);
  3369. // }
  3370. // double dRet = Start.End();
  3371. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  3372. // {
  3373. // CString csTest;
  3374. //
  3375. // csTest.Format(_T("存储过程耗时 GSP_GR_QueryUserInsureInfo ----> %.3f "), dRet);
  3376. //
  3377. // //提示消息
  3378. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  3379. // }
  3380. // return true;
  3381. // }
  3382. // catch (IDataBaseException * pIException)
  3383. // {
  3384. // //输出错误
  3385. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  3386. //
  3387. // //结果处理
  3388. // OnInsureDisposeResult(dwContextID, DB_ERROR, 0L, TEXT("由于数据库操作异常,请您稍后重试!"), false, pQueryInsureInfo->cbActivityGame);
  3389. // double dRet = Start.End();
  3390. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  3391. // {
  3392. // CString csTest;
  3393. //
  3394. // csTest.Format(_T("存储过程耗时 GSP_GR_QueryUserInsureInfo ----> %.3f "), dRet);
  3395. //
  3396. // //提示消息
  3397. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  3398. // }
  3399. // return false;
  3400. // }
  3401. //
  3402. // return true;
  3403. //}
  3404. //
  3405. ////查询用户
  3406. //bool CDataBaseEngineSink::OnRequestQueryTransferUserInfo(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  3407. //{
  3408. // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestQueryTransferUserInfo"), TraceLevel_Debug);
  3409. // //效验参数
  3410. // ASSERT(wDataSize == sizeof(DBR_GR_QueryTransferUserInfo));
  3411. // if (wDataSize != sizeof(DBR_GR_QueryTransferUserInfo)) return false;
  3412. //
  3413. // //请求处理
  3414. // DBR_GR_QueryTransferUserInfo * pQueryTransferUserInfo = (DBR_GR_QueryTransferUserInfo *)pData;
  3415. // dwUserID = pQueryTransferUserInfo->dwUserID;
  3416. // CTimer Start;
  3417. // try
  3418. // {
  3419. // //构造参数
  3420. // m_TreasureDBAide.ResetParameter();
  3421. // m_TreasureDBAide.AddParameter(TEXT("@cbByNickName"), pQueryTransferUserInfo->cbByNickName);
  3422. // m_TreasureDBAide.AddParameter(TEXT("@strAccounts"), pQueryTransferUserInfo->szAccounts);
  3423. //
  3424. // //输出参数
  3425. // TCHAR szDescribeString[128] = TEXT("");
  3426. // m_TreasureDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  3427. //
  3428. // //结果处理
  3429. // if (m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_QueryTransferUserInfo"), true) == DB_SUCCESS)
  3430. // {
  3431. // //变量定义
  3432. // DBO_GR_UserTransferUserInfo TransferUserInfo;
  3433. // ZeroMemory(&TransferUserInfo, sizeof(TransferUserInfo));
  3434. //
  3435. // //银行信息
  3436. // TransferUserInfo.cbActivityGame = pQueryTransferUserInfo->cbActivityGame;
  3437. // TransferUserInfo.dwGameID = m_TreasureDBAide.GetValue_DWORD(TEXT("GameID"));
  3438. // m_TreasureDBAide.GetValue_String(TEXT("Accounts"), TransferUserInfo.szAccounts, CountArray(TransferUserInfo.szAccounts));
  3439. //
  3440. // //发送结果
  3441. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_USER_INSURE_USER_INFO, dwContextID, &TransferUserInfo, sizeof(TransferUserInfo));
  3442. // }
  3443. // else
  3444. // {
  3445. // //获取参数
  3446. // CDBVarValue DBVarValue;
  3447. // m_TreasureDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  3448. //
  3449. // //错误处理
  3450. // OnInsureDisposeResult(dwContextID, m_TreasureDBAide.GetReturnValue(), 0L, CW2CT(DBVarValue.bstrVal), false, pQueryTransferUserInfo->cbActivityGame);
  3451. // }
  3452. // double dRet = Start.End();
  3453. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  3454. // {
  3455. // CString csTest;
  3456. //
  3457. // csTest.Format(_T("存储过程耗时 GSP_GR_QueryTransferUserInfo ----> %.3f "), dRet);
  3458. //
  3459. // //提示消息
  3460. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  3461. // }
  3462. // return true;
  3463. // }
  3464. // catch (IDataBaseException * pIException)
  3465. // {
  3466. // //输出错误
  3467. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  3468. //
  3469. // //结果处理
  3470. // OnInsureDisposeResult(dwContextID, DB_ERROR, 0L, TEXT("由于数据库操作异常,请您稍后重试!"), false, pQueryTransferUserInfo->cbActivityGame);
  3471. // double dRet = Start.End();
  3472. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  3473. // {
  3474. // CString csTest;
  3475. //
  3476. // csTest.Format(_T("存储过程耗时 GSP_GR_QueryTransferUserInfo ----> %.3f "), dRet);
  3477. //
  3478. // //提示消息
  3479. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  3480. // }
  3481. // return false;
  3482. // }
  3483. //
  3484. // return true;
  3485. //}
  3486. ////领取任务
  3487. //bool CDataBaseEngineSink::OnRequestTaskTake(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  3488. //{
  3489. // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestTaskTake"), TraceLevel_Debug);
  3490. // CTimer Start;
  3491. // try
  3492. // {
  3493. // //效验参数
  3494. // ASSERT(wDataSize == sizeof(DBR_GR_TaskTake));
  3495. // if (wDataSize != sizeof(DBR_GR_TaskTake)) return false;
  3496. //
  3497. // //请求处理
  3498. // DBR_GR_TaskTake * pTaskTake = (DBR_GR_TaskTake *)pData;
  3499. //
  3500. // //设置变量
  3501. // dwUserID = pTaskTake->dwUserID;
  3502. //
  3503. // //转化地址
  3504. // TCHAR szClientAddr[16] = TEXT("");
  3505. // BYTE * pClientAddr = (BYTE *)&pTaskTake->dwClientAddr;
  3506. // _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]);
  3507. //
  3508. // //构造参数
  3509. // m_PlatformDBAide.ResetParameter();
  3510. // m_PlatformDBAide.AddParameter(TEXT("@dwUserID"), pTaskTake->dwUserID);
  3511. // m_PlatformDBAide.AddParameter(TEXT("@wTaskID"), pTaskTake->wTaskID);
  3512. // m_PlatformDBAide.AddParameter(TEXT("@strPassword"), pTaskTake->szPassword);
  3513. // m_PlatformDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr);
  3514. // m_PlatformDBAide.AddParameter(TEXT("@strMachineID"), pTaskTake->szMachineID);
  3515. //
  3516. // //输出参数
  3517. // TCHAR szDescribeString[128] = TEXT("");
  3518. // m_PlatformDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  3519. //
  3520. // //执行脚本
  3521. // LONG lResultCode = m_PlatformDBAide.ExecuteProcess(TEXT("GSP_GR_TaskTake"), false);
  3522. //
  3523. // //变量定义
  3524. // DBO_GR_TaskResult TaskResult;
  3525. // ZeroMemory(&TaskResult, sizeof(TaskResult));
  3526. //
  3527. // //获取参数
  3528. // CDBVarValue DBVarValue;
  3529. // m_PlatformDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  3530. //
  3531. // //银行信息
  3532. // TaskResult.wCommandID = SUB_GR_TASK_TAKE;
  3533. // TaskResult.wCurrTaskID = pTaskTake->wTaskID;
  3534. // TaskResult.bSuccessed = lResultCode == DB_SUCCESS;
  3535. // lstrcpyn(TaskResult.szNotifyContent, CW2CT(DBVarValue.bstrVal), CountArray(TaskResult.szNotifyContent));
  3536. //
  3537. // //发送结果
  3538. // WORD wSendSize = sizeof(TaskResult) - sizeof(TaskResult.szNotifyContent) + CountStringBuffer(TaskResult.szNotifyContent);
  3539. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_TASK_RESULT, dwContextID, &TaskResult, wSendSize);
  3540. // double dRet = Start.End();
  3541. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  3542. // {
  3543. // CString csTest;
  3544. //
  3545. // csTest.Format(_T("存储过程耗时 GSP_GR_TaskTake ----> %.3f "), dRet);
  3546. //
  3547. // //提示消息
  3548. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  3549. // }
  3550. // return true;
  3551. // }
  3552. // catch (IDataBaseException * pIException)
  3553. // {
  3554. // //输出错误
  3555. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  3556. //
  3557. // //构造结构
  3558. // DBO_GR_TaskResult TaskResult;
  3559. // TaskResult.bSuccessed = false;
  3560. // TaskResult.wCommandID = SUB_GR_TASK_TAKE;
  3561. // lstrcpyn(TaskResult.szNotifyContent, TEXT("由于数据库操作异常,请您稍后重试!"), CountArray(TaskResult.szNotifyContent));
  3562. //
  3563. // //发送结果
  3564. // WORD wSendSize = sizeof(TaskResult) - sizeof(TaskResult.szNotifyContent) + CountStringBuffer(TaskResult.szNotifyContent);
  3565. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_TASK_RESULT, dwContextID, &TaskResult, wSendSize);
  3566. // double dRet = Start.End();
  3567. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  3568. // {
  3569. // CString csTest;
  3570. //
  3571. // csTest.Format(_T("存储过程耗时 GSP_GR_TaskTake ----> %.3f "), dRet);
  3572. //
  3573. // //提示消息
  3574. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  3575. // }
  3576. // return false;
  3577. // }
  3578. //}
  3579. //
  3580. ////领取奖励
  3581. //bool CDataBaseEngineSink::OnRequestTaskReward(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  3582. //{
  3583. // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestTaskReward"), TraceLevel_Debug);
  3584. // CTimer Start;
  3585. // try
  3586. // {
  3587. // //效验参数
  3588. // ASSERT(wDataSize == sizeof(DBR_GR_TaskReward));
  3589. // if (wDataSize != sizeof(DBR_GR_TaskReward)) return false;
  3590. //
  3591. // //请求处理
  3592. // DBR_GR_TaskReward * pTaskReward = (DBR_GR_TaskReward *)pData;
  3593. //
  3594. // //设置变量
  3595. // dwUserID = pTaskReward->dwUserID;
  3596. //
  3597. // //转化地址
  3598. // TCHAR szClientAddr[16] = TEXT("");
  3599. // BYTE * pClientAddr = (BYTE *)&pTaskReward->dwClientAddr;
  3600. // _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]);
  3601. //
  3602. // //构造参数
  3603. // m_PlatformDBAide.ResetParameter();
  3604. // m_PlatformDBAide.AddParameter(TEXT("@dwUserID"), pTaskReward->dwUserID);
  3605. // m_PlatformDBAide.AddParameter(TEXT("@wTaskID"), pTaskReward->wTaskID);
  3606. // m_PlatformDBAide.AddParameter(TEXT("@strPassword"), pTaskReward->szPassword);
  3607. // m_PlatformDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr);
  3608. // m_PlatformDBAide.AddParameter(TEXT("@strMachineID"), pTaskReward->szMachineID);
  3609. //
  3610. // //输出参数
  3611. // TCHAR szDescribeString[128] = TEXT("");
  3612. // m_PlatformDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  3613. //
  3614. // //执行脚本
  3615. // LONG lResultCode = m_PlatformDBAide.ExecuteProcess(TEXT("GSP_GR_TaskReward"), true);
  3616. //
  3617. // //变量定义
  3618. // DBO_GR_TaskResult TaskResult;
  3619. // ZeroMemory(&TaskResult, sizeof(TaskResult));
  3620. //
  3621. // //获取参数
  3622. // CDBVarValue DBVarValue;
  3623. // m_PlatformDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  3624. //
  3625. // //银行信息
  3626. // TaskResult.wCommandID = SUB_GR_TASK_REWARD;
  3627. // TaskResult.wCurrTaskID = pTaskReward->wTaskID;
  3628. // TaskResult.bSuccessed = lResultCode == DB_SUCCESS;
  3629. // lstrcpyn(TaskResult.szNotifyContent, CW2CT(DBVarValue.bstrVal), CountArray(TaskResult.szNotifyContent));
  3630. //
  3631. // //获取分数
  3632. // if (TaskResult.bSuccessed == true)
  3633. // {
  3634. // TaskResult.lCurrScore = m_PlatformDBAide.GetValue_LONGLONG(TEXT("Score"));
  3635. // TaskResult.lCurrIngot = m_PlatformDBAide.GetValue_LONGLONG(TEXT("Ingot"));
  3636. // }
  3637. //
  3638. // //发送结果
  3639. // WORD wSendSize = sizeof(TaskResult) - sizeof(TaskResult.szNotifyContent) + CountStringBuffer(TaskResult.szNotifyContent);
  3640. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_TASK_RESULT, dwContextID, &TaskResult, wSendSize);
  3641. // double dRet = Start.End();
  3642. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  3643. // {
  3644. // CString csTest;
  3645. //
  3646. // csTest.Format(_T("存储过程耗时 GSP_GR_TaskReward ----> %.3f "), dRet);
  3647. //
  3648. // //提示消息
  3649. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  3650. // }
  3651. //
  3652. // return true;
  3653. // }
  3654. // catch (IDataBaseException * pIException)
  3655. // {
  3656. // //输出错误
  3657. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  3658. //
  3659. // //构造结构
  3660. // DBO_GR_TaskResult TaskResult;
  3661. // TaskResult.bSuccessed = false;
  3662. // TaskResult.wCommandID = SUB_GR_TASK_REWARD;
  3663. // lstrcpyn(TaskResult.szNotifyContent, TEXT("由于数据库操作异常,请您稍后重试!"), CountArray(TaskResult.szNotifyContent));
  3664. //
  3665. // //发送结果
  3666. // WORD wSendSize = sizeof(TaskResult) - sizeof(TaskResult.szNotifyContent) + CountStringBuffer(TaskResult.szNotifyContent);
  3667. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_TASK_RESULT, dwContextID, &TaskResult, wSendSize);
  3668. // double dRet = Start.End();
  3669. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  3670. // {
  3671. // CString csTest;
  3672. //
  3673. // csTest.Format(_T("存储过程耗时 GSP_GR_TaskReward ----> %.3f "), dRet);
  3674. //
  3675. // //提示消息
  3676. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  3677. // }
  3678. // return false;
  3679. // }
  3680. //}
  3681. //加载任务
  3682. //bool CDataBaseEngineSink::OnRequestLoadTaskList(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  3683. //{
  3684. // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestLoadTaskList"), TraceLevel_Debug);
  3685. // CTimer Start;
  3686. // try
  3687. // {
  3688. // //设置变量
  3689. // dwUserID = 0;
  3690. //
  3691. // //构造参数
  3692. // m_PlatformDBAide.ResetParameter();
  3693. //
  3694. // //执行命令
  3695. // LONG lResultCode = m_PlatformDBAide.ExecuteProcess(TEXT("GSP_GR_LoadTaskList"), true);
  3696. //
  3697. // //执行成功
  3698. // if (lResultCode == DB_SUCCESS)
  3699. // {
  3700. // //变量定义
  3701. // tagTaskParameter TaskParameter;
  3702. // BYTE cbDataBuffer[SOCKET_TCP_PACKET - 1024] = { 0 };
  3703. // DBO_GR_TaskListInfo * pTaskListInfo = (DBO_GR_TaskListInfo *)cbDataBuffer;
  3704. // LPBYTE pDataBuffer = cbDataBuffer + sizeof(DBO_GR_TaskListInfo);
  3705. //
  3706. // //设置变量
  3707. // WORD wTaskCount = 0;
  3708. // WORD wSendDataSize = sizeof(DBO_GR_TaskListInfo);
  3709. //
  3710. // //变量定义
  3711. // while (m_PlatformDBModule->IsRecordsetEnd() == false)
  3712. // {
  3713. // //读取数据
  3714. // TaskParameter.wTaskID = m_PlatformDBAide.GetValue_WORD(TEXT("TaskID"));
  3715. // TaskParameter.wTaskType = m_PlatformDBAide.GetValue_WORD(TEXT("TaskType"));
  3716. // TaskParameter.cbPlayerType = m_PlatformDBAide.GetValue_BYTE(TEXT("UserType"));
  3717. // TaskParameter.wKindID = m_PlatformDBAide.GetValue_WORD(TEXT("KindID"));
  3718. // TaskParameter.wTaskObject = m_PlatformDBAide.GetValue_WORD(TEXT("Innings"));
  3719. // TaskParameter.dwTimeLimit = m_PlatformDBAide.GetValue_DWORD(TEXT("TimeLimit"));
  3720. // TaskParameter.lStandardAwardGold = m_PlatformDBAide.GetValue_LONGLONG(TEXT("StandardAwardGold"));
  3721. // TaskParameter.lStandardAwardMedal = m_PlatformDBAide.GetValue_LONGLONG(TEXT("StandardAwardMedal"));
  3722. // TaskParameter.lMemberAwardGold = m_PlatformDBAide.GetValue_LONGLONG(TEXT("MemberAwardGold"));
  3723. // TaskParameter.lMemberAwardMedal = m_PlatformDBAide.GetValue_LONGLONG(TEXT("MemberAwardMedal"));
  3724. //
  3725. // //描述信息
  3726. // m_PlatformDBAide.GetValue_String(TEXT("TaskName"), TaskParameter.szTaskName, CountArray(TaskParameter.szTaskName));
  3727. // m_PlatformDBAide.GetValue_String(TEXT("TaskDescription"), TaskParameter.szTaskDescribe, CountArray(TaskParameter.szTaskDescribe));
  3728. //
  3729. // //发送判断
  3730. // if (wSendDataSize + sizeof(tagTaskParameter) > sizeof(cbDataBuffer))
  3731. // {
  3732. // //设置变量
  3733. // pTaskListInfo->wTaskCount = wTaskCount;
  3734. //
  3735. // //发送数据
  3736. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_TASK_LIST, dwContextID, pTaskListInfo, wSendDataSize);
  3737. //
  3738. // //重置变量
  3739. // wTaskCount = 0;
  3740. // wSendDataSize = sizeof(DBO_GR_TaskListInfo);
  3741. // pDataBuffer = cbDataBuffer + sizeof(DBO_GR_TaskListInfo);
  3742. // }
  3743. //
  3744. // //拷贝数据
  3745. // CopyMemory(pDataBuffer, &TaskParameter, sizeof(tagTaskParameter));
  3746. //
  3747. // //设置变量
  3748. // wTaskCount++;
  3749. // wSendDataSize += sizeof(tagTaskParameter);
  3750. // pDataBuffer += sizeof(tagTaskParameter);
  3751. //
  3752. // //移动记录
  3753. // m_PlatformDBModule->MoveToNext();
  3754. // }
  3755. //
  3756. // //剩余发送
  3757. // if (wTaskCount > 0 && wSendDataSize > 0)
  3758. // {
  3759. // //设置变量
  3760. // pTaskListInfo->wTaskCount = wTaskCount;
  3761. //
  3762. // //发送数据
  3763. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_TASK_LIST, dwContextID, pTaskListInfo, wSendDataSize);
  3764. // }
  3765. //
  3766. // //发送通知
  3767. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_TASK_LIST_END, dwContextID, NULL, 0);
  3768. // }
  3769. // double dRet = Start.End();
  3770. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  3771. // {
  3772. // CString csTest;
  3773. //
  3774. // csTest.Format(_T("存储过程耗时 GSP_GR_LoadTaskList ----> %.3f "), dRet);
  3775. //
  3776. // //提示消息
  3777. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  3778. // }
  3779. //
  3780. // return true;
  3781. // }
  3782. // catch (IDataBaseException * pIException)
  3783. // {
  3784. // //输出错误
  3785. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  3786. // double dRet = Start.End();
  3787. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  3788. // {
  3789. // CString csTest;
  3790. //
  3791. // csTest.Format(_T("存储过程耗时 GSP_GR_LoadTaskList ----> %.3f "), dRet);
  3792. //
  3793. // //提示消息
  3794. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  3795. // }
  3796. // return false;
  3797. // }
  3798. //
  3799. // return true;
  3800. //}
  3801. ////查询任务
  3802. //bool CDataBaseEngineSink::OnRequestTaskQueryInfo(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  3803. //{
  3804. // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestTaskQueryInfo"), TraceLevel_Debug);
  3805. // CTimer Start;
  3806. // try
  3807. // {
  3808. // //效验参数
  3809. // ASSERT(wDataSize == sizeof(DBR_GR_TaskQueryInfo));
  3810. // if (wDataSize != sizeof(DBR_GR_TaskQueryInfo)) return false;
  3811. //
  3812. // //请求处理
  3813. // DBR_GR_TaskQueryInfo * pTaskQueryInfo = (DBR_GR_TaskQueryInfo *)pData;
  3814. //
  3815. // //设置变量
  3816. // dwUserID = pTaskQueryInfo->dwUserID;
  3817. //
  3818. // //构造参数
  3819. // m_PlatformDBAide.ResetParameter();
  3820. // m_PlatformDBAide.AddParameter(TEXT("@wKindID"), 0);
  3821. // m_PlatformDBAide.AddParameter(TEXT("@dwUserID"), pTaskQueryInfo->dwUserID);
  3822. // m_PlatformDBAide.AddParameter(TEXT("@strPassword"), pTaskQueryInfo->szPassword);
  3823. //
  3824. // //输出参数
  3825. // TCHAR szDescribeString[128] = TEXT("");
  3826. // m_PlatformDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  3827. //
  3828. // //执行脚本
  3829. // LONG lResultCode = m_PlatformDBAide.ExecuteProcess(TEXT("GSP_GR_QueryTaskInfo"), true);
  3830. //
  3831. // //执行成功
  3832. // if (lResultCode == DB_SUCCESS)
  3833. // {
  3834. // //变量定义
  3835. // DBO_GR_TaskInfo TaskInfo;
  3836. // tagTaskStatus * pTaskStatus = NULL;
  3837. // ZeroMemory(&TaskInfo, sizeof(TaskInfo));
  3838. //
  3839. // //变量定义
  3840. // while (m_PlatformDBModule->IsRecordsetEnd() == false)
  3841. // {
  3842. // //设置变量
  3843. // pTaskStatus = &TaskInfo.TaskStatus[TaskInfo.wTaskCount++];
  3844. //
  3845. // //读取数据
  3846. // pTaskStatus->wTaskID = m_PlatformDBAide.GetValue_WORD(TEXT("TaskID"));
  3847. // pTaskStatus->cbTaskStatus = m_PlatformDBAide.GetValue_BYTE(TEXT("TaskStatus"));
  3848. // pTaskStatus->wTaskProgress = m_PlatformDBAide.GetValue_WORD(TEXT("Progress"));
  3849. //
  3850. // //移动记录
  3851. // m_PlatformDBModule->MoveToNext();
  3852. // }
  3853. //
  3854. // //发送结果
  3855. // WORD wSendDataSize = sizeof(TaskInfo) - sizeof(TaskInfo.TaskStatus);
  3856. // wSendDataSize += sizeof(TaskInfo.TaskStatus[0])*TaskInfo.wTaskCount;
  3857. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_TASK_INFO, dwContextID, &TaskInfo, wSendDataSize);
  3858. // }
  3859. // else
  3860. // {
  3861. // //变量定义
  3862. // DBO_GR_TaskResult TaskResult;
  3863. // ZeroMemory(&TaskResult, sizeof(TaskResult));
  3864. //
  3865. // //获取参数
  3866. // CDBVarValue DBVarValue;
  3867. // m_PlatformDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  3868. //
  3869. // //银行信息
  3870. // TaskResult.bSuccessed = false;
  3871. // TaskResult.wCommandID = SUB_GR_TASK_LOAD_INFO;
  3872. // lstrcpyn(TaskResult.szNotifyContent, CW2CT(DBVarValue.bstrVal), CountArray(TaskResult.szNotifyContent));
  3873. //
  3874. // //发送结果
  3875. // WORD wSendSize = sizeof(TaskResult) - sizeof(TaskResult.szNotifyContent) + CountStringBuffer(TaskResult.szNotifyContent);
  3876. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_TASK_RESULT, dwContextID, &TaskResult, wSendSize);
  3877. // }
  3878. // double dRet = Start.End();
  3879. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  3880. // {
  3881. // CString csTest;
  3882. //
  3883. // csTest.Format(_T("存储过程耗时 GSP_GR_QueryTaskInfo ----> %.3f "), dRet);
  3884. //
  3885. // //提示消息
  3886. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  3887. // }
  3888. // return true;
  3889. // }
  3890. // catch (IDataBaseException * pIException)
  3891. // {
  3892. // //输出错误
  3893. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  3894. //
  3895. // //构造结构
  3896. // DBO_GR_TaskResult TaskResult;
  3897. // TaskResult.bSuccessed = false;
  3898. // TaskResult.wCommandID = SUB_GR_TASK_LOAD_INFO;
  3899. // lstrcpyn(TaskResult.szNotifyContent, TEXT("由于数据库操作异常,请您稍后重试!"), CountArray(TaskResult.szNotifyContent));
  3900. //
  3901. // //发送结果
  3902. // WORD wSendSize = sizeof(TaskResult) - sizeof(TaskResult.szNotifyContent) + CountStringBuffer(TaskResult.szNotifyContent);
  3903. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_TASK_RESULT, dwContextID, &TaskResult, wSendSize);
  3904. // double dRet = Start.End();
  3905. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  3906. // {
  3907. // CString csTest;
  3908. //
  3909. // csTest.Format(_T("存储过程耗时 GSP_GR_QueryTaskInfo ----> %.3f "), dRet);
  3910. //
  3911. // //提示消息
  3912. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  3913. // }
  3914. // return false;
  3915. // }
  3916. //}
  3917. ////会员参数
  3918. //bool CDataBaseEngineSink::OnRequestLoadMemberParameter(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  3919. //{
  3920. // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestLoadMemberParameter"), TraceLevel_Debug);
  3921. // CTimer Start;
  3922. //
  3923. // try
  3924. // {
  3925. // //设置变量
  3926. // dwUserID = 0;
  3927. //
  3928. // //构造参数
  3929. // m_TreasureDBAide.ResetParameter();
  3930. //
  3931. // //执行命令
  3932. // LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_LoadMemberParameter"), true);
  3933. //
  3934. // //执行成功
  3935. // if (lResultCode == DB_SUCCESS)
  3936. // {
  3937. // //变量定义
  3938. // DBO_GR_MemberParameter MemberParameter;
  3939. // ZeroMemory(&MemberParameter, sizeof(MemberParameter));
  3940. //
  3941. // //设置变量
  3942. // WORD wMemberCount = 0;
  3943. // tagMemberParameter * pMemberParameter = NULL;
  3944. //
  3945. // //变量定义
  3946. // while (m_TreasureDBModule->IsRecordsetEnd() == false)
  3947. // {
  3948. // //设置变量
  3949. // pMemberParameter = &MemberParameter.MemberParameter[MemberParameter.wMemberCount++];
  3950. //
  3951. // //读取数据
  3952. // pMemberParameter->cbMemberOrder = m_TreasureDBAide.GetValue_BYTE(TEXT("MemberOrder"));
  3953. // pMemberParameter->lMemberPrice = m_TreasureDBAide.GetValue_LONGLONG(TEXT("MemberPrice"));
  3954. // pMemberParameter->lPresentScore = m_TreasureDBAide.GetValue_LONGLONG(TEXT("PresentScore"));
  3955. // m_TreasureDBAide.GetValue_String(TEXT("MemberName"), pMemberParameter->szMemberName, CountArray(pMemberParameter->szMemberName));
  3956. //
  3957. // //移动记录
  3958. // m_TreasureDBModule->MoveToNext();
  3959. // }
  3960. //
  3961. // //发送数据
  3962. // WORD wSendDataSize = sizeof(MemberParameter) - sizeof(MemberParameter.MemberParameter);
  3963. // wSendDataSize += sizeof(tagMemberParameter)*MemberParameter.wMemberCount;
  3964. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_GAME_MEMBER_PAREMETER, dwContextID, &MemberParameter, wSendDataSize);
  3965. //
  3966. // double dRet = Start.End();
  3967. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  3968. // {
  3969. // CString csTest;
  3970. //
  3971. // csTest.Format(_T("存储过程耗时 GSP_GR_LoadMemberParameter ----> %.3f "), dRet);
  3972. //
  3973. // //提示消息
  3974. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  3975. // }
  3976. // }
  3977. //
  3978. // return true;
  3979. // }
  3980. // catch (IDataBaseException * pIException)
  3981. // {
  3982. // //输出错误
  3983. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  3984. // double dRet = Start.End();
  3985. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  3986. // {
  3987. // CString csTest;
  3988. //
  3989. // csTest.Format(_T("存储过程耗时 GSP_GR_LoadMemberParameter ----> %.3f "), dRet);
  3990. //
  3991. // //提示消息
  3992. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  3993. // }
  3994. // return false;
  3995. // }
  3996. //
  3997. // return true;
  3998. //}
  3999. //
  4000. ////购买会员
  4001. //bool CDataBaseEngineSink::OnRequestPurchaseMember(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  4002. //{
  4003. // CTraceService::TraceString(TEXT(" CDataBaseEngineSink::OnRequestPurchaseMember"), TraceLevel_Debug);
  4004. // CTimer Start;
  4005. // try
  4006. // {
  4007. // //效验参数
  4008. // ASSERT(wDataSize == sizeof(DBR_GR_PurchaseMember));
  4009. // if (wDataSize != sizeof(DBR_GR_PurchaseMember)) return false;
  4010. //
  4011. // //请求处理
  4012. // DBR_GR_PurchaseMember * pPurchaseMember = (DBR_GR_PurchaseMember *)pData;
  4013. //
  4014. // //设置变量
  4015. // dwUserID = pPurchaseMember->dwUserID;
  4016. //
  4017. // //转化地址
  4018. // TCHAR szClientAddr[16] = TEXT("");
  4019. // BYTE * pClientAddr = (BYTE *)&pPurchaseMember->dwClientAddr;
  4020. // _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]);
  4021. //
  4022. // //构造参数
  4023. // m_TreasureDBAide.ResetParameter();
  4024. // m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), pPurchaseMember->dwUserID);
  4025. // m_TreasureDBAide.AddParameter(TEXT("@cbMemberOrder"), pPurchaseMember->cbMemberOrder);
  4026. // m_TreasureDBAide.AddParameter(TEXT("@PurchaseTime"), pPurchaseMember->wPurchaseTime);
  4027. // m_TreasureDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr);
  4028. // m_TreasureDBAide.AddParameter(TEXT("@strMachineID"), pPurchaseMember->szMachineID);
  4029. //
  4030. // //输出参数
  4031. // TCHAR szDescribeString[128] = TEXT("");
  4032. // m_TreasureDBAide.AddParameterOutput(TEXT("@strNotifyContent"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  4033. //
  4034. // //执行脚本
  4035. // LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_PurchaseMember"), true);
  4036. //
  4037. // //构造结构
  4038. // DBO_GR_PurchaseResult PurchaseResult;
  4039. // ZeroMemory(&PurchaseResult, sizeof(PurchaseResult));
  4040. //
  4041. // //执行成功
  4042. // if (lResultCode == DB_SUCCESS)
  4043. // {
  4044. // //设置变量
  4045. // PurchaseResult.bSuccessed = true;
  4046. //
  4047. // //变量定义
  4048. // if (m_TreasureDBModule->IsRecordsetEnd() == false)
  4049. // {
  4050. // //读取数据
  4051. // PurchaseResult.lCurrScore = m_TreasureDBAide.GetValue_LONGLONG(TEXT("CurrScore"));
  4052. // PurchaseResult.dwUserRight = m_TreasureDBAide.GetValue_DWORD(TEXT("UserRight"));
  4053. // PurchaseResult.cbMemberOrder = m_TreasureDBAide.GetValue_BYTE(TEXT("MemberOrder"));
  4054. // }
  4055. // }
  4056. //
  4057. // //提示内容
  4058. // CDBVarValue DBVarValue;
  4059. // m_TreasureDBModule->GetParameter(TEXT("@strNotifyContent"), DBVarValue);
  4060. // lstrcpyn(PurchaseResult.szNotifyContent, CW2CT(DBVarValue.bstrVal), CountArray(PurchaseResult.szNotifyContent));
  4061. //
  4062. // //计算大小
  4063. // WORD wSendDataSize = sizeof(PurchaseResult) - sizeof(PurchaseResult.szNotifyContent);
  4064. // wSendDataSize += CountStringBuffer(PurchaseResult.szNotifyContent);
  4065. //
  4066. // //发送参数
  4067. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_PURCHASE_RESULT, dwContextID, &PurchaseResult, wSendDataSize);
  4068. // double dRet = Start.End();
  4069. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  4070. // {
  4071. // CString csTest;
  4072. //
  4073. // csTest.Format(_T("存储过程耗时 GSP_GR_PurchaseMember ----> %.3f "), dRet);
  4074. //
  4075. // //提示消息
  4076. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  4077. // }
  4078. //
  4079. // return true;
  4080. // }
  4081. // catch (IDataBaseException * pIException)
  4082. // {
  4083. // //输出错误
  4084. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  4085. //
  4086. // //构造结构
  4087. // DBO_GR_PurchaseResult PurchaseResult;
  4088. // ZeroMemory(&PurchaseResult, sizeof(PurchaseResult));
  4089. //
  4090. // //设置变量
  4091. // lstrcpyn(PurchaseResult.szNotifyContent, TEXT("数据库异常,请稍后再试!"), CountArray(PurchaseResult.szNotifyContent));
  4092. //
  4093. // //计算大小
  4094. // WORD wSendDataSize = sizeof(PurchaseResult) - sizeof(PurchaseResult.szNotifyContent);
  4095. // wSendDataSize += CountStringBuffer(PurchaseResult.szNotifyContent);
  4096. //
  4097. // //发送参数
  4098. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_PURCHASE_RESULT, dwContextID, &PurchaseResult, wSendDataSize);
  4099. // double dRet = Start.End();
  4100. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  4101. // {
  4102. // CString csTest;
  4103. //
  4104. // csTest.Format(_T("存储过程耗时 GSP_GR_PurchaseMember ----> %.3f "), dRet);
  4105. //
  4106. // //提示消息
  4107. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  4108. // }
  4109. // return false;
  4110. // }
  4111. //}
  4112. //
  4113. ////兑换游戏币
  4114. //bool CDataBaseEngineSink::OnRequestExchangeScore(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  4115. //{
  4116. // CTimer Start;
  4117. // try
  4118. // {
  4119. // //效验参数
  4120. // ASSERT(wDataSize == sizeof(DBR_GR_ExchangeScore));
  4121. // if (wDataSize != sizeof(DBR_GR_ExchangeScore)) return false;
  4122. //
  4123. // //请求处理
  4124. // DBR_GR_ExchangeScore * pExchangeScore = (DBR_GR_ExchangeScore *)pData;
  4125. //
  4126. // //设置变量
  4127. // dwUserID = pExchangeScore->dwUserID;
  4128. //
  4129. // //转化地址
  4130. // TCHAR szClientAddr[16] = TEXT("");
  4131. // BYTE * pClientAddr = (BYTE *)&pExchangeScore->dwClientAddr;
  4132. // _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]);
  4133. //
  4134. // //构造参数
  4135. // m_TreasureDBAide.ResetParameter();
  4136. // m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), pExchangeScore->dwUserID);
  4137. // ///---m_TreasureDBAide.AddParameter(TEXT("@ExchangeIngot"), pExchangeScore->lExchangeIngot);
  4138. // m_TreasureDBAide.AddParameter(TEXT("@ExchangeID"), pExchangeScore->dwExchangeID); ///兑换id
  4139. // m_TreasureDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr);
  4140. // m_TreasureDBAide.AddParameter(TEXT("@strMachineID"), pExchangeScore->szMachineID);
  4141. //
  4142. // //输出参数
  4143. // TCHAR szDescribeString[128] = TEXT("");
  4144. // m_TreasureDBAide.AddParameterOutput(TEXT("@strNotifyContent"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  4145. //
  4146. // //执行脚本
  4147. // LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_ExchangeScoreByID"), true);
  4148. //
  4149. // //构造结构
  4150. // DBO_GR_ExchangeResult ExchangeResult;
  4151. // ZeroMemory(&ExchangeResult, sizeof(ExchangeResult));
  4152. //
  4153. // ExchangeResult.bSuccessed = false;
  4154. // //执行成功
  4155. // if (lResultCode == DB_SUCCESS)
  4156. // {
  4157. // ExchangeResult.bSuccessed = true;
  4158. // if (m_TreasureDBModule->IsRecordsetEnd() == false)
  4159. // {
  4160. // //读取数据
  4161. // ExchangeResult.lCurrScore = m_TreasureDBAide.GetValue_LONGLONG(TEXT("CurrScore"));
  4162. // ExchangeResult.lCurrIngot = m_TreasureDBAide.GetValue_LONGLONG(TEXT("CurrIngot"));
  4163. // }
  4164. // }
  4165. //
  4166. // //提示内容
  4167. // CDBVarValue DBVarValue;
  4168. // m_TreasureDBModule->GetParameter(TEXT("@strNotifyContent"), DBVarValue);
  4169. // lstrcpyn(ExchangeResult.szNotifyContent, CW2CT(DBVarValue.bstrVal), CountArray(ExchangeResult.szNotifyContent));
  4170. //
  4171. // //计算大小
  4172. // WORD wSendDataSize = sizeof(ExchangeResult) - sizeof(ExchangeResult.szNotifyContent);
  4173. // wSendDataSize += CountStringBuffer(ExchangeResult.szNotifyContent);
  4174. //
  4175. // //发送参数
  4176. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_EXCHANGE_RESULT, dwContextID, &ExchangeResult, wSendDataSize);
  4177. //
  4178. // double dRet = Start.End();
  4179. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  4180. // {
  4181. // CString csTest;
  4182. // csTest.Format(_T("存储过程耗时 GSP_GR_ExchangeScoreByID ----> %.3f "), dRet);
  4183. // //提示消息
  4184. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  4185. // }
  4186. //
  4187. // return true;
  4188. // }
  4189. // catch (IDataBaseException * pIException)
  4190. // {
  4191. // //输出错误
  4192. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  4193. //
  4194. // //构造结构
  4195. // DBO_GR_ExchangeResult ExchangeResult;
  4196. // ZeroMemory(&ExchangeResult, sizeof(ExchangeResult));
  4197. //
  4198. // //设置变量
  4199. // lstrcpyn(ExchangeResult.szNotifyContent, TEXT("数据库异常,请稍后再试!"), CountArray(ExchangeResult.szNotifyContent));
  4200. //
  4201. // //计算大小
  4202. // WORD wSendDataSize = sizeof(ExchangeResult) - sizeof(ExchangeResult.szNotifyContent);
  4203. // wSendDataSize += CountStringBuffer(ExchangeResult.szNotifyContent);
  4204. //
  4205. // //发送参数
  4206. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_EXCHANGE_RESULT, dwContextID, &ExchangeResult, wSendDataSize);
  4207. //
  4208. // double dRet = Start.End();
  4209. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  4210. // {
  4211. // CString csTest;
  4212. // csTest.Format(_T("存储过程耗时 GSP_GR_ExchangeScoreByID ----> %.3f "), dRet);
  4213. // //提示消息
  4214. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  4215. // }
  4216. // return false;
  4217. // }
  4218. //}
  4219. //道具请求
  4220. //bool CDataBaseEngineSink::OnRequestPropertyRequest(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  4221. //{
  4222. // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestPropertyRequest"), TraceLevel_Debug);
  4223. // CTimer Start;
  4224. // try
  4225. // {
  4226. // //效验参数
  4227. // ASSERT(wDataSize == sizeof(DBR_GR_PropertyRequest));
  4228. // if (wDataSize != sizeof(DBR_GR_PropertyRequest)) return false;
  4229. //
  4230. // //请求处理
  4231. // DBR_GR_PropertyRequest * pPropertyRequest = (DBR_GR_PropertyRequest *)pData;
  4232. // dwUserID = pPropertyRequest->dwSourceUserID;
  4233. //
  4234. // //转化地址
  4235. // TCHAR szClientAddr[16] = TEXT("");
  4236. // BYTE * pClientAddr = (BYTE *)&pPropertyRequest->dwClientAddr;
  4237. // _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]);
  4238. //
  4239. // //构造参数
  4240. // m_GameDBAide.ResetParameter();
  4241. //
  4242. // //消费信息
  4243. // m_GameDBAide.AddParameter(TEXT("@dwSourceUserID"), pPropertyRequest->dwSourceUserID);
  4244. // m_GameDBAide.AddParameter(TEXT("@dwTargetUserID"), pPropertyRequest->dwTargetUserID);
  4245. // m_GameDBAide.AddParameter(TEXT("@wPropertyID"), pPropertyRequest->wPropertyIndex);
  4246. // m_GameDBAide.AddParameter(TEXT("@wPropertyCount"), pPropertyRequest->wItemCount);
  4247. //
  4248. // //消费区域
  4249. // m_GameDBAide.AddParameter(TEXT("@wKindID"), m_pGameServiceOption->wKindID);
  4250. // m_GameDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID);
  4251. // m_GameDBAide.AddParameter(TEXT("@wTableID"), pPropertyRequest->wTableID);
  4252. //
  4253. // //购买方式
  4254. // m_GameDBAide.AddParameter(TEXT("@cbConsumeScore"), pPropertyRequest->cbConsumeScore);
  4255. // m_GameDBAide.AddParameter(TEXT("@lFrozenedScore"), pPropertyRequest->lFrozenedScore);
  4256. //
  4257. // //系统信息
  4258. // m_GameDBAide.AddParameter(TEXT("@dwEnterID"), pPropertyRequest->dwInoutIndex);
  4259. // m_GameDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr);
  4260. // m_GameDBAide.AddParameter(TEXT("@strMachineID"), pPropertyRequest->szMachineID);
  4261. //
  4262. // //输出参数
  4263. // TCHAR szDescribeString[128] = TEXT("");
  4264. // m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  4265. //
  4266. // //结果处理
  4267. // if (m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_ConsumeProperty"), true) == DB_SUCCESS)
  4268. // {
  4269. // //变量定义
  4270. // DBO_GR_S_PropertySuccess PresentSuccess;
  4271. // ZeroMemory(&PresentSuccess, sizeof(PresentSuccess));
  4272. //
  4273. // //道具信息
  4274. // PresentSuccess.cbRequestArea = pPropertyRequest->cbRequestArea;
  4275. // PresentSuccess.wItemCount = pPropertyRequest->wItemCount;
  4276. // PresentSuccess.wPropertyIndex = pPropertyRequest->wPropertyIndex;
  4277. // PresentSuccess.dwSourceUserID = pPropertyRequest->dwSourceUserID;
  4278. // PresentSuccess.dwTargetUserID = pPropertyRequest->dwTargetUserID;
  4279. //
  4280. // //消费模式
  4281. // PresentSuccess.cbConsumeScore = pPropertyRequest->cbConsumeScore;
  4282. // PresentSuccess.lFrozenedScore = pPropertyRequest->lFrozenedScore;
  4283. //
  4284. // //用户权限
  4285. // PresentSuccess.dwUserRight = pPropertyRequest->dwUserRight;
  4286. //
  4287. // //结果信息
  4288. // PresentSuccess.lConsumeGold = m_GameDBAide.GetValue_LONGLONG(TEXT("ConsumeGold"));
  4289. // PresentSuccess.lSendLoveLiness = m_GameDBAide.GetValue_LONG(TEXT("SendLoveLiness"));
  4290. // PresentSuccess.lRecvLoveLiness = m_GameDBAide.GetValue_LONG(TEXT("RecvLoveLiness"));
  4291. // PresentSuccess.cbMemberOrder = m_GameDBAide.GetValue_BYTE(TEXT("MemberOrder"));
  4292. //
  4293. // //发送结果
  4294. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_PROPERTY_SUCCESS, dwContextID, &PresentSuccess, sizeof(PresentSuccess));
  4295. // }
  4296. // else
  4297. // {
  4298. // //获取参数
  4299. // CDBVarValue DBVarValue;
  4300. // m_GameDBAide.GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  4301. //
  4302. // //变量定义
  4303. // DBO_GR_PropertyFailure PropertyFailure;
  4304. // ZeroMemory(&PropertyFailure, sizeof(PropertyFailure));
  4305. //
  4306. // //设置变量
  4307. // PropertyFailure.lResultCode = m_GameDBAide.GetReturnValue();
  4308. // PropertyFailure.lFrozenedScore = pPropertyRequest->lFrozenedScore;
  4309. // PropertyFailure.cbRequestArea = pPropertyRequest->cbRequestArea;
  4310. // lstrcpyn(PropertyFailure.szDescribeString, CW2CT(DBVarValue.bstrVal), CountArray(PropertyFailure.szDescribeString));
  4311. //
  4312. // //发送结果
  4313. // WORD wDataSize = CountStringBuffer(PropertyFailure.szDescribeString);
  4314. // WORD wHeadSize = sizeof(PropertyFailure) - sizeof(PropertyFailure.szDescribeString);
  4315. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_PROPERTY_FAILURE, dwContextID, &PropertyFailure, wHeadSize + wDataSize);
  4316. // }
  4317. //
  4318. // double dRet = Start.End();
  4319. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  4320. // {
  4321. // CString csTest;
  4322. //
  4323. // csTest.Format(_T("存储过程耗时 GSP_GR_ConsumeProperty ----> %.3f "), dRet);
  4324. //
  4325. // //提示消息
  4326. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  4327. // }
  4328. // }
  4329. // catch (IDataBaseException * pIException)
  4330. // {
  4331. // //输出错误
  4332. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  4333. //
  4334. // //变量定义
  4335. // DBO_GR_PropertyFailure PropertyFailure;
  4336. // ZeroMemory(&PropertyFailure, sizeof(PropertyFailure));
  4337. //
  4338. // //变量定义
  4339. // DBR_GR_PropertyRequest * pPropertyRequest = (DBR_GR_PropertyRequest *)pData;
  4340. //
  4341. // //设置变量
  4342. // PropertyFailure.lResultCode = DB_ERROR;
  4343. // PropertyFailure.lFrozenedScore = pPropertyRequest->lFrozenedScore;
  4344. // PropertyFailure.cbRequestArea = pPropertyRequest->cbRequestArea;
  4345. // lstrcpyn(PropertyFailure.szDescribeString, TEXT("由于数据库操作异常,请您稍后重试!"), CountArray(PropertyFailure.szDescribeString));
  4346. //
  4347. // //发送结果
  4348. // WORD wDataSize = CountStringBuffer(PropertyFailure.szDescribeString);
  4349. // WORD wHeadSize = sizeof(PropertyFailure) - sizeof(PropertyFailure.szDescribeString);
  4350. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_PROPERTY_FAILURE, dwContextID, &PropertyFailure, wHeadSize + wDataSize);
  4351. // double dRet = Start.End();
  4352. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  4353. // {
  4354. // CString csTest;
  4355. //
  4356. // csTest.Format(_T("存储过程耗时 GSP_GR_ConsumeProperty ----> %.3f "), dRet);
  4357. //
  4358. // //提示消息
  4359. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  4360. // }
  4361. // return false;
  4362. // }
  4363. //
  4364. // return true;
  4365. //}
  4366. ////比赛报名
  4367. //bool CDataBaseEngineSink::OnRequestMatchSignup(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  4368. //{
  4369. // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestMatchSignup"), TraceLevel_Debug);
  4370. // //效验参数
  4371. // ASSERT(wDataSize == sizeof(DBR_GR_MatchSignup));
  4372. // if (wDataSize != sizeof(DBR_GR_MatchSignup)) return false;
  4373. // CTimer Start;
  4374. // //变量定义
  4375. // DBR_GR_MatchSignup * pMatchSignup = (DBR_GR_MatchSignup *)pData;
  4376. // dwUserID = pMatchSignup->dwUserID;
  4377. //
  4378. // //请求处理
  4379. // try
  4380. // {
  4381. // //转化地址
  4382. // TCHAR szClientAddr[16] = TEXT("");
  4383. // BYTE * pClientAddr = (BYTE *)&pMatchSignup->dwClientAddr;
  4384. // _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]);
  4385. //
  4386. // //构造参数
  4387. // m_GameDBAide.ResetParameter();
  4388. // m_GameDBAide.AddParameter(TEXT("@dwUserID"), pMatchSignup->dwUserID);
  4389. // m_GameDBAide.AddParameter(TEXT("@lMatchFee"), pMatchSignup->lMatchFee);
  4390. // m_GameDBAide.AddParameter(TEXT("@wKindID"), m_pGameServiceOption->wKindID);
  4391. // m_GameDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID);
  4392. // m_GameDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr);
  4393. // m_GameDBAide.AddParameter(TEXT("@dwMatchID"), pMatchSignup->dwMatchID);
  4394. // m_GameDBAide.AddParameter(TEXT("@dwMatchNo"), pMatchSignup->dwMatchNO);
  4395. // m_GameDBAide.AddParameter(TEXT("@strMachineID"), pMatchSignup->szMachineID);
  4396. //
  4397. // //输出参数
  4398. // TCHAR szDescribeString[128] = TEXT("");
  4399. // m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  4400. //
  4401. // //结果处理
  4402. // LONG lReturnValue = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_UserMatchFee"), true);
  4403. //
  4404. // //构造结构
  4405. // DBO_GR_MatchSingupResult MatchSignupResult;
  4406. // ZeroMemory(&MatchSignupResult, sizeof(MatchSignupResult));
  4407. //
  4408. // //设置变量
  4409. // MatchSignupResult.bResultCode = lReturnValue == DB_SUCCESS;
  4410. //
  4411. // //读取财富
  4412. // if (MatchSignupResult.bResultCode == true)
  4413. // {
  4414. // MatchSignupResult.lCurrGold = m_GameDBAide.GetValue_LONGLONG(TEXT("Score"));
  4415. // MatchSignupResult.lCurrIngot = m_GameDBAide.GetValue_LONGLONG(TEXT("Ingot"));
  4416. // }
  4417. // else
  4418. // {
  4419. // //错误描述
  4420. // CDBVarValue DBVarValue;
  4421. // m_GameDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  4422. // lstrcpyn(MatchSignupResult.szDescribeString, CW2CT(DBVarValue.bstrVal), CountArray(MatchSignupResult.szDescribeString));
  4423. // }
  4424. //
  4425. // //发送结果
  4426. // WORD wSendDataSize = sizeof(MatchSignupResult) - sizeof(MatchSignupResult.szDescribeString);
  4427. // wSendDataSize += CountStringBuffer(MatchSignupResult.szDescribeString);
  4428. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_MATCH_SIGNUP_RESULT, dwContextID, &MatchSignupResult, wSendDataSize);
  4429. // double dRet = Start.End();
  4430. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  4431. // {
  4432. // CString csTest;
  4433. //
  4434. // csTest.Format(_T("存储过程耗时 GSP_GR_UserMatchFee ----> %.3f "), dRet);
  4435. //
  4436. // //提示消息
  4437. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  4438. // }
  4439. // return true;
  4440. // }
  4441. // catch (IDataBaseException * pIException)
  4442. // {
  4443. // //错误信息
  4444. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  4445. //
  4446. // //构造结构
  4447. // DBO_GR_MatchSingupResult MatchSignupResult;
  4448. // ZeroMemory(&MatchSignupResult, sizeof(MatchSignupResult));
  4449. //
  4450. // //设置变量
  4451. // MatchSignupResult.bResultCode = false;
  4452. // lstrcpyn(MatchSignupResult.szDescribeString, TEXT("由于数据库操作异常,请您稍后重试!"), CountArray(MatchSignupResult.szDescribeString));
  4453. //
  4454. // //发送结果
  4455. // WORD wSendDataSize = sizeof(MatchSignupResult) - sizeof(MatchSignupResult.szDescribeString);
  4456. // wSendDataSize += CountStringBuffer(MatchSignupResult.szDescribeString);
  4457. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_MATCH_SIGNUP_RESULT, dwContextID, &MatchSignupResult, wSendDataSize);
  4458. // double dRet = Start.End();
  4459. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  4460. // {
  4461. // CString csTest;
  4462. //
  4463. // csTest.Format(_T("存储过程耗时 GSP_GR_UserMatchFee ----> %.3f "), dRet);
  4464. //
  4465. // //提示消息
  4466. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  4467. // }
  4468. // return false;
  4469. // }
  4470. //
  4471. // return true;
  4472. //}
  4473. //
  4474. ////退出比赛
  4475. //bool CDataBaseEngineSink::OnRequestMatchUnSignup(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  4476. //{
  4477. // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestMatchUnSignup"), TraceLevel_Debug);
  4478. // //效验参数
  4479. // ASSERT(wDataSize == sizeof(DBR_GR_MatchSignup));
  4480. // if (wDataSize != sizeof(DBR_GR_MatchSignup)) return false;
  4481. // CTimer Start;
  4482. // //变量定义
  4483. // DBR_GR_MatchSignup * pMatchSignup = (DBR_GR_MatchSignup *)pData;
  4484. // dwUserID = pMatchSignup->dwUserID;
  4485. //
  4486. // //请求处理
  4487. // try
  4488. // {
  4489. // //转化地址
  4490. // TCHAR szClientAddr[16] = TEXT("");
  4491. // BYTE * pClientAddr = (BYTE *)&pMatchSignup->dwClientAddr;
  4492. // _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]);
  4493. //
  4494. // //构造参数
  4495. // m_GameDBAide.ResetParameter();
  4496. // m_GameDBAide.AddParameter(TEXT("@dwUserID"), pMatchSignup->dwUserID);
  4497. // m_GameDBAide.AddParameter(TEXT("@lMatchFee"), pMatchSignup->lMatchFee);
  4498. // m_GameDBAide.AddParameter(TEXT("@wKindID"), m_pGameServiceOption->wKindID);
  4499. // m_GameDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID);
  4500. // m_GameDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr);
  4501. // m_GameDBAide.AddParameter(TEXT("@dwMatchID"), pMatchSignup->dwMatchID);
  4502. // m_GameDBAide.AddParameter(TEXT("@dwMatchNo"), pMatchSignup->dwMatchNO);
  4503. // m_GameDBAide.AddParameter(TEXT("@strMachineID"), pMatchSignup->szMachineID);
  4504. //
  4505. // //输出参数
  4506. // TCHAR szDescribeString[128] = TEXT("");
  4507. // m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  4508. //
  4509. // //结果处理
  4510. // LONG lReturnValue = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_UserMatchQuit"), true);
  4511. //
  4512. // //构造结构
  4513. // DBO_GR_MatchSingupResult MatchSignupResult;
  4514. // ZeroMemory(&MatchSignupResult, sizeof(MatchSignupResult));
  4515. //
  4516. // //设置变量
  4517. // MatchSignupResult.bResultCode = lReturnValue == DB_SUCCESS;
  4518. //
  4519. // //读取财富
  4520. // if (MatchSignupResult.bResultCode == true)
  4521. // {
  4522. // MatchSignupResult.lCurrGold = m_GameDBAide.GetValue_LONGLONG(TEXT("Score"));
  4523. // MatchSignupResult.lCurrIngot = m_GameDBAide.GetValue_LONGLONG(TEXT("Ingot"));
  4524. // }
  4525. // else
  4526. // {
  4527. // //错误描述
  4528. // CDBVarValue DBVarValue;
  4529. // m_GameDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  4530. // lstrcpyn(MatchSignupResult.szDescribeString, CW2CT(DBVarValue.bstrVal), CountArray(MatchSignupResult.szDescribeString));
  4531. // }
  4532. //
  4533. // //发送结果
  4534. // WORD wSendDataSize = sizeof(MatchSignupResult) - sizeof(MatchSignupResult.szDescribeString);
  4535. // wSendDataSize += CountStringBuffer(MatchSignupResult.szDescribeString);
  4536. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_MATCH_UNSIGNUP_RESULT, dwContextID, &MatchSignupResult, wSendDataSize);
  4537. // double dRet = Start.End();
  4538. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  4539. // {
  4540. // CString csTest;
  4541. //
  4542. // csTest.Format(_T("存储过程耗时 GSP_GR_UserMatchQuit ----> %.3f "), dRet);
  4543. //
  4544. // //提示消息
  4545. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  4546. // }
  4547. //
  4548. // return true;
  4549. // }
  4550. // catch (IDataBaseException * pIException)
  4551. // {
  4552. // //错误信息
  4553. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  4554. //
  4555. // //构造结构
  4556. // DBO_GR_MatchSingupResult MatchSignupResult;
  4557. // ZeroMemory(&MatchSignupResult, sizeof(MatchSignupResult));
  4558. //
  4559. // //设置变量
  4560. // MatchSignupResult.bResultCode = false;
  4561. // lstrcpyn(MatchSignupResult.szDescribeString, TEXT("由于数据库操作异常,请您稍后重试!"), CountArray(MatchSignupResult.szDescribeString));
  4562. //
  4563. // //发送结果
  4564. // WORD wSendDataSize = sizeof(MatchSignupResult) - sizeof(MatchSignupResult.szDescribeString);
  4565. // wSendDataSize += CountStringBuffer(MatchSignupResult.szDescribeString);
  4566. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_MATCH_SIGNUP_RESULT, dwContextID, &MatchSignupResult, wSendDataSize);
  4567. // double dRet = Start.End();
  4568. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  4569. // {
  4570. // CString csTest;
  4571. //
  4572. // csTest.Format(_T("存储过程耗时 GSP_GR_UserMatchQuit ----> %.3f "), dRet);
  4573. //
  4574. // //提示消息
  4575. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  4576. // }
  4577. // return false;
  4578. // }
  4579. //}
  4580. //
  4581. ////比赛开始
  4582. //bool CDataBaseEngineSink::OnRequestMatchStart(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  4583. //{
  4584. // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestMatchStart"), TraceLevel_Debug);
  4585. // //效验参数
  4586. // ASSERT(wDataSize == sizeof(DBR_GR_MatchStart));
  4587. // if (wDataSize != sizeof(DBR_GR_MatchStart)) return false;
  4588. // CTimer Start;
  4589. // //变量定义
  4590. // DBR_GR_MatchStart * pMatchStart = (DBR_GR_MatchStart *)pData;
  4591. //
  4592. // //请求处理
  4593. // try
  4594. // {
  4595. // //构造参数
  4596. // m_GameDBAide.ResetParameter();
  4597. // m_GameDBAide.AddParameter(TEXT("@wServerID"), pMatchStart->dwMatchID);
  4598. // m_GameDBAide.AddParameter(TEXT("@wMatchID"), pMatchStart->dwMatchID);
  4599. // m_GameDBAide.AddParameter(TEXT("@wMatchNo"), pMatchStart->dwMatchNO);
  4600. // m_GameDBAide.AddParameter(TEXT("@cbMatchType"), pMatchStart->cbMatchType);
  4601. //
  4602. // //结果处理
  4603. // LONG lReturnValue = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_MatchStart"), true);
  4604. // double dRet = Start.End();
  4605. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  4606. // {
  4607. // CString csTest;
  4608. //
  4609. // csTest.Format(_T("存储过程耗时 GSP_GR_MatchStart ----> %.3f "), dRet);
  4610. //
  4611. // //提示消息
  4612. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  4613. // }
  4614. // return true;
  4615. // }
  4616. // catch (IDataBaseException * pIException)
  4617. // {
  4618. // //错误信息
  4619. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  4620. //
  4621. // //错误处理
  4622. // OnInsureDisposeResult(dwContextID, DB_ERROR, 0L, TEXT("由于数据库操作异常,请您稍后重试!"), false);
  4623. // double dRet = Start.End();
  4624. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  4625. // {
  4626. // CString csTest;
  4627. //
  4628. // csTest.Format(_T("存储过程耗时 GSP_GR_MatchStart ----> %.3f "), dRet);
  4629. //
  4630. // //提示消息
  4631. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  4632. // }
  4633. // return false;
  4634. // }
  4635. //
  4636. // return true;
  4637. //}
  4638. //
  4639. ////比赛结束
  4640. //bool CDataBaseEngineSink::OnRequestMatchOver(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  4641. //{
  4642. // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestMatchOver"), TraceLevel_Debug);
  4643. // //效验参数
  4644. // ASSERT(wDataSize == sizeof(DBR_GR_MatchOver));
  4645. // if (wDataSize != sizeof(DBR_GR_MatchOver)) return false;
  4646. // CTimer Start;
  4647. //
  4648. // //变量定义
  4649. // DBR_GR_MatchOver * pMatchOver = (DBR_GR_MatchOver *)pData;
  4650. //
  4651. // //请求处理
  4652. // try
  4653. // {
  4654. // //构造参数
  4655. // m_GameDBAide.ResetParameter();
  4656. // m_GameDBAide.AddParameter(TEXT("@wServerID"), pMatchOver->wServerID);
  4657. // m_GameDBAide.AddParameter(TEXT("@dwMatchID"), pMatchOver->dwMatchID);
  4658. // m_GameDBAide.AddParameter(TEXT("@dwMatchNo"), pMatchOver->dwMatchNO);
  4659. // m_GameDBAide.AddParameter(TEXT("@cbMatchType"), pMatchOver->cbMatchType);
  4660. // m_GameDBAide.AddParameter(TEXT("@MatchStartTime"), pMatchOver->MatchStartTime);
  4661. // m_GameDBAide.AddParameter(TEXT("@MatchEndTime"), pMatchOver->MatchEndTime);
  4662. //
  4663. // //结果处理
  4664. // LONG lReturnValue = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_MatchOver"), true);
  4665. //
  4666. // //执行成功
  4667. // if (lReturnValue == DB_SUCCESS)
  4668. // {
  4669. // //构造结构
  4670. // DBO_GR_MatchRankList MatchRankList;
  4671. // ZeroMemory(&MatchRankList, sizeof(MatchRankList));
  4672. //
  4673. // //变量定义
  4674. // tagMatchRankInfo * pMatchRankInfo = NULL;
  4675. //
  4676. // //设置变量
  4677. // MatchRankList.dwMatchID = pMatchOver->dwMatchID;
  4678. // MatchRankList.dwMatchNO = pMatchOver->dwMatchNO;
  4679. //
  4680. // //读取记录
  4681. // while (m_GameDBModule->IsRecordsetEnd() == false)
  4682. // {
  4683. // pMatchRankInfo = &MatchRankList.MatchRankInfo[MatchRankList.wUserCount++];
  4684. // pMatchRankInfo->wRankID = m_GameDBAide.GetValue_WORD(TEXT("RankID"));
  4685. // pMatchRankInfo->dwUserID = m_GameDBAide.GetValue_DWORD(TEXT("UserID"));
  4686. // pMatchRankInfo->lMatchScore = m_GameDBAide.GetValue_LONGLONG(TEXT("Score"));
  4687. // pMatchRankInfo->lRewardGold = m_GameDBAide.GetValue_LONGLONG(TEXT("RewardGold"));
  4688. // pMatchRankInfo->dwRewardIngot = m_GameDBAide.GetValue_DWORD(TEXT("RewardMedal"));
  4689. // pMatchRankInfo->dwRewardExperience = m_GameDBAide.GetValue_DWORD(TEXT("RewardExperience"));
  4690. //
  4691. // //移动游标
  4692. // m_GameDBModule->MoveToNext();
  4693. // }
  4694. //
  4695. // //发送数据
  4696. // WORD wSendDataSize = sizeof(MatchRankList) - sizeof(MatchRankList.MatchRankInfo);
  4697. // wSendDataSize += MatchRankList.wUserCount * sizeof(MatchRankList.MatchRankInfo[0]);
  4698. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_MATCH_RANK_LIST, dwContextID, &MatchRankList, wSendDataSize);
  4699. // }
  4700. //
  4701. // double dRet = Start.End();
  4702. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  4703. // {
  4704. // CString csTest;
  4705. //
  4706. // csTest.Format(_T("存储过程耗时 GSP_GR_MatchOver ----> %.3f "), dRet);
  4707. //
  4708. // //提示消息
  4709. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  4710. // }
  4711. //
  4712. // return true;
  4713. // }
  4714. // catch (IDataBaseException * pIException)
  4715. // {
  4716. // //错误信息
  4717. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  4718. // double dRet = Start.End();
  4719. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  4720. // {
  4721. // CString csTest;
  4722. //
  4723. // csTest.Format(_T("存储过程耗时 GSP_GR_MatchOver ----> %.3f "), dRet);
  4724. //
  4725. // //提示消息
  4726. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  4727. // }
  4728. // return false;
  4729. // }
  4730. //
  4731. // return true;
  4732. //}
  4733. //
  4734. ////比赛奖励
  4735. //bool CDataBaseEngineSink::OnRequestMatchReward(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  4736. //{
  4737. // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestMatchReward"), TraceLevel_Debug);
  4738. // //效验参数
  4739. // ASSERT(wDataSize == sizeof(DBR_GR_MatchReward));
  4740. // if (wDataSize != sizeof(DBR_GR_MatchReward)) return false;
  4741. // CTimer Start;
  4742. // //变量定义
  4743. // DBR_GR_MatchReward * pMatchReward = (DBR_GR_MatchReward *)pData;
  4744. // dwUserID = pMatchReward->dwUserID;
  4745. //
  4746. // //请求处理
  4747. // try
  4748. // {
  4749. // //转化地址
  4750. // TCHAR szClientAddr[16] = TEXT("");
  4751. // BYTE * pClientAddr = (BYTE *)&pMatchReward->dwClientAddr;
  4752. // _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]);
  4753. //
  4754. // //构造参数
  4755. // m_GameDBAide.ResetParameter();
  4756. // m_GameDBAide.AddParameter(TEXT("@dwUserID"), pMatchReward->dwUserID);
  4757. // m_GameDBAide.AddParameter(TEXT("@dwRewardGold"), pMatchReward->lRewardGold);
  4758. // m_GameDBAide.AddParameter(TEXT("@dwRewardIngot"), pMatchReward->dwRewardIngot);
  4759. // m_GameDBAide.AddParameter(TEXT("@dwRewardExperience"), pMatchReward->dwRewardExperience);
  4760. // m_GameDBAide.AddParameter(TEXT("@wKindID"), m_pGameServiceOption->wKindID);
  4761. // m_GameDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID);
  4762. // m_GameDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr);
  4763. //
  4764. // //结果处理
  4765. // LONG lReturnValue = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_MatchReward"), true);
  4766. //
  4767. // //构造结构
  4768. // DBR_GR_MatchRewardResult MatchRewardResult;
  4769. // ZeroMemory(&MatchRewardResult, sizeof(MatchRewardResult));
  4770. //
  4771. // //设置变量
  4772. // MatchRewardResult.bResultCode = lReturnValue == DB_SUCCESS;
  4773. //
  4774. // //读取财富
  4775. // if (MatchRewardResult.bResultCode == true)
  4776. // {
  4777. // MatchRewardResult.lCurrGold = m_GameDBAide.GetValue_LONGLONG(TEXT("Score"));
  4778. // MatchRewardResult.lCurrIngot = m_GameDBAide.GetValue_LONGLONG(TEXT("Ingot"));
  4779. // MatchRewardResult.dwCurrExperience = m_GameDBAide.GetValue_DWORD(TEXT("Experience"));
  4780. // }
  4781. //
  4782. // //发送结果
  4783. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_MATCH_REWARD_RESULT, dwContextID, &MatchRewardResult, sizeof(MatchRewardResult));
  4784. // double dRet = Start.End();
  4785. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  4786. // {
  4787. // CString csTest;
  4788. //
  4789. // csTest.Format(_T("存储过程耗时 GSP_GR_MatchReward ----> %.3f "), dRet);
  4790. //
  4791. // //提示消息
  4792. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  4793. // }
  4794. //
  4795. // return true;
  4796. // }
  4797. // catch (IDataBaseException * pIException)
  4798. // {
  4799. // //错误信息
  4800. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  4801. //
  4802. // //构造结构
  4803. // DBR_GR_MatchRewardResult MatchRewardResult;
  4804. // ZeroMemory(&MatchRewardResult, sizeof(MatchRewardResult));
  4805. //
  4806. // //设置变量
  4807. // MatchRewardResult.bResultCode = false;
  4808. //
  4809. // //发送结果
  4810. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_MATCH_REWARD_RESULT, dwContextID, &MatchRewardResult, sizeof(MatchRewardResult));
  4811. // double dRet = Start.End();
  4812. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  4813. // {
  4814. // CString csTest;
  4815. //
  4816. // csTest.Format(_T("存储过程耗时 GSP_GR_MatchReward ----> %.3f "), dRet);
  4817. //
  4818. // //提示消息
  4819. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  4820. // }
  4821. // return false;
  4822. // }
  4823. //
  4824. // return true;
  4825. //}
  4826. //
  4827. ////比赛淘汰
  4828. //bool CDataBaseEngineSink::OnRequestMatchEliminate(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  4829. //{
  4830. // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestMatchEliminate"), TraceLevel_Debug);
  4831. // //效验参数
  4832. // ASSERT(wDataSize == sizeof(DBR_GR_MatchEliminate));
  4833. // if (wDataSize != sizeof(DBR_GR_MatchEliminate)) return false;
  4834. // CTimer Start;
  4835. // //变量定义
  4836. // DBR_GR_MatchEliminate * pMatchEliminate = (DBR_GR_MatchEliminate *)pData;
  4837. //
  4838. // //请求处理
  4839. // try
  4840. // {
  4841. // //构造参数
  4842. // m_GameDBAide.ResetParameter();
  4843. // m_GameDBAide.AddParameter(TEXT("@dwUserID"), pMatchEliminate->dwUserID);
  4844. // m_GameDBAide.AddParameter(TEXT("@wServerID"), pMatchEliminate->wServerID);
  4845. // m_GameDBAide.AddParameter(TEXT("@wMatchID"), pMatchEliminate->dwMatchID);
  4846. // m_GameDBAide.AddParameter(TEXT("@wMatchNo"), pMatchEliminate->dwMatchNO);
  4847. // m_GameDBAide.AddParameter(TEXT("@cbMatchType"), pMatchEliminate->cbMatchType);
  4848. //
  4849. // //结果处理
  4850. // LONG lReturnValue = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_MatchEliminate"), false);
  4851. // double dRet = Start.End();
  4852. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  4853. // {
  4854. // CString csTest;
  4855. //
  4856. // csTest.Format(_T("存储过程耗时 GSP_GR_MatchEliminate ----> %.3f "), dRet);
  4857. //
  4858. // //提示消息
  4859. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  4860. // }
  4861. // return true;
  4862. // }
  4863. // catch (IDataBaseException * pIException)
  4864. // {
  4865. // //错误信息
  4866. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  4867. // double dRet = Start.End();
  4868. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  4869. // {
  4870. // CString csTest;
  4871. //
  4872. // csTest.Format(_T("存储过程耗时 GSP_GR_MatchEliminate ----> %.3f "), dRet);
  4873. //
  4874. // //提示消息
  4875. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  4876. // }
  4877. // return false;
  4878. // }
  4879. //
  4880. // return true;
  4881. //}
  4882. //
  4883. ////用户权限
  4884. //bool CDataBaseEngineSink::OnRequestManageUserRight(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  4885. //{
  4886. // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestManageUserRight"), TraceLevel_Debug);
  4887. // CTimer Start;
  4888. // try
  4889. // {
  4890. // //效验参数
  4891. // ASSERT(wDataSize == sizeof(DBR_GR_ManageUserRight));
  4892. // if (wDataSize != sizeof(DBR_GR_ManageUserRight)) return false;
  4893. //
  4894. // //请求处理
  4895. // DBR_GR_ManageUserRight * pManageUserRight = (DBR_GR_ManageUserRight *)pData;
  4896. // dwUserID = pManageUserRight->dwUserID;
  4897. //
  4898. // //构造参数
  4899. // m_GameDBAide.ResetParameter();
  4900. // m_GameDBAide.AddParameter(TEXT("@dwUserID"), pManageUserRight->dwUserID);
  4901. // m_GameDBAide.AddParameter(TEXT("@dwAddRight"), pManageUserRight->dwAddRight);
  4902. // m_GameDBAide.AddParameter(TEXT("@dwRemoveRight"), pManageUserRight->dwRemoveRight);
  4903. //
  4904. // //执行查询
  4905. // LONG lReturnValue = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_ManageUserRight"), false);
  4906. // double dRet = Start.End();
  4907. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  4908. // {
  4909. // CString csTest;
  4910. //
  4911. // csTest.Format(_T("存储过程耗时 GSP_GR_ManageUserRight ----> %.3f "), dRet);
  4912. //
  4913. // //提示消息
  4914. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  4915. // }
  4916. //
  4917. // return true;
  4918. // }
  4919. // catch (IDataBaseException * pIException)
  4920. // {
  4921. // //错误信息
  4922. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  4923. // double dRet = Start.End();
  4924. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  4925. // {
  4926. // CString csTest;
  4927. //
  4928. // csTest.Format(_T("存储过程耗时 GSP_GR_ManageUserRight ----> %.3f "), dRet);
  4929. //
  4930. // //提示消息
  4931. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  4932. // }
  4933. // return false;
  4934. // }
  4935. //
  4936. // return true;
  4937. //}
  4938. //
  4939. ////比赛权限
  4940. //bool CDataBaseEngineSink::OnRequestManageMatchRight(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  4941. //{
  4942. // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestManageMatchRight"), TraceLevel_Debug);
  4943. // CTimer Start;
  4944. // try
  4945. // {
  4946. // //效验参数
  4947. // ASSERT(wDataSize == sizeof(DBR_GR_ManageUserRight));
  4948. // if (wDataSize != sizeof(DBR_GR_ManageUserRight)) return false;
  4949. //
  4950. // //请求处理
  4951. // DBR_GR_ManageMatchRight * pManageMatchRight = (DBR_GR_ManageMatchRight *)pData;
  4952. // dwUserID = pManageMatchRight->dwUserID;
  4953. //
  4954. // //构造参数
  4955. // m_GameDBAide.ResetParameter();
  4956. // m_GameDBAide.AddParameter(TEXT("@dwUserID"), pManageMatchRight->dwUserID);
  4957. // m_GameDBAide.AddParameter(TEXT("@dwAddRight"), pManageMatchRight->dwAddRight);
  4958. // m_GameDBAide.AddParameter(TEXT("@dwRemoveRight"), pManageMatchRight->dwRemoveRight);
  4959. // m_GameDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID);
  4960. // m_GameDBAide.AddParameter(TEXT("@dwMatchID"), pManageMatchRight->dwMatchID);
  4961. // m_GameDBAide.AddParameter(TEXT("@dwMatchNo"), pManageMatchRight->dwMatchNO);
  4962. //
  4963. // //执行查询
  4964. // LONG lReturnValue = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_ManageMatchRight"), false);
  4965. // double dRet = Start.End();
  4966. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  4967. // {
  4968. // CString csTest;
  4969. //
  4970. // csTest.Format(_T("存储过程耗时 GSP_GR_ManageMatchRight ----> %.3f "), dRet);
  4971. //
  4972. // //提示消息
  4973. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  4974. // }
  4975. // return true;
  4976. // }
  4977. // catch (IDataBaseException * pIException)
  4978. // {
  4979. // //错误信息
  4980. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  4981. //
  4982. // //错误处理
  4983. // OnInsureDisposeResult(dwContextID, DB_ERROR, 0L, TEXT("由于数据库操作异常,请您稍后重试!"), false);
  4984. // double dRet = Start.End();
  4985. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  4986. // {
  4987. // CString csTest;
  4988. //
  4989. // csTest.Format(_T("存储过程耗时 GSP_GR_ManageMatchRight ----> %.3f "), dRet);
  4990. //
  4991. // //提示消息
  4992. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  4993. // }
  4994. // return false;
  4995. // }
  4996. //
  4997. // return true;
  4998. //}
  4999. ////系统消息
  5000. //bool CDataBaseEngineSink::OnRequestLoadSystemMessage(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  5001. //{
  5002. // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestLoadSystemMessage"), TraceLevel_Debug);
  5003. // CTimer Start;
  5004. // try
  5005. // {
  5006. // //构造参数
  5007. // m_GameDBAide.ResetParameter();
  5008. // m_GameDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID);
  5009. //
  5010. // //执行查询
  5011. // LONG lReturnValue = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_LoadSystemMessage"), true);
  5012. //
  5013. // //结果处理
  5014. // if (lReturnValue == 0)
  5015. // {
  5016. // TCHAR szServerID[32] = { 0 };
  5017. // _sntprintf(szServerID, CountArray(szServerID), TEXT("%d"), m_pGameServiceOption->wServerID);
  5018. //
  5019. // while (true)
  5020. // {
  5021. // //结束判断
  5022. // if (m_GameDBModule->IsRecordsetEnd() == true) break;
  5023. //
  5024. // //定义变量
  5025. // TCHAR szServerRange[1024] = { 0 };
  5026. // CString strServerRange;
  5027. // bool bSendMessage = false;
  5028. // bool bAllRoom = false;
  5029. //
  5030. // //读取范围
  5031. // m_GameDBAide.GetValue_String(TEXT("ServerRange"), szServerRange, CountArray(szServerRange));
  5032. // szServerRange[1023] = 0;
  5033. // strServerRange.Format(TEXT("%s"), szServerRange);
  5034. //
  5035. // //范围判断
  5036. // while (true)
  5037. // {
  5038. // int nfind = strServerRange.Find(TEXT(','));
  5039. // if (nfind != -1 && nfind > 0)
  5040. // {
  5041. // CString strID = strServerRange.Left(nfind);
  5042. // WORD wServerID = StrToInt(strID);
  5043. // bSendMessage = (wServerID == 0 || wServerID == m_pGameServiceOption->wServerID);
  5044. // if (wServerID == 0)bAllRoom = true;
  5045. //
  5046. // if (bSendMessage) break;
  5047. //
  5048. // strServerRange = strServerRange.Right(strServerRange.GetLength() - nfind - 1);
  5049. // }
  5050. // else
  5051. // {
  5052. // WORD wServerID = StrToInt(szServerRange);
  5053. // bSendMessage = (wServerID == 0 || wServerID == m_pGameServiceOption->wServerID);
  5054. // if (wServerID == 0)bAllRoom = true;
  5055. //
  5056. // break;
  5057. // }
  5058. // }
  5059. //
  5060. // //发送消息
  5061. // if (bSendMessage)
  5062. // {
  5063. // //定义变量
  5064. // DBR_GR_SystemMessage SystemMessage;
  5065. // ZeroMemory(&SystemMessage, sizeof(SystemMessage));
  5066. //
  5067. // //读取消息
  5068. // SystemMessage.dwMessageID = m_GameDBAide.GetValue_DWORD(TEXT("ID"));
  5069. // SystemMessage.cbMessageType = m_GameDBAide.GetValue_BYTE(TEXT("MessageType"));
  5070. // SystemMessage.dwTimeRate = m_GameDBAide.GetValue_DWORD(TEXT("TimeRate"));
  5071. // SystemMessage.cbAllRoom = bAllRoom ? TRUE : FALSE;
  5072. // m_GameDBAide.GetValue_String(TEXT("MessageString"), SystemMessage.szSystemMessage, CountArray(SystemMessage.szSystemMessage));
  5073. //
  5074. // //读取时间
  5075. // SYSTEMTIME systime;
  5076. // ZeroMemory(&systime, sizeof(systime));
  5077. //
  5078. // //开始时间
  5079. // m_GameDBAide.GetValue_SystemTime(TEXT("StartTime"), systime);
  5080. // CTime StarTime(systime);
  5081. // SystemMessage.tStartTime = StarTime.GetTime();
  5082. //
  5083. // //结束时间
  5084. // m_GameDBAide.GetValue_SystemTime(TEXT("ConcludeTime"), systime);
  5085. // CTime ConcludeTime(systime);
  5086. // SystemMessage.tConcludeTime = ConcludeTime.GetTime();
  5087. //
  5088. // //发送结果
  5089. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_SYSTEM_MESSAGE_RESULT, dwContextID, &SystemMessage, sizeof(SystemMessage));
  5090. // }
  5091. //
  5092. // //下一条
  5093. // m_GameDBModule->MoveToNext();
  5094. // }
  5095. //
  5096. // //加载完成
  5097. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_SYSTEM_MESSAGE_FINISH, dwContextID, NULL, 0);
  5098. // }
  5099. // double dRet = Start.End();
  5100. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  5101. // {
  5102. // CString csTest;
  5103. //
  5104. // csTest.Format(_T("存储过程耗时 GSP_GR_LoadSystemMessage ----> %.3f "), dRet);
  5105. //
  5106. // //提示消息
  5107. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  5108. // }
  5109. //
  5110. // return true;
  5111. // }
  5112. // catch (IDataBaseException * pIException)
  5113. // {
  5114. // //错误信息
  5115. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  5116. //
  5117. // //错误处理
  5118. // //OnInsureDisposeResult(dwContextID, DB_ERROR, 0L, TEXT("由于数据库操作异常,请您稍后重试!"), false);
  5119. // double dRet = Start.End();
  5120. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  5121. // {
  5122. // CString csTest;
  5123. //
  5124. // csTest.Format(_T("存储过程耗时 GSP_GR_LoadSystemMessage ----> %.3f "), dRet);
  5125. //
  5126. // //提示消息
  5127. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  5128. // }
  5129. // return false;
  5130. // }
  5131. //
  5132. // return true;
  5133. //}
  5134. //
  5135. //
  5136. ////加载敏感词
  5137. //bool CDataBaseEngineSink::OnRequestLoadSensitiveWords(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  5138. //{
  5139. // CTimer Start;
  5140. // try
  5141. // {
  5142. // //构造参数
  5143. // m_PlatformDBAide.ResetParameter();
  5144. //
  5145. // //执行查询
  5146. // LONG lReturnValue = m_PlatformDBAide.ExecuteProcess(TEXT("GSP_GR_LoadSensitiveWords"), true);
  5147. //
  5148. // //读取信息
  5149. // if (lReturnValue == DB_SUCCESS)
  5150. // {
  5151. // //起始消息
  5152. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_SENSITIVE_WORDS, 0xfffe, NULL, 0);
  5153. //
  5154. // //读取消息
  5155. // while (m_PlatformDBModule->IsRecordsetEnd() == false)
  5156. // {
  5157. // //变量定义
  5158. // TCHAR szSensitiveWords[32] = TEXT("");
  5159. //
  5160. // //读取消息
  5161. // m_PlatformDBAide.GetValue_String(TEXT("SensitiveWords"), szSensitiveWords, CountArray(szSensitiveWords));
  5162. //
  5163. // //发送消息
  5164. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_SENSITIVE_WORDS, 0, szSensitiveWords, sizeof(szSensitiveWords));
  5165. //
  5166. // //移动记录
  5167. // m_PlatformDBModule->MoveToNext();
  5168. // };
  5169. //
  5170. // //结束消息
  5171. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_SENSITIVE_WORDS, 0xffff, NULL, 0);
  5172. // }
  5173. // double dRet = Start.End();
  5174. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  5175. // {
  5176. // CString csTest;
  5177. //
  5178. // csTest.Format(_T("存储过程耗时 GSP_GR_LoadSensitiveWords ----> %.3f "), dRet);
  5179. //
  5180. // //提示消息
  5181. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  5182. // }
  5183. // return true;
  5184. // }
  5185. // catch (IDataBaseException * pIException)
  5186. // {
  5187. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  5188. // double dRet = Start.End();
  5189. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  5190. // {
  5191. // CString csTest;
  5192. //
  5193. // csTest.Format(_T("存储过程耗时 GSP_GR_LoadSensitiveWords ----> %.3f "), dRet);
  5194. //
  5195. // //提示消息
  5196. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  5197. // }
  5198. // return false;
  5199. // }
  5200. //
  5201. // return true;
  5202. //}
  5203. void CDataBaseEngineSink::Fstring(TCHAR* pCheck)
  5204. {
  5205. for (int i = 0; i < 32; i++)
  5206. {
  5207. try
  5208. {
  5209. WORD bb = pCheck[i];
  5210. if ((bb > 126 && bb < 19968)
  5211. || (bb > 40869)
  5212. || bb < 33)
  5213. {
  5214. if (pCheck[i] == 0x00) break;
  5215. pCheck[i] = L' ';
  5216. }
  5217. }
  5218. catch (...)
  5219. {
  5220. }
  5221. }
  5222. }
  5223. //解锁机器
  5224. //bool CDataBaseEngineSink::UnLockAndroidUser()
  5225. //{
  5226. // CTraceService::TraceString(TEXT("CDataBaseEngineSink::UnLockAndroidUser"), TraceLevel_Debug);
  5227. // CTimer Start;
  5228. // try
  5229. // {
  5230. // //构造参数
  5231. // m_GameDBAide.ResetParameter();
  5232. // m_GameDBAide.AddParameter(TEXT("@wServerID"), m_pGameServiceOption->wServerID);
  5233. //
  5234. // //执行查询
  5235. // LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_UnlockAndroidUser"), false);
  5236. // double dRet = Start.End();
  5237. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  5238. // {
  5239. // CString csTest;
  5240. //
  5241. // csTest.Format(_T("存储过程耗时 GSP_GR_UnlockAndroidUser ----> %.3f "), dRet);
  5242. //
  5243. // //提示消息
  5244. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  5245. // }
  5246. // return true;
  5247. // }
  5248. // catch (IDataBaseException * pIException)
  5249. // {
  5250. // //输出错误
  5251. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  5252. // double dRet = Start.End();
  5253. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  5254. // {
  5255. // CString csTest;
  5256. //
  5257. // csTest.Format(_T("存储过程耗时 GSP_GR_UnlockAndroidUser ----> %.3f "), dRet);
  5258. //
  5259. // //提示消息
  5260. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  5261. // }
  5262. // }
  5263. //
  5264. // return false;
  5265. //}
  5266. //登录结果
  5267. VOID CDataBaseEngineSink::OnLogonDisposeResult(DWORD dwContextID, DWORD dwErrorCode, LPCTSTR pszErrorString, bool bMobileClient, BYTE cbDeviceType, WORD wBehaviorFlags, WORD wPageTableCount)
  5268. {
  5269. if (dwErrorCode == DB_SUCCESS)
  5270. {
  5271. //属性资料
  5272. m_LogonSuccess.wFaceID = m_GameDBAide.GetValue_WORD(TEXT("FaceID"));
  5273. m_LogonSuccess.dwUserID = m_GameDBAide.GetValue_DWORD(TEXT("UserID"));
  5274. m_LogonSuccess.dwGameID = m_GameDBAide.GetValue_DWORD(TEXT("GameID"));
  5275. m_LogonSuccess.dwGroupID = m_GameDBAide.GetValue_DWORD(TEXT("GroupID"));
  5276. m_LogonSuccess.dwCustomID = m_GameDBAide.GetValue_DWORD(TEXT("CustomID"));
  5277. m_LogonSuccess.llJiePing = m_GameDBAide.GetValue_LONGLONG(TEXT("llJiePing"));
  5278. m_LogonSuccess.iXinYong = m_GameDBAide.GetValue_INT(TEXT("iXinYong"));
  5279. TCHAR szBuffer[128] = { 0 };
  5280. ZeroMemory(szBuffer, 128 * sizeof(TCHAR));
  5281. m_GameDBAide.GetValue_String(TEXT("NickName"), szBuffer, CountArray(szBuffer));
  5282. TCHAR szOutBuffer[128] = { 0 };
  5283. ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR));
  5284. //解码
  5285. int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer);
  5286. if (iRet == -1)
  5287. {
  5288. szBuffer[32] = 0x0;
  5289. _sntprintf(m_LogonSuccess.szNickName, 32, TEXT("%s"), szBuffer);
  5290. }
  5291. else
  5292. {
  5293. szOutBuffer[32] = 0x0;
  5294. _sntprintf(m_LogonSuccess.szNickName, 32, TEXT("%s"), szOutBuffer);
  5295. }
  5296. //过滤字符
  5297. Fstring(m_LogonSuccess.szNickName);
  5298. m_GameDBAide.GetValue_String(TEXT("UserUin"), m_LogonSuccess.szUnionID, CountArray(m_LogonSuccess.szUnionID));
  5299. COleDateTime Time;
  5300. CString csTest1, csTest2, csTest3, csTest;
  5301. m_GameDBAide.GetValue_String(TEXT("RegisterDate"), m_LogonSuccess.RegTime, CountArray(m_LogonSuccess.RegTime));
  5302. csTest = m_LogonSuccess.RegTime;
  5303. csTest1 = csTest.Mid(6, 4);
  5304. csTest2 = csTest.Mid(0, 2);
  5305. csTest3 = csTest.Mid(3, 2);
  5306. csTest = csTest1 + _T("/") + csTest2 + _T("/") + csTest3;
  5307. _sntprintf(m_LogonSuccess.RegTime, 16, TEXT("%s"), csTest.GetBuffer());
  5308. csTest.ReleaseBuffer();
  5309. m_LogonSuccess.dDaiLi = m_GameDBAide.GetValue_DWORD(TEXT("BingID"));
  5310. //用户资料
  5311. m_LogonSuccess.cbGender = m_GameDBAide.GetValue_BYTE(TEXT("Gender"));
  5312. m_LogonSuccess.cbMemberOrder = m_GameDBAide.GetValue_BYTE(TEXT("MemberOrder"));
  5313. m_LogonSuccess.cbMasterOrder = m_GameDBAide.GetValue_BYTE(TEXT("MasterOrder"));
  5314. //m_GameDBAide.GetValue_String(TEXT("UnderWrite"), m_LogonSuccess.szUnderWrite, CountArray(m_LogonSuccess.szUnderWrite));
  5315. //积分信息
  5316. m_LogonSuccess.lScore = m_GameDBAide.GetValue_LONGLONG(TEXT("Score"));
  5317. //m_LogonSuccess.lIngot = m_GameDBAide.GetValue_LONG(TEXT("Ingot"));
  5318. m_LogonSuccess.lGrade = m_GameDBAide.GetValue_LONGLONG(TEXT("Grade"));
  5319. m_LogonSuccess.lInsure = m_GameDBAide.GetValue_LONGLONG(TEXT("Insure"));
  5320. m_LogonSuccess.dwBean = m_GameDBAide.GetValue_DWORD(TEXT("Beans"));
  5321. //索引变量
  5322. m_LogonSuccess.dwInoutIndex = m_GameDBAide.GetValue_LONG(TEXT("InoutIndex"));
  5323. m_LogonSuccess.dwWinCount = m_GameDBAide.GetValue_LONG(TEXT("WinCount"));
  5324. m_LogonSuccess.dwLostCount = m_GameDBAide.GetValue_LONG(TEXT("LostCount"));
  5325. m_LogonSuccess.dwDrawCount = m_GameDBAide.GetValue_LONG(TEXT("DrawCount"));
  5326. m_LogonSuccess.dwFleeCount = m_GameDBAide.GetValue_LONG(TEXT("FleeCount"));
  5327. m_LogonSuccess.dwExperience = m_GameDBAide.GetValue_LONG(TEXT("Experience"));
  5328. m_LogonSuccess.lLoveLiness = m_GameDBAide.GetValue_LONG(TEXT("LoveLiness"));
  5329. //附加信息
  5330. m_LogonSuccess.dwUserRight = m_GameDBAide.GetValue_DWORD(TEXT("UserRight"));
  5331. m_LogonSuccess.dwMasterRight = m_GameDBAide.GetValue_DWORD(TEXT("MasterRight"));
  5332. m_GameDBAide.GetValue_String(TEXT("DaiLiName"), m_LogonSuccess.DaiLiName, CountArray(m_LogonSuccess.DaiLiName));
  5333. m_GameDBAide.GetValue_String(TEXT("DaiLiQQ"), m_LogonSuccess.DaiLiQQ, CountArray(m_LogonSuccess.DaiLiQQ));
  5334. m_GameDBAide.GetValue_String(TEXT("DaiLiWX"), m_LogonSuccess.DaiLiWX, CountArray(m_LogonSuccess.DaiLiWX));
  5335. m_LogonSuccess.LeiJiZuanShi = m_GameDBAide.GetValue_INT(TEXT("LeiJiZuanShi"));
  5336. m_LogonSuccess.GouMaiZuanShi = m_GameDBAide.GetValue_INT(TEXT("GouMaiZuanShi"));
  5337. m_LogonSuccess.cbDeviceType = cbDeviceType;
  5338. m_LogonSuccess.wBehaviorFlags = wBehaviorFlags;
  5339. m_LogonSuccess.wPageTableCount = wPageTableCount;
  5340. //用户头像地址
  5341. ZeroMemory(m_LogonSuccess.szHeadUrl, CountArray(m_LogonSuccess.szHeadUrl));
  5342. m_GameDBAide.GetValue_String(TEXT("HeadUrl"), m_LogonSuccess.szHeadUrl, CountArray(m_LogonSuccess.szHeadUrl));
  5343. ZeroMemory(m_LogonSuccess.szDescribeString, 128 * sizeof(TCHAR));
  5344. m_GameDBAide.GetValue_String(TEXT("LastLogonMobile"), m_LogonSuccess.szDescribeString, CountArray(m_LogonSuccess.szDescribeString));
  5345. //俱乐部信息
  5346. //构造参数
  5347. m_GameDBAide.ResetParameter();
  5348. m_GameDBAide.AddParameter(TEXT("UserID"), m_LogonSuccess.dwUserID);
  5349. //获取俱乐部消息
  5350. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetID"), true);
  5351. if (DB_SUCCESS == lResultCode)
  5352. {
  5353. int count = 0;
  5354. while (m_GameDBModule->IsRecordsetEnd() == false)
  5355. {
  5356. m_LogonSuccess.dwClubID[count] = m_GameDBAide.GetValue_DWORD(TEXT("ClubID"));
  5357. //移动记录
  5358. m_GameDBModule->MoveToNext();
  5359. count++;
  5360. if (count == 20) break;
  5361. }
  5362. }
  5363. //获取信息
  5364. //if (pszErrorString != NULL) lstrcpyn(m_LogonSuccess.szDescribeString, pszErrorString, CountArray(m_LogonSuccess.szDescribeString));
  5365. //任务变量
  5366. //m_LogonSuccess.wTaskCount = 0;
  5367. //ZeroMemory(m_LogonSuccess.UserTaskInfo, sizeof(m_LogonSuccess.UserTaskInfo));
  5368. //发送结果
  5369. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_LOGON_SUCCESS, dwContextID, &m_LogonSuccess, sizeof(m_LogonSuccess));
  5370. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(302))
  5371. {
  5372. CString strTip;
  5373. strTip.Format(L"代理请求:%d", m_LogonSuccess.dDaiLi);//新用户ID:%d,dwUserID,
  5374. CTraceService::TraceString(strTip, TraceLevel_Normal);
  5375. }
  5376. //扫码绑定代理验证
  5377. //2018 7/31 lyh
  5378. if (0 == m_LogonSuccess.dDaiLi){
  5379. GETDUILIEBASE Temp;
  5380. ZeroMemory(&Temp, sizeof(GETDUILIEBASE));
  5381. StringCchCat(Temp.szUnionID, CountArray(Temp.szUnionID), m_LogonSuccess.szUnionID);
  5382. Temp.dUserID = m_LogonSuccess.dwUserID;
  5383. Temp.CommendID = 7;
  5384. Temp.dwSocketID = dwContextID;
  5385. StringCchCat(Temp.bb.szName, CountArray(Temp.bb.szName), m_LogonSuccess.szNickName);
  5386. CHttpClient::AddLog(dwContextID, Temp);
  5387. }
  5388. }
  5389. else
  5390. {
  5391. //变量定义
  5392. DBO_GR_LogonFailure LogonFailure;
  5393. ZeroMemory(&LogonFailure, sizeof(LogonFailure));
  5394. //构造数据
  5395. LogonFailure.lResultCode = dwErrorCode;
  5396. lstrcpyn(LogonFailure.szDescribeString, pszErrorString, CountArray(LogonFailure.szDescribeString));
  5397. //发送结果
  5398. WORD wDataSize = CountStringBuffer(LogonFailure.szDescribeString);
  5399. WORD wHeadSize = sizeof(LogonFailure) - sizeof(LogonFailure.szDescribeString);
  5400. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_LOGON_FAILURE, dwContextID, &LogonFailure, wHeadSize + wDataSize);
  5401. }
  5402. return;
  5403. }
  5404. ////银行结果
  5405. //VOID CDataBaseEngineSink::OnInsureDisposeResult(DWORD dwContextID, DWORD dwErrorCode, SCORE lFrozenedScore, LPCTSTR pszErrorString, bool bMobileClient, BYTE cbActivityGame)
  5406. //{
  5407. // if (dwErrorCode == DB_SUCCESS)
  5408. // {
  5409. // //变量定义
  5410. // DBO_GR_UserInsureSuccess UserInsureSuccess;
  5411. // ZeroMemory(&UserInsureSuccess, sizeof(UserInsureSuccess));
  5412. //
  5413. // //构造变量
  5414. // UserInsureSuccess.cbActivityGame = cbActivityGame;
  5415. // UserInsureSuccess.lFrozenedScore = lFrozenedScore;
  5416. // UserInsureSuccess.dwUserID = m_TreasureDBAide.GetValue_DWORD(TEXT("UserID"));
  5417. // UserInsureSuccess.lSourceScore = m_TreasureDBAide.GetValue_LONGLONG(TEXT("SourceScore"));
  5418. // UserInsureSuccess.lSourceInsure = m_TreasureDBAide.GetValue_LONGLONG(TEXT("SourceInsure"));
  5419. // UserInsureSuccess.lInsureRevenue = m_TreasureDBAide.GetValue_LONGLONG(TEXT("InsureRevenue"));
  5420. // UserInsureSuccess.lVariationScore = m_TreasureDBAide.GetValue_LONGLONG(TEXT("VariationScore"));
  5421. // UserInsureSuccess.lVariationInsure = m_TreasureDBAide.GetValue_LONGLONG(TEXT("VariationInsure"));
  5422. // lstrcpyn(UserInsureSuccess.szDescribeString, pszErrorString, CountArray(UserInsureSuccess.szDescribeString));
  5423. //
  5424. // //发送结果
  5425. // WORD wDataSize = CountStringBuffer(UserInsureSuccess.szDescribeString);
  5426. // WORD wHeadSize = sizeof(UserInsureSuccess) - sizeof(UserInsureSuccess.szDescribeString);
  5427. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_USER_INSURE_SUCCESS, dwContextID, &UserInsureSuccess, wHeadSize + wDataSize);
  5428. // }
  5429. // else
  5430. // {
  5431. // //变量定义
  5432. // DBO_GR_UserInsureFailure UserInsureFailure;
  5433. // ZeroMemory(&UserInsureFailure, sizeof(UserInsureFailure));
  5434. //
  5435. // //构造变量
  5436. // UserInsureFailure.cbActivityGame = cbActivityGame;
  5437. // UserInsureFailure.lResultCode = dwErrorCode;
  5438. // UserInsureFailure.lFrozenedScore = lFrozenedScore;
  5439. // lstrcpyn(UserInsureFailure.szDescribeString, pszErrorString, CountArray(UserInsureFailure.szDescribeString));
  5440. //
  5441. // //发送结果
  5442. // WORD wDataSize = CountStringBuffer(UserInsureFailure.szDescribeString);
  5443. // WORD wHeadSize = sizeof(UserInsureFailure) - sizeof(UserInsureFailure.szDescribeString);
  5444. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_USER_INSURE_FAILURE, dwContextID, &UserInsureFailure, wHeadSize + wDataSize);
  5445. // }
  5446. //
  5447. // return;
  5448. //}
  5449. //分享通知
  5450. bool CDataBaseEngineSink::OnShareMessage(VOID * pData, WORD wDataSize, DWORD dwUserID)
  5451. {
  5452. //效验参数
  5453. ASSERT(wDataSize == sizeof(CMD_GR_BangDing));
  5454. if (wDataSize < sizeof(CMD_GR_BangDing)) return false;
  5455. //效验数据
  5456. CMD_GR_BangDing * pUser = (CMD_GR_BangDing *)pData;
  5457. GETDUILIEBASE Base;
  5458. ZeroMemory(&Base, sizeof(GETDUILIEBASE));
  5459. StringCchCat(Base.szUnionID, 32, L"");
  5460. Base.CommendID = 4;//分享通知
  5461. Base.dwSocketID = 0;
  5462. Base.dUserID = dwUserID;
  5463. CopyMemory(Base.szBuffer, pUser, sizeof(CMD_GR_BangDing));
  5464. CMD_GR_Info aa;
  5465. ZeroMemory(&aa, sizeof(CMD_GR_Info));
  5466. StringCchCat(aa.szName, 32, L"");
  5467. StringCchCat(aa.szImgHead, 256, L"");
  5468. Base.bb = aa;
  5469. CHttpClient::AddLog(0, Base);
  5470. return true;
  5471. }
  5472. //分享奖励钻石
  5473. bool CDataBaseEngineSink::OnRequestShareAwardBean(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  5474. {
  5475. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestShareAwardBean"), TraceLevel_Debug);
  5476. CTimer Start;
  5477. try
  5478. {
  5479. CMD_GR_ShareAwardBean *pShareAwardBean = (CMD_GR_ShareAwardBean *)pData;
  5480. TCHAR szDescribeString[127];
  5481. ZeroMemory(szDescribeString, 127 * sizeof(TCHAR));
  5482. //构造参数
  5483. m_GameDBAide.ResetParameter();
  5484. m_GameDBAide.AddParameter(TEXT("@UserID"), pShareAwardBean->dwUserID);
  5485. m_GameDBAide.AddParameter(TEXT("@strClientIP"), pShareAwardBean->szClientIp);
  5486. m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  5487. //给指定玩家增加元宝
  5488. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_ShareAwardUserCurrency"), true);
  5489. //结果处理
  5490. CDBVarValue DBVarValue;
  5491. m_GameDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  5492. DBR_GR_ShareAwardBeanResult shareAwardResult;
  5493. //返回码
  5494. shareAwardResult.lResultCode = lResultCode;
  5495. _sntprintf(shareAwardResult.strErrorDescribe, 128, TEXT("%s"), static_cast<LPCWSTR>(DBVarValue.bstrVal));
  5496. if (0 == lResultCode)
  5497. {
  5498. //shareAwardResult.dwUserID = m_GameDBAide.GetValue_INT(TEXT("MYUserID"));
  5499. shareAwardResult.dwCurrency = m_GameDBAide.GetValue_INT(TEXT("MYCurrency"));
  5500. shareAwardResult.wAwardCurrency = m_GameDBAide.GetValue_INT(TEXT("ShareAwardBeanCount"));
  5501. CString csRet = shareAwardResult.strErrorDescribe;
  5502. if (csRet == L"分享赠送成功!")
  5503. {
  5504. //调用网页端
  5505. }
  5506. }
  5507. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_USER_SHRAE_AWARD_RETURN, dwContextID, &shareAwardResult, sizeof(DBR_GR_ShareAwardBeanResult));
  5508. double dRet = Start.End();
  5509. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  5510. {
  5511. CString csTest;
  5512. csTest.Format(_T("存储过程耗时 ShareAwardBeanCount ----> %.3f "), dRet);
  5513. //提示消息
  5514. CTraceService::TraceString(csTest, TraceLevel_Normal);
  5515. }
  5516. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  5517. {
  5518. CString csTest;
  5519. csTest.Format(_T("存储过程耗时 ShareAwardBeanCount ----> %.3f "), dRet);
  5520. //提示消息
  5521. CTraceService::TraceString(csTest, TraceLevel_Normal);
  5522. }
  5523. return true;
  5524. }
  5525. catch (IDataBaseException * pIException)
  5526. {
  5527. //输出错误
  5528. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  5529. double dRet = Start.End();
  5530. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  5531. {
  5532. CString csTest;
  5533. csTest.Format(_T("存储过程耗时 ShareAwardBeanCount ----> %.3f "), dRet);
  5534. //提示消息
  5535. CTraceService::TraceString(csTest, TraceLevel_Normal);
  5536. }
  5537. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  5538. {
  5539. CString csTest;
  5540. csTest.Format(_T("存储过程耗时 ShareAwardBeanCount ----> %.3f "), dRet);
  5541. //提示消息
  5542. CTraceService::TraceString(csTest, TraceLevel_Normal);
  5543. }
  5544. return true;
  5545. }
  5546. return true;
  5547. }
  5548. //查询用户分享的信息
  5549. bool CDataBaseEngineSink::OnRequestShareInfo(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  5550. {
  5551. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestShareInfo"), TraceLevel_Debug);
  5552. CTimer Start;
  5553. try
  5554. {
  5555. DWORD* pdwUserID = (DWORD*)pData;
  5556. TCHAR szDescribeString[127];
  5557. ZeroMemory(szDescribeString, 127 * sizeof(TCHAR));
  5558. //构造参数
  5559. m_GameDBAide.ResetParameter();
  5560. m_GameDBAide.AddParameter(TEXT("@UserID"), *pdwUserID);
  5561. m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  5562. //给指定玩家增加元宝
  5563. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_GetShareAwardInfo"), true);
  5564. //结果处理
  5565. CDBVarValue DBVarValue;
  5566. m_GameDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  5567. DBR_GR_ShareAwardInfo shareAwardInfo;
  5568. //返回码
  5569. shareAwardInfo.lResultCode = lResultCode;
  5570. _sntprintf(shareAwardInfo.strErrorDescribe, 128, TEXT("%s"), static_cast<LPCWSTR>(DBVarValue.bstrVal));
  5571. if (0 == lResultCode)
  5572. {
  5573. //shareAwardInfo.dwUserID = m_GameDBAide.GetValue_INT(TEXT("MYUserID"));
  5574. shareAwardInfo.wTodaySharedFlag = m_GameDBAide.GetValue_INT(TEXT("TodayAwardCount"));
  5575. shareAwardInfo.wShardAwardCurrency = m_GameDBAide.GetValue_INT(TEXT("ShareAwardBeanCount"));
  5576. }
  5577. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_USER_SHRAE_INFO_RETURN, dwContextID, &shareAwardInfo, sizeof(DBR_GR_ShareAwardInfo));
  5578. double dRet = Start.End();
  5579. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  5580. {
  5581. CString csTest;
  5582. csTest.Format(_T("存储过程耗时 GSP_GR_GetShareAwardInfo ----> %.3f "), dRet);
  5583. //提示消息
  5584. CTraceService::TraceString(csTest, TraceLevel_Normal);
  5585. }
  5586. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  5587. {
  5588. CString csTest;
  5589. csTest.Format(_T("存储过程耗时 GSP_GR_GetShareAwardInfo ----> %.3f "), dRet);
  5590. //提示消息
  5591. CTraceService::TraceString(csTest, TraceLevel_Normal);
  5592. }
  5593. return true;
  5594. }
  5595. catch (IDataBaseException * pIException)
  5596. {
  5597. //输出错误
  5598. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  5599. double dRet = Start.End();
  5600. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  5601. {
  5602. CString csTest;
  5603. csTest.Format(_T("存储过程耗时 GSP_GR_GetShareAwardInfo ----> %.3f "), dRet);
  5604. //提示消息
  5605. CTraceService::TraceString(csTest, TraceLevel_Normal);
  5606. }
  5607. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  5608. {
  5609. CString csTest;
  5610. csTest.Format(_T("存储过程耗时 GSP_GR_GetShareAwardInfo ----> %.3f "), dRet);
  5611. //提示消息
  5612. CTraceService::TraceString(csTest, TraceLevel_Normal);
  5613. }
  5614. return true;
  5615. }
  5616. return true;
  5617. }
  5618. //////////////////////////////////////////////////////////////////////////////////
  5619. //钻石兑换金币的配置列表 \存储过程\数据库SQL\DataBase\Script\Platform\存储过程\金币数据库\兑换管理.sql
  5620. //bool CDataBaseEngineSink::OnRequestExchangeConfigs(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  5621. //{
  5622. // CTimer Start;
  5623. // try
  5624. // {
  5625. // //构造参数
  5626. // m_TreasureDBAide.ResetParameter();
  5627. // LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_ExchangeConfig"), true);
  5628. //
  5629. // //变量定义
  5630. // WORD wPacketSize = 0;
  5631. // BYTE cbBuffer[MAX_ASYNCHRONISM_DATA] = { 0 };
  5632. //
  5633. // //发送种类
  5634. // wPacketSize = 0;
  5635. // tagExchangeConfig * pExchageCfg = NULL;
  5636. // while (!m_TreasureDBModule->IsRecordsetEnd())
  5637. // {
  5638. // //发送信息
  5639. // if ((wPacketSize + sizeof(tagExchangeConfig)) > sizeof(cbBuffer))
  5640. // {
  5641. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_EXCHANGE_CONFIG_LIST_ACK, dwContextID, cbBuffer, wPacketSize);
  5642. // wPacketSize = 0;
  5643. // }
  5644. //
  5645. // //读取信息
  5646. // pExchageCfg = (tagExchangeConfig *)(cbBuffer + wPacketSize);
  5647. // pExchageCfg->wID = m_TreasureDBAide.GetValue_DWORD(TEXT("ID"));
  5648. // pExchageCfg->dwIngot = m_TreasureDBAide.GetValue_DWORD(TEXT("Ingot")); ///注意数据范围
  5649. // pExchageCfg->dwSCORE = m_TreasureDBAide.GetValue_DWORD(TEXT("Score"));
  5650. //
  5651. // //设置位移
  5652. // wPacketSize += sizeof(tagExchangeConfig);
  5653. //
  5654. // //移动记录
  5655. // m_TreasureDBModule->MoveToNext();
  5656. // }
  5657. //
  5658. // if (wPacketSize > 0)
  5659. // {
  5660. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_EXCHANGE_CONFIG_LIST_ACK, dwContextID, cbBuffer, wPacketSize);
  5661. // }
  5662. //
  5663. // double dRet = Start.End();
  5664. //
  5665. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(3333))
  5666. // {
  5667. // CString csTest;
  5668. // csTest.Format(_T("存储过程耗时 GSP_GR_ExchangeConfig ----> %.3f wPacketSize=%d"), dRet, wPacketSize);
  5669. // //提示消息
  5670. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  5671. // }
  5672. //
  5673. // return true;
  5674. // }
  5675. // catch (IDataBaseException * pIException)
  5676. // {
  5677. // //输出错误
  5678. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  5679. // return false;
  5680. // }
  5681. //}
  5682. /////////////////////////////俱乐部///////////////////////////////////////
  5683. void ff(CMD_S_ClubInfo & ClubInfo, CList<int>& list)
  5684. {
  5685. //总共13条数据
  5686. int i = 0;
  5687. //游戏类型
  5688. POSITION p = list.FindIndex(i++);
  5689. if (p)
  5690. ClubInfo.csGameConfig.wSubGameID = list.GetAt(p);
  5691. //底分
  5692. p = list.FindIndex(i++);
  5693. if (p)
  5694. ClubInfo.csGameConfig.wPlayRule = list.GetAt(p);
  5695. //房费
  5696. p = list.FindIndex(i++);
  5697. if (p)
  5698. ClubInfo.csGameConfig.wMaxFanRule = list.GetAt(p);
  5699. //IP限制
  5700. p = list.FindIndex(i++);
  5701. if (p)
  5702. ClubInfo.csGameConfig.wMaxScore = list.GetAt(p);
  5703. //局数
  5704. p = list.FindIndex(i++);
  5705. if (p)
  5706. ClubInfo.csGameConfig.wPlayCountRule = list.GetAt(p);
  5707. //是否是房主
  5708. p = list.FindIndex(i++);
  5709. if (p)
  5710. ClubInfo.csGameConfig.zmExtraRule = list.GetAt(p);
  5711. //胡法
  5712. p = list.FindIndex(i++);
  5713. if (p)
  5714. ClubInfo.csGameConfig.bDuoLai = list.GetAt(p);
  5715. //玩法
  5716. p = list.FindIndex(i++);
  5717. if (p)
  5718. ClubInfo.csGameConfig.wFengDing = list.GetAt(p);
  5719. //备用
  5720. p = list.FindIndex(i++);
  5721. if (p)
  5722. ClubInfo.csGameConfig.tmp1 = list.GetAt(p);
  5723. p = list.FindIndex(i++);
  5724. if (p)
  5725. ClubInfo.csGameConfig.tmp2 = list.GetAt(p);
  5726. p = list.FindIndex(i++);
  5727. if (p)
  5728. ClubInfo.csGameConfig.tmp3 = list.GetAt(p);
  5729. p = list.FindIndex(i++);
  5730. if (p)
  5731. ClubInfo.csGameConfig.tmp4 = list.GetAt(p);
  5732. p = list.FindIndex(i++);
  5733. if (p)
  5734. ClubInfo.csGameConfig.tmp5 = list.GetAt(p);
  5735. }
  5736. //俱乐部列表
  5737. //m_GameDBAide连接的是THTreause数据库
  5738. bool CDataBaseEngineSink::OnRequestGetClubList(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  5739. {
  5740. OutputDebugStringA("CDataBaseEngineSink::OnRequestGetClubList");
  5741. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClubList"), TraceLevel_Debug);
  5742. CTimer Start;
  5743. try
  5744. {
  5745. DBR_GR_ClubList* pClubList = (DBR_GR_ClubList*)pData;
  5746. if (pClubList == NULL) return false;
  5747. //返回数据
  5748. CMD_GR_ClubList_Ack ClubListAck;
  5749. ZeroMemory(&ClubListAck, sizeof(ClubListAck));
  5750. //构造参数
  5751. m_GameDBAide.ResetParameter();
  5752. m_GameDBAide.AddParameter(TEXT("UserID"), pClubList->dwUserID);
  5753. //玩家获取通知个数
  5754. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetMessgeCount"), true);
  5755. if (DB_SUCCESS == lResultCode)
  5756. {
  5757. ClubListAck.wNewsCount = m_GameDBAide.GetValue_WORD(TEXT("MessageCount"));
  5758. }
  5759. //构造参数
  5760. m_GameDBAide.ResetParameter();
  5761. m_GameDBAide.AddParameter(TEXT("UserID"), pClubList->dwUserID);
  5762. m_GameDBAide.AddParameter(TEXT("StartIndex"), pClubList->wStartIndex);
  5763. m_GameDBAide.AddParameter(TEXT("Count"), pClubList->wCount);
  5764. //玩家获取俱乐部信息
  5765. lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetList"), true);
  5766. DWORD clubId[20] = { 0 };
  5767. if (DB_SUCCESS == lResultCode)
  5768. {
  5769. for (int j = 0; j < m_GameDBModule->GetRecordCount(); j++)
  5770. {
  5771. if (j >= 20){ break;}
  5772. //构造数据
  5773. CMD_S_ClubInfo ClubInfo;
  5774. ZeroMemory(&ClubInfo, sizeof(ClubInfo));
  5775. //cbIsOwner用来区分发给的是房主还是玩家
  5776. int ClubRole = m_GameDBAide.GetValue_DWORD(TEXT("ClubRole"));
  5777. if (ClubRole == 10)
  5778. {
  5779. ClubInfo.cbIsOwner = 1;
  5780. }
  5781. else if (ClubRole == 2)
  5782. {
  5783. ClubInfo.cbIsOwner = 2;
  5784. }
  5785. else if (ClubRole == 3)
  5786. {
  5787. ClubInfo.cbIsOwner = 3;
  5788. }
  5789. //兼容老版本
  5790. if (pClubList->dwUserID == m_GameDBAide.GetValue_DWORD(TEXT("HostID")))
  5791. {
  5792. ClubInfo.cbIsOwner = 1;
  5793. }
  5794. ClubInfo.dwClubID = m_GameDBAide.GetValue_DWORD(TEXT("CLubID"));
  5795. m_GameDBAide.GetValue_String(TEXT("CLubName"), ClubInfo.szClubName, LEN_CLUB_NAME);
  5796. ClubInfo.dwOwnerID = m_GameDBAide.GetValue_DWORD(TEXT("HostID"));
  5797. ClubInfo.temp1 = m_GameDBAide.GetValue_DWORD(TEXT("TableChoice"));
  5798. clubId[j] = ClubInfo.dwClubID;
  5799. //名称
  5800. TCHAR szBuffer[128] = { 0 };
  5801. ZeroMemory(szBuffer, 128 * sizeof(TCHAR));
  5802. m_GameDBAide.GetValue_String(TEXT("HostName"), szBuffer,128);
  5803. TCHAR szOutBuffer[128] = { 0 };
  5804. ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR));
  5805. //解码
  5806. int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer);
  5807. if (iRet == -1)
  5808. {
  5809. szBuffer[32] = 0x0;
  5810. _sntprintf(ClubInfo.szHostName, CountArray(ClubInfo.szHostName), TEXT("%s"), szBuffer);
  5811. }
  5812. else
  5813. {
  5814. szOutBuffer[32] = 0x0;
  5815. _sntprintf(ClubInfo.szHostName, CountArray(ClubInfo.szHostName), TEXT("%s"), szOutBuffer);
  5816. }
  5817. //头像
  5818. m_GameDBAide.GetValue_String(TEXT("HostHeadUrl"), ClubInfo.szHeadUrl, 256);
  5819. //配置
  5820. TCHAR tcconfig[LEN_TABLE_CONFIG] = { 0 };
  5821. m_GameDBAide.GetValue_String(TEXT("GameConfig"), tcconfig, LEN_TABLE_CONFIG);
  5822. CList<int> list;
  5823. CString Config = tcconfig;
  5824. int pos = Config.Find(_T('#'));
  5825. while (pos != -1)
  5826. {
  5827. CString field = Config.Left(pos);
  5828. int iRet = _wtoi(field);
  5829. list.AddTail(iRet);
  5830. Config.ReleaseBuffer();
  5831. Config = Config.Right(Config.GetLength() - pos - 1);
  5832. pos = Config.Find(_T('#'));
  5833. }
  5834. if (Config.GetLength() > 0)
  5835. {
  5836. int iRet = _wtoi(Config.GetBuffer(0));
  5837. list.AddTail(iRet);
  5838. Config.ReleaseBuffer();
  5839. }
  5840. ff(ClubInfo, list);
  5841. //复制数据
  5842. CopyMemory(&(ClubListAck.csGameClubInfo[j]), &ClubInfo, sizeof(ClubInfo));
  5843. //移动记录
  5844. m_GameDBModule->MoveToNext();
  5845. }
  5846. ClubListAck.wClubCount = m_GameDBModule->GetRecordCount();
  5847. if (ClubListAck.wClubCount > 20){ ClubListAck.wClubCount = 20; }
  5848. }
  5849. for (int j = 0; j < 20; j++)
  5850. {
  5851. //构造参数
  5852. if (clubId[j] > 0)
  5853. {
  5854. m_GameDBAide.ResetParameter();
  5855. m_GameDBAide.AddParameter(TEXT("CLubID"), clubId[j]);
  5856. //玩家获取俱乐部信息
  5857. lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_Sample_Select"), true);
  5858. if (DB_SUCCESS == lResultCode)
  5859. {
  5860. ClubListAck.csGameClubInfo[j].temp2 = m_GameDBAide.GetValue_DWORD(TEXT("Sample"));
  5861. }
  5862. }
  5863. }
  5864. //查看群主是否开启房主选项
  5865. int PayChoice = 0;
  5866. m_GameDBAide.ResetParameter();
  5867. //执行存储过程
  5868. lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_PayChoice"), true);
  5869. if (DB_SUCCESS == lResultCode)
  5870. {
  5871. PayChoice = m_GameDBAide.GetValue_DWORD(TEXT("PayChoice"));
  5872. }
  5873. for (int i = 0; i < ClubListAck.wClubCount;i++)
  5874. {
  5875. if (i >= 20){ break; }
  5876. //构造参数
  5877. m_GameDBAide.ResetParameter();
  5878. m_GameDBAide.AddParameter(TEXT("ClubID"), ClubListAck.csGameClubInfo[i].dwClubID);
  5879. //玩家获取俱乐部信息
  5880. lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetUserCount"), true);
  5881. if (DB_SUCCESS == lResultCode)
  5882. {
  5883. ClubListAck.csGameClubInfo[i].wTotalNum = m_GameDBAide.GetValue_DWORD(TEXT("UserNum"));
  5884. }
  5885. if (PayChoice == 1 && ClubListAck.csGameClubInfo[i].csGameConfig.wMaxFanRule >= 10)
  5886. {
  5887. ClubListAck.csGameClubInfo[i].csGameConfig.wMaxFanRule -= 10;
  5888. }
  5889. }
  5890. //返回数据
  5891. int totalSize = ClubListAck.wClubCount * sizeof(CMD_S_ClubInfo) + sizeof(WORD) + sizeof(WORD);
  5892. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_GET_LIST_ACK, dwContextID, &ClubListAck, totalSize);//sizeof(ClubListAck)
  5893. double dRet = Start.End();
  5894. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  5895. {
  5896. CString csTest;
  5897. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetList ----> %.3f "), dRet);
  5898. //提示消息
  5899. CTraceService::TraceString(csTest, TraceLevel_Normal);
  5900. }
  5901. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  5902. {
  5903. CString csTest;
  5904. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetList ----> %.3f "), dRet);
  5905. //提示消息
  5906. CTraceService::TraceString(csTest, TraceLevel_Normal);
  5907. }
  5908. return true;
  5909. }
  5910. catch (IDataBaseException * pIException)
  5911. {
  5912. //输出错误
  5913. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  5914. double dRet = Start.End();
  5915. CString csTest;
  5916. csTest.Format(_T("异常存储过程耗时 GSP_GP_Club_GetList ----> %.3f "), dRet);
  5917. //提示消息
  5918. CTraceService::TraceString(csTest, TraceLevel_Warning);
  5919. return true;
  5920. }
  5921. return true;
  5922. }
  5923. //俱乐部会员
  5924. bool CDataBaseEngineSink::OnRequestGetClubUser(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  5925. {
  5926. OutputDebugStringA("CDataBaseEngineSink::OnRequestGetClubUser");
  5927. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClubUser"), TraceLevel_Debug);
  5928. CTimer Start;
  5929. try
  5930. {
  5931. DBR_GR_ClubUser* pClubUser = (DBR_GR_ClubUser*)pData;
  5932. if (pClubUser == NULL) return false;
  5933. //返回数据
  5934. CMD_GR_ClubUser_Ack ClubUserAck;
  5935. ZeroMemory(&ClubUserAck, sizeof(ClubUserAck));
  5936. //构造参数
  5937. m_GameDBAide.ResetParameter();
  5938. m_GameDBAide.AddParameter(TEXT("UserID"), pClubUser->dwUserID);
  5939. m_GameDBAide.AddParameter(TEXT("ClubID"), pClubUser->dwClubID);
  5940. DWORD Role = 0;
  5941. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetRole"), true);
  5942. if (DB_SUCCESS == lResultCode)
  5943. {
  5944. if (m_GameDBModule->GetRecordCount() == 1)
  5945. {
  5946. Role = m_GameDBAide.GetValue_DWORD(TEXT("ClubRole"));
  5947. if (Role == 10)
  5948. {
  5949. ClubUserAck.cbHost = 1;
  5950. }
  5951. else if (Role == 3)
  5952. {
  5953. ClubUserAck.cbHost = 2;
  5954. }
  5955. }
  5956. }
  5957. //获取俱乐部会员
  5958. ClubUserAck.dwClubID = pClubUser->dwClubID;
  5959. //构造参数
  5960. m_GameDBAide.ResetParameter();
  5961. m_GameDBAide.AddParameter(TEXT("UserID"), pClubUser->dwUserID);
  5962. m_GameDBAide.AddParameter(TEXT("ClubID"), pClubUser->dwClubID);
  5963. m_GameDBAide.AddParameter(TEXT("StartIndex"), pClubUser->wStartIndex);
  5964. m_GameDBAide.AddParameter(TEXT("Count"), pClubUser->wCount);
  5965. lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetUser"), true);
  5966. if (DB_SUCCESS == lResultCode)
  5967. {
  5968. for (int i = 0; i < m_GameDBModule->GetRecordCount(); i++)
  5969. {
  5970. if (i >= 20) { break; }
  5971. //构造数据
  5972. CMD_S_MemberInfo ClubUser;
  5973. ZeroMemory(&ClubUser, sizeof(ClubUser));
  5974. ClubUser.dwUserID = m_GameDBAide.GetValue_DWORD(TEXT("UserID"));
  5975. ClubUser.BangMaID = m_GameDBAide.GetValue_DWORD(TEXT("BangMa"));
  5976. ClubUser.cbStaus = m_GameDBAide.GetValue_BYTE(TEXT("Agree"));
  5977. int role = m_GameDBAide.GetValue_DWORD(TEXT("ClubRole"));
  5978. if (role == 10)
  5979. {
  5980. ClubUser.isHost = 1;
  5981. }
  5982. else if (role == 3)
  5983. {
  5984. ClubUser.isHost = 2;
  5985. }
  5986. TCHAR szBuffer[128] = { 0 };
  5987. ZeroMemory(szBuffer, 128 * sizeof(TCHAR));
  5988. m_GameDBAide.GetValue_String(TEXT("UserName"), szBuffer, 128);
  5989. TCHAR szOutBuffer[128] = { 0 };
  5990. ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR));
  5991. //解码
  5992. int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer);
  5993. if (iRet == -1)
  5994. {
  5995. szBuffer[32] = 0x0;
  5996. _sntprintf(ClubUser.szName, CountArray(ClubUser.szName), TEXT("%s"), szBuffer);
  5997. }
  5998. else
  5999. {
  6000. szOutBuffer[32] = 0x0;
  6001. _sntprintf(ClubUser.szName, CountArray(ClubUser.szName), TEXT("%s"), szOutBuffer);
  6002. }
  6003. m_GameDBAide.GetValue_String(TEXT("HeadUrl"), ClubUser.szHeadUrl, LEN_HEAD_URL);
  6004. //复制数据
  6005. CopyMemory(&(ClubUserAck.csMemberInfo[i]), &ClubUser, sizeof(ClubUser));
  6006. //移动记录
  6007. m_GameDBModule->MoveToNext();
  6008. }
  6009. ClubUserAck.wCount = m_GameDBModule->GetRecordCount();
  6010. if (ClubUserAck.wCount > 20){ ClubUserAck.wCount = 20; }
  6011. }
  6012. //返回数据
  6013. int totalSize = ClubUserAck.wCount * sizeof(CMD_S_MemberInfo) + sizeof(WORD) + sizeof(DWORD) + sizeof(BYTE);
  6014. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_GET_USER_ACK, dwContextID, &ClubUserAck, totalSize);
  6015. double dRet = Start.End();
  6016. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  6017. {
  6018. CString csTest;
  6019. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetUser ----> %.3f "), dRet);
  6020. //提示消息
  6021. CTraceService::TraceString(csTest, TraceLevel_Normal);
  6022. }
  6023. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  6024. {
  6025. CString csTest;
  6026. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetUser ----> %.3f "), dRet);
  6027. //提示消息
  6028. CTraceService::TraceString(csTest, TraceLevel_Normal);
  6029. }
  6030. return true;
  6031. }
  6032. catch (IDataBaseException * pIException)
  6033. {
  6034. //输出错误
  6035. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  6036. double dRet = Start.End();
  6037. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  6038. {
  6039. CString csTest;
  6040. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetUser ----> %.3f "), dRet);
  6041. //提示消息
  6042. CTraceService::TraceString(csTest, TraceLevel_Normal);
  6043. }
  6044. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  6045. {
  6046. CString csTest;
  6047. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetUser ----> %.3f "), dRet);
  6048. //提示消息
  6049. CTraceService::TraceString(csTest, TraceLevel_Normal);
  6050. }
  6051. return true;
  6052. }
  6053. return true;
  6054. }
  6055. //俱乐部会员(在线)
  6056. bool CDataBaseEngineSink::OnRequestGetClubUserEx(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  6057. {
  6058. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClubUserEx"), TraceLevel_Debug);
  6059. CTimer Start;
  6060. try
  6061. {
  6062. DBR_GR_ClubUser* pClubUser = (DBR_GR_ClubUser*)pData;
  6063. if (pClubUser == NULL) return false;
  6064. //返回数据
  6065. CMD_GR_ClubUser_Ack_Ex ClubUserAck;
  6066. ZeroMemory(&ClubUserAck, sizeof(ClubUserAck));
  6067. ClubUserAck.wStartIndex = pClubUser->wStartIndex;
  6068. ClubUserAck.wCount = pClubUser->wCount;
  6069. //构造参数
  6070. m_GameDBAide.ResetParameter();
  6071. m_GameDBAide.AddParameter(TEXT("UserID"), pClubUser->dwUserID);
  6072. m_GameDBAide.AddParameter(TEXT("ClubID"), pClubUser->dwClubID);
  6073. DWORD Role = 0;
  6074. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetRole"), true);
  6075. if (DB_SUCCESS == lResultCode)
  6076. {
  6077. if (m_GameDBModule->GetRecordCount() == 1)
  6078. {
  6079. Role = m_GameDBAide.GetValue_DWORD(TEXT("ClubRole"));
  6080. if (Role == 10)
  6081. {
  6082. ClubUserAck.cbHost = 1;
  6083. }
  6084. else if (Role == 3)
  6085. {
  6086. ClubUserAck.cbHost = 2;
  6087. }
  6088. }
  6089. }
  6090. //获取俱乐部会员
  6091. ClubUserAck.dwClubID = pClubUser->dwClubID;
  6092. //构造参数
  6093. m_GameDBAide.ResetParameter();
  6094. m_GameDBAide.AddParameter(TEXT("UserID"), pClubUser->dwUserID);
  6095. m_GameDBAide.AddParameter(TEXT("ClubID"), pClubUser->dwClubID);
  6096. lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetUser_Ex"), true);
  6097. if (DB_SUCCESS == lResultCode)
  6098. {
  6099. for (int i = 0; i < m_GameDBModule->GetRecordCount(); i++)
  6100. {
  6101. if (i >= 1000) { break; }
  6102. //构造数据
  6103. CMD_S_MemberInfoEx ClubUser;
  6104. ZeroMemory(&ClubUser, sizeof(ClubUser));
  6105. ClubUser.dwUserID = m_GameDBAide.GetValue_DWORD(TEXT("UserID"));
  6106. ClubUser.Agree = m_GameDBAide.GetValue_DWORD(TEXT("Agree"));
  6107. int role = m_GameDBAide.GetValue_DWORD(TEXT("ClubRole"));
  6108. if (role == 10)
  6109. {
  6110. ClubUser.isHost = 1;
  6111. }
  6112. else if (role == 3)
  6113. {
  6114. ClubUser.isHost = 2;
  6115. }
  6116. //复制数据
  6117. CopyMemory(&(ClubUserAck.csMemberInfo[i]), &ClubUser, sizeof(ClubUser));
  6118. //移动记录
  6119. m_GameDBModule->MoveToNext();
  6120. }
  6121. ClubUserAck.wMemCount = m_GameDBModule->GetRecordCount();
  6122. if (ClubUserAck.wMemCount > 1000){ ClubUserAck.wMemCount = 1000; }
  6123. }
  6124. //返回数据
  6125. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_GET_USER_ACK_EX, dwContextID, &ClubUserAck, sizeof(ClubUserAck));
  6126. double dRet = Start.End();
  6127. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  6128. {
  6129. CString csTest;
  6130. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetUser_Ex ----> %.3f "), dRet);
  6131. //提示消息
  6132. CTraceService::TraceString(csTest, TraceLevel_Normal);
  6133. }
  6134. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  6135. {
  6136. CString csTest;
  6137. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetUser_Ex ----> %.3f "), dRet);
  6138. //提示消息
  6139. CTraceService::TraceString(csTest, TraceLevel_Normal);
  6140. }
  6141. return true;
  6142. }
  6143. catch (IDataBaseException * pIException)
  6144. {
  6145. //输出错误
  6146. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  6147. double dRet = Start.End();
  6148. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  6149. {
  6150. CString csTest;
  6151. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetUser_Ex ----> %.3f "), dRet);
  6152. //提示消息
  6153. CTraceService::TraceString(csTest, TraceLevel_Normal);
  6154. }
  6155. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  6156. {
  6157. CString csTest;
  6158. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetUser_Ex ----> %.3f "), dRet);
  6159. //提示消息
  6160. CTraceService::TraceString(csTest, TraceLevel_Normal);
  6161. }
  6162. return true;
  6163. }
  6164. return true;
  6165. }
  6166. //俱乐部会员(在线)
  6167. bool CDataBaseEngineSink::OnRequestGetClubUserOnline(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  6168. {
  6169. OutputDebugStringA("CDataBaseEngineSink::OnRequestGetClubUserOnline");
  6170. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClubUserOnline"), TraceLevel_Debug);
  6171. CTimer Start;
  6172. try
  6173. {
  6174. CMD_GR_ClubUser_Ack_Ex* pClubUser = (CMD_GR_ClubUser_Ack_Ex*)pData;
  6175. if (pClubUser == NULL) return false;
  6176. //返回数据
  6177. CMD_GR_ClubUser_Ack ClubUserAck;
  6178. ZeroMemory(&ClubUserAck, sizeof(ClubUserAck));
  6179. ClubUserAck.cbHost = pClubUser->cbHost;
  6180. ClubUserAck.dwClubID = pClubUser->dwClubID;
  6181. int k = 0;
  6182. for (int i = pClubUser->wStartIndex; i < pClubUser->wCount + pClubUser->wStartIndex; i++)
  6183. {
  6184. if (i >= 1000) break;
  6185. if (pClubUser->csMemberInfo[i].dwUserID == 0 ) break;
  6186. //构造参数
  6187. m_GameDBAide.ResetParameter();
  6188. m_GameDBAide.AddParameter(TEXT("UserID"), pClubUser->csMemberInfo[i].dwUserID);
  6189. m_GameDBAide.AddParameter(TEXT("ClubID"), pClubUser->dwClubID);
  6190. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetUserOnline"), true);
  6191. if (DB_SUCCESS == lResultCode)
  6192. {
  6193. //构造数据
  6194. CMD_S_MemberInfo ClubUser;
  6195. ZeroMemory(&ClubUser, sizeof(ClubUser));
  6196. ClubUser.dwUserID = m_GameDBAide.GetValue_DWORD(TEXT("UserID"));
  6197. ClubUser.BangMaID = m_GameDBAide.GetValue_DWORD(TEXT("BangMa"));
  6198. ClubUser.cbStaus = m_GameDBAide.GetValue_BYTE(TEXT("Agree"));
  6199. int role = m_GameDBAide.GetValue_DWORD(TEXT("ClubRole"));
  6200. if (role == 10)
  6201. {
  6202. ClubUser.isHost = 1;
  6203. }
  6204. else if (role == 3)
  6205. {
  6206. ClubUser.isHost = 2;
  6207. }
  6208. TCHAR szBuffer[128] = { 0 };
  6209. ZeroMemory(szBuffer, 128 * sizeof(TCHAR));
  6210. m_GameDBAide.GetValue_String(TEXT("UserName"), szBuffer, 128);
  6211. TCHAR szOutBuffer[128] = { 0 };
  6212. ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR));
  6213. //解码
  6214. int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer);
  6215. if (iRet == -1)
  6216. {
  6217. szBuffer[32] = 0x0;
  6218. _sntprintf(ClubUser.szName, CountArray(ClubUser.szName), TEXT("%s"), szBuffer);
  6219. }
  6220. else
  6221. {
  6222. szOutBuffer[32] = 0x0;
  6223. _sntprintf(ClubUser.szName, CountArray(ClubUser.szName), TEXT("%s"), szOutBuffer);
  6224. }
  6225. m_GameDBAide.GetValue_String(TEXT("HeadUrl"), ClubUser.szHeadUrl, LEN_HEAD_URL);
  6226. //复制数据
  6227. if (k >= 20){ break; }
  6228. CopyMemory(&(ClubUserAck.csMemberInfo[k++]), &ClubUser, sizeof(ClubUser));
  6229. }
  6230. ClubUserAck.wCount = k;
  6231. }
  6232. //返回数据
  6233. int totalSize = ClubUserAck.wCount * sizeof(CMD_S_MemberInfo) + sizeof(WORD) + sizeof(DWORD) + sizeof(BYTE);
  6234. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_GET_USER_ACK, dwContextID, &ClubUserAck, totalSize);
  6235. double dRet = Start.End();
  6236. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  6237. {
  6238. CString csTest;
  6239. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetUserOnLine ----> %.3f "), dRet);
  6240. //提示消息
  6241. CTraceService::TraceString(csTest, TraceLevel_Normal);
  6242. }
  6243. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  6244. {
  6245. CString csTest;
  6246. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetUserOnLine ----> %.3f "), dRet);
  6247. //提示消息
  6248. CTraceService::TraceString(csTest, TraceLevel_Normal);
  6249. }
  6250. return true;
  6251. }
  6252. catch (IDataBaseException * pIException)
  6253. {
  6254. //输出错误
  6255. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  6256. double dRet = Start.End();
  6257. CString csTest;
  6258. csTest.Format(_T("异常存储过程耗时 GSP_GP_Club_GetUserOnLine ----> %.3f "), dRet);
  6259. //提示消息
  6260. CTraceService::TraceString(csTest, TraceLevel_Warning);
  6261. return true;
  6262. }
  6263. return true;
  6264. }
  6265. //俱乐部通知
  6266. bool CDataBaseEngineSink::OnRequestGetClubMessage(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  6267. {
  6268. OutputDebugStringA("CDataBaseEngineSink::OnRequestGetClubMessage");
  6269. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClubMessage"), TraceLevel_Debug);
  6270. CTimer Start;
  6271. try
  6272. {
  6273. DBR_GR_ClubMessage * pClubMessage = (DBR_GR_ClubMessage*)pData;
  6274. if (pClubMessage == NULL) return false;
  6275. //构造参数
  6276. m_GameDBAide.ResetParameter();
  6277. m_GameDBAide.AddParameter(TEXT("UserID"), pClubMessage->dwUserID);
  6278. m_GameDBAide.AddParameter(TEXT("StartIndex"), pClubMessage->wStartIndex);
  6279. m_GameDBAide.AddParameter(TEXT("Count"), pClubMessage->wCount);
  6280. //返回数据
  6281. CMD_GR_ClubMessage_Ack ClubMessageAck;
  6282. ZeroMemory(&ClubMessageAck, sizeof(ClubMessageAck));
  6283. //获取俱乐部消息
  6284. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetMessage"), true);
  6285. if (DB_SUCCESS == lResultCode)
  6286. {
  6287. int count = 0;
  6288. while (m_GameDBModule->IsRecordsetEnd() == false)
  6289. {
  6290. //构造数据
  6291. CMD_S_MessageInfo ClubMessage;
  6292. ZeroMemory(&ClubMessage, sizeof(ClubMessage));
  6293. ClubMessage.dType = m_GameDBAide.GetValue_WORD(TEXT("Kind"));
  6294. ClubMessage.dtActionTime = m_GameDBAide.GetValue_DWORD(TEXT("ActionTime"));
  6295. m_GameDBAide.GetValue_String(TEXT("Content"), ClubMessage.szContent, LEN_CLUB_MESSAGE);
  6296. //复制数据
  6297. CopyMemory(&(ClubMessageAck.CMD_S_MessageInfo[count]), &ClubMessage, sizeof(ClubMessage));
  6298. //移动记录
  6299. m_GameDBModule->MoveToNext();
  6300. count++;
  6301. if (count >= 20){ break; }
  6302. }
  6303. ClubMessageAck.wCount = count;
  6304. }
  6305. //返回数据
  6306. int totalSize = ClubMessageAck.wCount * sizeof(CMD_S_MessageInfo) + sizeof(WORD);
  6307. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_GET_MESSAGE_ACK, dwContextID, &ClubMessageAck, totalSize);
  6308. double dRet = Start.End();
  6309. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  6310. {
  6311. CString csTest;
  6312. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetMessage ----> %.3f "), dRet);
  6313. //提示消息
  6314. CTraceService::TraceString(csTest, TraceLevel_Normal);
  6315. }
  6316. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  6317. {
  6318. CString csTest;
  6319. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetMessage ----> %.3f "), dRet);
  6320. //提示消息
  6321. CTraceService::TraceString(csTest, TraceLevel_Normal);
  6322. }
  6323. return true;
  6324. }
  6325. catch (IDataBaseException * pIException)
  6326. {
  6327. //输出错误
  6328. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  6329. double dRet = Start.End();
  6330. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  6331. {
  6332. CString csTest;
  6333. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetMessage ----> %.3f "), dRet);
  6334. //提示消息
  6335. CTraceService::TraceString(csTest, TraceLevel_Normal);
  6336. }
  6337. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  6338. {
  6339. CString csTest;
  6340. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetMessage ----> %.3f "), dRet);
  6341. //提示消息
  6342. CTraceService::TraceString(csTest, TraceLevel_Normal);
  6343. }
  6344. return true;
  6345. }
  6346. return true;
  6347. }
  6348. //分享战绩到闲聊
  6349. bool CDataBaseEngineSink::OnRequestFenXiangClubRecord(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  6350. {
  6351. try
  6352. {
  6353. DBR_GR_ClubRecordXianLiao * pClubRecord = (DBR_GR_ClubRecordXianLiao*)pData;
  6354. if (pClubRecord == NULL) return false;
  6355. //构造参数
  6356. m_GameDBAide.ResetParameter();
  6357. m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubRecord->dwClubID);
  6358. //写入俱乐部消息
  6359. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_CheckXLQ"), true);
  6360. if (lResultCode == DB_SUCCESS)
  6361. {
  6362. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_XIANLIAO_RECORD, dwContextID, pData, wDataSize);
  6363. }
  6364. else if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(302))
  6365. {
  6366. CString csTest;
  6367. csTest.Format(_T("俱乐部未绑定闲聊群"));
  6368. //提示消息
  6369. CTraceService::TraceString(csTest, TraceLevel_Warning);
  6370. }
  6371. return true;
  6372. }
  6373. catch (IDataBaseException * pIException)
  6374. {
  6375. //输出错误
  6376. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  6377. CString csTest;
  6378. csTest.Format(_T("存储过程异常 GSP_GP_Club_CheckXLQ ----> %s "), pIException->GetExceptionDescribe());
  6379. //提示消息
  6380. CTraceService::TraceString(csTest, TraceLevel_Warning);
  6381. }
  6382. return true;
  6383. }
  6384. //俱乐部记录写入
  6385. bool CDataBaseEngineSink::OnRequestWriteClubRecord(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  6386. {
  6387. OutputDebugStringA("CDataBaseEngineSink::OnRequestWriteClubRecord");
  6388. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestWriteClubRecord"), TraceLevel_Debug);
  6389. CTimer Start;
  6390. try
  6391. {
  6392. DBR_GR_ClubRecordWrite * pClubRecord = (DBR_GR_ClubRecordWrite*)pData;
  6393. if (pClubRecord == NULL) return false;
  6394. //构造参数
  6395. m_GameDBAide.ResetParameter();
  6396. m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubRecord->dwClubID);
  6397. m_GameDBAide.AddParameter(TEXT("@TableID"), pClubRecord->dwTableID);
  6398. m_GameDBAide.AddParameter(TEXT("@TableOwnerID"), pClubRecord->dwUserID);
  6399. m_GameDBAide.AddParameter(TEXT("@JuShu"), pClubRecord->Jushu);
  6400. m_GameDBAide.AddParameter(TEXT("@PayWay"), pClubRecord->PayWay);
  6401. m_GameDBAide.AddParameter(TEXT("@UserCount"), pClubRecord->dwUserCount);
  6402. m_GameDBAide.AddParameter(TEXT("@Player0"), pClubRecord->Player[0]);
  6403. m_GameDBAide.AddParameter(TEXT("@Player1"), pClubRecord->Player[1]);
  6404. m_GameDBAide.AddParameter(TEXT("@Player2"), pClubRecord->Player[2]);
  6405. m_GameDBAide.AddParameter(TEXT("@Player3"), pClubRecord->Player[3]);
  6406. m_GameDBAide.AddParameter(TEXT("@CreateTime"), pClubRecord->SystemTimeStart);
  6407. //写入俱乐部消息
  6408. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_WriteRecord"), true);
  6409. double dRet = Start.End();
  6410. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  6411. {
  6412. CString csTest;
  6413. csTest.Format(_T("存储过程耗时 GSP_GP_Club_WriteRecord ----> %.3f "), dRet);
  6414. //提示消息
  6415. CTraceService::TraceString(csTest, TraceLevel_Normal);
  6416. }
  6417. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  6418. {
  6419. CString csTest;
  6420. csTest.Format(_T("存储过程耗时 GSP_GP_Club_WriteRecord ----> %.3f "), dRet);
  6421. //提示消息
  6422. CTraceService::TraceString(csTest, TraceLevel_Normal);
  6423. }
  6424. return true;
  6425. }
  6426. catch (IDataBaseException * pIException)
  6427. {
  6428. //输出错误
  6429. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  6430. double dRet = Start.End();
  6431. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  6432. {
  6433. CString csTest;
  6434. csTest.Format(_T("存储过程耗时 GSP_GP_Club_WriteRecord ----> %.3f "), dRet);
  6435. //提示消息
  6436. CTraceService::TraceString(csTest, TraceLevel_Normal);
  6437. }
  6438. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  6439. {
  6440. CString csTest;
  6441. csTest.Format(_T("存储过程耗时 GSP_GP_Club_WriteRecord ----> %.3f "), dRet);
  6442. //提示消息
  6443. CTraceService::TraceString(csTest, TraceLevel_Normal);
  6444. }
  6445. return true;
  6446. }
  6447. return true;
  6448. }
  6449. //俱乐部记录
  6450. bool CDataBaseEngineSink::OnRequestGetClubRecord(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  6451. {
  6452. OutputDebugStringA("CDataBaseEngineSink::OnRequestGetClubRecord");
  6453. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClubRecord"), TraceLevel_Debug);
  6454. CTimer Start;
  6455. try
  6456. {
  6457. DBR_GR_ClubRecordRead * pClubRecord = (DBR_GR_ClubRecordRead*)pData;
  6458. if (pClubRecord == NULL) return false;
  6459. //构造参数
  6460. m_GameDBAide.ResetParameter();
  6461. m_GameDBAide.AddParameter(TEXT("UserID"), pClubRecord->dwUserID);
  6462. m_GameDBAide.AddParameter(TEXT("ClubID"), pClubRecord->dwClubID);
  6463. m_GameDBAide.AddParameter(TEXT("StartIndex"), pClubRecord->wStartIndex);
  6464. m_GameDBAide.AddParameter(TEXT("Count"), pClubRecord->wCount);
  6465. m_GameDBAide.AddParameter(TEXT("StartTime"), pClubRecord->dtStartTime + 8 * 3600);
  6466. m_GameDBAide.AddParameter(TEXT("dwPrivateTable"), pClubRecord->dwPrivateTable);
  6467. //返回数据
  6468. CMD_GR_ClubRecord_Ack ClubRecordAck;
  6469. ZeroMemory(&ClubRecordAck, sizeof(ClubRecordAck));
  6470. ClubRecordAck.dwClubID = pClubRecord->dwClubID;
  6471. //获取俱乐部消息
  6472. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetRecord"), true);
  6473. if (DB_SUCCESS == lResultCode)
  6474. {
  6475. int count = 0;
  6476. while (m_GameDBModule->IsRecordsetEnd() == false)
  6477. {
  6478. //构造数据
  6479. int playCount = 0;
  6480. CMD_S_RecordInfo ClubRecord;
  6481. ZeroMemory(&ClubRecord, sizeof(ClubRecord));
  6482. ClubRecord.dwTableID = m_GameDBAide.GetValue_DWORD(TEXT("TableID"));
  6483. ClubRecord.dwTableOwnerID = m_GameDBAide.GetValue_DWORD(TEXT("TableOwnerID"));
  6484. ClubRecord.dtCreateTime = m_GameDBAide.GetValue_DWORD(TEXT("CreateTime"));
  6485. ClubRecord.cbPayWay = m_GameDBAide.GetValue_BYTE(TEXT("PayWay"));
  6486. ClubRecord.cbJuShu = m_GameDBAide.GetValue_BYTE(TEXT("JuShu"));
  6487. ClubRecord.PlayerID[0] = m_GameDBAide.GetValue_DWORD(TEXT("Player1"));
  6488. ClubRecord.PlayerID[1] = m_GameDBAide.GetValue_DWORD(TEXT("Player2"));
  6489. ClubRecord.PlayerID[2] = m_GameDBAide.GetValue_DWORD(TEXT("Player3"));
  6490. ClubRecord.PlayerID[3] = m_GameDBAide.GetValue_DWORD(TEXT("Player4"));
  6491. if (ClubRecord.PlayerID[0])playCount = 1;
  6492. if (ClubRecord.PlayerID[1])playCount = 2;
  6493. if (ClubRecord.PlayerID[2])playCount = 3;
  6494. if (ClubRecord.PlayerID[3])playCount = 4;
  6495. //名字
  6496. for (int i = 0; i < playCount; i++)
  6497. {
  6498. TCHAR szBuffer[128] = { 0 };
  6499. ZeroMemory(szBuffer, 128 * sizeof(TCHAR));
  6500. if (i == 0)
  6501. m_GameDBAide.GetValue_String(TEXT("NickName1"), szBuffer, 128);
  6502. if (i == 1)
  6503. m_GameDBAide.GetValue_String(TEXT("NickName2"), szBuffer, 128);
  6504. if (i == 2)
  6505. m_GameDBAide.GetValue_String(TEXT("NickName3"), szBuffer, 128);
  6506. if (i == 3)
  6507. m_GameDBAide.GetValue_String(TEXT("NickName4"), szBuffer, 128);
  6508. TCHAR szOutBuffer[128] = { 0 };
  6509. ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR));
  6510. //解码
  6511. int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer);
  6512. if (iRet == -1)
  6513. {
  6514. szBuffer[32] = 0x0;
  6515. _sntprintf(ClubRecord.PlayerName[i], CountArray(ClubRecord.PlayerName[i]), TEXT("%s"), szBuffer);
  6516. }
  6517. else
  6518. {
  6519. szOutBuffer[32] = 0x0;
  6520. _sntprintf(ClubRecord.PlayerName[i], CountArray(ClubRecord.PlayerName[i]), TEXT("%s"), szOutBuffer);
  6521. }
  6522. }
  6523. //复制数据
  6524. CopyMemory(&(ClubRecordAck.csRecordInfo[count]), &ClubRecord, sizeof(ClubRecord));
  6525. //移动记录
  6526. m_GameDBModule->MoveToNext();
  6527. count++;
  6528. if (count >= 10) { break; }
  6529. }
  6530. ClubRecordAck.wCount = count;
  6531. }
  6532. m_GameDBAide.ResetParameter();
  6533. m_GameDBAide.AddParameter(TEXT("UserID"), pClubRecord->dwUserID);
  6534. m_GameDBAide.AddParameter(TEXT("ClubID"), pClubRecord->dwClubID);
  6535. m_GameDBAide.AddParameter(TEXT("StartTime"), pClubRecord->dtStartTime + 8 * 3600);
  6536. m_GameDBAide.AddParameter(TEXT("dwPrivateTable"), pClubRecord->dwPrivateTable);
  6537. //获取俱乐部消息
  6538. lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetRecordCount"), true);
  6539. if (DB_SUCCESS == lResultCode)
  6540. {
  6541. ClubRecordAck.dwTableCount = m_GameDBAide.GetValue_DWORD(TEXT("TableCount"));
  6542. ClubRecordAck.dwZunShi = m_GameDBAide.GetValue_DWORD(TEXT("ZuanShiCount"));
  6543. }
  6544. //返回数据
  6545. int totalSize = ClubRecordAck.wCount * sizeof(CMD_S_RecordInfo) + sizeof(DWORD) * 3 + sizeof(WORD);
  6546. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_GET_RECORD_ACK, dwContextID, &ClubRecordAck, totalSize);
  6547. double dRet = Start.End();
  6548. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  6549. {
  6550. CString csTest;
  6551. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetRecord ----> %.3f "), dRet);
  6552. //提示消息
  6553. CTraceService::TraceString(csTest, TraceLevel_Normal);
  6554. }
  6555. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  6556. {
  6557. CString csTest;
  6558. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetRecord ----> %.3f "), dRet);
  6559. //提示消息
  6560. CTraceService::TraceString(csTest, TraceLevel_Normal);
  6561. }
  6562. return true;
  6563. }
  6564. catch (IDataBaseException * pIException)
  6565. {
  6566. //输出错误
  6567. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  6568. double dRet = Start.End();
  6569. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  6570. {
  6571. CString csTest;
  6572. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetRecord ----> %.3f "), dRet);
  6573. //提示消息
  6574. CTraceService::TraceString(csTest, TraceLevel_Normal);
  6575. }
  6576. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  6577. {
  6578. CString csTest;
  6579. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetRecord ----> %.3f "), dRet);
  6580. //提示消息
  6581. CTraceService::TraceString(csTest, TraceLevel_Normal);
  6582. }
  6583. return true;
  6584. }
  6585. return true;
  6586. }
  6587. bool CDataBaseEngineSink::OnRequestGetClubRecordEX(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  6588. {
  6589. OutputDebugStringA("CDataBaseEngineSink::OnRequestGetClubRecord");
  6590. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClubRecord"), TraceLevel_Debug);
  6591. CTimer Start;
  6592. try
  6593. {
  6594. DBR_GR_ClubRecordRead * pClubRecord = (DBR_GR_ClubRecordRead*)pData;
  6595. if (pClubRecord == NULL) return false;
  6596. //构造参数
  6597. m_GameDBAide.ResetParameter();
  6598. m_GameDBAide.AddParameter(TEXT("UserID"), pClubRecord->dwUserID);
  6599. m_GameDBAide.AddParameter(TEXT("ClubID"), pClubRecord->dwClubID);
  6600. m_GameDBAide.AddParameter(TEXT("StartIndex"), pClubRecord->wStartIndex);
  6601. m_GameDBAide.AddParameter(TEXT("Count"), pClubRecord->wCount);
  6602. m_GameDBAide.AddParameter(TEXT("StartTime"), pClubRecord->dtStartTime + 8 * 3600);
  6603. m_GameDBAide.AddParameter(TEXT("dwPrivateTable"), pClubRecord->dwPrivateTable);
  6604. //返回数据2
  6605. CMD_GR_ClubRecord_Ack_EX ClubRecordAckEx;
  6606. ZeroMemory(&ClubRecordAckEx, sizeof(ClubRecordAckEx));
  6607. ClubRecordAckEx.dwClubID = pClubRecord->dwClubID;
  6608. //获取俱乐部消息
  6609. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetRecord"), true);
  6610. if (DB_SUCCESS == lResultCode)
  6611. {
  6612. int count = 0;
  6613. while (m_GameDBModule->IsRecordsetEnd() == false)
  6614. {
  6615. //构造数据
  6616. int playCount = 0;
  6617. CMD_S_RecordInfoEX ClubRecordEX;
  6618. ZeroMemory(&ClubRecordEX, sizeof(ClubRecordEX));
  6619. ClubRecordEX.Record.dwTableID = m_GameDBAide.GetValue_DWORD(TEXT("TableID"));
  6620. ClubRecordEX.Record.dwTableOwnerID = m_GameDBAide.GetValue_DWORD(TEXT("TableOwnerID"));
  6621. ClubRecordEX.Record.dtCreateTime = m_GameDBAide.GetValue_DWORD(TEXT("CreateTime"));
  6622. ClubRecordEX.Record.cbPayWay = m_GameDBAide.GetValue_BYTE(TEXT("PayWay"));
  6623. ClubRecordEX.Record.cbJuShu = m_GameDBAide.GetValue_BYTE(TEXT("JuShu"));
  6624. ClubRecordEX.Record.PlayerID[0] = m_GameDBAide.GetValue_DWORD(TEXT("Player1"));
  6625. ClubRecordEX.Record.PlayerID[1] = m_GameDBAide.GetValue_DWORD(TEXT("Player2"));
  6626. ClubRecordEX.Record.PlayerID[2] = m_GameDBAide.GetValue_DWORD(TEXT("Player3"));
  6627. ClubRecordEX.Record.PlayerID[3] = m_GameDBAide.GetValue_DWORD(TEXT("Player4"));
  6628. if (ClubRecordEX.Record.PlayerID[0])playCount = 1;
  6629. if (ClubRecordEX.Record.PlayerID[1])playCount = 2;
  6630. if (ClubRecordEX.Record.PlayerID[2])playCount = 3;
  6631. if (ClubRecordEX.Record.PlayerID[3])playCount = 4;
  6632. //名字
  6633. for (int i = 0; i < playCount; i++)
  6634. {
  6635. TCHAR szBuffer[128] = { 0 };
  6636. ZeroMemory(szBuffer, 128 * sizeof(TCHAR));
  6637. if (i == 0)
  6638. m_GameDBAide.GetValue_String(TEXT("NickName1"), szBuffer, 128);
  6639. if (i == 1)
  6640. m_GameDBAide.GetValue_String(TEXT("NickName2"), szBuffer, 128);
  6641. if (i == 2)
  6642. m_GameDBAide.GetValue_String(TEXT("NickName3"), szBuffer, 128);
  6643. if (i == 3)
  6644. m_GameDBAide.GetValue_String(TEXT("NickName4"), szBuffer, 128);
  6645. TCHAR szOutBuffer[128] = { 0 };
  6646. ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR));
  6647. //解码
  6648. int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer);
  6649. if (iRet == -1)
  6650. {
  6651. szBuffer[32] = 0x0;
  6652. _sntprintf(ClubRecordEX.Record.PlayerName[i], CountArray(ClubRecordEX.Record.PlayerName[i]), TEXT("%s"), szBuffer);
  6653. }
  6654. else
  6655. {
  6656. szOutBuffer[32] = 0x0;
  6657. _sntprintf(ClubRecordEX.Record.PlayerName[i], CountArray(ClubRecordEX.Record.PlayerName[i]), TEXT("%s"), szOutBuffer);
  6658. }
  6659. }
  6660. //给新结构体赋值
  6661. ClubRecordEX.Score[0] = m_GameDBAide.GetValue_INT(TEXT("Score1"));
  6662. ClubRecordEX.Score[1] = m_GameDBAide.GetValue_INT(TEXT("Score2"));
  6663. ClubRecordEX.Score[2] = m_GameDBAide.GetValue_INT(TEXT("Score3"));
  6664. ClubRecordEX.Score[3] = m_GameDBAide.GetValue_INT(TEXT("Score4"));
  6665. //复制数据
  6666. CopyMemory(&(ClubRecordAckEx.csRecordInfo[count]), &ClubRecordEX, sizeof(ClubRecordEX));
  6667. //移动记录
  6668. m_GameDBModule->MoveToNext();
  6669. count++;
  6670. if (count >= 10) { break; }
  6671. }
  6672. ClubRecordAckEx.wCount = count;
  6673. }
  6674. m_GameDBAide.ResetParameter();
  6675. m_GameDBAide.AddParameter(TEXT("UserID"), pClubRecord->dwUserID);
  6676. m_GameDBAide.AddParameter(TEXT("ClubID"), pClubRecord->dwClubID);
  6677. m_GameDBAide.AddParameter(TEXT("StartTime"), pClubRecord->dtStartTime + 8 * 3600);
  6678. m_GameDBAide.AddParameter(TEXT("dwPrivateTable"), pClubRecord->dwPrivateTable);
  6679. //获取俱乐部消息
  6680. lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetRecordCount"), true);
  6681. if (DB_SUCCESS == lResultCode)
  6682. {
  6683. ClubRecordAckEx.dwTableCount = m_GameDBAide.GetValue_DWORD(TEXT("TableCount"));
  6684. ClubRecordAckEx.dwZunShi = m_GameDBAide.GetValue_DWORD(TEXT("ZuanShiCount"));
  6685. }
  6686. //返回数据
  6687. int totalSizeEx = ClubRecordAckEx.wCount * sizeof(CMD_S_RecordInfoEX) + sizeof(DWORD) * 3 + sizeof(WORD);
  6688. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_GET_RECORD_ACK_EX, dwContextID, &ClubRecordAckEx, totalSizeEx);
  6689. double dRet = Start.End();
  6690. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  6691. {
  6692. CString csTest;
  6693. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetRecord ----> %.3f "), dRet);
  6694. //提示消息
  6695. CTraceService::TraceString(csTest, TraceLevel_Normal);
  6696. }
  6697. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  6698. {
  6699. CString csTest;
  6700. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetRecord ----> %.3f "), dRet);
  6701. //提示消息
  6702. CTraceService::TraceString(csTest, TraceLevel_Normal);
  6703. }
  6704. return true;
  6705. }
  6706. catch (IDataBaseException * pIException)
  6707. {
  6708. //输出错误
  6709. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  6710. double dRet = Start.End();
  6711. CString csTest;
  6712. csTest.Format(_T("异常存储过程耗时 GSP_GP_Club_GetRecord ----> %.3f "), dRet);
  6713. //提示消息
  6714. CTraceService::TraceString(csTest, TraceLevel_Warning);
  6715. return true;
  6716. }
  6717. return true;
  6718. }
  6719. //俱乐部获取战绩数据
  6720. bool CDataBaseEngineSink::OnRequestGetClubExploits(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  6721. {
  6722. CTimer Start;
  6723. try
  6724. {
  6725. CMD_GR_ClubExploits * pClubRecord = (CMD_GR_ClubExploits*)pData;
  6726. if (pClubRecord == NULL) return false;
  6727. //构造参数
  6728. m_GameDBAide.ResetParameter();
  6729. m_GameDBAide.AddParameter(TEXT("PrivateTableID"), pClubRecord->PrivateTableID);
  6730. //获取俱乐部消息
  6731. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetExploits"), true);
  6732. CMD_GR_GetUserScoreRecordListResp records;
  6733. ZeroMemory(&records, sizeof(CMD_GR_GetUserScoreRecordListResp));
  6734. records.wParentRecordID = 1;
  6735. if (DB_SUCCESS == lResultCode)
  6736. {
  6737. std::vector<tagGameRecordDrawInfoEx> GameScoreRecord(m_GameDBModule->GetRecordCount());
  6738. int i = 0;
  6739. while (m_GameDBModule->IsRecordsetEnd() == false)
  6740. {
  6741. tagGameRecordDrawInfoEx& grdi = GameScoreRecord[i++];
  6742. grdi.dwDrawID = m_GameDBAide.GetValue_DWORD(TEXT("DrawID"));
  6743. grdi.wParentID = m_GameDBAide.GetValue_DWORD(TEXT("ParentID"));
  6744. SYSTEMTIME SystemTimeStart, SystemTimeConclude;
  6745. m_GameDBAide.GetValue_SystemTime(TEXT("StartTime"), SystemTimeStart);
  6746. m_GameDBAide.GetValue_SystemTime(TEXT("ConcludeTime"), SystemTimeConclude);
  6747. CTime StartTime(SystemTimeStart);
  6748. CTime ConcludeTime(SystemTimeConclude);
  6749. grdi.SystemTimeStart = StartTime.GetTime();
  6750. grdi.SystemTimeConclude = ConcludeTime.GetTime();
  6751. //移动记录
  6752. m_GameDBModule->MoveToNext();
  6753. }
  6754. records.wRecordCount = GameScoreRecord.size();
  6755. for (int i = 0; i < records.wRecordCount; i++)
  6756. {
  6757. tagGameRecordDrawInfoEx& grdi = GameScoreRecord[i];
  6758. m_GameDBAide.ResetParameter();
  6759. m_GameDBAide.AddParameter(TEXT("@DrawID"), grdi.dwDrawID);
  6760. int j = 0;
  6761. LONG lResultCode2 = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_GetRecordDrawScore"), true);
  6762. if (lResultCode2 == DB_SUCCESS)
  6763. {
  6764. while (m_GameDBModule->IsRecordsetEnd() == false)
  6765. {
  6766. if (j > 3)break;
  6767. //读取数据
  6768. tagGameRecordDrawScoreEx& grds = grdi.GameChairScore[j++];
  6769. grds.dwDrawID = m_GameDBAide.GetValue_DWORD(TEXT("DrawID"));
  6770. grds.dwUserID = m_GameDBAide.GetValue_DWORD(TEXT("UserID"));
  6771. TCHAR szBuffer[128] = { 0 };
  6772. ZeroMemory(szBuffer, 128 * sizeof(TCHAR));
  6773. m_GameDBAide.GetValue_String(TEXT("UserName"), szBuffer, 128);
  6774. TCHAR szOutBuffer[128] = { 0 };
  6775. ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR));
  6776. //解码
  6777. int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer);
  6778. if (iRet == -1)
  6779. {
  6780. szBuffer[32] = 0x0;
  6781. _sntprintf(grds.szUserName, LEN_NICKNAME, TEXT("%s"), szBuffer);
  6782. }
  6783. else
  6784. {
  6785. szOutBuffer[32] = 0x0;
  6786. _sntprintf(grds.szUserName, LEN_NICKNAME, TEXT("%s"), szOutBuffer);
  6787. }
  6788. grds.wChairID = m_GameDBAide.GetValue_WORD(TEXT("ChairID"));
  6789. grds.lScore = m_GameDBAide.GetValue_LONGLONG(TEXT("Score"));
  6790. grds.lGrade = m_GameDBAide.GetValue_WORD(TEXT("Grade"));
  6791. grds.dwUserMedal = m_GameDBAide.GetValue_WORD(TEXT("UserMedal"));
  6792. grds.dwPlayTimeCount = m_GameDBAide.GetValue_WORD(TEXT("PlayTimeCount"));
  6793. //移动记录
  6794. m_GameDBModule->MoveToNext();
  6795. }
  6796. }
  6797. }
  6798. int totalSize = sizeof(CMD_GR_GetUserScoreRecordListResp) + sizeof(tagGameRecordDrawInfoEx)*GameScoreRecord.size();
  6799. char* buff = new char[totalSize];
  6800. memcpy(buff, &records, sizeof(WORD) * 2);
  6801. int offset = sizeof(WORD) * 2;
  6802. for (tagGameRecordDrawInfoEx& r : GameScoreRecord)
  6803. {
  6804. memcpy(buff + offset, &r, sizeof(tagGameRecordDrawInfoEx));
  6805. offset += sizeof(tagGameRecordDrawInfoEx);
  6806. }
  6807. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(302))
  6808. {
  6809. CString csTest;
  6810. csTest.Format(_T("【OnRequestGetUserGameScoreRecords】获取战绩长度 ----> %d "), totalSize);
  6811. //提示消息
  6812. CTraceService::TraceString(csTest, TraceLevel_Normal);
  6813. }
  6814. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_GET_USER_GAMESCORE_LIST, dwContextID, buff, totalSize);
  6815. SafeDeleteArray(buff);
  6816. }
  6817. double dRet = Start.End();
  6818. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  6819. {
  6820. CString csTest;
  6821. csTest.Format(_T("存储过程耗时俱乐部查战绩 GSP_GP_Club_GetExploits GSP_GP_GetRecordDrawScore----> %.3f "), dRet);
  6822. //提示消息
  6823. CTraceService::TraceString(csTest, TraceLevel_Normal);
  6824. }
  6825. return true;
  6826. }
  6827. catch (IDataBaseException * pIException)
  6828. {
  6829. //输出错误
  6830. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  6831. double dRet = Start.End();
  6832. CString csTest;
  6833. csTest.Format(_T("异常存储过程耗时 GSP_GP_Club_GetExploits ----> %.3f "), dRet);
  6834. //提示消息
  6835. CTraceService::TraceString(csTest, TraceLevel_Warning);
  6836. return true;
  6837. }
  6838. return true;
  6839. }
  6840. //俱乐部获取对局数据
  6841. bool CDataBaseEngineSink::OnRequestGetClubPlaygames(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  6842. {
  6843. CTimer Start;
  6844. try
  6845. {
  6846. CMD_GR_ClubPlaygamesUser * pClubPlaygames = (CMD_GR_ClubPlaygamesUser*)pData;
  6847. if (pClubPlaygames == NULL) return false;
  6848. //构造参数
  6849. m_GameDBAide.ResetParameter();
  6850. m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubPlaygames->dwClubID);
  6851. m_GameDBAide.AddParameter(TEXT("@wType"), pClubPlaygames->wType);
  6852. m_GameDBAide.AddParameter(TEXT("@StartIndex"), pClubPlaygames->StartIndex);
  6853. m_GameDBAide.AddParameter(TEXT("@mCount"), pClubPlaygames->mCount);
  6854. m_GameDBAide.AddParameter(TEXT("@wDateCount"), pClubPlaygames->wDateCount);
  6855. m_GameDBAide.AddParameter(TEXT("@UserID"), pClubPlaygames->UserID);
  6856. //获取俱乐部消息
  6857. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_Playgames"), true);
  6858. if (lResultCode == DB_SUCCESS)
  6859. {
  6860. std::vector<tagClubPlaygames> PlaygamesCount(m_GameDBModule->GetRecordCount());
  6861. BYTE temp = 0;
  6862. while (m_GameDBModule->IsRecordsetEnd() == false)
  6863. {
  6864. if (temp > pClubPlaygames->mCount)break;
  6865. tagClubPlaygames & gms = PlaygamesCount[temp++];
  6866. gms.dwUserID = m_GameDBAide.GetValue_DWORD(TEXT("UserID"));
  6867. gms.mCount = m_GameDBAide.GetValue_WORD(TEXT("mCount"));
  6868. TCHAR szBuffer[128] = { 0 };
  6869. ZeroMemory(szBuffer, 128 * sizeof(TCHAR));
  6870. m_GameDBAide.GetValue_String(TEXT("UserName"), szBuffer, 128);
  6871. TCHAR szOutBuffer[128] = { 0 };
  6872. ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR));
  6873. //解码
  6874. int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer);
  6875. if (iRet == -1)
  6876. {
  6877. szBuffer[32] = 0x0;
  6878. _sntprintf(gms.szUserName, LEN_NICKNAME, TEXT("%s"), szBuffer);
  6879. }
  6880. else
  6881. {
  6882. szOutBuffer[32] = 0x0;
  6883. _sntprintf(gms.szUserName, LEN_NICKNAME, TEXT("%s"), szOutBuffer);
  6884. }
  6885. m_GameDBAide.GetValue_String(TEXT("UserImg"), gms.szHeadImg, 255);
  6886. CString csTest = gms.szHeadImg;
  6887. if (csTest == _T("0"))
  6888. {
  6889. ZeroMemory(gms.szHeadImg, 256 * sizeof(TCHAR));
  6890. }
  6891. //移动记录
  6892. m_GameDBModule->MoveToNext();
  6893. }
  6894. int totalSize = sizeof(tagClubPlaygames)*PlaygamesCount.size() + sizeof(WORD) + sizeof(BYTE);
  6895. char* buff = new char[totalSize];
  6896. WORD wCount = pClubPlaygames->wDateCount;
  6897. CopyMemory(buff, &wCount, sizeof(WORD));
  6898. CopyMemory(buff + sizeof(WORD), &temp, sizeof(BYTE));
  6899. int offset = sizeof(BYTE) + sizeof(WORD);
  6900. for (tagClubPlaygames& r : PlaygamesCount)
  6901. {
  6902. memcpy(buff + offset, &r, sizeof(tagClubPlaygames));
  6903. offset += sizeof(tagClubPlaygames);
  6904. }
  6905. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(302))
  6906. {
  6907. CString csTest;
  6908. csTest.Format(_T("【OnRequestGetUserGameScoreRecords】获取战绩长度 ----> %d "), totalSize);
  6909. //提示消息
  6910. CTraceService::TraceString(csTest, TraceLevel_Normal);
  6911. }
  6912. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_GET_COUNT_PLAYGAEMS_ACK, dwContextID, buff, totalSize);
  6913. SafeDeleteArray(buff);
  6914. }
  6915. double dRet = Start.End();
  6916. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  6917. {
  6918. CString csTest;
  6919. csTest.Format(_T("存储过程耗时 GSP_GP_Club_Playgames ----> %.3f "), dRet);
  6920. //提示消息
  6921. CTraceService::TraceString(csTest, TraceLevel_Normal);
  6922. }
  6923. return true;
  6924. }
  6925. catch (IDataBaseException * pIException)
  6926. {
  6927. //输出错误
  6928. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  6929. double dRet = Start.End();
  6930. CString csTest;
  6931. csTest.Format(_T("异常存储过程耗时 GSP_GP_Club_Playgames ----> %.3f "), dRet);
  6932. //提示消息
  6933. CTraceService::TraceString(csTest, TraceLevel_Warning);
  6934. return true;
  6935. }
  6936. }
  6937. //俱乐部获取积分数据
  6938. bool CDataBaseEngineSink::OnRequestGetClubIntegral(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  6939. {
  6940. CTimer Start;
  6941. try
  6942. {
  6943. CMD_GR_ClubIntegralUser * pClubIntegral = (CMD_GR_ClubIntegralUser*)pData;
  6944. if (pClubIntegral == NULL) return false;
  6945. //构造参数
  6946. m_GameDBAide.ResetParameter();
  6947. m_GameDBAide.AddParameter(TEXT("ClubID"), pClubIntegral->dwClubID);
  6948. m_GameDBAide.AddParameter(TEXT("wType"), pClubIntegral->wType);
  6949. m_GameDBAide.AddParameter(TEXT("wDateCount"), pClubIntegral->wDateCount);
  6950. m_GameDBAide.AddParameter(TEXT("@UserID"), pClubIntegral->UserID);
  6951. //获取俱乐部消息
  6952. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_Integral"), true);
  6953. if (lResultCode == DB_SUCCESS)
  6954. {
  6955. std::vector<tagClubIntegral> ClubIntegral(m_GameDBModule->GetRecordCount());
  6956. BYTE temp = 0;
  6957. while (m_GameDBModule->IsRecordsetEnd() == false)
  6958. {
  6959. if (temp > 10)break;
  6960. tagClubIntegral & gms = ClubIntegral[temp++];
  6961. gms.dwUserID = m_GameDBAide.GetValue_DWORD(TEXT("UserID"));
  6962. gms.mCount = m_GameDBAide.GetValue_WORD(TEXT("mCount"));
  6963. gms.mJiFen = m_GameDBAide.GetValue_LONGLONG(TEXT("Score"));
  6964. TCHAR szBuffer[128] = { 0 };
  6965. ZeroMemory(szBuffer, 128 * sizeof(TCHAR));
  6966. m_GameDBAide.GetValue_String(TEXT("UserName"), szBuffer, 128);
  6967. TCHAR szOutBuffer[128] = { 0 };
  6968. ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR));
  6969. //解码
  6970. int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer);
  6971. if (iRet == -1)
  6972. {
  6973. szBuffer[32] = 0x0;
  6974. _sntprintf(gms.szUserName, LEN_NICKNAME, TEXT("%s"), szBuffer);
  6975. }
  6976. else
  6977. {
  6978. szOutBuffer[32] = 0x0;
  6979. _sntprintf(gms.szUserName, LEN_NICKNAME, TEXT("%s"), szOutBuffer);
  6980. }
  6981. m_GameDBAide.GetValue_String(TEXT("UserImg"), gms.szHeadImg, 255);
  6982. CString csTest = gms.szHeadImg;
  6983. if (csTest == _T("0"))
  6984. {
  6985. ZeroMemory(gms.szHeadImg, 256 * sizeof(TCHAR));
  6986. }
  6987. //移动记录
  6988. m_GameDBModule->MoveToNext();
  6989. }
  6990. int totalSize = sizeof(tagClubIntegral)*ClubIntegral.size() + sizeof(WORD) + sizeof(BYTE);
  6991. char* buff = new char[totalSize];
  6992. WORD wCount = pClubIntegral->wDateCount;
  6993. CopyMemory(buff, &wCount, sizeof(WORD));
  6994. CopyMemory(buff + sizeof(WORD), &temp, sizeof(BYTE));
  6995. int offset = sizeof(BYTE) + sizeof(WORD);
  6996. for (tagClubIntegral& r : ClubIntegral)
  6997. {
  6998. memcpy(buff + offset, &r, sizeof(tagClubIntegral));
  6999. offset += sizeof(tagClubIntegral);
  7000. }
  7001. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(302))
  7002. {
  7003. CString csTest;
  7004. csTest.Format(_T("【OnRequestGetUserGameScoreRecords】获取战绩长度 ----> %d "), totalSize);
  7005. //提示消息
  7006. CTraceService::TraceString(csTest, TraceLevel_Normal);
  7007. }
  7008. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_GET_COUNT_INTEGRAL_ACK, dwContextID, buff, totalSize);
  7009. SafeDeleteArray(buff);
  7010. }
  7011. double dRet = Start.End();
  7012. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  7013. {
  7014. CString csTest;
  7015. csTest.Format(_T("存储过程耗时 GSP_GP_Club_Integral ----> %.3f "), dRet);
  7016. //提示消息
  7017. CTraceService::TraceString(csTest, TraceLevel_Normal);
  7018. }
  7019. return true;
  7020. }
  7021. catch (IDataBaseException * pIException)
  7022. {
  7023. //输出错误
  7024. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  7025. double dRet = Start.End();
  7026. CString csTest;
  7027. csTest.Format(_T("异常存储过程耗时 GSP_GP_Club_Integral ----> %.3f "), dRet);
  7028. //提示消息
  7029. CTraceService::TraceString(csTest, TraceLevel_Warning);
  7030. return true;
  7031. }
  7032. }
  7033. void CDataBaseEngineSink::OnHandleConfigToCString(CString & gameConfig, const tagTableConfig csGameConfig)
  7034. {
  7035. CString kongZhi = L"#";
  7036. TCHAR temp[10];
  7037. //类型
  7038. ZeroMemory(temp, 10);
  7039. _itow_s(csGameConfig.wSubGameID, temp, 10);
  7040. gameConfig.Append(temp);
  7041. gameConfig.Append(kongZhi);
  7042. //底分
  7043. ZeroMemory(temp, 10);
  7044. _itow_s(csGameConfig.wPlayRule, temp, 10);
  7045. gameConfig.Append(temp);
  7046. gameConfig.Append(kongZhi);
  7047. //房费
  7048. ZeroMemory(temp, 10);
  7049. _itow_s(csGameConfig.wMaxFanRule, temp, 10);
  7050. gameConfig.Append(temp);
  7051. gameConfig.Append(kongZhi);
  7052. //IP限制
  7053. ZeroMemory(temp, 10);
  7054. _itow_s(csGameConfig.wMaxScore, temp, 10);
  7055. gameConfig.Append(temp);
  7056. gameConfig.Append(kongZhi);
  7057. //局数
  7058. ZeroMemory(temp, 10);
  7059. _itow_s(csGameConfig.wPlayCountRule, temp, 10);
  7060. gameConfig.Append(temp);
  7061. gameConfig.Append(kongZhi);
  7062. //支付方式
  7063. ZeroMemory(temp, 10);
  7064. _itow_s(csGameConfig.zmExtraRule, temp, 10);
  7065. gameConfig.Append(temp);
  7066. gameConfig.Append(kongZhi);
  7067. //胡法
  7068. ZeroMemory(temp, 10);
  7069. _itow_s(csGameConfig.bDuoLai, temp, 10);
  7070. gameConfig.Append(temp);
  7071. gameConfig.Append(kongZhi);
  7072. //玩法
  7073. ZeroMemory(temp, 10);
  7074. _itow_s(csGameConfig.wFengDing, temp, 10);
  7075. gameConfig.Append(temp);
  7076. gameConfig.Append(kongZhi);
  7077. //备用
  7078. ZeroMemory(temp, 10);
  7079. _itow_s(csGameConfig.tmp1, temp, 10);
  7080. gameConfig.Append(temp);
  7081. gameConfig.Append(kongZhi);
  7082. ZeroMemory(temp, 10);
  7083. _itow_s(csGameConfig.tmp2, temp, 10);
  7084. gameConfig.Append(temp);
  7085. gameConfig.Append(kongZhi);
  7086. ZeroMemory(temp, 10);
  7087. _itow_s(csGameConfig.tmp3, temp, 10);
  7088. gameConfig.Append(temp);
  7089. gameConfig.Append(kongZhi);
  7090. ZeroMemory(temp, 10);
  7091. _itow_s(csGameConfig.tmp4, temp, 10);
  7092. gameConfig.Append(temp);
  7093. gameConfig.Append(kongZhi);
  7094. ZeroMemory(temp, 10);
  7095. _itow_s(csGameConfig.tmp5, temp, 10);
  7096. gameConfig.Append(temp);
  7097. }
  7098. //俱乐部创建
  7099. bool CDataBaseEngineSink::OnRequestCreateClub(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  7100. {
  7101. OutputDebugStringA("CDataBaseEngineSink::OnRequestCreateClub");
  7102. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestCreateClub"), TraceLevel_Debug);
  7103. CTimer Start;
  7104. try
  7105. {
  7106. DBR_GR_ClubAction1 *pClubAction1 = (DBR_GR_ClubAction1*)pData;
  7107. if (pClubAction1 == NULL) return false;
  7108. //构造参数
  7109. TCHAR szDescribeString[127];
  7110. ZeroMemory(szDescribeString, 127 * sizeof(TCHAR));
  7111. //输入参数
  7112. m_GameDBAide.ResetParameter();
  7113. m_GameDBAide.AddParameter(TEXT("UserID"), pClubAction1->dwUserID);
  7114. m_GameDBAide.AddParameter(TEXT("ClubName"), pClubAction1->ClubInfo.szClubName);
  7115. m_GameDBAide.AddParameter(TEXT("TableChoice"), pClubAction1->ClubInfo.temp1);
  7116. CString gameConfig;
  7117. OnHandleConfigToCString(gameConfig, pClubAction1->ClubInfo.csGameConfig);//LYH26
  7118. //CString kongZhi = L"#";
  7119. //TCHAR temp[10];
  7120. ////类型
  7121. //ZeroMemory(temp, 10);
  7122. //_itow_s(pClubAction1->ClubInfo.csGameConfig.wSubGameID, temp, 10);
  7123. //gameConfig.Append(temp);
  7124. //gameConfig.Append(kongZhi);
  7125. ////底分
  7126. //ZeroMemory(temp, 10);
  7127. //_itow_s(pClubAction1->ClubInfo.csGameConfig.wPlayRule, temp, 10);
  7128. //
  7129. //gameConfig.Append(temp);
  7130. //gameConfig.Append(kongZhi);
  7131. ////房费
  7132. //ZeroMemory(temp, 10);
  7133. //_itow_s(pClubAction1->ClubInfo.csGameConfig.wMaxFanRule, temp, 10);
  7134. //gameConfig.Append(temp);
  7135. //gameConfig.Append(kongZhi);
  7136. ////IP限制
  7137. //ZeroMemory(temp, 10);
  7138. //_itow_s(pClubAction1->ClubInfo.csGameConfig.wMaxScore, temp, 10);
  7139. //gameConfig.Append(temp);
  7140. //gameConfig.Append(kongZhi);
  7141. ////局数
  7142. //ZeroMemory(temp, 10);
  7143. //_itow_s(pClubAction1->ClubInfo.csGameConfig.wPlayCountRule, temp, 10);
  7144. //gameConfig.Append(temp);
  7145. //gameConfig.Append(kongZhi);
  7146. ////支付方式
  7147. //ZeroMemory(temp, 10);
  7148. //_itow_s(pClubAction1->ClubInfo.csGameConfig.zmExtraRule, temp, 10);
  7149. //gameConfig.Append(temp);
  7150. //gameConfig.Append(kongZhi);
  7151. ////胡法
  7152. //ZeroMemory(temp, 10);
  7153. //_itow_s(pClubAction1->ClubInfo.csGameConfig.bDuoLai, temp, 10);
  7154. //gameConfig.Append(temp);
  7155. //gameConfig.Append(kongZhi);
  7156. ////玩法
  7157. //ZeroMemory(temp, 10);
  7158. //_itow_s(pClubAction1->ClubInfo.csGameConfig.wFengDing, temp, 10);
  7159. //gameConfig.Append(temp);
  7160. //gameConfig.Append(kongZhi);
  7161. ////备用
  7162. //ZeroMemory(temp, 10);
  7163. //_itow_s(pClubAction1->ClubInfo.csGameConfig.tmp1, temp, 10);
  7164. //gameConfig.Append(temp);
  7165. //gameConfig.Append(kongZhi);
  7166. //ZeroMemory(temp, 10);
  7167. //_itow_s(pClubAction1->ClubInfo.csGameConfig.tmp2, temp, 10);
  7168. //gameConfig.Append(temp);
  7169. //gameConfig.Append(kongZhi);
  7170. //ZeroMemory(temp, 10);
  7171. //_itow_s(pClubAction1->ClubInfo.csGameConfig.tmp3, temp, 10);
  7172. //gameConfig.Append(temp);
  7173. //gameConfig.Append(kongZhi);
  7174. //ZeroMemory(temp, 10);
  7175. //_itow_s(pClubAction1->ClubInfo.csGameConfig.tmp4, temp, 10);
  7176. //gameConfig.Append(temp);
  7177. //gameConfig.Append(kongZhi);
  7178. //ZeroMemory(temp, 10);
  7179. //_itow_s(pClubAction1->ClubInfo.csGameConfig.tmp5, temp, 10);
  7180. //gameConfig.Append(temp);
  7181. m_GameDBAide.AddParameter(TEXT("GameConfig"), gameConfig);
  7182. m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  7183. //返回数据
  7184. DBR_GR_Club_Action_Ack4 ActionAck1;
  7185. ZeroMemory(&ActionAck1, sizeof(ActionAck1));
  7186. //创建俱乐部
  7187. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_Create"), true);
  7188. if (DB_SUCCESS == lResultCode)
  7189. {
  7190. CopyMemory(&ActionAck1.ClubInfo, &(pClubAction1->ClubInfo), sizeof(CMD_S_ClubInfo));
  7191. ActionAck1.ClubInfo.dwOwnerID = pClubAction1->dwUserID;
  7192. ActionAck1.ClubInfo.dwClubID = m_GameDBAide.GetValue_DWORD(TEXT("ClubID"));
  7193. m_GameDBAide.GetValue_String(TEXT("HeadUrl"), ActionAck1.ClubInfo.szHeadUrl, LEN_HEAD_URL);
  7194. TCHAR szBuffer[128] = { 0 };
  7195. ZeroMemory(szBuffer, 128 * sizeof(TCHAR));
  7196. m_GameDBAide.GetValue_String(TEXT("NickName"), szBuffer, 128);
  7197. TCHAR szOutBuffer[128] = { 0 };
  7198. ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR));
  7199. //解码
  7200. int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer);
  7201. if (iRet == -1)
  7202. {
  7203. szBuffer[32] = 0x0;
  7204. _sntprintf(ActionAck1.ClubInfo.szHostName, CountArray(ActionAck1.ClubInfo.szHostName), TEXT("%s"), szBuffer);
  7205. }
  7206. else
  7207. {
  7208. szOutBuffer[32] = 0x0;
  7209. _sntprintf(ActionAck1.ClubInfo.szHostName, CountArray(ActionAck1.ClubInfo.szHostName), TEXT("%s"), szOutBuffer);
  7210. }
  7211. ActionAck1.Result = 1;
  7212. }
  7213. else
  7214. {
  7215. //获取参数
  7216. CDBVarValue DBVarValue;
  7217. m_GameDBAide.GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  7218. ZeroMemory(szDescribeString, sizeof(szDescribeString));
  7219. lstrcpyn(szDescribeString, CW2CT(DBVarValue.bstrVal), sizeof(szDescribeString));
  7220. CopyMemory(ActionAck1.Message, szDescribeString, 127 * sizeof(TCHAR));
  7221. }
  7222. //返回数据
  7223. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_CREATE_ACK, dwContextID, &ActionAck1, sizeof(ActionAck1));
  7224. double dRet = Start.End();
  7225. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  7226. {
  7227. CString csTest;
  7228. csTest.Format(_T("存储过程耗时 GSP_GP_Club_Create ----> %.3f "), dRet);
  7229. //提示消息
  7230. CTraceService::TraceString(csTest, TraceLevel_Normal);
  7231. }
  7232. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  7233. {
  7234. CString csTest;
  7235. csTest.Format(_T("存储过程耗时 GSP_GP_Club_Create ----> %.3f "), dRet);
  7236. //提示消息
  7237. CTraceService::TraceString(csTest, TraceLevel_Normal);
  7238. }
  7239. return true;
  7240. }
  7241. catch (IDataBaseException * pIException)
  7242. {
  7243. //输出错误
  7244. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  7245. double dRet = Start.End();
  7246. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  7247. {
  7248. CString csTest;
  7249. csTest.Format(_T("存储过程耗时 GSP_GP_Club_Create ----> %.3f "), dRet);
  7250. //提示消息
  7251. CTraceService::TraceString(csTest, TraceLevel_Normal);
  7252. }
  7253. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  7254. {
  7255. CString csTest;
  7256. csTest.Format(_T("存储过程耗时 GSP_GP_Club_Create ----> %.3f "), dRet);
  7257. //提示消息
  7258. CTraceService::TraceString(csTest, TraceLevel_Normal);
  7259. }
  7260. return true;
  7261. }
  7262. return true;
  7263. }
  7264. //俱乐部额外玩法修改
  7265. bool CDataBaseEngineSink::OnRequestUpdateAddClub(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  7266. {
  7267. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestUpdateClub"), TraceLevel_Debug);
  7268. CTimer Start;
  7269. try
  7270. {
  7271. DBR_GR_ClubAddAction *pClubAction1 = (DBR_GR_ClubAddAction*)pData;
  7272. if (pClubAction1 == NULL) return false;
  7273. //构造参数
  7274. TCHAR szDescribeString[127];
  7275. ZeroMemory(szDescribeString, 127 * sizeof(TCHAR));
  7276. //输入参数
  7277. m_GameDBAide.ResetParameter();
  7278. m_GameDBAide.AddParameter(TEXT("@AddId"), pClubAction1->tbAutoAddInfo.cbWanfaId);//额外玩法自动开房与默认玩法区别
  7279. m_GameDBAide.AddParameter(TEXT("@UserID"), pClubAction1->dwUserID);
  7280. m_GameDBAide.AddParameter(TEXT("@CLubID"), pClubAction1->tbAutoAddInfo.dwClubID);
  7281. CString gameConfig;
  7282. if (1 == pClubAction1->tbAutoAddInfo.cbStatus)
  7283. {
  7284. OnHandleConfigToCString(gameConfig, pClubAction1->tbAutoAddInfo.gameconfig);//只修改默认玩法,额外玩法不改 目前 LYH26
  7285. }
  7286. m_GameDBAide.AddParameter(TEXT("@GameConfig"), gameConfig);
  7287. m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  7288. //返回数据
  7289. CMD_GR_Club_Action_Ack1Add ActionAck1;
  7290. ZeroMemory(&ActionAck1, sizeof(ActionAck1));
  7291. CMD_S_ClubAutoAddInfo tAutoAddInfo; //额外玩法信息
  7292. ZeroMemory(&tAutoAddInfo, sizeof(CMD_S_ClubAutoAddInfo));
  7293. CopyMemory(&ActionAck1.AutoAddInfo, &pClubAction1->tbAutoAddInfo, sizeof(CMD_S_ClubAutoAddInfo));
  7294. //更新俱乐部
  7295. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_UpdateAdd"), true);
  7296. if (DB_SUCCESS == lResultCode)
  7297. {
  7298. ActionAck1.Result = 1;
  7299. }
  7300. else
  7301. {
  7302. //获取参数
  7303. CDBVarValue DBVarValue;
  7304. m_GameDBAide.GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  7305. ZeroMemory(szDescribeString, sizeof(szDescribeString));
  7306. lstrcpyn(szDescribeString, CW2CT(DBVarValue.bstrVal), sizeof(szDescribeString));
  7307. CopyMemory(ActionAck1.Message, szDescribeString, 127 * sizeof(TCHAR));
  7308. ActionAck1.Result = 0;
  7309. }
  7310. //返回数据
  7311. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_SAVE_MORE_WANFA_ACK, dwContextID, &ActionAck1, sizeof(CMD_GR_Club_Action_Ack1Add));
  7312. double dRet = Start.End();
  7313. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  7314. {
  7315. CString csTest;
  7316. csTest.Format(_T("存储过程耗时 GSP_GP_Club_UpdateAdd ----> %.3f "), dRet);
  7317. //提示消息
  7318. CTraceService::TraceString(csTest, TraceLevel_Normal);
  7319. }
  7320. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  7321. {
  7322. CString csTest;
  7323. csTest.Format(_T("存储过程耗时 GSP_GP_Club_UpdateAdd ----> %.3f "), dRet);
  7324. //提示消息
  7325. CTraceService::TraceString(csTest, TraceLevel_Normal);
  7326. }
  7327. return true;
  7328. }
  7329. catch (IDataBaseException * pIException)
  7330. {
  7331. //输出错误
  7332. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  7333. double dRet = Start.End();
  7334. CString csTest;
  7335. csTest.Format(_T("异常存储过程耗时 GSP_GP_Club_UpdateAdd ----> %.3f "), dRet);
  7336. //提示消息
  7337. CTraceService::TraceString(csTest, TraceLevel_Warning);
  7338. return true;
  7339. }
  7340. return true;
  7341. }
  7342. //俱乐部修改
  7343. bool CDataBaseEngineSink::OnRequestUpdateClub(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  7344. {
  7345. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestUpdateClub"), TraceLevel_Debug);
  7346. CTimer Start;
  7347. try
  7348. {
  7349. DBR_GR_ClubAction1 *pClubAction1 = (DBR_GR_ClubAction1*)pData;
  7350. if (pClubAction1 == NULL) return false;
  7351. //构造参数
  7352. TCHAR szDescribeString[127];
  7353. ZeroMemory(szDescribeString, 127 * sizeof(TCHAR));
  7354. //输入参数
  7355. m_GameDBAide.ResetParameter();
  7356. //int nAddId = *(int*)(pClubAction1 + 1);//额外玩法自动开房与默认玩法区别
  7357. //m_GameDBAide.AddParameter(TEXT("@AddId"), nAddId);
  7358. m_GameDBAide.AddParameter(TEXT("@UserID"), pClubAction1->dwUserID);
  7359. m_GameDBAide.AddParameter(TEXT("@CLubID"), pClubAction1->ClubInfo.dwClubID);
  7360. m_GameDBAide.AddParameter(TEXT("@TableChoice"), pClubAction1->ClubInfo.temp1);
  7361. m_GameDBAide.AddParameter(TEXT("@ClubName"), pClubAction1->ClubInfo.szClubName);
  7362. CString gameConfig;
  7363. OnHandleConfigToCString(gameConfig, pClubAction1->ClubInfo.csGameConfig);//只修改默认玩法,额外玩法不改 目前 LYH26
  7364. //CString kongZhi = L"#";
  7365. //TCHAR temp[10];
  7366. ////类型
  7367. //ZeroMemory(temp, 10);
  7368. //_itow_s(pClubAction1->ClubInfo.csGameConfig.wSubGameID, temp, 10);
  7369. //gameConfig.Append(temp);
  7370. //gameConfig.Append(kongZhi);
  7371. ////底分
  7372. //ZeroMemory(temp, 10);
  7373. //_itow_s(pClubAction1->ClubInfo.csGameConfig.wPlayRule, temp, 10);
  7374. //gameConfig.Append(temp);
  7375. //gameConfig.Append(kongZhi);
  7376. ////房费
  7377. //ZeroMemory(temp, 10);
  7378. //_itow_s(pClubAction1->ClubInfo.csGameConfig.wMaxFanRule, temp, 10);
  7379. //gameConfig.Append(temp);
  7380. //gameConfig.Append(kongZhi);
  7381. ////IP限制
  7382. //ZeroMemory(temp, 10);
  7383. //_itow_s(pClubAction1->ClubInfo.csGameConfig.wMaxScore, temp, 10);
  7384. //gameConfig.Append(temp);
  7385. //gameConfig.Append(kongZhi);
  7386. ////局数
  7387. //ZeroMemory(temp, 10);
  7388. //_itow_s(pClubAction1->ClubInfo.csGameConfig.wPlayCountRule, temp, 10);
  7389. //gameConfig.Append(temp);
  7390. //gameConfig.Append(kongZhi);
  7391. ////支付方式
  7392. //ZeroMemory(temp, 10);
  7393. //_itow_s(pClubAction1->ClubInfo.csGameConfig.zmExtraRule, temp, 10);
  7394. //gameConfig.Append(temp);
  7395. //gameConfig.Append(kongZhi);
  7396. ////胡法
  7397. //ZeroMemory(temp, 10);
  7398. //_itow_s(pClubAction1->ClubInfo.csGameConfig.bDuoLai, temp, 10);
  7399. //gameConfig.Append(temp);
  7400. //gameConfig.Append(kongZhi);
  7401. ////玩法
  7402. //ZeroMemory(temp, 10);
  7403. //_itow_s(pClubAction1->ClubInfo.csGameConfig.wFengDing, temp, 10);
  7404. //gameConfig.Append(temp);
  7405. //gameConfig.Append(kongZhi);
  7406. ////备用
  7407. //ZeroMemory(temp, 10);
  7408. //_itow_s(pClubAction1->ClubInfo.csGameConfig.tmp1, temp, 10);
  7409. //gameConfig.Append(temp);
  7410. //gameConfig.Append(kongZhi);
  7411. //ZeroMemory(temp, 10);
  7412. //_itow_s(pClubAction1->ClubInfo.csGameConfig.tmp2, temp, 10);
  7413. //gameConfig.Append(temp);
  7414. //gameConfig.Append(kongZhi);
  7415. //ZeroMemory(temp, 10);
  7416. //_itow_s(pClubAction1->ClubInfo.csGameConfig.tmp3, temp, 10);
  7417. //gameConfig.Append(temp);
  7418. //gameConfig.Append(kongZhi);
  7419. //ZeroMemory(temp, 10);
  7420. //_itow_s(pClubAction1->ClubInfo.csGameConfig.tmp4, temp, 10);
  7421. //gameConfig.Append(temp);
  7422. //gameConfig.Append(kongZhi);
  7423. //ZeroMemory(temp, 10);
  7424. //_itow_s(pClubAction1->ClubInfo.csGameConfig.tmp5, temp, 10);
  7425. //gameConfig.Append(temp);
  7426. m_GameDBAide.AddParameter(TEXT("@GameConfig"), gameConfig);
  7427. m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  7428. //返回数据
  7429. CMD_GR_Club_Action_Ack2Ex ActionAck2;
  7430. ZeroMemory(&ActionAck2, sizeof(ActionAck2));
  7431. //更新俱乐部
  7432. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_Update"), true);
  7433. if (DB_SUCCESS == lResultCode)
  7434. {
  7435. ActionAck2.TableChoiceChange = m_GameDBAide.GetValue_BYTE(TEXT("TableChoiceChange"));
  7436. ActionAck2.Ack2.Result = 1;
  7437. CopyMemory(&(ActionAck2.Ack2.ClubInfo), &(pClubAction1->ClubInfo), sizeof(CMD_S_ClubInfo));
  7438. ActionAck2.Ack2.ClubInfo.dwOwnerID = pClubAction1->dwUserID;
  7439. m_GameDBAide.GetValue_String(TEXT("HeadUrl"), ActionAck2.Ack2.ClubInfo.szHeadUrl, LEN_HEAD_URL);
  7440. TCHAR szBuffer[128] = { 0 };
  7441. ZeroMemory(szBuffer, 128 * sizeof(TCHAR));
  7442. m_GameDBAide.GetValue_String(TEXT("NickName"), szBuffer, 128);
  7443. TCHAR szOutBuffer[128] = { 0 };
  7444. ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR));
  7445. //解码
  7446. int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer);
  7447. if (iRet == -1)
  7448. {
  7449. szBuffer[32] = 0x0;
  7450. _sntprintf(ActionAck2.Ack2.ClubInfo.szHostName, CountArray(ActionAck2.Ack2.ClubInfo.szHostName), TEXT("%s"), szBuffer);
  7451. }
  7452. else
  7453. {
  7454. szOutBuffer[32] = 0x0;
  7455. _sntprintf(ActionAck2.Ack2.ClubInfo.szHostName, CountArray(ActionAck2.Ack2.ClubInfo.szHostName), TEXT("%s"), szOutBuffer);
  7456. }
  7457. }
  7458. else
  7459. {
  7460. //获取参数
  7461. CDBVarValue DBVarValue;
  7462. m_GameDBAide.GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  7463. ZeroMemory(szDescribeString, sizeof(szDescribeString));
  7464. lstrcpyn(szDescribeString, CW2CT(DBVarValue.bstrVal), sizeof(szDescribeString));
  7465. CopyMemory(ActionAck2.Ack2.Message, szDescribeString, 127 * sizeof(TCHAR));
  7466. }
  7467. //返回数据
  7468. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_UPDATE_ACK, dwContextID, &ActionAck2, sizeof(ActionAck2));
  7469. //推送给其他用户
  7470. if (DB_SUCCESS == lResultCode)
  7471. {
  7472. //输入参数
  7473. m_GameDBAide.ResetParameter();
  7474. m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction1->ClubInfo.dwClubID);
  7475. //执行存储过程
  7476. lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetAllUser"), true);
  7477. //返回数据
  7478. DBR_GR_UserData UserData;
  7479. ZeroMemory(&UserData, sizeof(UserData));
  7480. CString s = L"创建者修改了牌友圈";
  7481. CString tmp;
  7482. tmp.Format(_T("%d"),pClubAction1->ClubInfo.dwClubID);
  7483. s = s + tmp;
  7484. _tcscpy(UserData.Message, s);
  7485. int i = 0;
  7486. if (DB_SUCCESS == lResultCode)
  7487. {
  7488. while (m_GameDBModule->IsRecordsetEnd() == false)
  7489. {
  7490. if (i >= 1000){ break; }
  7491. UserData.dwUserID[i++] = m_GameDBAide.GetValue_DWORD(TEXT("UserID"));
  7492. m_GameDBModule->MoveToNext();
  7493. }
  7494. }
  7495. UserData.wUserCount = i;
  7496. UserData.newsFlag = 1;
  7497. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_NOTIFY_ACK, dwContextID, &UserData, sizeof(UserData));
  7498. }
  7499. double dRet = Start.End();
  7500. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  7501. {
  7502. CString csTest;
  7503. csTest.Format(_T("存储过程耗时 GSP_GP_Club_Update ----> %.3f "), dRet);
  7504. //提示消息
  7505. CTraceService::TraceString(csTest, TraceLevel_Normal);
  7506. }
  7507. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  7508. {
  7509. CString csTest;
  7510. csTest.Format(_T("存储过程耗时 GSP_GP_Club_Update ----> %.3f "), dRet);
  7511. //提示消息
  7512. CTraceService::TraceString(csTest, TraceLevel_Normal);
  7513. }
  7514. return true;
  7515. }
  7516. catch (IDataBaseException * pIException)
  7517. {
  7518. //输出错误
  7519. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  7520. double dRet = Start.End();
  7521. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  7522. {
  7523. CString csTest;
  7524. csTest.Format(_T("存储过程耗时 GSP_GP_Club_Update ----> %.3f "), dRet);
  7525. //提示消息
  7526. CTraceService::TraceString(csTest, TraceLevel_Normal);
  7527. }
  7528. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  7529. {
  7530. CString csTest;
  7531. csTest.Format(_T("存储过程耗时 GSP_GP_Club_Update ----> %.3f "), dRet);
  7532. //提示消息
  7533. CTraceService::TraceString(csTest, TraceLevel_Normal);
  7534. }
  7535. return true;
  7536. }
  7537. return true;
  7538. }
  7539. //俱乐部删除
  7540. bool CDataBaseEngineSink::OnRequestDeleteClub(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  7541. {
  7542. OutputDebugStringA("CDataBaseEngineSink::OnRequestDeleteClub");
  7543. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestDeleteClub"), TraceLevel_Debug);
  7544. CTimer Start;
  7545. try
  7546. {
  7547. DBR_GR_ClubAction2 *pClubAction2 = (DBR_GR_ClubAction2*)pData;
  7548. if (pClubAction2 == NULL) return false;
  7549. //构造参数
  7550. TCHAR szDescribeString[127];
  7551. ZeroMemory(szDescribeString, 127 * sizeof(TCHAR));
  7552. //输入参数
  7553. m_GameDBAide.ResetParameter();
  7554. m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction2->dwClubID);
  7555. //执行存储过程
  7556. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetAllUser"), true);
  7557. //返回数据
  7558. DBR_GR_UserData UserData;
  7559. ZeroMemory(&UserData, sizeof(UserData));
  7560. CString s = L"创建者删除了牌友圈";
  7561. CString tmp;
  7562. tmp.Format(_T("%d"), pClubAction2->dwClubID);
  7563. s = s + tmp;
  7564. _tcscpy(UserData.Message, s);
  7565. int i = 0;
  7566. if (DB_SUCCESS == lResultCode)
  7567. {
  7568. while (m_GameDBModule->IsRecordsetEnd() == false)
  7569. {
  7570. if (i >= 1000){ break; }
  7571. UserData.dwUserID[i++] = m_GameDBAide.GetValue_DWORD(TEXT("UserID"));
  7572. m_GameDBModule->MoveToNext();
  7573. }
  7574. }
  7575. UserData.wUserCount = i;
  7576. //输入数据
  7577. m_GameDBAide.ResetParameter();
  7578. m_GameDBAide.AddParameter(TEXT("UserID"), pClubAction2->dwUserID);
  7579. m_GameDBAide.AddParameter(TEXT("ClubID"), pClubAction2->dwClubID);
  7580. m_GameDBAide.AddParameterOutput(TEXT("strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  7581. //执行存储过程
  7582. lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_Delete"), true);
  7583. //返回数据
  7584. DBR_GR_Club_Action_Ack1 ActionAck1;
  7585. ZeroMemory(&ActionAck1, sizeof(ActionAck1));
  7586. if (DB_SUCCESS == lResultCode)
  7587. {
  7588. ActionAck1.dwClubID = pClubAction2->dwClubID;
  7589. ActionAck1.Result = 1;
  7590. }
  7591. else
  7592. {
  7593. //获取参数
  7594. CDBVarValue DBVarValue;
  7595. m_GameDBAide.GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  7596. ZeroMemory(szDescribeString, sizeof(szDescribeString));
  7597. lstrcpyn(szDescribeString, CW2CT(DBVarValue.bstrVal), sizeof(szDescribeString));
  7598. CopyMemory(ActionAck1.Message, szDescribeString, 127 * sizeof(TCHAR));
  7599. }
  7600. //推送给其他用户
  7601. if (DB_SUCCESS == lResultCode)
  7602. {
  7603. UserData.newsFlag = 1;
  7604. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_NOTIFY_ACK, dwContextID, &UserData, sizeof(UserData));
  7605. }
  7606. //返回数据
  7607. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_DELETE_ACK, dwContextID, &ActionAck1, sizeof(ActionAck1));
  7608. double dRet = Start.End();
  7609. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  7610. {
  7611. CString csTest;
  7612. csTest.Format(_T("存储过程耗时 GSP_GP_Club_Delete ----> %.3f "), dRet);
  7613. //提示消息
  7614. CTraceService::TraceString(csTest, TraceLevel_Normal);
  7615. }
  7616. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  7617. {
  7618. CString csTest;
  7619. csTest.Format(_T("存储过程耗时 GSP_GP_Club_Delete ----> %.3f "), dRet);
  7620. //提示消息
  7621. CTraceService::TraceString(csTest, TraceLevel_Normal);
  7622. }
  7623. return true;
  7624. }
  7625. catch (IDataBaseException * pIException)
  7626. {
  7627. //输出错误
  7628. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  7629. double dRet = Start.End();
  7630. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  7631. {
  7632. CString csTest;
  7633. csTest.Format(_T("存储过程耗时 GSP_GP_Club_Delete ----> %.3f "), dRet);
  7634. //提示消息
  7635. CTraceService::TraceString(csTest, TraceLevel_Normal);
  7636. }
  7637. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  7638. {
  7639. CString csTest;
  7640. csTest.Format(_T("存储过程耗时 GSP_GP_Club_Delete ----> %.3f "), dRet);
  7641. //提示消息
  7642. CTraceService::TraceString(csTest, TraceLevel_Normal);
  7643. }
  7644. return true;
  7645. }
  7646. return true;
  7647. }
  7648. //处理玩法配置 tagTableConfig——》CString
  7649. bool CDataBaseEngineSink::OnHandleCStringToConfig(tagTableConfig & csGameConfig, CString Config)
  7650. {
  7651. if (L"" == Config)
  7652. {
  7653. return false;
  7654. }
  7655. CList<int> list;
  7656. /*CString Config = tcconfig;*/
  7657. int pos = Config.Find(_T('#'));
  7658. while (pos != -1)
  7659. {
  7660. CString field = Config.Left(pos);
  7661. int iRet = _wtoi(Config.GetBuffer(0));
  7662. list.AddTail(iRet);
  7663. Config.ReleaseBuffer();
  7664. Config = Config.Right(Config.GetLength() - pos - 1);
  7665. pos = Config.Find(_T('#'));
  7666. }
  7667. if (Config.GetLength() > 0)
  7668. {
  7669. int iRet = _wtoi(Config.GetBuffer(0));
  7670. list.AddTail(iRet);
  7671. Config.ReleaseBuffer();
  7672. }
  7673. int i = 0;
  7674. //游戏类型
  7675. POSITION p = list.FindIndex(i++);
  7676. if (p)
  7677. csGameConfig.wSubGameID = list.GetAt(p);
  7678. //底分
  7679. p = list.FindIndex(i++);
  7680. if (p)
  7681. csGameConfig.wPlayRule = list.GetAt(p);
  7682. //房费
  7683. p = list.FindIndex(i++);
  7684. if (p)
  7685. csGameConfig.wMaxFanRule = list.GetAt(p);
  7686. //IP限制
  7687. p = list.FindIndex(i++);
  7688. if (p)
  7689. csGameConfig.wMaxScore = list.GetAt(p);
  7690. //局数
  7691. p = list.FindIndex(i++);
  7692. if (p)
  7693. csGameConfig.wPlayCountRule = list.GetAt(p);
  7694. //是否房主
  7695. p = list.FindIndex(i++);
  7696. if (p)
  7697. csGameConfig.zmExtraRule = list.GetAt(p);
  7698. //胡法
  7699. p = list.FindIndex(i++);
  7700. if (p)
  7701. csGameConfig.bDuoLai = list.GetAt(p);
  7702. //玩法
  7703. p = list.FindIndex(i++);
  7704. if (p)
  7705. csGameConfig.wFengDing = list.GetAt(p);
  7706. //备用
  7707. p = list.FindIndex(i++);
  7708. if (p)
  7709. csGameConfig.tmp1 = list.GetAt(p);
  7710. p = list.FindIndex(i++);
  7711. if (p)
  7712. csGameConfig.tmp2 = list.GetAt(p);
  7713. p = list.FindIndex(i++);
  7714. if (p)
  7715. csGameConfig.tmp3 = list.GetAt(p);
  7716. p = list.FindIndex(i++);
  7717. if (p)
  7718. csGameConfig.tmp4 = list.GetAt(p);
  7719. p = list.FindIndex(i++);
  7720. if (p)
  7721. csGameConfig.tmp5 = list.GetAt(p);
  7722. return true;
  7723. }
  7724. //俱乐部查看 额外玩法
  7725. bool CDataBaseEngineSink::OnRequestGetAddClub(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  7726. {
  7727. OutputDebugStringA("CDataBaseEngineSink::OnRequestGetClub");
  7728. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClub"), TraceLevel_Debug);
  7729. CTimer Start;
  7730. try
  7731. {
  7732. DBR_GR_ClubAddAction *pClubAction2 = (DBR_GR_ClubAddAction*)pData;
  7733. if (pClubAction2 == NULL || pClubAction2->tbAutoAddInfo.dwClubID == 0) return false;
  7734. //构造参数
  7735. TCHAR szDescribeString[127];
  7736. ZeroMemory(szDescribeString, 127 * sizeof(TCHAR));
  7737. //输入参数
  7738. m_GameDBAide.ResetParameter();
  7739. m_GameDBAide.AddParameter(TEXT("@AddID"), pClubAction2->tbAutoAddInfo.cbWanfaId);
  7740. m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction2->tbAutoAddInfo.dwClubID);
  7741. m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  7742. //执行存储过程
  7743. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetAdd"), true);
  7744. //返回数据
  7745. CMD_GR_Club_Action_Ack1Add ActionAck2;
  7746. ZeroMemory(&ActionAck2, sizeof(ActionAck2));
  7747. CopyMemory(&ActionAck2.AutoAddInfo, &pClubAction2->tbAutoAddInfo, (sizeof(CMD_S_ClubAutoAddInfo) - sizeof(tagTableConfig)));
  7748. if (DB_SUCCESS == lResultCode)
  7749. {
  7750. ActionAck2.Result = 1;
  7751. ActionAck2.AutoAddInfo.dwClubID = m_GameDBAide.GetValue_DWORD(TEXT("ClubID"));
  7752. //配置
  7753. TCHAR tcconfig[LEN_TABLE_CONFIG] = { 0 };
  7754. m_GameDBAide.GetValue_String(TEXT("ClubGameConfig"), tcconfig, LEN_TABLE_CONFIG);
  7755. OnHandleCStringToConfig(ActionAck2.AutoAddInfo.gameconfig, tcconfig);
  7756. CString csTempCFG;
  7757. csTempCFG.Format(L"%s", tcconfig);
  7758. if (L"" != csTempCFG)
  7759. {
  7760. ActionAck2.AutoAddInfo.cbStatus = 1;
  7761. //查看群主是否开启房主选项
  7762. //输入参数
  7763. m_GameDBAide.ResetParameter();
  7764. //执行存储过程
  7765. lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_PayChoice"), true);
  7766. if (DB_SUCCESS == lResultCode)
  7767. {
  7768. int PayChoice = m_GameDBAide.GetValue_DWORD(TEXT("PayChoice"));
  7769. if (PayChoice == 1 && ActionAck2.AutoAddInfo.gameconfig.wMaxFanRule >= 10)
  7770. {
  7771. ActionAck2.AutoAddInfo.gameconfig.wMaxFanRule -= 10;
  7772. }
  7773. }
  7774. }
  7775. else
  7776. {
  7777. ActionAck2.AutoAddInfo.cbStatus = 2;
  7778. }
  7779. }
  7780. else
  7781. {
  7782. //获取参数
  7783. CDBVarValue DBVarValue;
  7784. m_GameDBAide.GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  7785. ZeroMemory(szDescribeString, sizeof(szDescribeString));
  7786. lstrcpyn(szDescribeString, CW2CT(DBVarValue.bstrVal), sizeof(szDescribeString));
  7787. CopyMemory(ActionAck2.Message, szDescribeString, 127 * sizeof(TCHAR));
  7788. }
  7789. //返回数据
  7790. /*if (dwContextID == 0 && ActionAck2.ClubInfo.temp1 == 2)
  7791. {
  7792. CMD_GR_Club_Action_Ack2
  7793. CMD_GR_Club_Action_Ack2Ex2 ActionAck2Ex;
  7794. ZeroMemory(&ActionAck2Ex, sizeof(ActionAck2Ex));
  7795. ActionAck2Ex.dwUserID = pClubAction2->dwUserID;
  7796. CopyMemory(&(ActionAck2Ex.Ack2), &ActionAck2, sizeof(ActionAck2));
  7797. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_AUTOTABLE_ACK, dwContextID, &ActionAck2Ex, sizeof(ActionAck2Ex));
  7798. }
  7799. else*/
  7800. {
  7801. //获取俱乐部信息
  7802. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_GET_MORE_WANFA_ACK, dwContextID, &ActionAck2, sizeof(ActionAck2));
  7803. }
  7804. double dRet = Start.End();
  7805. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  7806. {
  7807. CString csTest;
  7808. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetAdd ----> %.3f "), dRet);
  7809. //提示消息
  7810. CTraceService::TraceString(csTest, TraceLevel_Normal);
  7811. }
  7812. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  7813. {
  7814. CString csTest;
  7815. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetAdd ----> %.3f "), dRet);
  7816. //提示消息
  7817. CTraceService::TraceString(csTest, TraceLevel_Normal);
  7818. }
  7819. return true;
  7820. }
  7821. catch (IDataBaseException * pIException)
  7822. {
  7823. //输出错误
  7824. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  7825. double dRet = Start.End();
  7826. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  7827. {
  7828. CString csTest;
  7829. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetAdd ----> %.3f "), dRet);
  7830. //提示消息
  7831. CTraceService::TraceString(csTest, TraceLevel_Normal);
  7832. }
  7833. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  7834. {
  7835. CString csTest;
  7836. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetAdd ----> %.3f "), dRet);
  7837. //提示消息
  7838. CTraceService::TraceString(csTest, TraceLevel_Normal);
  7839. }
  7840. return true;
  7841. }
  7842. return true;
  7843. }
  7844. //俱乐部查看
  7845. bool CDataBaseEngineSink::OnRequestGetClub(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  7846. {
  7847. OutputDebugStringA("CDataBaseEngineSink::OnRequestGetClub");
  7848. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClub"), TraceLevel_Debug);
  7849. CTimer Start;
  7850. try
  7851. {
  7852. DBR_GR_ClubAction2 *pClubAction2 = (DBR_GR_ClubAction2*)pData;
  7853. if (pClubAction2 == NULL) return false;
  7854. //构造参数
  7855. TCHAR szDescribeString[127];
  7856. ZeroMemory(szDescribeString, 127 * sizeof(TCHAR));
  7857. //输入参数
  7858. m_GameDBAide.ResetParameter();
  7859. m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction2->dwClubID);
  7860. m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  7861. //执行存储过程
  7862. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_Get"), true);
  7863. //返回数据
  7864. CMD_GR_Club_Action_Ack2 ActionAck2;
  7865. ZeroMemory(&ActionAck2, sizeof(ActionAck2));
  7866. if (DB_SUCCESS == lResultCode)
  7867. {
  7868. ActionAck2.Result = 1;
  7869. ActionAck2.ClubInfo.dwClubID = m_GameDBAide.GetValue_DWORD(TEXT("ClubID"));
  7870. ActionAck2.ClubInfo.dwOwnerID = m_GameDBAide.GetValue_DWORD(TEXT("HostID"));
  7871. ActionAck2.ClubInfo.wTotalNum = m_GameDBAide.GetValue_DWORD(TEXT("TotalNum"));
  7872. ActionAck2.ClubInfo.temp1 = m_GameDBAide.GetValue_DWORD(TEXT("TableChoice"));
  7873. m_GameDBAide.GetValue_String(TEXT("ClubName"), ActionAck2.ClubInfo.szClubName, LEN_CLUB_NAME);
  7874. m_GameDBAide.GetValue_String(TEXT("HostHeadUrl"), ActionAck2.ClubInfo.szHeadUrl, LEN_HEAD_URL);
  7875. TCHAR szBuffer[128] = { 0 };
  7876. ZeroMemory(szBuffer, 128 * sizeof(TCHAR));
  7877. m_GameDBAide.GetValue_String(TEXT("HostName"), szBuffer, 128);
  7878. TCHAR szOutBuffer[128] = { 0 };
  7879. ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR));
  7880. //解码
  7881. int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer);
  7882. if (iRet == -1)
  7883. {
  7884. szBuffer[32] = 0x0;
  7885. _sntprintf(ActionAck2.ClubInfo.szHostName, CountArray(ActionAck2.ClubInfo.szHostName), TEXT("%s"), szBuffer);
  7886. }
  7887. else
  7888. {
  7889. szOutBuffer[32] = 0x0;
  7890. _sntprintf(ActionAck2.ClubInfo.szHostName, CountArray(ActionAck2.ClubInfo.szHostName), TEXT("%s"), szOutBuffer);
  7891. }
  7892. //配置
  7893. TCHAR tcconfig[LEN_TABLE_CONFIG] = { 0 };
  7894. tagTableConfig csGameConfigTemp;
  7895. ZeroMemory(&csGameConfigTemp, sizeof(tagTableConfig));
  7896. m_GameDBAide.GetValue_String(TEXT("ClubGameConfig"), tcconfig, LEN_TABLE_CONFIG);
  7897. OnHandleCStringToConfig(csGameConfigTemp, tcconfig);
  7898. ActionAck2.ClubInfo.temp4 = 0;
  7899. if (dwContextID == 0)
  7900. {
  7901. if (1 == pClubAction2->wWanFa)
  7902. {
  7903. ZeroMemory(&csGameConfigTemp, sizeof(tagTableConfig));
  7904. ZeroMemory(tcconfig, sizeof(TCHAR)*LEN_TABLE_CONFIG);
  7905. m_GameDBAide.GetValue_String(TEXT("AddPlay1"), tcconfig, LEN_TABLE_CONFIG);
  7906. ActionAck2.ClubInfo.temp4 = 1;
  7907. if (!OnHandleCStringToConfig(csGameConfigTemp, tcconfig))
  7908. {
  7909. CString csTest;
  7910. csTest.Format(_T("获取玩法1失败 查询GSP_GP_Club_Get中玩法类型"), pClubAction2->wWanFa);
  7911. //提示消息
  7912. CTraceService::TraceString(csTest, TraceLevel_Warning);
  7913. return true;
  7914. }
  7915. }
  7916. else if (2 == pClubAction2->wWanFa)
  7917. {
  7918. ZeroMemory(&csGameConfigTemp, sizeof(tagTableConfig));
  7919. ZeroMemory(tcconfig, sizeof(TCHAR)*LEN_TABLE_CONFIG);
  7920. ActionAck2.ClubInfo.temp4 = 2;
  7921. m_GameDBAide.GetValue_String(TEXT("AddPlay2"), tcconfig, LEN_TABLE_CONFIG);
  7922. if (!OnHandleCStringToConfig(csGameConfigTemp, tcconfig))
  7923. {
  7924. CString csTest;
  7925. csTest.Format(_T("获取玩法2失败 查询GSP_GP_Club_Get中玩法类型"), pClubAction2->wWanFa);
  7926. //提示消息
  7927. CTraceService::TraceString(csTest, TraceLevel_Warning);
  7928. return true;
  7929. }
  7930. }
  7931. else
  7932. {
  7933. ZeroMemory(&csGameConfigTemp, sizeof(tagTableConfig));
  7934. ZeroMemory(tcconfig, sizeof(TCHAR)*LEN_TABLE_CONFIG);
  7935. m_GameDBAide.GetValue_String(TEXT("ClubGameConfig"), tcconfig, LEN_TABLE_CONFIG);
  7936. if (!OnHandleCStringToConfig(csGameConfigTemp, tcconfig))
  7937. {
  7938. CString csTest;
  7939. csTest.Format(_T("获取默认玩法失败 查询GSP_GP_Club_Get中玩法类型"), pClubAction2->wWanFa);
  7940. //提示消息
  7941. CTraceService::TraceString(csTest, TraceLevel_Warning);
  7942. return true;
  7943. }
  7944. }
  7945. if (pClubAction2->wWanFa > 3)
  7946. {
  7947. ZeroMemory(&csGameConfigTemp, sizeof(tagTableConfig));
  7948. ZeroMemory(tcconfig, sizeof(TCHAR)*LEN_TABLE_CONFIG);
  7949. CString csTest;
  7950. csTest.Format(_T("异常传玩法 %d"), pClubAction2->wWanFa);
  7951. //提示消息
  7952. CTraceService::TraceString(csTest, TraceLevel_Warning);
  7953. }
  7954. }
  7955. CopyMemory(&ActionAck2.ClubInfo.csGameConfig,&csGameConfigTemp, sizeof(tagTableConfig));
  7956. //CList<int> list;
  7957. //CString Config = tcconfig[0];
  7958. //int pos = Config.Find(_T('#'));
  7959. //while (pos != -1)
  7960. //{
  7961. // CString field = Config.Left(pos);
  7962. // int iRet = _wtoi(Config.GetBuffer(0));
  7963. // list.AddTail(iRet);
  7964. // Config.ReleaseBuffer();
  7965. // Config = Config.Right(Config.GetLength() - pos - 1);
  7966. // pos = Config.Find(_T('#'));
  7967. //}
  7968. //if (Config.GetLength() > 0)
  7969. //{
  7970. // int iRet = _wtoi(Config.GetBuffer(0));
  7971. // list.AddTail(iRet);
  7972. // Config.ReleaseBuffer();
  7973. //}
  7974. //
  7975. //int i = 0;
  7976. ////游戏类型
  7977. //POSITION p = list.FindIndex(i++);
  7978. //if (p)
  7979. // ActionAck2.ClubInfo.csGameConfig.wSubGameID = list.GetAt(p);
  7980. ////底分
  7981. //p = list.FindIndex(i++);
  7982. //if (p)
  7983. // ActionAck2.ClubInfo.csGameConfig.wPlayRule = list.GetAt(p);
  7984. ////房费
  7985. //p = list.FindIndex(i++);
  7986. //if (p)
  7987. // ActionAck2.ClubInfo.csGameConfig.wMaxFanRule = list.GetAt(p);
  7988. ////IP限制
  7989. //p = list.FindIndex(i++);
  7990. //if (p)
  7991. // ActionAck2.ClubInfo.csGameConfig.wMaxScore = list.GetAt(p);
  7992. ////局数
  7993. //p = list.FindIndex(i++);
  7994. //if (p)
  7995. // ActionAck2.ClubInfo.csGameConfig.wPlayCountRule = list.GetAt(p);
  7996. ////是否房主
  7997. //p = list.FindIndex(i++);
  7998. //if (p)
  7999. // ActionAck2.ClubInfo.csGameConfig.zmExtraRule = list.GetAt(p);
  8000. ////胡法
  8001. //p = list.FindIndex(i++);
  8002. //if (p)
  8003. // ActionAck2.ClubInfo.csGameConfig.bDuoLai = list.GetAt(p);
  8004. ////玩法
  8005. //p = list.FindIndex(i++);
  8006. //if (p)
  8007. // ActionAck2.ClubInfo.csGameConfig.wFengDing = list.GetAt(p);
  8008. ////备用
  8009. //p = list.FindIndex(i++);
  8010. //if (p)
  8011. // ActionAck2.ClubInfo.csGameConfig.tmp1 = list.GetAt(p);
  8012. //p = list.FindIndex(i++);
  8013. //if (p)
  8014. // ActionAck2.ClubInfo.csGameConfig.tmp2 = list.GetAt(p);
  8015. //p = list.FindIndex(i++);
  8016. //if (p)
  8017. // ActionAck2.ClubInfo.csGameConfig.tmp3 = list.GetAt(p);
  8018. //p = list.FindIndex(i++);
  8019. //if (p)
  8020. // ActionAck2.ClubInfo.csGameConfig.tmp4 = list.GetAt(p);
  8021. //p = list.FindIndex(i++);
  8022. //if (p)
  8023. // ActionAck2.ClubInfo.csGameConfig.tmp5 = list.GetAt(p);
  8024. //查看群主是否开启房主选项
  8025. //输入参数
  8026. m_GameDBAide.ResetParameter();
  8027. //执行存储过程
  8028. lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_PayChoice"), true);
  8029. if (DB_SUCCESS == lResultCode)
  8030. {
  8031. int PayChoice = m_GameDBAide.GetValue_DWORD(TEXT("PayChoice"));
  8032. if (PayChoice == 1 && ActionAck2.ClubInfo.csGameConfig.wMaxFanRule >= 10)
  8033. {
  8034. ActionAck2.ClubInfo.csGameConfig.wMaxFanRule -= 10;
  8035. }
  8036. }
  8037. }
  8038. else
  8039. {
  8040. //获取参数
  8041. CDBVarValue DBVarValue;
  8042. m_GameDBAide.GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  8043. ZeroMemory(szDescribeString, sizeof(szDescribeString));
  8044. lstrcpyn(szDescribeString, CW2CT(DBVarValue.bstrVal), sizeof(szDescribeString));
  8045. CopyMemory(ActionAck2.Message, szDescribeString, 127 * sizeof(TCHAR));
  8046. }
  8047. //返回数据
  8048. if (dwContextID == 0 && ActionAck2.ClubInfo.temp1 == 2)
  8049. {
  8050. CMD_GR_Club_Action_Ack2Ex2 ActionAck2Ex;
  8051. ZeroMemory(&ActionAck2Ex, sizeof(ActionAck2Ex));
  8052. ActionAck2Ex.dwUserID = pClubAction2->dwUserID;
  8053. CopyMemory(&(ActionAck2Ex.Ack2), &ActionAck2, sizeof(ActionAck2));
  8054. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_AUTOTABLE_ACK, dwContextID, &ActionAck2Ex, sizeof(ActionAck2Ex));
  8055. }
  8056. else
  8057. {
  8058. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_GET_ACK, dwContextID, &ActionAck2, sizeof(ActionAck2));
  8059. }
  8060. double dRet = Start.End();
  8061. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  8062. {
  8063. CString csTest;
  8064. csTest.Format(_T("存储过程耗时 GSP_GP_Club_Get ----> %.3f "), dRet);
  8065. //提示消息
  8066. CTraceService::TraceString(csTest, TraceLevel_Normal);
  8067. }
  8068. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  8069. {
  8070. CString csTest;
  8071. csTest.Format(_T("存储过程耗时 GSP_GP_Club_Get ----> %.3f "), dRet);
  8072. //提示消息
  8073. CTraceService::TraceString(csTest, TraceLevel_Normal);
  8074. }
  8075. return true;
  8076. }
  8077. catch (IDataBaseException * pIException)
  8078. {
  8079. //输出错误
  8080. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  8081. double dRet = Start.End();
  8082. CString csTest;
  8083. csTest.Format(_T("异常存储过程耗时 GSP_GP_Club_Get ----> %.3f "), dRet);
  8084. //提示消息
  8085. CTraceService::TraceString(csTest, TraceLevel_Warning);
  8086. return true;
  8087. }
  8088. return true;
  8089. }
  8090. //俱乐部加入
  8091. bool CDataBaseEngineSink::OnRequestJoinClub(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  8092. {
  8093. OutputDebugStringA("CDataBaseEngineSink::OnRequestJoinClub");
  8094. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestJoinClub"), TraceLevel_Debug);
  8095. CTimer Start;
  8096. try
  8097. {
  8098. DBR_GR_ClubAction2 *pClubAction2 = (DBR_GR_ClubAction2*)pData;
  8099. if (pClubAction2 == NULL) return false;
  8100. TCHAR szDescribeString[127];
  8101. ZeroMemory(szDescribeString, 127 * sizeof(TCHAR));
  8102. //构造参数
  8103. m_GameDBAide.ResetParameter();
  8104. m_GameDBAide.AddParameter(TEXT("@UserID"), pClubAction2->dwUserID);
  8105. m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction2->dwClubID);
  8106. m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  8107. //执行存储过程
  8108. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_Join"), true);
  8109. //返回数据
  8110. CMD_GR_Club_Action_Ack1 ActionAck1;
  8111. ZeroMemory(&ActionAck1, sizeof(ActionAck1));
  8112. if (DB_SUCCESS == lResultCode)
  8113. {
  8114. ActionAck1.Result = 1;
  8115. //传递参数
  8116. DBR_GR_UserData UserData;
  8117. ZeroMemory(&UserData, sizeof(UserData));
  8118. //构造参数
  8119. m_GameDBAide.ResetParameter();
  8120. m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction2->dwClubID);
  8121. //执行存储过程
  8122. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetAdmInfo"), true);
  8123. if (DB_SUCCESS == lResultCode)
  8124. {
  8125. int i = 0;
  8126. while (m_GameDBModule->IsRecordsetEnd() == false)
  8127. {
  8128. if (i >= 5){ break; }
  8129. UserData.dwUserID[i++] = m_GameDBAide.GetValue_DWORD(TEXT("UserID"));
  8130. m_GameDBModule->MoveToNext();
  8131. }
  8132. //存储过程
  8133. m_GameDBAide.ResetParameter();
  8134. m_GameDBAide.AddParameter(TEXT("@UserID"), UserData.dwUserID[0]);
  8135. m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction2->dwClubID);
  8136. //执行存储过程
  8137. lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetNewUser"), true);
  8138. if (DB_SUCCESS == lResultCode)
  8139. {
  8140. UserData.newUserCount = m_GameDBAide.GetValue_DWORD(TEXT("UserCount"));
  8141. }
  8142. UserData.wUserCount = i + 1;
  8143. UserData.newsFlag = 3;
  8144. UserData.dwClubID = pClubAction2->dwClubID;
  8145. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_NOTIFY_ACK, dwContextID, &UserData, sizeof(UserData));
  8146. }
  8147. }
  8148. else
  8149. {
  8150. //获取参数
  8151. CDBVarValue DBVarValue;
  8152. m_GameDBAide.GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  8153. ZeroMemory(szDescribeString, sizeof(szDescribeString));
  8154. lstrcpyn(szDescribeString, CW2CT(DBVarValue.bstrVal), sizeof(szDescribeString));
  8155. CopyMemory(ActionAck1.Message, szDescribeString, 127 * sizeof(TCHAR));
  8156. }
  8157. //返回数据
  8158. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_JOIN_ACK, dwContextID, &ActionAck1, sizeof(ActionAck1));
  8159. double dRet = Start.End();
  8160. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  8161. {
  8162. CString csTest;
  8163. csTest.Format(_T("存储过程耗时 GSP_GP_Club_Join ----> %.3f "), dRet);
  8164. //提示消息
  8165. CTraceService::TraceString(csTest, TraceLevel_Normal);
  8166. }
  8167. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  8168. {
  8169. CString csTest;
  8170. csTest.Format(_T("存储过程耗时 GSP_GP_Club_Join ----> %.3f "), dRet);
  8171. //提示消息
  8172. CTraceService::TraceString(csTest, TraceLevel_Normal);
  8173. }
  8174. return true;
  8175. }
  8176. catch (IDataBaseException * pIException)
  8177. {
  8178. //输出错误
  8179. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  8180. double dRet = Start.End();
  8181. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  8182. {
  8183. CString csTest;
  8184. csTest.Format(_T("存储过程耗时 GSP_GP_Club_Join ----> %.3f "), dRet);
  8185. //提示消息
  8186. CTraceService::TraceString(csTest, TraceLevel_Normal);
  8187. }
  8188. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  8189. {
  8190. CString csTest;
  8191. csTest.Format(_T("存储过程耗时 GSP_GP_Club_Join ----> %.3f "), dRet);
  8192. //提示消息
  8193. CTraceService::TraceString(csTest, TraceLevel_Normal);
  8194. }
  8195. return true;
  8196. }
  8197. return true;
  8198. }
  8199. //俱乐部退出
  8200. bool CDataBaseEngineSink::OnRequestQuitClub(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  8201. {
  8202. OutputDebugStringA("CDataBaseEngineSink::OnRequestQuitClub");
  8203. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestQuitClub"), TraceLevel_Debug);
  8204. CTimer Start;
  8205. try
  8206. {
  8207. DBR_GR_ClubAction2 *pClubAction2 = (DBR_GR_ClubAction2*)pData;
  8208. if (pClubAction2 == NULL) return false;
  8209. TCHAR szDescribeString[127];
  8210. ZeroMemory(szDescribeString, 127 * sizeof(TCHAR));
  8211. //构造参数
  8212. m_GameDBAide.ResetParameter();
  8213. m_GameDBAide.AddParameter(TEXT("@UserID"), pClubAction2->dwUserID);
  8214. m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction2->dwClubID);
  8215. m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  8216. //执行存储过程
  8217. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_Quit"), true);
  8218. //返回数据
  8219. DBR_GR_Club_Action_Ack1 ActionAck1;
  8220. ZeroMemory(&ActionAck1, sizeof(ActionAck1));
  8221. if (DB_SUCCESS == lResultCode)
  8222. {
  8223. ActionAck1.dwClubID = pClubAction2->dwClubID;
  8224. ActionAck1.Result = 1;
  8225. }
  8226. else
  8227. {
  8228. //获取参数
  8229. CDBVarValue DBVarValue;
  8230. m_GameDBAide.GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  8231. ZeroMemory(szDescribeString, sizeof(szDescribeString));
  8232. lstrcpyn(szDescribeString, CW2CT(DBVarValue.bstrVal), sizeof(szDescribeString));
  8233. CopyMemory(ActionAck1.Message, szDescribeString, 127 * sizeof(TCHAR));
  8234. }
  8235. //返回数据
  8236. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_QUIT_ACK, dwContextID, &ActionAck1, sizeof(ActionAck1));
  8237. double dRet = Start.End();
  8238. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  8239. {
  8240. CString csTest;
  8241. csTest.Format(_T("存储过程耗时 GSP_GP_Club_Quit ----> %.3f "), dRet);
  8242. //提示消息
  8243. CTraceService::TraceString(csTest, TraceLevel_Normal);
  8244. }
  8245. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  8246. {
  8247. CString csTest;
  8248. csTest.Format(_T("存储过程耗时 GSP_GP_Club_Quit ----> %.3f "), dRet);
  8249. //提示消息
  8250. CTraceService::TraceString(csTest, TraceLevel_Normal);
  8251. }
  8252. return true;
  8253. }
  8254. catch (IDataBaseException * pIException)
  8255. {
  8256. //输出错误
  8257. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  8258. double dRet = Start.End();
  8259. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  8260. {
  8261. CString csTest;
  8262. csTest.Format(_T("存储过程耗时 GSP_GP_Club_Quit ----> %.3f "), dRet);
  8263. //提示消息
  8264. CTraceService::TraceString(csTest, TraceLevel_Normal);
  8265. }
  8266. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  8267. {
  8268. CString csTest;
  8269. csTest.Format(_T("存储过程耗时 GSP_GP_Club_Quit ----> %.3f "), dRet);
  8270. //提示消息
  8271. CTraceService::TraceString(csTest, TraceLevel_Normal);
  8272. }
  8273. return true;
  8274. }
  8275. return true;
  8276. }
  8277. //俱乐部同意加入
  8278. bool CDataBaseEngineSink::OnRequestAgreeClub(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  8279. {
  8280. OutputDebugStringA("CDataBaseEngineSink::OnRequestAgreeClub");
  8281. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestAgreeClub"), TraceLevel_Debug);
  8282. CTimer Start;
  8283. try
  8284. {
  8285. DBR_GR_ClubAction3 *pClubAction3 = (DBR_GR_ClubAction3*)pData;
  8286. if (pClubAction3 == NULL)return false;
  8287. //构造参数
  8288. TCHAR szDescribeString[127];
  8289. ZeroMemory(szDescribeString, 127 * sizeof(TCHAR));
  8290. //输入参数
  8291. m_GameDBAide.ResetParameter();
  8292. m_GameDBAide.AddParameter(TEXT("@UserID"), pClubAction3->dwUserID);
  8293. m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction3->dwClubID);
  8294. m_GameDBAide.AddParameter(TEXT("@CurrentID"), pClubAction3->dwCurrentID);
  8295. m_GameDBAide.AddParameter(TEXT("@Agree"), pClubAction3->Agree);
  8296. m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  8297. //执行存储过程
  8298. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_Agree"), true);
  8299. //返回数据
  8300. DBR_GR_Club_Action_Ack3 ActionAck3;
  8301. ZeroMemory(&ActionAck3, sizeof(ActionAck3));
  8302. if (DB_SUCCESS == lResultCode)
  8303. {
  8304. ActionAck3.dwUserID = pClubAction3->dwUserID;
  8305. ActionAck3.dwClubID = pClubAction3->dwClubID;
  8306. ActionAck3.Agree = pClubAction3->Agree;
  8307. ActionAck3.Result = 1;
  8308. }
  8309. else
  8310. {
  8311. //获取参数
  8312. CDBVarValue DBVarValue;
  8313. m_GameDBAide.GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  8314. ZeroMemory(szDescribeString, sizeof(szDescribeString));
  8315. lstrcpyn(szDescribeString, CW2CT(DBVarValue.bstrVal), sizeof(szDescribeString));
  8316. CopyMemory(ActionAck3.Message, szDescribeString, 127 * sizeof(TCHAR));
  8317. }
  8318. //返回数据
  8319. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_ISAGREE_ACK, dwContextID, &ActionAck3, sizeof(ActionAck3));
  8320. //推送给其他用户
  8321. if (DB_SUCCESS == lResultCode)
  8322. {
  8323. //返回数据
  8324. DBR_GR_UserData UserData;
  8325. ZeroMemory(&UserData, sizeof(UserData));
  8326. if (pClubAction3->Agree == 1)
  8327. {
  8328. CString s = L"创建者同意您加入牌友圈";
  8329. CString tmp;
  8330. tmp.Format(_T("%d"), pClubAction3->dwClubID);
  8331. s = s + tmp;
  8332. _tcscpy(UserData.Message, s);
  8333. UserData.dwUserID[0] = pClubAction3->dwUserID;
  8334. UserData.wUserCount = 1;
  8335. UserData.newsFlag = 1;
  8336. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_NOTIFY_ACK, dwContextID, &UserData, sizeof(UserData));
  8337. }
  8338. if (pClubAction3->Agree == 2)
  8339. {
  8340. CString s = L"创建者强制您退出牌友圈";
  8341. CString tmp;
  8342. tmp.Format(_T("%d"), pClubAction3->dwClubID);
  8343. s = s + tmp;
  8344. _tcscpy(UserData.Message, s);
  8345. UserData.dwUserID[0] = pClubAction3->dwUserID;
  8346. UserData.wUserCount = 1;
  8347. UserData.newsFlag = 1;
  8348. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_NOTIFY_ACK, dwContextID, &UserData, sizeof(UserData));
  8349. }
  8350. if (pClubAction3->Agree == 13)
  8351. {
  8352. CString s = L"同意成为了群主牌友圈";
  8353. CString tmp1;
  8354. tmp1.Format(_T("%d"), pClubAction3->dwClubID);
  8355. CString tmp2;
  8356. tmp2.Format(_T("%d"), pClubAction3->dwCurrentID);
  8357. s = tmp2 + s + tmp1;
  8358. _tcscpy(UserData.Message, s);
  8359. if (pClubAction3->dwUserID != 0)
  8360. {
  8361. UserData.dwUserID[0] = pClubAction3->dwUserID;
  8362. UserData.wUserCount = 1;
  8363. UserData.newsFlag = 1;
  8364. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_NOTIFY_ACK, dwContextID, &UserData, sizeof(UserData));
  8365. }
  8366. }
  8367. //黑名单和管理员
  8368. if (pClubAction3->Agree >=4 && pClubAction3->Agree <= 7 )
  8369. {
  8370. UserData.dwUserID[0] = pClubAction3->dwUserID;
  8371. UserData.wUserCount = 1;
  8372. UserData.newsFlag = 1;
  8373. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_NOTIFY_ACK, dwContextID, &UserData, sizeof(UserData));
  8374. }
  8375. }
  8376. double dRet = Start.End();
  8377. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  8378. {
  8379. CString csTest;
  8380. csTest.Format(_T("存储过程耗时 GSP_GP_Club_Agree ----> %.3f "), dRet);
  8381. //提示消息
  8382. CTraceService::TraceString(csTest, TraceLevel_Normal);
  8383. }
  8384. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  8385. {
  8386. CString csTest;
  8387. csTest.Format(_T("存储过程耗时 GSP_GP_Club_Agree ----> %.3f "), dRet);
  8388. //提示消息
  8389. CTraceService::TraceString(csTest, TraceLevel_Normal);
  8390. }
  8391. return true;
  8392. }
  8393. catch (IDataBaseException * pIException)
  8394. {
  8395. //输出错误
  8396. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  8397. double dRet = Start.End();
  8398. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  8399. {
  8400. CString csTest;
  8401. csTest.Format(_T("存储过程耗时 GSP_GP_Club_Agree ----> %.3f "), dRet);
  8402. //提示消息
  8403. CTraceService::TraceString(csTest, TraceLevel_Normal);
  8404. }
  8405. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  8406. {
  8407. CString csTest;
  8408. csTest.Format(_T("存储过程耗时 GSP_GP_Club_Agree ----> %.3f "), dRet);
  8409. //提示消息
  8410. CTraceService::TraceString(csTest, TraceLevel_Normal);
  8411. }
  8412. return true;
  8413. }
  8414. return true;
  8415. }
  8416. //俱乐部在线信息
  8417. //bool CDataBaseEngineSink::OnRequestGetClubOnLine(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  8418. //{
  8419. // OutputDebugStringA("CDataBaseEngineSink::OnRequestGetClubOnLine");
  8420. // CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClubOnLine"), TraceLevel_Debug);
  8421. // CTimer Start;
  8422. // try
  8423. // {
  8424. // DBR_GR_ClubOnLineRq *pClubAction2 = (DBR_GR_ClubOnLineRq*)pData;
  8425. // if (pClubAction2 == NULL) return false;
  8426. //
  8427. // TCHAR szDescribeString[127];
  8428. // ZeroMemory(szDescribeString, 127 * sizeof(TCHAR));
  8429. //
  8430. //
  8431. // //构造参数
  8432. // m_GameDBAide.ResetParameter();
  8433. // m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction2->dwClubID);
  8434. //
  8435. //
  8436. // //执行存储过程
  8437. // LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetAllUser"), true);
  8438. //
  8439. // //返回数据
  8440. // DBR_GR_ClubOnLine ClubOnLine;
  8441. // ZeroMemory(&ClubOnLine, sizeof(ClubOnLine));
  8442. //
  8443. // ClubOnLine.dwClubID = pClubAction2->dwClubID;
  8444. // ClubOnLine.wStartIndex = pClubAction2->wStartIndex;
  8445. // ClubOnLine.wCount = pClubAction2->wCount;
  8446. //
  8447. // int i = 0;
  8448. // if (DB_SUCCESS == lResultCode)
  8449. // {
  8450. // while (m_GameDBModule->IsRecordsetEnd() == false)
  8451. // {
  8452. // if (i >= 1000){ break; }
  8453. // ClubOnLine.dwUserID[i++] = m_GameDBAide.GetValue_DWORD(TEXT("UserID"));
  8454. // m_GameDBModule->MoveToNext();
  8455. // }
  8456. // }
  8457. // ClubOnLine.wUserCount = i;
  8458. //
  8459. // //存储过程2
  8460. // m_GameDBAide.ResetParameter();
  8461. // m_GameDBAide.AddParameter(TEXT("@UserID"), pClubAction2->dwUserID);
  8462. // //执行存储过程
  8463. // lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetMessgeCount"), true);
  8464. //
  8465. // if (DB_SUCCESS == lResultCode)
  8466. // {
  8467. // ClubOnLine.wMessageCount = m_GameDBAide.GetValue_DWORD(TEXT("MessageCount"));
  8468. // }
  8469. //
  8470. // //存储过程3
  8471. // m_GameDBAide.ResetParameter();
  8472. // m_GameDBAide.AddParameter(TEXT("@UserID"), pClubAction2->dwUserID);
  8473. // m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction2->dwClubID);
  8474. // //执行存储过程
  8475. // lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetNewUser"), true);
  8476. //
  8477. // if (DB_SUCCESS == lResultCode)
  8478. // {
  8479. // ClubOnLine.wNewUserCount = m_GameDBAide.GetValue_DWORD(TEXT("UserCount"));
  8480. // ClubOnLine.TableChoice = m_GameDBAide.GetValue_DWORD(TEXT("TableChoice"));
  8481. //
  8482. // //添加hostID用于群主刷新创建房间
  8483. // int hostId = m_GameDBAide.GetValue_DWORD(TEXT("HostID"));
  8484. // if (hostId == pClubAction2->dwUserID) ClubOnLine.isHost = 1;
  8485. // }
  8486. //
  8487. //
  8488. // //LYH 2018-11-2,初始化获取俱乐部玩法是否存在,0表示不开启,否者就存在
  8489. // ClubOnLine.IsWanFa[0] = 1;
  8490. // ClubOnLine.IsWanFa[1] = 0;
  8491. // ClubOnLine.IsWanFa[2] = 0;
  8492. //
  8493. // //存储过程4
  8494. // m_GameDBAide.ResetParameter();
  8495. // m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction2->dwClubID);
  8496. // //执行存储过程
  8497. // lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetPlayConfig"), true);
  8498. //
  8499. // if (DB_SUCCESS == lResultCode)
  8500. // {
  8501. // //获取玩法配置 大玩法类型值
  8502. // tagTableConfig tTableConfig;
  8503. // ZeroMemory(&tTableConfig, sizeof(tagTableConfig));
  8504. // TCHAR tcClubGameConfig[3][LEN_TABLE_CONFIG] = { 0 };
  8505. // m_GameDBAide.GetValue_String(TEXT("ClubGameConfig"), tcClubGameConfig[0], LEN_TABLE_CONFIG);
  8506. // m_GameDBAide.GetValue_String(TEXT("AddPlay1"), tcClubGameConfig[1], LEN_TABLE_CONFIG);
  8507. // m_GameDBAide.GetValue_String(TEXT("AddPlay2"), tcClubGameConfig[2], LEN_TABLE_CONFIG);
  8508. // for (int nIndex=0; nIndex < 3; nIndex++)
  8509. // {
  8510. // ZeroMemory(&tTableConfig, sizeof(tagTableConfig));
  8511. // if (OnHandleCStringToConfig(tTableConfig, tcClubGameConfig[nIndex]))
  8512. // {
  8513. // ClubOnLine.IsWanFa[nIndex] = 1;
  8514. // }
  8515. // else
  8516. // {
  8517. // ClubOnLine.IsWanFa[nIndex] = 0;
  8518. // }
  8519. // }
  8520. // }
  8521. //
  8522. //
  8523. // int nSize = (ClubOnLine.wUserCount*sizeof(DWORD)) + (7 * sizeof(WORD)) + sizeof(DWORD) + (sizeof(BYTE)*CountArray(ClubOnLine.IsWanFa));
  8524. // //返回数据
  8525. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_GET_ONLINE_ACK, dwContextID, &ClubOnLine, nSize);
  8526. // double dRet = Start.End();
  8527. //
  8528. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  8529. // {
  8530. // CString csTest;
  8531. //
  8532. // csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetNewUser ----> %.3f "), dRet);
  8533. //
  8534. // //提示消息
  8535. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  8536. // }
  8537. //
  8538. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  8539. // {
  8540. // CString csTest;
  8541. //
  8542. // csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetNewUser ----> %.3f "), dRet);
  8543. //
  8544. // //提示消息
  8545. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  8546. // }
  8547. // return true;
  8548. // }
  8549. // catch (IDataBaseException * pIException)
  8550. // {
  8551. // //输出错误
  8552. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  8553. //
  8554. // double dRet = Start.End();
  8555. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  8556. // {
  8557. // CString csTest;
  8558. //
  8559. // csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetNewUser ----> %.3f "), dRet);
  8560. //
  8561. // //提示消息
  8562. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  8563. // }
  8564. //
  8565. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  8566. // {
  8567. // CString csTest;
  8568. //
  8569. // csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetNewUser ----> %.3f "), dRet);
  8570. //
  8571. // //提示消息
  8572. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  8573. // }
  8574. //
  8575. // return true;
  8576. // }
  8577. //
  8578. // return true;
  8579. //
  8580. //
  8581. //}
  8582. bool CDataBaseEngineSink::OnRequestGetClubOnLineEx(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  8583. {
  8584. OutputDebugStringA("CDataBaseEngineSink::OnRequestGetClubOnLineEx");
  8585. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClubOnLineEx"), TraceLevel_Debug);
  8586. CTimer Start;
  8587. try
  8588. {
  8589. DBR_GR_ClubAction2 *pClubAction2 = (DBR_GR_ClubAction2*)pData;
  8590. if (pClubAction2 == NULL || pClubAction2->dwClubID == 0)
  8591. {
  8592. CString csTest;
  8593. csTest.Format(_T("俱乐部id不能为0,"));
  8594. //提示消息
  8595. CTraceService::TraceString(csTest, TraceLevel_Warning);
  8596. return false;
  8597. }
  8598. TCHAR szDescribeString[127];
  8599. ZeroMemory(szDescribeString, 127 * sizeof(TCHAR));
  8600. //构造参数
  8601. m_GameDBAide.ResetParameter();
  8602. m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction2->dwClubID);
  8603. //执行存储过程
  8604. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetAllUser"), true);
  8605. //返回数据
  8606. DBR_GR_ClubOnLine ClubOnLine;
  8607. ZeroMemory(&ClubOnLine, sizeof(ClubOnLine));
  8608. ClubOnLine.dwClubID = pClubAction2->dwClubID;
  8609. int i = 0;
  8610. if (DB_SUCCESS == lResultCode)
  8611. {
  8612. while (m_GameDBModule->IsRecordsetEnd() == false)
  8613. {
  8614. if (i >= 1000){ break; }
  8615. ClubOnLine.dwUserID[i++] = m_GameDBAide.GetValue_DWORD(TEXT("UserID"));
  8616. m_GameDBModule->MoveToNext();
  8617. }
  8618. }
  8619. ClubOnLine.wUserCount = i;
  8620. //存储过程2
  8621. m_GameDBAide.ResetParameter();
  8622. m_GameDBAide.AddParameter(TEXT("@UserID"), pClubAction2->dwUserID);
  8623. //执行存储过程
  8624. lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetMessgeCount"), true);
  8625. if (DB_SUCCESS == lResultCode)
  8626. {
  8627. ClubOnLine.wMessageCount = m_GameDBAide.GetValue_DWORD(TEXT("MessageCount"));
  8628. }
  8629. //存储过程3
  8630. m_GameDBAide.ResetParameter();
  8631. m_GameDBAide.AddParameter(TEXT("@UserID"), pClubAction2->dwUserID);
  8632. m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction2->dwClubID);
  8633. //执行存储过程
  8634. lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetNewUser"), true);
  8635. if (DB_SUCCESS == lResultCode)
  8636. {
  8637. ClubOnLine.wNewUserCount = m_GameDBAide.GetValue_DWORD(TEXT("UserCount"));
  8638. ClubOnLine.TableChoice = m_GameDBAide.GetValue_DWORD(TEXT("TableChoice"));
  8639. DWORD TempUserID = m_GameDBAide.GetValue_DWORD(TEXT("HostID"));
  8640. if (TempUserID == pClubAction2->dwUserID)
  8641. {
  8642. ClubOnLine.isHost = 1;
  8643. }
  8644. }
  8645. //LYH 2018-11-2
  8646. ClubOnLine.IsWanFa[0] = 1;
  8647. ClubOnLine.IsWanFa[1] = 0;
  8648. ClubOnLine.IsWanFa[2] = 0;
  8649. //存储过程4
  8650. m_GameDBAide.ResetParameter();
  8651. m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction2->dwClubID);
  8652. //执行存储过程
  8653. lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetPlayConfig"), true);
  8654. if (DB_SUCCESS == lResultCode)
  8655. {
  8656. //获取玩法配置 大玩法类型值
  8657. tagTableConfig tTableConfig;
  8658. ZeroMemory(&tTableConfig, sizeof(tagTableConfig));
  8659. TCHAR tcClubGameConfig[3][LEN_TABLE_CONFIG] = { 0 };
  8660. m_GameDBAide.GetValue_String(TEXT("ClubGameConfig"), tcClubGameConfig[0], LEN_TABLE_CONFIG);
  8661. m_GameDBAide.GetValue_String(TEXT("AddPlay1"), tcClubGameConfig[1], LEN_TABLE_CONFIG);
  8662. m_GameDBAide.GetValue_String(TEXT("AddPlay2"), tcClubGameConfig[2], LEN_TABLE_CONFIG);
  8663. for (int nIndex = 0; nIndex < 3; nIndex++)
  8664. {
  8665. ZeroMemory(&tTableConfig, sizeof(tagTableConfig));
  8666. if (OnHandleCStringToConfig(tTableConfig, tcClubGameConfig[nIndex]))
  8667. {
  8668. ClubOnLine.IsWanFa[nIndex] = 1;
  8669. }
  8670. else
  8671. {
  8672. ClubOnLine.IsWanFa[nIndex] = 0;
  8673. }
  8674. }
  8675. }
  8676. //返回数据
  8677. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_GET_ONLINE_ACKEX, dwContextID, &ClubOnLine, sizeof(ClubOnLine));
  8678. double dRet = Start.End();
  8679. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  8680. {
  8681. CString csTest;
  8682. csTest.Format(_T("存储过程耗时GSP_GP_Club_GetMessgeCount----> %.3f "), dRet);
  8683. //提示消息
  8684. CTraceService::TraceString(csTest, TraceLevel_Normal);
  8685. }
  8686. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  8687. {
  8688. CString csTest;
  8689. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetMessgeCount ----> %.3f "), dRet);
  8690. //提示消息
  8691. CTraceService::TraceString(csTest, TraceLevel_Normal);
  8692. }
  8693. return true;
  8694. }
  8695. catch (IDataBaseException * pIException)
  8696. {
  8697. //输出错误
  8698. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  8699. double dRet = Start.End();
  8700. CString csTest;
  8701. csTest.Format(_T("异常存储过程耗时 GSP_GP_Club_GetAllUser GSP_GP_Club_GetMessgeCount GSP_GP_Club_GetPlayConfig GSP_GP_Club_GetNewUser ----> %.3f "), dRet);
  8702. //提示消息
  8703. CTraceService::TraceString(csTest, TraceLevel_Warning);
  8704. return true;
  8705. }
  8706. return true;
  8707. }
  8708. //俱乐部会员黑名单
  8709. bool CDataBaseEngineSink::OnRequestGetClubBlackUser(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  8710. {
  8711. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClubBlackUser"), TraceLevel_Debug);
  8712. CTimer Start;
  8713. try
  8714. {
  8715. DBR_GR_ClubUser2* pClubUser = (DBR_GR_ClubUser2*)pData;
  8716. if (pClubUser == NULL) return false;
  8717. //返回数据
  8718. CMD_GR_ClubUser2_Ack ClubUserAck;
  8719. ZeroMemory(&ClubUserAck, sizeof(ClubUserAck));
  8720. //构造参数
  8721. m_GameDBAide.ResetParameter();
  8722. m_GameDBAide.AddParameter(TEXT("UserID"), pClubUser->dwUserID);
  8723. m_GameDBAide.AddParameter(TEXT("ClubID"), pClubUser->dwClubID);
  8724. DWORD Role = 0;
  8725. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetRole"), true);
  8726. if (DB_SUCCESS == lResultCode)
  8727. {
  8728. if (m_GameDBModule->GetRecordCount() == 1)
  8729. {
  8730. Role = m_GameDBAide.GetValue_DWORD(TEXT("ClubRole"));
  8731. if (Role == 10)
  8732. {
  8733. ClubUserAck.cbHost = 1;
  8734. }
  8735. else if (Role == 3)
  8736. {
  8737. ClubUserAck.cbHost = 2;
  8738. }
  8739. }
  8740. }
  8741. ClubUserAck.dwClubID = pClubUser->dwClubID;
  8742. ClubUserAck.cbKind = pClubUser->cbKind;
  8743. //构造参数
  8744. m_GameDBAide.ResetParameter();
  8745. m_GameDBAide.AddParameter(TEXT("UserID"), pClubUser->dwUserID);
  8746. m_GameDBAide.AddParameter(TEXT("ClubID"), pClubUser->dwClubID);
  8747. m_GameDBAide.AddParameter(TEXT("Kind"), pClubUser->cbKind);
  8748. m_GameDBAide.AddParameter(TEXT("TargetUserID"), pClubUser->dwTemp);
  8749. m_GameDBAide.AddParameter(TEXT("StartIndex"), pClubUser->wStartIndex);
  8750. m_GameDBAide.AddParameter(TEXT("Count"), pClubUser->wCount);
  8751. lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetBlackUser"), true);
  8752. if (DB_SUCCESS == lResultCode)
  8753. {
  8754. for (int i = 0; i < m_GameDBModule->GetRecordCount(); i++)
  8755. {
  8756. if (i >= 20) { break; }
  8757. //构造数据
  8758. CMD_S_MemberInfo ClubUser;
  8759. ZeroMemory(&ClubUser, sizeof(ClubUser));
  8760. ClubUser.dwUserID = m_GameDBAide.GetValue_DWORD(TEXT("UserID"));
  8761. ClubUser.BangMaID = m_GameDBAide.GetValue_DWORD(TEXT("BangMa"));
  8762. ClubUser.cbStaus = m_GameDBAide.GetValue_BYTE(TEXT("Agree"));
  8763. //如果是查找黑名单
  8764. if (pClubUser->cbKind == 2)
  8765. {
  8766. ClubUser.cbStaus = 2;
  8767. }
  8768. //如果是查找管理员
  8769. if (pClubUser->cbKind == 3)
  8770. {
  8771. ClubUser.cbStaus = 3;
  8772. }
  8773. TCHAR szBuffer[128] = { 0 };
  8774. ZeroMemory(szBuffer, 128 * sizeof(TCHAR));
  8775. m_GameDBAide.GetValue_String(TEXT("UserName"), szBuffer, 128);
  8776. TCHAR szOutBuffer[128] = { 0 };
  8777. ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR));
  8778. //解码
  8779. int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer);
  8780. if (iRet == -1)
  8781. {
  8782. szBuffer[32] = 0x0;
  8783. _sntprintf(ClubUser.szName, CountArray(ClubUser.szName), TEXT("%s"), szBuffer);
  8784. }
  8785. else
  8786. {
  8787. szOutBuffer[32] = 0x0;
  8788. _sntprintf(ClubUser.szName, CountArray(ClubUser.szName), TEXT("%s"), szOutBuffer);
  8789. }
  8790. m_GameDBAide.GetValue_String(TEXT("HeadUrl"), ClubUser.szHeadUrl, LEN_HEAD_URL);
  8791. //复制数据
  8792. CopyMemory(&(ClubUserAck.csMemberInfo[i]), &ClubUser, sizeof(ClubUser));
  8793. //移动记录
  8794. m_GameDBModule->MoveToNext();
  8795. }
  8796. ClubUserAck.wCount = m_GameDBModule->GetRecordCount();
  8797. if (ClubUserAck.wCount > 20){ ClubUserAck.wCount = 20; }
  8798. }
  8799. //返回数据
  8800. int totalSize = ClubUserAck.wCount * sizeof(CMD_S_MemberInfo) + sizeof(WORD) + 2*sizeof(DWORD) + 2*sizeof(BYTE);
  8801. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_GET_BLACKUSER_ACK, dwContextID, &ClubUserAck, totalSize);
  8802. double dRet = Start.End();
  8803. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  8804. {
  8805. CString csTest;
  8806. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetBlackUser ----> %.3f "), dRet);
  8807. //提示消息
  8808. CTraceService::TraceString(csTest, TraceLevel_Normal);
  8809. }
  8810. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  8811. {
  8812. CString csTest;
  8813. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetBlackUser ----> %.3f "), dRet);
  8814. //提示消息
  8815. CTraceService::TraceString(csTest, TraceLevel_Normal);
  8816. }
  8817. return true;
  8818. }
  8819. catch (IDataBaseException * pIException)
  8820. {
  8821. //输出错误
  8822. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  8823. double dRet = Start.End();
  8824. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  8825. {
  8826. CString csTest;
  8827. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetBlackUser ----> %.3f "), dRet);
  8828. //提示消息
  8829. CTraceService::TraceString(csTest, TraceLevel_Normal);
  8830. }
  8831. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  8832. {
  8833. CString csTest;
  8834. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetBlackUser ----> %.3f "), dRet);
  8835. //提示消息
  8836. CTraceService::TraceString(csTest, TraceLevel_Normal);
  8837. }
  8838. return true;
  8839. }
  8840. return true;
  8841. }
  8842. //俱乐部协议
  8843. bool CDataBaseEngineSink::OnRequestGetClubProtocol(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  8844. {
  8845. OutputDebugStringA("CDataBaseEngineSink::OnRequestGetClubProtocol");
  8846. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClubProtocol"), TraceLevel_Debug);
  8847. CTimer Start;
  8848. try
  8849. {
  8850. DBR_GR_ClubProtocol *pClubAction2 = (DBR_GR_ClubProtocol*)pData;
  8851. if (pClubAction2 == NULL) return false;
  8852. TCHAR szDescribeString[127];
  8853. ZeroMemory(szDescribeString, 127 * sizeof(TCHAR));
  8854. //构造参数
  8855. m_GameDBAide.ResetParameter();
  8856. m_GameDBAide.AddParameter(TEXT("@UserID"), pClubAction2->dwUserID);
  8857. m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction2->dwClubID);
  8858. //执行存储过程
  8859. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetProtocol"), true);
  8860. //返回数据
  8861. DBR_GR_ClubProtocolAgree ClubProtocolAgree;
  8862. ZeroMemory(&ClubProtocolAgree, sizeof(ClubProtocolAgree));
  8863. if (DB_SUCCESS == lResultCode)
  8864. {
  8865. ClubProtocolAgree.dwUserID = pClubAction2->dwUserID;
  8866. ClubProtocolAgree.dwClubID = pClubAction2->dwClubID;
  8867. ClubProtocolAgree.cbAgree = m_GameDBAide.GetValue_BYTE(TEXT("Protocol"));
  8868. }
  8869. //返回数据
  8870. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_PROTOCOL_ACK, dwContextID, &ClubProtocolAgree, sizeof(ClubProtocolAgree));
  8871. double dRet = Start.End();
  8872. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  8873. {
  8874. CString csTest;
  8875. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetProtocol ----> %.3f "), dRet);
  8876. //提示消息
  8877. CTraceService::TraceString(csTest, TraceLevel_Normal);
  8878. }
  8879. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  8880. {
  8881. CString csTest;
  8882. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetProtocol ----> %.3f "), dRet);
  8883. //提示消息
  8884. CTraceService::TraceString(csTest, TraceLevel_Normal);
  8885. }
  8886. return true;
  8887. }
  8888. catch (IDataBaseException * pIException)
  8889. {
  8890. //输出错误
  8891. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  8892. double dRet = Start.End();
  8893. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  8894. {
  8895. CString csTest;
  8896. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetProtocol ----> %.3f "), dRet);
  8897. //提示消息
  8898. CTraceService::TraceString(csTest, TraceLevel_Normal);
  8899. }
  8900. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  8901. {
  8902. CString csTest;
  8903. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetProtocol ----> %.3f "), dRet);
  8904. //提示消息
  8905. CTraceService::TraceString(csTest, TraceLevel_Normal);
  8906. }
  8907. return true;
  8908. }
  8909. return true;
  8910. }
  8911. //俱乐部协议同意
  8912. bool CDataBaseEngineSink::OnRequestGetClubProtocolAgree(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  8913. {
  8914. OutputDebugStringA("CDataBaseEngineSink::OnRequestGetClubProtocolAgree");
  8915. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClubProtocolAgree"), TraceLevel_Debug);
  8916. CTimer Start;
  8917. try
  8918. {
  8919. DBR_GR_ClubProtocolAgree *pClubAction2 = (DBR_GR_ClubProtocolAgree*)pData;
  8920. if (pClubAction2 == NULL) return false;
  8921. TCHAR szDescribeString[127];
  8922. ZeroMemory(szDescribeString, 127 * sizeof(TCHAR));
  8923. //构造参数
  8924. m_GameDBAide.ResetParameter();
  8925. m_GameDBAide.AddParameter(TEXT("@UserID"), pClubAction2->dwUserID);
  8926. m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubAction2->dwClubID);
  8927. m_GameDBAide.AddParameter(TEXT("@Agree"), pClubAction2->cbAgree);
  8928. m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  8929. //执行存储过程
  8930. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_AgreeProtocol"), true);
  8931. //返回数据
  8932. DBR_GR_Club_Action_Ack1 ClubProtocolAgree;
  8933. ZeroMemory(&ClubProtocolAgree, sizeof(ClubProtocolAgree));
  8934. if (DB_SUCCESS == lResultCode)
  8935. {
  8936. ClubProtocolAgree.dwClubID = pClubAction2->dwClubID;
  8937. ClubProtocolAgree.Result = 1;
  8938. }
  8939. else
  8940. {
  8941. //获取参数
  8942. CDBVarValue DBVarValue;
  8943. m_GameDBAide.GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  8944. ZeroMemory(szDescribeString, sizeof(szDescribeString));
  8945. lstrcpyn(szDescribeString, CW2CT(DBVarValue.bstrVal), sizeof(szDescribeString));
  8946. CopyMemory(ClubProtocolAgree.Message, szDescribeString, 127 * sizeof(TCHAR));
  8947. }
  8948. //返回数据
  8949. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_PROTOCOLAGREE_ACK, dwContextID, &ClubProtocolAgree, sizeof(ClubProtocolAgree));
  8950. double dRet = Start.End();
  8951. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  8952. {
  8953. CString csTest;
  8954. csTest.Format(_T("存储过程耗时 GSP_GP_Club_AgreeProtocol ----> %.3f "), dRet);
  8955. //提示消息
  8956. CTraceService::TraceString(csTest, TraceLevel_Normal);
  8957. }
  8958. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  8959. {
  8960. CString csTest;
  8961. csTest.Format(_T("存储过程耗时 GSP_GP_Club_AgreeProtocol ----> %.3f "), dRet);
  8962. //提示消息
  8963. CTraceService::TraceString(csTest, TraceLevel_Normal);
  8964. }
  8965. return true;
  8966. }
  8967. catch (IDataBaseException * pIException)
  8968. {
  8969. //输出错误
  8970. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  8971. double dRet = Start.End();
  8972. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  8973. {
  8974. CString csTest;
  8975. csTest.Format(_T("存储过程耗时 GSP_GP_Club_AgreeProtocol ----> %.3f "), dRet);
  8976. //提示消息
  8977. CTraceService::TraceString(csTest, TraceLevel_Normal);
  8978. }
  8979. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  8980. {
  8981. CString csTest;
  8982. csTest.Format(_T("存储过程耗时 GSP_GP_Club_AgreeProtocol ----> %.3f "), dRet);
  8983. //提示消息
  8984. CTraceService::TraceString(csTest, TraceLevel_Normal);
  8985. }
  8986. return true;
  8987. }
  8988. return true;
  8989. }
  8990. //查询群主信息(自动创房和群主支付创房)
  8991. bool CDataBaseEngineSink::OnRequestGetClubHostInfo(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  8992. {
  8993. OutputDebugStringA("CDataBaseEngineSink::OnRequestGetClubHostInfo");
  8994. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClubHostInfo"), TraceLevel_Debug);
  8995. CTimer Start;
  8996. try
  8997. {
  8998. CMD_GR_UserSitDownEx2 *pUserSitDown = (CMD_GR_UserSitDownEx2*)pData;
  8999. if (pUserSitDown == NULL) return false;
  9000. TCHAR szDescribeString[127];
  9001. ZeroMemory(szDescribeString, 127 * sizeof(TCHAR));
  9002. //构造参数
  9003. m_GameDBAide.ResetParameter();
  9004. m_GameDBAide.AddParameter(TEXT("@ClubID"), pUserSitDown->data.clubID);
  9005. //执行存储过程
  9006. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetHostInfo"), true);
  9007. //返回数据
  9008. void * pBuffer = NULL;
  9009. try
  9010. {
  9011. pBuffer = malloc(sizeof(DBR_GR_UserSitDownEx2) + sizeof(tagGameConfig) + 5 * sizeof(CMD_GR_UserInfo));
  9012. ZeroMemory(pBuffer, sizeof(DBR_GR_UserSitDownEx2) + sizeof(tagGameConfig) + 5 * sizeof(CMD_GR_UserInfo));
  9013. DBR_GR_UserSitDownEx3 * pEx = (DBR_GR_UserSitDownEx3 *)pBuffer;
  9014. CopyMemory(&(pEx->UserSitDownData), pUserSitDown, sizeof(CMD_GR_UserSitDownEx2));
  9015. CopyMemory(&(pEx->UserSitDownData.data.TableConfig), pUserSitDown->data.TableConfig, sizeof(tagGameConfig));
  9016. if (DB_SUCCESS == lResultCode)
  9017. {
  9018. pEx->currCurrency = m_GameDBAide.GetValue_DWORD(TEXT("Currency"));
  9019. pEx->UserSitDownData.hostInfo.dwOwnerID = m_GameDBAide.GetValue_DWORD(TEXT("UserID"));
  9020. }
  9021. //执行存储过程2 找管理员的信息
  9022. //构造参数
  9023. m_GameDBAide.ResetParameter();
  9024. m_GameDBAide.AddParameter(TEXT("@ClubID"), pUserSitDown->data.clubID);
  9025. //执行存储过程
  9026. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetAdmInfo"), true);
  9027. if (DB_SUCCESS == lResultCode)
  9028. {
  9029. int i = 0;
  9030. while (m_GameDBModule->IsRecordsetEnd() == false)
  9031. {
  9032. if (i >= 5){ break; }
  9033. pEx->AdmInfo[i].dwOwnerID = m_GameDBAide.GetValue_DWORD(TEXT("UserID"));
  9034. m_GameDBAide.GetValue_String(TEXT("HeadUrl"), pEx->AdmInfo[i].szHeadUrl, sizeof(pEx->AdmInfo[i].szHeadUrl));
  9035. TCHAR szBuffer[128] = { 0 };
  9036. ZeroMemory(szBuffer, 128 * sizeof(TCHAR));
  9037. m_GameDBAide.GetValue_String(TEXT("NickName"), szBuffer, 128);
  9038. TCHAR szOutBuffer[128] = { 0 };
  9039. ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR));
  9040. //解码
  9041. int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer);
  9042. if (iRet == -1)
  9043. {
  9044. szBuffer[32] = 0x0;
  9045. _sntprintf(pEx->AdmInfo[i].szHostName, CountArray(pEx->AdmInfo[i].szHostName), TEXT("%s"), szBuffer);
  9046. }
  9047. else
  9048. {
  9049. szOutBuffer[32] = 0x0;
  9050. _sntprintf(pEx->AdmInfo[i].szHostName, CountArray(pEx->AdmInfo[i].szHostName), TEXT("%s"), szOutBuffer);
  9051. }
  9052. i++;
  9053. m_GameDBModule->MoveToNext();
  9054. }
  9055. }
  9056. //构造参数
  9057. m_GameDBAide.ResetParameter();
  9058. m_GameDBAide.AddParameter(TEXT("@ClubID"), pUserSitDown->data.clubID);
  9059. //执行存储过程
  9060. LONG lResultCodes = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_Sample_Select"), true);
  9061. //返回数据
  9062. DBR_GR_Club_Make_A_Sample Sample;
  9063. ZeroMemory(&Sample, sizeof(Sample));
  9064. if (DB_SUCCESS == lResultCodes)
  9065. {
  9066. pEx->UserSitDownData.data.cbCreateTable = m_GameDBAide.GetValue_DWORD(TEXT("Sample"));
  9067. }
  9068. //返回数据
  9069. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_HOSTINFO_ACK, dwContextID, pBuffer, sizeof(DBR_GR_UserSitDownEx2) + sizeof(tagGameConfig) + 5 * sizeof(CMD_GR_UserInfo));
  9070. if (pBuffer) free(pBuffer);
  9071. pBuffer = NULL;
  9072. }
  9073. catch (IDataBaseException * pIException)
  9074. {
  9075. //输出错误
  9076. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  9077. if (pBuffer) free(pBuffer);
  9078. }
  9079. double dRet = Start.End();
  9080. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  9081. {
  9082. CString csTest;
  9083. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetAdmInfo ----> %.3f "), dRet);
  9084. //提示消息
  9085. CTraceService::TraceString(csTest, TraceLevel_Normal);
  9086. }
  9087. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  9088. {
  9089. CString csTest;
  9090. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetAdmInfo ----> %.3f "), dRet);
  9091. //提示消息
  9092. CTraceService::TraceString(csTest, TraceLevel_Normal);
  9093. }
  9094. return true;
  9095. }
  9096. catch (IDataBaseException * pIException)
  9097. {
  9098. //输出错误
  9099. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  9100. double dRet = Start.End();
  9101. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  9102. {
  9103. CString csTest;
  9104. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetAdmInfo ----> %.3f "), dRet);
  9105. //提示消息
  9106. CTraceService::TraceString(csTest, TraceLevel_Normal);
  9107. }
  9108. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  9109. {
  9110. CString csTest;
  9111. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetAdmInfo ----> %.3f "), dRet);
  9112. //提示消息
  9113. CTraceService::TraceString(csTest, TraceLevel_Normal);
  9114. }
  9115. return true;
  9116. }
  9117. return true;
  9118. }
  9119. //俱乐部打样
  9120. bool CDataBaseEngineSink::OnRequestGetClubSample(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  9121. {
  9122. OutputDebugStringA("CDataBaseEngineSink::OnRequestGetClubSample");
  9123. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClubSample"), TraceLevel_Debug);
  9124. CTimer Start;
  9125. try
  9126. {
  9127. DBR_GR_Club_Make_A_Sample *pSample = (DBR_GR_Club_Make_A_Sample*)pData;
  9128. if (pSample == NULL) return false;
  9129. TCHAR szDescribeString[127];
  9130. ZeroMemory(szDescribeString, 127 * sizeof(TCHAR));
  9131. //构造参数
  9132. m_GameDBAide.ResetParameter();
  9133. m_GameDBAide.AddParameter(TEXT("@ClubID"), pSample->dwClubID);
  9134. //执行存储过程
  9135. LONG lResultCodes = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_Sample_Select"), true);
  9136. if (DB_SUCCESS == lResultCodes)
  9137. {
  9138. pSample->IsSample = m_GameDBAide.GetValue_DWORD(TEXT("Sample"));
  9139. }
  9140. //查询出这个俱乐部上次打样状态,取反存入数据库并发送前端
  9141. if (pSample->IsSample == 0)
  9142. {
  9143. pSample->IsSample = 1;
  9144. }
  9145. else
  9146. {
  9147. pSample->IsSample = 0;
  9148. }
  9149. //构造参数
  9150. m_GameDBAide.ResetParameter();
  9151. m_GameDBAide.AddParameter(TEXT("@ClubID"), pSample->dwClubID);
  9152. m_GameDBAide.AddParameter(TEXT("@Sample"), pSample->IsSample);
  9153. //执行存储过程
  9154. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_Sample"), true);
  9155. //返回数据
  9156. DBR_GR_Club_Make_A_Sample Sample;
  9157. ZeroMemory(&Sample, sizeof(Sample));
  9158. if (DB_SUCCESS == lResultCode)
  9159. {
  9160. Sample.dwClubID = pSample->dwClubID;
  9161. Sample.IsSample = pSample->IsSample;
  9162. }
  9163. else
  9164. {
  9165. Sample.dwClubID = pSample->dwClubID;
  9166. Sample.IsSample = pSample->IsSample;
  9167. }
  9168. //返回数据
  9169. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_GET_MAKEA_SAMPLE_ACK, dwContextID, &Sample, sizeof(Sample));
  9170. //推送给其他用户
  9171. if (DB_SUCCESS == lResultCode)
  9172. {
  9173. //输入参数
  9174. m_GameDBAide.ResetParameter();
  9175. m_GameDBAide.AddParameter(TEXT("@ClubID"), pSample->dwClubID);
  9176. //执行存储过程
  9177. lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetAllUser"), true);
  9178. //返回数据
  9179. DBR_GR_UserData UserData;
  9180. ZeroMemory(&UserData, sizeof(UserData));
  9181. int i = 0;
  9182. if (DB_SUCCESS == lResultCode)
  9183. {
  9184. while (m_GameDBModule->IsRecordsetEnd() == false)
  9185. {
  9186. if (i >= 1000){ break; }
  9187. UserData.dwUserID[i++] = m_GameDBAide.GetValue_DWORD(TEXT("UserID"));
  9188. m_GameDBModule->MoveToNext();
  9189. }
  9190. }
  9191. UserData.dwClubID = pSample->dwClubID;
  9192. UserData.wUserCount = i;
  9193. if (pSample->IsSample == 1)
  9194. {
  9195. UserData.newsFlag = 100;
  9196. }
  9197. else
  9198. {
  9199. UserData.newsFlag = 99;
  9200. }
  9201. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_NOTIFY_ACK, dwContextID, &UserData, sizeof(UserData));
  9202. }
  9203. double dRet = Start.End();
  9204. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  9205. {
  9206. CString csTest;
  9207. csTest.Format(_T("存储过程耗时 GSP_GP_Club_Sample ----> %.3f "), dRet);
  9208. //提示消息
  9209. CTraceService::TraceString(csTest, TraceLevel_Normal);
  9210. }
  9211. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  9212. {
  9213. CString csTest;
  9214. csTest.Format(_T("存储过程耗时 GSP_GP_Club_Sample ----> %.3f "), dRet);
  9215. //提示消息
  9216. CTraceService::TraceString(csTest, TraceLevel_Normal);
  9217. }
  9218. return true;
  9219. }
  9220. catch (IDataBaseException * pIException)
  9221. {
  9222. //输出错误
  9223. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  9224. double dRet = Start.End();
  9225. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  9226. {
  9227. CString csTest;
  9228. csTest.Format(_T("存储过程耗时 GSP_GP_Club_Sample ----> %.3f "), dRet);
  9229. //提示消息
  9230. CTraceService::TraceString(csTest, TraceLevel_Normal);
  9231. }
  9232. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  9233. {
  9234. CString csTest;
  9235. csTest.Format(_T("存储过程耗时 GSP_GP_Club_Sample ----> %.3f "), dRet);
  9236. //提示消息
  9237. CTraceService::TraceString(csTest, TraceLevel_Normal);
  9238. }
  9239. return true;
  9240. }
  9241. return true;
  9242. }
  9243. //查询公告
  9244. bool CDataBaseEngineSink::OnRequestGetClubNotice(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  9245. {
  9246. OutputDebugStringA("CDataBaseEngineSink::OnRequestGetClubNotice");
  9247. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestGetClubNotice"), TraceLevel_Debug);
  9248. CTimer Start;
  9249. try
  9250. {
  9251. DBR_GR_ClubNotice *pClubNotice= (DBR_GR_ClubNotice*)pData;
  9252. if (pClubNotice == NULL) return false;
  9253. TCHAR szDescribeString[127];
  9254. ZeroMemory(szDescribeString, 127 * sizeof(TCHAR));
  9255. //构造参数
  9256. m_GameDBAide.ResetParameter();
  9257. m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubNotice->dwClubID);
  9258. m_GameDBAide.AddParameter(TEXT("@UserID"), pClubNotice->dwUserID);
  9259. m_GameDBAide.AddParameter(TEXT("@Type"), pClubNotice->cbType);
  9260. m_GameDBAide.AddParameter(TEXT("@Message"), pClubNotice->Message);
  9261. m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  9262. //执行存储过程
  9263. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetClubNotice"), true);
  9264. //返回数据
  9265. DBR_GR_ClubNotice_ACK ClubNoticeAck;
  9266. ZeroMemory(&ClubNoticeAck, sizeof(ClubNoticeAck));
  9267. ClubNoticeAck.cbType = pClubNotice->cbType;
  9268. ClubNoticeAck.dwClubID = pClubNotice->dwClubID;
  9269. if (DB_SUCCESS == lResultCode)
  9270. {
  9271. ClubNoticeAck.Result = 1;
  9272. m_GameDBAide.GetValue_String(TEXT("ClubMessage"), ClubNoticeAck.Message, sizeof(ClubNoticeAck.Message));
  9273. }
  9274. else
  9275. {
  9276. CDBVarValue DBVarValue;
  9277. m_GameDBAide.GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  9278. lstrcpyn(ClubNoticeAck.Message, CW2CT(DBVarValue.bstrVal), CountArray(ClubNoticeAck.Message));
  9279. }
  9280. //返回数据
  9281. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_NOTICE_ACK, dwContextID, &ClubNoticeAck, sizeof(ClubNoticeAck));
  9282. double dRet = Start.End();
  9283. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  9284. {
  9285. CString csTest;
  9286. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetClubNotice ----> %.3f "), dRet);
  9287. //提示消息
  9288. CTraceService::TraceString(csTest, TraceLevel_Normal);
  9289. }
  9290. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  9291. {
  9292. CString csTest;
  9293. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetClubNotice ----> %.3f "), dRet);
  9294. //提示消息
  9295. CTraceService::TraceString(csTest, TraceLevel_Normal);
  9296. }
  9297. return true;
  9298. }
  9299. catch (IDataBaseException * pIException)
  9300. {
  9301. //输出错误
  9302. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  9303. double dRet = Start.End();
  9304. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  9305. {
  9306. CString csTest;
  9307. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetClubNotice ----> %.3f "), dRet);
  9308. //提示消息
  9309. CTraceService::TraceString(csTest, TraceLevel_Normal);
  9310. }
  9311. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  9312. {
  9313. CString csTest;
  9314. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetClubNotice ----> %.3f "), dRet);
  9315. //提示消息
  9316. CTraceService::TraceString(csTest, TraceLevel_Normal);
  9317. }
  9318. return true;
  9319. }
  9320. return true;
  9321. }
  9322. //通知所有用户
  9323. bool CDataBaseEngineSink::OnRequestNotifyAlluser(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  9324. {
  9325. OutputDebugStringA("CDataBaseEngineSink::OnRequestNotifyAlluser");
  9326. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestNotifyAlluser"), TraceLevel_Debug);
  9327. CTimer Start;
  9328. try
  9329. {
  9330. //输入参数
  9331. CMD_GR_UserData *pUserData = (CMD_GR_UserData*)pData;
  9332. m_GameDBAide.ResetParameter();
  9333. m_GameDBAide.AddParameter(TEXT("@ClubID"), pUserData->dwClubID);
  9334. //返回数据
  9335. DBR_GR_UserData UserData;
  9336. ZeroMemory(&UserData, sizeof(UserData));
  9337. if (pUserData->newsFlag == 4)
  9338. {
  9339. if (pUserData->dwUserId == 0)
  9340. {
  9341. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetHostInfo"), true);
  9342. if (DB_SUCCESS == lResultCode)
  9343. {
  9344. UserData.dwUserID[0] = m_GameDBAide.GetValue_DWORD(TEXT("UserID"));
  9345. }
  9346. }
  9347. else
  9348. {
  9349. UserData.dwUserID[0] = pUserData->dwUserId;
  9350. }
  9351. UserData.wUserCount = 1;
  9352. }
  9353. else
  9354. {
  9355. //执行存储过程
  9356. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_GetAllUser"), true);
  9357. int i = 0;
  9358. if (DB_SUCCESS == lResultCode)
  9359. {
  9360. while (m_GameDBModule->IsRecordsetEnd() == false)
  9361. {
  9362. if (i >= 1000){ break; }
  9363. UserData.dwUserID[i++] = m_GameDBAide.GetValue_DWORD(TEXT("UserID"));
  9364. m_GameDBModule->MoveToNext();
  9365. }
  9366. }
  9367. UserData.wUserCount = i;
  9368. }
  9369. UserData.newsFlag = pUserData->newsFlag;
  9370. UserData.dwClubID = pUserData->dwClubID;
  9371. CopyMemory(UserData.Message, pUserData->Message, sizeof(UserData.Message));
  9372. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_NOTIFY_ACK, dwContextID, &UserData, sizeof(UserData));
  9373. double dRet = Start.End();
  9374. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  9375. {
  9376. CString csTest;
  9377. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetAllUser ----> %.3f "), dRet);
  9378. //提示消息
  9379. CTraceService::TraceString(csTest, TraceLevel_Normal);
  9380. }
  9381. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  9382. {
  9383. CString csTest;
  9384. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetAllUser ----> %.3f "), dRet);
  9385. //提示消息
  9386. CTraceService::TraceString(csTest, TraceLevel_Normal);
  9387. }
  9388. return true;
  9389. }
  9390. catch (IDataBaseException * pIException)
  9391. {
  9392. //输出错误
  9393. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  9394. double dRet = Start.End();
  9395. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  9396. {
  9397. CString csTest;
  9398. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetAllUser ----> %.3f "), dRet);
  9399. //提示消息
  9400. CTraceService::TraceString(csTest, TraceLevel_Normal);
  9401. }
  9402. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(0000) && CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(dwUserID))
  9403. {
  9404. CString csTest;
  9405. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetAllUser ----> %.3f "), dRet);
  9406. //提示消息
  9407. CTraceService::TraceString(csTest, TraceLevel_Normal);
  9408. }
  9409. return true;
  9410. }
  9411. return true;
  9412. }
  9413. //群主解散俱乐部房间
  9414. bool CDataBaseEngineSink::OnRequestClubDissolveRoom(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  9415. {
  9416. OutputDebugStringA("CDataBaseEngineSink::OnRequestClubDissolveRoom");
  9417. CTraceService::TraceString(TEXT("CDataBaseEngineSink::OnRequestClubDissolveRoom"), TraceLevel_Debug);
  9418. CTimer Start;
  9419. try
  9420. {
  9421. //输入参数
  9422. DBR_GR_ClubDissolveRoom *pClubData = (DBR_GR_ClubDissolveRoom*)pData;
  9423. m_GameDBAide.ResetParameter();
  9424. m_GameDBAide.AddParameter(TEXT("@ClubID"), pClubData->dwClubID);
  9425. m_GameDBAide.AddParameter(TEXT("@dwUserId"), pClubData->dwUserID);
  9426. //执行存储过程
  9427. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GP_Club_AdminDisTable"), true);
  9428. DBR_GR_ClubDissolveRoom ClubDissolveRoom = { 0 };
  9429. memcpy(&ClubDissolveRoom, pClubData, sizeof(ClubDissolveRoom));
  9430. ClubDissolveRoom.cbIsAdmin = lResultCode;
  9431. /*if (DB_SUCCESS == lResultCode)
  9432. {
  9433. while (m_GameDBModule->IsRecordsetEnd() == false)
  9434. {
  9435. DWORD dwUserID = m_GameDBAide.GetValue_DWORD(TEXT("UserID"));
  9436. if (dwUserID == pClubData->dwUserID)
  9437. {
  9438. ClubDissolveRoom.cbIsAdmin = 1;
  9439. break;
  9440. }
  9441. m_GameDBModule->MoveToNext();
  9442. }
  9443. }*/
  9444. //if (ClubDissolveRoom.cbIsAdmin == 1)
  9445. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GR_CLUB_DISSOLVEROOM_ACK, dwContextID, &ClubDissolveRoom, sizeof(ClubDissolveRoom));
  9446. double dRet = Start.End();
  9447. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  9448. {
  9449. CString csTest;
  9450. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetAdmInfo ----> %.3f "), dRet);
  9451. //提示消息
  9452. CTraceService::TraceString(csTest, TraceLevel_Normal);
  9453. }
  9454. return true;
  9455. }
  9456. catch (IDataBaseException * pIException)
  9457. {
  9458. //输出错误
  9459. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  9460. double dRet = Start.End();
  9461. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  9462. {
  9463. CString csTest;
  9464. csTest.Format(_T("存储过程耗时 GSP_GP_Club_GetAdmInfo ----> %.3f "), dRet);
  9465. //提示消息
  9466. CTraceService::TraceString(csTest, TraceLevel_Normal);
  9467. }
  9468. return true;
  9469. }
  9470. return true;
  9471. }
  9472. //////////////////////////////////////////////////////////////////////////////////
  9473. ///---拉取胜局榜列表 \存储过程\数据库SQL\DataBase\Script\Platform\存储过程\金币数据库\游戏写分.sql
  9474. //bool CDataBaseEngineSink::OnRequestTopWinList(DWORD dwContextID, VOID * pData, WORD wDataSize)
  9475. //{
  9476. // CTimer Start;
  9477. // try
  9478. // {
  9479. // //变量定义
  9480. // WORD wPacketSize = 0;
  9481. // BYTE cbBuffer[MAX_ASYNCHRONISM_DATA] = { 0 };
  9482. //
  9483. // //加载类型
  9484. // m_TreasureDBAide.ResetParameter();
  9485. // m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_TopGameScore"), true);
  9486. //
  9487. // //发送种类
  9488. // wPacketSize = 0;
  9489. // tagTopWinInfo * pTopWinInfo = NULL;
  9490. // while (m_TreasureDBModule->IsRecordsetEnd() == false)
  9491. // {
  9492. // //发送信息
  9493. // if ((wPacketSize + sizeof(tagTopWinInfo)) > sizeof(cbBuffer))
  9494. // {
  9495. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_TOP_WIN_LIST_RESULT, dwContextID, cbBuffer, wPacketSize);
  9496. // wPacketSize = 0;
  9497. // }
  9498. //
  9499. // //读取信息
  9500. // pTopWinInfo = (tagTopWinInfo *)(cbBuffer + wPacketSize);
  9501. // pTopWinInfo->dwUserID = m_TreasureDBAide.GetValue_DWORD(TEXT("UserID"));
  9502. //
  9503. // //m_TreasureDBAide.GetValue_String(TEXT("NickName"), pTopWinInfo->szNickname, CountArray(pTopWinInfo->szNickname)); ///昵称要解码
  9504. //
  9505. // TCHAR szBuffer[128] = { 0 };
  9506. // ZeroMemory(szBuffer, 128 * sizeof(TCHAR));
  9507. // m_TreasureDBAide.GetValue_String(TEXT("NickName"), szBuffer, 128);
  9508. // TCHAR szOutBuffer[128] = { 0 };
  9509. // ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR));
  9510. //
  9511. // //解码
  9512. // int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer);
  9513. // if (iRet == -1)
  9514. // {
  9515. // szBuffer[32] = 0x0;
  9516. // _sntprintf(pTopWinInfo->szNickname, CountArray(pTopWinInfo->szNickname), TEXT("%s"), szBuffer);
  9517. // }
  9518. // else
  9519. // {
  9520. // szOutBuffer[32] = 0x0;
  9521. // _sntprintf(pTopWinInfo->szNickname, CountArray(pTopWinInfo->szNickname), TEXT("%s"), szOutBuffer);
  9522. // }
  9523. //
  9524. // m_TreasureDBAide.GetValue_String(TEXT("HeadUrl"), pTopWinInfo->szHeadUrl, CountArray(pTopWinInfo->szHeadUrl));
  9525. //
  9526. // pTopWinInfo->iBingID = m_TreasureDBAide.GetValue_INT(TEXT("BingID"));
  9527. //
  9528. // //pTopWinInfo->lScore = m_TreasureDBAide.GetValue_LONGLONG(TEXT("Score"));
  9529. // pTopWinInfo->dwWinCount = m_TreasureDBAide.GetValue_DWORD(TEXT("WinCount"));
  9530. //
  9531. // DWORD dwLostCount = m_TreasureDBAide.GetValue_DWORD(TEXT("LostCount"));
  9532. // DWORD dwDrawCount = m_TreasureDBAide.GetValue_DWORD(TEXT("DrawCount"));
  9533. // DWORD dwFleeCount = m_TreasureDBAide.GetValue_DWORD(TEXT("FleeCount"));
  9534. //
  9535. // //总局数
  9536. // pTopWinInfo->dwTotalCount = pTopWinInfo->dwWinCount + dwLostCount + dwDrawCount + dwFleeCount;
  9537. //
  9538. // //设置位移
  9539. // wPacketSize += sizeof(tagTopWinInfo);
  9540. //
  9541. // //移动记录
  9542. // m_TreasureDBModule->MoveToNext();
  9543. // }
  9544. //
  9545. // if (wPacketSize > 0)
  9546. // {
  9547. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GR_TOP_WIN_LIST_RESULT, dwContextID, cbBuffer, wPacketSize);
  9548. // }
  9549. //
  9550. //
  9551. // double dRet = Start.End();
  9552. //
  9553. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  9554. // {
  9555. // CString csTest;
  9556. // csTest.Format(_T("存储过程耗时 GSP_GR_TopGameScore ----> %.3f "), dRet);
  9557. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  9558. // }
  9559. //
  9560. // }
  9561. // catch (IDataBaseException * pIException)
  9562. // {
  9563. // //错误信息
  9564. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  9565. //
  9566. // return false;
  9567. // }
  9568. //
  9569. // return true;
  9570. //}
  9571. //
  9572. /////---查询破产信息
  9573. //bool CDataBaseEngineSink::OnRequestReliefInfo(DWORD dwContextID, VOID * pData, WORD wDataSize)
  9574. //{
  9575. // CTimer Start;
  9576. // try
  9577. // {
  9578. // DWORD* pDwUserID = (DWORD*)(pData);
  9579. //
  9580. // if (0 == *pDwUserID)
  9581. // {
  9582. // ASSERT(FALSE);
  9583. // return false;
  9584. // }
  9585. //
  9586. // //构造参数
  9587. // m_GameDBAide.ResetParameter();
  9588. // m_GameDBAide.AddParameter(TEXT("@dwUserID"), *pDwUserID);
  9589. //
  9590. // TCHAR szDescribeString[127];
  9591. // ZeroMemory(szDescribeString, 127 * sizeof(TCHAR));
  9592. // m_GameDBAide.AddParameterOutput(TEXT("@strNotifyContent"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  9593. //
  9594. // //执行查询 \存储过程\存储过程\金币_破产领取.sql
  9595. // LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_ReliefInfo"), true);
  9596. //
  9597. // //结果处理
  9598. // CDBVarValue DBVarValue;
  9599. // m_GameDBModule->GetParameter(TEXT("@strNotifyContent"), DBVarValue);
  9600. //
  9601. // tagReliefInfo reliefInfo;
  9602. // if (lResultCode == DB_SUCCESS)
  9603. // {
  9604. // reliefInfo.wTotalCount = m_GameDBAide.GetValue_INT(_T("ReliefCount")); ///---每天能领取的总次数
  9605. // reliefInfo.wGetCount = m_GameDBAide.GetValue_INT(_T("TodayReliefCount")); ///---已经领取次数
  9606. // reliefInfo.dwReliefScore = m_GameDBAide.GetValue_INT(_T("ReliefScore")); ///---救济额度
  9607. //
  9608. // //m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_RELIEF_INFO_ACK, dwContextID, &reliefInfo, sizeof(reliefInfo));
  9609. // }
  9610. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_RELIEF_INFO_ACK, dwContextID, &reliefInfo, sizeof(reliefInfo));
  9611. //
  9612. //
  9613. // double dRet = Start.End();
  9614. //
  9615. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  9616. // {
  9617. // CString csTest;
  9618. // csTest.Format(_T("存储过程耗时 GSP_GR_ReliefInfo ----> %.3f "), dRet);
  9619. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  9620. // }
  9621. //
  9622. // return true;
  9623. // }
  9624. // catch (IDataBaseException * pIException)
  9625. // {
  9626. // //输出错误
  9627. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  9628. // double dRet = Start.End();
  9629. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  9630. // {
  9631. // CString csTest;
  9632. //
  9633. // csTest.Format(_T("存储过程耗时 OnRequestReliefInfo ----> %.3f "), dRet);
  9634. //
  9635. // //提示消息
  9636. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  9637. // }
  9638. // }
  9639. //
  9640. // return false;
  9641. //}
  9642. //
  9643. //
  9644. /////---破产领取 \doc\存储过程\存储过程\金币_破产领取.sql
  9645. //bool CDataBaseEngineSink::OnRequestGetRelief(DWORD dwContextID, VOID * pData, WORD wDataSize)
  9646. //{
  9647. // CTimer Start;
  9648. // try
  9649. // {
  9650. // DBR_GR_GetRelief* pGetRelief = (DBR_GR_GetRelief*)(pData);
  9651. //
  9652. // if (0 == pGetRelief->dwUserID)
  9653. // {
  9654. // ASSERT(FALSE);
  9655. // return false;
  9656. // }
  9657. //
  9658. // //转化地址
  9659. // TCHAR szClientAddr[16] = TEXT("");
  9660. // BYTE * pClientAddr = (BYTE *)&pGetRelief->dwClientAddr;
  9661. // _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]);
  9662. //
  9663. //
  9664. // TCHAR szDescribeString[127];
  9665. // ZeroMemory(szDescribeString, 127 * sizeof(TCHAR));
  9666. //
  9667. // //构造参数
  9668. // m_GameDBAide.ResetParameter();
  9669. // m_GameDBAide.AddParameter(TEXT("@dwUserID"), pGetRelief->dwUserID);
  9670. // m_GameDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr);
  9671. // m_GameDBAide.AddParameter(TEXT("@strMachineID"), pGetRelief->szMachineID);
  9672. //
  9673. // m_GameDBAide.AddParameterOutput(TEXT("@strNotifyContent"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  9674. //
  9675. // //执行查询
  9676. // LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_GetRelief"), true);
  9677. //
  9678. // //结果处理
  9679. // CDBVarValue DBVarValue;
  9680. // m_GameDBModule->GetParameter(TEXT("@strNotifyContent"), DBVarValue);
  9681. //
  9682. // tagReliefScore reliefScore;
  9683. // if (lResultCode == DB_SUCCESS)
  9684. // {
  9685. // reliefScore.dwReliefScore = m_GameDBAide.GetValue_DWORD(_T("GetReliefScore")); ///救济金额
  9686. // reliefScore.lCurrScore = m_GameDBAide.GetValue_LONGLONG(_T("CurrScore")); ///最新携带金币
  9687. // m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_GET_RELIEF_INFO_ACK, dwContextID, &reliefScore, sizeof(reliefScore));
  9688. // }
  9689. // else
  9690. // {
  9691. // ///没有救济可领,就不要下发了?
  9692. // TCHAR szHint[256] = { 0 };
  9693. // swprintf(szHint, TEXT("救济领取[%d]%s"), pGetRelief->dwUserID, static_cast<LPCWSTR>(DBVarValue.bstrVal));
  9694. // CTraceService::TraceString(szHint, TraceLevel_Normal);
  9695. // }
  9696. //
  9697. // double dRet = Start.End();
  9698. //
  9699. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  9700. // {
  9701. // CString csTest;
  9702. // csTest.Format(_T("存储过程耗时 领取救济 GSP_GR_GetRelief ----> %.3f "), dRet);
  9703. // //提示消息
  9704. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  9705. // }
  9706. // return true;
  9707. // }
  9708. // catch (IDataBaseException * pIException)
  9709. // {
  9710. // //输出错误
  9711. // CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  9712. // double dRet = Start.End();
  9713. // if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  9714. // {
  9715. // CString csTest;
  9716. //
  9717. // csTest.Format(_T("存储过程耗时 OnRequestReliefInfo ----> %.3f "), dRet);
  9718. //
  9719. // //提示消息
  9720. // CTraceService::TraceString(csTest, TraceLevel_Normal);
  9721. // }
  9722. // }
  9723. //
  9724. // return false;
  9725. //}
  9726. //转盘奖品配置列表
  9727. bool CDataBaseEngineSink::OnRequestRouletteConfig(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  9728. {
  9729. CTimer Start;
  9730. try
  9731. {
  9732. //构造参数
  9733. m_TreasureDBAide.ResetParameter();
  9734. LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_RouletteConfig"), true);
  9735. //变量定义
  9736. WORD wPacketSize = 0;
  9737. BYTE cbBuffer[MAX_ASYNCHRONISM_DATA] = { 0 };
  9738. ///+++1透传的数据(不用了,只有一种抽奖方式)
  9739. //memcpy(cbBuffer, pData, wDataSize);
  9740. //wPacketSize += wDataSize;
  9741. wPacketSize = 0;
  9742. tagRouletteConfig * pRouletteCfg = NULL;
  9743. while (!m_TreasureDBModule->IsRecordsetEnd())
  9744. {
  9745. //发送信息
  9746. if ((wPacketSize + sizeof(tagRouletteConfig)) > sizeof(cbBuffer))
  9747. {
  9748. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_GET_ROULETTE_CONFIG_ACK, dwContextID, cbBuffer, wPacketSize);
  9749. wPacketSize = 0;
  9750. }
  9751. //读取信息
  9752. pRouletteCfg = (tagRouletteConfig *)(cbBuffer + wPacketSize);
  9753. pRouletteCfg->wID = m_TreasureDBAide.GetValue_WORD(TEXT("ID"));
  9754. m_TreasureDBAide.GetValue_String(TEXT("Name"), pRouletteCfg->szName, CountArray(pRouletteCfg->szName)); //--奖品名称
  9755. m_TreasureDBAide.GetValue_String(TEXT("ICON"), pRouletteCfg->szICON, CountArray(pRouletteCfg->szICON)); //--奖品图像
  9756. pRouletteCfg->wProperty = m_TreasureDBAide.GetValue_WORD(TEXT("Property")); //--奖励值
  9757. pRouletteCfg->wType = m_TreasureDBAide.GetValue_WORD(TEXT("Type")); //--类型 1:钻石 2:金币 3:话费 4:实物1 5:实物2 ...
  9758. pRouletteCfg->wOdds = m_TreasureDBAide.GetValue_WORD(TEXT("Odds")); //--概率值
  9759. pRouletteCfg->iQuantity = m_TreasureDBAide.GetValue_INT(TEXT("Quantity"));
  9760. //设置位移
  9761. wPacketSize += sizeof(tagRouletteConfig);
  9762. //移动记录
  9763. m_TreasureDBModule->MoveToNext();
  9764. }
  9765. if (wPacketSize > 0)
  9766. {
  9767. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_GET_ROULETTE_CONFIG_ACK, dwContextID, cbBuffer, wPacketSize);
  9768. }
  9769. double dRet = Start.End();
  9770. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(3333))
  9771. {
  9772. CString csTest;
  9773. csTest.Format(_T("存储过程耗时 OnRequestRouletteConfig ----> %.3f wPacketSize=%d"), dRet, wPacketSize);
  9774. //提示消息
  9775. CTraceService::TraceString(csTest, TraceLevel_Normal);
  9776. }
  9777. return true;
  9778. }
  9779. catch (IDataBaseException * pIException)
  9780. {
  9781. //输出错误
  9782. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  9783. return false;
  9784. }
  9785. }
  9786. ///---我的转盘配置信息
  9787. bool CDataBaseEngineSink::OnRequestRouletteConfig_new(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  9788. {
  9789. CTimer Start;
  9790. try
  9791. {
  9792. //效验参数
  9793. ASSERT(wDataSize == sizeof(DWORD));
  9794. if (wDataSize != sizeof(DWORD))
  9795. {
  9796. return false;
  9797. }
  9798. //请求处理
  9799. DWORD * pdwUserID = (DWORD *)pData;
  9800. //构造参数
  9801. m_TreasureDBAide.ResetParameter();
  9802. m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), *pdwUserID);
  9803. m_TreasureDBAide.AddParameter(TEXT("@wLotteryType"), 0); ///--轮盘抽奖
  9804. //输出参数
  9805. TCHAR szDescribeString[128] = TEXT("");
  9806. m_TreasureDBAide.AddParameterOutput(TEXT("@strNotifyContent"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  9807. LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_RouletteConfig_new"), true);
  9808. //变量定义
  9809. tagRouletteConfig2 rouletteConfig2;
  9810. rouletteConfig2.wResult = lResultCode;
  9811. //出参
  9812. CDBVarValue DBVarValue;
  9813. m_TreasureDBModule->GetParameter(TEXT("@strNotifyContent"), DBVarValue);
  9814. lstrcpyn(rouletteConfig2.szDesc, CW2CT(DBVarValue.bstrVal), CountArray(rouletteConfig2.szDesc));
  9815. //结果处理
  9816. if (lResultCode == DB_SUCCESS)
  9817. {
  9818. rouletteConfig2.wID = m_TreasureDBAide.GetValue_WORD(TEXT("ID")); //奖品ID
  9819. m_TreasureDBAide.GetValue_String(TEXT("ICON"), rouletteConfig2.szICON, CountArray(rouletteConfig2.szICON)); //--奖品图像
  9820. rouletteConfig2.wHadLotteryCount = m_TreasureDBAide.GetValue_WORD(TEXT("HadLotteryCount")); //“我”已抽奖次数
  9821. rouletteConfig2.wLotteryCountPara = m_TreasureDBAide.GetValue_WORD(TEXT("LotteryCountPara")); //“我”可抽奖总次数
  9822. //新转盘功能
  9823. rouletteConfig2.wLotteryLimit = m_TreasureDBAide.GetValue_WORD(TEXT("LotteryLimit")); //抽奖限制
  9824. rouletteConfig2.wInningValue = m_TreasureDBAide.GetValue_WORD(TEXT("InningValue")); //局数标准
  9825. rouletteConfig2.wRechargeValue = m_TreasureDBAide.GetValue_WORD(TEXT("RechargeValue")); //充值标准
  9826. rouletteConfig2.wInningInfo[0] = m_TreasureDBAide.GetValue_WORD(TEXT("InningInfo1")); //局数详情 前天
  9827. rouletteConfig2.wInningInfo[1] = m_TreasureDBAide.GetValue_WORD(TEXT("InningInfo2")); //局数详情 昨天
  9828. rouletteConfig2.wInningInfo[2] = m_TreasureDBAide.GetValue_WORD(TEXT("InningInfo3")); //局数详情 今天
  9829. rouletteConfig2.cbRechargeInfo = m_TreasureDBAide.GetValue_BYTE(TEXT("RechargeInfo")); //充值详情
  9830. m_TreasureDBAide.GetValue_String(TEXT("LotteryRule"), rouletteConfig2.szLotteryRule, CountArray(rouletteConfig2.szLotteryRule)); //--抽奖规则
  9831. }
  9832. //发送结果
  9833. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_MY_ROULETTE_INFO_ACK, dwContextID, &rouletteConfig2, sizeof(rouletteConfig2));
  9834. double dRet = Start.End();
  9835. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  9836. {
  9837. CString csTest;
  9838. csTest.Format(_T("存储过程耗时 GSP_GR_RouletteConfig_new ----> %.3f"), dRet);
  9839. //提示消息
  9840. CTraceService::TraceString(csTest, TraceLevel_Normal);
  9841. }
  9842. return true;
  9843. }
  9844. catch (IDataBaseException * pIException)
  9845. {
  9846. //输出错误
  9847. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  9848. return false;
  9849. }
  9850. }
  9851. //记录轮盘抽奖
  9852. bool CDataBaseEngineSink::OnRecordRouletteLottery(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  9853. {
  9854. CTimer Start;
  9855. try
  9856. {
  9857. DBR_GR_RouletteLottery* pLottery = (DBR_GR_RouletteLottery*)(pData);
  9858. if (0 == pLottery->dwUserID)
  9859. {
  9860. ASSERT(FALSE);
  9861. return false;
  9862. }
  9863. //转化地址
  9864. TCHAR szClientAddr[16] = TEXT("");
  9865. BYTE * pClientAddr = (BYTE *)&pLottery->dwClientAddr;
  9866. _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]);
  9867. TCHAR szDescribeString[127];
  9868. ZeroMemory(szDescribeString, 127 * sizeof(TCHAR));
  9869. //构造参数
  9870. m_GameDBAide.ResetParameter();
  9871. m_GameDBAide.AddParameter(TEXT("@dwUserID"), pLottery->dwUserID);
  9872. m_GameDBAide.AddParameter(TEXT("@wLotteryType"), pLottery->wLotteryType); //抽奖类型(0: 轮盘抽奖 1: 玩牌抽奖) add 2017-12-29
  9873. m_GameDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr);
  9874. m_GameDBAide.AddParameter(TEXT("@strMachineID"), pLottery->szMachineID);
  9875. m_GameDBAide.AddParameter(TEXT("@wRouletteLotteryID"), pLottery->wRouletteLotteryID);
  9876. m_GameDBAide.AddParameter(TEXT("@strLotteryName"), pLottery->szLotteryName);
  9877. m_GameDBAide.AddParameterOutput(TEXT("@strNotifyContent"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  9878. //执行查询
  9879. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_RouletteLottery"), true);
  9880. //结果处理
  9881. CDBVarValue DBVarValue;
  9882. m_GameDBModule->GetParameter(TEXT("@strNotifyContent"), DBVarValue);
  9883. //抽奖结果
  9884. tagLotteryResultEx rouletteLottery;
  9885. rouletteLottery.LotteryResult.wLotteryType = pLottery->wLotteryType; ///+++记录抽奖类型
  9886. rouletteLottery.LotteryResult.wResult = lResultCode;
  9887. if (lResultCode == DB_SUCCESS)
  9888. {
  9889. ///---成功则为奖品名称
  9890. m_GameDBAide.GetValue_String(TEXT("strLotteryName"), rouletteLottery.LotteryResult.szDesc, CountArray(rouletteLottery.LotteryResult.szDesc)); //--奖品名称
  9891. rouletteLottery.LotteryResult.wRouletteLotterID = m_GameDBAide.GetValue_WORD(TEXT("RouletteLotteryID")); //++奖品ID
  9892. rouletteLottery.LotteryResult.wHadLotteryCount = m_GameDBAide.GetValue_WORD(TEXT("TodayLotteryCount")); //++“我”已抽奖次数
  9893. rouletteLottery.LotteryResult.wLotteryCountPara = m_GameDBAide.GetValue_WORD(TEXT("LotteryCountPara")); //++抽奖总次数
  9894. ///+++最新携带
  9895. rouletteLottery.LotteryResult.lScore = m_GameDBAide.GetValue_LONGLONG(TEXT("Score")); ///--携带金币
  9896. rouletteLottery.LotteryResult.dwBean = m_GameDBAide.GetValue_DWORD(TEXT("Bean")); ///--携带钻石
  9897. m_GameDBAide.GetValue_String(TEXT("PhoneNum"), rouletteLottery.szPhoneNum, CountArray(rouletteLottery.szPhoneNum)); //--手机号码
  9898. rouletteLottery.wAwardType = m_GameDBAide.GetValue_WORD(TEXT("AwardType")); //--奖品类型
  9899. rouletteLottery.dwRecordID = m_GameDBAide.GetValue_DWORD(TEXT("RecordID"));
  9900. }
  9901. else
  9902. {
  9903. lstrcpyn(rouletteLottery.LotteryResult.szDesc, CW2CT(DBVarValue.bstrVal), CountArray(rouletteLottery.LotteryResult.szDesc));
  9904. }
  9905. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_ROULETTE_LOTTERY_ACK, dwContextID, &rouletteLottery, sizeof(rouletteLottery));
  9906. double dRet = Start.End();
  9907. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  9908. {
  9909. CString csTest;
  9910. csTest.Format(_T("存储过程耗时 轮盘抽奖 OnRecordRouletteLottery ----> %.3f "), dRet);
  9911. //提示消息
  9912. CTraceService::TraceString(csTest, TraceLevel_Normal);
  9913. }
  9914. return true;
  9915. }
  9916. catch (IDataBaseException * pIException)
  9917. {
  9918. //输出错误
  9919. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  9920. double dRet = Start.End();
  9921. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  9922. {
  9923. CString csTest;
  9924. csTest.Format(_T("存储过程耗时 OnRecordRouletteLottery ----> %.3f "), dRet);
  9925. //提示消息
  9926. CTraceService::TraceString(csTest, TraceLevel_Normal);
  9927. }
  9928. }
  9929. return false;
  9930. }
  9931. ///+++加载签到奖励配置
  9932. bool CDataBaseEngineSink::OnRequestCheckInReward(DWORD dwContextID, VOID * pData, WORD wDataSize)
  9933. {
  9934. CTimer Start;
  9935. try
  9936. {
  9937. //构造参数
  9938. m_PlatformDBAide.ResetParameter();
  9939. //执行命令 SELECT * FROM SigninConfig
  9940. LONG lResultCode = m_PlatformDBAide.ExecuteProcess(TEXT("GSP_GP_LoadCheckInReward"), true);
  9941. //7天奖励
  9942. tagCheckinReward chkReward[LEN_WEEK];
  9943. ZeroMemory(&chkReward, sizeof(chkReward));
  9944. //执行成功
  9945. if (lResultCode == DB_SUCCESS)
  9946. {
  9947. //变量定义
  9948. WORD wDayIndex = 0;
  9949. while (m_PlatformDBModule->IsRecordsetEnd() == false)
  9950. {
  9951. wDayIndex = m_PlatformDBAide.GetValue_WORD(TEXT("DayID"));
  9952. if (wDayIndex <= LEN_WEEK)
  9953. {
  9954. chkReward[wDayIndex - 1].lRewardGold = m_PlatformDBAide.GetValue_LONGLONG(TEXT("RewardGold"));
  9955. chkReward[wDayIndex - 1].iRewardCurrency = m_PlatformDBAide.GetValue_INT(TEXT("RewardCurrency"));
  9956. }
  9957. //移动记录
  9958. m_PlatformDBModule->MoveToNext();
  9959. }
  9960. //投递结果
  9961. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_CHECKIN_REWARD, dwContextID, &chkReward, sizeof(chkReward));
  9962. }
  9963. else
  9964. {
  9965. CString strHint;
  9966. strHint.Format(L"签到奖励配置读取失败[GSP_GP_LoadCheckInReward]");
  9967. //提示消息
  9968. CTraceService::TraceString(strHint, TraceLevel_Warning);
  9969. }
  9970. double dRet = Start.End();
  9971. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  9972. {
  9973. CString csTest;
  9974. csTest.Format(_T("存储过程耗时 签到奖励配置 OnRequestCheckInReward ----> %.3f "), dRet);
  9975. //提示消息
  9976. CTraceService::TraceString(csTest, TraceLevel_Normal);
  9977. }
  9978. return true;
  9979. }
  9980. catch (IDataBaseException * pIException)
  9981. {
  9982. //输出错误
  9983. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  9984. return false;
  9985. }
  9986. return true;
  9987. }
  9988. //查询签到信息
  9989. bool CDataBaseEngineSink::OnRequestCheckInQueryInfo(DWORD dwContextID, VOID * pData, WORD wDataSize)
  9990. {
  9991. CTimer Start;
  9992. try
  9993. {
  9994. //效验参数
  9995. ASSERT(wDataSize == sizeof(DWORD));
  9996. if (wDataSize != sizeof(DWORD))
  9997. {
  9998. return false;
  9999. }
  10000. //请求处理
  10001. DWORD * pdwUserID = (DWORD *)pData;
  10002. //构造参数
  10003. m_PlatformDBAide.ResetParameter();
  10004. m_PlatformDBAide.AddParameter(TEXT("@dwUserID"), *pdwUserID);
  10005. //输出参数
  10006. TCHAR szDescribeString[128] = TEXT("");
  10007. m_PlatformDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  10008. //执行脚本
  10009. LONG lResultCode = m_PlatformDBAide.ExecuteProcess(TEXT("GSP_GR_CheckInQueryInfo"), true);
  10010. //变量定义
  10011. tagCheckInInfo CheckInInfo;
  10012. ZeroMemory(&CheckInInfo, sizeof(CheckInInfo));
  10013. CheckInInfo.bSuccessed = false;
  10014. //出参
  10015. CDBVarValue DBVarValue;
  10016. m_PlatformDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  10017. lstrcpyn(CheckInInfo.szNotifyContent, CW2CT(DBVarValue.bstrVal), CountArray(CheckInInfo.szNotifyContent));
  10018. //结果处理
  10019. if (lResultCode == DB_SUCCESS)
  10020. {
  10021. CheckInInfo.bSuccessed = true;
  10022. CheckInInfo.wSeriesDate = m_PlatformDBAide.GetValue_WORD(TEXT("SeriesDate")); ///连续签到的天数
  10023. CheckInInfo.bTodayChecked = 1==(m_PlatformDBAide.GetValue_BYTE(TEXT("TodayCheckIned"))); ///今天是否签到
  10024. }
  10025. //发送结果
  10026. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_CHECKIN_INFO, dwContextID, &CheckInInfo, sizeof(CheckInInfo));
  10027. double dRet = Start.End();
  10028. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  10029. {
  10030. CString csTest;
  10031. csTest.Format(_T("存储过程耗时 查询签到信息 OnRequestCheckInQueryInfo ----> %.3f "), dRet);
  10032. //提示消息
  10033. CTraceService::TraceString(csTest, TraceLevel_Normal);
  10034. }
  10035. return true;
  10036. }
  10037. catch (IDataBaseException * pIException)
  10038. {
  10039. //输出错误
  10040. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  10041. double dRet = Start.End();
  10042. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  10043. {
  10044. CString csTest;
  10045. csTest.Format(_T("存储过程耗时 查询签到信息 OnRequestCheckInQueryInfo ----> %.3f "), dRet);
  10046. //提示消息
  10047. CTraceService::TraceString(csTest, TraceLevel_Normal);
  10048. }
  10049. //构造结构
  10050. tagCheckInInfo CheckInInfo;
  10051. ZeroMemory(&CheckInInfo, sizeof(CheckInInfo));
  10052. CheckInInfo.bSuccessed = false;
  10053. lstrcpyn(CheckInInfo.szNotifyContent, TEXT("由于数据库操作异常,请您稍后重试!"), CountArray(CheckInInfo.szNotifyContent));
  10054. //发送结果
  10055. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_CHECKIN_INFO, dwContextID, &CheckInInfo, sizeof(CheckInInfo));
  10056. return false;
  10057. }
  10058. }
  10059. //执行签到
  10060. bool CDataBaseEngineSink::OnRequestCheckInDone(DWORD dwContextID, VOID * pData, WORD wDataSize)
  10061. {
  10062. try
  10063. {
  10064. //效验参数
  10065. ASSERT(wDataSize == sizeof(tagCheckInDone));
  10066. if (wDataSize != sizeof(tagCheckInDone))
  10067. {
  10068. return false;
  10069. }
  10070. //请求处理
  10071. tagCheckInDone * pCheckInDone = (tagCheckInDone *)pData;
  10072. //转化地址
  10073. TCHAR szClientAddr[16] = TEXT("");
  10074. BYTE * pClientAddr = (BYTE *)&pCheckInDone->dwClientAddr;
  10075. _sntprintf(szClientAddr, CountArray(szClientAddr), TEXT("%d.%d.%d.%d"), pClientAddr[0], pClientAddr[1], pClientAddr[2], pClientAddr[3]);
  10076. //构造参数
  10077. m_PlatformDBAide.ResetParameter();
  10078. m_PlatformDBAide.AddParameter(TEXT("@dwUserID"), pCheckInDone->dwUserID);
  10079. m_PlatformDBAide.AddParameter(TEXT("@strClientIP"), szClientAddr);
  10080. m_PlatformDBAide.AddParameter(TEXT("@strMachineID"), pCheckInDone->szMachineID);
  10081. //输出参数
  10082. TCHAR szDescribeString[128] = TEXT("");
  10083. m_PlatformDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  10084. //执行脚本
  10085. LONG lResultCode = m_PlatformDBAide.ExecuteProcess(TEXT("GSP_GR_CheckInDone"), true);
  10086. //签到结果
  10087. tagCheckInResult CheckInResult;
  10088. ZeroMemory(&CheckInResult, sizeof(CheckInResult));
  10089. ///===CheckInResult.bSuccessed = false;
  10090. CheckInResult.btSuccessed = 0;
  10091. //出参
  10092. CDBVarValue DBVarValue;
  10093. m_PlatformDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  10094. lstrcpyn(CheckInResult.szNotifyContent, CW2CT(DBVarValue.bstrVal), CountArray(CheckInResult.szNotifyContent));
  10095. //读取分数
  10096. if (lResultCode == DB_SUCCESS)
  10097. {
  10098. ///===CheckInResult.bSuccessed = true;
  10099. CheckInResult.btSuccessed = 1;
  10100. CheckInResult.lScore = m_PlatformDBAide.GetValue_LONGLONG(TEXT("Score"));
  10101. CheckInResult.dwBean = m_PlatformDBAide.GetValue_DWORD(TEXT("Bean"));
  10102. }
  10103. //发送结果
  10104. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_CHECKIN_RESULT, dwContextID, &CheckInResult, sizeof(CheckInResult));
  10105. return true;
  10106. }
  10107. catch (IDataBaseException * pIException)
  10108. {
  10109. //输出错误
  10110. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  10111. //构造结构
  10112. tagCheckInResult CheckInResult;
  10113. ///===CheckInResult.bSuccessed = false;
  10114. CheckInResult.btSuccessed = 0;
  10115. lstrcpyn(CheckInResult.szNotifyContent, TEXT("由于数据库操作异常,请您稍后重试!"), CountArray(CheckInResult.szNotifyContent));
  10116. //发送结果
  10117. WORD wSendSize = sizeof(CheckInResult) - sizeof(CheckInResult.szNotifyContent) + CountStringBuffer(CheckInResult.szNotifyContent);
  10118. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBO_GP_CHECKIN_RESULT, dwContextID, &CheckInResult, wSendSize);
  10119. return false;
  10120. }
  10121. }
  10122. //查询抽奖信息
  10123. bool CDataBaseEngineSink::OnQueryLotteryInfo(DWORD dwContextID, VOID * pData, WORD wDataSize)
  10124. {
  10125. CTimer Start;
  10126. try
  10127. {
  10128. DBR_GR_LotteryInfo* pLotteryInfo = (DBR_GR_LotteryInfo*)(pData);
  10129. if (0 == pLotteryInfo->dwUserID)
  10130. {
  10131. ASSERT(FALSE);
  10132. return false;
  10133. }
  10134. TCHAR szDescribeString[127];
  10135. ZeroMemory(szDescribeString, 127 * sizeof(TCHAR));
  10136. //构造参数
  10137. m_GameDBAide.ResetParameter();
  10138. m_GameDBAide.AddParameter(TEXT("@dwUserID"), pLotteryInfo->dwUserID);
  10139. m_GameDBAide.AddParameter(TEXT("@wLotteryType"), pLotteryInfo->wLotteryType); //抽奖类型(0: 轮盘抽奖 1: 玩牌抽奖) add 2017-12-29
  10140. m_GameDBAide.AddParameterOutput(TEXT("@strNotifyContent"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  10141. //执行查询
  10142. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_QueryLotteryInfo"), true);
  10143. //结果处理
  10144. CDBVarValue DBVarValue;
  10145. m_GameDBModule->GetParameter(TEXT("@strNotifyContent"), DBVarValue);
  10146. //抽奖结果
  10147. tagLotteryInfo rouletteLotteryInfo;
  10148. rouletteLotteryInfo.wLotteryType = pLotteryInfo->wLotteryType; ///+++记录抽奖类型
  10149. rouletteLotteryInfo.wResult = lResultCode; //查询结果
  10150. lstrcpyn(rouletteLotteryInfo.szDesc, CW2CT(DBVarValue.bstrVal), CountArray(rouletteLotteryInfo.szDesc)); //描述信息
  10151. rouletteLotteryInfo.wHadLotteryCount = m_GameDBAide.GetValue_WORD(TEXT("HadLotteryCount"));
  10152. rouletteLotteryInfo.wLotteryCountPara = m_GameDBAide.GetValue_WORD(TEXT("LotteryCountPara"));
  10153. rouletteLotteryInfo.wCurrentDrawCount = m_GameDBAide.GetValue_WORD(TEXT("CurrentDrawCount"));
  10154. rouletteLotteryInfo.wDrawLotteryCountPara = m_GameDBAide.GetValue_WORD(TEXT("DrawLotteryCountPara"));
  10155. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_LOTTERY_INFO_ACK, dwContextID, &rouletteLotteryInfo, sizeof(rouletteLotteryInfo));
  10156. double dRet = Start.End();
  10157. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  10158. {
  10159. CString csTest;
  10160. csTest.Format(_T("存储过程耗时 查询抽奖信息 OnQueryLotteryInfo ----> %.3f "), dRet);
  10161. //提示消息
  10162. CTraceService::TraceString(csTest, TraceLevel_Normal);
  10163. }
  10164. return true;
  10165. }
  10166. catch (IDataBaseException * pIException)
  10167. {
  10168. //输出错误
  10169. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  10170. double dRet = Start.End();
  10171. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  10172. {
  10173. CString csTest;
  10174. csTest.Format(_T("存储过程耗时 OnQueryLotteryInfo ----> %.3f "), dRet);
  10175. //提示消息
  10176. CTraceService::TraceString(csTest, TraceLevel_Normal);
  10177. }
  10178. }
  10179. return false;
  10180. }
  10181. //查询抽奖历史记录
  10182. bool CDataBaseEngineSink::OnQueryLotteryHis(DWORD dwContextID, VOID * pData, WORD wDataSize)
  10183. {
  10184. CTimer Start;
  10185. try
  10186. {
  10187. DBR_GR_LotteryHis* pDBR_GR_LotteryHis = (DBR_GR_LotteryHis*)(pData);
  10188. TCHAR szDescribeString[127];
  10189. ZeroMemory(szDescribeString, 127 * sizeof(TCHAR));
  10190. //构造参数
  10191. m_GameDBAide.ResetParameter();
  10192. m_GameDBAide.AddParameter(TEXT("@dwUserID"), pDBR_GR_LotteryHis->dwUserID);
  10193. m_GameDBAide.AddParameter(TEXT("@btQueryFlag"), pDBR_GR_LotteryHis->btQueryFlag); //查询标志 0:只查自己的;1:查最近中奖记录
  10194. m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  10195. //执行查询
  10196. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_QueryLotteryHis"), true);
  10197. //结果处理
  10198. CDBVarValue DBVarValue;
  10199. m_GameDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  10200. //变量定义
  10201. WORD wPacketSize = 0;
  10202. BYTE cbBuffer[MAX_ASYNCHRONISM_DATA] = { 0 };
  10203. wPacketSize = 0;
  10204. tagLotteryHis * pLotteryHis = NULL;
  10205. while (!m_GameDBModule->IsRecordsetEnd())
  10206. {
  10207. //发送信息
  10208. if ((wPacketSize + sizeof(tagLotteryHis)) > sizeof(cbBuffer))
  10209. {
  10210. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_LOTTERY_HIS_ACK, dwContextID, cbBuffer, wPacketSize);
  10211. wPacketSize = 0;
  10212. }
  10213. //读取信息
  10214. pLotteryHis = (tagLotteryHis *)(cbBuffer + wPacketSize);
  10215. pLotteryHis->dwUserID = m_GameDBAide.GetValue_DWORD(TEXT("UserID")); //玩家ID
  10216. //m_GameDBAide.GetValue_String(TEXT("NickName"), pLotteryHis->szUserName, CountArray(pLotteryHis->szUserName)); //玩家名称
  10217. TCHAR szBuffer[128] = { 0 };
  10218. ZeroMemory(szBuffer, 128 * sizeof(TCHAR));
  10219. m_GameDBAide.GetValue_String(TEXT("NickName"), szBuffer, 128);
  10220. TCHAR szOutBuffer[128] = { 0 };
  10221. ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR));
  10222. //解码
  10223. int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer);
  10224. if (iRet == -1)
  10225. {
  10226. szBuffer[32] = 0x0;
  10227. _sntprintf(pLotteryHis->szUserName, CountArray(pLotteryHis->szUserName), TEXT("%s"), szBuffer);
  10228. }
  10229. else
  10230. {
  10231. szOutBuffer[32] = 0x0;
  10232. _sntprintf(pLotteryHis->szUserName, CountArray(pLotteryHis->szUserName), TEXT("%s"), szOutBuffer);
  10233. }
  10234. pLotteryHis->wLotteryType = m_GameDBAide.GetValue_WORD(TEXT("LotteryType")); //抽奖类型 0:轮盘抽奖;1:玩牌抽奖
  10235. pLotteryHis->wRouletteID = m_GameDBAide.GetValue_WORD(TEXT("ID")); //奖品ID
  10236. m_GameDBAide.GetValue_String(TEXT("LotteryName"), pLotteryHis->szLotteryName, CountArray(pLotteryHis->szLotteryName)); //奖品名称
  10237. SYSTEMTIME SystemTimeInputDate, SystemTimeGetLotteryDate;
  10238. memset(&SystemTimeInputDate, 0, sizeof(SystemTimeInputDate));
  10239. memset(&SystemTimeGetLotteryDate, 0, sizeof(SystemTimeGetLotteryDate));
  10240. m_GameDBAide.GetValue_SystemTime(TEXT("InputDate"), SystemTimeInputDate);
  10241. m_GameDBAide.GetValue_SystemTime(TEXT("GetLotteryDate"), SystemTimeGetLotteryDate);
  10242. if (SystemTimeInputDate.wYear != 0)
  10243. {
  10244. CTime inputDateTime(SystemTimeInputDate);
  10245. CString strInputDate = inputDateTime.Format("%Y-%m-%d %H:%M:%S");
  10246. lstrcpyn(pLotteryHis->szInputeDate, strInputDate, CountArray(pLotteryHis->szInputeDate)); // 中奖时间
  10247. }
  10248. if (SystemTimeGetLotteryDate.wYear != 0)
  10249. {
  10250. CTime getLotteryDateTime(SystemTimeGetLotteryDate);
  10251. CString strGetLotteryDate = getLotteryDateTime.Format("%Y-%m-%d %H:%M:%S");
  10252. lstrcpyn(pLotteryHis->szGetLotteryDate, strGetLotteryDate, CountArray(pLotteryHis->szGetLotteryDate)); //领奖奖时间
  10253. }
  10254. pLotteryHis->btGetLotteryFlag = m_GameDBAide.GetValue_WORD(TEXT("GetLotteryFlag")); //领奖标志 0:未领取 1:领取
  10255. //设置位移
  10256. wPacketSize += sizeof(tagLotteryHis);
  10257. //移动记录
  10258. m_GameDBModule->MoveToNext();
  10259. }
  10260. if (wPacketSize > 0)
  10261. {
  10262. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_LOTTERY_HIS_ACK, dwContextID, cbBuffer, wPacketSize);
  10263. }
  10264. double dRet = Start.End();
  10265. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  10266. {
  10267. CString csTest;
  10268. csTest.Format(_T("存储过程耗时 查询抽奖信息 GSP_GR_QueryLotteryHis ----> %.3f "), dRet);
  10269. //提示消息
  10270. CTraceService::TraceString(csTest, TraceLevel_Normal);
  10271. }
  10272. return true;
  10273. }
  10274. catch (IDataBaseException * pIException)
  10275. {
  10276. //输出错误
  10277. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  10278. double dRet = Start.End();
  10279. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  10280. {
  10281. CString csTest;
  10282. csTest.Format(_T("存储过程耗时 GSP_GR_QueryLotteryHis ----> %.3f "), dRet);
  10283. //提示消息
  10284. CTraceService::TraceString(csTest, TraceLevel_Normal);
  10285. }
  10286. }
  10287. return false;
  10288. }
  10289. //查询抽奖历史记录-额外兼容
  10290. bool CDataBaseEngineSink::OnQueryLotteryHisEx(DWORD dwContextID, VOID * pData, WORD wDataSize)
  10291. {
  10292. CTimer Start;
  10293. try
  10294. {
  10295. DBR_GR_LotteryHis* pDBR_GR_LotteryHis = (DBR_GR_LotteryHis*)(pData);
  10296. TCHAR szDescribeString[127];
  10297. ZeroMemory(szDescribeString, 127 * sizeof(TCHAR));
  10298. //构造参数
  10299. m_GameDBAide.ResetParameter();
  10300. m_GameDBAide.AddParameter(TEXT("@dwUserID"), pDBR_GR_LotteryHis->dwUserID);
  10301. m_GameDBAide.AddParameter(TEXT("@btQueryFlag"), pDBR_GR_LotteryHis->btQueryFlag); //查询标志 0:只查自己的;1:查最近中奖记录
  10302. if (pDBR_GR_LotteryHis->btQueryFlag == 1)
  10303. {
  10304. //变量定义
  10305. WORD wPacketSize = 0;
  10306. BYTE cbBuffer[MAX_ASYNCHRONISM_DATA] = { 0 };
  10307. m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  10308. //执行查询
  10309. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_QueryLotteryHis"), true);
  10310. //结果处理
  10311. CDBVarValue DBVarValue;
  10312. m_GameDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  10313. tagLotteryHis * pLotteryHis = NULL;
  10314. while (!m_GameDBModule->IsRecordsetEnd())
  10315. {
  10316. //发送信息
  10317. if ((wPacketSize + sizeof(tagLotteryHis)) > sizeof(cbBuffer))
  10318. {
  10319. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_LOTTERY_HIS_ACK, dwContextID, cbBuffer, wPacketSize);
  10320. wPacketSize = 0;
  10321. }
  10322. //读取信息
  10323. pLotteryHis = (tagLotteryHis *)(cbBuffer + wPacketSize);
  10324. pLotteryHis->dwUserID = m_GameDBAide.GetValue_DWORD(TEXT("UserID")); //玩家ID
  10325. //m_GameDBAide.GetValue_String(TEXT("NickName"), pLotteryHis->szUserName, CountArray(pLotteryHis->szUserName)); //玩家名称
  10326. TCHAR szBuffer[128] = { 0 };
  10327. ZeroMemory(szBuffer, 128 * sizeof(TCHAR));
  10328. m_GameDBAide.GetValue_String(TEXT("NickName"), szBuffer, 128);
  10329. TCHAR szOutBuffer[128] = { 0 };
  10330. ZeroMemory(szOutBuffer, 128 * sizeof(TCHAR));
  10331. //解码
  10332. int iRet = BASE64_Decode(szBuffer, 128, (BYTE*)szOutBuffer);
  10333. if (iRet == -1)
  10334. {
  10335. szBuffer[32] = 0x0;
  10336. _sntprintf(pLotteryHis->szUserName, CountArray(pLotteryHis->szUserName), TEXT("%s"), szBuffer);
  10337. }
  10338. else
  10339. {
  10340. szOutBuffer[32] = 0x0;
  10341. _sntprintf(pLotteryHis->szUserName, CountArray(pLotteryHis->szUserName), TEXT("%s"), szOutBuffer);
  10342. }
  10343. pLotteryHis->wLotteryType = m_GameDBAide.GetValue_WORD(TEXT("LotteryType")); //抽奖类型 0:轮盘抽奖;1:玩牌抽奖
  10344. pLotteryHis->wRouletteID = (WORD)m_GameDBAide.GetValue_DWORD(TEXT("ID")); //奖品ID
  10345. m_GameDBAide.GetValue_String(TEXT("LotteryName"), pLotteryHis->szLotteryName, CountArray(pLotteryHis->szLotteryName)); //奖品名称
  10346. SYSTEMTIME SystemTimeInputDate, SystemTimeGetLotteryDate;
  10347. memset(&SystemTimeInputDate, 0, sizeof(SystemTimeInputDate));
  10348. memset(&SystemTimeGetLotteryDate, 0, sizeof(SystemTimeGetLotteryDate));
  10349. m_GameDBAide.GetValue_SystemTime(TEXT("InputDate"), SystemTimeInputDate);
  10350. m_GameDBAide.GetValue_SystemTime(TEXT("GetLotteryDate"), SystemTimeGetLotteryDate);
  10351. if (SystemTimeInputDate.wYear != 0)
  10352. {
  10353. CTime inputDateTime(SystemTimeInputDate);
  10354. CString strInputDate = inputDateTime.Format("%Y-%m-%d %H:%M:%S");
  10355. lstrcpyn(pLotteryHis->szInputeDate, strInputDate, CountArray(pLotteryHis->szInputeDate)); // 中奖时间
  10356. }
  10357. if (SystemTimeGetLotteryDate.wYear != 0)
  10358. {
  10359. CTime getLotteryDateTime(SystemTimeGetLotteryDate);
  10360. CString strGetLotteryDate = getLotteryDateTime.Format("%Y-%m-%d %H:%M:%S");
  10361. lstrcpyn(pLotteryHis->szGetLotteryDate, strGetLotteryDate, CountArray(pLotteryHis->szGetLotteryDate)); //领奖奖时间
  10362. }
  10363. pLotteryHis->btGetLotteryFlag = m_GameDBAide.GetValue_WORD(TEXT("GetLotteryFlag")); //领奖标志 0:未领取 1:领取
  10364. //设置位移
  10365. wPacketSize += sizeof(tagLotteryHis);
  10366. //移动记录
  10367. m_GameDBModule->MoveToNext();
  10368. }
  10369. if (wPacketSize > 0)
  10370. {
  10371. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_LOTTERY_HIS_ACK, dwContextID, cbBuffer, wPacketSize);
  10372. }
  10373. }
  10374. else
  10375. {
  10376. //变量定义
  10377. WORD wPacketSize = 0;
  10378. BYTE cbBuffer[MAX_ASYNCHRONISM_DATA] = { 0 };
  10379. m_GameDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  10380. //执行查询
  10381. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_QueryLotteryHis"), true);
  10382. //结果处理
  10383. CDBVarValue DBVarValue;
  10384. m_GameDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  10385. tagLotteryHisEx * pLotteryHis = NULL;
  10386. while (!m_GameDBModule->IsRecordsetEnd())
  10387. {
  10388. //发送信息
  10389. if ((wPacketSize + sizeof(tagLotteryHisEx)) > sizeof(cbBuffer))
  10390. {
  10391. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_LOTTERY_HIS_ACK, dwContextID, cbBuffer, wPacketSize);
  10392. wPacketSize = 0;
  10393. }
  10394. //读取信息
  10395. pLotteryHis = (tagLotteryHisEx *)(cbBuffer + wPacketSize);
  10396. pLotteryHis->dwRecordID = m_GameDBAide.GetValue_DWORD(TEXT("ID")); //记录ID
  10397. pLotteryHis->wRouletteID = m_GameDBAide.GetValue_WORD(TEXT("LotteryType")); //奖品类型
  10398. m_GameDBAide.GetValue_String(TEXT("LotteryName"), pLotteryHis->szLotteryName, CountArray(pLotteryHis->szLotteryName)); //奖品名称
  10399. SYSTEMTIME SystemTimeInputDate, SystemTimeGetLotteryDate;
  10400. memset(&SystemTimeInputDate, 0, sizeof(SystemTimeInputDate));
  10401. memset(&SystemTimeGetLotteryDate, 0, sizeof(SystemTimeGetLotteryDate));
  10402. m_GameDBAide.GetValue_SystemTime(TEXT("InputDate"), SystemTimeInputDate);
  10403. m_GameDBAide.GetValue_SystemTime(TEXT("GetLotteryDate"), SystemTimeGetLotteryDate);
  10404. if (SystemTimeInputDate.wYear != 0)
  10405. {
  10406. CTime inputDateTime(SystemTimeInputDate);
  10407. CString strInputDate = inputDateTime.Format("%Y-%m-%d %H:%M:%S");
  10408. lstrcpyn(pLotteryHis->szInputeDate, strInputDate, CountArray(pLotteryHis->szInputeDate)); // 中奖时间
  10409. }
  10410. pLotteryHis->btGetLotteryFlag = m_GameDBAide.GetValue_WORD(TEXT("GetLotteryFlag")); //领奖标志 0:未领取 1:领取 2异常未知
  10411. //设置位移
  10412. wPacketSize += sizeof(tagLotteryHisEx);
  10413. //移动记录
  10414. m_GameDBModule->MoveToNext();
  10415. }
  10416. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_LOTTERY_HIS_ACKEX, dwContextID, cbBuffer, wPacketSize);
  10417. }
  10418. double dRet = Start.End();
  10419. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  10420. {
  10421. CString csTest;
  10422. csTest.Format(_T("存储过程耗时 查询抽奖信息 GSP_GR_QueryLotteryHis ----> %.3f "), dRet);
  10423. //提示消息
  10424. CTraceService::TraceString(csTest, TraceLevel_Normal);
  10425. }
  10426. return true;
  10427. }
  10428. catch (IDataBaseException * pIException)
  10429. {
  10430. //输出错误
  10431. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  10432. double dRet = Start.End();
  10433. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  10434. {
  10435. CString csTest;
  10436. csTest.Format(_T("存储过程耗时 GSP_GR_QueryLotteryHis ----> %.3f "), dRet);
  10437. //提示消息
  10438. CTraceService::TraceString(csTest, TraceLevel_Normal);
  10439. }
  10440. }
  10441. return false;
  10442. }
  10443. //更新奖品发放标志
  10444. bool CDataBaseEngineSink::OnUpdateLotteryFlag(DWORD dwContextID, VOID * pData, WORD wDataSize)
  10445. {
  10446. CTimer Start;
  10447. try
  10448. {
  10449. DBR_GR_LotteryFlag* pLotteryFlag = (DBR_GR_LotteryFlag*)(pData);
  10450. TCHAR szDescribeString[127];
  10451. ZeroMemory(szDescribeString, 127 * sizeof(TCHAR));
  10452. //构造参数
  10453. m_GameDBAide.ResetParameter();
  10454. m_GameDBAide.AddParameter(TEXT("@dwUserID"), pLotteryFlag->dwUserID);
  10455. m_GameDBAide.AddParameter(TEXT("@wLotteryID"), pLotteryFlag->wLotteryID);
  10456. m_GameDBAide.AddParameterOutput(TEXT("@strNotifyContent"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  10457. //执行查询
  10458. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_UpdateLotteryFlag"), true);
  10459. double dRet = Start.End();
  10460. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  10461. {
  10462. CString csTest;
  10463. csTest.Format(_T("存储过程耗时 GSP_GR_UpdateLotteryFlag ----> %.3f "), dRet);
  10464. //提示消息
  10465. CTraceService::TraceString(csTest, TraceLevel_Normal);
  10466. }
  10467. return true;
  10468. }
  10469. catch (IDataBaseException * pIException)
  10470. {
  10471. //输出错误
  10472. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  10473. double dRet = Start.End();
  10474. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  10475. {
  10476. CString csTest;
  10477. csTest.Format(_T("存储过程耗时 GSP_GR_UpdateLotteryFlag ----> %.3f "), dRet);
  10478. //提示消息
  10479. CTraceService::TraceString(csTest, TraceLevel_Normal);
  10480. }
  10481. }
  10482. return false;
  10483. }
  10484. //查询福利信息
  10485. bool CDataBaseEngineSink::OnQueryWelfareInfo(DWORD dwContextID, VOID * pData, WORD wDataSize)
  10486. {
  10487. CTimer Start;
  10488. try
  10489. {
  10490. //效验参数
  10491. ASSERT(wDataSize == sizeof(DWORD));
  10492. if (wDataSize != sizeof(DWORD))
  10493. {
  10494. return false;
  10495. }
  10496. //请求处理
  10497. DWORD * pdwUserID = (DWORD *)pData;
  10498. //构造参数
  10499. m_PlatformDBAide.ResetParameter();
  10500. m_PlatformDBAide.AddParameter(TEXT("@dwUserID"), *pdwUserID);
  10501. //输出参数
  10502. TCHAR szDescribeString[128] = TEXT("");
  10503. m_PlatformDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  10504. //执行脚本
  10505. LONG lResultCode = m_PlatformDBAide.ExecuteProcess(TEXT("GSP_GP_WELFARE_INFO"), true);
  10506. //变量定义
  10507. tagWelfareInfo welfareInfArr[3];
  10508. ZeroMemory(&welfareInfArr, sizeof(welfareInfArr));
  10509. //出参
  10510. CDBVarValue DBVarValue;
  10511. m_PlatformDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  10512. //结果处理
  10513. if (lResultCode == DB_SUCCESS)
  10514. {
  10515. welfareInfArr[0].btWelfareType = m_PlatformDBAide.GetValue_BYTE(TEXT("btWelfareType_Signin"));
  10516. welfareInfArr[1].btWelfareType = m_PlatformDBAide.GetValue_BYTE(TEXT("btWelfareType_Relief"));
  10517. welfareInfArr[2].btWelfareType = m_PlatformDBAide.GetValue_BYTE(TEXT("btWelfareType_Roulette"));
  10518. welfareInfArr[0].btTakedNum = m_PlatformDBAide.GetValue_BYTE(TEXT("btTakedNum_Signin"));
  10519. welfareInfArr[1].btTakedNum = m_PlatformDBAide.GetValue_BYTE(TEXT("btTakedNum_Relief"));
  10520. welfareInfArr[2].btTakedNum = m_PlatformDBAide.GetValue_BYTE(TEXT("btTakedNum_Roulette"));
  10521. welfareInfArr[0].btTotalNum = m_PlatformDBAide.GetValue_BYTE(TEXT("btTotalNum_Signin"));
  10522. welfareInfArr[1].btTotalNum = m_PlatformDBAide.GetValue_BYTE(TEXT("btTotalNum_Relief"));
  10523. welfareInfArr[2].btTotalNum = m_PlatformDBAide.GetValue_BYTE(TEXT("btTotalNum_Roulette"));
  10524. welfareInfArr[0].btValidFlag = m_PlatformDBAide.GetValue_BYTE(TEXT("btValidFlag_Signin"));
  10525. welfareInfArr[1].btValidFlag = m_PlatformDBAide.GetValue_BYTE(TEXT("btValidFlag_Relief"));
  10526. welfareInfArr[2].btValidFlag = m_PlatformDBAide.GetValue_BYTE(TEXT("btValidFlag_Roulette"));
  10527. }
  10528. //发送结果
  10529. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_WELFARE_INFO_ACK, dwContextID, &welfareInfArr, sizeof(welfareInfArr));
  10530. double dRet = Start.End();
  10531. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  10532. {
  10533. CString csTest;
  10534. csTest.Format(_T("存储过程耗时 查询福利信息 GSP_GP_WELFARE_INFO ----> %.3f "), dRet);
  10535. //提示消息
  10536. CTraceService::TraceString(csTest, TraceLevel_Normal);
  10537. }
  10538. return true;
  10539. }
  10540. catch (IDataBaseException * pIException)
  10541. {
  10542. //输出错误
  10543. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  10544. double dRet = Start.End();
  10545. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  10546. {
  10547. CString csTest;
  10548. csTest.Format(_T("存储过程耗时 查询福利信息 GSP_GP_WELFARE_INFO ----> %.3f "), dRet);
  10549. //提示消息
  10550. CTraceService::TraceString(csTest, TraceLevel_Normal);
  10551. }
  10552. //构造结构
  10553. tagWelfareInfo welfareInfArr[3];
  10554. ZeroMemory(&welfareInfArr, sizeof(welfareInfArr));
  10555. //发送结果
  10556. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_WELFARE_INFO_ACK, dwContextID, &welfareInfArr, sizeof(welfareInfArr));
  10557. return false;
  10558. }
  10559. }
  10560. //用户获得代理解绑相关信息
  10561. bool CDataBaseEngineSink::OnRequestGetUntieAgentInfo(DWORD dwContextID, VOID * pData, WORD wDataSize)
  10562. {
  10563. CTimer Start;
  10564. try
  10565. {
  10566. //效验参数
  10567. ASSERT(wDataSize == sizeof(DWORD));
  10568. if (wDataSize != sizeof(DWORD))
  10569. {
  10570. return false;
  10571. }
  10572. //请求处理
  10573. DWORD * pdwUserID = (DWORD *)pData;
  10574. //构造参数
  10575. m_TreasureDBAide.ResetParameter();
  10576. m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), *pdwUserID);
  10577. //输出参数
  10578. TCHAR szDescribeString[128] = TEXT("");
  10579. m_TreasureDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  10580. //执行脚本
  10581. LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GP_GetUntieAgentInfo"), true);
  10582. //出参
  10583. CDBVarValue DBVarValue;
  10584. m_TreasureDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  10585. //结果处理
  10586. if (lResultCode == DB_SUCCESS)
  10587. {
  10588. DBR_GR_GetUntieAgentInfo GetUntieAgentInfo = { 0 };
  10589. GetUntieAgentInfo.cbCost = m_TreasureDBAide.GetValue_BYTE(TEXT("Cost"));
  10590. GetUntieAgentInfo.cbDays = m_TreasureDBAide.GetValue_BYTE(TEXT("OperateDay"));
  10591. GetUntieAgentInfo.dwCurrency = m_TreasureDBAide.GetValue_DWORD(TEXT("Currency"));
  10592. //发送结果
  10593. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_GET_UNTIE_AGENT_INFO_ACK, dwContextID, &GetUntieAgentInfo, sizeof(GetUntieAgentInfo));
  10594. }
  10595. double dRet = Start.End();
  10596. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  10597. {
  10598. CString csTest;
  10599. csTest.Format(_T("存储过程耗时 GSP_GP_GetUntieAgentInfo ----> %.3f "), dRet);
  10600. //提示消息
  10601. CTraceService::TraceString(csTest, TraceLevel_Normal);
  10602. }
  10603. return true;
  10604. }
  10605. catch (IDataBaseException * pIException)
  10606. {
  10607. //输出错误
  10608. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  10609. double dRet = Start.End();
  10610. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  10611. {
  10612. CString csTest;
  10613. csTest.Format(_T("存储过程耗时 GSP_GP_GetUntieAgentInfo ----> %.3f "), dRet);
  10614. //提示消息
  10615. CTraceService::TraceString(csTest, TraceLevel_Normal);
  10616. }
  10617. return false;
  10618. }
  10619. }
  10620. //用户获得解绑所需钻石数目
  10621. bool CDataBaseEngineSink::OnRequestGetUntieAgentCost(DWORD dwContextID, VOID * pData, WORD wDataSize)
  10622. {
  10623. CTimer Start;
  10624. try
  10625. {
  10626. //效验参数
  10627. ASSERT(wDataSize == sizeof(DWORD));
  10628. if (wDataSize != sizeof(DWORD))
  10629. {
  10630. return false;
  10631. }
  10632. //请求处理
  10633. DWORD * pdwUserID = (DWORD *)pData;
  10634. //构造参数
  10635. m_TreasureDBAide.ResetParameter();
  10636. m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), *pdwUserID);
  10637. //输出参数
  10638. TCHAR szDescribeString[128] = TEXT("");
  10639. m_TreasureDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  10640. //执行脚本
  10641. LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GP_GetUntieAgentInfo"), true);
  10642. //出参
  10643. CDBVarValue DBVarValue;
  10644. m_TreasureDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  10645. //结果处理
  10646. if (lResultCode == DB_SUCCESS)
  10647. {
  10648. DBR_GR_GetUntieAgentInfo GetUntieAgentInfo = { 0 };
  10649. GetUntieAgentInfo.cbCost = m_TreasureDBAide.GetValue_BYTE(TEXT("Cost"));
  10650. GetUntieAgentInfo.cbDays = m_TreasureDBAide.GetValue_BYTE(TEXT("OperateDay"));
  10651. GetUntieAgentInfo.dwCurrency = m_TreasureDBAide.GetValue_DWORD(TEXT("Currency"));
  10652. //发送结果
  10653. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_GET_ZUANSHI_INFO_ACK, dwContextID, &GetUntieAgentInfo, sizeof(GetUntieAgentInfo));
  10654. }
  10655. double dRet = Start.End();
  10656. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  10657. {
  10658. CString csTest;
  10659. csTest.Format(_T("存储过程耗时 GSP_GP_GetUntieAgentInfo ----> %.3f "), dRet);
  10660. //提示消息
  10661. CTraceService::TraceString(csTest, TraceLevel_Normal);
  10662. }
  10663. return true;
  10664. }
  10665. catch (IDataBaseException * pIException)
  10666. {
  10667. //输出错误
  10668. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  10669. double dRet = Start.End();
  10670. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  10671. {
  10672. CString csTest;
  10673. csTest.Format(_T("存储过程耗时 GSP_GP_GetUntieAgentInfo ----> %.3f "), dRet);
  10674. //提示消息
  10675. CTraceService::TraceString(csTest, TraceLevel_Normal);
  10676. }
  10677. return false;
  10678. }
  10679. }
  10680. //扫码绑定设置代理id绑定和送钻
  10681. bool CDataBaseEngineSink::OnRequestSetAgentBangDing(DWORD dwContextID, VOID * pData, WORD wDataSize)
  10682. {
  10683. CTimer Start;
  10684. try
  10685. {
  10686. //效验参数
  10687. ASSERT(wDataSize == sizeof(CMD_GR_GetDaiLiSaoMaResult));
  10688. if (wDataSize != sizeof(CMD_GR_GetDaiLiSaoMaResult))
  10689. {
  10690. return false;
  10691. }
  10692. //请求处理
  10693. CMD_GR_GetDaiLiSaoMaResult * pdwUserID = (CMD_GR_GetDaiLiSaoMaResult *)pData;
  10694. //构造参数
  10695. m_TreasureDBAide.ResetParameter();
  10696. m_TreasureDBAide.AddParameter(TEXT("@dwUserID"), pdwUserID->dwUserID);
  10697. m_TreasureDBAide.AddParameter(TEXT("@dwBingID"), pdwUserID->dwBingID);
  10698. //输出参数
  10699. TCHAR szDescribeString[128] = TEXT("");
  10700. m_TreasureDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  10701. //执行脚本
  10702. LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GR_AddBingID"), true);
  10703. //出参
  10704. CDBVarValue DBVarValue;
  10705. m_TreasureDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  10706. DWORD dwCurrency = 0;
  10707. //结果处理
  10708. if (lResultCode != DB_SUCCESS)
  10709. {
  10710. //dwCurrency = m_TreasureDBAide.GetValue_DWORD(TEXT("Currency"));
  10711. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(320))
  10712. {
  10713. CString csTest;
  10714. csTest.Format(_T("存储过程 GSP_GR_AddBingID 执行失败,参数userid=%d,bingid=%d"), pdwUserID->dwUserID, pdwUserID->dwBingID);
  10715. //提示消息
  10716. CTraceService::TraceString(csTest, TraceLevel_Warning);
  10717. }
  10718. }
  10719. else{
  10720. //变量定义
  10721. CMD_GR_UserBean UserBeans;
  10722. ZeroMemory(&UserBeans, sizeof(UserBeans));
  10723. //构造变量
  10724. UserBeans.dwCurrBeans = m_TreasureDBAide.GetValue_INT(TEXT("CurrBeans"));
  10725. ////发送数据
  10726. //SendData(pIServerUserItem, MDM_GR_USER, SUB_GR_USER_BEAN, &UserBeans, sizeof(UserBeans));
  10727. //发送结果
  10728. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_GET_SAOMA_INFO_ACK, dwContextID, &UserBeans, sizeof(UserBeans));
  10729. }
  10730. double dRet = Start.End();
  10731. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  10732. {
  10733. CString csTest;
  10734. csTest.Format(_T("存储过程耗时 GSP_GR_AddBingID ----> %.3f"), dRet);
  10735. //csTest.Format(_T("存储过程耗时 GSP_GR_AddBingID ----> %.3f,绑定代理ID:%d,送钻个数:%d "), dRet, dwCurrency);
  10736. //提示消息
  10737. CTraceService::TraceString(csTest, TraceLevel_Normal);
  10738. }
  10739. return true;
  10740. }
  10741. catch (IDataBaseException * pIException)
  10742. {
  10743. //输出错误
  10744. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  10745. double dRet = Start.End();
  10746. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  10747. {
  10748. CString csTest;
  10749. csTest.Format(_T("存储过程耗时 GSP_GR_AddBingID ----> %.3f "), dRet);
  10750. //提示消息
  10751. CTraceService::TraceString(csTest, TraceLevel_Normal);
  10752. }
  10753. CString csTest;
  10754. csTest.Format(_T("存储过程耗时异常 GSP_GR_AddBingID ----> %.3f "), dRet);
  10755. //提示消息
  10756. CTraceService::TraceString(csTest, TraceLevel_Normal);
  10757. return false;
  10758. }
  10759. }
  10760. //手动领奖
  10761. bool CDataBaseEngineSink::OnLotteryAward(DWORD dwContextID, VOID * pData, WORD wDataSize)
  10762. {
  10763. CTimer Start;
  10764. try
  10765. {
  10766. DBR_GR_LotteryAward* pLotteryAward = (DBR_GR_LotteryAward*)(pData);
  10767. //构造参数
  10768. m_GameDBAide.ResetParameter();
  10769. m_GameDBAide.AddParameter(TEXT("@dwUserID"), pLotteryAward->dwUserID);
  10770. m_GameDBAide.AddParameter(TEXT("@dwRecordID"), pLotteryAward->dwRecordID);
  10771. //执行查询
  10772. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_LotteryAward"), true);
  10773. pLotteryAward->cbCheckResult = lResultCode;
  10774. if (DB_SUCCESS == lResultCode)
  10775. {
  10776. m_GameDBAide.GetValue_String(TEXT("szAddress"), pLotteryAward->szAddress, CountArray(pLotteryAward->szAddress));
  10777. m_GameDBAide.GetValue_String(TEXT("szAddressee"), pLotteryAward->szAddressee, CountArray(pLotteryAward->szAddressee));
  10778. m_GameDBAide.GetValue_String(TEXT("szAddrPhoneNum"), pLotteryAward->szAddrPhoneNum, CountArray(pLotteryAward->szAddrPhoneNum));
  10779. }
  10780. //返回数据
  10781. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_LOTTERY_AWARD, dwContextID, pLotteryAward, sizeof(DBR_GR_LotteryAward));
  10782. double dRet = Start.End();
  10783. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  10784. {
  10785. CString csTest;
  10786. csTest.Format(_T("存储过程耗时 GSP_GR_LotteryAward ----> %.3f "), dRet);
  10787. //提示消息
  10788. CTraceService::TraceString(csTest, TraceLevel_Normal);
  10789. }
  10790. return true;
  10791. }
  10792. catch (IDataBaseException * pIException)
  10793. {
  10794. //输出错误
  10795. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  10796. }
  10797. return false;
  10798. }
  10799. //注册收件信息
  10800. bool CDataBaseEngineSink::OnLotteryAddress(DWORD dwContextID, VOID * pData, WORD wDataSize)
  10801. {
  10802. CTimer Start;
  10803. try
  10804. {
  10805. DBR_GR_LotteryAddr* pLotteryAddr = (DBR_GR_LotteryAddr*)(pData);
  10806. //构造参数
  10807. m_GameDBAide.ResetParameter();
  10808. m_GameDBAide.AddParameter(TEXT("@dwUserID"), pLotteryAddr->dwUserID);
  10809. m_GameDBAide.AddParameter(TEXT("@szAddress"), pLotteryAddr->szAddress);
  10810. m_GameDBAide.AddParameter(TEXT("@szAddressee"), pLotteryAddr->szAddressName);
  10811. m_GameDBAide.AddParameter(TEXT("@szAddrPhoneNum"), pLotteryAddr->szAddrPhoneNum);
  10812. //执行查询
  10813. LONG lResultCode = m_GameDBAide.ExecuteProcess(TEXT("GSP_GR_LotteryAddr"), true);
  10814. if (lResultCode == DB_SUCCESS)
  10815. {
  10816. BYTE bFlag = 0;
  10817. m_pIDataBaseEngineEvent->OnEventDataBaseResult(SUB_GF_LOTTERY_ADDRESS, dwContextID, &bFlag, sizeof(BYTE));
  10818. }
  10819. else
  10820. {
  10821. BYTE bFlag = 1;
  10822. m_pIDataBaseEngineEvent->OnEventDataBaseResult(SUB_GF_LOTTERY_ADDRESS, dwContextID, &bFlag, sizeof(BYTE));
  10823. }
  10824. }
  10825. catch (IDataBaseException * pIException)
  10826. {
  10827. //输出错误
  10828. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  10829. double dRet = Start.End();
  10830. if (CServiceUnits::g_pServiceUnits->m_AttemperEngineSink.IsJC(2222))
  10831. {
  10832. CString csTest;
  10833. csTest.Format(_T("存储过程耗时 GSP_GR_LotteryAddr ----> %.3f "), dRet);
  10834. //提示消息
  10835. CTraceService::TraceString(csTest, TraceLevel_Normal);
  10836. }
  10837. }
  10838. return false;
  10839. }
  10840. //洗牌动画 获取砖石数据
  10841. bool CDataBaseEngineSink::OnWlShuffleGameHandleDB(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  10842. {
  10843. CTimer Start;
  10844. try
  10845. {
  10846. //构造参数
  10847. m_TreasureDBAide.ResetParameter();
  10848. m_TreasureDBAide.AddParameter(TEXT("@SortID"), 300);//温岭洗牌消耗钻石
  10849. //执行查询
  10850. LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GP_SearchWLShuffleValue"), true);
  10851. USER_SHUFFLE_ZUANSHI sZUANSHI;
  10852. ZeroMemory(&sZUANSHI, sizeof(sZUANSHI));
  10853. sZUANSHI.dwNeedZuanshi = m_TreasureDBAide.GetValue_DWORD(TEXT("StatusValue"));
  10854. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_GET_WENLIN_SHUFFLE_ACK, dwContextID, &sZUANSHI, sizeof(sZUANSHI));
  10855. }
  10856. catch (IDataBaseException * pIException)
  10857. {
  10858. USER_SHUFFLE_ZUANSHI sZUANSHI;
  10859. ZeroMemory(&sZUANSHI, sizeof(sZUANSHI));
  10860. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_GET_WENLIN_SHUFFLE_ACK, dwContextID, &sZUANSHI, sizeof(sZUANSHI));
  10861. //输出错误
  10862. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  10863. double dRet = Start.End();
  10864. CString csTest;
  10865. csTest.Format(_T("存储过程耗时失败 GSP_GP_SearchWLShuffleValue ----> %.3f "), dRet);
  10866. //提示消息
  10867. CTraceService::TraceString(csTest, TraceLevel_Normal);
  10868. }
  10869. return false;
  10870. }
  10871. bool CDataBaseEngineSink::OnWlShuffleGameDeductHandleDB(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID)
  10872. {
  10873. CTimer Start;
  10874. try
  10875. {
  10876. DWORD* pInfo = (DWORD*)(pData); //USERid
  10877. //构造参数
  10878. TCHAR szDescribeString[127];
  10879. ZeroMemory(szDescribeString, 127 * sizeof(TCHAR));
  10880. //构造参数
  10881. m_TreasureDBAide.ResetParameter();
  10882. m_TreasureDBAide.AddParameter(TEXT("@UserID"), (*pInfo));//温岭洗牌消耗钻石
  10883. m_TreasureDBAide.AddParameterOutput(TEXT("@strErrorDescribe"), szDescribeString, sizeof(szDescribeString), adParamOutput);
  10884. //执行查询
  10885. LONG lResultCode = m_TreasureDBAide.ExecuteProcess(TEXT("GSP_GP_DeductWLShuffleZuanShi"), true);
  10886. DBR_GR_WLDeductInfo sZUANSHI;
  10887. ZeroMemory(&sZUANSHI, sizeof(sZUANSHI));
  10888. if (DB_SUCCESS != lResultCode)
  10889. {
  10890. TCHAR strErrorDescribe[127];
  10891. ZeroMemory(strErrorDescribe, 127 * sizeof(TCHAR));
  10892. //结果处理
  10893. CDBVarValue DBVarValue;
  10894. m_GameDBModule->GetParameter(TEXT("@strErrorDescribe"), DBVarValue);
  10895. _sntprintf(strErrorDescribe, 127, TEXT("GSP_GP_DeductWLShuffleZuanShi 执行失败,err:%s"), static_cast<LPCWSTR>(DBVarValue.bstrVal));
  10896. //提示消息
  10897. CTraceService::TraceString(strErrorDescribe, TraceLevel_Warning);
  10898. }
  10899. else
  10900. {
  10901. sZUANSHI.dwConsumeCurrency = m_TreasureDBAide.GetValue_DWORD(TEXT("CurCurrency"));
  10902. }
  10903. sZUANSHI.dwUserID = (DWORD)*pInfo;
  10904. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_DEDUCT_RE_ZUANSHI_INFO, dwContextID, &sZUANSHI, sizeof(sZUANSHI));
  10905. }
  10906. catch (IDataBaseException * pIException)
  10907. {
  10908. DBR_GR_WLDeductInfo sZUANSHI;
  10909. ZeroMemory(&sZUANSHI, sizeof(sZUANSHI));
  10910. m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_DEDUCT_RE_ZUANSHI_INFO, dwContextID, &sZUANSHI, sizeof(sZUANSHI));
  10911. //输出错误
  10912. CTraceService::TraceString(pIException->GetExceptionDescribe(), TraceLevel_Exception);
  10913. double dRet = Start.End();
  10914. CString csTest;
  10915. csTest.Format(_T("存储过程耗时失败 GSP_GP_DeductWLShuffleZuanShi ----> %.3f "), dRet);
  10916. //提示消息
  10917. CTraceService::TraceString(csTest, TraceLevel_Normal);
  10918. }
  10919. return false;
  10920. }