
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)만 확인하면 되도록 수정하여 성능을 개선하였다.
