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();
}
}