commit b73727ccc252f1badab6b6edbb2de1d38b9d0a89 Author: KiriAky 107 Date: Fri Nov 14 01:54:04 2025 +0800 完成了接口和基本的类定义 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f68d109 --- /dev/null +++ b/.gitignore @@ -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 \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..35410ca --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# 默认忽略的文件 +/shelf/ +/workspace.xml +# 基于编辑器的 HTTP 客户端请求 +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..6f29fee --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..c8cec3f --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/DataManagerSystem.iml b/DataManagerSystem.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/DataManagerSystem.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src/backend/controller/interfaces/LoginController.java b/src/backend/controller/interfaces/LoginController.java new file mode 100644 index 0000000..4b51b11 --- /dev/null +++ b/src/backend/controller/interfaces/LoginController.java @@ -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); +} + diff --git a/src/backend/controller/interfaces/QueryController.java b/src/backend/controller/interfaces/QueryController.java new file mode 100644 index 0000000..2e14def --- /dev/null +++ b/src/backend/controller/interfaces/QueryController.java @@ -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); +} + diff --git a/src/backend/controller/interfaces/UserController.java b/src/backend/controller/interfaces/UserController.java new file mode 100644 index 0000000..674e186 --- /dev/null +++ b/src/backend/controller/interfaces/UserController.java @@ -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); +} + diff --git a/src/backend/dao/interfaces/DataItemDao.java b/src/backend/dao/interfaces/DataItemDao.java new file mode 100644 index 0000000..c6217fb --- /dev/null +++ b/src/backend/dao/interfaces/DataItemDao.java @@ -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 findAll(); + + /** + * 根据关键字搜索数据项 + * @param keyword 搜索关键字 + * @return 匹配关键字的数据项列表 + */ + List 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); +} + diff --git a/src/backend/dao/interfaces/QueryRecordDao.java b/src/backend/dao/interfaces/QueryRecordDao.java new file mode 100644 index 0000000..d017030 --- /dev/null +++ b/src/backend/dao/interfaces/QueryRecordDao.java @@ -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 findByUserId(int userId); +} + diff --git a/src/backend/dao/interfaces/UserDao.java b/src/backend/dao/interfaces/UserDao.java new file mode 100644 index 0000000..f9a85d5 --- /dev/null +++ b/src/backend/dao/interfaces/UserDao.java @@ -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 findAll(); +} + diff --git a/src/backend/model/DataItem.java b/src/backend/model/DataItem.java new file mode 100644 index 0000000..7805f36 --- /dev/null +++ b/src/backend/model/DataItem.java @@ -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; + } +} diff --git a/src/backend/model/QueryRecord.java b/src/backend/model/QueryRecord.java new file mode 100644 index 0000000..88071ab --- /dev/null +++ b/src/backend/model/QueryRecord.java @@ -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; + } +} + diff --git a/src/backend/model/User.java b/src/backend/model/User.java new file mode 100644 index 0000000..aa25176 --- /dev/null +++ b/src/backend/model/User.java @@ -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; + } +} + diff --git a/src/backend/model/enums/LoginStatus.java b/src/backend/model/enums/LoginStatus.java new file mode 100644 index 0000000..e32ab9c --- /dev/null +++ b/src/backend/model/enums/LoginStatus.java @@ -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; + } + +} + diff --git a/src/backend/service/interfaces/AuthService.java b/src/backend/service/interfaces/AuthService.java new file mode 100644 index 0000000..a151d29 --- /dev/null +++ b/src/backend/service/interfaces/AuthService.java @@ -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); +} + diff --git a/src/backend/service/interfaces/DataQueryService.java b/src/backend/service/interfaces/DataQueryService.java new file mode 100644 index 0000000..1447089 --- /dev/null +++ b/src/backend/service/interfaces/DataQueryService.java @@ -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 queryAll(); + + /** + * 根据关键字搜索数据项 + * @param keyword 搜索关键字 + * @return 匹配关键字的数据项列表 + */ + List 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); +} + diff --git a/src/backend/service/interfaces/UserService.java b/src/backend/service/interfaces/UserService.java new file mode 100644 index 0000000..f5c7efc --- /dev/null +++ b/src/backend/service/interfaces/UserService.java @@ -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 listAllUsers(int requesterId); + + /** + * 更新用户角色权限 + * @param targetId 目标用户ID + * @param newRole 新的角色权限 + * @param adminId 管理员用户ID + * @return 操作是否成功 + */ + boolean updateUserRole(int targetId, String newRole, int adminId);//用户权限 +} + diff --git a/src/backend/utils/interfaces/CaptchaUtils.java b/src/backend/utils/interfaces/CaptchaUtils.java new file mode 100644 index 0000000..240bcab --- /dev/null +++ b/src/backend/utils/interfaces/CaptchaUtils.java @@ -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); +} + diff --git a/src/backend/utils/interfaces/DBUtil.java b/src/backend/utils/interfaces/DBUtil.java new file mode 100644 index 0000000..f6e76bc --- /dev/null +++ b/src/backend/utils/interfaces/DBUtil.java @@ -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); +} + diff --git a/src/backend/utils/interfaces/PasswordUtil.java b/src/backend/utils/interfaces/PasswordUtil.java new file mode 100644 index 0000000..ebe5119 --- /dev/null +++ b/src/backend/utils/interfaces/PasswordUtil.java @@ -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); +} + diff --git a/src/backend/utils/interfaces/RoleUtil.java b/src/backend/utils/interfaces/RoleUtil.java new file mode 100644 index 0000000..7305022 --- /dev/null +++ b/src/backend/utils/interfaces/RoleUtil.java @@ -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); +} +