TestServer.php 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. <?php
  2. namespace loyalsoft;
  3. include_once __DIR__ . '/AppServer.php';
  4. require_once __DIR__ . '/../process/ActiveProc/CipheredBase32.php'; # 算法库
  5. /**
  6. * Description of TestServer
  7. * UT 测试
  8. * 约定: 底划线开头的函数为私有函数,不会在黑窗界面出现.
  9. */
  10. class TestServer {
  11. /**
  12. * 入口函数专用测试
  13. * @param type $req
  14. */
  15. static public function testApi($req) {
  16. DebugHelper::debug($req);
  17. $app = new AppServer();
  18. new Req($req);
  19. $ret = $app->api();
  20. DebugHelper::debug($ret);
  21. }
  22. /**
  23. * 运行环境自检:
  24. * PHP 版本,扩展模块
  25. * redis操作性
  26. * sqldb操作性
  27. */
  28. static function selfTest() {
  29. echoLine("phpver: " . PHP_VERSION . PHP_EOL); # 打印下PHP版本
  30. SelfChecker::CheckConfig(); # 进行配置环境检测
  31. }
  32. //----------------------------------------------------
  33. static public function testRedisLua($key, $value) {
  34. $mem = gMem();
  35. $script = <<<SCR
  36. if redis.call("get",KEYS[1]) == ARGV[1]
  37. then
  38. return redis.call("del",KEYS[1])
  39. else
  40. return 0
  41. end
  42. SCR;
  43. DebugHelper:: var_dump($script);
  44. $ret = $mem->redis->eval($script, 1, $key, $value);
  45. DebugHelper:: var_dump($ret);
  46. $mem->close();
  47. }
  48. static public function testBinSearch($v) {
  49. $arr = array(1, 2, 3, 4, 4, 11, 12, 124);
  50. $start = 0;
  51. $end = count($arr) - 1;
  52. while ($start <= $end) {
  53. $index = intval(($start + $end) / 2);
  54. if ($v < $arr[$index]) {
  55. $end = $index - 1;
  56. } elseif ($v > $arr[$index]) {
  57. $start = $index + 1;
  58. } else {
  59. echo($index);
  60. return;
  61. }
  62. }
  63. echo($index);
  64. }
  65. /**
  66. * 给玩家发邮件
  67. * @param type $uid
  68. * @param type $zoneid
  69. * @param type $items
  70. * @param type $ctx
  71. */
  72. public static function sendUserEmail($uid, $zoneid, $title, $reward, $ctx) {
  73. $mail = new Ins_Email(null, 1, $title, #
  74. $ctx, $reward);
  75. $list = explode(',', $uid);
  76. if (count($list) != 0) {
  77. foreach ($list as $userId) {
  78. EmailProc::InsertMail($zoneid, $userId, $mail);
  79. }
  80. }
  81. echo '邮件已经成功发送';
  82. }
  83. /**
  84. * 删除账号-区别内外网
  85. * @param type $uid
  86. * @param type $type
  87. */
  88. static public function deleteUserUId($uid, $zoneid) {
  89. $mem = gMem();
  90. $list = array();
  91. $zoneKey = MemKey_User::Union_PlayedZoneInfo_normal($uid);
  92. $list[] = $zoneKey;
  93. $publicKey = MemKey_User::Union_PublicState_hash($uid);
  94. $list[] = $publicKey;
  95. $gameInfoKey = MemKey_User::Info_hash($zoneid, $uid);
  96. $list[] = $gameInfoKey;
  97. $interactKey = MemKey_User::Interact($zoneid, $uid);
  98. $list[] = $interactKey;
  99. $OffensiveLogKey = MemKey_User::OffensiveLog_zset($zoneid, $uid);
  100. $list[] = $OffensiveLogKey;
  101. $DefensiveLogKey = MemKey_User::DefensiveLog_zset($zoneid, $uid);
  102. $list[] = $DefensiveLogKey;
  103. $PVP_OffensiveLogKey = MemKey_User::PVP_OffensiveLog_zset($zoneid, $uid);
  104. $list[] = $PVP_OffensiveLogKey;
  105. $PVP_DefensiveLogKey = MemKey_User::PVP_DefensiveLog_zset($zoneid, $uid);
  106. $list[] = $PVP_DefensiveLogKey;
  107. $SigKey = MemKey_User::Sig($zoneid, $uid);
  108. $list[] = $SigKey;
  109. $CurIdKey = MemKey_User::Mail_CurId_int($zoneid, $uid);
  110. $list[] = $CurIdKey;
  111. $SysRecordKey = MemKey_User::Mail_SysRecord_set($zoneid, $uid);
  112. $list[] = $SysRecordKey;
  113. $QueueKey = MemKey_User::Mail_Queue_hash($zoneid, $uid);
  114. $list[] = $QueueKey;
  115. foreach ($list as $key) {
  116. if ($mem->exists($key)) {
  117. $mem->delete($key);
  118. }
  119. }
  120. // <editor-fold defaultstate="collapsed" desc="清理mongodb中的数据">
  121. gMongo()->delete("playerMapInfo", array('Uid' => $uid, 'ZoneId' => $zoneid)); # 地图
  122. gMongo()->delete("userInfoBack", array('key' => $gameInfoKey)); # 游戏数据备份
  123. // </editor-fold>
  124. /*
  125. if($type=='true'){//默认外网
  126. $userUid = "u-".$uid."-".$zoneid."-g";
  127. //u-EA74E58DCEB076ACC2D824684499CDA2-1-m-ci
  128. //u-EA74E58DCEB076ACC2D824684499CDA2-1-m-q
  129. //u-EA74E58DCEB076ACC2D824684499CDA2-1-m-s
  130. //u-EA74E58DCEB076ACC2D824684499CDA2-1-s-cp
  131. $userUidCi = "u-".$uid."-".$zoneid."-m-ci";
  132. $userUidQ = "u-".$uid."-".$zoneid."-m-q";
  133. $userUidS = "u-".$uid."-".$zoneid."-m-s";
  134. $userUidCp = "u-".$uid."-".$zoneid."-s-cp";
  135. if($mem->exists($userUidCp)){
  136. $mem->delete($userUidCp);
  137. }
  138. } else {
  139. $userUid = "user-".$uid."-zone".$zoneid."-gameinfo";
  140. $userUidCi = "user-".$uid."-zone".$zoneid."-mail-curid";
  141. $userUidQ = "user-".$uid."-zone".$zoneid."-mail-queue";
  142. $userUidS = "user-".$uid."-zone".$zoneid."-mail-sysrecord";
  143. $userUidGuild = "user-".$uid."-zone".$zoneid."-guild";
  144. if($mem->exists($userUidGuild)){
  145. $mem->delete($userUidGuild);
  146. }
  147. }
  148. if($mem->exists($userUid)){
  149. $mem->delete($userUid);
  150. }
  151. if($mem->exists($userUidCi)){
  152. $mem->delete($userUidCi);
  153. }
  154. if($mem->exists($userUidQ)){
  155. $mem->delete($userUidQ);
  156. }
  157. if($mem->exists($userUidS)){
  158. $mem->delete($userUidS);
  159. }
  160. */
  161. echo '删除账号成功';
  162. }
  163. }