浏览代码

Merge branch 'talksec' of 121.43.114.153:/home/git/repositories/shopnc into talksec

huangdong 6 年之前
父节点
当前提交
bb30c86290
共有 8 个文件被更改,包括 148 次插入128 次删除
  1. 2 21
      helper/room/base_room.php
  2. 6 19
      helper/room/chatwo.php
  3. 43 2
      helper/room/proto_type.php
  4. 二进制
      mac_webacc
  5. 2 2
      mobile/control/game.php
  6. 94 83
      mobile/control/member_talk.php
  7. 1 1
      mobile/templates/default/game/test_shake.php
  8. 二进制
      webacc

+ 2 - 21
helper/room/base_room.php

@@ -124,7 +124,7 @@ abstract class base_room extends base_info
             return false;
         }
 
-        $type = $this->validate_type($input['type']);
+        $type = proto_type::to_msgtype($input['type']);
         $content = $this->validate_content($input['content']);
         $seq = $input['seq'];
         if(empty($seq)) $seq = "";
@@ -142,26 +142,7 @@ abstract class base_room extends base_info
             return false;
         }
     }
-    //////////////////////////////////////消息验证、返回、广播//////////////////////////////////////////////////////////////
-    protected function validate_type($type)
-    {
-        $stype = strtolower($type);
-        if($stype == proto_type::msg_stype_text) {
-            return proto_type::msg_type_text;
-        }
-        elseif($stype == proto_type::msg_stype_pic) {
-            return proto_type::msg_type_text;
-        }
-        elseif($stype == proto_type::msg_stype_audio) {
-            return proto_type::msg_type_text;
-        }
-        elseif($stype == proto_type::msg_stype_bargain) {
-            return proto_type::msg_type_bargain;
-        }
-        else {
-            return false;
-        }
-    }
+
     protected function validate_content($content)
     {
         return $content;

+ 6 - 19
helper/room/chatwo.php

@@ -36,7 +36,7 @@ class chatwo
         $tinfo = $this->find($to);
         if($tinfo == false || $tinfo == false) return false;
 
-        $type = $this->validate_type($input['type']);
+        $type = proto_type::to_msgtype($input['type']);
         $content = $this->validate_content($input['content']);
 
         if($type == false || $content == false) return false;
@@ -54,7 +54,11 @@ class chatwo
         $msg['act']  = "room";
         $msg['op']   = "relay";
         $msg['relay_type'] = "users";
-        $msg['receivers'] = [$from,$to];
+        if($from == $to) {
+            $msg['receivers'] = [$to];
+        } else {
+            $msg['receivers'] = [$from,$to];
+        }
         $msg['room'] = 0;
         $msg['receiver_type'] = proto_type::sroom_chatwo;
 
@@ -88,23 +92,6 @@ class chatwo
         }
     }
 
-    //////////////////////////////////////消息验证、返回、广播//////////////////////////////////////////////////////////////
-    protected function validate_type($type)
-    {
-        $stype = strtolower($type);
-        if($stype == proto_type::msg_stype_text) {
-            return proto_type::msg_type_text;
-        }
-        elseif($stype == proto_type::msg_stype_pic) {
-            return proto_type::msg_type_text;
-        }
-        elseif($stype == proto_type::msg_stype_bargain) {
-            return proto_type::msg_type_bargain;
-        }
-        else {
-            return false;
-        }
-    }
     protected function validate_content($content)
     {
         return $content;

+ 43 - 2
helper/room/proto_type.php

@@ -59,11 +59,52 @@ class proto_type
     const msg_stype_bargain = 'bargain';
 
     //[1,20) 基本的消息
-    const msg_type_text = 1;
-    const msg_type_pic  = 2;
+    const msg_type_text  = 1;
+    const msg_type_pic   = 2;
+    const msg_type_audio = 3;
 
     //[20...) 其它自定义类型消息
     const msg_type_bargain = 20;
+
+
+    static public function to_msgtype($type)
+    {
+        $stype = strtolower($type);
+        if($stype == proto_type::msg_stype_text) {
+            return proto_type::msg_type_text;
+        }
+        elseif($stype == proto_type::msg_stype_pic) {
+            return proto_type::msg_type_pic;
+        }
+        elseif($stype == proto_type::msg_stype_audio) {
+            return proto_type::msg_type_audio;
+        }
+        elseif($stype == proto_type::msg_stype_bargain) {
+            return proto_type::msg_type_bargain;
+        }
+        else {
+            return false;
+        }
+    }
+
+    static public function from_msgtype($type)
+    {
+        if($type == proto_type::msg_type_text) {
+            return proto_type::msg_stype_text;
+        }
+        elseif($type == proto_type::msg_type_pic) {
+            return proto_type::msg_stype_pic;
+        }
+        elseif($type == proto_type::msg_type_audio) {
+            return proto_type::msg_stype_audio;
+        }
+        elseif($type == proto_type::msg_type_bargain) {
+            return proto_type::msg_stype_bargain;
+        }
+        else {
+            return false;
+        }
+    }
 }
 
 class base_info

