Browse Source

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

stanley-king 6 years ago
parent
commit
6acd5f11ab

+ 6 - 1
data/resource/mobile/talk/js/room_apply.js

@@ -71,7 +71,7 @@ $(function () {
                     }
                 }
                 else {
-                    html += "<div class=\"weui-cell\">\n" +
+                    html += "<div class=\"weui-cell applys-item\" data-applys-id=\""+this.useObj[i].msg_id+"\">\n" +
                         "        <div class=\"weui-cell__hd\">\n" +
                         "            <img src=\"" + this.useObj[i].avatar + "\">\n" +
                         "        </div>\n" +
@@ -141,4 +141,9 @@ $(function () {
             $.toast('操作成功',1000);
         })
     });
+
+    $(document).on('click','.applys-item',function(){
+        var msg_id = $(this).attr('data-applys-id');
+        window.location.href = "/mobile/index.php?act=user_index&op=friend_apply&msg_id="+msg_id;
+    });
 });

+ 1 - 1
helper/relation/mem_relation.php

@@ -322,7 +322,7 @@ class mem_relation
     public function is_friends($other_id)
     {
         if($this->member_id == $other_id) {
-            return false;
+            return true;
         }
         return (algorithm::binary_search($this->follower,$other_id)) && (algorithm::binary_search($this->subscriber,$other_id));
     }

+ 2 - 4
mobile/control/control.php

@@ -89,8 +89,6 @@ class mobileControl
 
     protected function price_calcer()
     {
-        if($_SESSION['client_type'] == 'mini') return null;
-
         if(session_helper::logined()) {
             return new bonus\account(session_helper::memberid(),true);
         } else {
@@ -327,9 +325,9 @@ class mbMemberControl extends mobileControl
 
 function bonus_version()
 {
-    return "v=2018083008";
+    return "v=2018091001";
 }
 function shop_version()
 {
-    return "v=2018083008";
+    return "v=2018091001";
 }

+ 274 - 238
mobile/control/member_talk.php

@@ -233,6 +233,10 @@ class member_talkControl extends mbMemberControl
         return ['uids' => [$left,$right],'msgs' => $msgs];
     }
 
+    private function applysmsg($msgid,$user){
+
+    }
+
     public function create_roomOp()
     {
         $creator = session_helper::memberid();
@@ -361,14 +365,6 @@ class member_talkControl extends mbMemberControl
         $face->leave(session_helper::memberid());
         return self::outsuccess(['result' => "true"]);
     }
-    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-    private function room_creator($room_id)
-    {
-        $mod_room = Model('room');
-        $params = $mod_room->getRoom($room_id);
-        $rinfo = new room\room_info($params);
-        return $rinfo->creator();
-    }
 
     private function parase_location($location)
     {
@@ -382,6 +378,33 @@ class member_talkControl extends mbMemberControl
         }
     }
 
+    ///////////群内成员管理//////////////////////////////////////////////////////////////////////////////////////////////
+    private function room_creator($room_id)
+    {
+        $mod_room = Model('room');
+        $params = $mod_room->getRoom($room_id);
+        $rinfo = new room\room_info($params);
+        return $rinfo->creator();
+    }
+
+    public function room_usersOp()
+    {
+        $room_id = intval($_GET['room_id']);
+        if($room_id <= 0) {
+            return self::outerr(errcode::ErrParamter);
+        }
+
+        $parts = new room\room_parts($room_id);
+        $uids = $parts->allparts([session_helper::memberid()]);
+        $members = member_info::get_members($uids);
+
+        return self::outsuccess([
+            'friends' => $uids,
+            'count' => count($uids),
+            "mem_desc" => $members,
+            'mobile_page' => mobile_page(1)]);
+    }
+
     public function inviteOp()
     {
         $room_id = intval($_GET['room_id']);
@@ -449,7 +472,12 @@ class member_talkControl extends mbMemberControl
             return self::outsuccess($result);
         }
     }
