refactor(core):重构异常包结构并更新业务异常引用
- 将 BusinessException 移至 core.exception 包下 - 更新所有业务异常引用路径 - 调整项目模块目录结构说明 - 升级项目版本至3.3.0
This commit is contained in:
47
README.md
47
README.md
@@ -3,7 +3,7 @@
|
||||
<img alt="logo" width="100" height="100" src="https://foruda.gitee.com/images/1733417239320800627/3c5290fe_716974.png">
|
||||
<h2>youlai-boot</h2>
|
||||
<img alt="有来技术" src="https://img.shields.io/badge/Java -17-brightgreen.svg"/>
|
||||
<img alt="有来技术" src="https://img.shields.io/badge/SpringBoot-3.5.5-green.svg"/>
|
||||
<img alt="有来技术" src="https://img.shields.io/badge/SpringBoot-3.5.6-green.svg"/>
|
||||
<a href="https://gitcode.com/youlai/youlai-boot" target="_blank">
|
||||
<img alt="有来技术" src="https://gitcode.com/youlai/youlai-boot/star/badge.svg"/>
|
||||
</a>
|
||||
@@ -73,50 +73,55 @@ youlai-boot
|
||||
├── sql # SQL脚本
|
||||
│ ├── mysql # MySQL 脚本
|
||||
├── src # 源码目录
|
||||
│ ├── auth # 登录认证
|
||||
│ ├── auth # 认证模块(登录入口)
|
||||
│ ├── common # 公共模块
|
||||
│ │ ├── annotation # 注解定义
|
||||
│ │ ├── base # 基础类
|
||||
│ │ ├── constant # 常量
|
||||
│ │ ├── enums # 枚举类型
|
||||
│ │ ├── exception # 异常处理
|
||||
│ │ ├── model # 数据模型
|
||||
│ │ ├── result # 结果封装
|
||||
│ │ └── util # 工具类
|
||||
│ ├── config # 自动装配配置
|
||||
│ │ └── property # 配置属性目录
|
||||
│ ├── core # 核心功能
|
||||
│ ├── core # 核心框架
|
||||
│ │ ├── aspect # 切面(日志、防重提交)
|
||||
│ │ ├── exception # 异常处理
|
||||
│ │ ├── filter # 过滤器(请求日志、限流)
|
||||
│ │ ├── handler # 处理器(数据权限、数据填充)
|
||||
│ │ └── security # Spring Security 安全模块
|
||||
│ ├── module # 业务模块
|
||||
│ │ ├── member # 会员模块【业务模块演示】
|
||||
│ │ ├── order # 订单模块【业务模块演示】
|
||||
│ │ ├── product # 商品模块【业务模块演示】
|
||||
│ ├── module # 插件扩展
|
||||
│ │ ├── knife4j # Knife4j 扩展
|
||||
│ │ ├── mybatis # Mybatis 扩展
|
||||
│ ├── shared # 共享模块
|
||||
│ │ ├── file # 文件模块
|
||||
│ │ ├── validator # 验证器
|
||||
│ │ └── web # Web响应封装(Result、PageResult等)
|
||||
│ ├── platform # 平台服务(通用服务)
|
||||
│ │ ├── codegen # 代码生成模块
|
||||
│ │ ├── mail # 邮件模块
|
||||
│ │ ├── sms # 短信模块
|
||||
│ │ └── websocket # WebSocket 模块
|
||||
│ │ ├── file # 文件服务
|
||||
│ │ ├── mail # 邮件服务
|
||||
│ │ ├── sms # 短信服务
|
||||
│ │ └── websocket # WebSocket服务
|
||||
│ ├── plugin # 插件扩展
|
||||
│ │ ├── knife4j # Knife4j 扩展
|
||||
│ │ └── mybatis # Mybatis 扩展
|
||||
│ ├── security # 安全框架(Spring Security)
|
||||
│ │ ├── exception # 安全异常
|
||||
│ │ ├── filter # 安全过滤器
|
||||
│ │ ├── handler # 安全处理器
|
||||
│ │ ├── model # 安全模型
|
||||
│ │ ├── provider # 认证提供者
|
||||
│ │ ├── service # 安全服务
|
||||
│ │ ├── token # Token管理
|
||||
│ │ └── util # 安全工具类
|
||||
│ ├── system # 系统模块
|
||||
│ │ ├── controller # 控制层
|
||||
│ │ ├── converter # MapStruct 转换器
|
||||
│ │ ├── event # 事件处理
|
||||
│ │ ├── enums # 枚举
|
||||
│ │ ├── handler # 处理器
|
||||
│ │ ├── listener # 监听器
|
||||
│ │ ├── mapper # 数据库访问层
|
||||
│ │ ├── model # 模型层
|
||||
│ │ │ ├── bo # 业务对象
|
||||
│ │ │ ├── dto # 数据传输对象
|
||||
│ │ │ ├── entity # 实体对象
|
||||
│ │ │ ├── event # 事件对象
|
||||
│ │ │ ├── form # 表单对象
|
||||
│ │ │ ├── query # 查询参数对象
|
||||
│ │ │ └── vo # 视图对象
|
||||
│ │ ├── mapper # 数据库访问层
|
||||
│ │ └── service # 业务逻辑层
|
||||
│ └── YouLaiBootApplication # 启动类
|
||||
└── end
|
||||
|
||||
2
pom.xml
2
pom.xml
@@ -6,7 +6,7 @@
|
||||
|
||||
<groupId>com.youlai</groupId>
|
||||
<artifactId>youlai-boot</artifactId>
|
||||
<version>3.2.0</version>
|
||||
<version>3.3.0</version>
|
||||
<description>基于 Java 17 + SpringBoot 3 + Spring Security 构建的权限管理系统。</description>
|
||||
|
||||
<parent>
|
||||
|
||||
@@ -8,7 +8,7 @@ import jakarta.validation.constraints.NotBlank;
|
||||
/**
|
||||
* 微信小程序手机号登录请求参数
|
||||
*
|
||||
* @author 有来技术团队
|
||||
* @author Ray.Hao
|
||||
* @since 2.0.0
|
||||
*/
|
||||
@Schema(description = "微信小程序手机号登录请求参数")
|
||||
|
||||
@@ -5,7 +5,7 @@ import cn.hutool.crypto.digest.DigestUtil;
|
||||
import com.youlai.boot.common.constant.RedisConstants;
|
||||
import com.youlai.boot.common.constant.SecurityConstants;
|
||||
import com.youlai.boot.core.web.ResultCode;
|
||||
import com.youlai.boot.common.exception.BusinessException;
|
||||
import com.youlai.boot.core.exception.BusinessException;
|
||||
import com.youlai.boot.common.annotation.RepeatSubmit;
|
||||
import com.youlai.boot.common.util.IPUtils;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.boot.common.exception;
|
||||
package com.youlai.boot.core.exception;
|
||||
|
||||
import com.youlai.boot.core.web.IResultCode;
|
||||
import lombok.Getter;
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.youlai.boot.common.exception;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.youlai.boot.core.exception.BusinessException;
|
||||
import com.youlai.boot.core.web.Result;
|
||||
import com.youlai.boot.core.web.ResultCode;
|
||||
import jakarta.servlet.ServletException;
|
||||
|
||||
@@ -16,7 +16,7 @@ import com.youlai.boot.config.property.CodegenProperties;
|
||||
import com.youlai.boot.platform.codegen.service.GenConfigService;
|
||||
import com.youlai.boot.platform.codegen.service.GenFieldConfigService;
|
||||
import com.youlai.boot.platform.codegen.service.CodegenService;
|
||||
import com.youlai.boot.common.exception.BusinessException;
|
||||
import com.youlai.boot.core.exception.BusinessException;
|
||||
import com.youlai.boot.platform.codegen.mapper.DatabaseMapper;
|
||||
import com.youlai.boot.platform.codegen.model.entity.GenConfig;
|
||||
import com.youlai.boot.platform.codegen.model.entity.GenFieldConfig;
|
||||
|
||||
@@ -10,7 +10,7 @@ import com.youlai.boot.common.enums.EnvEnum;
|
||||
import com.youlai.boot.platform.codegen.enums.FormTypeEnum;
|
||||
import com.youlai.boot.platform.codegen.enums.JavaTypeEnum;
|
||||
import com.youlai.boot.platform.codegen.enums.QueryTypeEnum;
|
||||
import com.youlai.boot.common.exception.BusinessException;
|
||||
import com.youlai.boot.core.exception.BusinessException;
|
||||
import com.youlai.boot.config.property.CodegenProperties;
|
||||
import com.youlai.boot.platform.codegen.converter.CodegenConverter;
|
||||
import com.youlai.boot.platform.codegen.mapper.DatabaseMapper;
|
||||
|
||||
@@ -5,7 +5,7 @@ import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.youlai.boot.common.exception.BusinessException;
|
||||
import com.youlai.boot.core.exception.BusinessException;
|
||||
import com.youlai.boot.core.web.ResultCode;
|
||||
import com.youlai.boot.platform.file.model.FileInfo;
|
||||
import com.youlai.boot.platform.file.service.FileService;
|
||||
|
||||
@@ -11,7 +11,7 @@ import cn.hutool.jwt.JWTUtil;
|
||||
import com.youlai.boot.common.constant.JwtClaimConstants;
|
||||
import com.youlai.boot.common.constant.RedisConstants;
|
||||
import com.youlai.boot.common.constant.SecurityConstants;
|
||||
import com.youlai.boot.common.exception.BusinessException;
|
||||
import com.youlai.boot.core.exception.BusinessException;
|
||||
import com.youlai.boot.core.web.ResultCode;
|
||||
import com.youlai.boot.config.property.SecurityProperties;
|
||||
import com.youlai.boot.security.model.AuthenticationToken;
|
||||
|
||||
@@ -4,7 +4,7 @@ import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.youlai.boot.common.constant.RedisConstants;
|
||||
import com.youlai.boot.common.exception.BusinessException;
|
||||
import com.youlai.boot.core.exception.BusinessException;
|
||||
import com.youlai.boot.core.web.ResultCode;
|
||||
import com.youlai.boot.config.property.SecurityProperties;
|
||||
import com.youlai.boot.security.model.AuthenticationToken;
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
package com.youlai.boot.system.model.event;
|
||||
package com.youlai.boot.system.model.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 字典更新事件
|
||||
* 字典更新事件消息
|
||||
*
|
||||
* @author Ray.Hao
|
||||
* @since 3.0.0
|
||||
*/
|
||||
@Data
|
||||
public class DictEvent {
|
||||
public class DictEventDTO {
|
||||
/**
|
||||
* 字典编码
|
||||
*/
|
||||
@@ -20,8 +20,9 @@ public class DictEvent {
|
||||
*/
|
||||
private long timestamp;
|
||||
|
||||
public DictEvent(String dictCode) {
|
||||
public DictEventDTO(String dictCode) {
|
||||
this.dictCode = dictCode;
|
||||
this.timestamp = System.currentTimeMillis();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ import cn.hutool.core.lang.Assert;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.youlai.boot.common.exception.BusinessException;
|
||||
import com.youlai.boot.core.exception.BusinessException;
|
||||
import com.youlai.boot.common.model.Option;
|
||||
import com.youlai.boot.system.converter.DictConverter;
|
||||
import com.youlai.boot.system.mapper.DictMapper;
|
||||
|
||||
@@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.youlai.boot.common.exception.BusinessException;
|
||||
import com.youlai.boot.core.exception.BusinessException;
|
||||
import com.youlai.boot.security.util.SecurityUtils;
|
||||
import com.youlai.boot.system.converter.NoticeConverter;
|
||||
import com.youlai.boot.system.enums.NoticePublishStatusEnum;
|
||||
|
||||
@@ -7,7 +7,7 @@ import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.youlai.boot.common.exception.BusinessException;
|
||||
import com.youlai.boot.core.exception.BusinessException;
|
||||
import com.youlai.boot.system.converter.RoleConverter;
|
||||
import com.youlai.boot.system.mapper.RoleMapper;
|
||||
import com.youlai.boot.system.model.entity.Role;
|
||||
|
||||
@@ -10,7 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.youlai.boot.common.constant.RedisConstants;
|
||||
import com.youlai.boot.common.constant.SystemConstants;
|
||||
import com.youlai.boot.common.exception.BusinessException;
|
||||
import com.youlai.boot.core.exception.BusinessException;
|
||||
import com.youlai.boot.common.model.Option;
|
||||
import com.youlai.boot.platform.sms.enums.SmsTypeEnum;
|
||||
import com.youlai.boot.platform.sms.service.SmsService;
|
||||
|
||||
@@ -2,7 +2,7 @@ package com.youlai.boot.system.service.impl;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.youlai.boot.system.model.event.DictEvent;
|
||||
import com.youlai.boot.system.model.dto.DictEventDTO;
|
||||
import com.youlai.boot.system.service.WebSocketService;
|
||||
import lombok.Data;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -192,7 +192,7 @@ public class WebSocketServiceImpl implements WebSocketService {
|
||||
*/
|
||||
@Override
|
||||
public void broadcastDictChange(String dictCode) {
|
||||
DictEvent event = new DictEvent(dictCode);
|
||||
DictEventDTO event = new DictEventDTO(dictCode);
|
||||
sendDictEvent(event);
|
||||
}
|
||||
|
||||
@@ -201,7 +201,7 @@ public class WebSocketServiceImpl implements WebSocketService {
|
||||
*
|
||||
* @param event 字典事件
|
||||
*/
|
||||
private void sendDictEvent(DictEvent event) {
|
||||
private void sendDictEvent(DictEventDTO event) {
|
||||
if (messagingTemplate == null) {
|
||||
log.warn("消息模板尚未初始化,无法发送字典更新通知");
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user