TbVmsCtlrService.java 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package com.its.op.service.vms;
  2. import com.its.op.model.dto.vms.TbVmsCtlrDto;
  3. import com.its.op.model.entity.vms.TbVmsCtlr;
  4. import com.its.op.repository.vms.TbVmsCtlrRepository;
  5. import lombok.RequiredArgsConstructor;
  6. import lombok.extern.slf4j.Slf4j;
  7. import org.springframework.stereotype.Service;
  8. import java.util.ArrayList;
  9. import java.util.List;
  10. import java.util.NoSuchElementException;
  11. import java.util.Optional;
  12. @Slf4j
  13. @RequiredArgsConstructor
  14. @Service
  15. public class TbVmsCtlrService {
  16. private final TbVmsCtlrRepository repo;
  17. // 데이터 1건 조회, 없으면 exception
  18. private TbVmsCtlr requireOne(Long id) {
  19. return repo.findById(id)
  20. .orElseThrow(() -> new NoSuchElementException("데이터가 존재하지 않습니다: " + id));
  21. }
  22. // 전체 데이터 조회
  23. public List<TbVmsCtlrDto> findAll() {
  24. List<TbVmsCtlrDto> result = new ArrayList<>();
  25. List<TbVmsCtlr> data = this.repo.findAll();
  26. for (TbVmsCtlr entity : data) {
  27. result.add(entity.toDto());
  28. }
  29. return result;
  30. }
  31. // 데이터 1건 조회(기존 데이터가 반드시 존재해야 함)
  32. public TbVmsCtlrDto findById(Long id) {
  33. TbVmsCtlr entity = requireOne(id);
  34. return entity.toDto();
  35. }
  36. // 데이터 변경
  37. public TbVmsCtlrDto updateById(Long id, TbVmsCtlrDto.TbVmsCtlrUpdReq req) {
  38. TbVmsCtlr entity = requireOne(id);
  39. entity.updateInfo(req);
  40. this.repo.save(entity);
  41. return entity.toDto();
  42. }
  43. // 데이터 변경 또는 생성-목록(데이터가 존재하면 업데이트 없으면 신규로 생성)
  44. public List<TbVmsCtlrDto> mergeInfoList(List<TbVmsCtlrDto.TbVmsCtlrUpdReq> reqList) {
  45. List<TbVmsCtlrDto> result = new ArrayList<>();
  46. for (TbVmsCtlrDto.TbVmsCtlrUpdReq req : reqList) {
  47. TbVmsCtlr obj = req.toEntity();
  48. this.repo.save(obj);
  49. result.add(obj.toDto());
  50. }
  51. return result;
  52. }
  53. // 데이터 변경 또는 생성-개별(데이터가 존재하면 업데이트 없으면 신규로 생성)
  54. public TbVmsCtlrDto mergeInfo(TbVmsCtlrDto.TbVmsCtlrUpdReq req) {
  55. TbVmsCtlr obj = req.toEntity();
  56. this.repo.save(obj);
  57. return obj.toDto();
  58. }
  59. // 정보 삭제-개별, 데이터 존재하지 않으면 Exception
  60. public TbVmsCtlrDto deleteById(Long id) {
  61. TbVmsCtlr entity = requireOne(id);
  62. this.repo.deleteById(id);
  63. return entity.toDto();
  64. }
  65. // 정보 삭제-목록, 존재하는 데이터 만 삭제
  66. public List<TbVmsCtlrDto> deleteByIds(List<Long> ids) {
  67. List<TbVmsCtlrDto> result = new ArrayList<>();
  68. for (Long id : ids) {
  69. Optional<TbVmsCtlr> obj = this.repo.findById(id);
  70. if (obj.isPresent()) {
  71. this.repo.deleteById(id);
  72. result.add(obj.get().toDto());
  73. }
  74. }
  75. return result;
  76. }
  77. }