Browse Source

change_owner

huangdong 6 years ago
parent
commit
3621022533

+ 7 - 0
data/model/room.model.php

@@ -40,6 +40,13 @@ class roomModel extends Model
         $ret = $this->table('room_participant')->where(['room_id' => $room_id,'member_id' => $user])->update(['member_nick' => $member_nick]);
         $ret = $this->table('room_participant')->where(['room_id' => $room_id,'member_id' => $user])->update(['member_nick' => $member_nick]);
         return $ret;
         return $ret;
     }
     }
+    public function editRoomOwner($room_id,$user,$type){
+        $ret = $this->table('room_participant')->where(['room_id' => $room_id,'member_id' => $user])->update(["type"=>$type]);
+        return $ret;
+    }
+
+
+
     ///群聊接口//////////////////////////////////////////////////////////////////////////////////////////////////////////
     ///群聊接口//////////////////////////////////////////////////////////////////////////////////////////////////////////
     public function create_room($type,$name,$creator,$owner,$owner_name,$max_user = 0) {
     public function create_room($type,$name,$creator,$owner,$owner_name,$max_user = 0) {
         $params = ['type' => $type,'room_name' => $name,'room_creator' => $creator,'room_owner' => $owner,'owner_name' => $owner_name,'max_user' => $max_user,'add_time' => time()];
         $params = ['type' => $type,'room_name' => $name,'room_creator' => $creator,'room_owner' => $owner,'owner_name' => $owner_name,'max_user' => $max_user,'add_time' => time()];

+ 2 - 2
helper/room/tpl_group_home.php

@@ -187,7 +187,7 @@ class tpl_group_home
             $html .= "
             $html .= "
             <a class=\"weui-cell weui-cell_access\" href=\"javascript:;\" id='edit_nickname'>
             <a class=\"weui-cell weui-cell_access\" href=\"javascript:;\" id='edit_nickname'>
                 <div class=\"weui-cell__bd\">
                 <div class=\"weui-cell__bd\">
-                    <p>我的昵称</p>
+                    <p>我在本群的昵称</p>
                 </div>
                 </div>
                 <div class=\"weui-cell__ft\">{$this->participants[$this->cur_user]['nickname']}</div>
                 <div class=\"weui-cell__ft\">{$this->participants[$this->cur_user]['nickname']}</div>
             </a>";
             </a>";
@@ -196,7 +196,7 @@ class tpl_group_home
         if($this->isManager($this->cur_user))
         if($this->isManager($this->cur_user))
         {
         {
             $html .= "
             $html .= "
-            <a class=\"weui-cell weui-cell_access\" href=\"javascript:;\">
+            <a class=\"weui-cell weui-cell_access\" href=\"javascript:;\" id='change_owner' >
                 <div class=\"weui-cell__bd\">
                 <div class=\"weui-cell__bd\">
                     <p>转让管理员</p>
                     <p>转让管理员</p>
                 </div>
                 </div>

+ 50 - 0
mobile/control/member_talk.php

@@ -562,6 +562,56 @@ class member_talkControl extends mbMemberControl
         }
         }
     }
     }
 
 
