Skip to content

Commit 3bf3918

Browse files
committed
♻️refractor: nullable 수정
1 parent e024777 commit 3bf3918

File tree

5 files changed

+19
-22
lines changed

5 files changed

+19
-22
lines changed

src/main/java/org/withtime/be/withtimebe/domain/date/controller/query/DateQueryController.java

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,7 @@
2222
import org.withtime.be.withtimebe.domain.date.dto.request.DateRequestDTO;
2323
import org.withtime.be.withtimebe.domain.date.dto.response.DateResponseDTO;
2424
import org.withtime.be.withtimebe.domain.date.entity.DateCourse;
25-
import org.withtime.be.withtimebe.domain.date.entity.enums.BudgetLevel;
26-
import org.withtime.be.withtimebe.domain.date.entity.enums.DateTime;
27-
import org.withtime.be.withtimebe.domain.date.entity.enums.MealType;
28-
import org.withtime.be.withtimebe.domain.date.entity.enums.Transportation;
25+
import org.withtime.be.withtimebe.domain.date.entity.enums.*;
2926
import org.withtime.be.withtimebe.domain.date.service.query.DateQueryService;
3027
import org.withtime.be.withtimebe.domain.member.entity.Member;
3128
import org.withtime.be.withtimebe.global.annotation.SwaggerPageable;
@@ -45,16 +42,16 @@ public class DateQueryController {
4542
@ApiResponse(responseCode = "404", description = "DATE_COURSE404_1 : 해당하는 데이트 코스를 찾을 수 없습니다.")
4643
})
4744
@Parameters({
48-
@Parameter(name = "budget", in = ParameterIn.QUERY,
49-
schema = @Schema(implementation = BudgetLevel.class)),
45+
@Parameter(name = "datePriceRange", in = ParameterIn.QUERY,
46+
schema = @Schema(implementation = DatePriceRange.class)),
5047
@Parameter(name = "datePlaces", in = ParameterIn.QUERY, description = "만날 장소",
5148
style = ParameterStyle.FORM, explode = Explode.TRUE,
5249
array = @ArraySchema(schema = @Schema(type = "string"))),
5350
@Parameter(name = "dateDurationTime", in = ParameterIn.QUERY,
5451
schema = @Schema(implementation = DateTime.class)),
5552
@Parameter(name = "mealTypes", in = ParameterIn.QUERY, description = "식사 타입",
5653
style = ParameterStyle.FORM, explode = Explode.TRUE,
57-
array = @ArraySchema(schema = @Schema(implementation = MealType.class))),
54+
array = @ArraySchema(schema = @Schema(type = "string",allowableValues = { "BREAKFAST", "LUNCH", "DINNER" }))),
5855
@Parameter(name = "transportation", in = ParameterIn.QUERY,
5956
schema = @Schema(implementation = Transportation.class)),
6057
@Parameter(name = "userPreferredKeywords", in = ParameterIn.QUERY, description = "키워드",
@@ -79,9 +76,10 @@ public DefaultResponse<DateResponseDTO.DateCourseList> findDateCourses(
7976
description = "해당 코스를 찾을 수 없습니다")
8077
})
8178
@Parameters({
82-
@Parameter(name = "budget", in = ParameterIn.QUERY,
83-
schema = @Schema(implementation = BudgetLevel.class)),
79+
@Parameter(name = "datePriceRange", in = ParameterIn.QUERY,
80+
schema = @Schema(implementation = DatePriceRange.class)),
8481
@Parameter(name = "datePlaces", in = ParameterIn.QUERY, description = "만날 장소",
82+
required = false, allowEmptyValue = true,
8583
style = ParameterStyle.FORM, explode = Explode.TRUE,
8684
array = @ArraySchema(schema = @Schema(type = "string"))),
8785
@Parameter(name = "dateDurationTime", in = ParameterIn.QUERY,

src/main/java/org/withtime/be/withtimebe/domain/date/converter/DateConverter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import org.withtime.be.withtimebe.domain.date.entity.*;
88
import org.withtime.be.withtimebe.domain.member.entity.Member;
99

10-
import java.time.LocalDate;
1110
import java.time.LocalDateTime;
1211
import java.time.LocalTime;
1312
import java.util.Collections;
@@ -132,6 +131,7 @@ public static DateResponseDTO.DateCourse createDateCourse(DateCourse dateCourse,
132131
.toList();
133132

134133
return DateResponseDTO.DateCourse.builder()
134+
.dateCourseId(dateCourse.getId())
135135
.name(dateCourse.getName())
136136
.datePlaces(datePlaces)
137137
.isBookmarked(bookmarked)
@@ -141,7 +141,7 @@ public static DateResponseDTO.DateCourse createDateCourse(DateCourse dateCourse,
141141

142142
public static DateResponseDTO.DateCourseSearchCondInfo createSearchCond(DateRequestDTO.DateCourseSearchCond cond){
143143
return DateResponseDTO.DateCourseSearchCondInfo.builder()
144-
.budget(cond.budget())
144+
.budget(cond.datePriceRange())
145145
.datePlaces(cond.datePlaces())
146146
.mealTypes(cond.mealTypes())
147147
.transportation(cond.transportation())

src/main/java/org/withtime/be/withtimebe/domain/date/dto/request/DateRequestDTO.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package org.withtime.be.withtimebe.domain.date.dto.request;
22

3-
import com.fasterxml.jackson.annotation.JsonFormat;
43
import com.fasterxml.jackson.annotation.JsonProperty;
54
import io.swagger.v3.oas.annotations.media.Schema;
65
import jakarta.validation.constraints.NotBlank;
@@ -65,7 +64,7 @@ public record SaveDateCourse(
6564
){}
6665

6766
public record DateCourseSearchCond(
68-
DatePriceRange budget,
67+
DatePriceRange datePriceRange,
6968
@Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED, nullable = true)
7069
List<String> datePlaces,
7170
DateTime dateDurationTime,

src/main/java/org/withtime/be/withtimebe/domain/date/dto/response/DateResponseDTO.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ public record DatePlace(
3535

3636
@Builder
3737
public record DateCourse(
38+
Long dateCourseId,
3839
String name,
3940
List<DateResponseDTO.DatePlace> datePlaces,
4041
DateCourseSearchCondInfo dateCourseSearchCondInfo,

src/main/java/org/withtime/be/withtimebe/domain/date/repository/DateCourseRepositoryImpl.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import java.util.Collection;
2020
import java.util.List;
2121

22-
import static org.springframework.util.ObjectUtils.isEmpty;
2322
import static org.withtime.be.withtimebe.domain.date.entity.QDateCourse.dateCourse;
2423

2524

@@ -37,7 +36,7 @@ public Page<DateCourse> searchDateCourseByApplyPage(DateRequestDTO.DateCourseSea
3736
boolean hasKeywords = dateCourseSearchCond.userPreferredKeywords() != null && !dateCourseSearchCond.userPreferredKeywords().isEmpty();
3837

3938
List<DateCourse> content = queryFactory.selectFrom(dateCourse)
40-
.where(datePriceRangeEq(dateCourseSearchCond.budget()),
39+
.where(datePriceRangeEq(dateCourseSearchCond.datePriceRange()),
4140
datePlacesEq(dateCourseSearchCond.datePlaces()),
4241
dateTimeEq(dateCourseSearchCond.dateDurationTime()),
4342
mealTypesEq(dateCourseSearchCond.mealTypes()),
@@ -51,7 +50,7 @@ public Page<DateCourse> searchDateCourseByApplyPage(DateRequestDTO.DateCourseSea
5150

5251
Long total = queryFactory.select(dateCourse.id.countDistinct())
5352
.from(dateCourse)
54-
.where(datePriceRangeEq(dateCourseSearchCond.budget()),
53+
.where(datePriceRangeEq(dateCourseSearchCond.datePriceRange()),
5554
datePlacesEq(dateCourseSearchCond.datePlaces()),
5655
dateTimeEq(dateCourseSearchCond.dateDurationTime()),
5756
mealTypesEq(dateCourseSearchCond.mealTypes()),
@@ -75,7 +74,7 @@ public Page<DateCourse> searchDateCourseBookmarkByMemberAndApplyPage(DateReques
7574
List<DateCourse> content = queryFactory.selectFrom(dateCourse)
7675
.join(dateCourseBookmark).on(dateCourseBookmark.dateCourse.eq(dateCourse))
7776
.where(dateCourseBookmark.member.id.eq(member.getId()),
78-
datePriceRangeEq(dateCourseSearchCond.budget()),
77+
datePriceRangeEq(dateCourseSearchCond.datePriceRange()),
7978
datePlacesEq(dateCourseSearchCond.datePlaces()),
8079
dateTimeEq(dateCourseSearchCond.dateDurationTime()),
8180
mealTypesEq(dateCourseSearchCond.mealTypes()),
@@ -91,7 +90,7 @@ public Page<DateCourse> searchDateCourseBookmarkByMemberAndApplyPage(DateReques
9190
.from(dateCourse)
9291
.join(dateCourseBookmark).on(dateCourseBookmark.dateCourse.eq(dateCourse))
9392
.where(dateCourseBookmark.member.id.eq(member.getId()),
94-
datePriceRangeEq(dateCourseSearchCond.budget()),
93+
datePriceRangeEq(dateCourseSearchCond.datePriceRange()),
9594
datePlacesEq(dateCourseSearchCond.datePlaces()),
9695
dateTimeEq(dateCourseSearchCond.dateDurationTime()),
9796
mealTypesEq(dateCourseSearchCond.mealTypes()),
@@ -124,19 +123,19 @@ private BooleanExpression datePriceRangeEq(DatePriceRange datePriceRange){
124123
}
125124

126125
private BooleanExpression datePlacesEq(List<String> datePlaces){
127-
return datePlaces.isEmpty() ? null : dateCourse.datePlaces.any().in(datePlaces);
126+
return datePlaces == null ? null : dateCourse.datePlaces.any().in(datePlaces);
128127
}
129128

130129
private BooleanExpression dateTimeEq(DateTime dateTime){
131-
return isEmpty(dateTime) ? null : dateCourse.dateTime.eq(dateTime);
130+
return dateTime == null ? null : dateCourse.dateTime.eq(dateTime);
132131
}
133132

134133
private BooleanExpression mealTypesEq(List<MealType> mealTypes){
135-
return mealTypes.isEmpty() ? null : dateCourse.mealTypes.any().in(mealTypes);
134+
return mealTypes== null ? null : dateCourse.mealTypes.any().in(mealTypes);
136135
}
137136

138137
private BooleanExpression transportationEq(Transportation transportation){
139-
return isEmpty(transportation) ? null : dateCourse.transportation.eq(transportation);
138+
return transportation == null ? null : dateCourse.transportation.eq(transportation);
140139
}
141140

142141
private BooleanExpression allEq(DatePriceRange datePriceRange, List<String> datePlaces,

0 commit comments

Comments
 (0)