feat(database): 重构用户角色关联及权限体系

- 新增 BizException 构造函数支持自定义消息
- 优化 SQL 脚本结构,明确表设计最佳实践
- 修改 t_user、t_role 等表字段类型与索引策略
- 引入代理主键 id 到关联表 t_user_role 和 t_role_permission
- 更新 UserRole 实体类适配 MyBatis-Plus 主键策略
- 增强 UserRoleService 接口功能,支持分配和撤销角色
- 实现批量操作和事务控制提升数据一致性
- 添加安全注解 @PreAuthorize 控制接口访问权限
- 修正 Mapper 注解并优化参数命名提高可读性
- 扩展 ErrorCode 常量增强错误描述准确性
This commit is contained in:
chaos
2025-11-20 23:01:30 +08:00
parent e46b820fca
commit 8dd0efa09e
9 changed files with 273 additions and 132 deletions

View File

@@ -30,9 +30,12 @@ public enum ErrorCode {
PHONE_EXISTS(409, "USER-109", "手机号已注册"),
PHONE_FORMAT_ERROR(400, "USER-110", "手机号格式无效"),
USER_UPDATE_USERNAME_FAILED(400,"USER-111" , "用户名更新失败"),
// 用户组
ROLE_REVOKE_FAILED(400,"USER-112" ,"用户组删除失败" ),
ROLE_ID_INVALID(400, "ROLE-100" , "角色ID无效" ),
ROLE_ID_EXISTS(400, "ROLE-100" , "角色ID已存在" ),
ROLE_ID_INVALID(400, "ROLE-101" , "角色ID无效" ),
ROLE_ID_NOT_EXISTS(400, "ROLE-102" , "角色ID不存在"),
// ================== 论坛内容相关 (200-299) ==================
POST_NOT_FOUND(404, "POST-201", "帖子不存在"),
@@ -47,7 +50,7 @@ public enum ErrorCode {
CAPTCHA_ERROR(400, "SYS-301", "验证码错误"),
SMS_SEND_FAILED(500, "SYS-302", "短信发送失败"),
FILE_UPLOAD_FAILED(500, "SYS-303", "文件上传失败"),
RATE_LIMIT_EXCEEDED(429, "SYS-304", "操作过于频繁"),;
RATE_LIMIT_EXCEEDED(429, "SYS-304", "操作过于频繁");
private final int httpStatus;
private final String code; // 业务错误码(领域-编号)

View File

@@ -11,4 +11,8 @@ public class BizException extends RuntimeException{
super(errorCode.getMessage());
this.errorCode = errorCode;
}
public BizException(String message) {
super(message);
this.errorCode = ErrorCode.SYSTEM_ERROR;
}
}