Skip to content

Commit 1049e21

Browse files
authored
Merge pull request #233 from prgrms-web-devcourse-final-project/lkh/schedule/refactor
일정 - 일정 조회 에러 수정
2 parents df5cd1b + 344d7ee commit 1049e21

File tree

7 files changed

+30
-8
lines changed

7 files changed

+30
-8
lines changed

src/main/java/com/grepp/spring/app/controller/api/event/payload/request/CreateEventRequest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@ public class CreateEventRequest {
2222

2323
@Schema(description = "이벤트 제목", example = "스터디 모임")
2424
@NotBlank(message = "이벤트 제목은 필수입니다.")
25-
@Size(max = 10, message = "이벤트 제목은 10자를 초과할 수 없습니다.")
25+
@Size(max = 20, message = "이벤트 제목은 10자를 초과할 수 없습니다.")
2626
private String title;
2727

2828
@Schema(description = "이벤트 설명", example = "매주 화요일 스터디 모임입니다.")
29-
@Size(max = 500, message = "이벤트 설명은 500자를 초과할 수 없습니다.")
29+
@Size(max = 50, message = "이벤트 설명은 50자를 초과할 수 없습니다.")
3030
private String description;
3131

3232
@Schema(description = "미팅 타입", example = "ONLINE", allowableValues = {"ONLINE", "OFFLINE"})

src/main/java/com/grepp/spring/app/controller/api/schedule/payload/request/CreateSchedulesRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public class CreateSchedulesRequest {
1919
private LocalDateTime startTime;
2020
private LocalDateTime endTime;
2121

22-
@Size(max = 10, message = "일정 제목은 10자를 초과할 수 없습니다.")
22+
@Size(max = 20, message = "일정 제목은 20자를 초과할 수 없습니다.")
2323
private String scheduleName;
2424

2525
@Size(max = 50, message = "일정 설명은 50자를 초과할 수 없습니다.")

src/main/java/com/grepp/spring/app/model/schedule/dto/ScheduleMembersDto.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,7 @@ public class ScheduleMembersDto {
2222
private String departLocationName;
2323
private Double latitude;
2424
private Double longitude;
25+
26+
// 어떤 장소에 투표했는지
27+
private Long VoteLocationId;
2528
}

src/main/java/com/grepp/spring/app/model/schedule/dto/ShowScheduleDto.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ public static ShowScheduleResponse fromDto(ShowScheduleDto dto) {
6868
.build();
6969
}
7070

71-
public static ShowScheduleDto fromEntity(MeetingType meetingType, Long event, Schedule schedule, List<ScheduleMember> scheduleMembers, List<Workspace> workspace) {
71+
public static ShowScheduleDto fromEntity(MeetingType meetingType, Long event, Schedule schedule, List<ScheduleMember> scheduleMembers, List<Workspace> workspace, List<Long> voteLocationId) {
7272

7373
ScheduleStatus scheduleStatus;
7474

@@ -80,6 +80,8 @@ public static ShowScheduleDto fromEntity(MeetingType meetingType, Long event, Sc
8080
scheduleStatus = ScheduleStatus.FIXED;
8181
}
8282

83+
84+
8385
List<ScheduleMembersDto> members = IntStream.range(0, scheduleMembers.size())
8486
.mapToObj(i-> new ScheduleMembersDto(
8587
scheduleMembers.get(i).getMember().getId(),
@@ -88,7 +90,8 @@ public static ShowScheduleDto fromEntity(MeetingType meetingType, Long event, Sc
8890
scheduleMembers.get(i).getRole(),
8991
scheduleMembers.get(i).getDepartLocationName(),
9092
scheduleMembers.get(i).getLatitude(),
91-
scheduleMembers.get(i).getLongitude()
93+
scheduleMembers.get(i).getLongitude(),
94+
voteLocationId.size() > i ? voteLocationId.get(i) : null
9295
))
9396
.collect(Collectors.toList());
9497

src/main/java/com/grepp/spring/app/model/schedule/repository/VoteQueryRepository.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,7 @@ public interface VoteQueryRepository extends JpaRepository<Vote, Long> {
1313

1414
@Query("select v from Vote v where v.scheduleMember.id = :scheduleMemberId")
1515
Vote findByScheduleMemberId(@Param("scheduleMemberId") Long scheduleMemberId);
16+
17+
@Query("select v.location.id from Vote v where v.schedule.id = :id")
18+
List<Long> findByScheduleIdAndMemberId(@Param("id") Long id);
1619
}

src/main/java/com/grepp/spring/app/model/schedule/service/ScheduleCommandService.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -257,8 +257,9 @@ private void modifyScheduleEntity(Long scheduleId, ModifyScheduleDto dto) {
257257
if (dto.getMeetingPlatform() != null) {
258258
schedule.get().setMeetingPlatform(dto.getMeetingPlatform());
259259
}
260-
261-
schedule.get().setPlatformUrl(dto.getPlatformURL());
260+
if (dto.getPlatformURL() != null) {
261+
schedule.get().setPlatformUrl(dto.getPlatformURL());
262+
}
262263
}
263264

264265
private void modifyWorkspaceEntity(Long scheduleId, ModifyScheduleDto dto, Long workspaceId) {
@@ -469,9 +470,12 @@ public void voteMiddleLocation(Schedule schedule, ScheduleMember scheduleMember,
469470
Vote vote = VoteMiddleLocationDto.fromDto(dto);
470471
voteCommandRepository.save(vote);
471472

473+
472474
int voteCount = voteQueryRepository.findByScheduleId(schedule.getId()).size();
473475
log.info("voteCount = {}", voteCount);
474476

477+
// Optional<Schedule> schedule1 = scheduleQueryRepository.findById(schedule.getId());
478+
475479

476480
if (scheduleMemberNumber - voteCount == 0) {
477481
Long winnerLocationId = 0L;
@@ -487,6 +491,14 @@ public void voteMiddleLocation(Schedule schedule, ScheduleMember scheduleMember,
487491
Optional<Location> winnerLocation = locationQueryRepository.findById(winnerLocationId);
488492
log.info("winnerLocation: {}", winnerLocation);
489493
winnerLocation.get().setStatus(VoteStatus.WINNER);
494+
495+
final String name = winnerLocation.get().getName();
496+
497+
log.info("name={}", name);
498+
schedule.setLocation(name);
499+
scheduleCommandRepository.save(schedule);
500+
501+
// em.flush();
490502
}
491503
}
492504

src/main/java/com/grepp/spring/app/model/schedule/service/ScheduleQueryService.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,10 @@ public ShowScheduleResponse showSchedule(Schedule schedule, String userId) {
6969
List<Workspace> workspaces = workspaceQueryRepository.findAllByScheduleId(schedule.getId());
7070

7171
MeetingType meetingType = eventRepository.findById(eventId).get().getMeetingType();
72+
List<Long> voteLocationId = voteQueryRepository.findByScheduleIdAndMemberId(schedule.getId());
7273

7374
ShowScheduleDto dto = ShowScheduleDto.fromEntity(meetingType, eventId, schedule,
74-
scheduleMembers, workspaces);
75+
scheduleMembers, workspaces, voteLocationId);
7576

7677
return ShowScheduleDto.fromDto(dto);
7778
}

0 commit comments

Comments
 (0)