cyzhao преди 11 месеца
родител
ревизия
fbbe67e2c6
променени са 1 файла, в които са добавени 43 реда и са изтрити 1 реда
  1. 43 1
      Gameserver/App/process/UserProc.php

+ 43 - 1
Gameserver/App/process/UserProc.php

@@ -42,7 +42,19 @@ class UserProc {
      * @return type
      */
     public static function delUserUid() {
-        TestServer::deleteUserUId(req()->uid, req()->zoneid);
+        $mem = gMem();
+        $list = self::GetUserDataKeys(req()->uid, req()->zoneid);                           # 玩家数据key
+        foreach ($list as $key) {
+            if ($mem->exists($key)) {
+                $mem->delete($key);
+            }
+        }
+
+        // <editor-fold defaultstate="collapsed" desc="清理mongodb中的数据">
+        self::deleteUserMapData(req()->uid, req()->zoneid);
+
+        // </editor-fold>                   
+        
         FightProc::DeleteRankInvalidUser(req()->uid);
         self::delRegRole(req()->zoneid, req()->uid, ctx()->baseInfo->name);
 
@@ -50,7 +62,37 @@ class UserProc {
         $ret = array();
         return Resp::ok($ret);
     }
+    
+    private static function GetUserDataKeys($uid, $zoneid) {
+        $list = array();
+        $zoneKey = MemKey_User::Union_PlayedZoneInfo_normal($uid);              # 分区信息
+        $list[] = $zoneKey;
+        $publicKey = MemKey_User::Union_PublicState_hash($uid);                 # 公共信息
+        $list[] = $publicKey;
+        $gameInfoKey = MemKey_User::Info_hash($zoneid, $uid);                   # 游戏数据主体
+        $list[] = $gameInfoKey;
+
+        $CurIdKey = MemKey_User::Mail_CurId_int($zoneid, $uid);                 # 当前邮件编号
+        $list[] = $CurIdKey;
+        $SysRecordKey = MemKey_User::Mail_SysRecord_set($zoneid, $uid);         # 当前已经领取过的系统邮件记录
+        $list[] = $SysRecordKey;
+        $QueueKey = MemKey_User::Mail_Queue_hash($zoneid, $uid);                # 邮件列表
+        $list[] = $QueueKey;
+        return $list;
+    }
 
+    /**
+     * 删除账号-区别内外网
+     * @param type $uid
+     * @param type $type
+     */
+    static public function deleteUserMapData($uid, $zoneid) {
+        gMongo()->delete("playerMapInfo", array('Uid' => $uid, 'ZoneId' => intval($zoneid))); # 地图
+        gMongo()->delete("PlayerInfo", array('Uid' => $uid, 'ZoneId' => intval($zoneid)));       
+        gMongo()->delete("userInfoBack", array('key' => MemKey_User::Info_hash($zoneid, $uid)));
+        
+    }
+    
     /**
      * 6005 替换头像
      * @return type