-    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+    ///////////群详情设置/////////////////////////////////////////////////////////////////////////////////////////////////
+
+    /**
+     * 会话详情页 talk_type:room/chatwo   talk_id:room_id/user
+     */
     public function room_detailOp()
     {
         $talk_type = trim($_GET['talk_type']);
@@ -492,6 +520,9 @@ class member_talkControl extends mbMemberControl
         }
     }
 
+    /**
+     * 修改群名称和群描述 room_id room_name room_desc
+     */
     public function room_editOp()
     {
         $room_id = intval($_GET['room_id']);
@@ -521,24 +552,9 @@ class member_talkControl extends mbMemberControl
         }
     }
 
-    public function room_usersOp()
-    {
-        $room_id = intval($_GET['room_id']);
-        if($room_id <= 0) {
-            return self::outerr(errcode::ErrParamter);
-        }
-
-        $parts = new room\room_parts($room_id);
-        $uids = $parts->allparts([session_helper::memberid()]);
-        $members = member_info::get_members($uids);
-
-        return self::outsuccess([
-            'friends' => $uids,
-            'count' => count($uids),
-            "mem_desc" => $members,
-            'mobile_page' => mobile_page(1)]);
-    }
-
+    /**
+     * 设置群内昵称 room_id member_nick
+     */
     public function change_membernickOp()
     {
         $room_id = intval($_GET['room_id']);
@@ -582,6 +598,9 @@ class member_talkControl extends mbMemberControl
         }
     }
 
+    /**
+     * 设置群头像 room_id file_path
+     */
     public function change_room_avatarOp()
     {
         $room_id = intval($_POST['room_id']);
@@ -605,6 +624,10 @@ class member_talkControl extends mbMemberControl
         }
     }
 
+    /**
+     * 转让管理员
+     * 将 room_id 转让给 to_user
+     */
     public function change_room_ownerOp()
     {
         $room_id = intval($_GET['room_id']);
@@ -651,6 +674,9 @@ class member_talkControl extends mbMemberControl
         return $update1 && $update2;
     }
 
+    /**
+     * 设置群公告 room_id  room_notice
+     */
     public function change_room_noticeOp()
     {
         $room_id = intval($_GET['room_id']);
@@ -684,6 +710,9 @@ class member_talkControl extends mbMemberControl
         }
     }
 
+    /**
+     * 设置群密码 room_id passwd use_pass(开启或关闭)
+     */
     public function change_passwdOp(){
         $room_id = intval($_GET['room_id']);
         $use_pass = intval($_GET['use_pass']);
@@ -728,6 +757,9 @@ class member_talkControl extends mbMemberControl
         }
     }
 
+    /**
+     * 清空聊天记录 room_id
+     */
     public function hide_msgOp()
     {
         $room_id = intval($_GET['room_id']);
@@ -763,212 +795,11 @@ class member_talkControl extends mbMemberControl
         }
     }
 
