诸暨麻将添加redis
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

375 lines
16 KiB

  1. #ifndef DATABASE_ENGINE_SINK_HEAD_FILE
  2. #define DATABASE_ENGINE_SINK_HEAD_FILE
  3. #pragma once
  4. #include "Stdafx.h"
  5. #include "InitParameter.h"
  6. #include "DataBasePacket.h"
  7. //////////////////////////////////////////////////////////////////////////////////
  8. //数据库类
  9. class CDataBaseEngineSink : public IDataBaseEngineSink, public IGameDataBaseEngine
  10. {
  11. //友元定义
  12. friend class CServiceUnits;
  13. //辅助变量
  14. protected:
  15. DBO_GR_LogonFailure m_LogonFailure; //登录失败
  16. DBO_GR_LogonSuccess m_LogonSuccess; //登录成功
  17. //游戏数据库
  18. protected:
  19. CDataBaseAide m_GameDBAide; //游戏数据
  20. CDataBaseHelper m_GameDBModule; //游戏数据
  21. //游戏币数据库
  22. protected:
  23. CDataBaseAide m_TreasureDBAide; //游戏币数据库
  24. CDataBaseHelper m_TreasureDBModule; //游戏币数据库
  25. //平台数据库
  26. protected:
  27. CDataBaseAide m_PlatformDBAide; //平台数据库
  28. CDataBaseHelper m_PlatformDBModule; //平台数据库
  29. //配置变量
  30. protected:
  31. CInitParameter * m_pInitParameter; //配置参数
  32. tagGameParameter * m_pGameParameter; //配置参数
  33. tagDataBaseParameter * m_pDataBaseParameter; //连接信息
  34. tagGameServiceAttrib * m_pGameServiceAttrib; //服务属性
  35. tagGameServiceOption * m_pGameServiceOption; //服务配置
  36. //组件变量
  37. protected:
  38. IDataBaseEngine * m_pIDataBaseEngine; //引擎接口
  39. IGameServiceManager * m_pIGameServiceManager; //服务管理
  40. IDataBaseEngineEvent * m_pIDataBaseEngineEvent; //数据事件
  41. //查询接口
  42. protected:
  43. IGameDataBaseEngineSink * m_pIGameDataBaseEngineSink; //数据接口
  44. //组件变量
  45. public:
  46. IDBCorrespondManager * m_pIDBCorrespondManager; //数据协调
  47. CMap<DWORD, DWORD, DWORD, DWORD> m_JiShu; //数据库失败重连的次数
  48. //函数定义
  49. public:
  50. //构造函数
  51. CDataBaseEngineSink();
  52. //析构函数
  53. virtual ~CDataBaseEngineSink();
  54. //基础接口
  55. public:
  56. //释放对象
  57. virtual VOID Release() { return; }
  58. //接口查询
  59. virtual VOID * QueryInterface(REFGUID Guid, DWORD dwQueryVer);
  60. //配置参数
  61. public:
  62. //自定配置
  63. virtual VOID * GetCustomRule() { return m_pGameServiceOption->cbCustomRule; };
  64. //服务属性
  65. virtual tagGameServiceAttrib * GetGameServiceAttrib() { return m_pGameServiceAttrib; }
  66. //服务配置
  67. virtual tagGameServiceOption * GetGameServiceOption() { return m_pGameServiceOption; }
  68. //获取对象
  69. public:
  70. //获取对象
  71. virtual VOID * GetDataBase(REFGUID Guid, DWORD dwQueryVer);
  72. //获取对象
  73. virtual VOID * GetDataBaseEngine(REFGUID Guid, DWORD dwQueryVer);
  74. //功能接口
  75. public:
  76. //投递结果
  77. virtual bool PostGameDataBaseResult(WORD wRequestID, VOID * pData, WORD wDataSize);
  78. IDataBaseEngineEvent* GetDataBaseEngineEvent(){ return m_pIDataBaseEngineEvent; }
  79. //系统事件
  80. public:
  81. //启动事件
  82. virtual bool OnDataBaseEngineStart(IUnknownEx * pIUnknownEx);
  83. //停止事件
  84. virtual bool OnDataBaseEngineConclude(IUnknownEx * pIUnknownEx);
  85. //内核事件
  86. public:
  87. //时间事件
  88. virtual bool OnDataBaseEngineTimer(DWORD dwTimerID, WPARAM dwBindParameter);
  89. //控制事件
  90. virtual bool OnDataBaseEngineControl(WORD wControlID, VOID * pData, WORD wDataSize);
  91. //请求事件
  92. virtual bool OnDataBaseEngineRequest(WORD wRequestID, DWORD dwContextID, VOID * pData, WORD wDataSize);
  93. //登录函数
  94. protected:
  95. //查询元宝
  96. bool OnRequestGetBean(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  97. //实名认证
  98. bool onRequestCheckName(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  99. //实名认证查询
  100. bool onRequestCheckNameQuery(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  101. //手机重复绑定查询
  102. bool onRequestGetVerifCode(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  103. //手机绑定查询
  104. bool onRequestCheckIphoneQuery(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  105. //手机绑定
  106. bool onRequestCheckIphone(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  107. //闲聊绑定
  108. bool onRequestCheckXianLiao(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  109. //手机验证码落地
  110. //bool onRequestCheckVerifCode(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  111. //I D 登录
  112. bool OnRequestLogonMobile(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  113. //分享奖励钻石
  114. bool OnRequestShareAwardBean(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  115. //分享通知
  116. bool OnShareMessage(VOID * pData, WORD wDataSize, DWORD dwUserID);
  117. //查询用户分享的信息
  118. bool OnRequestShareInfo(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  119. //系统处理
  120. protected:
  121. // 更新服务器通道状态
  122. bool OnRequestOnLineService(DWORD dwContextID, VOID * pData, WORD wDataSize);
  123. //记录每日临时分变化
  124. bool OnRequestWriteGameTempScoreRecord(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  125. //获取每日临时分排行榜
  126. bool OnRequestGetGameTempScoreRecordRankList(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  127. //游戏写分
  128. bool OnRequestWriteGameScore(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  129. //离开房间
  130. bool OnRequestLeaveGameServer(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  131. //游戏记录
  132. bool OnRequestGameScoreRecord(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  133. //获取游戏记录简略信息列表
  134. bool OnRequestGetUserGameScoreRecords(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  135. //获取游戏回放记录
  136. bool OnRequestGetUserGameReplayRecord(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  137. //加载参数
  138. bool OnRequestLoadParameter(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  139. //加载列表
  140. //bool OnRequestLoadGameColumn(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  141. //加载机器
  142. //bool OnRequestLoadAndroidUser(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  143. //加载机器
  144. //bool OnRequestLoadAndroidParameter(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  145. //加载道具
  146. //bool OnRequestLoadGameProperty(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  147. ////礼物请求
  148. ////bool OnRequestPropertyRequest(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  149. ////用户权限
  150. //bool OnRequestManageUserRight(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  151. ////比赛权限
  152. //bool OnRequestManageMatchRight(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  153. //系统消息
  154. //bool OnRequestLoadSystemMessage(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  155. //加载敏感词
  156. //bool OnRequestLoadSensitiveWords(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  157. ////比赛报名
  158. //bool OnRequestMatchSignup(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  159. ////退出比赛
  160. //bool OnRequestMatchUnSignup(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  161. ////比赛开始
  162. //bool OnRequestMatchStart(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  163. ////比赛结束
  164. //bool OnRequestMatchOver(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  165. ////比赛奖励
  166. //bool OnRequestMatchReward(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  167. ////比赛淘汰
  168. //bool OnRequestMatchEliminate(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  169. //银行服务
  170. protected:
  171. //直接扣除元宝
  172. bool OnRequestUserCheckBeans(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  173. //扣除元宝
  174. bool OnRequestUserReduceBeans(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  175. //冻结元宝
  176. bool OnRequestUserLockBeans(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  177. //解冻元宝
  178. bool OnRequestUserUnLockBeans(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  179. ////开通银行
  180. //bool OnRequestUserEnableInsure(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  181. ////存入游戏币
  182. //bool OnRequestUserSaveScore(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  183. ////提取游戏币
  184. //bool OnRequestUserTakeScore(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  185. ////转帐游戏币
  186. //bool OnRequestUserTransferScore(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  187. ////查询银行
  188. //bool OnRequestQueryInsureInfo(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  189. ////查询用户
  190. //bool OnRequestQueryTransferUserInfo(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  191. //任务服务
  192. protected:
  193. //领取任务
  194. //bool OnRequestTaskTake(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  195. //领取奖励
  196. //bool OnRequestTaskReward(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  197. //加载任务
  198. //bool OnRequestLoadTaskList(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  199. //查询任务
  200. //bool OnRequestTaskQueryInfo(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  201. //兑换服务
  202. protected:
  203. //会员参数
  204. //bool OnRequestLoadMemberParameter(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  205. //购买会员
  206. //bool OnRequestPurchaseMember(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  207. //兑换游戏币
  208. //bool OnRequestExchangeScore(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  209. //兑换配置列表
  210. //bool OnRequestExchangeConfigs(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  211. //俱乐部服务
  212. protected:
  213. //列表
  214. bool OnRequestGetClubList(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  215. //会员
  216. bool OnRequestGetClubUser(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  217. //会员
  218. bool OnRequestGetClubUserEx(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  219. //会员
  220. bool OnRequestGetClubUserOnline(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  221. //通知
  222. bool OnRequestGetClubMessage(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  223. //记录
  224. bool OnRequestGetClubRecord(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  225. //记录额外新版加的
  226. bool OnRequestGetClubRecordEX(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  227. //分享战绩到闲聊
  228. bool OnRequestFenXiangClubRecord(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  229. //记录
  230. bool OnRequestWriteClubRecord(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  231. //创建
  232. bool OnRequestCreateClub(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  233. //修改
  234. bool OnRequestUpdateClub(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  235. //删除
  236. bool OnRequestDeleteClub(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  237. //查看
  238. bool OnRequestGetClub(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  239. //加入
  240. bool OnRequestJoinClub(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  241. //退出
  242. bool OnRequestQuitClub(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  243. //同意加入
  244. bool OnRequestAgreeClub(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  245. //在线信息
  246. //bool OnRequestGetClubOnLine(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  247. //在线信息
  248. bool OnRequestGetClubOnLineEx(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  249. //会员黑名单
  250. bool OnRequestGetClubBlackUser(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  251. //查询协议
  252. bool OnRequestGetClubProtocol(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  253. //同意协议
  254. bool OnRequestGetClubProtocolAgree(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  255. //查询群主信息
  256. bool OnRequestGetClubHostInfo(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  257. //公告
  258. bool OnRequestGetClubNotice(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  259. //广播
  260. bool OnRequestNotifyAlluser(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  261. //群主解散俱乐部房间
  262. bool OnRequestClubDissolveRoom(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  263. //俱乐部获取战绩数据
  264. bool OnRequestGetClubExploits(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  265. //俱乐部获取对局数据
  266. bool OnRequestGetClubPlaygames(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  267. //俱乐部获取积分数据
  268. bool OnRequestGetClubIntegral(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  269. //俱乐部打样
  270. bool OnRequestGetClubSample(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  271. //辅助函数
  272. private:
  273. ////替换昵称
  274. void Fstring(TCHAR* pCheck);
  275. // //解锁机器
  276. //// bool UnLockAndroidUser();
  277. //登录结果
  278. VOID OnLogonDisposeResult(DWORD dwContextID, DWORD dwErrorCode, LPCTSTR pszErrorString, bool bMobileClient, BYTE cbDeviceType = DEVICE_TYPE_PC, WORD wBehaviorFlags = 0, WORD wPageTableCount = 0);
  279. //银行结果
  280. //VOID OnInsureDisposeResult(DWORD dwContextID, DWORD dwErrorCode, SCORE lFrozenedScore, LPCTSTR pszErrorString, bool bMobileClient, BYTE cbActivityGame = FALSE);
  281. ///---胜局榜
  282. //bool OnRequestTopWinList(DWORD dwContextID, VOID * pData, WORD wDataSize);
  283. ///---查询破产信息
  284. //bool OnRequestReliefInfo(DWORD dwContextID, VOID * pData, WORD wDataSize);
  285. ///---领取破产
  286. //bool OnRequestGetRelief(DWORD dwContextID, VOID * pData, WORD wDataSize);
  287. ///+++加载奖励
  288. bool OnRequestCheckInReward(DWORD dwContextID, VOID * pData, WORD wDataSize);
  289. //查询签到
  290. bool OnRequestCheckInQueryInfo(DWORD dwContextID, VOID * pData, WORD wDataSize);
  291. //执行签到
  292. bool OnRequestCheckInDone(DWORD dwContextID, VOID * pData, WORD wDataSize);
  293. //转盘奖品配置列表
  294. bool OnRequestRouletteConfig(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  295. //转盘奖品配置列表(新版)
  296. bool OnRequestRouletteConfig_new(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  297. //记录轮盘抽奖
  298. bool OnRecordRouletteLottery(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  299. //查询抽奖信息
  300. bool OnQueryLotteryInfo(DWORD dwContextID, VOID * pData, WORD wDataSize);
  301. //查询抽奖历史
  302. bool OnQueryLotteryHis(DWORD dwContextID, VOID * pData, WORD wDataSize);
  303. //
  304. //查询抽奖历史-额外兼容
  305. bool OnQueryLotteryHisEx(DWORD dwContextID, VOID * pData, WORD wDataSize);
  306. //查询福利信息
  307. bool OnQueryWelfareInfo(DWORD dwContextID, VOID * pData, WORD wDataSize);
  308. //用户获得代理解绑相关信息
  309. bool OnRequestGetUntieAgentInfo(DWORD dwContextID, VOID * pData, WORD wDataSize);
  310. //用户获得解绑所需钻石数目
  311. bool OnRequestGetUntieAgentCost(DWORD dwContextID, VOID * pData, WORD wDataSize);
  312. //更新奖品发放标志
  313. bool OnUpdateLotteryFlag(DWORD dwContextID, VOID * pData, WORD wDataSize);
  314. //手动领奖
  315. bool OnLotteryAward(DWORD dwContextID, VOID * pData, WORD wDataSize);
  316. //注册收件信息
  317. bool OnLotteryAddress(DWORD dwContextID, VOID * pData, WORD wDataSize);
  318. //扫码绑定设置代理id绑定和送钻
  319. bool OnRequestSetAgentBangDing(DWORD dwContextID, VOID * pData, WORD wDataSize);
  320. //额外玩法增加
  321. bool OnHandleCStringToConfig(tagTableConfig & ClubInfo, CString Config);
  322. void OnHandleConfigToCString(CString & gameConfig, const tagTableConfig ClubInfo);
  323. bool OnRequestUpdateAddClub(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  324. bool OnRequestGetAddClub(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  325. bool OnWlShuffleGameHandleDB(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  326. bool OnWlShuffleGameDeductHandleDB(DWORD dwContextID, VOID * pData, WORD wDataSize, DWORD &dwUserID);
  327. };
  328. //////////////////////////////////////////////////////////////////////////////////
  329. #endif