+
+    public function change_ownerOp()
+    {
+        $room_id = intval($_GET['room_id']);
+        $to_user = explode(',', trim($_GET['room_owner']));
+        $to_user = $to_user[0];
+        $from_user = session_helper::memberid();
+
+
+        $mod_room = Model("room");
+        $item = $mod_room->getPartRooms(["room_id"=>$room_id,"member_id"=>$from_user,"state"=>0]);
+        if(empty($item)) {
+            return self::outerr(errcode::ErrMemberNotExist,"不是群主不可移交管理员");
+        }
+
+        $item = $mod_room->getPartRooms(["room_id"=>$room_id,"member_id"=>$to_user,"state"=>0]);
+        if(empty($item)) {
+            return self::outerr(errcode::ErrMemberNotExist,"用户已不在群中");
+        }
+
+        $member = new member_info($to_user);
+        $info   = $member->filter();
+        $name   = $info['nickname'];
+
+        ////
+        $trans = new trans_wapper(null,__METHOD__);
+
+        $exchange = $this->exchage_room_owner($room_id,$from_user,$to_user);
+        $room = $mod_room->edit_room(['room_id' => $room_id],['room_owner' => $to_user,"owner_name"=>$name]);
+
+        if($exchange && $room){
+            $trans->commit();
+            return self::outsuccess("移交成功");
+        }else{
+            $trans->rollback();
+            return self::outerr(errcode::ErrTalk,"移交失败");
+        }
+        ///
+    }
+
+
+    private function exchage_room_owner($room_id,$from_user,$to_user)
+    {
+        $mod_room = Model("room");
+        $update1 = $mod_room->editRoomOwner($room_id,$from_user,0);
+        $update2 = $mod_room->editRoomOwner($room_id,$to_user,1);
+
+        return $update1 && $update2;
+    }
+
     //////////////////////////////////////////////////////////////////////////////////////
     //////////////////////////////////////////////////////////////////////////////////////
     public function friend_detailOp()
     public function friend_detailOp()
     {
     {

+ 44 - 2
mobile/templates/default/talk/homepage_room.php

@@ -112,6 +112,7 @@
                     },
                     },
                     success: function (res) {
                     success: function (res) {
                         if (res.code != 200) {
                         if (res.code != 200) {
+                            $.hideLoading();
                             $.alert(res.message);
                             $.alert(res.message);
                         } else {
                         } else {
                             var room_avatar = res.datas.file_path;
                             var room_avatar = res.datas.file_path;
@@ -196,9 +197,12 @@
                 };
                 };
                 $.showLoading();
                 $.showLoading();
                 jsBridge.call_native_handler('on_native_click', JSON.stringify(jsonobject), function (res) {
                 jsBridge.call_native_handler('on_native_click', JSON.stringify(jsonobject), function (res) {
+                    $.hideLoading();
                     var datas = JSON.parse(res);
                     var datas = JSON.parse(res);
-                    if (datas.friends.length <= 0) return;
+                    if (datas.friends.length <= 0 || datas.friends == null) return;
                     var add_friends = datas.friends.join(',');
                     var add_friends = datas.friends.join(',');
+
+                    $.showLoading();
                     $.get('/mobile/index.php?act=member_talk&op=invite',
                     $.get('/mobile/index.php?act=member_talk&op=invite',
                         {
                         {
                             invitees: add_friends,
                             invitees: add_friends,
@@ -236,9 +240,11 @@
                 };
                 };
                 $.showLoading();
                 $.showLoading();
                 jsBridge.call_native_handler('on_native_click', JSON.stringify(jsonobject), function (res) {
                 jsBridge.call_native_handler('on_native_click', JSON.stringify(jsonobject), function (res) {
+                    $.hideLoading();
                     var datas = JSON.parse(res);
                     var datas = JSON.parse(res);
-                    if (datas.friends.length <= 0) return;
+                    if (datas.friends.length <= 0 || datas.friends == null) return;
                     var del_friends = datas.friends.join(',');
                     var del_friends = datas.friends.join(',');
+                    $.showLoading();
                     $.get('/mobile/index.php?act=member_talk&op=kick',
                     $.get('/mobile/index.php?act=member_talk&op=kick',
                         {
                         {
                             troublemaker: del_friends,
                             troublemaker: del_friends,
@@ -260,6 +266,42 @@
                 });
                 });
             });
             });
 
 
+            $('#change_owner').on('click', function () {
+                var jsonobject = {
+                    action: "talk_manager",
+                    params: {
+                        room_id: talk_id
+                    }
+                };
+                $.showLoading();
+                jsBridge.call_native_handler('on_native_click', JSON.stringify(jsonobject), function (res) {
+                    $.hideLoading();
+                    var datas = JSON.parse(res);
+                    if (datas.friends.length <= 0 || datas.friends == null) return;
+                    var new_owner = datas.friends.join(',');
+                    $.showLoading();
+                    $.get('/mobile/index.php?act=member_talk&op=change_owner',
+                        {
+                            room_owner:new_owner,
+                            room_id: talk_id,
+                            client_type: 'ios'
+                        }, function (res) {
+                            $.hideLoading();
+                            var result = JSON.parse(res);
+                            console.log(result);
+                            if (result.code != 200) {
+                                $.alert(result.message);
+                                return;
+                            }
+                            $.toast('转让成功');
+                            setTimeout(function () {
+                                window.location.reload();
+                            },1000);
+                        });
+                });
+            });
+
+
             $('#talk_top').on('change', function () {
             $('#talk_top').on('change', function () {
                 var _selfVal = $(this).is(':checked');
                 var _selfVal = $(this).is(':checked');
                 var jsonobject;
                 var jsonobject;

+ 6 - 2
upfile.php

@@ -14,11 +14,15 @@ function upfile_joutput_data($datas)
     echo(json_encode($data));
     echo(json_encode($data));
 }
 }
 
 
-function upfile_joutput_error()
+function upfile_joutput_error($err=0)
 {
 {
     $data = array();
     $data = array();
     $data['code'] = 15000;
     $data['code'] = 15000;
     $data['message'] = "上传文件失败.";
     $data['message'] = "上传文件失败.";
+    if($err == 1){
+        $data['message'] = "图片不得超过2MB";
+    }
+
     $data['datas'] = null;
     $data['datas'] = null;
 
 
     ob_clean();
     ob_clean();
@@ -41,7 +45,7 @@ if ($_POST)
     $ret = array();
     $ret = array();
 
 
     if ($_FILES["file"]["error"] > 0) {
     if ($_FILES["file"]["error"] > 0) {
-        upfile_joutput_error();
+        upfile_joutput_error($_FILES["file"]["error"]);
     }
     }
     else
     else
     {
     {