Kbaor_2023_9_28_Java第一次实战项目_ELM_V1_管理员的实体类、工具类与实现类

Kbaor_2023_9_28_Java第一次实战项目_ELM_V1_管理员的实体类、工具类与实现类

管理员的实体类

package elm_V1;

/**
 * [管理员实体类]
 *
 * @author 秦帅
 * @date 2023-9-26
 */

public class Admin {
    private static Integer adminId;
    private static String adminName;
    private static String password;

    public Admin() {
        super();
    }

    public Admin(Integer adminId, String adminName, String password) {
        super();
        this.adminId = adminId;
        this.adminName = adminName;
        this.password = password;

    }

    public static Integer getAdminId() {
        return adminId;
    }

    public void setAdminId(Integer adminId) {
        this.adminId = adminId;
    }

    public static String getAdminName() {
        return adminName;
    }

    public void setAdminName(String adminName) {
        this.adminName = adminName;
    }

    public static String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "Admin [adminId=" + adminId + ", adminName=" + adminName + ", password=" + password + "]";
    }


}

管理员的工具类

package elm_V1;

import java.io.*;
import java.util.ArrayList;
import java.util.List;

/**
 * [管理员工具类]
 *
 * @author 秦帅
 * @date 2023-9-26
 */

public class AdminGJ {
    // 字符流读文件数据到集合中
    public static List<Admin> fileToList() throws IOException {
        List<Admin> list = new ArrayList<Admin>();
        File file = new File("G:\\Idea_hn_ws\\DB\\Admin\\Admin.txt");
        FileReader fr = new FileReader(file);
        BufferedReader br = new BufferedReader(fr);
        while (true) {
            String str = br.readLine();// 一次读取一行文本
            if (str != null) {
                // System.out.println(str);
                String[] arr = str.split(" ");
                Admin admin = new Admin();
                admin.setAdminId(Integer.parseInt(arr[0]));
                admin.setPassword(arr[1]);
                admin.setAdminName(arr[2]);
                list.add(admin);
            } else {
                break;
            }
        }
        return list;
    }

