관리 메뉴

거니의 velog

5. 관리자 페이지 (2) : 회원정보 관리 본문

대덕인재개발원_1st project

5. 관리자 페이지 (2) : 회원정보 관리

Unlimited00 2023. 8. 19. 11:10

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

    if(NullCheckUtil.isEmpty(memALL)) {
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.println("등록된 회원이 없습니다!");
        System.out.println(" ───────────────────────────────────────────────────");
    }else {
        int maxIdLen = gapUtil.gapFullCnt(memALL, "MEMID");
        int maxNmLen = gapUtil.gapFullCnt(memALL, "MEMNM");
        int maxPwLen = gapUtil.gapFullCnt(memALL, "MEMPW");
        int maxAddLen = gapUtil.gapFullCnt(memALL, "MEMADD");
        int maxLvLen = gapUtil.gapFullCnt(memALL, "MEMLV");
        int maxBalLen = gapUtil.gapFullCnt(memALL, "BALANCE");
        int maxTelLen = gapUtil.gapFullCnt(memALL, "MEMTEL");

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

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

        int pageRowCnt = memALL.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 : memALL) {
                int memIDLen = gapUtil.gapCnt(item, "MEMID");
                int memNMLen = gapUtil.gapCnt(item, "MEMNM");
                int memPWLen = gapUtil.gapCnt(item, "MEMPW");
                int memADDLen = gapUtil.gapCnt(item, "MEMADD");
                int memLVLen = gapUtil.gapCnt(item, "MEMLV");
                int memBALLen = gapUtil.gapCnt(item, "BALANCE");
                int memTELLen = gapUtil.gapCnt(item, "MEMTEL");

                StringBuilder memID = gapUtil.gapFullSpace(String.valueOf(item.get("MEMID")), maxIdLen, memIDLen);
                StringBuilder memNM = gapUtil.gapFullSpace(String.valueOf(item.get("MEMNM")), maxNmLen, memNMLen);
                StringBuilder memPW = gapUtil.gapFullSpace(String.valueOf(item.get("MEMPW")), maxPwLen, memPWLen);
                StringBuilder memADD = gapUtil.gapFullSpace(String.valueOf(item.get("MEMADD")), maxAddLen, memADDLen);
                StringBuilder memLV = gapUtil.gapFullSpace(String.valueOf(item.get("MEMLV")), maxLvLen, memLVLen);
                StringBuilder memBAL = gapUtil.gapFullSpace(String.valueOf(item.get("BALANCE")), maxBalLen, memBALLen);
                StringBuilder memTEL = gapUtil.gapFullSpace(String.valueOf(item.get("MEMTEL")), maxTelLen, memTELLen);
                System.out.printf("%-" + maxIdLen + "s%-" + maxNmLen + "s%-" + maxPwLen + "s%-" + maxAddLen + "s%-" + maxBalLen + "s%-" + maxLvLen + "s%-" + maxTelLen + "s\n", memID, memNM, memPW, memADD, memBAL, memLV, memTEL);
            }
            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, memALL.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 memIDLen = gapUtil.gapCnt(String.valueOf(memALL.get(i).get("MEMID")));
                int memNMLen = gapUtil.gapCnt(String.valueOf(memALL.get(i).get("MEMNM")));
                int memPWLen = gapUtil.gapCnt(String.valueOf(memALL.get(i).get("MEMPW")));
                int memADDLen = gapUtil.gapCnt(String.valueOf(memALL.get(i).get("MEMADD")));
                int memLVLen = gapUtil.gapCnt(String.valueOf(memALL.get(i).get("MEMLV")));
                int memBALLen = gapUtil.gapCnt(String.valueOf(memALL.get(i).get("BALANCE")));
                int memTELLen = gapUtil.gapCnt(String.valueOf(memALL.get(i).get("MEMTEL")));

                StringBuilder memID = gapUtil.gapFullSpace(String.valueOf(memALL.get(i).get("MEMID")), maxIdLen, memIDLen);
                StringBuilder memNM = gapUtil.gapFullSpace(String.valueOf(memALL.get(i).get("MEMNM")), maxNmLen, memNMLen);
                StringBuilder memPW = gapUtil.gapFullSpace(String.valueOf(memALL.get(i).get("MEMPW")), maxPwLen, memPWLen);
                StringBuilder memADD = gapUtil.gapFullSpace(String.valueOf(memALL.get(i).get("MEMADD")), maxAddLen, memADDLen);
                StringBuilder memLV = gapUtil.gapFullSpace(String.valueOf(memALL.get(i).get("MEMLV")), maxLvLen, memLVLen);
                StringBuilder memBAL = gapUtil.gapFullSpace(String.valueOf(memALL.get(i).get("BALANCE")), maxBalLen, memBALLen);
                StringBuilder memTEL = gapUtil.gapFullSpace(String.valueOf(memALL.get(i).get("MEMTEL")), maxTelLen, memTELLen);
                System.out.printf("%-" + maxIdLen + "s %-" + maxNmLen + "s %-" + maxPwLen + "s %-" + maxAddLen + "s %" + maxBalLen + "s %" + maxLvLen + "s %" + maxTelLen + "s \n", memID, memNM, memPW, memADD, memBAL, memLV, memTEL);
            }
            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, memALL.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 memIDLen = gapUtil.gapCnt(String.valueOf(memALL.get(i).get("MEMID")));
                            int memNMLen = gapUtil.gapCnt(String.valueOf(memALL.get(i).get("MEMNM")));
                            int memPWLen = gapUtil.gapCnt(String.valueOf(memALL.get(i).get("MEMPW")));
                            int memADDLen = gapUtil.gapCnt(String.valueOf(memALL.get(i).get("MEMADD")));
                            int memLVLen = gapUtil.gapCnt(String.valueOf(memALL.get(i).get("MEMLV")));
                            int memBALLen = gapUtil.gapCnt(String.valueOf(memALL.get(i).get("BALANCE")));
                            int memTELLen = gapUtil.gapCnt(String.valueOf(memALL.get(i).get("MEMTEL")));

                            StringBuilder memID = gapUtil.gapFullSpace(String.valueOf(memALL.get(i).get("MEMID")), maxIdLen, memIDLen);
                            StringBuilder memNM = gapUtil.gapFullSpace(String.valueOf(memALL.get(i).get("MEMNM")), maxNmLen, memNMLen);
                            StringBuilder memPW = gapUtil.gapFullSpace(String.valueOf(memALL.get(i).get("MEMPW")), maxPwLen, memPWLen);
                            StringBuilder memADD = gapUtil.gapFullSpace(String.valueOf(memALL.get(i).get("MEMADD")), maxAddLen, memADDLen);
                            StringBuilder memLV = gapUtil.gapFullSpace(String.valueOf(memALL.get(i).get("MEMLV")), maxLvLen, memLVLen);
                            StringBuilder memBAL = gapUtil.gapFullSpace(String.valueOf(memALL.get(i).get("BALANCE")), maxBalLen, memBALLen);
                            StringBuilder memTEL = gapUtil.gapFullSpace(String.valueOf(memALL.get(i).get("MEMTEL")), maxTelLen, memTELLen);
                            System.out.printf("%-" + maxIdLen + "s %-" + maxNmLen + "s %-" + maxPwLen + "s %-" + maxAddLen + "s %" + maxBalLen + "s %" + maxLvLen + "s %" + maxTelLen + "s \n", memID, memNM, memPW, memADD, memBAL, memLV, memTEL);
                        }
                    }
                }else if(pageListSelect == 0) {
                    return View.ADMIN_MEM_MANAGEMENT;
                }
            }
        }else if(choice == 3) { // 부분 검색
            System.out.println(" ───────────────────────────────────────────────────");
            System.out.println(" 1. 아이디로 검색");
            System.out.println(" 2. 이름으로 검색");
            System.out.println(" 3. 전화번호로 검색");
            System.out.println(" ───────────────────────────────────────────────────");
            System.out.print(" >> ");
            int searchno = ScanUtil.nextInt();
            if(searchno == 1) {
                System.out.print("회원 아이디 >> ");
                String memIDstr = ScanUtil.nextLine();
                List<Object> searchId = new ArrayList<>();
                searchId.add(memIDstr);
                Map<String, Object> memberInfo = adminReadDAO.memSearchFromId(searchId);
                if(NullCheckUtil.isEmpty(memberInfo)) {
                    System.out.println(" ───────────────────────────────────────────────────");
                    System.out.println("등록된 회원이 없습니다!");
                    System.out.println(" ───────────────────────────────────────────────────");
                }else {
                    int memIDLen = gapUtil.gapCnt(memberInfo, "MEMID");
                    int memNMLen = gapUtil.gapCnt(memberInfo, "MEMNM");
                    int memPWLen = gapUtil.gapCnt(memberInfo, "MEMPW");
                    int memADDLen = gapUtil.gapCnt(memberInfo, "MEMADD");
                    int memLVLen = gapUtil.gapCnt(memberInfo, "MEMLV");
                    int memBALLen = gapUtil.gapCnt(memberInfo, "BALANCE");
                    int memTELLen = gapUtil.gapCnt(memberInfo, "MEMTEL");

                    StringBuilder memID = gapUtil.gapFullSpace(String.valueOf(memberInfo.get("MEMID")), maxIdLen, memIDLen);
                    StringBuilder memNM = gapUtil.gapFullSpace(String.valueOf(memberInfo.get("MEMNM")), maxNmLen, memNMLen);
                    StringBuilder memPW = gapUtil.gapFullSpace(String.valueOf(memberInfo.get("MEMPW")), maxPwLen, memPWLen);
                    StringBuilder memADD = gapUtil.gapFullSpace(String.valueOf(memberInfo.get("MEMADD")), maxAddLen, memADDLen);
                    StringBuilder memLV = gapUtil.gapFullSpace(String.valueOf(memberInfo.get("MEMLV")), maxLvLen, memLVLen);
                    StringBuilder memBAL = gapUtil.gapFullSpace(String.valueOf(memberInfo.get("BALANCE")), maxBalLen, memBALLen);
                    StringBuilder memTEL = gapUtil.gapFullSpace(String.valueOf(memberInfo.get("MEMTEL")), maxTelLen, memTELLen);
                    System.out.println(" ──────────────────────────────────────────────────────────────────────────");
                    System.out.println(" 아이디              이름       비밀번호            주소                                        잔액     회원레벨    전화번호");
                    System.out.println(" ──────────────────────────────────────────────────────────────────────────");
                    System.out.printf("%-" + maxIdLen + "s%-" + maxNmLen + "s%-" + maxPwLen + "s%-" + maxAddLen + "s%-" + maxBalLen + "s%-" + maxLvLen + "s%-" + maxTelLen + "s\n", memID, memNM, memPW, memADD, memBAL, memLV, memTEL);
                }
                EnterUtil.enterNext(2);
            }else if(searchno == 2) {
                System.out.print("회원 이름 >> ");
                String memNMstr = ScanUtil.nextLine();
                List<Object> searchNM = new ArrayList<>();
                searchNM.add(memNMstr);
                List<Map<String, Object>> memberInfo = adminReadDAO.memSearchFromNm(searchNM);
                if(NullCheckUtil.isEmpty(memberInfo)) {
                    System.out.println(" ───────────────────────────────────────────────────");
                    System.out.println("등록된 회원이 없습니다!");
                    System.out.println(" ───────────────────────────────────────────────────");
                }else {
                    System.out.println(" ──────────────────────────────────────────────────────────────────────────");
                    System.out.println(" 아이디              이름       비밀번호            주소                                        잔액     회원레벨    전화번호");
                    System.out.println(" ──────────────────────────────────────────────────────────────────────────");
                    for(Map<String, Object> item : memberInfo) {
                        int memIDLen = gapUtil.gapCnt(item, "MEMID");
                        int memNMLen = gapUtil.gapCnt(item, "MEMNM");
                        int memPWLen = gapUtil.gapCnt(item, "MEMPW");
                        int memADDLen = gapUtil.gapCnt(item, "MEMADD");
                        int memLVLen = gapUtil.gapCnt(item, "MEMLV");
                        int memBALLen = gapUtil.gapCnt(item, "BALANCE");
                        int memTELLen = gapUtil.gapCnt(item, "MEMTEL");

                        StringBuilder memID = gapUtil.gapFullSpace(String.valueOf(item.get("MEMID")), maxIdLen, memIDLen);
                        StringBuilder memNM = gapUtil.gapFullSpace(String.valueOf(item.get("MEMNM")), maxNmLen, memNMLen);
                        StringBuilder memPW = gapUtil.gapFullSpace(String.valueOf(item.get("MEMPW")), maxPwLen, memPWLen);
                        StringBuilder memADD = gapUtil.gapFullSpace(String.valueOf(item.get("MEMADD")), maxAddLen, memADDLen);
                        StringBuilder memLV = gapUtil.gapFullSpace(String.valueOf(item.get("MEMLV")), maxLvLen, memLVLen);
                        StringBuilder memBAL = gapUtil.gapFullSpace(String.valueOf(item.get("BALANCE")), maxBalLen, memBALLen);
                        StringBuilder memTEL = gapUtil.gapFullSpace(String.valueOf(item.get("MEMTEL")), maxTelLen, memTELLen);

                        System.out.printf("%-" + maxIdLen + "s%-" + maxNmLen + "s%-" + maxPwLen + "s%-" + maxAddLen + "s%-" + maxBalLen + "s%-" + maxLvLen + "s%-" + maxTelLen + "s\n", memID, memNM, memPW, memADD, memBAL, memLV, memTEL);
                    }
                }
                EnterUtil.enterNext(2);
            }else if(searchno == 3) {
                System.out.print("회원 전화번호 >> ");
                String memTELstr = ScanUtil.nextLine();
                List<Object> searchTEL = new ArrayList<>();
                searchTEL.add(memTELstr);
                List<Map<String, Object>> memberInfo = adminReadDAO.memSearchFromTel(searchTEL);
                if(NullCheckUtil.isEmpty(memberInfo)) {
                    System.out.println(" ───────────────────────────────────────────────────");
                    System.out.println("등록된 회원이 없습니다!");
                    System.out.println(" ───────────────────────────────────────────────────");
                }else {
                    System.out.println(" ──────────────────────────────────────────────────────────────────────────");
                    System.out.println(" 아이디              이름       비밀번호            주소                                        잔액     회원레벨    전화번호");
                    System.out.println(" ──────────────────────────────────────────────────────────────────────────");
                    for(Map<String, Object> item : memberInfo) {
                        int memIDLen = gapUtil.gapCnt(item, "MEMID");
                        int memNMLen = gapUtil.gapCnt(item, "MEMNM");
                        int memPWLen = gapUtil.gapCnt(item, "MEMPW");
                        int memADDLen = gapUtil.gapCnt(item, "MEMADD");
                        int memLVLen = gapUtil.gapCnt(item, "MEMLV");
                        int memBALLen = gapUtil.gapCnt(item, "BALANCE");
                        int memTELLen = gapUtil.gapCnt(item, "MEMTEL");

                        StringBuilder memID = gapUtil.gapFullSpace(String.valueOf(item.get("MEMID")), maxIdLen, memIDLen);
                        StringBuilder memNM = gapUtil.gapFullSpace(String.valueOf(item.get("MEMNM")), maxNmLen, memNMLen);
                        StringBuilder memPW = gapUtil.gapFullSpace(String.valueOf(item.get("MEMPW")), maxPwLen, memPWLen);
                        StringBuilder memADD = gapUtil.gapFullSpace(String.valueOf(item.get("MEMADD")), maxAddLen, memADDLen);
                        StringBuilder memLV = gapUtil.gapFullSpace(String.valueOf(item.get("MEMLV")), maxLvLen, memLVLen);
                        StringBuilder memBAL = gapUtil.gapFullSpace(String.valueOf(item.get("BALANCE")), maxBalLen, memBALLen);
                        StringBuilder memTEL = gapUtil.gapFullSpace(String.valueOf(item.get("MEMTEL")), maxTelLen, memTELLen);
                        System.out.printf("%-" + maxIdLen + "s%-" + maxNmLen + "s%-" + maxPwLen + "s%-" + maxAddLen + "s%-" + maxBalLen + "s%-" + maxLvLen + "s%-" + maxTelLen + "s\n", memID, memNM, memPW, memADD, memBAL, memLV, memTEL);
                    }
                }
                EnterUtil.enterNext(2);
            }
        }
    }

    return View.ADMIN_MEM_MANAGEMENT;
}

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

    String memId = ""; // 회원아이디
    String memNm = ""; // 회원이름
    String memPw = ""; // 회원비밀번호
    String memAdd = ""; // 회원주소
    String memTel = ""; // 회원연락처
    long balance = 0; // 잔여금액
    int memlv = 0; // 회원레벨

    while(true) {
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.println(" 변경할 회원 아이디를 입력하세요. ");
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.print(" >> ");
        memId = ScanUtil.nextLine();
        if (ValidationUtil.validationID(memId)) {
            param.add(memId);
            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(" * 변경할 회원명 입력 [ 한글 입력 ]");
            System.out.println(" ───────────────────────────────────────────────────");
            System.out.print(" >> ");
            memNm = ScanUtil.nextLine();
            if (ValidationUtil.validationName(memNm)) {
                sql += "MEMNM = '"+ memNm + "', ";
                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(" * 변경할 비밀번호 입력 [ 영문ㆍ숫자 필수 / 6글자 이상 입력 ] ");
            System.out.println(" ───────────────────────────────────────────────────");
            System.out.print(" >> ");
            memPw = ScanUtil.nextLine();
            if (ValidationUtil.validationPW(memPw)) {
                sql += "MEMPW = '"+ memPw + "', ";
                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(" * 변경할 주소 입력 [ 한글ㆍ숫자 입력 ]");
            System.out.println(" ───────────────────────────────────────────────────");
            System.out.print(" >> ");
            memAdd = ScanUtil.nextLine();
            if(ValidationUtil.validationAddress(memAdd)) {
                sql += "MEMADD = '"+ memAdd + "', ";
                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(" * 변경할 회원 연락처 입력[ 0XX-XXXX-XXXX 형식으로 입력 ] ");
            System.out.println(" ───────────────────────────────────────────────────");
            System.out.print(" >> ");
            memTel = ScanUtil.nextLine();
            if (ValidationUtil.validationTEL(memTel)) {
                sql += "MEMTEL = '"+ memTel + "', ";
                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(" * 변경할 잔여금액 입력[ 숫자는 10자리 이하로 입력 ] ");
            System.out.println(" ───────────────────────────────────────────────────");
            System.out.print(" >> ");
            balance = ScanUtil.nextLongLine();
            if (ValidationUtil.validationBalance(balance)) {
                sql += "BALANCE = "+ balance + ", ";
                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 ~ 9) ");
            System.out.println(" ───────────────────────────────────────────────────");
            System.out.print(" >> ");
            memlv = ScanUtil.nextIntegerLine();
            if (ValidationUtil.validationMemLv(memlv)) {
                sql += "MEMLV = "+ memlv + ", ";
                break;
            }
        }
    }

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

    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_MEM_MANAGEMENT;
}

public int memDelete() {
    String memIDstr = ""; // 회원 아이디
    String deleteMem = ""; // 멤버 삭제

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

    if(NullCheckUtil.isEmpty(memALL)) {
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.println("등록된 회원이 없습니다!");
        System.out.println(" ───────────────────────────────────────────────────");
    }else {
        int maxIdLen = gapUtil.gapFullCnt(memALL, "MEMID");
        int maxNmLen = gapUtil.gapFullCnt(memALL, "MEMNM");
        int maxPwLen = gapUtil.gapFullCnt(memALL, "MEMPW");
        int maxAddLen = gapUtil.gapFullCnt(memALL, "MEMADD");
        int maxLvLen = gapUtil.gapFullCnt(memALL, "MEMLV");
        int maxBalLen = gapUtil.gapFullCnt(memALL, "BALANCE");
        int maxTelLen = gapUtil.gapFullCnt(memALL, "MEMTEL");

        System.out.println(" ───────────────────────────────────────────────────");
        System.out.println("회원 삭제");
        System.out.println("1. 회원아이디 입력");
        System.out.println("2. 회원명 검색");
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.print(" >> ");
        int memChoice = ScanUtil.nextIntegerLine();
        if(memChoice == 1) {
            while(true) {
                System.out.println(" ───────────────────────────────────────────────────");
                System.out.println("삭제하실 회원 아이디를 입력해 주세요.");
                System.out.println(" ───────────────────────────────────────────────────");
                System.out.print(" >> ");
                memIDstr = ScanUtil.nextLine();
                System.out.println();
                if(ValidationUtil.validationID(memIDstr)) break;
            }
        }else if(memChoice == 2) {
            System.out.println(" ───────────────────────────────────────────────────");
            System.out.println(" 검색하실 회원 이름을 입력해 주세요.");
            System.out.println(" ───────────────────────────────────────────────────");
            System.out.print(" >> ");
            String memNMstr = ScanUtil.nextLine();
            List<Object> searchNM = new ArrayList<>();
            searchNM.add(memNMstr);
            List<Map<String, Object>> memberInfo = adminReadDAO.memSearchFromNm(searchNM);
            if(NullCheckUtil.isEmpty(memberInfo)) {
                System.out.println(" ───────────────────────────────────────────────────");
                System.out.println("등록된 회원이 없습니다!");
                System.out.println(" ───────────────────────────────────────────────────");
            }else {
                System.out.println(" ──────────────────────────────────────────────────────────────────────────");
                System.out.println(" 아이디              이름       비밀번호            주소                                        잔액     회원레벨    전화번호");
                System.out.println(" ──────────────────────────────────────────────────────────────────────────");
                for(Map<String, Object> item : memberInfo) {
                    int memIDLen = gapUtil.gapCnt(item, "MEMID");
                    int memNMLen = gapUtil.gapCnt(item, "MEMNM");
                    int memPWLen = gapUtil.gapCnt(item, "MEMPW");
                    int memADDLen = gapUtil.gapCnt(item, "MEMADD");
                    int memLVLen = gapUtil.gapCnt(item, "MEMLV");
                    int memBALLen = gapUtil.gapCnt(item, "BALANCE");
                    int memTELLen = gapUtil.gapCnt(item, "MEMTEL");

                    StringBuilder memID = gapUtil.gapFullSpace(String.valueOf(item.get("MEMID")), maxIdLen, memIDLen);
                    StringBuilder memNM = gapUtil.gapFullSpace(String.valueOf(item.get("MEMNM")), maxNmLen, memNMLen);
                    StringBuilder memPW = gapUtil.gapFullSpace(String.valueOf(item.get("MEMPW")), maxPwLen, memPWLen);
                    StringBuilder memADD = gapUtil.gapFullSpace(String.valueOf(item.get("MEMADD")), maxAddLen, memADDLen);
                    StringBuilder memLV = gapUtil.gapFullSpace(String.valueOf(item.get("MEMLV")), maxLvLen, memLVLen);
                    StringBuilder memBAL = gapUtil.gapFullSpace(String.valueOf(item.get("BALANCE")), maxBalLen, memBALLen);
                    StringBuilder memTEL = gapUtil.gapFullSpace(String.valueOf(item.get("MEMTEL")), maxTelLen, memTELLen);

                    System.out.printf("%-" + maxIdLen + "s%-" + maxNmLen + "s%-" + maxPwLen + "s%-" + maxAddLen + "s%-" + maxBalLen + "s%-" + maxLvLen + "s%-" + maxTelLen + "s\n", memID, memNM, memPW, memADD, memBAL, memLV, memTEL);
                }
            }
            EnterUtil.enterNext(2);
            return View.ADMIN_MEM_MANAGEMENT;
        }
    }

    while(true) {
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.println(" [ "+ memIDstr +" ] 회원을 삭제하시겠습니까? (y / n)");
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.print(" >> ");
        deleteMem = ScanUtil.nextLine();
        if(ValidationUtil.validationYN(deleteMem)) break;
    }

    if(deleteMem.equals("n")) {
        System.out.println(" ───────────────────────────────────────────────────");
        System.out.println("회원 삭제를 취소합니다.");
        System.out.println(" ───────────────────────────────────────────────────");
        EnterUtil.enterNext(2);
        return View.ADMIN_MEM_MANAGEMENT;
    }else if(deleteMem.equals("y")) {
        List<Object> param = new ArrayList<>();
        param.add(memIDstr);
        Map<String, Object> memLvStr = adminDeleteDAO.searchMemLv(param);
        int memLv = Integer.parseInt(memLvStr.get("MEMLV").toString());
        if(memLv == 9) {
            System.out.println(" ───────────────────────────────────────────────────");
            System.out.println("관리자 계정은 삭제할 수 없습니다!");
            System.out.println(" ───────────────────────────────────────────────────");
            EnterUtil.enterNext(2);
        }else {
            int isSuccess = adminDeleteDAO.deleteMember(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_MEM_MANAGEMENT;
}