|
|
|
|
@ -1,6 +1,7 @@
|
|
|
|
|
package com.mathgenerator.service;
|
|
|
|
|
|
|
|
|
|
import com.google.gson.Gson;
|
|
|
|
|
import java.util.Objects;
|
|
|
|
|
import com.google.gson.GsonBuilder;
|
|
|
|
|
import com.google.gson.reflect.TypeToken;
|
|
|
|
|
import com.mathgenerator.model.User;
|
|
|
|
|
@ -81,10 +82,22 @@ public class UserService {
|
|
|
|
|
* @return 成功返回true, 否则返回false
|
|
|
|
|
*/
|
|
|
|
|
public boolean register(String username, String email, String password) {
|
|
|
|
|
if (userDatabase.containsKey(username) ||
|
|
|
|
|
userDatabase.values().stream().anyMatch(u -> u.email().equals(email))) {
|
|
|
|
|
// 1. 基础校验:防止 null 或空白输入
|
|
|
|
|
if (username == null || email == null || password == null ||
|
|
|
|
|
username.trim().isEmpty() || email.trim().isEmpty() || password.trim().isEmpty()) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 2. 检查用户名或邮箱是否已存在(使用 Objects.equals 安全比较)
|
|
|
|
|
boolean usernameExists = userDatabase.containsKey(username);
|
|
|
|
|
boolean emailExists = userDatabase.values().stream()
|
|
|
|
|
.anyMatch(u -> Objects.equals(u.email(), email));
|
|
|
|
|
|
|
|
|
|
if (usernameExists || emailExists) {
|
|
|
|
|
return false; // 用户名或邮箱已存在
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 3. 创建新用户并保存
|
|
|
|
|
User newUser = new User(username, email, password);
|
|
|
|
|
userDatabase.put(username, newUser);
|
|
|
|
|
saveUsers();
|
|
|
|
|
|