getLoginUser(); $group = $this->checkImGroup($id); $user = $this->checkImUser($loginUser->id); $validator = new ImGroupUserValidator(); $groupUser = $validator->checkGroupUser($group->id, $user->id); $validator->checkIfAllowQuit($group->id, $user->id); $groupUser->delete(); $this->decrGroupUserCount($group); $this->decrUserGroupCount($user); } protected function decrUserGroupCount(ImUserModel $user) { if ($user->group_count > 0) { $user->group_count -= 1; $user->update(); } } protected function decrGroupUserCount(ImGroupModel $group) { if ($group->user_count > 0) { $group->user_count -= 1; $group->update(); } } }