二进制
mac_webacc


+ 2 - 2
mobile/control/game.php

@@ -50,8 +50,8 @@ class gameControl extends mbMemberControl
         $result = [];
         if($ret != false) {
             $result['addr'] = $webaddr;
-//            $result['token'] = room\author::sign_web($room_id,session_helper::memberid());
-            $result['token'] = room\author::sign_native(session_helper::memberid());
+            $result['token'] = room\author::sign_web($room_id,session_helper::memberid());
+//            $result['token'] = room\author::sign_native(session_helper::memberid());
             $result['room'] = intval($room_id);
             $result['user'] = session_helper::memberid();
         }

+ 94 - 83
mobile/control/member_talk.php

@@ -198,6 +198,9 @@ class member_talkControl extends mbMemberControl
         $result = [];
         foreach ($msgs as $msg)
         {
+            $msgtype = proto_type::from_msgtype(intval($msg['type']));
+            if($msgtype == false) continue;
+
             $val = [];
             $val["act"] = $type;
             $val["op"] = "message";
@@ -214,10 +217,8 @@ class member_talkControl extends mbMemberControl
                 $from = [];
             }
 
+            $val['content'] = ['msgid' => intval($msg['msg_id']), 'from' => $from,'type' => $msgtype,'content' => $msg['msg'],'send_time' => intval($msg['add_time'])];
 
-            $content = ['msgid' => intval($msg['msg_id']), 'from' => $from,'type' => proto_type::$msg['type'],'content' => $msg['msg'],'send_time' => intval($msg['add_time'])];
-
-            $val['content'] = $content;
             $result[] = $val;
         }
 
@@ -291,111 +292,59 @@ class member_talkControl extends mbMemberControl
         }
     }
 
-
-
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-    public function friend_detailOp()
+    public function talksOp()
     {
-        $userid = intval($_GET['userid']);
-        if(!isset($userid) || empty($userid)){
-            return self::outerr("参数有误");
-        }
-
-        $member = new member_info($userid);
-        $info   = $member->filter();
+        $user = session_helper::memberid();
+        $post = $this->init_talk($_POST['post_data']);
+        $chats = $this->talk_chatwos($user,$post['local_chats']);
+        $rooms = $this->talk_rooms($user,$post['local_rooms']);
 
-        return self::outsuccess($info);
+        return self::outsuccess(["rooms"=>$rooms,"chats"=>$chats]);
     }
 
