/** * 退出群组 * @see <*****@*****.**> * * */ public function OutMember($uid, $group_id) { $result = false; if (isset($uid) && isset($group_id)) { $isjoin = $this->find()->where(['uid' => $uid, 'group_id' => $group_id, 'gm_status' => GroupMemberGroup::MEMBER_DEFAULT])->one(); if ($isjoin) { $isjoin->gm_status = GroupMemberGroup::MEMBER_DELETE; if ($isjoin->save()) { //添加统计数 $mGroup = new GroupGroup(); $groupinfo = $mGroup->findOne($group_id); $groupinfo->member_num -= 1; $result = $groupinfo->save() ? true : false; } } } return $result; }
/** * 群组关系- 建群 * @see <*****@*****.**> *http://jira.chuangyejia.com:8090/pages/viewpage.action?pageId=3412828 * @param int $uid 用户id * @param str $group_name 群组名称 * @param int $group_check 群组权限 * @param int $group_category 群组类型 * @param int $group_data 群组简介 * @param str $group_address 群组地址 * @param str $group_avatar 群组头像 * @param str $group_tag 群组标签 * @param str $member_num 群人数 * * @param int $group_id 群组ID 更新群组信息必须 * * @return json */ public function actionSetgroup() { $params = Yii::$app->getRequest()->post(); $params = array_map(function ($value) { $value = strval($value); return htmlentities($value); }, $params); if (!isset($params['uid']) || !isset($params['group_name'])) { return Yii::$app->util->responseArray('1101', 'params_missing_error', '参数缺失!'); } $mGroup = new GroupGroup(); //更新群组 if (isset($params['group_id'])) { $obj = $mGroup->findOne(intval($params['group_id'])); //群主才可以修改群信息 if ($obj && $obj->uid == $params['uid']) { $old_check = $obj->group_check; $obj->attributes = $params; if ($obj->save()) { //如果把群组权限 从 需要验证 变为 公开,处理已提交申请加入的用户请求 if (isset($params['group_check']) && $old_check == 1 && $obj->group_check == 2) { //++TD 把请求记录表中未处理的请求 加入群成员表中 $mFriendRequest = new FriendRequestGroup(); $qlist = $mFriendRequest->find()->where(['accept_id' => $params['group_id'], 'request_status' => FriendRequestGroup::STATUS_SEND])->asArray()->all(); //添加群成员 ,更新请求记录 if ($qlist) { $mGroupMember = new GroupMemberGroup(); foreach ($qlist as $key => $value) { $membercont = ['uid' => $value['launch_id'], 'group_id' => $value['accept_id'], 'gm_role' => GroupMemberGroup::ROLE_PUBLIC, 'gm_status' => GroupMemberGroup::MEMBER_DEFAULT]; $_mGroupMember = clone $mGroupMember; $query = $_mGroupMember->JoinMember($membercont); //更新请求记录 $qcont = ['request_id' => $value['request_id'], 'request_status' => FriendRequestGroup::STATUS_AGREE]; $qu = $mFriendRequest->addRequest($qcont); } } } //判断群主是否在群成员表中,如果没有增加 $mGroupMember = new GroupMemberGroup(); $res = $mGroupMember->find()->where(['uid' => $params['uid'], 'group_id' => $params['group_id'], 'gm_status' => GroupMemberGroup::MEMBER_DEFAULT])->exists(); if (!$res) { //添加群成员 $membercont = ['uid' => $params['uid'], 'group_id' => $params['group_id'], 'gm_role' => GroupMemberGroup::ROLE_ADMIN, 'gm_status' => GroupMemberGroup::MEMBER_DEFAULT]; $mGroupMember->JoinMember($membercont); } return Yii::$app->util->responseArray('0', 'success', '更新成功', [$obj]); } else { return Yii::$app->util->responseArray('4101', 'update_error', '更新失败'); } } else { return Yii::$app->util->responseArray('2101', 'params_error', '参数不合法!'); } } else { //创建群组 $mGroup->attributes = $params; if ($mGroup->save()) { //添加群成员 $membercont = ['uid' => $params['uid'], 'group_id' => $mGroup->group_id, 'gm_role' => GroupMemberGroup::ROLE_ADMIN, 'gm_status' => GroupMemberGroup::MEMBER_DEFAULT]; $mGroupMember = new GroupMemberGroup(); $mGroupMember->JoinMember($membercont); return Yii::$app->util->responseArray('0', 'success', '创建成功', [$mGroup]); } else { return Yii::$app->util->responseArray('4102', 'create_error', '创建失败'); } } }