Skip to content

class BikeService - 대여한 자전거 없을 경우 #28

@seojungHwang

Description

@seojungHwang

void returnBike() 메소드에서 추가

void returnBike() { // 반납
        Scanner input = new Scanner(System.in);  //여기서부터
        RentList my_list = null;

        for (int i = 0 ; i < rentList.size() ; i++) {
            if (rentList.get(i).getUserPhoneNum().equals(Menu.cur_user_id)) { //대여한게 있다면
                my_list = rentList.get(i);
            }
        }

        if (my_list == null) { //RentList에 대여한 목록에 없다면
            System.out.println("대여 중인 자전거가 없습니다");
            return;
        }

        System.out.println("반납할 자전거의 일련번호를 입력해주세요");
        String id = input.nextLine();   //여기까지 추가

        for(String key : bikeList.keySet()) { // bikeList
            io.loadRentList();
            if (bikeList.containsKey(id) && bikeList.get(id).getRentalStatus().equals(RentalStatus.UNAVAILABLE)) {
                for (int i = 0 ; i < rentList.size() ; i++) {
                     if (rentList.get(i).getId().contains(id)) {
                        RentList list = rentList.get(i);
                        // time.inputEndTime(i); > 진짜 시간
                        time.testEndTime(i); // > 테스트용 시간
                        int fee = calculateFee(id,list.getStartTime(),list.getEndTime()); // 시간입력
                        payFee(i,fee,id); // 계산
                        io.writeBikeList();
                        io.writeRentList();
                        break;
                    }
                }
                break;
            } else {
                System.out.println("일련번호가 일치하지 않습니다.");
                break;
            }
        }
    }

void payFee() 메소드에서 자전거 반납 후 rentlist에서 삭제 기능 추가

void payFee(int index, int fee, String id) {
        DecimalFormat df = new DecimalFormat("#,###");
        System.out.println("결제요금: " + df.format(fee) + "원");
        System.out.println("[요금안내] 1시간 당 1인용 : 1,000원, 2인용 : 2,000원");
        System.out.println("* 요금은 시간 단위로 계산되어 1분 초과 시부터 올림 적용됩니다");
        System.out.println("결제하시겠습니까?");
        System.out.println("1. 예 | 2. 아니오 (취소)");
        Scanner scan = new Scanner(System.in);
        int input = Integer.parseInt(scan.nextLine());
        if (input == 1) {
            rentList.get(index).setFee(fee);
            bikeList.get(id).setRentalStatus(RentalStatus.AVAILABLE); 
            rentList.remove(index); //자전거 반납 후 렌트 리스트에서 삭제
           io.writeRentList();
            io.writeBikeList();
            System.out.println("결제가 완료되었습니다.");
            System.out.println("이용해 주셔서 감사합니다 :D");

class Menu - void displayUserMenu() 메소드 수정

while (true);

                switch (menu) {
                    case 1:
                        bikeService.rentalBike("S");
                        break;
                    case 2:
                        bikeService.rentalBike("T");
                        break;
                    case 3:
                        bikeService.returnBike();  // 여기 수정
                        break;
                    case 4:
                        return;
                }
            }
    }

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions