| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- package com.its.op.service.vms;
- import com.its.op.model.dto.vms.TbVmsCtlrDto;
- import com.its.op.model.entity.vms.TbVmsCtlr;
- import com.its.op.repository.vms.TbVmsCtlrRepository;
- import lombok.RequiredArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.stereotype.Service;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.NoSuchElementException;
- import java.util.Optional;
- @Slf4j
- @RequiredArgsConstructor
- @Service
- public class TbVmsCtlrService {
- private final TbVmsCtlrRepository repo;
- // 데이터 1건 조회, 없으면 exception
- private TbVmsCtlr requireOne(Long id) {
- return repo.findById(id)
- .orElseThrow(() -> new NoSuchElementException("데이터가 존재하지 않습니다: " + id));
- }
- // 전체 데이터 조회
- public List<TbVmsCtlrDto> findAll() {
- List<TbVmsCtlrDto> result = new ArrayList<>();
- List<TbVmsCtlr> data = this.repo.findAll();
- for (TbVmsCtlr entity : data) {
- result.add(entity.toDto());
- }
- return result;
- }
- // 데이터 1건 조회(기존 데이터가 반드시 존재해야 함)
- public TbVmsCtlrDto findById(Long id) {
- TbVmsCtlr entity = requireOne(id);
- return entity.toDto();
- }
- // 데이터 변경
- public TbVmsCtlrDto updateById(Long id, TbVmsCtlrDto.TbVmsCtlrUpdReq req) {
- TbVmsCtlr entity = requireOne(id);
- entity.updateInfo(req);
- this.repo.save(entity);
- return entity.toDto();
- }
- // 데이터 변경 또는 생성-목록(데이터가 존재하면 업데이트 없으면 신규로 생성)
- public List<TbVmsCtlrDto> mergeInfoList(List<TbVmsCtlrDto.TbVmsCtlrUpdReq> reqList) {
- List<TbVmsCtlrDto> result = new ArrayList<>();
- for (TbVmsCtlrDto.TbVmsCtlrUpdReq req : reqList) {
- TbVmsCtlr obj = req.toEntity();
- this.repo.save(obj);
- result.add(obj.toDto());
- }
- return result;
- }
- // 데이터 변경 또는 생성-개별(데이터가 존재하면 업데이트 없으면 신규로 생성)
- public TbVmsCtlrDto mergeInfo(TbVmsCtlrDto.TbVmsCtlrUpdReq req) {
- TbVmsCtlr obj = req.toEntity();
- this.repo.save(obj);
- return obj.toDto();
- }
- // 정보 삭제-개별, 데이터 존재하지 않으면 Exception
- public TbVmsCtlrDto deleteById(Long id) {
- TbVmsCtlr entity = requireOne(id);
- this.repo.deleteById(id);
- return entity.toDto();
- }
- // 정보 삭제-목록, 존재하는 데이터 만 삭제
- public List<TbVmsCtlrDto> deleteByIds(List<Long> ids) {
- List<TbVmsCtlrDto> result = new ArrayList<>();
- for (Long id : ids) {
- Optional<TbVmsCtlr> obj = this.repo.findById(id);
- if (obj.isPresent()) {
- this.repo.deleteById(id);
- result.add(obj.get().toDto());
- }
- }
- return result;
- }
- }
|