//
Search
⏱️

스케줄링

블로그로 정리해 올린 글입니다
작성자
2024/08/17
→ 2024/08/16

기획 상의 상태 변경 지점

OfferingStatus

모집 마감 (CONFIMRED)
사용자가 수동으로 마감 버튼을 눌렀을 때 → 수동 마감 API
마감이 아닌 공모 기준으로, meetingDate의 00시가 됐을 때 (자동 확정)
meetingDate가 오늘 && 상태가 CONFIRMED가 아님 → CONFIRMED로 업데이트
인원 만석 (FULL)
마감이 아닌 공모 기준으로, 인원이 다 찼을 때 → 공모 참여 API
마감 임박 (IMMINENT)
마감이 아닌 공모 기준으로, 인원이 거의 다 찼을 때 → 공모 참여 API
마감이 아닌 공모 기준으로, meetingDate 전날의 00시가 됐을 때
meetingDate가 내일 && 상태가 CONFIRMED가 아님 → IMMINENT로 업데이트
모집 중 (AVAILABLE)
최초 상태 → 공모 작성 API
예외
취소 API 호출 시 상태 업데이트

CommentRoomStatus

모집중 (GROUPING)
최초 상태
인원확정 (BUYING)
모집중 상태에서, 채팅방 상태 업데이트 API 호출했을 때 (수동 확정)
마감이 아닌 공모 기준으로, meetingDate의 00시가 됐을 때 (자동 확정)
구매중 (TRADING)
구매중 상태에서, 채팅방 상태 업데이트 API 호출했을 때
거래중 (DONE)
거래중 상태에서, 채팅방 상태 업데이트 API 호출했을 때
변경 사항
공모 작성 시, 당일을 meetingDate로 설정하지 못하게 막아야 합니다
isManualConfirmed 필드 지울지 고려해보아야 합니다
public boolean isMeetingDateAlmostOver() { LocalDateTime now = LocalDateTime.now(); LocalDateTime threshold = meetingDate.minusHours(6); return threshold.isBefore(now) && now.isBefore(meetingDate); } public boolean isMeetingDateOver() { return !isMeetingDateNotOver(); } public boolean isMeetingDateNotOver() { LocalDateTime now = LocalDateTime.now(); return now.isBefore(this.meetingDate); }
Java
복사