Skip to content

Commit f5edb49

Browse files
committed
πŸ› fix: 쀑간μž₯μ†Œ WINNER λ³€κ²½λ˜μ§€ μ•ŠλŠ” μ—λŸ¬ μˆ˜μ •
1 parent 5f88143 commit f5edb49

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

β€Žsrc/main/java/com/grepp/spring/app/model/schedule/repository/LocationQueryRepository.javaβ€Ž

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import java.util.Optional;
77
import org.springframework.data.jpa.repository.JpaRepository;
88
import org.springframework.data.jpa.repository.Lock;
9+
import org.springframework.data.jpa.repository.Modifying;
910
import org.springframework.data.jpa.repository.Query;
1011
import org.springframework.data.repository.query.Param;
1112

@@ -17,4 +18,5 @@ public interface LocationQueryRepository extends JpaRepository<Location, Long> {
1718
@Lock(LockModeType.PESSIMISTIC_WRITE)
1819
@Query("select l from Location l where l.id = :id")
1920
Optional<Location> findByIdWithPessimisticLock(@Param("id") Long id);
21+
2022
}

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -453,19 +453,25 @@ public void voteMiddleLocation(Schedule schedule, ScheduleMember scheduleMember,
453453
// νŒŒλΌλ―Έν„°λ₯Ό id둜 λ°›μœΌλ©΄ 더 쒋을 것 κ°™μŒ
454454
Location location = locationQueryRepository.findByIdWithPessimisticLock(lid.getId())
455455
.orElseThrow(() -> new IllegalArgumentException("μž₯μ†Œλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€."));
456+
// log.info("location = {}", location.toString());
457+
456458

457459
// 락 이후 voteCnt μ¦κ°€μ‹œν‚€κΈ°
458460
location.setVoteCount(location.getVoteCount() + 1);
459461

460462
List<Location> locationList = locationQueryRepository.findByScheduleId(schedule.getId());
463+
// log.info("locationList = {}", locationList.toString());
464+
461465
int scheduleMemberNumber = scheduleMemberQueryRepository.findByScheduleId(schedule.getId()).size();
462-
int voteCount = voteQueryRepository.findByScheduleId(schedule.getId()).size();
463466

464467
// vote μ €μž₯ μ‹œμ μ„ λ’€λ‘œ λ―Έλ€„μ„œ, Location 락과의 ꡐ착을 λ°©μ§€
465468
VoteMiddleLocationDto dto = VoteMiddleLocationDto.toDto(scheduleMember, lid, schedule);
466469
Vote vote = VoteMiddleLocationDto.fromDto(dto);
467470
voteCommandRepository.save(vote);
468471

472+
int voteCount = voteQueryRepository.findByScheduleId(schedule.getId()).size();
473+
log.info("voteCount = {}", voteCount);
474+
469475

470476
if (scheduleMemberNumber - voteCount == 0) {
471477
Long winnerLocationId = 0L;
@@ -479,6 +485,7 @@ public void voteMiddleLocation(Schedule schedule, ScheduleMember scheduleMember,
479485
}
480486

481487
Optional<Location> winnerLocation = locationQueryRepository.findById(winnerLocationId);
488+
log.info("winnerLocation: {}", winnerLocation);
482489
winnerLocation.get().setStatus(VoteStatus.WINNER);
483490
}
484491
}

0 commit comments

Comments
Β (0)