-    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-    public function send_applyOp()
-    {
-        $room_id = intval($_GET['room_id']);
-        $relay_id = intval($_GET['relay_id']);
-        if($room_id <= 0) {
-            return self::outerr(errcode::ErrParamter,"请求失败");
-        }
-
-        $member = session_helper::memberid();
-        $mod_room = Model('room');
-        $room = $mod_room->getRoom($room_id);
-        if(empty($room)) {
-            return self::outerr(errcode::ErrParamter,"房间不存在");
-        }
-
-
-        $isFromQr = false;
-        if($relay_id > 0) {
-            $parts = new room\room_parts($room_id);
-            $uids = $parts->allparts();
-            $isFromQr = in_array($relay_id,$uids) ? true : false;
-        }
-
-        $pwd = $room['passwd'];
-        $owner = $room['room_owner'];
-        $inviter = $isFromQr ? $relay_id : $owner;
-        if(empty($pwd) || $isFromQr) {
-            //立即入群
-            $ret = room\factory_client::instance()->invite($room_id,$inviter,[$member]);
-            if($ret === false) {
-                return self::outerr(errcode::ErrRoom,"进群失败");
-            }
-            else
-            {
-                $members = member_info::get_members($ret['newusers']);
-                $result['invitees'] = $members;
-                return self::outsuccess($result);
-            }
-        }
-        else
-        {
-            $apply = intval($_GET['apply']);
-            if($apply == 1)
-            {
-                //发送入群申请
-                $msg = trim($_GET['msg']);
-                if(strlen($msg) >= 100){
-                    return self::outerr(errcode::ErrParamter,"入群申请过长,请缩短一些");
-                }
-                $add = $mod_room->addApply($room_id,$member,$msg);
-                if($add){
-                    return self::outsuccess(null,"申请成功");
-                } else {
-                    return self::outerr(errcode::ErrDB,"提交失败");
-                }
-            }
-            else
-            {
-                if(strtolower(trim($_GET['passwd'])) !== strtolower($pwd)) {
-                    return self::outerr(errcode::ErrParamter, "群密码有误");
-                }
-
-                $ret = room\factory_client::instance()->invite($room_id,$owner,[$member]);
-                if($ret === false) {
-                    return self::outerr(errcode::ErrRoom,"进群失败");
-                }
-
-                $members = member_info::get_members($ret['newusers']);
-                $result['invitees'] = $members;
-                return self::outsuccess($result);
-            }
-        }
-    }
-
-    public function pass_applyOp()
-    {
-        $apply = intval($_GET['apply_id']);
-        $step  = intval($_GET['step']);
-        $type  = intval($_GET['type']); // 1:申请入群  2:申请好友
-        $member = session_helper::memberid();
-
-        if($apply <=0 || $step <=0 || $step >2 || $type <=0 || $type >2) {
-            return self::outerr(errcode::ErrParamter,"请求失败");
-        }
-
-        $mod_room = Model('room');
-        if($type == 1){
-            $pass = $this->pass_room($mod_room,$apply,$member,$step);
-        } else {
-            $pass = $this->pass_friends($mod_room,$apply,$member,$step);
-        }
-
-        if(!$pass) {
-            return self::outerr(errcode::ErrTalk,"网络错误");
-        }
-
-        $edit = $mod_room->editApply($apply,$member,$step);
-        if($edit){
-            return self::outsuccess(null,"操作成功");
-        }else{
-            return self::outerr(errcode::ErrDB,"提交失败");
-        }
-    }
-
-    private function pass_room($mod_room,$apply,$viewer,$step)
-    {
-        if($step == 1)
-        {
-            $item = $mod_room->findApply($apply);
-            $ret  = room\factory_client::instance()->invite($item["room_id"],$viewer,[$item['member_id']]);
-            if($ret === false)
-            {
-                return false;
-            }
-
-        } else
-        {
-            //todo refuse notice
-        }
-        return true;
-    }
-
-    private function pass_friends($mod_room,$apply,$viewer,$step)
-    {
-        if($step == 1) {
-            $item = $mod_room->findApply($apply);
-        }
-        else
-        {
-            //todo refuse notice
-        }
-        return true;
-    }
-
-    public function room_applysOp(){
-        return self::outsuccess(null,'talk/room_apply');
-    }
-
-    public function ajax_room_applyOp()
-    {
-        $room_id = intval($_GET['room_id']);
-        if($room_id <= 0){
-            return self::outerr(errcode::ErrParamter,"缺少必要参数");
-        }
-
-        $mod_room = Model('room');
-        $item = $mod_room->getRoom($room_id);
-        if(empty($item)) {
-            return self::outerr(errcode::ErrParamter,"错误的群信息");
-        }
-
-        $member = session_helper::memberid();
-        $info = new room\room_info($item);
-        Log::record("room:{$room_id} user:$member",Log::DEBUG);
-        if($info->owner() != $member) {
-            return self::outerr(errcode::ErrTalk,"只有管理员可以查看申请列表");
-        }
-
-        $hasmore = false;
-        $per_page = 20;
-        $applys = $mod_room->roomApplys(['room_id' => $room_id],"*",$per_page);
-        if(!empty($applys)){
-            foreach ($applys as $k => $apply){
-                $info = new member_info($apply['member_id']);
-                $member = $info->filter();
-                $applys[$k]['avatar'] = $member['avatar'];
-                $applys[$k]['is_man'] = $member['is_man'];
-                $applys[$k]['nickname'] = $member['nickname'];
-                $applys[$k]['step_msg'] = $this->step_to_str($apply['step']);
-            }
-
-            if(count($applys) >= $per_page) $hasmore = true;
-        }
-
-        return self::outsuccess(["applys"=>$applys,"mobile_page"=>["hasmore"=>$hasmore,"curpage"=>$this->cur_page]]);
-    }
-
-    private function step_to_str($step)
-    {
-        switch ($step){
-            case '0': return "申请中";
-            case '1': return "已接受";
-            case '2': return "已拒绝";
-            default : return "申请中";
-        }
-    }
-
-    private function state_to_str($state){
-        switch ($state){
-            case 'pending': return "申请中";
-            case '1': return "已接受";
-            case '2': return "已拒绝";
-            default : return "申请中";
-        }
-    }
-
-    private function state_to_step($state){
-        switch ($state){
-            case 'pending': return 0;
-            case '1': return "已接受";
-            case '2': return "已拒绝";
-            default : return "申请中";
-        }
-    }
+    ///////////////////群运动///////////////////////////////////////////////////////////////////////////////////
 
