|
|
|
|
@ -81,27 +81,37 @@ public class ConsoleUI {
|
|
|
|
|
*/
|
|
|
|
|
private void handleRegistration() {
|
|
|
|
|
printHeader("新用户注册");
|
|
|
|
|
System.out.print("请输入新用户名: ");
|
|
|
|
|
String username = scanner.nextLine().trim();
|
|
|
|
|
System.out.print("请输入用户名和密码(用空格分隔): ");
|
|
|
|
|
String input = scanner.nextLine().trim();
|
|
|
|
|
|
|
|
|
|
if (input.isEmpty()) {
|
|
|
|
|
System.out.println("输入不能为空。");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
// 按空格分割,只分割成两部分:用户名 和 密码(后面部分允许包含空格)
|
|
|
|
|
String[] parts = input.split("\\s+", 2); // 最多分割成2部分
|
|
|
|
|
if (parts.length != 2) {
|
|
|
|
|
System.out.println("格式错误:请输入 '用户名 密码',用空格分隔。");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
String username = parts[0].trim();
|
|
|
|
|
String password = parts[1].trim(); // 允许密码包含空格
|
|
|
|
|
if (username.isEmpty() || password.isEmpty()) {
|
|
|
|
|
System.out.println("用户名或密码不能为空。");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (userService.findUserByUsername(username).isPresent()) {
|
|
|
|
|
System.out.println("注册失败:该用户名已被占用。");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
System.out.print("请输入密码: ");
|
|
|
|
|
String password = scanner.nextLine().trim();
|
|
|
|
|
|
|
|
|
|
Level level = selectLevelForRegistration();
|
|
|
|
|
if (level == null) {
|
|
|
|
|
System.out.println("操作已取消。");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (userService.register(username, password, level)) {
|
|
|
|
|
System.out.println("注册成功!现在您可以使用新账户登录了。");
|
|
|
|
|
} else {
|
|
|
|
|
// 理论上,这里的失败分支不会被触发,因为我们已经提前检查了用户名
|
|
|
|
|
System.out.println("注册失败,发生未知错误。");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|