Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 20 additions & 10 deletions src/main/java/young/blaybus/domain/job_search/JobSearch.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,9 @@
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import young.blaybus.domain.job_search.request.JobSearchAreaRequest;
import young.blaybus.domain.job_search.request.JobSearchTimeSlotRequest;
import young.blaybus.domain.job_search.request.UpdateJobSearchRequest;
import young.blaybus.domain.member.Member;

import young.blaybus.util.enums.DayOfWeek;

@Entity
@Builder
Expand All @@ -34,6 +33,12 @@ public class JobSearch {
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Comment("시작 시간")
private LocalTime startTime;

@Comment("종료 시간")
private LocalTime endTime;

@Comment("희망 급여")
private Integer salary;

Expand All @@ -54,9 +59,16 @@ public class JobSearch {

@Builder.Default
@OneToMany(mappedBy = "jobSearch", cascade = CascadeType.ALL, orphanRemoval = true)
private List<JobSearchTimeSlot> timeSlots = new ArrayList<>();
private List<JobSearchDay> dayList = new ArrayList<>();

public void updateFromDto(UpdateJobSearchRequest request){
if(request.startTime()!=null) {
this.startTime = LocalTime.parse(request.startTime());
}

if(request.endTime()!=null) {
this.endTime = LocalTime.parse(request.endTime());
}

if(request.salary()!=null) {
this.salary = request.salary();
Expand All @@ -72,14 +84,12 @@ public void updateFromDto(UpdateJobSearchRequest request){
}
}

if (!request.timeSlots().isEmpty()) {
this.timeSlots.clear();
for (JobSearchTimeSlotRequest timeSlot : request.timeSlots()) {
this.timeSlots.add(JobSearchTimeSlot.builder()
if(!request.dayList().isEmpty()) {
this.dayList.clear();
for (DayOfWeek dayOfWeek : request.dayList()) {
this.dayList.add(JobSearchDay.builder()
.jobSearch(this)
.day(timeSlot.day())
.startTime(LocalTime.parse(timeSlot.startTime()))
.endTime(LocalTime.parse(timeSlot.endTime()))
.day(dayOfWeek)
.build());
}
}
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,19 @@ public record CreateJobSearchRequest(
@Schema(description = "회원 ID")
String memberId,

@Schema(description = "근무 시작 시간 (09:30)")
String startTime,

@Schema(description = "근무 종료 시간(18:00)")
String endTime,

@Schema(description = "희망 시급")
Integer salary,

@Schema(description = "근무 가능 지역")
List<JobSearchAreaRequest> jobSearchAreas,

@Schema(description = "근무 가능 요일&시간대 목록")
List<JobSearchTimeSlotRequest> timeSlots
@Schema(description = "근무 가능 요일 목록")
List<DayOfWeek> dayList
) {
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@

@Schema(description = "구직 정보 수정 객체")
public record UpdateJobSearchRequest(
@Schema(description = "근무 시작 시간 (09:30)")
String startTime,

@Schema(description = "근무 종료 시간(18:00)")
String endTime,

@Schema(description = "희망 시급")
Integer salary,
Expand All @@ -15,9 +20,6 @@ public record UpdateJobSearchRequest(
List<JobSearchAreaRequest> jobSearchAreas,

@Schema(description = "근무 가능 요일 목록")
List<DayOfWeek> dayList,

@Schema(description = "근무 가능 요일&시간대 목록")
List<JobSearchTimeSlotRequest> timeSlots
List<DayOfWeek> dayList
) {
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,18 @@
public class DetailJobSearchResponse {
@Schema(description = "구직 정보 ID")
private Long jobSearchId;
@Schema(description = "근무 시작 시간")
private String startTime;

@Schema(description = "근무 종료 시간")
private String endTime;

@Schema(description = "희망 급여")
private Integer salary;

@Schema(description = "근무 가능 지역 목록")
private List<JobSearchAreaResponse> jobSearchAreas;

@Schema(description = "근무 가능 요일&시간대 목록")
private List<JobSearchTimeSlotResponse> timeSlots;
@Schema(description = "근무 가능 요일 목록")
private List<String> dayList;
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@
import org.springframework.transaction.annotation.Transactional;
import young.blaybus.domain.job_search.JobSearch;
import young.blaybus.domain.job_search.JobSearchArea;
import young.blaybus.domain.job_search.JobSearchTimeSlot;
import young.blaybus.domain.job_search.JobSearchDay;
import young.blaybus.domain.job_search.repository.JobSearchRepository;
import young.blaybus.domain.job_search.request.CreateJobSearchRequest;
import young.blaybus.domain.job_search.request.UpdateJobSearchRequest;
import young.blaybus.domain.job_search.response.DetailJobSearchResponse;
import young.blaybus.domain.job_search.response.JobSearchAreaResponse;
import young.blaybus.domain.job_search.response.JobSearchTimeSlotResponse;
import young.blaybus.domain.member.Member;
import young.blaybus.domain.member.repository.MemberRepository;
import young.blaybus.util.enums.DayOfWeek;

import java.time.LocalDateTime;
import java.time.LocalTime;
Expand All @@ -35,28 +35,28 @@ public void createJobSearch(CreateJobSearchRequest jobSearchRequest) {

JobSearch jobSearch = JobSearch.builder()
.member(member)
.startTime(LocalTime.parse(jobSearchRequest.startTime()))
.endTime(LocalTime.parse(jobSearchRequest.endTime()))
.salary(jobSearchRequest.salary())
.createdTime(LocalDateTime.now())
.build();

List<JobSearchArea> areas = jobSearchRequest.jobSearchAreas().stream()
List<JobSearchArea> jobSearchAreas = jobSearchRequest.jobSearchAreas().stream()
.map(areaRequest -> JobSearchArea.builder()
.address(areaRequest.address())
.jobSearch(jobSearch)
.build())
.toList();
jobSearch.getJobSearchAreas().addAll(areas);
jobSearch.getJobSearchAreas().addAll(jobSearchAreas);


List<JobSearchTimeSlot> timeSlots = jobSearchRequest.timeSlots().stream()
.map(slot -> JobSearchTimeSlot.builder()
List<JobSearchDay> jobSearchDays = jobSearchRequest.dayList().stream()
.map(day -> JobSearchDay.builder()
.day(day)
.jobSearch(jobSearch)
.day(slot.day())
.startTime(LocalTime.parse(slot.startTime()))
.endTime(LocalTime.parse(slot.endTime()))
.build())
.toList();
jobSearch.getTimeSlots().addAll(timeSlots);
jobSearch.getDayList().addAll(jobSearchDays);

jobSearchRepository.save(jobSearch);
}
Expand All @@ -76,24 +76,22 @@ public DetailJobSearchResponse getJobSearch(String memberId) {
JobSearch jobSearch= jobSearchRepository.findByMemberId(memberId)
.orElseThrow(()->new IllegalArgumentException("해당 회원의 구직 정보가 존재하지 않습니다."));

List<JobSearchAreaResponse> areaResponses = jobSearch.getJobSearchAreas().stream().map(jobSearchArea ->
List<JobSearchAreaResponse> jobSearchAreaResponses = jobSearch.getJobSearchAreas().stream().map(jobSearchArea ->
JobSearchAreaResponse.builder().address(jobSearchArea.getAddress()).build()
).toList();

List<JobSearchTimeSlotResponse> timeSlotResponses = jobSearch.getTimeSlots().stream()
.map(slot -> JobSearchTimeSlotResponse.builder()
.day(slot.getDay())
.startTime(slot.getStartTime().toString())
.endTime(slot.getEndTime().toString())
.build())
.toList();
List<String> dayList = jobSearch.getDayList().stream()
.map(JobSearchDay::getDay)
.map(DayOfWeek::toString)
.collect(Collectors.toList());

return DetailJobSearchResponse.builder()
.jobSearchId(jobSearch.getId())
.startTime(jobSearch.getStartTime().toString())
.endTime(jobSearch.getEndTime().toString())
.salary(jobSearch.getSalary())
.jobSearchAreas(areaResponses)
.timeSlots(timeSlotResponses)
.jobSearchAreas(jobSearchAreaResponses)
.dayList(dayList)
.build();

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import young.blaybus.domain.job_search.response.JobSearchTimeSlotResponse;
import young.blaybus.util.enums.DayOfWeek;

@Builder
Expand All @@ -27,8 +26,15 @@ public class ListRecommendDto {
@Schema(description = "프로필 사진")
private String profileUrl;

@Schema(description = "근무 가능 요일&시간대 목록")
private List<TimeSlotDto> timeSlots;
@Setter
@Schema(description = "희망 요일 목록")
private List<DayOfWeek> dayList;

@Schema(description = "희망 시작 시간")
private LocalTime startTime;

@Schema(description = "희망 종료 시간")
private LocalTime endTime;

@Schema(description = "돌봄 스타일")
private String careStyle;
Expand Down

This file was deleted.

Loading