+    /**
+     * 群运动主页
+     */
     public function steps_homeOp(){
         return self::outsuccess(null,'talk/room_steps');
     }
@@ -1012,8 +843,6 @@ class member_talkControl extends mbMemberControl
         }
     }
 
-
-
     private function user_steps($room_parti)
     {
         $info = new member_info($room_parti['member_id']);
@@ -1030,6 +859,9 @@ class member_talkControl extends mbMemberControl
         return $user_steps;
     }
 
+    /**
+     * 福利社个人运动详情页
+     */
     public function steps_detailOp()
     {
         $mid = session_helper::memberid();
@@ -1099,7 +931,10 @@ class member_talkControl extends mbMemberControl
 
         return $charts;
     }
-    
+
+    /**
+     * 捐赠步数
+     */
     public function donate_stepsOp()
     {
         $room_id = intval($_GET['room_id']);
@@ -1134,7 +969,7 @@ class member_talkControl extends mbMemberControl
 
         return self::outsuccess(['amount'=>$amount]);
     }
-    //////////////////////////////////////////////////////
+    ///////////////群认证////////////////////////////////////////////////////////////////////////////////////////
     public function room_certificateOp()
     {
         $type = intval($_GET['ctype']);
@@ -1239,7 +1074,7 @@ class member_talkControl extends mbMemberControl
         }
     }
 
-    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+    ///////////////群基金////////////////////////////////////////////////////////////////////////////////////////
     public function share_bonusOp()
     {
         $room_id = intval($_GET['room_id']);
@@ -1293,7 +1128,7 @@ class member_talkControl extends mbMemberControl
         return self::outsuccess(["room"=>$room,"list" => $list],'talk/share_bonus');
     }
 