-    public function add_friendsOp()
+    private function init_talk($json)
     {
-        $userid = intval($_GET['userid']);
-        try
-        {
-            if(relation_helper::is_follow(session_helper::memberid(),$userid))
-            {
-                return self::outsuccess(NULL);
-            }
-            else
-            {
-                if(relation_helper::onSubscribe(session_helper::memberid(),$userid) == true) {
-                    return self::outsuccess(NULL);
-                } else{
-                    return self::outerr(errcode::ErrRelation,"添加好友失败");
-                }
-            }
+        if(empty(trim($json))) {
+            return ["rooms" => [],"chatwos" => []];
         }
-        catch (Exception $ex) {
-            return self::outerr(errcode::ErrRelation,"添加好友失败");
-        }
-    }
 
-    public function del_fiendsOp()
-    {
-        $userid = intval($_GET['userid']);
-        try
+        $input = json_decode($json);
+        if($input == false) return ["rooms" => [],"chatwos" => []];
+
+        $rooms = [];
+        $chats = [];
+        foreach ($input as $item)
         {
-            if(relation_helper::is_follow(session_helper::memberid(),$userid))
+            $msgid = intval($item['msg_id']);
+            if($msgid < 0) $msgid = self::max_msgid;
+
+            if($item['type'] == 'room')
             {
+                $room = intval($item['room']);
+                if($room <= 0) continue;
 
-                if(relation_helper::onUnSubscribe(session_helper::memberid(),$userid) == true) {
-                    return self::outsuccess(NULL);
-                } else{
-                    return self::outerr(errcode::ErrRelation,"取消好友关注失败");
-                }
+                $rooms[$room] = $msgid;
             }
-            else
+            elseif($item['type'] == 'chatwo')
             {
+                $user = intval($item['user']);
+                if($user <= 0) continue;
 
+                $rooms[$user] = $msgid;
             }
-        } catch (Exception $ex) {
-            return self::outerr(errcode::ErrRelation,"取消好友关注失败");
-        }
-    }
-
-    public function talksOp()
-    {
-        $user = session_helper::memberid();
-        $post = $this->init_talk($_POST['post_data']);
-
-        $chats = $this->talk_chatwos($user,$post['local_chats']);
-        $rooms = $this->talk_rooms($user,$post['local_rooms']);
-
-        return self::outsuccess(["rooms"=>$rooms,"chats"=>$chats]);
-    }
-
-    private function init_talk($post){
-        $local_rooms = [];
-        $local_chats = [];
-
-        if(empty(trim($post))){
-            return ["local_rooms"=>$local_rooms,"local_chats"=>$local_chats];
-        }
+            else {
 
-        $json = json_decode($post);
-        if(!empty($json))
-        {
-            foreach ($json as $v)
-            {
-                if($v['type'] == 'room'){
-                    $local_rooms[$v['room']] = $v['msg_id'];
-                }elseif($v['type'] == 'chat'){
-                    $local_chats[$v['user']] = $v['msg_id'];
-                }else{
-                    continue;
-                }
             }
         }
 
-        return ["local_rooms"=>$local_rooms,"local_chats"=>$local_chats];
+        return ["rooms"=>$rooms,"chatwos"=>$chats];
     }
 
     private function talk_rooms($user,$local_last)
     {
         $mod_room = Model('room');
-
         $items = $mod_room->getLastRoomMsg($user);
-
         $ret = $this->talk_format($items,'room',$user,$local_last);
 
         return $ret;
@@ -465,6 +414,68 @@ class member_talkControl extends mbMemberControl
         return $items;
     }
 
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+    public function friend_detailOp()
+    {
+        $userid = intval($_GET['userid']);
+        if(!isset($userid) || empty($userid)){
+            return self::outerr("参数有误");
+        }
+
+        $member = new member_info($userid);
+        $info   = $member->filter();
+
+        return self::outsuccess($info);
+    }
+
+    public function add_friendsOp()
+    {
+        $userid = intval($_GET['userid']);
+        try
+        {
+            if(relation_helper::is_follow(session_helper::memberid(),$userid))
+            {
+                return self::outsuccess(NULL);
+            }
+            else
+            {
+                if(relation_helper::onSubscribe(session_helper::memberid(),$userid) == true) {
+                    return self::outsuccess(NULL);
+                } else{
+                    return self::outerr(errcode::ErrRelation,"添加好友失败");
+                }
+            }
+        }
+        catch (Exception $ex) {
+            return self::outerr(errcode::ErrRelation,"添加好友失败");
+        }
+    }
+
+    public function del_fiendsOp()
+    {
+        $userid = intval($_GET['userid']);
+        try
+        {
+            if(relation_helper::is_follow(session_helper::memberid(),$userid))
+            {
+
+                if(relation_helper::onUnSubscribe(session_helper::memberid(),$userid) == true) {
+                    return self::outsuccess(NULL);
+                } else{
+                    return self::outerr(errcode::ErrRelation,"取消好友关注失败");
+                }
+            }
+            else
+            {
+
+            }
+        } catch (Exception $ex) {
+            return self::outerr(errcode::ErrRelation,"取消好友关注失败");
+        }
+    }
+
+
+
     private function talk_avatar($talks,$type,$user){
         $pics = [];
         if($type == 'room'){

+ 1 - 1
mobile/templates/default/game/test_shake.php

@@ -113,7 +113,7 @@
             return;
         }
 
-        for (var i = 0; i < 1000; i++)
+        for (var i = 0; i < 100000; i++)
         {
             var msg = {
                 act: 'room',

二进制
webacc