    // 字符流把集合数据写入文件
    public static void listToFile(List list) throws IOException {
        // 确认文件是utf-8编码
        File file = new File("G:\\Idea_hn_ws\\DB\\Admin\\Admin.txt");
        FileWriter fileWriter = null;
        // 第一个参数是为是否append
        BufferedWriter bw = null;
        try {
            // 第二个参数是表示是否向文件中追加内容 true==追加 false==覆盖
            fileWriter = new FileWriter(file, false);
            bw = new BufferedWriter(fileWriter);
            // 传统的遍历方式
            for (int i = 0; i < list.size(); i++) {
                Admin admin = (Admin) list.get(i);
                StringBuilder sbr = new StringBuilder();
                sbr.append(Admin.getAdminId() + " ");
                sbr.append(Admin.getPassword() + " ");
                sbr.append(Admin.getAdminName() + " ");
                //容错判断
                if(sbr.toString().length()>=7) {
                    bw.write(sbr.toString());
                    bw.newLine();// 换行
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally { // 记着关闭流
            // 如果调用了关闭流的方法,就不用手动调bw.flush()
            bw.close();
            fileWriter.close();
        }
    }

    //获取行
    public static int getFileRow() throws IOException {
        int sum = 0, bid = 0;
        List<Admin> list = fileToList();
        if (list.size() == 0) return sum;
        // 传统的遍历方式
        for (int i = 0; i < list.size(); i++) {
            Admin admin = (Admin) list.get(i);
            bid = admin.getAdminId();
        }
        return bid;
    }

    // 判断文件中是否有与参数重名的管理员
    public static boolean aisRepeat(String str) throws IOException {
        boolean b = false;
        List<Admin> list = fileToList();
        // 传统的遍历方式
        for (int i = 0; i < list.size(); i++) {
            Admin admin = (Admin) list.get(i);
            String aname = admin.getAdminName();
            if (aname.equals(str)) {
                b = true;
                break;
            }
        }
        return b;
    }

    // 密码是否与ID匹配
    public static boolean aisRightpsd(String id, String str) throws IOException {
        boolean b = false;
        List<Admin> list = fileToList();
        // 传统的遍历方式
        for (int i = 0; i < list.size(); i++) {
            Admin admin = (Admin) list.get(i);
            int j = 0;
            Integer j1 = new Integer(admin.getAdminId());//生成Integer类
            String bid = j1.toString();   //  id 转 str
            String bpsd = admin.getPassword();
            if (bid.equals(id) && str.equals(bpsd)) {
                b = true;
                break;
            }
        }
        return b;
    }


}

管理员的实现类

package elm_V1;
/**
 * [管理员业务类]
 *
 * @author 秦帅
 * @date 2023-9-26
 */


import java.io.IOException;
import java.util.List;
import java.util.Scanner;

import static elm_V1.AdminGJ.*;
import static elm_V1.AdminGJ.fileToList;
import static elm_V1.AdminGJ.listToFile;
import static elm_V1.MenuServiceImp.*;

public class AdminServiceImp {
    public static int value = 0;  //登录之后的id

    // 管理员注册
    public static void adminReg() throws IOException {
//		System.out.println("通过逐步提示 让商户利用键盘输入 注册信息");
//		System.out.println("注册成功后回到menu01(1级菜单)");
//		System.out.println("按回车键...");
//		Scanner sc = new Scanner(System.in);
//		// 暂停程序
//		String str = sc.nextLine();
//		Menu.menu01();

//		Scanner sc = new Scanner(System.in);
//		System.out.println("欢迎注册本系统");
//		System.out.println("请输入商户的登录密码:");
//		String pwd = sc.nextLine();
//		System.out.println("登录密码:" + pwd);

        // 获取文件中的记录数量 得到新序号
        int num = AdminGJ.getFileRow() + 1;

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入管理员名称");
        String str = sc.nextLine();

        while (AdminGJ.aisRepeat(str)) {
            System.out.println("管理员名称重复 请重新输入管理员名称:");
            str = sc.next();
        }
        while (BusinessGJ.isOver(str, 40)) { // 40
            System.out.println("请重新输入管理员名称 长度<=40:"); // 40
            str = sc.next();
        }
        System.out.println("请输入密码");
        String pwd = sc.next();
        System.out.println("请再次输入密码");
        String pwd2 = sc.next();

        boolean bz = BusinessGJ.isInclude(pwd, BusinessGJ.c1) && BusinessGJ.isInclude(pwd, BusinessGJ.c2)
                && BusinessGJ.isInclude(pwd, BusinessGJ.c3) && BusinessGJ.isInclude(pwd, BusinessGJ.c4) && pwd.length() >= 8;

        while (!bz) {
            System.out.println("密码强度不够或位数不够,请重新输入");
            pwd = sc.next();
            bz = BusinessGJ.isInclude(pwd, BusinessGJ.c1) && BusinessGJ.isInclude(pwd, BusinessGJ.c2)
                    && BusinessGJ.isInclude(pwd, BusinessGJ.c3) && BusinessGJ.isInclude(pwd, BusinessGJ.c4)
                    && pwd.length() >= 8;
        }
        while (!pwd.equals(pwd2)) {
            System.out.println("两次输入的密码不相同 请重新输入密码:");
            pwd = sc.next();
            System.out.println("请再次输入密码");
            pwd2 = sc.next();
        }
        Admin admin = new Admin();
        admin.setAdminName(str);
        admin.setPassword(pwd);
        admin.setAdminId(num);
        List<Admin> list = fileToList();
        list.add(admin);
        listToFile(list);
        System.out.println("管理员注册成功 管理员ID为: " + num + "  密码为: " + pwd + " 可以用它登录饿了么管理系统");
        // 暂停程序
        String str2 = sc.nextLine();
        MenuServiceImp.menu01();

    }

    // 管理员登录
    public static void adminLogin() throws IOException {
        Scanner sc = new Scanner(System.in);
        System.out.println("请按如下格式输入管理员信息  空格间隔");
        System.out.println("管理员ID 管理员密码");
        String str = sc.nextLine();
        String[] str_arr = str.split(" ");
        while (str_arr.length != 2) {
            System.out.println("请重新输入管理员信息  空格间隔");
            System.out.println("管理员ID 管理员密码");
            String str1 = sc.nextLine();
            str = str1;
            str_arr = str.split(" ");
        }
        String id = str_arr[0];
        String psd = str_arr[1];
        while (!(aisRightpsd(id, psd))) {
            System.out.println("您输入的ID或密码有误,管理员ID 管理员密码(空格间隔)请重新输入...");
            String str1 = sc.nextLine();
            String[] str_arr1 = str1.split(" ");
            while (str_arr.length != 2) {
                System.out.println("请重新输入管理员信息  空格间隔");
                System.out.println("管理员ID 管理员密码");
                String str2 = sc.nextLine();
                str = str2;
                str_arr = str.split(" ");
            }
            id = str_arr1[0];
            psd = str_arr1[1];
        }
        //传参
        value = Integer.parseInt(id);
        System.out.println("登录成功后正在进入饿了么管理系统...");


//		System.out.println("通过逐步提示 让商户利用键盘输入 登录信息");
//		System.out.println("登录成功后进入menu02(商户管理 2级菜单)");
//		System.out.println("登录失败后返回menu01(1级菜单)");
        System.out.println("按回车键...");
        // 暂停程序
        String str3 = sc.nextLine();
        MenuServiceImp.menu03();
    }

    //展示管理员信息
    public static void adminShowAll() throws IOException {
        List<Admin> list = fileToList();
//		System.out.println("请输入您的商户ID...");
        Scanner sc = new Scanner(System.in);
//		String str = sc.nextLine();
        //ID转整形
//		int id = Integer.parseInt(str);
        Admin admin = (Admin) list.get(value - 1);
        System.out.println("您的管理员ID为:" + admin.getAdminId());
        System.out.println("您的管理员登录密码为:" + admin.getPassword());
        System.out.println("您的管理员名称为:" + admin.getAdminName());
        System.out.println("按回车键后回到管理员管理菜单.....");
        // 暂停程序
        String str1 = sc.nextLine();
        menu03();

    }

    //修改管理员信息
    public static void updateAdmin() throws IOException {
        List<Admin> list = AdminGJ.fileToList();
//		System.out.println("请输入您的商户ID...");
        Scanner sc = new Scanner(System.in);
//		String str = sc.nextLine();食品名称 食品介绍 食品价格
        System.out.println("请选择您要修改的管理员信息...");
        System.out.println("请输入相应的数字,在0-2之间选择...");
        System.out.println("1.管理员名称");
        System.out.println("2.管理员登录密码");
        System.out.println("0.返回上一级菜单");
        Scanner sc1 = new Scanner(System.in);
        String str1 = sc1.nextLine();
        Admin admin = (Admin) list.get(value - 1);
        int ca = Integer.parseInt(str1);
        switch (ca) {
            case 1:
                System.out.println("请输入您修改后的管理员名称...");
                String smc = sc.next();
                admin.setAdminName(smc);
                AdminGJ.listToFile(list);
                System.out.println("管理员名称修改成功!");
                break;
            case 2:
                System.out.println("请输入您修改后的管理员登录密码...");
                String sjs = sc.next();
                admin.setPassword(sjs);
                AdminGJ.listToFile(list);
                System.out.println("管理员登录密码修改成功!");
                break;
            case 0:
                System.out.println("按回车键后回到管理员管理菜单.....");
                menu02();
                break;
            default:
                System.out.println("请选择相应的功能! 在0-2之间选择。");
        }
        // 暂停程序
        String str3 = sc.nextLine();
        menu03();
    }

    //删除管理员信息
    public static void removeAdmin() throws IOException {
        List<Admin> list = AdminGJ.fileToList();
        System.out.println("您确定要注销该管理员吗?(Y/N)");
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        if (str.equals("Y") || str.equals("y")) {
//			System.out.println("请输入您要注销的商户ID...");
//			String str6 = sc.nextLine();
//			int id = Integer.parseInt(str6);
            Admin admin = (Admin) list.get(value - 1);
            list.remove(admin.getAdminId() - 1);
            listToFile(list);
            System.out.println("管理员注销成功!");
            System.out.println("即将返回主菜单!");
            String str5 = sc.nextLine();
            menu01();
        } else {
            System.out.println("按回车键后回到管理员菜单...");
            // 暂停程序
            String str5 = sc.nextLine();
            menu03();
        }
    }

    //通过商家id展示商户信息
//    public static void showAllBussinessbyBussinessID() throws IOException {
//        List<Business> list = BusinessGJ.fileToList();
//		System.out.println("请输入您要查询的的商户ID...");
//        Scanner sc = new Scanner(System.in);
//        String str = sc.nextLine();
//        //ID转整形
//		int id = Integer.parseInt(str);
//        Business bus = (Business) list.get(id - 1);
//        System.out.println("您要查询的的商户ID为:" + bus.getBusinessId());
//        System.out.println("您要查询的的商户登录密码为:" + bus.getPassword());
//        System.out.println("您要查询的的商户地址为:" + bus.getBusinessAddress());
//        System.out.println("您要查询的的商户描述为:" + bus.getBusinessExplain());
//        System.out.println("您要查询的的商户起送费为:" + bus.getStarPrice());
//        System.out.println("您要查询的的商户配送费为:" + bus.getDeliveryPrice());
//        System.out.println("按回车键后回到管理员管理菜单.....");
//        // 暂停程序
//        String str1 = sc.nextLine();
//        menu03();
//
//    }
    //展示所有商户信息
    public static void showAllBussiness() throws IOException {
        List<Business> list = BusinessGJ.fileToList();
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
        // 暂停程序
        String str1 = sc.nextLine();
        menu03();

    }

    //展示所有用户信息
    public static void showAllUser() throws IOException {
        List<User> list = UserGJ.fileToList();
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
        // 暂停程序
        String str1 = sc.nextLine();
        menu03();
    }

    //展示相应商户的所有食品信息
    public static void showAllfood() throws IOException {
        List<Food> list = FoodGJ.fileToList();
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
        // 暂停程序
        String str1 = sc.nextLine();
        menu03();
    }

    //修改商户信息   ----
    public static void gb() throws IOException {
        System.out.println("由于时间不充足..................");
        Scanner sc = new Scanner(System.in);
        // 暂停程序
        String str1 = sc.nextLine();
        menu03();
    }

    //删除商户信息   ----
    public static void db() throws IOException {
        System.out.println("由于时间不充足..................");
        Scanner sc = new Scanner(System.in);
        // 暂停程序
        String str1 = sc.nextLine();
        menu03();
    }

    //修改用户信息   ----
    public static void gu() throws IOException {
        System.out.println("由于时间不充足..................");
        Scanner sc = new Scanner(System.in);
        // 暂停程序
        String str1 = sc.nextLine();
        menu03();
    }

    //删除用户信息  ----
    public static void du() throws IOException {
        System.out.println("由于时间不充足..................");
        Scanner sc = new Scanner(System.in);
        // 暂停程序
        String str1 = sc.nextLine();
        menu03();
    }

    //修改食品信息  ----
    public static void gf() throws IOException {
        System.out.println("由于时间不充足..................");
        Scanner sc = new Scanner(System.in);
        // 暂停程序
        String str1 = sc.nextLine();
        menu03();
    }

    //删除食品信息  ----
    public static void df() throws IOException {
        System.out.println("由于时间不充足..................");
        Scanner sc = new Scanner(System.in);
        // 暂停程序
        String str1 = sc.nextLine();
        menu03();
    }


}

posted @ 2023-09-28 15:40  Kbaor  阅读(49)  评论(0)    收藏  举报