完成了接口和基本的类定义
This commit is contained in:
29
.gitignore
vendored
Normal file
29
.gitignore
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
### IntelliJ IDEA ###
|
||||
out/
|
||||
!**/src/main/**/out/
|
||||
!**/src/test/**/out/
|
||||
|
||||
### Eclipse ###
|
||||
.apt_generated
|
||||
.classpath
|
||||
.factorypath
|
||||
.project
|
||||
.settings
|
||||
.springBeans
|
||||
.sts4-cache
|
||||
bin/
|
||||
!**/src/main/**/bin/
|
||||
!**/src/test/**/bin/
|
||||
|
||||
### NetBeans ###
|
||||
/nbproject/private/
|
||||
/nbbuild/
|
||||
/dist/
|
||||
/nbdist/
|
||||
/.nb-gradle/
|
||||
|
||||
### VS Code ###
|
||||
.vscode/
|
||||
|
||||
### Mac OS ###
|
||||
.DS_Store
|
||||
8
.idea/.gitignore
generated
vendored
Normal file
8
.idea/.gitignore
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
# 默认忽略的文件
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# 基于编辑器的 HTTP 客户端请求
|
||||
/httpRequests/
|
||||
# Datasource local storage ignored files
|
||||
/dataSources/
|
||||
/dataSources.local.xml
|
||||
6
.idea/misc.xml
generated
Normal file
6
.idea/misc.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="21" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
</project>
|
||||
8
.idea/modules.xml
generated
Normal file
8
.idea/modules.xml
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/DataManagerSystem.iml" filepath="$PROJECT_DIR$/DataManagerSystem.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
11
DataManagerSystem.iml
Normal file
11
DataManagerSystem.iml
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
27
src/backend/controller/interfaces/LoginController.java
Normal file
27
src/backend/controller/interfaces/LoginController.java
Normal file
@@ -0,0 +1,27 @@
|
||||
package backend.controller.interfaces;
|
||||
import backend.service.interfaces.AuthService;
|
||||
|
||||
/**
|
||||
* 登录控制器接口,用于处理用户登录和注册相关的业务逻辑
|
||||
*/
|
||||
public interface LoginController {
|
||||
AuthService authService;
|
||||
|
||||
//getter/setter
|
||||
|
||||
/**
|
||||
* 处理用户登录请求
|
||||
* @param username 用户名
|
||||
* @param password 密码
|
||||
*/
|
||||
public void handleLogin(String username, String password);
|
||||
|
||||
/**
|
||||
* 处理用户注册请求
|
||||
* @param username 用户名
|
||||
* @param password 密码
|
||||
* @param email 邮箱地址
|
||||
*/
|
||||
public void handleRegister(String username, String password, String email);
|
||||
}
|
||||
|
||||
33
src/backend/controller/interfaces/QueryController.java
Normal file
33
src/backend/controller/interfaces/QueryController.java
Normal file
@@ -0,0 +1,33 @@
|
||||
package backend.controller.interfaces;
|
||||
import backend.service.interfaces.DataQueryService;
|
||||
|
||||
/**
|
||||
* 查询控制器接口
|
||||
* 定义了数据查询和管理的相关操作接口
|
||||
*/
|
||||
public interface QueryController {
|
||||
DataQueryService dataService;
|
||||
//getter/setter
|
||||
|
||||
/**
|
||||
* 显示所有数据项
|
||||
* 该方法用于获取并展示系统中的全部数据记录
|
||||
*/
|
||||
void displayAll();
|
||||
|
||||
/**
|
||||
* 根据关键字搜索数据
|
||||
* @param keyword 搜索关键字,用于匹配数据项的标题、描述等字段
|
||||
*/
|
||||
void searchData(String keyword);
|
||||
|
||||
/**
|
||||
* 添加新的数据项
|
||||
* @param title 数据项标题
|
||||
* @param desc 数据项描述
|
||||
* @param category 数据项分类
|
||||
* @param userId 用户ID,标识数据项的创建者
|
||||
*/
|
||||
void addDataItem(String title, String desc, String category, int userId);
|
||||
}
|
||||
|
||||
33
src/backend/controller/interfaces/UserController.java
Normal file
33
src/backend/controller/interfaces/UserController.java
Normal file
@@ -0,0 +1,33 @@
|
||||
package backend.controller.interfaces;
|
||||
import backend.service.interfaces.UserService;
|
||||
|
||||
/**
|
||||
* 用户控制器接口
|
||||
* 定义了用户管理相关的核心操作方法
|
||||
*/
|
||||
public interface UserController {
|
||||
UserService userService;
|
||||
|
||||
//getter/setter
|
||||
|
||||
/**
|
||||
* 显示指定用户的详细信息
|
||||
* @param id 用户ID
|
||||
*/
|
||||
void showUserInfo(int id);
|
||||
|
||||
/**
|
||||
* 列出所有用户信息
|
||||
* @param adminId 管理员ID,用于权限验证
|
||||
*/
|
||||
void listAllUsers(int adminId);
|
||||
|
||||
/**
|
||||
* 更新用户角色
|
||||
* @param targetId 目标用户ID
|
||||
* @param newRole 新的角色名称
|
||||
* @param adminId 执行操作的管理员ID
|
||||
*/
|
||||
void updateRole(int targetId, String newRole, int adminId);
|
||||
}
|
||||
|
||||
51
src/backend/dao/interfaces/DataItemDao.java
Normal file
51
src/backend/dao/interfaces/DataItemDao.java
Normal file
@@ -0,0 +1,51 @@
|
||||
package backend.dao.interfaces;
|
||||
import backend.model.DataItem;
|
||||
import java.util.*;
|
||||
import java.sql.*;
|
||||
|
||||
/**
|
||||
* 数据项DAO接口,提供数据项的增删改查操作
|
||||
*/
|
||||
public interface DataItemDao {
|
||||
/**
|
||||
* 根据ID查找数据项
|
||||
* @param id 数据项ID
|
||||
* @return 找到的数据项对象,如果未找到则返回null
|
||||
*/
|
||||
DataItem findById(int id);
|
||||
|
||||
/**
|
||||
* 查找所有数据项
|
||||
* @return 包含所有数据项的列表
|
||||
*/
|
||||
List<DataItem> findAll();
|
||||
|
||||
/**
|
||||
* 根据关键字搜索数据项
|
||||
* @param keyword 搜索关键字
|
||||
* @return 匹配关键字的数据项列表
|
||||
*/
|
||||
List<DataItem> searchByKeyword(String keyword);
|
||||
|
||||
/**
|
||||
* 添加数据项
|
||||
* @param item 要添加的数据项对象
|
||||
* @return 添加成功返回true,失败返回false
|
||||
*/
|
||||
boolean addItem(DataItem item);
|
||||
|
||||
/**
|
||||
* 更新数据项
|
||||
* @param item 包含更新信息的数据项对象
|
||||
* @return 更新成功返回true,失败返回false
|
||||
*/
|
||||
boolean updateItem(DataItem item);
|
||||
|
||||
/**
|
||||
* 删除数据项
|
||||
* @param id 要删除的数据项ID
|
||||
* @return 删除成功返回true,失败返回false
|
||||
*/
|
||||
boolean deleteItem(int id);
|
||||
}
|
||||
|
||||
28
src/backend/dao/interfaces/QueryRecordDao.java
Normal file
28
src/backend/dao/interfaces/QueryRecordDao.java
Normal file
@@ -0,0 +1,28 @@
|
||||
package backend.dao.interfaces;
|
||||
import backend.model.QueryRecord;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 查询记录数据访问接口
|
||||
* 定义了对查询记录进行持久化操作的方法
|
||||
*/
|
||||
public interface QueryRecordDao {
|
||||
/**
|
||||
* 添加查询记录
|
||||
* 将指定的查询记录保存到数据存储中
|
||||
*
|
||||
* @param record 要添加的查询记录对象,不能为null
|
||||
* @return 添加成功返回true,否则返回false
|
||||
*/
|
||||
boolean addRecord(QueryRecord record);
|
||||
|
||||
/**
|
||||
* 根据用户ID查找查询记录
|
||||
* 返回指定用户的所有查询记录列表
|
||||
*
|
||||
* @param userId 用户唯一标识符
|
||||
* @return 查询记录列表,如果未找到则返回空列表
|
||||
*/
|
||||
List<QueryRecord> findByUserId(int userId);
|
||||
}
|
||||
|
||||
52
src/backend/dao/interfaces/UserDao.java
Normal file
52
src/backend/dao/interfaces/UserDao.java
Normal file
@@ -0,0 +1,52 @@
|
||||
package backend.dao.interfaces;
|
||||
|
||||
import backend.model.User;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 用户数据访问接口
|
||||
* 定义了用户相关的数据库操作方法
|
||||
*/
|
||||
public interface UserDao {
|
||||
/**
|
||||
* 根据用户名查找用户
|
||||
* @param username 用户名
|
||||
* @return 查找到的用户对象,如果未找到则返回null
|
||||
*/
|
||||
User findByUsername(String username);
|
||||
|
||||
/**
|
||||
* 根据用户ID查找用户
|
||||
* @param id 用户ID
|
||||
* @return 查找到的用户对象,如果未找到则返回null
|
||||
*/
|
||||
User findById(int id);
|
||||
|
||||
/**
|
||||
* 添加新用户
|
||||
* @param user 要添加的用户对象
|
||||
* @return 添加成功返回true,失败返回false
|
||||
*/
|
||||
boolean addUser(User user);
|
||||
|
||||
/**
|
||||
* 更新用户信息
|
||||
* @param user 包含更新信息的用户对象
|
||||
* @return 更新成功返回true,失败返回false
|
||||
*/
|
||||
boolean updateUser(User user);
|
||||
|
||||
/**
|
||||
* 删除用户
|
||||
* @param id 要删除的用户ID
|
||||
* @return 删除成功返回true,失败返回false
|
||||
*/
|
||||
boolean deleteUser(int id);
|
||||
|
||||
/**
|
||||
* 查找所有用户
|
||||
* @return 包含所有用户对象的列表
|
||||
*/
|
||||
List<User> findAll();
|
||||
}
|
||||
|
||||
136
src/backend/model/DataItem.java
Normal file
136
src/backend/model/DataItem.java
Normal file
@@ -0,0 +1,136 @@
|
||||
package backend.model;
|
||||
import java.sql.*;
|
||||
|
||||
/**
|
||||
* DataItem类用于表示数据项的基本信息
|
||||
* 包含数据项的标识、标题、描述、分类、更新时间和用户ID等属性
|
||||
*/
|
||||
public class DataItem {
|
||||
private int id;
|
||||
private String title;
|
||||
private String description;
|
||||
private String category;
|
||||
private Date updateDate;
|
||||
private int userId;
|
||||
|
||||
/**
|
||||
* 无参构造函数,创建一个空的数据项对象
|
||||
*/
|
||||
public DataItem() {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 有参构造函数,创建一个包含指定属性的数据项对象
|
||||
* @param id 数据项的唯一标识符
|
||||
* @param title 数据项的标题
|
||||
* @param description 数据项的详细描述
|
||||
* @param category 数据项所属的分类
|
||||
* @param updateDate 数据项的最后更新时间
|
||||
* @param userId 关联的用户ID
|
||||
*/
|
||||
public DataItem(int id, String title, String description, String category, Date updateDate, int userId) {
|
||||
this.id = id;
|
||||
this.title = title;
|
||||
this.description = description;
|
||||
this.category = category;
|
||||
this.updateDate = updateDate;
|
||||
this.userId = userId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取数据项的ID
|
||||
* @return 返回数据项的唯一标识符
|
||||
*/
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置数据项的ID
|
||||
* @param id 要设置的数据项唯一标识符
|
||||
*/
|
||||
public void setId(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取数据项的标题
|
||||
* @return 返回数据项的标题
|
||||
*/
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置数据项的标题
|
||||
* @param title 要设置的数据项标题
|
||||
*/
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取数据项的描述
|
||||
* @return 返回数据项的详细描述
|
||||
*/
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置数据项的描述
|
||||
* @param description 要设置的数据项详细描述
|
||||
*/
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取数据项的分类
|
||||
* @return 返回数据项所属的分类
|
||||
*/
|
||||
public String getCategory() {
|
||||
return category;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置数据项的分类
|
||||
* @param category 要设置的数据项分类
|
||||
*/
|
||||
public void setCategory(String category) {
|
||||
this.category = category;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取数据项的更新时间
|
||||
* @return 返回数据项的最后更新时间
|
||||
*/
|
||||
public Date getUpdateDate() {
|
||||
return updateDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置数据项的更新时间
|
||||
* @param updateDate 要设置的数据项最后更新时间
|
||||
*/
|
||||
public void setUpdateDate(Date updateDate) {
|
||||
this.updateDate = updateDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取关联的用户ID
|
||||
* @return 返回关联的用户唯一标识符
|
||||
*/
|
||||
public int getUserId() {
|
||||
return userId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置关联的用户ID
|
||||
* @param userId 要设置的用户唯一标识符
|
||||
*/
|
||||
public void setUserId(int userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
}
|
||||
110
src/backend/model/QueryRecord.java
Normal file
110
src/backend/model/QueryRecord.java
Normal file
@@ -0,0 +1,110 @@
|
||||
package backend.model;
|
||||
|
||||
import java.sql.*;
|
||||
|
||||
/**
|
||||
* 查询记录实体类
|
||||
* 用于封装用户的查询记录信息,包括查询ID、用户ID、查询内容和查询时间
|
||||
*/
|
||||
public class QueryRecord {
|
||||
private int id;
|
||||
private int userId;
|
||||
private String queryContent;
|
||||
private Timestamp queryTime;
|
||||
|
||||
/**
|
||||
* 无参构造函数
|
||||
* 创建一个空的查询记录对象
|
||||
*/
|
||||
public QueryRecord() {
|
||||
}
|
||||
|
||||
/**
|
||||
* 有参构造函数
|
||||
* 根据提供的参数创建查询记录对象
|
||||
*
|
||||
* @param id 查询记录的唯一标识符
|
||||
* @param userId 发起查询的用户ID
|
||||
* @param queryContent 查询的内容
|
||||
* @param queryTime 查询执行的时间戳
|
||||
*/
|
||||
public QueryRecord(int id, int userId, String queryContent, Timestamp queryTime) {
|
||||
this.id = id;
|
||||
this.userId = userId;
|
||||
this.queryContent = queryContent;
|
||||
this.queryTime = queryTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取查询记录ID
|
||||
*
|
||||
* @return 返回查询记录的唯一标识符
|
||||
*/
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置查询记录ID
|
||||
*
|
||||
* @param id 要设置的查询记录唯一标识符
|
||||
*/
|
||||
public void setId(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户ID
|
||||
*
|
||||
* @return 返回发起查询的用户ID
|
||||
*/
|
||||
public int getUserId() {
|
||||
return userId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置用户ID
|
||||
*
|
||||
* @param userId 要设置的用户ID
|
||||
*/
|
||||
public void setUserId(int userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取查询内容
|
||||
*
|
||||
* @return 返回查询的具体内容
|
||||
*/
|
||||
public String getQueryContent() {
|
||||
return queryContent;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置查询内容
|
||||
*
|
||||
* @param queryContent 要设置的查询内容
|
||||
*/
|
||||
public void setQueryContent(String queryContent) {
|
||||
this.queryContent = queryContent;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取查询时间
|
||||
*
|
||||
* @return 返回查询执行的时间戳
|
||||
*/
|
||||
public Timestamp getQueryTime() {
|
||||
return queryTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置查询时间
|
||||
*
|
||||
* @param queryTime 要设置的查询时间戳
|
||||
*/
|
||||
public void setQueryTime(Timestamp queryTime) {
|
||||
this.queryTime = queryTime;
|
||||
}
|
||||
}
|
||||
|
||||
152
src/backend/model/User.java
Normal file
152
src/backend/model/User.java
Normal file
@@ -0,0 +1,152 @@
|
||||
package backend.model;
|
||||
import java.sql.*;
|
||||
|
||||
/**
|
||||
* 用户实体类,用于表示系统中的用户信息
|
||||
* 包含用户的基本属性如ID、用户名、密码、角色、邮箱和创建时间
|
||||
*/
|
||||
public class User {
|
||||
private int id;
|
||||
private String username;
|
||||
private String password;
|
||||
private String role; // "admin", "user"
|
||||
private String email;
|
||||
private Date createdAt;
|
||||
|
||||
// getter/setter
|
||||
|
||||
|
||||
/**
|
||||
* 无参构造函数,创建一个空的用户对象
|
||||
*/
|
||||
public User() {
|
||||
}
|
||||
|
||||
/**
|
||||
* 带参构造函数,使用指定的属性值创建用户对象
|
||||
*
|
||||
* @param id 用户唯一标识符
|
||||
* @param username 用户名
|
||||
* @param password 用户密码
|
||||
* @param role 用户角色,可选值为"admin"或"user"
|
||||
* @param email 用户邮箱地址
|
||||
* @param createdAt 用户创建时间
|
||||
*/
|
||||
public User(int id, String username, String password, String role, String email, Date createdAt) {
|
||||
this.id = id;
|
||||
this.username = username;
|
||||
this.password = password;
|
||||
this.role = role;
|
||||
this.email = email;
|
||||
this.createdAt = createdAt;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置用户ID
|
||||
*
|
||||
* @param id 用户唯一标识符
|
||||
*/
|
||||
public void setId(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置用户名
|
||||
*
|
||||
* @param username 用户名
|
||||
*/
|
||||
public void setUsername(String username) {
|
||||
this.username = username;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置用户角色
|
||||
*
|
||||
* @param role 用户角色,可选值为"admin"或"user"
|
||||
*/
|
||||
public void setRole(String role) {
|
||||
this.role = role;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置用户邮箱
|
||||
*
|
||||
* @param email 用户邮箱地址
|
||||
*/
|
||||
public void setEmail(String email) {
|
||||
this.email = email;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置用户密码
|
||||
*
|
||||
* @param password 用户密码
|
||||
*/
|
||||
public void setPassword(String password) {
|
||||
this.password = password;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置用户创建时间
|
||||
*
|
||||
* @param createdAt 用户创建时间
|
||||
*/
|
||||
public void setCreatedAt(Date createdAt) {
|
||||
this.createdAt = createdAt;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户ID
|
||||
*
|
||||
* @return 用户唯一标识符
|
||||
*/
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户名
|
||||
*
|
||||
* @return 用户名
|
||||
*/
|
||||
public String getUsername() {
|
||||
return username;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户密码
|
||||
*
|
||||
* @return 用户密码
|
||||
*/
|
||||
public String getPassword() {
|
||||
return password;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户角色
|
||||
*
|
||||
* @return 用户角色,可能的值为"admin"或"user"
|
||||
*/
|
||||
public String getRole() {
|
||||
return role;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户邮箱
|
||||
*
|
||||
* @return 用户邮箱地址
|
||||
*/
|
||||
public String getEmail() {
|
||||
return email;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户创建时间
|
||||
*
|
||||
* @return 用户创建时间
|
||||
*/
|
||||
public Date getCreatedAt() {
|
||||
return createdAt;
|
||||
}
|
||||
}
|
||||
|
||||
64
src/backend/model/enums/LoginStatus.java
Normal file
64
src/backend/model/enums/LoginStatus.java
Normal file
@@ -0,0 +1,64 @@
|
||||
package backend.model.enums;
|
||||
|
||||
/**
|
||||
* 登录状态枚举类
|
||||
* 定义了系统中所有可能的登录相关状态码和对应的消息描述
|
||||
*/
|
||||
public enum LoginStatus {
|
||||
SUCCESS(490,"登录成功"),
|
||||
USER_NOT_FOUND(491,"用户不存在"),
|
||||
PASSWORD_ERROR(492,"密码错误"),
|
||||
ALREADY_LOGGED_IN(493,"重复登录"),
|
||||
CAPTCHA_ERROR(494,"验证码错误"),
|
||||
ACCOUNT_LOCKED(495,"账户被封禁"),
|
||||
PERMISSION_DENIED(496,"权限不足"),
|
||||
LOGOUT_SUCCESS(497,"登出成功"),
|
||||
NOT_LOGGED_IN(498,"未登录"),
|
||||
UNKNOWN_ERROR(499,"未知错误");
|
||||
|
||||
private final int code;
|
||||
private final String msg;
|
||||
|
||||
/**
|
||||
* 构造函数,初始化状态码和消息
|
||||
* @param code 状态码
|
||||
* @param msg 状态消息
|
||||
*/
|
||||
LoginStatus(int code, String msg) {
|
||||
this.code = code;
|
||||
this.msg = msg;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据状态码获取对应的登录状态枚举值
|
||||
* @param code 状态码
|
||||
* @return 对应的LoginStatus枚举值,如果未找到则返回null
|
||||
*/
|
||||
public static LoginStatus getByCode(int code){
|
||||
// 遍历所有枚举值查找匹配的状态码
|
||||
for(LoginStatus status:values()){
|
||||
if(status.code==code){
|
||||
return status;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取状态码
|
||||
* @return 状态码
|
||||
*/
|
||||
public int getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取状态消息
|
||||
* @return 状态消息
|
||||
*/
|
||||
public String getMsg() {
|
||||
return msg;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
48
src/backend/service/interfaces/AuthService.java
Normal file
48
src/backend/service/interfaces/AuthService.java
Normal file
@@ -0,0 +1,48 @@
|
||||
package backend.service.interfaces;
|
||||
|
||||
/**
|
||||
* 认证服务接口
|
||||
* 提供用户认证和权限管理相关功能
|
||||
*/
|
||||
public interface AuthService {
|
||||
/**
|
||||
* 用户登录验证
|
||||
* 验证用户名和密码是否匹配,如果匹配则允许用户登录系统
|
||||
*
|
||||
* @param username 用户名
|
||||
* @param password 密码
|
||||
* @return 登录成功返回true,失败返回false
|
||||
*/
|
||||
boolean login(String username, String password);
|
||||
|
||||
/**
|
||||
* 用户注册
|
||||
* 创建新的用户账户,将用户信息存储到系统中
|
||||
*
|
||||
* @param username 用户名
|
||||
* @param password 密码
|
||||
* @param email 邮箱地址
|
||||
* @return 注册成功返回true,失败返回false
|
||||
*/
|
||||
boolean register(String username, String password, String email);
|
||||
|
||||
/**
|
||||
* 用户登出
|
||||
* 使指定用户的会话失效,结束用户的登录状态
|
||||
*
|
||||
* @param userId 用户唯一标识符
|
||||
* @return 登出成功返回true,失败返回false
|
||||
*/
|
||||
boolean logout(int userId);
|
||||
|
||||
/**
|
||||
* 权限检查
|
||||
* 检查指定用户是否具有所需的权限角色
|
||||
*
|
||||
* @param userId 用户唯一标识符
|
||||
* @param requiredRole 所需的角色权限
|
||||
* @return 具有权限返回true,无权限返回false
|
||||
*/
|
||||
boolean hasPermission(int userId, String requiredRole);
|
||||
}
|
||||
|
||||
49
src/backend/service/interfaces/DataQueryService.java
Normal file
49
src/backend/service/interfaces/DataQueryService.java
Normal file
@@ -0,0 +1,49 @@
|
||||
package backend.service.interfaces;
|
||||
import backend.model.DataItem;
|
||||
import backend.model.QueryRecord;
|
||||
import backend.model.User;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 数据查询服务接口
|
||||
* 提供数据项的增删改查功能
|
||||
*/
|
||||
public interface DataQueryService {
|
||||
/**
|
||||
* 查询所有数据项
|
||||
* @return 包含所有数据项的列表
|
||||
*/
|
||||
List<DataItem> queryAll();
|
||||
|
||||
/**
|
||||
* 根据关键字搜索数据项
|
||||
* @param keyword 搜索关键字
|
||||
* @return 匹配关键字的数据项列表
|
||||
*/
|
||||
List<DataItem> search(String keyword);
|
||||
|
||||
/**
|
||||
* 添加数据项
|
||||
* @param item 要添加的数据项对象
|
||||
* @param userId 执行操作的用户ID
|
||||
* @return 添加成功返回true,失败返回false
|
||||
*/
|
||||
boolean addDataItem(DataItem item, int userId);
|
||||
|
||||
/**
|
||||
* 更新数据项
|
||||
* @param item 要更新的数据项对象
|
||||
* @param userId 执行操作的用户ID
|
||||
* @return 更新成功返回true,失败返回false
|
||||
*/
|
||||
boolean updateDataItem(DataItem item, int userId);
|
||||
|
||||
/**
|
||||
* 删除数据项
|
||||
* @param id 要删除的数据项ID
|
||||
* @param userId 执行操作的用户ID
|
||||
* @return 删除成功返回true,失败返回false
|
||||
*/
|
||||
boolean deleteDataItem(int id, int userId);
|
||||
}
|
||||
|
||||
33
src/backend/service/interfaces/UserService.java
Normal file
33
src/backend/service/interfaces/UserService.java
Normal file
@@ -0,0 +1,33 @@
|
||||
package backend.service.interfaces;
|
||||
import backend.model.User;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 用户服务接口
|
||||
* 定义了用户相关的业务操作方法
|
||||
*/
|
||||
public interface UserService {
|
||||
/**
|
||||
* 根据用户ID获取用户信息
|
||||
* @param id 用户ID
|
||||
* @return 用户对象,如果未找到则返回null
|
||||
*/
|
||||
User getUserInfo(int id);
|
||||
|
||||
/**
|
||||
* 列出所有用户信息
|
||||
* @param requesterId 请求者用户ID,用于权限验证
|
||||
* @return 用户列表
|
||||
*/
|
||||
List<User> listAllUsers(int requesterId);
|
||||
|
||||
/**
|
||||
* 更新用户角色权限
|
||||
* @param targetId 目标用户ID
|
||||
* @param newRole 新的角色权限
|
||||
* @param adminId 管理员用户ID
|
||||
* @return 操作是否成功
|
||||
*/
|
||||
boolean updateUserRole(int targetId, String newRole, int adminId);//用户权限
|
||||
}
|
||||
|
||||
41
src/backend/utils/interfaces/CaptchaUtils.java
Normal file
41
src/backend/utils/interfaces/CaptchaUtils.java
Normal file
@@ -0,0 +1,41 @@
|
||||
package backend.utils.interfaces;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
/**
|
||||
* 验证码工具类接口
|
||||
* 提供验证码的生成和验证功能
|
||||
*/
|
||||
public interface CaptchaUtils {
|
||||
/**
|
||||
* 字符集常量,包含大小写字母和数字
|
||||
*/
|
||||
static final String CHAR_SET="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
||||
|
||||
/**
|
||||
* 验证码长度常量,默认为4位
|
||||
*/
|
||||
static final int CAPTCHA_LENGTH=4;
|
||||
|
||||
/**
|
||||
* 私有构造函数,防止实例化
|
||||
*/
|
||||
private CaptchaUtils();
|
||||
|
||||
/**
|
||||
* 生成随机验证码
|
||||
*
|
||||
* @return 生成的验证码字符串
|
||||
*/
|
||||
static String generateCaptcha();
|
||||
|
||||
/**
|
||||
* 验证用户输入的验证码是否正确
|
||||
*
|
||||
* @param inputCaptcha 用户输入的验证码
|
||||
* @param systemCaptcha 系统生成的验证码
|
||||
* @return 验证结果,正确返回true,错误返回false
|
||||
*/
|
||||
static boolean verifyCaptcha(String inputCaptcha,String systemCaptcha);
|
||||
}
|
||||
|
||||
24
src/backend/utils/interfaces/DBUtil.java
Normal file
24
src/backend/utils/interfaces/DBUtil.java
Normal file
@@ -0,0 +1,24 @@
|
||||
package backend.utils.interfaces;
|
||||
import java.sql.*;
|
||||
|
||||
/**
|
||||
* 数据库工具接口,提供数据库连接和资源关闭的通用方法
|
||||
*/
|
||||
public interface DBUtil {
|
||||
/**
|
||||
* 获取数据库连接对象
|
||||
*
|
||||
* @return Connection 数据库连接对象,用于执行SQL语句
|
||||
*/
|
||||
static Connection getConnection();
|
||||
|
||||
/**
|
||||
* 关闭数据库相关资源,包括连接、语句和结果集
|
||||
*
|
||||
* @param conn 数据库连接对象,需要被关闭的连接
|
||||
* @param stmt SQL语句对象,需要被关闭的语句
|
||||
* @param rs 结果集对象,需要被关闭的结果集
|
||||
*/
|
||||
static void close(Connection conn, Statement stmt, ResultSet rs);
|
||||
}
|
||||
|
||||
24
src/backend/utils/interfaces/PasswordUtil.java
Normal file
24
src/backend/utils/interfaces/PasswordUtil.java
Normal file
@@ -0,0 +1,24 @@
|
||||
package backend.utils.interfaces;
|
||||
|
||||
/**
|
||||
* 密码工具接口,提供密码加密和验证功能
|
||||
*/
|
||||
public interface PasswordUtil {
|
||||
/**
|
||||
* 对明文密码进行加密处理
|
||||
*
|
||||
* @param plainText 需要加密的明文密码字符串
|
||||
* @return 加密后的密码字符串
|
||||
*/
|
||||
static String encrypt(String plainText);
|
||||
|
||||
/**
|
||||
* 验证明文密码与已加密密码是否匹配
|
||||
*
|
||||
* @param plainText 明文密码字符串
|
||||
* @param hashed 已加密的密码字符串
|
||||
* @return 如果匹配返回true,否则返回false
|
||||
*/
|
||||
static boolean verify(String plainText, String hashed);
|
||||
}
|
||||
|
||||
21
src/backend/utils/interfaces/RoleUtil.java
Normal file
21
src/backend/utils/interfaces/RoleUtil.java
Normal file
@@ -0,0 +1,21 @@
|
||||
package backend.utils.interfaces;
|
||||
|
||||
/**
|
||||
* 角色工具类接口,提供角色判断功能
|
||||
*/
|
||||
public interface RoleUtil {
|
||||
/**
|
||||
* 判断给定的角色是否为管理员角色
|
||||
* @param role 待判断的角色字符串
|
||||
* @return 如果是管理员角色返回true,否则返回false
|
||||
*/
|
||||
static boolean isAdmin(String role);
|
||||
|
||||
/**
|
||||
* 判断给定的角色是否为普通用户角色
|
||||
* @param role 待判断的角色字符串
|
||||
* @return 如果是普通用户角色返回true,否则返回false
|
||||
*/
|
||||
static boolean isUser(String role);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user