/
Sturon
/
Diplom
Обзор
Документация
Войти
/
Sturon
/
Diplom
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
backend/src/main/java/ru/diplom/vision/service/CameraSourceService.java
70 строк
3 KB
Sturon
Initial
03 июн 2026, 15:01
03 июн 2026, 15:01
17b44a2
Код
Авторство
О чём код?
package ru.diplom.vision.service; import java.util.List; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.server.ResponseStatusException; import ru.diplom.vision.api.dto.CameraRequest; import ru.diplom.vision.domain.CameraSource; import ru.diplom.vision.repository.CameraSourceRepository; import ru.diplom.vision.repository.InspectionProfileRepository; import static org.springframework.http.HttpStatus.BAD_REQUEST; import static org.springframework.http.HttpStatus.NOT_FOUND; @Service @Transactional public class CameraSourceService { private final CameraSourceRepository cameraSourceRepository; private final InspectionProfileRepository inspectionProfileRepository; public CameraSourceService( CameraSourceRepository cameraSourceRepository, InspectionProfileRepository inspectionProfileRepository ) { this.cameraSourceRepository = cameraSourceRepository; this.inspectionProfileRepository = inspectionProfileRepository; } @Transactional(readOnly = true) public List<CameraSource> findAll() { return cameraSourceRepository.findAllByActiveTrueOrderByCreatedAtDesc(); } @Transactional(readOnly = true) public CameraSource getRequired(Long id) { return cameraSourceRepository.findById(id) .orElseThrow(() -> new ResponseStatusException(NOT_FOUND, "Камера не найдена")); } public CameraSource create(CameraRequest request) { CameraSource cameraSource = new CameraSource(); apply(cameraSource, request); return cameraSourceRepository.save(cameraSource); } public CameraSource update(Long id, CameraRequest request) { CameraSource cameraSource = getRequired(id); apply(cameraSource, request); return cameraSourceRepository.save(cameraSource); } public void delete(Long id) { if (inspectionProfileRepository.countByCameraSourceId(id) > 0) { throw new ResponseStatusException(BAD_REQUEST, "Камера используется в точках контроля"); } cameraSourceRepository.delete(getRequired(id)); } private void apply(CameraSource cameraSource, CameraRequest request) { cameraSource.setName(request.name().trim()); cameraSource.setType(request.type()); cameraSource.setLocation(blankToNull(request.location())); cameraSource.setActive(request.active()); cameraSource.setNotes(blankToNull(request.notes())); } private String blankToNull(String value) { return value == null || value.isBlank() ? null : value.trim(); } }