NOT_END_TO_START(400,"입차시간이 출차시간보다 빨라야 합니다.")
NOT_FOUND_PARK(400, "등록된 주차장이 없습니다.")
NOT_FOUND_CAR(400, "등록된 차량이 없습니다.")
ALREADY_RESERVED(400, "이미 예약된 시간입니다.")
NOT_FOUND_PARK_OPER_INFO(400, "해당 주차장 운영정보가 없습니다.")
(주차장 총 구획 수) - (현재 주차중인 차량 대수)
(선택시간과 겹치는 예약건수) - (예약차량 중 이미 입차한 차량 수)
(현재주차가능대수 > 선택시간 예약건수)
라면, 예약 가능(현재주차가능대수 <= 선택시간 예약건수)
라면, 예약이 불가하므로 예외처리NOT_PARKING_SPACE(400, "주차할 공간이 없습니다.")
관리자 로그인한 아이디가 해당 주차장의 관리자가 아닌 경우 예외처리
NOT_MGT_USER(400, "해당 주차장의 관리자가 아닙니다.")
주차장 ID가 ParkInfo
에 없는 경우 예외처리
NOT_FOUND_PARK(400, "등록된 주차장이 없습니다.")
입차하려는 차량번호가 주차장에 이미 입차한 차량인 경우 예외처리
ParkMgtInfo
)에서 해당 주차장에서 입차 차량번호로 입차한 차량 중, 마지막으로 입차한 현황 데이터를 가져온다.ALREADY_ENTER_CAR(400, "이미 입차된 차량입니다.")
해당 주차장에 현재 예약이 되어있는 차량 수 구한다.
입차 시도한 차량의 예약여부를 확인하여 일반차량 or 예약차량으로 분류한다.
4번에서 구한 현재 예약 차량 수와 현재 입차한 차량 수를 합하여 총 구획 수와 비교한다.
예약 차량 수 + 현재 주차중인 차량 수 < 총 구획 수
) 라면, 입차 가능예약 차량 수 + 현재 주차중인 차량 수 < 총 구획 수
) 라면, 입차 불가이므로 예외처리NOT_PARKING_SPACE(400, "주차할 공간이 없습니다.")
NOT_MGT_USER(400, "해당 주차장의 관리자가 아닙니다.")
NOT_FOUND_CAR(400, "등록된 차량이 없습니다.")
ALREADY_TAKEN_OUT_CAR(400,"이미 출차된 차량입니다.")
ParkMgtInfo
) 업데이트NOT_END_TO_START(400,"입차시간이 출차시간보다 빨라야 합니다.")
NOT_FOUND_PARK(400, "등록된 주차장이 없습니다.")
NOT_FOUND_CAR(400, "등록된 차량이 없습니다.")
ALREADY_RESERVED(400, "이미 예약된 시간입니다.")
NOT_FOUND_PARK_OPER_INFO(400, "해당 주차장 운영정보가 없습니다.")
(예약선택시간에 다른 차량이 예약한 건수) >= (주차장 예약차량 구획 수)
라면, 예약불가 시간대 리스트(notAllowedTimeList
)에 추가한다.NOT_ALLOWED_BOOKING_TIME(400, "예약불가한 시간이 포함되어 있습니다.")
NOT_MGT_USER(400, "해당 주차장의 관리자가 아닙니다.")
ParkInfo
에 없는 경우 예외처리NOT_FOUND_PARK(400, "등록된 주차장이 없습니다.")
ParkMgtInfo
)에서 해당 주차장에서 입차 차량번호로 입차한 차량 중, 마지막으로 입차한 현황 데이터를 가져온다.ALREADY_ENTER_CAR(400, "이미 입차된 차량입니다.")
예약 시작시간 ≤ 현재시간 ≤ 예약 종료시간
에 해당하는 데이터가 있는 경우예약차량 구획 > 입차중인 예약차량 수
)일 경우, 입차 가능예약차량 구획 <= 입차중인 예약차량 수
)일 경우, 입차 불가하므로 예외처리NOT_PARKING_SPACE(400, "주차할 공간이 없습니다.")
일반차량 구획 > 입차중인 일반차량 수
)일 경우, 입차 가능일반차량 구획 <= 입차중인 일반차량 수
)일 경우, 입차 불가하므로 예외처리NOT_PARKING_SPACE(400, "주차할 공간이 없습니다.")
NOT_MGT_USER(400, "해당 주차장의 관리자가 아닙니다.")
NOT_FOUND_CAR(400, "등록된 차량이 없습니다.")
ALREADY_TAKEN_OUT_CAR(400,"이미 출차된 차량입니다.")
ParkMgtInfo
) 업데이트park_mgt_info
)에 주차 구역을 표시할 zone
컬럼 추가NOT_END_TO_START(400,"입차시간이 출차시간보다 빨라야 합니다.")
NOT_FOUND_PARK(400, "등록된 주차장이 없습니다.")
NOT_FOUND_CAR(400, "등록된 차량이 없습니다.")
ALREADY_RESERVED(400, "이미 예약된 시간입니다.")
NOT_FOUND_PARK_OPER_INFO(400, "해당 주차장 운영정보가 없습니다.")
(예약선택시간에 다른 차량이 예약한 건수) >= (주차장 예약차량 구획 수)
라면, 예약불가 시간대 리스트(notAllowedTimeList
)에 추가한다.NOT_ALLOWED_BOOKING_TIME(400, "예약불가한 시간이 포함되어 있습니다.")
NOT_MGT_USER(400, "해당 주차장의 관리자가 아닙니다.")
ParkInfo
에 없는 경우 예외처리NOT_FOUND_PARK(400, "등록된 주차장이 없습니다.")
ParkMgtInfo
)에서 해당 주차장에서 입차 차량번호로 입차한 차량 중, 마지막으로 입차한 현황 데이터를 가져온다.ALREADY_ENTER_CAR(400, "이미 입차된 차량입니다.")
NOT_FOUND_PARK_OPER_INFO(400, "해당 주차장 운영정보가 없습니다.")
getUseSpaceInfo
)getParkSpaceInfo
)예약 시작시간 ≤ 현재시간 ≤ 예약 종료시간
에 해당하는 데이터가 있는 경우예약구역 수 ≤ 예약구역 입차 차량 수
) 입차 불가 예외처리NOT_PARKING_BOOKING_SPACE(400, "주차할 공간이 없습니다. - 예약구역")
BOOKING
으로 넣어준다.일반구역 수 > 일반구역 입차 차량 수
), 구역(zone)은 GENERAL
, 금액(charge)은 0원으로 입차정보를 넣어준다.공통구역수 > 공통구역 입차 차량 수
), 구역(zone)은 COMMON
, 금액(charge)은 0원으로 입차정보를 넣어준다.NOT_PARKING_COMMON_SPACE(400, "주차할 공간이 없습니다. - 공통구역")
NOT_MGT_USER(400, "해당 주차장의 관리자가 아닙니다.")
NOT_FOUND_ENTER_CAR(400, "입차한 차량이 없습니다.")
ALREADY_TAKEN_OUT_CAR(400,"이미 출차된 차량입니다.")
NOT_FOUND_PARK_OPER_INFO(400, "해당 주차장 운영정보가 없습니다.")
ParkMgtInfo
) 업데이트현재시간:0분:0초
인 예약건을 모두 가져온다.현재시간 -59분 59초
부터 현재시간:0분:0초
의 예약건을 모두 가져온다.주차장 시간별 예약현황 테이블
을 추가로 만든다.주차장 시간별 예약현황 테이블
의 주차가능대수를 확인하여 예약가능여부를 판단한다.주차장 시간별 예약현황 테이블
데이터를 업데이트한다.park_mgt_info
테이블의 zone
컬럼 삭제park_booking_by_hour
테이블 생성NOT_END_TO_START(400,"입차시간이 출차시간보다 빨라야 합니다.")
NOT_FOUND_PARK(400, "등록된 주차장이 없습니다.")
NOT_FOUND_CAR(400, "등록된 차량이 없습니다.")
ALREADY_RESERVED(400, "이미 예약된 시간입니다.")
NOT_FOUND_PARK_OPER_INFO(400, "해당 주차장 운영정보가 없습니다.")
NOT_OPEN_SELECTED_DATE(400, "선택하신 시간에는 운영하지 않습니다.")
ParkBookingByHour
테이블에서예약 날짜, 시간에 해당하는 주차가능대수를 확인한다.ParkBookingByHour
테이블에서 (주차가능대수 ≤ 0)
이라면, 예약불가 시간대 리스트(notAllowedTimeList
)에 추가한다.ParkBookingByHour
테이블에 예약날짜, 시간에 해당하는 데이터가 없다면, 그 시간대는 예약한 차량이 없는 것이므로 예약이 가능하다.ParkBookingByHour
) 정보를 업데이트한다.ParkBookingByHour
에 예약시작시간 ~ 종료시간 사이 날짜, 시간에 해당하는 데이터가 있다면, 해당 데이터의 주차가능대수(available
)를 1 줄인다.총 구획 수 - 1
)로 데이터를 생성하여 ParkBookingByHour
에 저장한다.NOT_FOUND_PARK_OPER_INFO(400, "해당 주차장 운영정보가 없습니다.")
NOT_OPEN_SELECTED_DATE(400, "선택하신 시간에는 운영하지 않습니다.")
ParkBookingByHour
테이블에서 예약 날짜, 시간에 해당하는 주차가능대수를 확인한다.ParkBookingByHour
테이블에서 (주차가능대수 ≤ 0)
이라면, 예약불가 시간대 리스트(notAllowedTimeList
)에 추가한다.ParkBookingByHour
테이블에 예약날짜, 시간에 해당하는 데이터가 없다면, 그 시간대는 예약한 차량이 없는 것이므로 예약이 가능하다.ParkBookingByHour
) 정보를 업데이트한다.ParkBookingByHour
에 예약시작시간 ~ 종료시간 사이 날짜, 시간에 해당하는 데이터가 있다면, 해당 데이터의 주차가능대수(available
)를 1 줄인다.총 구획 수 - 1
)로 데이터를 생성하여 ParkBookingByHour
에 저장한다.NOT_MGT_USER(400, "해당 주차장의 관리자가 아닙니다.")
ParkInfo
에 없는 경우 예외처리NOT_FOUND_PARK(400, "등록된 주차장이 없습니다.")
ParkMgtInfo
)에서 해당 주차장에서 입차 차량번호로 입차한 차량 중, 마지막으로 입차한 현황 데이터를 가져온다.ALREADY_ENTER_CAR(400, "이미 입차된 차량입니다.")
NOT_FOUND_PARK_OPER_INFO(400, "해당 주차장 운영정보가 없습니다.")
예약 시작시간 ≤ 현재시간 ≤ 예약 종료시간
에 해당하는 데이터가 있는 경우ParkBookingByHour
에 입차 시간대 주차가능자리(available
)가 있는지 확인한다.ParkBookingByHour
에 새 데이터를 만들어준다.(주차가능자리 수) > 0
이라면, 주차가능대수(available
)를 1 줄인다.(주차가능자리 수) <= 0
이라면, 주차장의 자리가 없으므로 예외처리한다.NOT_PARKING_SPACE(400, "주차할 공간이 없습니다.")
ParkBookinByHour
에서 (주차가능대수) < 0
이거나, (현재 주차중인 차량 수) >= (주차장 총 구획 수)
인 경우 입차불가하므로 예외처리한다.NOT_PARKING_SPACE(400, "주차할 공간이 없습니다.")
(주차가능대수) >= 0
이고, (현재 주차중인 차량 수) < (주차장 총 구획 수)
라면, 입차 가능하다.NOT_MGT_USER(400, "해당 주차장의 관리자가 아닙니다.")
NOT_FOUND_CAR_IN_PARK(400, "주차장에 차량이 없습니다.")
NOT_FOUND_PARK_OPER_INFO(400, "해당 주차장 운영정보가 없습니다.")
ParkBookingByHour
시간대별 availble
숫자를 1 증가시킨다.exitTime
)을 1시간 더한다.ParkBookingByHour
)에서 예약종료시간대에 해당하는 데이터를 업데이트한다.ParkBookingByHour
에 저장한다.ParkBookingByHour
테이블의 주차가능대수(availbale
)만 확인하면 되도록 수정하여 성능을 개선하였다.