관리 메뉴

거니의 velog

9. 관리자 페이지 (6) : 라이더 관리 본문

대덕인재개발원_1st project

9. 관리자 페이지 (6) : 라이더 관리

Unlimited00 2023. 8. 19. 12:15

public int riderCreate() {
    String riderCode = ""; // 라이더코드
    String AbseYN = ""; // 부재유무
    long deliCost = 0; // 배달비
    String stoCode = ""; // 업체코드

    String createRider = ""; // 라이더 생성

    System.out.println(" ───────────────────────────────────────────────────");
    System.out.println("어느 가게에 라이더로 등록하십니까?");
    System.out.println("1. 업체코드로 입력");
    System.out.println("2. 업체명 검색");
    System.out.println(" ───────────────────────────────────────────────────");
    System.out.print(" >> ");
    int storeChoi = ScanUtil.nextIntegerLine();
    if(storeChoi == 1) {
        while(true) {
            System.out.println(" ───────────────────────────────────────────────────");
            System.out.println(" 업체코드 입력");
            System.out.println(" ───────────────────────────────────────────────────");
            System.out.print(" >> ");
            stoCode = ScanUtil.nextLine();
            if(ValidationUtil.validationCode(stoCode)) break;
        }
    }else if(storeChoi == 2) {
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.println(" 업체명을 입력해 주세요.");
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.print(" >> ");
        String storeName = ScanUtil.nextLine();
        List<Object> searchStoreName = new ArrayList<>();
        searchStoreName.add(storeName);
        List<Map<String, Object>> storeInfo = adminReadDAO.storeSearchFromStoName(searchStoreName);
        if(NullCheckUtil.isEmpty(storeInfo)) {
            System.out.println(" ───────────────────────────────────────────────────");
            System.out.println("등록된 업체가 없습니다!");
            System.out.println(" ───────────────────────────────────────────────────");
        }else {
            List<Map<String, Object>> storeALL = adminReadDAO.storeALL();
            int maxStoCodeLen = gapUtil.gapFullCnt(storeALL, "STOCODE");
            int maxNmLen = gapUtil.gapFullCnt(storeALL, "STONM");
            int maxAddLen = gapUtil.gapFullCnt(storeALL, "STOADD");
            System.out.println(" ──────────────────────────────────────────────────────────────────────────");
            System.out.println("업체코드    업체명         업체주소");
            System.out.println(" ──────────────────────────────────────────────────────────────────────────");
            for(Map<String, Object> item : storeInfo) {
                int storeStoCodeLen = gapUtil.gapCnt("STOCODE");
                int storeNmLen = gapUtil.gapCnt("STONM");
                int storeAddLen = gapUtil.gapCnt("STOADD");

                StringBuilder memSTOCODE = gapUtil.gapFullSpace(String.valueOf(item.get("STOCODE")), maxStoCodeLen, storeStoCodeLen);
                StringBuilder memNM = gapUtil.gapFullSpace(String.valueOf(item.get("STONM")), maxNmLen, storeNmLen);
                StringBuilder memADD = gapUtil.gapFullSpace(String.valueOf(item.get("STOADD")), maxAddLen, storeAddLen);
                System.out.printf("%-" + maxStoCodeLen + "s%-" + maxNmLen + "s%-" + maxAddLen + "s\n", memSTOCODE, memNM, memADD);
            }
        }
        EnterUtil.enterNext(2);
        return View.ADMIN_RIDER_MANAGEMENT;
    }

    List<Object> searchStoNm = new ArrayList<>();
    searchStoNm.add(stoCode);
    Map<String, Object> stoName = adminCreateDAO.searchStoreName(searchStoNm);
    String stoNameStr = stoName.get("STONM").toString();

    while(true) {
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.println("[ " + stoNameStr + " ] 가게에 라이더를 등록합니다.");
        System.out.println();
        System.out.println("현재 라이더가 대전광역시 어느 구에 위치해 있습니까?");
        System.out.println("1. 대덕구");
        System.out.println("2. 동구");
        System.out.println("3. 서구");
        System.out.println("4. 유성구");
        System.out.println("5. 중구");
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.print(" >> ");
        int GuSelect = ScanUtil.nextIntegerLine();
        if(GuSelect == 1) {
            riderCode = "AG";
            break;
        }else if(GuSelect == 2) {
            riderCode = "DG";
            break;
        }else if(GuSelect == 3) {
            riderCode = "SG";
            break;
        }else if(GuSelect == 4) {
            riderCode = "YG";
            break;
        }else if(GuSelect == 5) {
            riderCode = "JG";
            break;
        }else {
            System.out.println("올바로 입력해 주세요.");
        }
    }

    while(true) {
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.println("현재 근무하시는 업체와의 계약 형태가 어떻게 되십니까?");
        System.out.println();
        System.out.println("1. 전속계약");
        System.out.println("2. 외주계약");
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.print(" >> ");
        int contractSelect = ScanUtil.nextIntegerLine();
        if(contractSelect == 1) {
            riderCode += "CON";
            break;
        }else if(contractSelect == 2) {
            riderCode += "OUT";
            break;
        }else {
            System.out.println("올바로 입력해 주세요.");
        }
    }

    riderCode += "%";
    List<Object> cdStr = new ArrayList<>();
    cdStr.add(riderCode);
    List<Map<String, Object>> searchRiderCode = adminCreateDAO.searchRiderCode(cdStr);
    if(NullCheckUtil.isEmpty(searchRiderCode)) {
        riderCode += "01";
        riderCode = riderCode.replace("%", "");
    }else {
        riderCode += searchRiderCode.get(0).get("RIDCODE").toString();
        riderCode = riderCode.replace("%", "");
    }

    while(true) {
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.println("현재 배달이 가능하십니까? (y / n)");
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.print(" >> ");
        AbseYN = ScanUtil.nextLine();
        if(ValidationUtil.validationYN(AbseYN)) {
            AbseYN = AbseYN.toUpperCase();
            break;
        }
    }

    while(true) {
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.println("배달비를 입력해 주세요. (0 ~ 9999999999)");
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.print(" >> ");
        deliCost = ScanUtil.nextLong();
        System.out.println();
        if(ValidationUtil.validationPrice(deliCost)) break;
    }

    while(true) {
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.println("라이더를 등록하시겠습니까? (y / n)");
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.print(" >> ");
        createRider = ScanUtil.nextLine();
        if(ValidationUtil.validationYN(createRider)) break;
    }

    if(createRider.equals("n")) {
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.println("라이더 등록을 취소합니다.");
        System.out.println(" ───────────────────────────────────────────────────");
        EnterUtil.enterNext(2);
        return View.ADMIN_MENU_MANAGEMENT;
    }else if(createRider.equals("y")) {
        List<Object> param = new ArrayList<>();
        param.add(riderCode);
        param.add(AbseYN);
        param.add(deliCost);
        param.add(stoCode);
        int isSuccess = adminCreateDAO.createRider(param);
        if (isSuccess > 0) {
            System.out.println(" ───────────────────────────────────────────────────");
            System.out.println("라이더 등록이 완료되었습니다!");
            System.out.println(" ───────────────────────────────────────────────────");
            EnterUtil.enterNext(2);
        }else {
            System.out.println(" ───────────────────────────────────────────────────");
            System.out.println(">> 라이더 등록 실패! <<");
            System.out.println(" ───────────────────────────────────────────────────");
            EnterUtil.enterNext(2);
        }
    }

    return View.ADMIN_RIDER_MANAGEMENT;
}

