|
@@ -92,6 +92,7 @@ class member_talkControl extends mbMemberControl
|
|
|
|
|
|
$uids = [];
|
|
|
foreach ($members as $member) {
|
|
|
+ if($member['member_id'] == session_helper::memberid()) continue;
|
|
|
$uids[] = $member['member_id'];
|
|
|
}
|
|
|
|
|
@@ -120,7 +121,7 @@ class member_talkControl extends mbMemberControl
|
|
|
return self::outerr(errcode::ErrParamter);
|
|
|
}
|
|
|
$result = $this->roomsg($msgid,$room_id);
|
|
|
- $msgs = $this->format_message($result['uids'],$result['msgs'],$type,0);
|
|
|
+ $msgs = $this->format_message($result['uids'],$result['msgs'],$type,0,$room_id);
|
|
|
}
|
|
|
elseif($type == 'chatwo')
|
|
|
{
|
|
@@ -138,11 +139,19 @@ class member_talkControl extends mbMemberControl
|
|
|
return self::outsuccess(["msgs" => $msgs]);
|
|
|
}
|
|
|
|
|
|
- private function format_message($uids,$msgs,$type,$other)
|
|
|
+ private function format_message($uids,$msgs,$type,$other=0,$room_id=0)
|
|
|
{
|
|
|
$members = [];
|
|
|
if(!empty($uids))
|
|
|
{
|
|
|
+ $room_members = Model('room')->getRoomParts(["room_id"=>$room_id],'member_id,member_nick',false);
|
|
|
+ $nicknames = [];
|
|
|
+ if(!empty($room)) {
|
|
|
+ foreach ($room_members as $room_member){
|
|
|
+ $nicknames[$room_member['member_id']] = $room_member['member_nick'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
$items = Model('member')->getMemberList(['member_id' => ['in',$uids]]);
|
|
|
foreach ($items as $item)
|
|
|
{
|
|
@@ -151,11 +160,14 @@ class member_talkControl extends mbMemberControl
|
|
|
$info = new member_info($item);
|
|
|
|
|
|
$val = [];
|
|
|
+ $mid = $info->member_id();
|
|
|
+ $nickname = empty($nicknames[$mid]) ? $info->nickname() : $nicknames[$mid];
|
|
|
+
|
|
|
$val['avatar'] = $info->avatar();
|
|
|
- $val['nickname'] = $info->nickname();
|
|
|
- $val['userid'] = $info->member_id();
|
|
|
+ $val['nickname'] = $nickname;
|
|
|
+ $val['userid'] = $mid;
|
|
|
|
|
|
- $members[$info->member_id()] = $val;
|
|
|
+ $members[$mid] = $val;
|
|
|
}
|
|
|
catch (Exception $ex) {
|
|
|
Log::record($ex->getMessage(),Log::ERR);
|
|
@@ -214,7 +226,7 @@ class member_talkControl extends mbMemberControl
|
|
|
if(!empty($room)){
|
|
|
$hide_msg = intval($room[0]["hide_msg"]);
|
|
|
}else{
|
|
|
- $hide_msg = 0;
|
|
|
+ return ['uids' => [],'msgs' => []];
|
|
|
}
|
|
|
|
|
|
$msgid = $msgid > $hide_msg ? $msgid : $hide_msg;
|
|
@@ -351,7 +363,18 @@ class member_talkControl extends mbMemberControl
|
|
|
|
|
|
$ret = room\factory_client::instance()->invite($room_id,$this->room_creator($room_id),[session_helper::memberid()]);
|
|
|
|
|
|
- return self::outsuccess(['result' => $ret]);
|
|
|
+ if($ret === false) {
|
|
|
+ return self::outerr(errcode::ErrRoom,"进群失败");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+
|
|
|
+ $mod_room = Model('room');
|
|
|
+ $room = $mod_room->getRoom($room_id);
|
|
|
+ $info = new room\room_info($room);
|
|
|
+ $result['name'] = $info->name();
|
|
|
+ return self::outsuccess(['result' => $ret]);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public function leave_faceOp()
|
|
@@ -577,6 +600,7 @@ class member_talkControl extends mbMemberControl
|
|
|
}
|
|
|
|
|
|
if($ret) {
|
|
|
+ room\factory_client::instance()->change($room_id);
|
|
|
return self::outsuccess(null);
|
|
|
} else {
|
|
|
return self::outerr(errcode::ErrDB);
|
|
@@ -687,21 +711,28 @@ class member_talkControl extends mbMemberControl
|
|
|
|
|
|
public function change_passwdOp(){
|
|
|
$room_id = intval($_GET['room_id']);
|
|
|
+ $use_pass = intval($_GET['use_pass']);
|
|
|
if($room_id <= 0) {
|
|
|
return self::outerr(errcode::ErrParamter);
|
|
|
}
|
|
|
|
|
|
- $passwd = strtolower(trim($_GET['passwd']));
|
|
|
+ if($use_pass)
|
|
|
+ {
|
|
|
+ $passwd = strtolower(trim($_GET['passwd']));
|
|
|
|
|
|
- if (!preg_match("/^[a-z0-9]+$/u", $passwd)) {
|
|
|
- return self::outerr(errcode::ErrParamter,"密码只能包含英文字母或数字,不区分大小写");
|
|
|
- }
|
|
|
+ $len = strlen($passwd);
|
|
|
+ if($len <4 || $len >8) {
|
|
|
+ return self::outerr(errcode::ErrParamter,"密码长度请再4至8个字符之间");
|
|
|
+ }
|
|
|
|
|
|
- $len = strlen($passwd);
|
|
|
- if($len <=0 || $len >8) {
|
|
|
- return self::outerr(errcode::ErrParamter,"密码不能为空或超过8个字符");
|
|
|
+ if (!preg_match("/^[a-z0-9]+$/u", $passwd)) {
|
|
|
+ return self::outerr(errcode::ErrParamter,"密码只能包含英文字母或数字,不区分大小写");
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ $passwd = "";
|
|
|
}
|
|
|
|
|
|
+
|
|
|
$mod_room = Model('room');
|
|
|
$item = $mod_room->getRoom($room_id);
|
|
|
if(empty($item)) {
|
|
@@ -757,22 +788,68 @@ class member_talkControl extends mbMemberControl
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public function room_applyOp()
|
|
|
+ //////////////////////////////////////////
|
|
|
+ public function send_applyOp()
|
|
|
{
|
|
|
- $room_id = intval($_GET['room']);
|
|
|
- $msg = trim($_GET['msg']);
|
|
|
- $member = session_helper::memberid();
|
|
|
-
|
|
|
- if($room_id <= 0 || strlen($msg) >=100) {
|
|
|
+ $room_id = intval($_GET['room_id']);
|
|
|
+ if($room_id <= 0) {
|
|
|
return self::outerr(errcode::ErrParamter,"请求失败");
|
|
|
}
|
|
|
|
|
|
- $room_mod = Model('room');
|
|
|
- $add = $room_mod->addApply($room_id,$member,$msg);
|
|
|
- if($add){
|
|
|
- return self::outsuccess(null,"申请成功");
|
|
|
- } else {
|
|
|
- return self::outerr(errcode::ErrDB,"提交失败");
|
|
|
+ $member = session_helper::memberid();
|
|
|
+ $mod_room = Model('room');
|
|
|
+ $room = $mod_room->getRoom($room_id);
|
|
|
+ if(empty($room)) {
|
|
|
+ return self::outerr(errcode::ErrParamter,"房间不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ $pwd = $room['passwd'];
|
|
|
+ $owner = $room['room_owner'];
|
|
|
+ if(empty($pwd)) {
|
|
|
+ $ret = room\factory_client::instance()->invite($room_id,$owner,[$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(empty($apply))
|
|
|
+ {
|
|
|
+ if(strtolower(trim($_GET['passwd'])) === strtolower($pwd)){
|
|
|
+ $ret = room\factory_client::instance()->invite($room_id,$owner,[$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{
|
|
|
+ return self::outerr(errcode::ErrParamter,"群密码有误");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ $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,"提交失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -782,25 +859,84 @@ class member_talkControl extends mbMemberControl
|
|
|
$step = intval($_GET['step']);
|
|
|
$member = session_helper::memberid();
|
|
|
|
|
|
- if($apply <=0 && $step <=0 ) {
|
|
|
+ if($apply <=0 || $step <=0 || $step >2 ) {
|
|
|
return self::outerr(errcode::ErrParamter,"请求失败");
|
|
|
}
|
|
|
|
|
|
- $room_mod = Model('room');
|
|
|
- $edit = $room_mod->editApply($apply,$member,$step);
|
|
|
- if(!$edit){
|
|
|
+ $mod_room = Model('room');
|
|
|
+ if($step == 1)
|
|
|
+ {
|
|
|
+ $item = $mod_room->findApply($apply);
|
|
|
+ $ret = room\factory_client::instance()->invite($item["room_id"],$member,[$item['member_id']]);
|
|
|
+ if($ret === false)
|
|
|
+ {
|
|
|
+ return self::outerr(errcode::ErrDB,"操作失败");
|
|
|
+ }
|
|
|
+ } else
|
|
|
+ {
|
|
|
+ //todo refuse notice
|
|
|
+ }
|
|
|
+
|
|
|
+ $edit = $mod_room->editApply($apply,$member,$step);
|
|
|
+ if($edit){
|
|
|
+ return self::outsuccess(null,"操作成功");
|
|
|
+ }else{
|
|
|
return self::outerr(errcode::ErrDB,"提交失败");
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- if($step == 1)
|
|
|
- {
|
|
|
- $item = $room_mod->findApply($apply);
|
|
|
- room\factory_client::instance()->invite($item["room_id"],$member,[$item['member_id']]);
|
|
|
+ public function room_applyOp(){
|
|
|
+ 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,"错误的群信息");
|
|
|
}
|
|
|
|
|
|
- return self::outsuccess(null,"操作成功");
|
|
|
+ $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,"*",$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 "申请中";
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
public function share_bonusOp()
|