/
irazabav
/
software-design
Обзор
Документация
Войти
/
irazabav
/
software-design
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
finalProject/src/main/java/ru/sbrf/services/RoomServiceImpl.java
63 строки
2 KB
Irina Zbavnikova
fix comments
22 июн 2025, 12:28
22 июн 2025, 12:28
87a6e82
Код
Авторство
О чём код?
package ru.sbrf.services; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import ru.sbrf.model.exception.RoomNotFoundException; import ru.sbrf.model.pet.Pet; import ru.sbrf.model.room.Room; import ru.sbrf.repository.RoomRepository; import java.util.*; @Service @RequiredArgsConstructor public class RoomServiceImpl implements RoomService { private final RoomRepository roomRepo; @Override public Map<Room, List<Pet>> getAllRoomsWithPets() { Map<Room, List<Pet>> petInfo = new HashMap<>(); List<Room> rooms = roomRepo.findAll(); if (Objects.nonNull(rooms)) { rooms.forEach(r -> { petInfo.put(r, r.getPets()); }); } return petInfo; } @Override public List<Room> getAllRooms() { return roomRepo.findAll(); } @Override public Room saveOrUpdateRoom(Room room) { return roomRepo.save(room); } @Override public void removeRoom(Long id) { if (Objects.isNull(id)) { throw new RoomNotFoundException(); } Room room = findById(id); if (!room.getPets().isEmpty()) { throw new RoomNotFoundException("в комнате есть питомец"); } roomRepo.delete(room); } @Override public int getTotalAggression(Room room) { return room.getPets().stream().mapToInt(Pet::getAggressionLevel).sum(); } @Override public Room findById(Long id) { return roomRepo.findById(id).orElseThrow(() -> new RoomNotFoundException()); } }