public int riderRead() {
    List<Map<String, Object>> riderALL = adminReadDAO.riderALL();

    if(NullCheckUtil.isEmpty(riderALL)) {
        System.out.println("등록된 라이더가 없습니다!");
    }else {
        int maxRideCodeLen = gapUtil.gapFullCnt(riderALL, "RIDCODE");
        int maxDeliCostLen = gapUtil.gapFullCnt(riderALL, "DELICOST");
        int maxAbsetyLen = gapUtil.gapFullCnt(riderALL, "ABSEYN");
        int maxStoNmLen = gapUtil.gapFullCnt(riderALL, "STONM");

        // 페이징 기능
        int pageNumber = 1; // 현재 페이지 번호
        int pageSize = 5;  // 페이지당 표시할 데이터 수

        int startIndex = (pageNumber - 1) * pageSize; // 시작 인덱스
        int endIndex = Math.min(startIndex + pageSize, riderALL.size()); // 끝 인덱스

        int pageRowCnt = riderALL.size(); // 로우 개수
        int totalPageSize = pageRowCnt / pageSize; // 총 페이지 개수

        if(pageRowCnt % pageSize != 0) { // 다음 페이지까지 로우가 남음
            totalPageSize++;
        }

        System.out.println(" ───────────────────────────────────────────────────");
        System.out.println(" 1. 전체목록 보기");
        System.out.println(" 2. 페이지 목록 보기");
        System.out.println(" 3. 부분 검색");
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.print(" >> ");
        int choice = ScanUtil.nextInt();
        if(choice == 1) { // 전체 검색
            System.out.println(" ────────────────────────────────");
            System.out.println(" 총 라이더 수 "+ pageRowCnt +" 명");
            System.out.println(" ────────────────────────────────");
            System.out.println("라이더코드    배달비    배달가능    소속된업체명");
            System.out.println(" ────────────────────────────────");
            for(Map<String, Object> item : riderALL) {
                int memRideCodeLen = gapUtil.gapCnt(item, "RIDCODE");
                int memDeliCostLen = gapUtil.gapCnt(item, "DELICOST");
                int memAbsetyLen = gapUtil.gapCnt(item, "ABSEYN");
                int memStoNmLen = gapUtil.gapCnt(item, "STONM");

                StringBuilder memRideCode = gapUtil.gapFullSpace(String.valueOf(item.get("RIDCODE")), maxRideCodeLen, memRideCodeLen);
                StringBuilder memDeliCost = gapUtil.gapFullSpace(String.valueOf(item.get("DELICOST")), maxDeliCostLen, memDeliCostLen);
                StringBuilder memAbsety = gapUtil.gapFullSpace(String.valueOf(item.get("ABSEYN")), maxAbsetyLen, memAbsetyLen);
                StringBuilder memStoNm = gapUtil.gapFullSpace(String.valueOf(item.get("STONM")), maxStoNmLen, memStoNmLen);
                System.out.printf("%-" + maxRideCodeLen + "s%-" + maxDeliCostLen + "s%-" + maxAbsetyLen + "s%-" + maxStoNmLen + "s\n", memRideCode, memDeliCost, memAbsety, memStoNm);
            }
            EnterUtil.enterNext(1);
        }else if(choice == 2) { // 페이징 검색
            System.out.println(" ───────────────────────────────────────────────────");
            System.out.println(" 한 페이지에 몇 개의 데이터를 보시겠습니까?");
            System.out.println(" ───────────────────────────────────────────────────");
            System.out.print(" >> ");
            pageSize = ScanUtil.nextInt();
            startIndex = (pageNumber - 1) * pageSize;
            endIndex = Math.min(startIndex + pageSize, riderALL.size());
            totalPageSize = pageRowCnt / pageSize; // 총 페이지 개수
            if(pageRowCnt % pageSize != 0) { // 다음 페이지까지 로우가 남음
                totalPageSize++;
            }
            System.out.println(" ────────────────────────────────");
            System.out.println(" 총 라이더 수 "+ pageRowCnt +" 명  : " + pageNumber + " / " + totalPageSize + " 페이지");
            System.out.println(" ────────────────────────────────");
            System.out.println("라이더코드    배달비    배달가능    소속된업체명");
            System.out.println(" ────────────────────────────────");
            for(int i = startIndex; i < endIndex; i++) {
                int memRideCodeLen = gapUtil.gapCnt(String.valueOf(riderALL.get(i).get("RIDCODE")));
                int memDeliCostLen = gapUtil.gapCnt(String.valueOf(riderALL.get(i).get("DELICOST")));
                int memAbsetyLen = gapUtil.gapCnt(String.valueOf(riderALL.get(i).get("ABSEYN")));
                int memStoNmLen = gapUtil.gapCnt(String.valueOf(riderALL.get(i).get("STONM")));

                StringBuilder memRideCode = gapUtil.gapFullSpace(String.valueOf(riderALL.get(i).get("RIDCODE")), maxRideCodeLen, memRideCodeLen);
                StringBuilder memDeliCost = gapUtil.gapFullSpace(String.valueOf(riderALL.get(i).get("DELICOST")), maxDeliCostLen, memDeliCostLen);
                StringBuilder memAbsety = gapUtil.gapFullSpace(String.valueOf(riderALL.get(i).get("ABSEYN")), maxAbsetyLen, memAbsetyLen);
                StringBuilder memStoNm = gapUtil.gapFullSpace(String.valueOf(riderALL.get(i).get("STONM")), maxStoNmLen, memStoNmLen);
                System.out.printf("%-" + maxRideCodeLen + "s%-" + maxDeliCostLen + "s%-" + maxAbsetyLen + "s%-" + maxStoNmLen + "s\n", memRideCode, memDeliCost, memAbsety, memStoNm);
            }
            while(true) {
                System.out.println(" ───────────────────────────────────────────────────");
                System.out.println(" 1. 원하는 페이지 보기");
                System.out.println(" 0. 이전 화면");
                System.out.println(" ───────────────────────────────────────────────────");
                System.out.print(" >> ");
                int pageListSelect = ScanUtil.nextInt();
                if(pageListSelect == 1) {
                    System.out.println(" ───────────────────────────────────────────────────");
                    System.out.println(" 몇 페이지를 보시겠습니까?");
                    System.out.println(" ───────────────────────────────────────────────────");
                    System.out.print(" >> ");
                    pageNumber = ScanUtil.nextInt();
                    if(pageNumber > totalPageSize || pageNumber <= 0) {
                        System.out.println(" ────────────────────────────────");
                        System.out.println(" 총 라이더 수 "+ pageRowCnt +" 명  : " + pageNumber + " / " + totalPageSize + " 페이지");
                        System.out.println(" ────────────────────────────────");
                        System.out.println("라이더코드    배달비    배달가능    소속된업체명");
                        System.out.println(" ────────────────────────────────");
                        System.out.println("해당 페이지는 정보가 없습니다.");
                    }else {
                        startIndex = (pageNumber - 1) * pageSize;
                        endIndex = Math.min(startIndex + pageSize, riderALL.size());
                        System.out.println(" ────────────────────────────────");
                        System.out.println(" 총 라이더 수 "+ pageRowCnt +" 명  : " + pageNumber + " / " + totalPageSize + " 페이지");
                        System.out.println(" ────────────────────────────────");
                        System.out.println("라이더코드    배달비    배달가능    소속된업체명");
                        System.out.println(" ────────────────────────────────");
                        for(int i = startIndex; i < endIndex; i++) {
                            int memRideCodeLen = gapUtil.gapCnt(String.valueOf(riderALL.get(i).get("RIDCODE")));
                            int memDeliCostLen = gapUtil.gapCnt(String.valueOf(riderALL.get(i).get("DELICOST")));
                            int memAbsetyLen = gapUtil.gapCnt(String.valueOf(riderALL.get(i).get("ABSEYN")));
                            int memStoNmLen = gapUtil.gapCnt(String.valueOf(riderALL.get(i).get("STONM")));

                            StringBuilder memRideCode = gapUtil.gapFullSpace(String.valueOf(riderALL.get(i).get("RIDCODE")), maxRideCodeLen, memRideCodeLen);
                            StringBuilder memDeliCost = gapUtil.gapFullSpace(String.valueOf(riderALL.get(i).get("DELICOST")), maxDeliCostLen, memDeliCostLen);
                            StringBuilder memAbsety = gapUtil.gapFullSpace(String.valueOf(riderALL.get(i).get("ABSEYN")), maxAbsetyLen, memAbsetyLen);
                            StringBuilder memStoNm = gapUtil.gapFullSpace(String.valueOf(riderALL.get(i).get("STONM")), maxStoNmLen, memStoNmLen);
                            System.out.printf("%-" + maxRideCodeLen + "s%-" + maxDeliCostLen + "s%-" + maxAbsetyLen + "s%-" + maxStoNmLen + "s\n", memRideCode, memDeliCost, memAbsety, memStoNm);
                        }
                    }
                }else if(pageListSelect == 0) {
                    return View.ADMIN_RIDER_MANAGEMENT;
                }
            }
        }else if(choice == 3) { // 부분 검색
            System.out.println(" ───────────────────────────────────────────────────");
            System.out.println(" 1. 라이더코드로 검색");
            System.out.println(" 2. 부재유무로 검색");
            System.out.println(" 3. 가게명으로 검색");
            System.out.println(" 4. 배달비로 검색");
            System.out.println(" ───────────────────────────────────────────────────");
            System.out.print(" >> ");
            int searchno = ScanUtil.nextInt();
            if(searchno == 1) {
                System.out.print("라이더코드 >> ");
                String riderCodeStr = ScanUtil.nextLine();
                List<Object> searchRiderCode = new ArrayList<>();
                searchRiderCode.add(riderCodeStr);
                Map<String, Object> riderInfo = adminReadDAO.riderSearchFromRiderCode(searchRiderCode);
                if(NullCheckUtil.isEmpty(riderInfo)) {
                    System.out.println(" ───────────────────────────────────────────────────");
                    System.out.println("등록된 라이더가 없습니다!");
                    System.out.println(" ───────────────────────────────────────────────────");
                }else {
                    int memRideCodeLen = gapUtil.gapCnt(riderInfo, "RIDCODE");
                    int memDeliCostLen = gapUtil.gapCnt(riderInfo, "DELICOST");
                    int memAbsetyLen = gapUtil.gapCnt(riderInfo, "ABSEYN");
                    int memStoNmLen = gapUtil.gapCnt(riderInfo, "STONM");

                    StringBuilder memRideCode = gapUtil.gapFullSpace(String.valueOf(riderInfo.get("RIDCODE")), maxRideCodeLen, memRideCodeLen);
                    StringBuilder memDeliCost = gapUtil.gapFullSpace(String.valueOf(riderInfo.get("DELICOST")), maxDeliCostLen, memDeliCostLen);
                    StringBuilder memAbsety = gapUtil.gapFullSpace(String.valueOf(riderInfo.get("ABSEYN")), maxAbsetyLen, memAbsetyLen);
                    StringBuilder memStoNm = gapUtil.gapFullSpace(String.valueOf(riderInfo.get("STONM")), maxStoNmLen, memStoNmLen);
                    System.out.println(" ────────────────────────────────");
                    System.out.println("라이더코드    배달비    배달가능    소속된업체명");
                    System.out.println(" ────────────────────────────────");
                    System.out.printf("%-" + maxRideCodeLen + "s%-" + maxDeliCostLen + "s%-" + maxAbsetyLen + "s%-" + maxStoNmLen + "s\n", memRideCode, memDeliCost, memAbsety, memStoNm);
                }
                EnterUtil.enterNext(2);
            }else if(searchno == 2) {
                System.out.print("라이더 부재 (y / n) >> ");
                String riderAbseYnStr = ScanUtil.nextLine();
                riderAbseYnStr = riderAbseYnStr.toUpperCase();
                List<Object> searchRiderAbseYn = new ArrayList<>();
                searchRiderAbseYn.add(riderAbseYnStr);
                List<Map<String, Object>> riderInfo = adminReadDAO.riderSearchFromAbseYn(searchRiderAbseYn);
                if(NullCheckUtil.isEmpty(riderInfo)) {
                    System.out.println(" ───────────────────────────────────────────────────");
                    System.out.println("등록된 라이더가 없습니다!");
                    System.out.println(" ───────────────────────────────────────────────────");
                }else {
                    System.out.println(" ────────────────────────────────");
                    System.out.println("라이더코드    배달비    배달가능    소속된업체명");
                    System.out.println(" ────────────────────────────────");
                    for(Map<String, Object> item : riderInfo) {
                        int memRideCodeLen = gapUtil.gapCnt(item, "RIDCODE");
                        int memDeliCostLen = gapUtil.gapCnt(item, "DELICOST");
                        int memAbsetyLen = gapUtil.gapCnt(item, "ABSEYN");
                        int memStoNmLen = gapUtil.gapCnt(item, "STONM");

                        StringBuilder memRideCode = gapUtil.gapFullSpace(String.valueOf(item.get("RIDCODE")), maxRideCodeLen, memRideCodeLen);
                        StringBuilder memDeliCost = gapUtil.gapFullSpace(String.valueOf(item.get("DELICOST")), maxDeliCostLen, memDeliCostLen);
                        StringBuilder memAbsety = gapUtil.gapFullSpace(String.valueOf(item.get("ABSEYN")), maxAbsetyLen, memAbsetyLen);
                        StringBuilder memStoNm = gapUtil.gapFullSpace(String.valueOf(item.get("STONM")), maxStoNmLen, memStoNmLen);
                        System.out.printf("%-" + maxRideCodeLen + "s%-" + maxDeliCostLen + "s%-" + maxAbsetyLen + "s%-" + maxStoNmLen + "s\n", memRideCode, memDeliCost, memAbsety, memStoNm);
                    }
                }
                EnterUtil.enterNext(2);
            }else if(searchno == 3) {
                System.out.print("가게명 >> ");
                String riderStoCodeStr = ScanUtil.nextLine();
                List<Object> searchStoCode = new ArrayList<>();
                searchStoCode.add(riderStoCodeStr);
                List<Map<String, Object>> riderInfo = adminReadDAO.riderSearchFromStoNm(searchStoCode);
                if(NullCheckUtil.isEmpty(riderInfo)) {
                    System.out.println(" ───────────────────────────────────────────────────");
                    System.out.println("등록된 라이더가 없습니다!");
                    System.out.println(" ───────────────────────────────────────────────────");
                }else {
                    System.out.println(" ────────────────────────────────");
                    System.out.println("라이더코드    배달비    배달가능    소속된업체명");
                    System.out.println(" ────────────────────────────────");
                    for(Map<String, Object> item : riderInfo) {
                        int memRideCodeLen = gapUtil.gapCnt(item, "RIDCODE");
                        int memDeliCostLen = gapUtil.gapCnt(item, "DELICOST");
                        int memAbsetyLen = gapUtil.gapCnt(item, "ABSEYN");
                        int memStoNmLen = gapUtil.gapCnt(item, "STONM");

                        StringBuilder memRideCode = gapUtil.gapFullSpace(String.valueOf(item.get("RIDCODE")), maxRideCodeLen, memRideCodeLen);
                        StringBuilder memDeliCost = gapUtil.gapFullSpace(String.valueOf(item.get("DELICOST")), maxDeliCostLen, memDeliCostLen);
                        StringBuilder memAbsety = gapUtil.gapFullSpace(String.valueOf(item.get("ABSEYN")), maxAbsetyLen, memAbsetyLen);
                        StringBuilder memStoNm = gapUtil.gapFullSpace(String.valueOf(item.get("STONM")), maxStoNmLen, memStoNmLen);
                        System.out.printf("%-" + maxRideCodeLen + "s%-" + maxDeliCostLen + "s%-" + maxAbsetyLen + "s%-" + maxStoNmLen + "s\n", memRideCode, memDeliCost, memAbsety, memStoNm);
                    }
                }
                EnterUtil.enterNext(2);
            }else if(searchno == 4) {
                System.out.print("얼마 이상 배달비를 검색할까요? (0 ~ 9999999999) >> ");
                long riderDeliCostStr = ScanUtil.nextLong();
                List<Object> searchDeliCost = new ArrayList<>();
                searchDeliCost.add(riderDeliCostStr);
                List<Map<String, Object>> riderInfo = adminReadDAO.riderSearchFromDeliCost(searchDeliCost);
                if(NullCheckUtil.isEmpty(riderInfo)) {
                    System.out.println(" ───────────────────────────────────────────────────");
                    System.out.println("등록된 라이더가 없습니다!");
                    System.out.println(" ───────────────────────────────────────────────────");
                }else {
                    System.out.println(" ────────────────────────────────");
                    System.out.println("라이더코드    배달비    배달가능    소속된업체명");
                    System.out.println(" ────────────────────────────────");
                    for(Map<String, Object> item : riderInfo) {
                        int memRideCodeLen = gapUtil.gapCnt(item, "RIDCODE");
                        int memDeliCostLen = gapUtil.gapCnt(item, "DELICOST");
                        int memAbsetyLen = gapUtil.gapCnt(item, "ABSEYN");
                        int memStoNmLen = gapUtil.gapCnt(item, "STONM");

                        StringBuilder memRideCode = gapUtil.gapFullSpace(String.valueOf(item.get("RIDCODE")), maxRideCodeLen, memRideCodeLen);
                        StringBuilder memDeliCost = gapUtil.gapFullSpace(String.valueOf(item.get("DELICOST")), maxDeliCostLen, memDeliCostLen);
                        StringBuilder memAbsety = gapUtil.gapFullSpace(String.valueOf(item.get("ABSEYN")), maxAbsetyLen, memAbsetyLen);
                        StringBuilder memStoNm = gapUtil.gapFullSpace(String.valueOf(item.get("STONM")), maxStoNmLen, memStoNmLen);
                        System.out.printf("%-" + maxRideCodeLen + "s%-" + maxDeliCostLen + "s%-" + maxAbsetyLen + "s%-" + maxStoNmLen + "s\n", memRideCode, memDeliCost, memAbsety, memStoNm);
                    }
                }
                EnterUtil.enterNext(2);
            }
        }
    }

    return View.ADMIN_RIDER_MANAGEMENT;
}

