Java审核账号功能
1. 引言
在许多应用程序中,账号审核是一个重要的功能。通过审核账号,管理员可以控制哪些用户可以访问应用程序。在本文中,我们将讨论如何使用Java编写一个简单的账号审核功能。
2. 功能要求
我们的账号审核功能需要满足以下要求:
- 管理员能够添加新用户。
- 新用户需要经过审核才能访问应用程序。
- 管理员能够审核和修改现有用户的状态。
- 用户能够登录并访问应用程序,但只有审核通过的用户才能执行特定操作。
3. 数据库设计
我们将使用关系型数据库来存储用户数据。我们需要创建一个名为users
的表,其中包含以下列:
id
:用户的唯一标识符。username
:用户名。password
:用户密码的哈希值。status
:用户的审核状态(待审核,通过,拒绝)。
下面是一个使用mermaid语法的ER图,表示我们的数据库设计:
erDiagram
users {
int id
string username
string password
string status
}
4. Java代码实现
首先,我们需要创建一个User
类来表示用户对象。这个类将具有以下属性和方法:
public class User {
private int id;
private String username;
private String password;
private String status;
// 构造函数
public User(int id, String username, String password, String status) {
this.id = id;
this.username = username;
this.password = password;
this.status = status;
}
// Getter 和 Setter 方法
// ...
}
然后,我们需要创建一个UserDao
类来处理与数据库交互的操作。这个类将具有以下方法:
addUser(User user)
:将一个新用户添加到数据库。getUserById(int id)
:根据用户ID获取用户对象。getUserByUsername(String username)
:根据用户名获取用户对象。updateUser(User user)
:更新用户的审核状态。getAllUsers()
:获取所有用户的列表。
import java.util.ArrayList;
import java.util.List;
public class UserDao {
private List<User> users;
public UserDao() {
this.users = new ArrayList<>();
}
public void addUser(User user) {
users.add(user);
}
public User getUserById(int id) {
for (User user : users) {
if (user.getId() == id) {
return user;
}
}
return null;
}
public User getUserByUsername(String username) {
for (User user : users) {
if (user.getUsername().equals(username)) {
return user;
}
}
return null;
}
public void updateUser(User user) {
User existingUser = getUserById(user.getId());
if (existingUser != null) {
existingUser.setStatus(user.getStatus());
}
}
public List<User> getAllUsers() {
return users;
}
}
接下来,我们创建一个AccountService
类来处理账号审核逻辑。这个类将具有以下方法:
register(String username, String password)
:注册一个新用户。login(String username, String password)
:用户登录。approveUser(String username)
:审核通过用户。rejectUser(String username)
:拒绝用户。
public class AccountService {
private UserDao userDao;
public AccountService(UserDao userDao) {
this.userDao = userDao;
}
public void register(String username, String password) {
// 检查用户名是否已存在
if (userDao.getUserByUsername(username) != null) {
System.out.println("Username already exists.");
return;
}
// 创建新用户对象
int newId = userDao.getAllUsers().size() + 1;
User newUser = new User(newId, username, password, "Pending");
// 添加用户到数据库
userDao.addUser(newUser);
System.out.println("User registered successfully.");
}
public void login(String username, String password) {
User user = userDao.getUserByUsername(username);
if (user == null) {
System.out.println("Invalid username.");
return;
}
if (!user.getPassword().equals(password)) {
System.out.println("Invalid password.");
return;
}
if (!user.getStatus().equals("Approved")) {
System.out.println("Account is not approved yet.");
return;
}
System.out.println("Login successful. Welcome, " + username + "!");
}
public void approveUser(String username) {
User user = userDao