-    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //////////////添加好友/////////////////////////////////////////////////////////////////////////////////////////
     /**
      * 信息输入板
      * param $type int 1:群申请  2:好友申请  3:查看/编辑群公告
@@ -1413,6 +1248,207 @@ class member_talkControl extends mbMemberControl
 
         return self::outsuccess(["applys"=>$items,"mobile_page" => ["hasmore" => $hasmore,"curpage" => $this->page_no()]]);
     }
+
+    /////////////////申请入群///////////////////////////////////////////////////////////////////////////////////////////
+    public function send_applyOp()
+    {
+        $room_id = intval($_GET['room_id']);
+        $relay_id = intval($_GET['relay_id']);
+        if($room_id <= 0) {
+            return self::outerr(errcode::ErrParamter,"请求失败");
+        }
+
+        $member = session_helper::memberid();
+        $mod_room = Model('room');
+        $room = $mod_room->getRoom($room_id);
+        if(empty($room)) {
+            return self::outerr(errcode::ErrParamter,"房间不存在");
+        }
+
+
+        $isFromQr = false;
+        if($relay_id > 0) {
+            $parts = new room\room_parts($room_id);
+            $uids = $parts->allparts();
+            $isFromQr = in_array($relay_id,$uids) ? true : false;
+        }
+
+        $pwd = $room['passwd'];
+        $owner = $room['room_owner'];
+        $inviter = $isFromQr ? $relay_id : $owner;
+        if(empty($pwd) || $isFromQr) {
+            //立即入群
+            $ret = room\factory_client::instance()->invite($room_id,$inviter,[$member]);
+            if($ret === false) {
+                return self::outerr(errcode::ErrRoom,"进群失败");
+            }
+            else
+            {
+                $members = member_info::get_members($ret['newusers']);
+                $result['invitees'] = $members;
+                return self::outsuccess($result);
+            }
+        }
+        elseif(intval($_GET['apply'] == 1))
+        {
+            //发送入群申请
+            $msg = trim($_GET['msg']);
+            if(strlen($msg) >= 100){
+                return self::outerr(errcode::ErrParamter,"入群申请过长,请缩短一些");
+            }
+            $add = $mod_room->addApply($room_id,$member,$msg);
+            if($add){
+                return self::outsuccess(null,"申请成功");
+            } else {
+                return self::outerr(errcode::ErrDB,"提交失败");
+            }
+        }else {
+            if(strtolower(trim($_GET['passwd'])) !== strtolower($pwd)) {
+                return self::outerr(errcode::ErrParamter, "群密码有误");
+            }
+
+            $ret = room\factory_client::instance()->invite($room_id,$owner,[$member]);
+            if($ret === false) {
+                return self::outerr(errcode::ErrRoom, "进群失败");
+            }
+
+            $members = member_info::get_members($ret['newusers']);
+            $result['invitees'] = $members;
+            return self::outsuccess($result);
+        }
+    }
+
+    public function pass_applyOp()
+    {
+        $apply = intval($_GET['apply_id']);
+        $step  = intval($_GET['step']);
+        $type  = intval($_GET['type']); // 1:申请入群  2:申请好友
+        $member = session_helper::memberid();
+
+        if($apply <=0 || $step <=0 || $step >2 || $type <=0 || $type >2) {
+            return self::outerr(errcode::ErrParamter,"请求失败");
+        }
+
+        $mod_room = Model('room');
+        if($type == 1){
+            $pass = $this->pass_room($mod_room,$apply,$member,$step);
+        } else {
+            $pass = $this->pass_friends($mod_room,$apply,$member,$step);
+        }
+
+        if(!$pass) {
+            return self::outerr(errcode::ErrTalk,"网络错误");
+        }
+
+        $edit = $mod_room->editApply($apply,$member,$step);
+        if($edit){
+            return self::outsuccess(null,"操作成功");
+        }else{
+            return self::outerr(errcode::ErrDB,"提交失败");
+        }
+    }
+
+    private function pass_room($mod_room,$apply,$viewer,$step)
+    {
+        if($step == 1)
+        {
+            $item = $mod_room->findApply($apply);
+            $ret  = room\factory_client::instance()->invite($item["room_id"],$viewer,[$item['member_id']]);
+            if($ret === false)
+            {
+                return false;
+            }
+
+        } else
+        {
+            //todo refuse notice
+        }
+        return true;
+    }
+
+    private function pass_friends($mod_room,$apply,$viewer,$step)
+    {
+        if($step == 1) {
+            $item = $mod_room->findApply($apply);
+        }
+        else
+        {
+            //todo refuse notice
+        }
+        return true;
+    }
+
+    public function room_applysOp(){
+        return self::outsuccess(null,'talk/room_apply');
+    }
+
+    public function ajax_room_applyOp()
+    {
+        $room_id = intval($_GET['room_id']);
+        if($room_id <= 0){
+            return self::outerr(errcode::ErrParamter,"缺少必要参数");
+        }
+
+        $mod_room = Model('room');
+        $item = $mod_room->getRoom($room_id);
+        if(empty($item)) {
+            return self::outerr(errcode::ErrParamter,"错误的群信息");
+        }
+
+        $member = session_helper::memberid();
+        $info = new room\room_info($item);
+        Log::record("room:{$room_id} user:$member",Log::DEBUG);
+        if($info->owner() != $member) {
+            return self::outerr(errcode::ErrTalk,"只有管理员可以查看申请列表");
+        }
+
+        $hasmore = false;
+        $per_page = 20;
+        $applys = $mod_room->roomApplys(['room_id' => $room_id],"*",$per_page);
+        if(!empty($applys)){
+            foreach ($applys as $k => $apply){
+                $info = new member_info($apply['member_id']);
+                $member = $info->filter();
+                $applys[$k]['avatar'] = $member['avatar'];
+                $applys[$k]['is_man'] = $member['is_man'];
+                $applys[$k]['nickname'] = $member['nickname'];
+                $applys[$k]['step_msg'] = $this->step_to_str($apply['step']);
+            }
+
+            if(count($applys) >= $per_page) $hasmore = true;
+        }
+
+        return self::outsuccess(["applys"=>$applys,"mobile_page"=>["hasmore"=>$hasmore,"curpage"=>$this->cur_page]]);
+    }
+
+    private function step_to_str($step)
+    {
+        switch ($step){
+            case '0': return "申请中";
+            case '1': return "已接受";
+            case '2': return "已拒绝";
+            default : return "申请中";
+        }
+    }
+
+    private function state_to_str($state){
+        switch ($state){
+            case 'pending': return "申请中";
+            case '1': return "已接受";
+            case '2': return "已拒绝";
+            default : return "申请中";
+        }
+    }
+
+    private function state_to_step($state){
+        switch ($state){
+            case 'pending': return 0;
+            case '1': return "已接受";
+            case '2': return "已拒绝";
+            default : return "申请中";
+        }
+    }
+
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     public function room_goodsOp()
     {

+ 14 - 0
mobile/control/user_index.php

@@ -176,6 +176,20 @@ class user_indexControl extends mobileHomeControl
         return $this->open_page($idolid,['from_type' => '来自于好友申请','scene' => 'applyer','note' => $msg['note']]);
     }
 
+
+    /**
+     * 群详情页面/申请加群页面  @扫码进入
+     */
+
+    /**
+     * 群聊详情页面/单聊详情页面  一般为登录状态
+     * @群聊/单聊 右上角详情按钮
+     */
+
+    /**
+     * 查看入群申请
+     * @return bool
+     */
     public function room_applyOp()
     {
         if(!session_helper::logined()) {

+ 13 - 0
mobile/templates/default/talk/message_board.php

@@ -199,6 +199,19 @@
                 if(_length >= letter_max){
                     var input = input.substr(0,letter_max-1);
                     $(this).val(input);
+                    $(this).siblings("div").find('span').text(letter_max);
+                    $(this).siblings("div").find('span').css("color","red");
+                }
+            })
+
+            $("textarea").on('change',function () {
+                var input = $(this).val();
+                var _length = input.trim().length;
+                $(this).siblings("div").find('span').text(_length);
+                if(_length >= letter_max){
+                    var input = input.substr(0,letter_max-1);
+                    $(this).val(input);
+                    $(this).siblings("div").find('span').text(letter_max);
                     $(this).siblings("div").find('span').css("color","red");
                 }
             })