Skip to content

Commit f181402

Browse files
refactor : 소켓메세지 전송할 때 body 안넣어도 되도록 수정 및 오류 해결 (#26)
* docs : PR Template 작성 * docs : readmd.md 변경 * feat : entity 수정 * refactor : enum 클래스 분리 및 repo에 JPA 상속 * feat : create(), saveSeatInfo() 기본 틀 구현 * feat : 예매상태 변경하는 메서드 구현 및 생성자 수정 * feat : updatePrice() 메서드 구현 * feat : 일정시간 후 좌석반환, 공통응답 구현 * feat : reservation 도메인 예외처리 * refactor : 다른 api와 중복되는 api 삭제 * feat : redis 연결설정 및 예매 대기 기능 구현 * feat : 소켓 연결 끊겼을 때 sorted set에서 데이터 삭제하는 로직 구현 * refactor : 전체 코드 리팩토링 * feat : 예매취소, 예매조회 api 및 유효성 검증 구현 * refactor : 인터셉터에서 데이터 추출 방식 변경 및 주석 제거 * chore : .gitignore update * feat : 소켓 연결 테스트코드 작성 * chore : 테스트코드 수정 * fix : 테스트코드 오류 수정, SecurityConfig oauth 설정 주석 처리 * chore : 주석 해제 * chore : dev-ci.yml에 redis 설정 추가 * chore : redis 버전 변경, 호스트명 변경 * feat : 티켓팅 가능 시간 체크하는 로직 추가 * fix : seat 테이블 컬럼 수정 반영 * refactor : 결제 도메인이랑 로직 연결 * chore : 사용안하는 클래스 삭제 * refactor : 소켓 연결시 헤더에서 token 추출 * feat : 대기열 TTL을 좌석 선택 화면 접근 후부터 적용하도록 수정 * feat : 예매취소시 좌석 반환 * feat : SeatScheduleInfo Service에 대기열 passed 여부 확인 및 좌석 선택 완료 후 queue에서 삭제 * refactor : 소켓메세지 전송할 때 body 안넣어도 되도록 수정 및 오류 해결 * chore : 웹소켓 테스트용 text 파일 추가 --------- Co-authored-by: pokerbearkr <ogdongwon@gmail.com>
1 parent 93b5578 commit f181402

File tree

4 files changed

+13
-8
lines changed

4 files changed

+13
-8
lines changed

src/main/java/org/example/siljeun/domain/reservation/controller/WaitingQueueController.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package org.example.siljeun.domain.reservation.controller;
22

3-
import jakarta.validation.Valid;
43
import lombok.RequiredArgsConstructor;
5-
import org.example.siljeun.domain.reservation.dto.request.AddQueueRequest;
64
import org.example.siljeun.domain.reservation.service.WaitingQueueService;
5+
import org.springframework.messaging.Message;
76
import org.springframework.messaging.handler.annotation.MessageMapping;
7+
import org.springframework.messaging.simp.SimpMessageHeaderAccessor;
88
import org.springframework.web.bind.annotation.RestController;
99

1010
@RestController
@@ -14,9 +14,14 @@ public class WaitingQueueController {
1414
private final WaitingQueueService waitingQueueService;
1515

1616
@MessageMapping("/addQueue")
17-
public void addQueue(@Valid AddQueueRequest request) {
18-
Long scheduleId = request.scheduleId();
19-
String username = request.username();
17+
public void addQueue(Message<?> message) {
18+
SimpMessageHeaderAccessor accessor = SimpMessageHeaderAccessor.wrap(message);
19+
20+
String username = (String) accessor.getSessionAttributes().get("username");
21+
Long scheduleId = Long.valueOf((String) accessor.getSessionAttributes().get("scheduleId"));
22+
23+
//Long scheduleId = request.scheduleId();
24+
//String username = request.username();
2025
waitingQueueService.addWaitingQueue(scheduleId, username);
2126
System.out.println("연결 성공");
2227
}

src/main/java/org/example/siljeun/domain/reservation/entity/Reservation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ public Reservation(User user, SeatScheduleInfo seatScheduleInfo) {
7070

7171
public void updateTicketPrice(UpdatePriceRequest dto) {
7272
if (!StringUtils.isBlank(dto.ticketReceipt())) {
73-
this.ticketReceipt = TicketReceipt.valueOf(dto.ticketReceipt());
73+
this.ticketReceipt = TicketReceipt.valueOf(dto.ticketReceipt().toUpperCase());
7474
}
7575
if (!StringUtils.isBlank(dto.discount())) {
7676
this.discount = Discount.valueOf(dto.discount());

src/main/java/org/example/siljeun/domain/schedule/controller/SeatScheduleInfoController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public class SeatScheduleInfoController {
1818

1919
private final SeatScheduleInfoService seatScheduleInfoService;
2020

21-
@PostMapping("/seat-schedule-info/{seatScheduleInfoId}")
21+
@PostMapping("/seat-schedule-infos/{seatScheduleInfoId}")
2222
public ResponseEntity<String> selectSeat(
2323
@PathVariable Long seatScheduleInfoId,
2424
@AuthenticationPrincipal PrincipalDetails userDetails
@@ -28,7 +28,7 @@ public ResponseEntity<String> selectSeat(
2828
return ResponseEntity.ok("좌석이 선택되었습니다.");
2929
}
3030

31-
@GetMapping("/schedule/{scheduleId}/seat-schedule-info")
31+
@GetMapping("/schedules/{scheduleId}/seat-schedule-infos")
3232
public ResponseEntity<Map<String, String>> getSeatScheduleInfos(
3333
@PathVariable Long scheduleId
3434
) {
109 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)