public function quitGroup(Group $group, GroupUser $model) { if ($resp = $this->checkGroupWithUser($group, $model)) { return $resp; } if (($result = $this->getGroupUserArray($model)) instanceof ApiResponse) { return $result; } if ($result) { ConvertUtil::arrayToObject($result, $model, ['id', 'gid', 'uid', 'permission', 'create_time', 'status', 'remark']); if (Group::TYPE_CHATROOM == $group->type) { return GroupManager::getInstance()->quitOrDeleteChatroom($group, $model); } else { if ($group->uid == $model->uid) { return new ApiResponse(Code::FAIL_PERMISSION_DENY, 'create user can not quit'); } if ($resp = $this->removeGroupUserById($model)) { return $resp; } JegarnUtil::quitGroup($group->id, $model->uid); JegarnUtil::sendGroupQuitNotification($group->uid, $model->uid, $group->id, $group->name); } } return null; }