Skip to content

Conversation

@Leesowon
Copy link
Collaborator

@Leesowon Leesowon commented Jan 27, 2026

관련 이슈

📌 작업 개요

  • 기사 배차 상태 관리 기능 구현
  • 기사가 배차중일 때 중복 배차 방지 로직 추가
  • 현재 배차중인 오더 상세 정보 조회 API 구현

주요 변경 사항

  1. 기사 배차 상태(dispatchStatus) 필드 추가

    • DispatchStatus enum 추가 (EMPTY, DISPATCH)
    • Transporter 엔티티에 dispatchStatus 필드 추가 (기본값: EMPTY)
    • 배차 수락 시 → DISPATCH, 배차 취소/완료 시 → EMPTY로 자동 관리
  2. 배차중인 기사의 중복 배차 방지

    • 배차 리스트 조회 API에서 DISPATCH 상태 체크 로직 추가
    • DISPATCH 상태에서 배차 리스트 조회 시 TRANSPORTER_ALREADY_DISPATCHED 에러 반환
    • 에러 메시지: "이미 배차중인 오더가 있습니다."
  3. 현재 배차중인 오더 상세 정보 조회 API 추가

    • GET /api/v1/transporter/current-dispatch 엔드포인트 구현
    • CurrentDispatchDetailRes DTO 추가 (이미지 참고하여 필요한 모든 필드 포함)
    • DISPATCH 상태일 때만 조회 가능, EMPTY 상태에서는 에러 반환

기술적 구현

  • ResultCodeTRANSPORTER_ALREADY_DISPATCHED (3004) 추가
  • DispatchRepositoryfindByTransporterIdAndStatus 메서드 추가
  • DispatcherServicegetCurrentDispatch 메서드 추가
  • 기존 assignDispatch, cancelDispatch, completeDispatch 메서드에 상태 관리 로직 추가

✨ 기타 참고 사항

  • ref 디렉토리의 그림1.png를 참고하여 CurrentDispatchDetailRes DTO 필드 구성
  • GlobalExceptionHandler를 통해 에러 응답이 자동으로 JSON 형태로 반환되므로 프론트엔드에서 message 필드로 에러 메시지 표시 가능
  • 배차 상태 변경은 Dirty Checking을 활용하여 자동으로 DB 업데이트

✅ 체크리스트

  • PR 템플릿에 맞추어 작성했어요.
  • PR에 적절한 라벨을 선택했어요.
  • 변경 내용에 대한 테스트를 진행했어요.
  • application.yml 파일을 수정했다면, Notion에 업로드, github security 수정 및 공유했어요.
  • 로컬 서버에서 정상 동작을 확인했어요. (main, test)
  • 불필요한 코드는 삭제했어요.

  - DispatchStatus enum 추가 (EMPTY, DISPATCH)
  - Transporter 엔티티에 dispatchStatus 필드 추가
  - 배차중인 기사는 배차 리스트 조회 불가 처리
  - 배차 수락 시 상태를 DISPATCH로 변경
  - 배차 취소/완료 시 상태를 EMPTY로 변경
  - TRANSPORTER_ALREADY_DISPATCHED 에러 코드 추가 (3004)
@Leesowon Leesowon self-assigned this Jan 27, 2026
@Leesowon Leesowon added the ✨ Feature 새로운 기능을 추가합니다. label Jan 27, 2026
@Leesowon Leesowon merged commit d85e5ad into dev Jan 27, 2026
1 check passed
@Leesowon Leesowon deleted the feat/#59 branch January 27, 2026 13:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨ Feature 새로운 기능을 추가합니다.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants