From f8909244194eed9d2731103df02ca86c8c64cb09 Mon Sep 17 00:00:00 2001 From: rabbit-22 Date: Wed, 30 Aug 2023 23:56:12 +0900 Subject: [PATCH 1/4] fix: CORS Local --- .../backend/domain/health/controller/GraphController.java | 2 +- .../backend/domain/health/controller/HealthContorller.java | 2 +- .../backend/domain/member/controller/memberController.java | 2 +- .../tukorea/turtleneck/backend/global/config/CorsConfig.java | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/tukorea/turtleneck/backend/domain/health/controller/GraphController.java b/src/main/java/com/tukorea/turtleneck/backend/domain/health/controller/GraphController.java index cb1ef5c..bb9d179 100644 --- a/src/main/java/com/tukorea/turtleneck/backend/domain/health/controller/GraphController.java +++ b/src/main/java/com/tukorea/turtleneck/backend/domain/health/controller/GraphController.java @@ -16,7 +16,7 @@ @RestController @RequestMapping("api/v1/health/graphs") @RequiredArgsConstructor -@CrossOrigin(origins = "http://localhost:5173", allowedHeaders = "*") +@CrossOrigin(origins = "http://localhost", allowedHeaders = "*") public class GraphController { private final GraphService graphService; diff --git a/src/main/java/com/tukorea/turtleneck/backend/domain/health/controller/HealthContorller.java b/src/main/java/com/tukorea/turtleneck/backend/domain/health/controller/HealthContorller.java index 974e248..4eec473 100644 --- a/src/main/java/com/tukorea/turtleneck/backend/domain/health/controller/HealthContorller.java +++ b/src/main/java/com/tukorea/turtleneck/backend/domain/health/controller/HealthContorller.java @@ -11,7 +11,7 @@ @RestController @RequestMapping("api/v1/health") @RequiredArgsConstructor -@CrossOrigin(origins = "http://localhost:5173", allowedHeaders = "*") +@CrossOrigin(origins = "http://localhost", allowedHeaders = "*") public class HealthContorller { private final HealthService service; @PostMapping diff --git a/src/main/java/com/tukorea/turtleneck/backend/domain/member/controller/memberController.java b/src/main/java/com/tukorea/turtleneck/backend/domain/member/controller/memberController.java index e323632..a9008ae 100644 --- a/src/main/java/com/tukorea/turtleneck/backend/domain/member/controller/memberController.java +++ b/src/main/java/com/tukorea/turtleneck/backend/domain/member/controller/memberController.java @@ -15,7 +15,7 @@ @RestController @RequestMapping("api/v1/members") @RequiredArgsConstructor -@CrossOrigin(origins = "http://localhost:5173", allowedHeaders = "*") +@CrossOrigin(origins = "http://localhost", allowedHeaders = "*") public class memberController { private final MemberService service; diff --git a/src/main/java/com/tukorea/turtleneck/backend/global/config/CorsConfig.java b/src/main/java/com/tukorea/turtleneck/backend/global/config/CorsConfig.java index ca9a0f4..1158763 100644 --- a/src/main/java/com/tukorea/turtleneck/backend/global/config/CorsConfig.java +++ b/src/main/java/com/tukorea/turtleneck/backend/global/config/CorsConfig.java @@ -10,9 +10,9 @@ public class CorsConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") - .allowedOrigins("localhost:5173") + .allowedOrigins("http://localhost") .allowedMethods("GET", "POST", "PUT", "PATCH", "OPTIONS") - .allowedHeaders("headers") + .allowedHeaders("*") .maxAge(3000); } } \ No newline at end of file From 6772ce4bdf57593f4ec0a917ced64f4a78742ba2 Mon Sep 17 00:00:00 2001 From: wschoe Date: Wed, 30 Aug 2023 21:23:54 +0900 Subject: [PATCH 2/4] feat: change spec about healthInfo --- .../health/controller/GraphController.java | 8 +++---- .../health/controller/HealthContorller.java | 2 +- .../domain/health/domain/HealthInfo.java | 19 +++++++++------ .../domain/health/dto/RecordRequest.java | 18 --------------- .../health/dto/request/RecordRequest.java | 19 +++++++++++++++ .../dto/{ => response}/DayGraphInfo.java | 2 +- .../health/dto/{ => response}/DayInfo.java | 2 +- .../dto/{ => response}/MonthGraphInfo.java | 2 +- .../dto/{ => response}/WeekGraphInfo.java | 2 +- .../dto/{ => response}/YearGraphInfo.java | 3 +-- .../domain/health/service/GraphService.java | 23 +++++++++---------- .../domain/health/service/HealthService.java | 6 +++-- .../member/controller/memberController.java | 8 +++---- .../member/dto/{ => mapper}/MemberMapper.java | 4 +++- .../{ => request}/MemberCreateRequest.java | 6 +---- .../dto/{ => request}/MemberLogInRequest.java | 2 +- .../member/dto/{ => response}/MemberInfo.java | 2 +- .../domain/member/service/MemberService.java | 6 ++--- 18 files changed, 69 insertions(+), 65 deletions(-) delete mode 100644 src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/RecordRequest.java create mode 100644 src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/request/RecordRequest.java rename src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/{ => response}/DayGraphInfo.java (57%) rename src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/{ => response}/DayInfo.java (64%) rename src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/{ => response}/MonthGraphInfo.java (69%) rename src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/{ => response}/WeekGraphInfo.java (94%) rename src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/{ => response}/YearGraphInfo.java (95%) rename src/main/java/com/tukorea/turtleneck/backend/domain/member/dto/{ => mapper}/MemberMapper.java (83%) rename src/main/java/com/tukorea/turtleneck/backend/domain/member/dto/{ => request}/MemberCreateRequest.java (89%) rename src/main/java/com/tukorea/turtleneck/backend/domain/member/dto/{ => request}/MemberLogInRequest.java (84%) rename src/main/java/com/tukorea/turtleneck/backend/domain/member/dto/{ => response}/MemberInfo.java (84%) diff --git a/src/main/java/com/tukorea/turtleneck/backend/domain/health/controller/GraphController.java b/src/main/java/com/tukorea/turtleneck/backend/domain/health/controller/GraphController.java index bb9d179..686223b 100644 --- a/src/main/java/com/tukorea/turtleneck/backend/domain/health/controller/GraphController.java +++ b/src/main/java/com/tukorea/turtleneck/backend/domain/health/controller/GraphController.java @@ -1,10 +1,10 @@ package com.tukorea.turtleneck.backend.domain.health.controller; -import com.tukorea.turtleneck.backend.domain.health.dto.DayGraphInfo; -import com.tukorea.turtleneck.backend.domain.health.dto.MonthGraphInfo; -import com.tukorea.turtleneck.backend.domain.health.dto.WeekGraphInfo; -import com.tukorea.turtleneck.backend.domain.health.dto.YearGraphInfo; +import com.tukorea.turtleneck.backend.domain.health.dto.response.DayGraphInfo; +import com.tukorea.turtleneck.backend.domain.health.dto.response.MonthGraphInfo; +import com.tukorea.turtleneck.backend.domain.health.dto.response.WeekGraphInfo; +import com.tukorea.turtleneck.backend.domain.health.dto.response.YearGraphInfo; import com.tukorea.turtleneck.backend.domain.health.service.GraphService; import lombok.RequiredArgsConstructor; import org.springframework.format.annotation.DateTimeFormat; diff --git a/src/main/java/com/tukorea/turtleneck/backend/domain/health/controller/HealthContorller.java b/src/main/java/com/tukorea/turtleneck/backend/domain/health/controller/HealthContorller.java index 4eec473..98544e0 100644 --- a/src/main/java/com/tukorea/turtleneck/backend/domain/health/controller/HealthContorller.java +++ b/src/main/java/com/tukorea/turtleneck/backend/domain/health/controller/HealthContorller.java @@ -1,7 +1,7 @@ package com.tukorea.turtleneck.backend.domain.health.controller; import com.tukorea.turtleneck.backend.domain.health.domain.HealthInfo; -import com.tukorea.turtleneck.backend.domain.health.dto.RecordRequest; +import com.tukorea.turtleneck.backend.domain.health.dto.request.RecordRequest; import com.tukorea.turtleneck.backend.domain.health.service.HealthService; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; diff --git a/src/main/java/com/tukorea/turtleneck/backend/domain/health/domain/HealthInfo.java b/src/main/java/com/tukorea/turtleneck/backend/domain/health/domain/HealthInfo.java index bd8382a..bb3c24d 100644 --- a/src/main/java/com/tukorea/turtleneck/backend/domain/health/domain/HealthInfo.java +++ b/src/main/java/com/tukorea/turtleneck/backend/domain/health/domain/HealthInfo.java @@ -6,7 +6,6 @@ import lombok.*; import javax.persistence.*; -import java.time.LocalDate; @Entity @Table(name = "health") @@ -21,21 +20,27 @@ public class HealthInfo extends BaseEntity { @ManyToOne private MemberEntity memberEntity; - private Long redCnt; + private Integer redCnt; - private Long yellowCnt; + private Integer yellowCnt; - private Long greenCnt; + private Integer greenCnt; - private LocalDate date; + private Long shoulderAngle; + + private Long headAngle; + + private Long distanceMonitor; @Builder - public HealthInfo(MemberEntity memberEntity, Long redCnt, Long yellowCnt, Long greenCnt, LocalDate date){ + public HealthInfo(MemberEntity memberEntity, Integer redCnt, Integer yellowCnt, Integer greenCnt, Long shoulderAngle, Long headAngle, Long distanceMonitor){ this.memberEntity = memberEntity; this.redCnt = redCnt; this.yellowCnt = yellowCnt; this.greenCnt = greenCnt; - this.date = date; this.isActive = true; + this.shoulderAngle = shoulderAngle; + this.headAngle = headAngle; + this.distanceMonitor = distanceMonitor; } } diff --git a/src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/RecordRequest.java b/src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/RecordRequest.java deleted file mode 100644 index 7eed5b7..0000000 --- a/src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/RecordRequest.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.tukorea.turtleneck.backend.domain.health.dto; - -import lombok.*; - -import javax.validation.constraints.NotNull; -import java.time.LocalDate; - -@Getter -@AllArgsConstructor -@NoArgsConstructor(access = AccessLevel.PRIVATE) -public class RecordRequest { - @NotNull - private String nickname; - private Long redCnt; - private Long yellowCnt; - private Long greenCnt; - private LocalDate date; -} diff --git a/src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/request/RecordRequest.java b/src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/request/RecordRequest.java new file mode 100644 index 0000000..bf6258a --- /dev/null +++ b/src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/request/RecordRequest.java @@ -0,0 +1,19 @@ +package com.tukorea.turtleneck.backend.domain.health.dto.request; + +import lombok.*; + +import javax.validation.constraints.NotNull; + +@Getter +@AllArgsConstructor +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class RecordRequest { + @NotNull + private String nickname; + private Integer redCnt; + private Integer yellowCnt; + private Integer greenCnt; + private Long shoulderAngle; + private Long headAngle; + private Long distanceMonitor; +} diff --git a/src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/DayGraphInfo.java b/src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/response/DayGraphInfo.java similarity index 57% rename from src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/DayGraphInfo.java rename to src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/response/DayGraphInfo.java index d230b74..c0ea110 100644 --- a/src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/DayGraphInfo.java +++ b/src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/response/DayGraphInfo.java @@ -1,4 +1,4 @@ -package com.tukorea.turtleneck.backend.domain.health.dto; +package com.tukorea.turtleneck.backend.domain.health.dto.response; import lombok.*; diff --git a/src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/DayInfo.java b/src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/response/DayInfo.java similarity index 64% rename from src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/DayInfo.java rename to src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/response/DayInfo.java index 5a9df0d..a21f9e7 100644 --- a/src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/DayInfo.java +++ b/src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/response/DayInfo.java @@ -1,4 +1,4 @@ -package com.tukorea.turtleneck.backend.domain.health.dto; +package com.tukorea.turtleneck.backend.domain.health.dto.response; import lombok.Builder; import lombok.Data; diff --git a/src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/MonthGraphInfo.java b/src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/response/MonthGraphInfo.java similarity index 69% rename from src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/MonthGraphInfo.java rename to src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/response/MonthGraphInfo.java index 6f6a889..06df89b 100644 --- a/src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/MonthGraphInfo.java +++ b/src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/response/MonthGraphInfo.java @@ -1,4 +1,4 @@ -package com.tukorea.turtleneck.backend.domain.health.dto; +package com.tukorea.turtleneck.backend.domain.health.dto.response; import lombok.Builder; import lombok.Data; diff --git a/src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/WeekGraphInfo.java b/src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/response/WeekGraphInfo.java similarity index 94% rename from src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/WeekGraphInfo.java rename to src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/response/WeekGraphInfo.java index db193fa..6dd05a9 100644 --- a/src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/WeekGraphInfo.java +++ b/src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/response/WeekGraphInfo.java @@ -1,4 +1,4 @@ -package com.tukorea.turtleneck.backend.domain.health.dto; +package com.tukorea.turtleneck.backend.domain.health.dto.response; import com.tukorea.turtleneck.backend.domain.health.domain.HealthInfo; diff --git a/src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/YearGraphInfo.java b/src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/response/YearGraphInfo.java similarity index 95% rename from src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/YearGraphInfo.java rename to src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/response/YearGraphInfo.java index 1768245..f269291 100644 --- a/src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/YearGraphInfo.java +++ b/src/main/java/com/tukorea/turtleneck/backend/domain/health/dto/response/YearGraphInfo.java @@ -1,7 +1,6 @@ -package com.tukorea.turtleneck.backend.domain.health.dto; +package com.tukorea.turtleneck.backend.domain.health.dto.response; import com.tukorea.turtleneck.backend.domain.health.service.util.GraphTool; -import lombok.Builder; import lombok.Data; import java.time.Month; diff --git a/src/main/java/com/tukorea/turtleneck/backend/domain/health/service/GraphService.java b/src/main/java/com/tukorea/turtleneck/backend/domain/health/service/GraphService.java index 2534636..33ffdd8 100644 --- a/src/main/java/com/tukorea/turtleneck/backend/domain/health/service/GraphService.java +++ b/src/main/java/com/tukorea/turtleneck/backend/domain/health/service/GraphService.java @@ -3,7 +3,7 @@ import com.tukorea.turtleneck.backend.domain.health.dao.HealthRepository; import com.tukorea.turtleneck.backend.domain.health.domain.HealthInfo; -import com.tukorea.turtleneck.backend.domain.health.dto.*; +import com.tukorea.turtleneck.backend.domain.health.dto.response.*; import com.tukorea.turtleneck.backend.domain.health.service.util.GraphTool; import com.tukorea.turtleneck.backend.domain.health.service.util.WeekOfDay; import com.tukorea.turtleneck.backend.domain.member.dao.MemberRepository; @@ -25,7 +25,6 @@ public class GraphService { private final HealthRepository healthRepository; private final MemberRepository memberRepository; - private final GraphTool tools; public DayGraphInfo getDayGraphInfo(LocalDate date, String nickname){ MemberEntity memberEntity = memberRepository.findMemberEntityByNickname(nickname) @@ -49,14 +48,14 @@ public WeekGraphInfo getWeekGraphInfo(LocalDate date, String nickname) { map.put(day, new ArrayList<>()); } for(HealthInfo info : infoList) { - switch (info.getDate().getDayOfWeek()) { - case MONDAY: GraphTool.addHealthInfo(map, WeekOfDay.MONDAY, info); break; - case TUESDAY: GraphTool.addHealthInfo(map, WeekOfDay.TUESDAY, info); break; - case WEDNESDAY: GraphTool.addHealthInfo(map, WeekOfDay.WEDNESDAY, info); break; - case THURSDAY: GraphTool.addHealthInfo(map, WeekOfDay.THURSDAY, info); break; - case FRIDAY: GraphTool.addHealthInfo(map, WeekOfDay.FRIDAY, info); break; - case SATURDAY: GraphTool.addHealthInfo(map, WeekOfDay.SATURDAY, info); break; - case SUNDAY: GraphTool.addHealthInfo(map, WeekOfDay.SUNDAY, info); break; + switch (info.getCreatedAt().getDayOfWeek()) { + case MONDAY -> GraphTool.addHealthInfo(map, WeekOfDay.MONDAY, info); + case TUESDAY -> GraphTool.addHealthInfo(map, WeekOfDay.TUESDAY, info); + case WEDNESDAY -> GraphTool.addHealthInfo(map, WeekOfDay.WEDNESDAY, info); + case THURSDAY -> GraphTool.addHealthInfo(map, WeekOfDay.THURSDAY, info); + case FRIDAY -> GraphTool.addHealthInfo(map, WeekOfDay.FRIDAY, info); + case SATURDAY -> GraphTool.addHealthInfo(map, WeekOfDay.SATURDAY, info); + case SUNDAY -> GraphTool.addHealthInfo(map, WeekOfDay.SUNDAY, info); } } return new WeekGraphInfo(map); @@ -82,7 +81,7 @@ public YearGraphInfo getYearGraphInfo(LocalDate date, String nickname){ .collect(Collectors.toMap( month -> month, month -> Optional.of(infoList.stream() - .filter(info -> info.getDate().getMonth() == month) + .filter(info -> info.getCreatedAt().getMonth() == month) .collect(Collectors.toList())).orElse(new ArrayList<>()) )); Map monthlySlopes = new HashMap<>(); @@ -90,7 +89,7 @@ public YearGraphInfo getYearGraphInfo(LocalDate date, String nickname){ SimpleRegression regression = new SimpleRegression(); for (HealthInfo info : entry.getValue()) { double userData = GraphTool.calculateAverage(List.of(info)); - regression.addData(info.getDate().getDayOfMonth(), userData); + regression.addData(info.getCreatedAt().getDayOfMonth(), userData); } monthlySlopes.put(entry.getKey(), regression.getSlope()); } diff --git a/src/main/java/com/tukorea/turtleneck/backend/domain/health/service/HealthService.java b/src/main/java/com/tukorea/turtleneck/backend/domain/health/service/HealthService.java index d69bcd4..3a2be85 100644 --- a/src/main/java/com/tukorea/turtleneck/backend/domain/health/service/HealthService.java +++ b/src/main/java/com/tukorea/turtleneck/backend/domain/health/service/HealthService.java @@ -2,7 +2,7 @@ import com.tukorea.turtleneck.backend.domain.health.dao.HealthRepository; import com.tukorea.turtleneck.backend.domain.health.domain.HealthInfo; -import com.tukorea.turtleneck.backend.domain.health.dto.RecordRequest; +import com.tukorea.turtleneck.backend.domain.health.dto.request.RecordRequest; import com.tukorea.turtleneck.backend.domain.member.dao.MemberRepository; import com.tukorea.turtleneck.backend.domain.member.domain.MemberEntity; import com.tukorea.turtleneck.backend.domain.member.exception.NotFoundMemberException; @@ -22,7 +22,9 @@ public HealthInfo recordInfo(RecordRequest request){ .redCnt(request.getRedCnt()) .yellowCnt(request.getYellowCnt()) .greenCnt(request.getGreenCnt()) - .date(request.getDate()) + .shoulderAngle(request.getShoulderAngle()) + .headAngle(request.getHeadAngle()) + .distanceMonitor(request.getDistanceMonitor()) .build(); return healthRepository.save(info); } diff --git a/src/main/java/com/tukorea/turtleneck/backend/domain/member/controller/memberController.java b/src/main/java/com/tukorea/turtleneck/backend/domain/member/controller/memberController.java index a9008ae..9fbb37a 100644 --- a/src/main/java/com/tukorea/turtleneck/backend/domain/member/controller/memberController.java +++ b/src/main/java/com/tukorea/turtleneck/backend/domain/member/controller/memberController.java @@ -1,9 +1,9 @@ package com.tukorea.turtleneck.backend.domain.member.controller; -import com.tukorea.turtleneck.backend.domain.member.dto.MemberInfo; -import com.tukorea.turtleneck.backend.domain.member.dto.MemberCreateRequest; -import com.tukorea.turtleneck.backend.domain.member.dto.MemberLogInRequest; -import com.tukorea.turtleneck.backend.domain.member.dto.MemberMapper; +import com.tukorea.turtleneck.backend.domain.member.dto.response.MemberInfo; +import com.tukorea.turtleneck.backend.domain.member.dto.request.MemberCreateRequest; +import com.tukorea.turtleneck.backend.domain.member.dto.request.MemberLogInRequest; +import com.tukorea.turtleneck.backend.domain.member.dto.mapper.MemberMapper; import com.tukorea.turtleneck.backend.domain.member.service.MemberService; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; diff --git a/src/main/java/com/tukorea/turtleneck/backend/domain/member/dto/MemberMapper.java b/src/main/java/com/tukorea/turtleneck/backend/domain/member/dto/mapper/MemberMapper.java similarity index 83% rename from src/main/java/com/tukorea/turtleneck/backend/domain/member/dto/MemberMapper.java rename to src/main/java/com/tukorea/turtleneck/backend/domain/member/dto/mapper/MemberMapper.java index 3021fc8..b69291c 100644 --- a/src/main/java/com/tukorea/turtleneck/backend/domain/member/dto/MemberMapper.java +++ b/src/main/java/com/tukorea/turtleneck/backend/domain/member/dto/mapper/MemberMapper.java @@ -1,6 +1,8 @@ -package com.tukorea.turtleneck.backend.domain.member.dto; +package com.tukorea.turtleneck.backend.domain.member.dto.mapper; import com.tukorea.turtleneck.backend.domain.member.domain.MemberEntity; +import com.tukorea.turtleneck.backend.domain.member.dto.request.MemberCreateRequest; +import com.tukorea.turtleneck.backend.domain.member.dto.response.MemberInfo; import org.springframework.stereotype.Component; @Component diff --git a/src/main/java/com/tukorea/turtleneck/backend/domain/member/dto/MemberCreateRequest.java b/src/main/java/com/tukorea/turtleneck/backend/domain/member/dto/request/MemberCreateRequest.java similarity index 89% rename from src/main/java/com/tukorea/turtleneck/backend/domain/member/dto/MemberCreateRequest.java rename to src/main/java/com/tukorea/turtleneck/backend/domain/member/dto/request/MemberCreateRequest.java index 734fd7c..8c0ea8f 100644 --- a/src/main/java/com/tukorea/turtleneck/backend/domain/member/dto/MemberCreateRequest.java +++ b/src/main/java/com/tukorea/turtleneck/backend/domain/member/dto/request/MemberCreateRequest.java @@ -1,4 +1,4 @@ -package com.tukorea.turtleneck.backend.domain.member.dto; +package com.tukorea.turtleneck.backend.domain.member.dto.request; import com.tukorea.turtleneck.backend.domain.member.domain.Sex; import lombok.AccessLevel; @@ -15,13 +15,9 @@ public class MemberCreateRequest { @NotBlank private String emailId; - private String password; - private String nickname; - private String turtleNeckStatus; - private String turtleNeckPhoto; private Sex sex; private Integer age; diff --git a/src/main/java/com/tukorea/turtleneck/backend/domain/member/dto/MemberLogInRequest.java b/src/main/java/com/tukorea/turtleneck/backend/domain/member/dto/request/MemberLogInRequest.java similarity index 84% rename from src/main/java/com/tukorea/turtleneck/backend/domain/member/dto/MemberLogInRequest.java rename to src/main/java/com/tukorea/turtleneck/backend/domain/member/dto/request/MemberLogInRequest.java index 347f961..5b9d90c 100644 --- a/src/main/java/com/tukorea/turtleneck/backend/domain/member/dto/MemberLogInRequest.java +++ b/src/main/java/com/tukorea/turtleneck/backend/domain/member/dto/request/MemberLogInRequest.java @@ -1,4 +1,4 @@ -package com.tukorea.turtleneck.backend.domain.member.dto; +package com.tukorea.turtleneck.backend.domain.member.dto.request; import lombok.AccessLevel; import lombok.AllArgsConstructor; diff --git a/src/main/java/com/tukorea/turtleneck/backend/domain/member/dto/MemberInfo.java b/src/main/java/com/tukorea/turtleneck/backend/domain/member/dto/response/MemberInfo.java similarity index 84% rename from src/main/java/com/tukorea/turtleneck/backend/domain/member/dto/MemberInfo.java rename to src/main/java/com/tukorea/turtleneck/backend/domain/member/dto/response/MemberInfo.java index c7288c6..4364f3d 100644 --- a/src/main/java/com/tukorea/turtleneck/backend/domain/member/dto/MemberInfo.java +++ b/src/main/java/com/tukorea/turtleneck/backend/domain/member/dto/response/MemberInfo.java @@ -1,4 +1,4 @@ -package com.tukorea.turtleneck.backend.domain.member.dto; +package com.tukorea.turtleneck.backend.domain.member.dto.response; import com.tukorea.turtleneck.backend.domain.member.domain.Sex; import lombok.Builder; diff --git a/src/main/java/com/tukorea/turtleneck/backend/domain/member/service/MemberService.java b/src/main/java/com/tukorea/turtleneck/backend/domain/member/service/MemberService.java index 39e17ac..53f9732 100644 --- a/src/main/java/com/tukorea/turtleneck/backend/domain/member/service/MemberService.java +++ b/src/main/java/com/tukorea/turtleneck/backend/domain/member/service/MemberService.java @@ -2,9 +2,9 @@ import com.tukorea.turtleneck.backend.domain.member.dao.MemberRepository; import com.tukorea.turtleneck.backend.domain.member.domain.MemberEntity; -import com.tukorea.turtleneck.backend.domain.member.dto.MemberCreateRequest; -import com.tukorea.turtleneck.backend.domain.member.dto.MemberLogInRequest; -import com.tukorea.turtleneck.backend.domain.member.dto.MemberMapper; +import com.tukorea.turtleneck.backend.domain.member.dto.request.MemberCreateRequest; +import com.tukorea.turtleneck.backend.domain.member.dto.request.MemberLogInRequest; +import com.tukorea.turtleneck.backend.domain.member.dto.mapper.MemberMapper; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; From b79e5f7db7a00768c316f52e204429a3c946eb51 Mon Sep 17 00:00:00 2001 From: wschoe Date: Wed, 30 Aug 2023 23:38:15 +0900 Subject: [PATCH 3/4] fix: modify code in HealthRepository affected by change of HealthInfo spec --- .../backend/domain/health/dao/HealthRepository.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/tukorea/turtleneck/backend/domain/health/dao/HealthRepository.java b/src/main/java/com/tukorea/turtleneck/backend/domain/health/dao/HealthRepository.java index 75b8984..7f0a350 100644 --- a/src/main/java/com/tukorea/turtleneck/backend/domain/health/dao/HealthRepository.java +++ b/src/main/java/com/tukorea/turtleneck/backend/domain/health/dao/HealthRepository.java @@ -11,7 +11,7 @@ public interface HealthRepository extends JpaRepository { @Query("SELECT info FROM HealthInfo info WHERE info.memberEntity = :memberEntity " + - "AND info.date = :date " + + "AND DAYOFWEEK(info.createdAt) = :date " + "AND info.isActive = true") List findByDay( @Param("memberEntity") MemberEntity memberEntity, @@ -19,8 +19,8 @@ List findByDay( ); @Query("SELECT info FROM HealthInfo info WHERE info.memberEntity = :memberEntity " + - "AND info.date >= :startOfWeek " + - "AND info.date <= :endOfWeek " + + "AND DAYOFWEEK(info.createdAt) >= :startOfWeek " + + "AND DAYOFWEEK(info.createdAt) <= :endOfWeek " + "AND info.isActive = true") List findByWeek( @Param("memberEntity") MemberEntity memberEntity, @@ -29,7 +29,7 @@ List findByWeek( ); @Query("SELECT info FROM HealthInfo info WHERE info.memberEntity = :member " + - "AND YEAR(info.date) = :year " + + "AND YEAR(info.createdAt) = :year " + "AND info.isActive = true") List findByMemberEntityAndYear(@Param("member") MemberEntity member, @Param("year") int year); } From 0a02801faffe7509a8c9d7bab84732e97a2b592f Mon Sep 17 00:00:00 2001 From: rabbit-22 Date: Wed, 6 Sep 2023 01:34:27 +0900 Subject: [PATCH 4/4] fix: report page error --- .../domain/health/dao/HealthRepository.java | 18 ++++-- .../domain/health/service/GraphService.java | 62 +++++++++++++------ 2 files changed, 55 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/tukorea/turtleneck/backend/domain/health/dao/HealthRepository.java b/src/main/java/com/tukorea/turtleneck/backend/domain/health/dao/HealthRepository.java index 7f0a350..ff165a6 100644 --- a/src/main/java/com/tukorea/turtleneck/backend/domain/health/dao/HealthRepository.java +++ b/src/main/java/com/tukorea/turtleneck/backend/domain/health/dao/HealthRepository.java @@ -7,11 +7,12 @@ import org.springframework.data.repository.query.Param; import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.List; public interface HealthRepository extends JpaRepository { @Query("SELECT info FROM HealthInfo info WHERE info.memberEntity = :memberEntity " + - "AND DAYOFWEEK(info.createdAt) = :date " + + "AND DAYOFWEEK(info.createdAt) = DAYOFWEEK(:date) " + "AND info.isActive = true") List findByDay( @Param("memberEntity") MemberEntity memberEntity, @@ -19,17 +20,24 @@ List findByDay( ); @Query("SELECT info FROM HealthInfo info WHERE info.memberEntity = :memberEntity " + - "AND DAYOFWEEK(info.createdAt) >= :startOfWeek " + - "AND DAYOFWEEK(info.createdAt) <= :endOfWeek " + + "AND info.createdAt >= :startOfWeek " + + "AND info.createdAt <= :endOfWeek " + "AND info.isActive = true") List findByWeek( @Param("memberEntity") MemberEntity memberEntity, - @Param("startOfWeek") LocalDate startOfWeek, - @Param("endOfWeek") LocalDate endOfWeek + @Param("startOfWeek") LocalDateTime startOfWeek, + @Param("endOfWeek") LocalDateTime endOfWeek ); @Query("SELECT info FROM HealthInfo info WHERE info.memberEntity = :member " + "AND YEAR(info.createdAt) = :year " + "AND info.isActive = true") List findByMemberEntityAndYear(@Param("member") MemberEntity member, @Param("year") int year); + + @Query("SELECT h FROM HealthInfo h WHERE h.memberEntity = :memberEntity AND h.createdAt BETWEEN :startOfDay AND :endOfDay") + List findByDateTimeRange( + @Param("memberEntity") MemberEntity memberEntity, + @Param("startOfDay") LocalDateTime startOfDay, + @Param("endOfDay") LocalDateTime endOfDay + ); } diff --git a/src/main/java/com/tukorea/turtleneck/backend/domain/health/service/GraphService.java b/src/main/java/com/tukorea/turtleneck/backend/domain/health/service/GraphService.java index 33ffdd8..388f8e5 100644 --- a/src/main/java/com/tukorea/turtleneck/backend/domain/health/service/GraphService.java +++ b/src/main/java/com/tukorea/turtleneck/backend/domain/health/service/GraphService.java @@ -15,6 +15,7 @@ import java.time.DayOfWeek; import java.time.LocalDate; +import java.time.LocalDateTime; import java.time.Month; import java.time.temporal.TemporalAdjusters; import java.util.*; @@ -27,51 +28,72 @@ public class GraphService { private final MemberRepository memberRepository; public DayGraphInfo getDayGraphInfo(LocalDate date, String nickname){ + try{ MemberEntity memberEntity = memberRepository.findMemberEntityByNickname(nickname) .orElseThrow(NotFoundMemberException::new); List infoList = healthRepository.findByDay(memberEntity, date); long portion = GraphTool.calculatePortion(infoList); return DayGraphInfo.builder().portion(portion).build(); + } catch (Exception e) { + e.printStackTrace(); + } + return null; } public WeekGraphInfo getWeekGraphInfo(LocalDate date, String nickname) { + try { MemberEntity memberEntity = memberRepository.findMemberEntityByNickname(nickname) .orElseThrow(NotFoundMemberException::new); - LocalDate startOfWeek = date.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY)); - LocalDate endOfWeek = date.with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY)); + + LocalDateTime startOfWeek = date.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY)).atStartOfDay(); + LocalDateTime endOfWeek = date.with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY)).atTime(23, 59, 59); + List infoList = healthRepository.findByWeek(memberEntity, startOfWeek, endOfWeek); + if (infoList == null) { infoList = new ArrayList<>(); } + Map> map = new EnumMap<>(WeekOfDay.class); for (WeekOfDay day : WeekOfDay.values()) { map.put(day, new ArrayList<>()); } - for(HealthInfo info : infoList) { - switch (info.getCreatedAt().getDayOfWeek()) { - case MONDAY -> GraphTool.addHealthInfo(map, WeekOfDay.MONDAY, info); - case TUESDAY -> GraphTool.addHealthInfo(map, WeekOfDay.TUESDAY, info); - case WEDNESDAY -> GraphTool.addHealthInfo(map, WeekOfDay.WEDNESDAY, info); - case THURSDAY -> GraphTool.addHealthInfo(map, WeekOfDay.THURSDAY, info); - case FRIDAY -> GraphTool.addHealthInfo(map, WeekOfDay.FRIDAY, info); - case SATURDAY -> GraphTool.addHealthInfo(map, WeekOfDay.SATURDAY, info); - case SUNDAY -> GraphTool.addHealthInfo(map, WeekOfDay.SUNDAY, info); - } + + for (HealthInfo info : infoList) { + WeekOfDay day = WeekOfDay.valueOf(info.getCreatedAt().getDayOfWeek().name()); + GraphTool.addHealthInfo(map, day, info); } + return new WeekGraphInfo(map); + + } catch (Exception e) { + e.printStackTrace(); } + return null; +} - public MonthGraphInfo getMonthGraphInfo(LocalDate date, String nickname){ - MemberEntity memberEntity = memberRepository.findMemberEntityByNickname(nickname) - .orElseThrow(NotFoundMemberException::new); - List infoList = new ArrayList<>(); - for(int i = 1; i <= date.lengthOfMonth(); i++){ - LocalDate nowDate = date.withDayOfMonth(i); - double average = GraphTool.calculateAverage(healthRepository.findByDay(memberEntity, nowDate)); +public MonthGraphInfo getMonthGraphInfo(LocalDate date, String nickname) { + MemberEntity memberEntity = memberRepository.findMemberEntityByNickname(nickname) + .orElseThrow(NotFoundMemberException::new); + List infoList = new ArrayList<>(); + for (int i = 1; i <= date.lengthOfMonth(); i++) { + LocalDate nowDate = date.withDayOfMonth(i); + LocalDateTime startOfDay = nowDate.atStartOfDay(); + LocalDateTime endOfDay = nowDate.atTime(23, 59, 59); + + // Use the new findByDateTimeRange method + List healthInfos = healthRepository.findByDateTimeRange(memberEntity, startOfDay, endOfDay); + + if (healthInfos == null || healthInfos.isEmpty()) { + infoList.add(DayInfo.builder().x(i).y(0L).build()); + } else { + double average = GraphTool.calculateAverage(healthInfos); infoList.add(DayInfo.builder().x(i).y((long) average).build()); } - return MonthGraphInfo.builder().infoList(infoList).build(); } + return MonthGraphInfo.builder().infoList(infoList).build(); +} + public YearGraphInfo getYearGraphInfo(LocalDate date, String nickname){ MemberEntity memberEntity = memberRepository.findMemberEntityByNickname(nickname)