|
@@ -233,6 +233,10 @@ class member_talkControl extends mbMemberControl
|
|
return ['uids' => [$left,$right],'msgs' => $msgs];
|
|
return ['uids' => [$left,$right],'msgs' => $msgs];
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private function applysmsg($msgid,$user){
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
public function create_roomOp()
|
|
public function create_roomOp()
|
|
{
|
|
{
|
|
$creator = session_helper::memberid();
|
|
$creator = session_helper::memberid();
|
|
@@ -361,14 +365,6 @@ class member_talkControl extends mbMemberControl
|
|
$face->leave(session_helper::memberid());
|
|
$face->leave(session_helper::memberid());
|
|
return self::outsuccess(['result' => "true"]);
|
|
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)
|
|
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()
|
|
public function inviteOp()
|
|
{
|
|
{
|
|
$room_id = intval($_GET['room_id']);
|
|
$room_id = intval($_GET['room_id']);
|
|
@@ -449,7 +472,12 @@ class member_talkControl extends mbMemberControl
|
|
return self::outsuccess($result);
|
|
return self::outsuccess($result);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
+
|
|
|
|
+ ///////////群详情设置/////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 会话详情页 talk_type:room/chatwo talk_id:room_id/user
|
|
|
|
+ */
|
|
public function room_detailOp()
|
|
public function room_detailOp()
|
|
{
|
|
{
|
|
$talk_type = trim($_GET['talk_type']);
|
|
$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()
|
|
public function room_editOp()
|
|
{
|
|
{
|
|
$room_id = intval($_GET['room_id']);
|
|
$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()
|
|
public function change_membernickOp()
|
|
{
|
|
{
|
|
$room_id = intval($_GET['room_id']);
|
|
$room_id = intval($_GET['room_id']);
|
|
@@ -582,6 +598,9 @@ class member_talkControl extends mbMemberControl
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 设置群头像 room_id file_path
|
|
|
|
+ */
|
|
public function change_room_avatarOp()
|
|
public function change_room_avatarOp()
|
|
{
|
|
{
|
|
$room_id = intval($_POST['room_id']);
|
|
$room_id = intval($_POST['room_id']);
|
|
@@ -605,6 +624,10 @@ class member_talkControl extends mbMemberControl
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 转让管理员
|
|
|
|
+ * 将 room_id 转让给 to_user
|
|
|
|
+ */
|
|
public function change_room_ownerOp()
|
|
public function change_room_ownerOp()
|
|
{
|
|
{
|
|
$room_id = intval($_GET['room_id']);
|
|
$room_id = intval($_GET['room_id']);
|
|
@@ -651,6 +674,9 @@ class member_talkControl extends mbMemberControl
|
|
return $update1 && $update2;
|
|
return $update1 && $update2;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 设置群公告 room_id room_notice
|
|
|
|
+ */
|
|
public function change_room_noticeOp()
|
|
public function change_room_noticeOp()
|
|
{
|
|
{
|
|
$room_id = intval($_GET['room_id']);
|
|
$room_id = intval($_GET['room_id']);
|
|
@@ -684,6 +710,9 @@ class member_talkControl extends mbMemberControl
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 设置群密码 room_id passwd use_pass(开启或关闭)
|
|
|
|
+ */
|
|
public function change_passwdOp(){
|
|
public function change_passwdOp(){
|
|
$room_id = intval($_GET['room_id']);
|
|
$room_id = intval($_GET['room_id']);
|
|
$use_pass = intval($_GET['use_pass']);
|
|
$use_pass = intval($_GET['use_pass']);
|
|
@@ -728,6 +757,9 @@ class member_talkControl extends mbMemberControl
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 清空聊天记录 room_id
|
|
|
|
+ */
|
|
public function hide_msgOp()
|
|
public function hide_msgOp()
|
|
{
|
|
{
|
|
$room_id = intval($_GET['room_id']);
|
|
$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(){
|
|
public function steps_homeOp(){
|
|
return self::outsuccess(null,'talk/room_steps');
|
|
return self::outsuccess(null,'talk/room_steps');
|
|
}
|
|
}
|
|
@@ -1012,8 +843,6 @@ class member_talkControl extends mbMemberControl
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
private function user_steps($room_parti)
|
|
private function user_steps($room_parti)
|
|
{
|
|
{
|
|
$info = new member_info($room_parti['member_id']);
|
|
$info = new member_info($room_parti['member_id']);
|
|
@@ -1030,6 +859,9 @@ class member_talkControl extends mbMemberControl
|
|
return $user_steps;
|
|
return $user_steps;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 福利社个人运动详情页
|
|
|
|
+ */
|
|
public function steps_detailOp()
|
|
public function steps_detailOp()
|
|
{
|
|
{
|
|
$mid = session_helper::memberid();
|
|
$mid = session_helper::memberid();
|
|
@@ -1099,7 +931,10 @@ class member_talkControl extends mbMemberControl
|
|
|
|
|
|
return $charts;
|
|
return $charts;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 捐赠步数
|
|
|
|
+ */
|
|
public function donate_stepsOp()
|
|
public function donate_stepsOp()
|
|
{
|
|
{
|
|
$room_id = intval($_GET['room_id']);
|
|
$room_id = intval($_GET['room_id']);
|
|
@@ -1134,7 +969,7 @@ class member_talkControl extends mbMemberControl
|
|
|
|
|
|
return self::outsuccess(['amount'=>$amount]);
|
|
return self::outsuccess(['amount'=>$amount]);
|
|
}
|
|
}
|
|
- //////////////////////////////////////////////////////
|
|
|
|
|
|
+ ///////////////群认证////////////////////////////////////////////////////////////////////////////////////////
|
|
public function room_certificateOp()
|
|
public function room_certificateOp()
|
|
{
|
|
{
|
|
$type = intval($_GET['ctype']);
|
|
$type = intval($_GET['ctype']);
|
|
@@ -1239,7 +1074,7 @@ class member_talkControl extends mbMemberControl
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
+ ///////////////群基金////////////////////////////////////////////////////////////////////////////////////////
|
|
public function share_bonusOp()
|
|
public function share_bonusOp()
|
|
{
|
|
{
|
|
$room_id = intval($_GET['room_id']);
|
|
$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');
|
|
return self::outsuccess(["room"=>$room,"list" => $list],'talk/share_bonus');
|
|
}
|
|
}
|
|
|
|
|
|
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
+ //////////////添加好友/////////////////////////////////////////////////////////////////////////////////////////
|
|
/**
|
|
/**
|
|
* 信息输入板
|
|
* 信息输入板
|
|
* param $type int 1:群申请 2:好友申请 3:查看/编辑群公告
|
|
* 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()]]);
|
|
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()
|
|
public function room_goodsOp()
|
|
{
|
|
{
|