From 712561ffbcb989e5c98de90356d7778b927db7be Mon Sep 17 00:00:00 2001 From: dyhj625 Date: Thu, 16 Jan 2025 15:34:55 +0900 Subject: [PATCH] =?UTF-8?q?=EB=8B=AC=EB=A0=A5=20=EC=9D=B8=EC=84=9C?= =?UTF-8?q?=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/api/BoardController.java | 4 +- .../controller/api/VacationController.java | 48 +++++++++++++++++++ ...alBordMapper.java => localbordMapper.java} | 2 +- .../localhost/mapper/localvacaMapper.java | 14 ++++++ ...BordService.java => localbordService.java} | 6 +-- .../localhost/service/localvacaService.java | 21 ++++++++ ...ocalBordMapper.xml => localbordMapper.xml} | 2 +- src/main/resources/mapper/localvacaMapper.xml | 11 +++++ 8 files changed, 101 insertions(+), 7 deletions(-) create mode 100644 src/main/java/io/company/localhost/controller/api/VacationController.java rename src/main/java/io/company/localhost/mapper/{LocalBordMapper.java => localbordMapper.java} (97%) create mode 100644 src/main/java/io/company/localhost/mapper/localvacaMapper.java rename src/main/java/io/company/localhost/service/{LocalBordService.java => localbordService.java} (95%) create mode 100644 src/main/java/io/company/localhost/service/localvacaService.java rename src/main/resources/mapper/{LocalBordMapper.xml => localbordMapper.xml} (98%) create mode 100644 src/main/resources/mapper/localvacaMapper.xml diff --git a/src/main/java/io/company/localhost/controller/api/BoardController.java b/src/main/java/io/company/localhost/controller/api/BoardController.java index 32dfcfa..387bb23 100644 --- a/src/main/java/io/company/localhost/controller/api/BoardController.java +++ b/src/main/java/io/company/localhost/controller/api/BoardController.java @@ -42,7 +42,7 @@ import com.github.pagehelper.PageSerializable; import io.company.localhost.common.annotation.ReqMap; import io.company.localhost.common.dto.ApiResponse; import io.company.localhost.common.dto.MapDto; -import io.company.localhost.service.LocalBordService; +import io.company.localhost.service.localbordService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -51,7 +51,7 @@ import lombok.extern.slf4j.Slf4j; @RequiredArgsConstructor @Slf4j public class BoardController { - private final LocalBordService boardService; + private final localbordService boardService; /** * 공지사항 목록 조회 diff --git a/src/main/java/io/company/localhost/controller/api/VacationController.java b/src/main/java/io/company/localhost/controller/api/VacationController.java new file mode 100644 index 0000000..4ae99f3 --- /dev/null +++ b/src/main/java/io/company/localhost/controller/api/VacationController.java @@ -0,0 +1,48 @@ +package io.company.localhost.controller.api; +import java.util.List; + +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import io.company.localhost.common.annotation.ReqMap; +import io.company.localhost.common.dto.ApiResponse; +import io.company.localhost.common.dto.MapDto; +import io.company.localhost.service.localvacaService; // 서비스 클래스 경로 수정 +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +@Slf4j +@RequiredArgsConstructor +@RestController +@RequestMapping("/api/vacation") +public class VacationController { + + private final localvacaService localVacaService; + + @PostMapping + public ApiResponse saveVacations(@RequestBody List vacationRequests) { + // 요청 데이터 유효성 검사 + if (vacationRequests == null || vacationRequests.isEmpty()) { + throw new IllegalArgumentException("휴가 요청 데이터가 비어 있습니다."); + } + + for (MapDto request : vacationRequests) { + // 각 요청 데이터의 필수 값 검증 + Integer employeeId = (Integer) request.get("employeeId"); + String date = request.getString("date"); + String type = request.getString("type"); + + if (employeeId == null || date == null || type == null) { + throw new IllegalArgumentException("요청 데이터에 누락된 값이 있습니다: " + request); + } + + // 데이터 저장 + localVacaService.insertVacation(request); + } + + // 성공적으로 저장된 경우 응답 반환 + return ApiResponse.ok("모든 휴가가 성공적으로 저장되었습니다."); + } +} diff --git a/src/main/java/io/company/localhost/mapper/LocalBordMapper.java b/src/main/java/io/company/localhost/mapper/localbordMapper.java similarity index 97% rename from src/main/java/io/company/localhost/mapper/LocalBordMapper.java rename to src/main/java/io/company/localhost/mapper/localbordMapper.java index 347ec07..eae03d2 100644 --- a/src/main/java/io/company/localhost/mapper/LocalBordMapper.java +++ b/src/main/java/io/company/localhost/mapper/localbordMapper.java @@ -9,7 +9,7 @@ import org.apache.ibatis.annotations.Param; import io.company.localhost.common.dto.MapDto; @Mapper -public interface LocalBordMapper { +public interface localbordMapper { // 공지사항 조회 List getNotices(MapDto map); diff --git a/src/main/java/io/company/localhost/mapper/localvacaMapper.java b/src/main/java/io/company/localhost/mapper/localvacaMapper.java new file mode 100644 index 0000000..f639c4b --- /dev/null +++ b/src/main/java/io/company/localhost/mapper/localvacaMapper.java @@ -0,0 +1,14 @@ +package io.company.localhost.mapper; + +import org.apache.ibatis.annotations.Mapper; + +import io.company.localhost.common.dto.MapDto; + + +@Mapper +public interface localvacaMapper { + void insertVacation(MapDto vacationRequest); +} + + + diff --git a/src/main/java/io/company/localhost/service/LocalBordService.java b/src/main/java/io/company/localhost/service/localbordService.java similarity index 95% rename from src/main/java/io/company/localhost/service/LocalBordService.java rename to src/main/java/io/company/localhost/service/localbordService.java index 330555e..b584c0d 100644 --- a/src/main/java/io/company/localhost/service/LocalBordService.java +++ b/src/main/java/io/company/localhost/service/localbordService.java @@ -10,14 +10,14 @@ import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import io.company.localhost.common.dto.MapDto; -import io.company.localhost.mapper.LocalBordMapper; +import io.company.localhost.mapper.localbordMapper; import io.company.localhost.utils.PageUtil; import lombok.RequiredArgsConstructor; @Service @RequiredArgsConstructor -public class LocalBordService { - private final LocalBordMapper boardMapper; +public class localbordService { + private final localbordMapper boardMapper; public List getNotices(MapDto map) { return boardMapper.getNotices(map); diff --git a/src/main/java/io/company/localhost/service/localvacaService.java b/src/main/java/io/company/localhost/service/localvacaService.java new file mode 100644 index 0000000..0a65289 --- /dev/null +++ b/src/main/java/io/company/localhost/service/localvacaService.java @@ -0,0 +1,21 @@ +package io.company.localhost.service; + +import java.util.List; + +import org.springframework.stereotype.Service; + +import io.company.localhost.common.dto.MapDto; +import io.company.localhost.mapper.localvacaMapper; +import lombok.RequiredArgsConstructor; + +@Service +@RequiredArgsConstructor +public class localvacaService { + private final localvacaMapper localvacaMapper; + + + public void insertVacation(MapDto vacationRequest) { + localvacaMapper.insertVacation(vacationRequest); + } + +} diff --git a/src/main/resources/mapper/LocalBordMapper.xml b/src/main/resources/mapper/localbordMapper.xml similarity index 98% rename from src/main/resources/mapper/LocalBordMapper.xml rename to src/main/resources/mapper/localbordMapper.xml index c471d50..3a50be3 100644 --- a/src/main/resources/mapper/LocalBordMapper.xml +++ b/src/main/resources/mapper/localbordMapper.xml @@ -1,6 +1,6 @@ - +