public int riderUpdate() {
    List<Object> param = new ArrayList<Object>();
    String sql = " UPDATE RIDER SET ";
    int flag = 0; // 수정 여부 확인
    String yesOrNot = ""; // y, n 입력

    String riderCode = ""; // 라이더코드
    String abseYn = ""; // 부재유무
    long deliCost = 0; // 배달비
    String stoCode = ""; // 업체코드

    while(true) {
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.println(" 변경할 라이더코드를 입력하세요. ( ex. YGOUT44 ) ");
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.print(" >> ");
        riderCode = ScanUtil.nextLine();
        if (ValidationUtil.validationCode(riderCode)) {
            param.add(riderCode);
            break;
        }
    }

    while(true) {
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.println(" 라이더 부재 유무를 변경하시겠습니까? (y/n)");
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.print(" >> ");
        yesOrNot = ScanUtil.nextLine();
        if(ValidationUtil.validationYN(yesOrNot)) break;
    }

    if(yesOrNot.equals("y")) {
        while(true) {
            System.out.println(" ───────────────────────────────────────────────────");
            System.out.println(" * 라이더 활동 가능 : Y / 라이더 활동 불가능 : N 을 입력하세요. 띄어쓰기 불가.");
            System.out.println(" ───────────────────────────────────────────────────");
            System.out.print(" >> ");
            abseYn = ScanUtil.nextLine();
            if (ValidationUtil.validationYNtoUpperCase(abseYn)) {
                sql += "ABSEYN = '"+ abseYn + "', ";
                break;
            }
        }
    }

    while(true) {
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.println(" 배달비를 변경하시겠습니까? (y/n)");
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.print(" >> ");
        yesOrNot = ScanUtil.nextLine();
        if(ValidationUtil.validationYN(yesOrNot)) break;
    }

    if(yesOrNot.equals("y")) {
        while(true) {
            System.out.println(" ───────────────────────────────────────────────────");
            System.out.println(" * 변경할 배달비 입력 [ 0 ~ 9999999999 ]");
            System.out.println(" ───────────────────────────────────────────────────");
            System.out.print(" >> ");
            deliCost = ScanUtil.nextLongLine();
            if (ValidationUtil.validationPrice(deliCost)) {
                sql += "DELICOST = '"+ deliCost + "', ";
                break;
            }
        }
    }

    while(true) {
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.println(" 주 거래 업체를 변경하시겠습니까? (y/n)");
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.print(" >> ");
        yesOrNot = ScanUtil.nextLine();
        if(ValidationUtil.validationYN(yesOrNot)) break;
    }

    if(yesOrNot.equals("y")) {
        while(true) {
            System.out.println(" ───────────────────────────────────────────────────");
            System.out.println(" * 변경할 업체코드 입력 ( ex. AGHS01 )");
            System.out.println(" ───────────────────────────────────────────────────");
            System.out.print(" >> ");
            stoCode = ScanUtil.nextLine();
            if (ValidationUtil.validationCode(stoCode)) {
                sql += "STOCODE = '"+ stoCode + "', ";
                break;
            }
        }
    }

    int sqllen = sql.length();
    sql = sql.substring(0, sqllen-2); // (endindex-1)-1[,]
    sql += " WHERE RIDCODE = ? ";

    while(true) {
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.println(" 라이더 정보를 변경하시겠습니까? (y/n)");
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.print(" >> ");
        yesOrNot = ScanUtil.nextLine();
        if(ValidationUtil.validationYN(yesOrNot)) break;
    }

    if(yesOrNot.equals("y")) {
        flag = adminUpdateDAO.update(sql, param);
        if(flag != 0) {
            System.out.println(" ───────────────────────────────────────────────────");
            System.out.println(" 라이더 수정이 완료되었습니다.");
            System.out.println(" ───────────────────────────────────────────────────");
            EnterUtil.enterNext(2);
        }else {
            System.out.println(" ───────────────────────────────────────────────────");
            System.out.println(" 라이더 수정이 실패했습니다.");
            System.out.println(" ───────────────────────────────────────────────────");
            EnterUtil.enterNext(2);
        }
    }else if(yesOrNot.equals("n")) {
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.println(" 라이더 정보 관리 페이지로 이동합니다.");
        System.out.println(" ───────────────────────────────────────────────────");
        EnterUtil.enterNext(2);
    }

    return View.ADMIN_RIDER_MANAGEMENT;
}

