checkImGroup($id); $user = $this->getCurrentUser(true); return $this->handleGroup($group, $user); } protected function handleGroup(ImGroupModel $group, UserModel $user) { $owner = $this->handleShallowUserInfo($group->owner_id); $me = $this->handleMeInfo($group, $user); return [ 'id' => $group->id, 'type' => $group->type, 'name' => $group->name, 'avatar' => $group->avatar, 'about' => $group->about, 'published' => $group->published, 'deleted' => $group->deleted, 'user_count' => $group->user_count, 'msg_count' => $group->msg_count, 'owner' => $owner, 'me' => $me, ]; } protected function handleMeInfo(ImGroupModel $group, UserModel $user) { $me = [ 'joined' => 0, 'owned' => 0, ]; if ($user->id == $group->owner_id) { $me['owned'] = 1; } if ($user->id > 0) { $repo = new ImGroupUserRepo(); $groupUser = $repo->findGroupUser($group->id, $user->id); if ($groupUser) { $me['joined'] = 1; } } return $me; } }