From 65530fcf56196b2c9ec9e7904271b95b3346c554 Mon Sep 17 00:00:00 2001 From: Ryula Date: Fri, 24 Nov 2023 18:50:20 +0900 Subject: [PATCH 1/2] =?UTF-8?q?[feat]=20=EB=82=B4=20=EB=8B=AC=EB=A0=A5=20?= =?UTF-8?q?=EB=A3=A8=ED=8B=B4=20=EC=B6=94=EA=B0=80=20api?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../how/Controller/CalendarController.java | 13 +++++++---- .../Domain/dto/calendar/CalendarAddRes.java | 17 ++++++++++++++ .../java/inha/how/Domain/entity/Calendar.java | 18 ++++++++++++++- .../inha/how/Service/CalendarService.java | 22 ++++++++++++++++++- 4 files changed, 64 insertions(+), 6 deletions(-) create mode 100644 src/main/java/inha/how/Domain/dto/calendar/CalendarAddRes.java diff --git a/src/main/java/inha/how/Controller/CalendarController.java b/src/main/java/inha/how/Controller/CalendarController.java index 7c4fe9a..3b42324 100644 --- a/src/main/java/inha/how/Controller/CalendarController.java +++ b/src/main/java/inha/how/Controller/CalendarController.java @@ -1,12 +1,14 @@ package inha.how.Controller; import inha.how.Config.BaseResponse; +import inha.how.Domain.dto.calendar.CalendarAddRes; import inha.how.Domain.dto.calendar.CalendarInfoMapping; import inha.how.Domain.entity.User; import inha.how.Service.CalendarService; import inha.how.Service.UserService; import io.swagger.v3.oas.annotations.Operation; import lombok.RequiredArgsConstructor; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -27,14 +29,17 @@ public BaseResponse> CalendarList(@RequestHeader("Auth List res=calendarService.findCalendar(user); return new BaseResponse<>(res); } -/* + @Operation(summary = "내 달력 루틴 추가", description = "자신의 달력에 할 루틴을 등록하는 api다.") @PostMapping("") - public BaseResponse CalendarAdd(){ - + public BaseResponse CalendarAdd(@RequestHeader("Authorization") String jws, @RequestBody CalendarAddRes calendarAddRes){ + User user=userService.validUser(jws); + calendarService.CalendarAdd(user, calendarAddRes); + + return new BaseResponse(); } - */ + //CalendarModify: 운동 체크 } diff --git a/src/main/java/inha/how/Domain/dto/calendar/CalendarAddRes.java b/src/main/java/inha/how/Domain/dto/calendar/CalendarAddRes.java new file mode 100644 index 0000000..bc579d3 --- /dev/null +++ b/src/main/java/inha/how/Domain/dto/calendar/CalendarAddRes.java @@ -0,0 +1,17 @@ +package inha.how.Domain.dto.calendar; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import org.springframework.cglib.core.Local; + +import java.time.LocalDate; + +@Getter +@AllArgsConstructor +@NoArgsConstructor +public class CalendarAddRes { + private LocalDate localDate; + private Long routId; + private Boolean check; +} diff --git a/src/main/java/inha/how/Domain/entity/Calendar.java b/src/main/java/inha/how/Domain/entity/Calendar.java index d51251e..d2ebda5 100644 --- a/src/main/java/inha/how/Domain/entity/Calendar.java +++ b/src/main/java/inha/how/Domain/entity/Calendar.java @@ -2,6 +2,7 @@ import jakarta.persistence.*; import lombok.Getter; +import lombok.NoArgsConstructor; import org.springframework.data.annotation.CreatedDate; import java.time.LocalDate; @@ -20,5 +21,20 @@ public class Calendar extends BaseTimeEntity{ @JoinColumn(name = "rout_id", referencedColumnName = "id") private Routine routine; private LocalDate date; - private boolean check; + @Column(name="chk") + private Boolean check; + + + public void setUser(User user){ + this.user=user; + } + public void setRoutine(Routine routine){ + this.routine=routine; + } + public void setDate(LocalDate localDate){ + this.date=localDate; + } + public void setCheck(boolean check){ + this.check=check; + } } diff --git a/src/main/java/inha/how/Service/CalendarService.java b/src/main/java/inha/how/Service/CalendarService.java index d600d2a..5a104bd 100644 --- a/src/main/java/inha/how/Service/CalendarService.java +++ b/src/main/java/inha/how/Service/CalendarService.java @@ -1,17 +1,25 @@ package inha.how.Service; +import inha.how.Domain.dto.calendar.CalendarAddRes; import inha.how.Domain.dto.calendar.CalendarInfoMapping; +import inha.how.Domain.entity.Calendar; +import inha.how.Domain.entity.Routine; import inha.how.Domain.entity.User; import inha.how.Repository.CalendarRepository; +import inha.how.Repository.Routine.RoutineRepository; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import java.time.LocalDate; import java.util.List; +@Slf4j @RequiredArgsConstructor @Service public class CalendarService { private final CalendarRepository calendarRepository; + private final RoutineRepository routineRepository; public List findCalendar(User user){ List calendarInfoMappingList = calendarRepository.findCalendarByUser(user); @@ -19,8 +27,20 @@ public List findCalendar(User user){ return calendarInfoMappingList; } - public void CalendarAdd(){ + public void CalendarAdd(User user, CalendarAddRes calendarAddRes){ + Long routId= calendarAddRes.getRoutId(); + LocalDate localDate=calendarAddRes.getLocalDate(); + Boolean check = calendarAddRes.getCheck(); + Routine routine = routineRepository.findRoutineById(routId); + + Calendar calendar=new Calendar(); + calendar.setUser(user); + calendar.setDate(localDate); + calendar.setCheck(check); + calendar.setRoutine(routine); + + calendarRepository.save(calendar); } //modifyCalendar: 달력 체크 수정 From 76969160699c926696f1fb71ef5d7785f53b58a1 Mon Sep 17 00:00:00 2001 From: Ryula Date: Fri, 24 Nov 2023 22:24:33 +0900 Subject: [PATCH 2/2] =?UTF-8?q?[feat]=20=EB=8B=AC=EB=A0=A5=20=EC=9A=B4?= =?UTF-8?q?=EB=8F=99=20=EB=A3=A8=ED=8B=B4=20=EC=B2=B4=ED=81=AC=20api?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/inha/how/Config/BaseResponseStatus.java | 4 +++- .../inha/how/Controller/CalendarController.java | 8 +++++++- .../how/Domain/dto/calendar/CalendarModifyReq.java | 13 +++++++++++++ src/main/java/inha/how/Service/CalendarService.java | 11 +++++++++++ 4 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 src/main/java/inha/how/Domain/dto/calendar/CalendarModifyReq.java diff --git a/src/main/java/inha/how/Config/BaseResponseStatus.java b/src/main/java/inha/how/Config/BaseResponseStatus.java index 5bdff8d..b004ccb 100644 --- a/src/main/java/inha/how/Config/BaseResponseStatus.java +++ b/src/main/java/inha/how/Config/BaseResponseStatus.java @@ -26,7 +26,9 @@ public enum BaseResponseStatus { // users USERS_EMPTY_USER_ID(false, 2010, "유저 아이디 값을 확인해주세요."), - USERS_EMPTY_PASSWORD(false, 2010, "유저 비밀번호 값을 확인해주세요."), + USERS_EMPTY_PASSWORD(false, 2011, "유저 비밀번호 값을 확인해주세요."), + + CALENDAR_NOT_FOUND(false, 2012, "해당하는 달력을 찾을 수 없습니다."), // [POST] /users POST_USERS_EMPTY_EMAIL(false, 2015, "이메일을 입력해주세요."), diff --git a/src/main/java/inha/how/Controller/CalendarController.java b/src/main/java/inha/how/Controller/CalendarController.java index 3b42324..2188c34 100644 --- a/src/main/java/inha/how/Controller/CalendarController.java +++ b/src/main/java/inha/how/Controller/CalendarController.java @@ -3,6 +3,7 @@ import inha.how.Config.BaseResponse; import inha.how.Domain.dto.calendar.CalendarAddRes; import inha.how.Domain.dto.calendar.CalendarInfoMapping; +import inha.how.Domain.dto.calendar.CalendarModifyReq; import inha.how.Domain.entity.User; import inha.how.Service.CalendarService; import inha.how.Service.UserService; @@ -39,7 +40,12 @@ public BaseResponse CalendarAdd(@RequestHeader("Authorization") String jws, @Req return new BaseResponse(); } + @Operation(summary = "달력 운동루틴 체크/해제", description = "내 달력의 할 운동 루틴에 체크/해제한다.") + @PatchMapping("/{id}") + public BaseResponse CalendarModify(@PathVariable("id") Long id, @RequestBody CalendarModifyReq calendarModifyReq){ + calendarService.modifyCalendar(id, calendarModifyReq); - + return new BaseResponse(); + } //CalendarModify: 운동 체크 } diff --git a/src/main/java/inha/how/Domain/dto/calendar/CalendarModifyReq.java b/src/main/java/inha/how/Domain/dto/calendar/CalendarModifyReq.java new file mode 100644 index 0000000..573815a --- /dev/null +++ b/src/main/java/inha/how/Domain/dto/calendar/CalendarModifyReq.java @@ -0,0 +1,13 @@ +package inha.how.Domain.dto.calendar; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Getter +@AllArgsConstructor +@NoArgsConstructor +public class CalendarModifyReq { + private boolean chk; + +} diff --git a/src/main/java/inha/how/Service/CalendarService.java b/src/main/java/inha/how/Service/CalendarService.java index 5a104bd..d1f3e20 100644 --- a/src/main/java/inha/how/Service/CalendarService.java +++ b/src/main/java/inha/how/Service/CalendarService.java @@ -1,7 +1,10 @@ package inha.how.Service; +import inha.how.Config.BaseResponseStatus; +import inha.how.Config.exception.BaseException; import inha.how.Domain.dto.calendar.CalendarAddRes; import inha.how.Domain.dto.calendar.CalendarInfoMapping; +import inha.how.Domain.dto.calendar.CalendarModifyReq; import inha.how.Domain.entity.Calendar; import inha.how.Domain.entity.Routine; import inha.how.Domain.entity.User; @@ -10,6 +13,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.time.LocalDate; import java.util.List; @@ -43,6 +47,13 @@ public void CalendarAdd(User user, CalendarAddRes calendarAddRes){ calendarRepository.save(calendar); } + @Transactional //modifyCalendar: 달력 체크 수정 + public void modifyCalendar(Long id, CalendarModifyReq calendarModifyReq){ + Calendar calendar= calendarRepository.findById(id).orElseThrow(()->new BaseException(BaseResponseStatus.CALENDAR_NOT_FOUND)); + + log.error("check: "+calendarModifyReq.isChk()); + calendar.setCheck(calendarModifyReq.isChk()); + } }