public int riderDelete() {
    String riderCodeStr = ""; // 라이더 코드
    String deleteRider = ""; // 라이더 삭제

    List<Map<String, Object>> riderALL = adminReadDAO.riderALL();
    List<Map<String, Object>> storeALL = adminReadDAO.storeALL();

    if(NullCheckUtil.isEmpty(riderALL)) {
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.println("등록된 라이더가 없습니다!");
        System.out.println(" ───────────────────────────────────────────────────");
    }else if(NullCheckUtil.isEmpty(storeALL)) {
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.println("등록된 가게가 없습니다!");
        System.out.println(" ───────────────────────────────────────────────────");
    }else {
        int maxRideCodeLen = gapUtil.gapFullCnt(riderALL, "RIDCODE");
        int maxStoNmLen = gapUtil.gapFullCnt(storeALL, "STONM");
        int maxStoAddLen = gapUtil.gapFullCnt(storeALL, "STOADD");

        System.out.println(" ───────────────────────────────────────────────────");
        System.out.println("라이더 삭제");
        System.out.println("1. 라이더코드 입력");
        System.out.println("2. 업체명 검색");
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.print(" >> ");
        int menuChoice = ScanUtil.nextIntegerLine();
        if(menuChoice == 1) {
            while(true) {
                System.out.println(" ───────────────────────────────────────────────────");
                System.out.println("삭제하실 라이더코드를 입력해 주세요.");
                System.out.println(" ───────────────────────────────────────────────────");
                System.out.print(" >> ");
                riderCodeStr = ScanUtil.nextLine();
                System.out.println();
                if(ValidationUtil.validationCode(riderCodeStr)) break;
            }
        }else if(menuChoice == 2) {
            System.out.println(" ───────────────────────────────────────────────────");
            System.out.println(" 검색하실 업체명을 입력해 주세요.");
            System.out.println(" ───────────────────────────────────────────────────");
            System.out.print(" >> ");
            String storeNameStr = ScanUtil.nextLine();
            List<Object> searchStoreName = new ArrayList<>();
            searchStoreName.add(storeNameStr);
            List<Map<String, Object>> storeInfo = adminDeleteDAO.riderSearchFromStoreName(searchStoreName);
            if(NullCheckUtil.isEmpty(storeInfo)) {
                System.out.println(" ───────────────────────────────────────────────────");
                System.out.println("등록된 라이더가 없습니다!");
                System.out.println(" ───────────────────────────────────────────────────");
            }else {
                System.out.println(" ─────────────────────────");
                System.out.println("라이더코드   업체명         업체주소");
                System.out.println(" ─────────────────────────");
                for(Map<String, Object> item : storeInfo) {
                    int memRideCodeLen = gapUtil.gapCnt(item, "RIDCODE");
                    int memStoreNmLen = gapUtil.gapCnt(item, "STONM");
                    int memStoreAddLen = gapUtil.gapCnt(item, "STOADD");

                    StringBuilder memRideCode = gapUtil.gapFullSpace(String.valueOf(item.get("RIDCODE")), maxRideCodeLen, memRideCodeLen);
                    StringBuilder memStoreNm = gapUtil.gapFullSpace(String.valueOf(item.get("STONM")), maxStoNmLen, memStoreNmLen);
                    StringBuilder memStoreAdd = gapUtil.gapFullSpace(String.valueOf(item.get("STOADD")), maxStoAddLen, memStoreAddLen);
                    System.out.printf("%-" + maxRideCodeLen + "s%-" + maxStoNmLen + "s%-" + maxStoAddLen + "s\n", memRideCode, memStoreNm, memStoreAdd);

                }
            }
            EnterUtil.enterNext(2);
            return View.ADMIN_RIDER_MANAGEMENT;
        }
    }

    while(true) {
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.println(" [ "+ riderCodeStr +" ] 라이더를 삭제하시겠습니까? (y / n)");
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.print(" >> ");
        deleteRider = ScanUtil.nextLine();
        if(ValidationUtil.validationYN(deleteRider)) break;
    }

    if(deleteRider.equals("n")) {
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.println("라이더 삭제를 취소합니다.");
        System.out.println(" ───────────────────────────────────────────────────");
        EnterUtil.enterNext(2);
        return View.ADMIN_RIDER_MANAGEMENT;
    }else if(deleteRider.equals("y")) {
        List<Object> param = new ArrayList<>();
        param.add(riderCodeStr);
        int isSuccess = adminDeleteDAO.deleteRider(param);
        if (isSuccess > 0) {
            System.out.println(" ───────────────────────────────────────────────────");
            System.out.println("라이더 삭제가 완료되었습니다!");
            System.out.println(" ───────────────────────────────────────────────────");
            EnterUtil.enterNext(2);
        }else {
            System.out.println(" ───────────────────────────────────────────────────");
            System.out.println(">> 라이더 삭제 실패! <<");
            System.out.println(" ───────────────────────────────────────────────────");
            EnterUtil.enterNext(2);
        }
    }

    return View.ADMIN_RIDER_MANAGEMENT;
}