From 8188c82c3dc2b958ae900242d06d71b403542309 Mon Sep 17 00:00:00 2001
From: "Ray.Hao" <1490493387@qq.com>
Date: Tue, 24 Mar 2026 07:52:05 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E9=87=8D=E6=9E=84=E9=A1=B9=E7=9B=AE?=
=?UTF-8?q?=E7=BB=93=E6=9E=84=E5=B9=B6=E6=96=B0=E5=A2=9E=E5=BE=AE=E4=BF=A1?=
=?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E8=AE=A4=E8=AF=81=E6=A8=A1=E5=9D=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 16 +-
pom.xml | 7 +-
sql/mysql/youlai_admin.sql | 46 ++--
sql/mysql/youlai_admin_template.sql | 46 ++--
.../boot/auth/controller/AuthController.java | 25 +-
...ontroller.java => WxMaAuthController.java} | 50 ++--
.../{dto/LoginRequest.java => LoginReq.java} | 7 +-
.../boot/auth/model/WxMaBindMobileReq.java | 28 ++
.../youlai/boot/auth/model/WxMaLoginResp.java | 42 +++
.../boot/auth/model/WxMaPhoneLoginReq.java | 24 ++
.../model/vo/WechatMiniappLoginResult.java | 63 -----
.../youlai/boot/auth/service/AuthService.java | 8 +-
...pAuthService.java => WxMaAuthService.java} | 8 +-
.../auth/service/impl/AuthServiceImpl.java | 84 ++----
...viceImpl.java => WxMaAuthServiceImpl.java} | 53 ++--
.../youlai/boot/common/annotation/Log.java | 36 ++-
.../boot/common/annotation/ValidField.java | 2 +-
.../youlai/boot/common/aspect/LogAspect.java | 136 ++++++++++
.../aspect/RepeatSubmitAspect.java | 6 +-
.../boot/common/enums/ActionTypeEnum.java | 56 ++++
.../boot/common/enums/LogModuleEnum.java | 47 +++-
.../boot/common/enums/RequestMethodEnum.java | 52 ----
.../exception/BusinessException.java | 4 +-
.../web => common/result}/ExcelResult.java | 2 +-
.../web => common/result}/IResultCode.java | 2 +-
.../web => common/result}/PageResult.java | 2 +-
.../result/ResponseWriter.java} | 14 +-
.../{core/web => common/result}/Result.java | 2 +-
.../web => common/result}/ResultCode.java | 2 +-
.../youlai/boot/common/util/DateUtils.java | 61 -----
.../validator/FieldValidator.java | 6 +-
.../youlai/boot/core/aspect/LogAspect.java | 243 ------------------
.../cache}/config/CaffeineConfig.java | 2 +-
.../cache}/config/RedisCacheConfig.java | 2 +-
.../cache}/config/RedisConfig.java | 2 +-
.../captcha}/config/CaptchaConfig.java | 2 +-
.../captcha/exception/CaptchaException.java | 19 ++
.../captcha/model/CaptchaInfo.java} | 15 +-
.../captcha/service/CaptchaService.java | 102 ++++++++
.../integration/mail}/config/MailConfig.java | 2 +-
.../mail/service/MailService.java | 2 +-
.../integration}/sms/enums/SmsTypeEnum.java | 2 +-
.../integration}/sms/service/SmsService.java | 4 +-
.../sms/service/impl/AliyunSmsService.java | 6 +-
.../integration/wxma}/config/WxMaConfig.java | 2 +-
.../job}/config/XxlJobConfig.java | 2 +-
.../persistence}/config/MybatisConfig.java | 6 +-
.../handler}/MyMetaObjectHandler.java | 2 +-
.../interceptor}/MyDataPermissionHandler.java | 10 +-
.../config/PasswordEncoderConfig.java | 2 +-
.../security}/config/SecurityConfig.java | 26 +-
.../exception/CaptchaValidationException.java | 2 +-
.../exception/NeedBindMobileException.java | 2 +-
.../filter/CaptchaValidationFilter.java | 41 +--
.../filter/TokenAuthenticationFilter.java | 12 +-
.../handler/MyAccessDeniedHandler.java | 8 +-
.../handler/MyAuthenticationEntryPoint.java | 12 +-
.../security/model/AuthenticationToken.java | 2 +-
.../security/model/RoleDataScope.java | 2 +-
.../model/SmsAuthenticationToken.java | 2 +-
.../security/model/SysUserDetails.java | 2 +-
.../security/model/UserAuthInfo.java | 2 +-
.../security/model/UserSession.java | 2 +-
.../model/WechatMiniAuthenticationToken.java | 2 +-
.../provider/SmsAuthenticationProvider.java | 10 +-
.../WechatMiniAuthenticationProvider.java | 12 +-
.../security/service/PermissionService.java | 4 +-
.../service/SysUserDetailsService.java | 6 +-
.../security/token/JwtTokenManager.java | 12 +-
.../security/token/RedisTokenManager.java | 12 +-
.../security/token/TokenManager.java | 4 +-
.../security/util/SecurityUtils.java | 8 +-
.../web/advice}/GlobalExceptionHandler.java | 9 +-
.../web}/config/CorsConfig.java | 2 +-
.../web}/config/JacksonConfig.java | 2 +-
.../web}/filter/RateLimiterFilter.java | 10 +-
.../web}/filter/RequestLogFilter.java | 2 +-
.../interfaces/openapi/OpenApiController.java | 17 ++
.../sse/controller}/SseController.java | 9 +-
.../sse/dto/DictChangeEvent.java | 2 +-
.../sse/dto/OnlineUserDTO.java | 2 +-
.../sse/job}/OnlineUserCountJob.java | 4 +-
.../sse/registry}/SseSessionRegistry.java | 4 +-
.../sse/service}/SseService.java | 8 +-
.../sse/topic}/SseTopics.java | 2 +-
.../codegen/controller/CodegenController.java | 11 +-
.../service/impl/CodegenServiceImpl.java | 2 +-
.../service/impl/GenTableServiceImpl.java | 2 +-
.../file/controller/FileController.java | 2 +-
.../file/service/impl/MinioFileService.java | 4 +-
.../constant/SystemConstants.java | 2 +-
.../model => shared/dto}/KeyValue.java | 4 +-
.../{common/model => shared/dto}/Option.java | 4 +-
.../enums/DataScopeEnum.java | 2 +-
.../boot/shared/enums/LogModuleEnum.java | 33 +++
.../{common => shared}/enums/StatusEnum.java | 2 +-
.../system/controller/ConfigController.java | 15 +-
.../system/controller/DeptController.java | 10 +-
.../system/controller/DictController.java | 17 +-
.../boot/system/controller/LogController.java | 31 ++-
.../system/controller/MenuController.java | 11 +-
.../system/controller/NoticeController.java | 13 +-
.../system/controller/RoleController.java | 14 +-
.../controller/StatisticsController.java | 47 ----
.../system/controller/UserController.java | 60 +++--
.../system/converter/DictItemConverter.java | 2 +-
.../system/converter/NoticeConverter.java | 13 +-
.../boot/system/converter/RoleConverter.java | 6 +-
.../boot/system/converter/UserConverter.java | 34 +--
.../system/listener/UserImportListener.java | 17 +-
.../youlai/boot/system/mapper/LogMapper.java | 17 +-
.../boot/system/mapper/NoticeMapper.java | 6 +-
.../boot/system/mapper/RoleMenuMapper.java | 4 +-
.../youlai/boot/system/mapper/UserMapper.java | 17 +-
.../boot/system/mapper/UserSocialMapper.java | 2 +-
.../youlai/boot/system/model/bo/NoticeBO.java | 77 ------
.../youlai/boot/system/model/bo/UserBO.java | 72 ------
.../boot/system/model/bo/VisitCountBO.java | 23 --
.../boot/system/model/bo/VisitStatsBO.java | 30 ---
.../RolePermsDTO.java} | 8 +-
.../boot/system/model/dto/UserSessionDTO.java | 39 ---
.../boot/system/model/dto/VisitCountDTO.java | 21 ++
.../model/entity/{Log.java => SysLog.java} | 73 +++---
.../model/entity/{User.java => SysUser.java} | 2 +-
.../boot/system/model/form/MenuForm.java | 2 +-
.../UserImportForm.java} | 10 +-
.../boot/system/model/query/LogQuery.java | 8 +-
.../CurrentUserVO.java} | 13 +-
.../boot/system/model/vo/LogPageVO.java | 38 ++-
.../{dto/NoticeDTO.java => vo/NoticeVO.java} | 10 +-
.../UserExportVO.java} | 8 +-
...VisitStatsVO.java => VisitOverviewVO.java} | 10 +-
.../boot/system/service/DeptService.java | 2 +-
.../boot/system/service/DictService.java | 2 +-
.../boot/system/service/LogService.java | 9 +-
.../boot/system/service/MenuService.java | 2 +-
.../boot/system/service/RoleService.java | 4 +-
.../boot/system/service/UserService.java | 20 +-
.../system/service/UserSocialService.java | 2 +-
.../service/impl/ConfigServiceImpl.java | 2 +-
.../system/service/impl/DeptServiceImpl.java | 8 +-
.../system/service/impl/DictServiceImpl.java | 4 +-
.../system/service/impl/LogServiceImpl.java | 38 +--
.../system/service/impl/MenuServiceImpl.java | 10 +-
.../service/impl/NoticeServiceImpl.java | 54 ++--
.../service/impl/RoleMenuServiceImpl.java | 12 +-
.../system/service/impl/RoleServiceImpl.java | 14 +-
.../service/impl/UserNoticeServiceImpl.java | 2 +-
.../service/impl/UserRoleServiceImpl.java | 2 +-
.../system/service/impl/UserServiceImpl.java | 167 ++++++------
.../service/impl/UserSocialServiceImpl.java | 2 +-
src/main/resources/application-dev.yml | 7 +-
src/main/resources/application-prod.yml | 6 +-
.../resources/mapper/system/LogMapper.xml | 45 ++--
.../resources/mapper/system/NoticeMapper.xml | 4 +-
.../mapper/system/RoleMenuMapper.xml | 2 +-
.../resources/mapper/system/UserMapper.xml | 12 +-
.../mapper/system/UserSocialMapper.xml | 2 +-
158 files changed, 1342 insertions(+), 1562 deletions(-)
rename src/main/java/com/youlai/boot/auth/controller/{WechatMiniappAuthController.java => WxMaAuthController.java} (56%)
rename src/main/java/com/youlai/boot/auth/model/{dto/LoginRequest.java => LoginReq.java} (91%)
create mode 100644 src/main/java/com/youlai/boot/auth/model/WxMaBindMobileReq.java
create mode 100644 src/main/java/com/youlai/boot/auth/model/WxMaLoginResp.java
create mode 100644 src/main/java/com/youlai/boot/auth/model/WxMaPhoneLoginReq.java
delete mode 100644 src/main/java/com/youlai/boot/auth/model/vo/WechatMiniappLoginResult.java
rename src/main/java/com/youlai/boot/auth/service/{WechatMiniappAuthService.java => WxMaAuthService.java} (86%)
rename src/main/java/com/youlai/boot/auth/service/impl/{WechatMiniappAuthServiceImpl.java => WxMaAuthServiceImpl.java} (81%)
create mode 100644 src/main/java/com/youlai/boot/common/aspect/LogAspect.java
rename src/main/java/com/youlai/boot/{core => common}/aspect/RepeatSubmitAspect.java (96%)
create mode 100644 src/main/java/com/youlai/boot/common/enums/ActionTypeEnum.java
delete mode 100644 src/main/java/com/youlai/boot/common/enums/RequestMethodEnum.java
rename src/main/java/com/youlai/boot/{core => common}/exception/BusinessException.java (91%)
rename src/main/java/com/youlai/boot/{core/web => common/result}/ExcelResult.java (94%)
rename src/main/java/com/youlai/boot/{core/web => common/result}/IResultCode.java (78%)
rename src/main/java/com/youlai/boot/{core/web => common/result}/PageResult.java (97%)
rename src/main/java/com/youlai/boot/{core/web/WebResponseWriter.java => common/result/ResponseWriter.java} (96%)
rename src/main/java/com/youlai/boot/{core/web => common/result}/Result.java (98%)
rename src/main/java/com/youlai/boot/{core/web => common/result}/ResultCode.java (99%)
delete mode 100644 src/main/java/com/youlai/boot/common/util/DateUtils.java
rename src/main/java/com/youlai/boot/{core => common}/validator/FieldValidator.java (78%)
delete mode 100644 src/main/java/com/youlai/boot/core/aspect/LogAspect.java
rename src/main/java/com/youlai/boot/{ => framework/cache}/config/CaffeineConfig.java (95%)
rename src/main/java/com/youlai/boot/{ => framework/cache}/config/RedisCacheConfig.java (98%)
rename src/main/java/com/youlai/boot/{ => framework/cache}/config/RedisConfig.java (97%)
rename src/main/java/com/youlai/boot/{ => framework/integration/captcha}/config/CaptchaConfig.java (96%)
create mode 100644 src/main/java/com/youlai/boot/framework/integration/captcha/exception/CaptchaException.java
rename src/main/java/com/youlai/boot/{auth/model/vo/CaptchaVO.java => framework/integration/captcha/model/CaptchaInfo.java} (56%)
create mode 100644 src/main/java/com/youlai/boot/framework/integration/captcha/service/CaptchaService.java
rename src/main/java/com/youlai/boot/{ => framework/integration/mail}/config/MailConfig.java (96%)
rename src/main/java/com/youlai/boot/{support => framework/integration}/mail/service/MailService.java (97%)
rename src/main/java/com/youlai/boot/{support => framework/integration}/sms/enums/SmsTypeEnum.java (93%)
rename src/main/java/com/youlai/boot/{support => framework/integration}/sms/service/SmsService.java (82%)
rename src/main/java/com/youlai/boot/{support => framework/integration}/sms/service/impl/AliyunSmsService.java (92%)
rename src/main/java/com/youlai/boot/{ => framework/integration/wxma}/config/WxMaConfig.java (94%)
rename src/main/java/com/youlai/boot/{ => framework/job}/config/XxlJobConfig.java (97%)
rename src/main/java/com/youlai/boot/{ => framework/persistence}/config/MybatisConfig.java (91%)
rename src/main/java/com/youlai/boot/{config => framework/persistence/handler}/MyMetaObjectHandler.java (95%)
rename src/main/java/com/youlai/boot/{config => framework/persistence/interceptor}/MyDataPermissionHandler.java (97%)
rename src/main/java/com/youlai/boot/{ => framework/security}/config/PasswordEncoderConfig.java (91%)
rename src/main/java/com/youlai/boot/{ => framework/security}/config/SecurityConfig.java (87%)
rename src/main/java/com/youlai/boot/{ => framework}/security/exception/CaptchaValidationException.java (84%)
rename src/main/java/com/youlai/boot/{ => framework}/security/exception/NeedBindMobileException.java (91%)
rename src/main/java/com/youlai/boot/{ => framework}/security/filter/CaptchaValidationFilter.java (76%)
rename src/main/java/com/youlai/boot/{ => framework}/security/filter/TokenAuthenticationFilter.java (88%)
rename src/main/java/com/youlai/boot/{ => framework}/security/handler/MyAccessDeniedHandler.java (69%)
rename src/main/java/com/youlai/boot/{ => framework}/security/handler/MyAuthenticationEntryPoint.java (78%)
rename src/main/java/com/youlai/boot/{ => framework}/security/model/AuthenticationToken.java (92%)
rename src/main/java/com/youlai/boot/{ => framework}/security/model/RoleDataScope.java (97%)
rename src/main/java/com/youlai/boot/{ => framework}/security/model/SmsAuthenticationToken.java (98%)
rename src/main/java/com/youlai/boot/{ => framework}/security/model/SysUserDetails.java (98%)
rename src/main/java/com/youlai/boot/{ => framework}/security/model/UserAuthInfo.java (95%)
rename src/main/java/com/youlai/boot/{ => framework}/security/model/UserSession.java (94%)
rename src/main/java/com/youlai/boot/{ => framework}/security/model/WechatMiniAuthenticationToken.java (97%)
rename src/main/java/com/youlai/boot/{ => framework}/security/provider/SmsAuthenticationProvider.java (93%)
rename src/main/java/com/youlai/boot/{ => framework}/security/provider/WechatMiniAuthenticationProvider.java (89%)
rename src/main/java/com/youlai/boot/{ => framework}/security/service/PermissionService.java (95%)
rename src/main/java/com/youlai/boot/{ => framework}/security/service/SysUserDetailsService.java (93%)
rename src/main/java/com/youlai/boot/{ => framework}/security/token/JwtTokenManager.java (97%)
rename src/main/java/com/youlai/boot/{ => framework}/security/token/RedisTokenManager.java (97%)
rename src/main/java/com/youlai/boot/{ => framework}/security/token/TokenManager.java (93%)
rename src/main/java/com/youlai/boot/{ => framework}/security/util/SecurityUtils.java (93%)
rename src/main/java/com/youlai/boot/{core/exception => framework/web/advice}/GlobalExceptionHandler.java (98%)
rename src/main/java/com/youlai/boot/{ => framework/web}/config/CorsConfig.java (97%)
rename src/main/java/com/youlai/boot/{ => framework/web}/config/JacksonConfig.java (97%)
rename src/main/java/com/youlai/boot/{core => framework/web}/filter/RateLimiterFilter.java (91%)
rename src/main/java/com/youlai/boot/{core => framework/web}/filter/RequestLogFilter.java (95%)
create mode 100644 src/main/java/com/youlai/boot/interfaces/openapi/OpenApiController.java
rename src/main/java/com/youlai/boot/{support/sse => interfaces/sse/controller}/SseController.java (82%)
rename src/main/java/com/youlai/boot/{support => interfaces}/sse/dto/DictChangeEvent.java (95%)
rename src/main/java/com/youlai/boot/{support => interfaces}/sse/dto/OnlineUserDTO.java (93%)
rename src/main/java/com/youlai/boot/{support/sse => interfaces/sse/job}/OnlineUserCountJob.java (85%)
rename src/main/java/com/youlai/boot/{support/sse => interfaces/sse/registry}/SseSessionRegistry.java (98%)
rename src/main/java/com/youlai/boot/{support/sse => interfaces/sse/service}/SseService.java (93%)
rename src/main/java/com/youlai/boot/{support/sse => interfaces/sse/topic}/SseTopics.java (88%)
rename src/main/java/com/youlai/boot/{common => shared}/constant/SystemConstants.java (91%)
rename src/main/java/com/youlai/boot/{common/model => shared/dto}/KeyValue.java (92%)
rename src/main/java/com/youlai/boot/{common/model => shared/dto}/Option.java (96%)
rename src/main/java/com/youlai/boot/{common => shared}/enums/DataScopeEnum.java (98%)
create mode 100644 src/main/java/com/youlai/boot/shared/enums/LogModuleEnum.java
rename src/main/java/com/youlai/boot/{common => shared}/enums/StatusEnum.java (91%)
delete mode 100644 src/main/java/com/youlai/boot/system/controller/StatisticsController.java
delete mode 100644 src/main/java/com/youlai/boot/system/model/bo/NoticeBO.java
delete mode 100644 src/main/java/com/youlai/boot/system/model/bo/UserBO.java
delete mode 100644 src/main/java/com/youlai/boot/system/model/bo/VisitCountBO.java
delete mode 100644 src/main/java/com/youlai/boot/system/model/bo/VisitStatsBO.java
rename src/main/java/com/youlai/boot/system/model/{bo/RolePermsBO.java => dto/RolePermsDTO.java} (77%)
delete mode 100644 src/main/java/com/youlai/boot/system/model/dto/UserSessionDTO.java
create mode 100644 src/main/java/com/youlai/boot/system/model/dto/VisitCountDTO.java
rename src/main/java/com/youlai/boot/system/model/entity/{Log.java => SysLog.java} (61%)
rename src/main/java/com/youlai/boot/system/model/entity/{User.java => SysUser.java} (96%)
rename src/main/java/com/youlai/boot/system/model/{dto/UserImportDTO.java => form/UserImportForm.java} (85%)
rename src/main/java/com/youlai/boot/system/model/{dto/CurrentUserDTO.java => vo/CurrentUserVO.java} (82%)
rename src/main/java/com/youlai/boot/system/model/{dto/NoticeDTO.java => vo/NoticeVO.java} (85%)
rename src/main/java/com/youlai/boot/system/model/{dto/UserExportDTO.java => vo/UserExportVO.java} (91%)
rename src/main/java/com/youlai/boot/system/model/vo/{VisitStatsVO.java => VisitOverviewVO.java} (87%)
diff --git a/README.md b/README.md
index 45db9948..37f3992a 100644
--- a/README.md
+++ b/README.md
@@ -97,7 +97,7 @@ spring:
---
-## 📁 项目结构
+## 📁 目录结构
```
youlai-boot
@@ -105,15 +105,13 @@ youlai-boot
├── sql/ # 数据库脚本
├── src/main/java/com/youlai/boot/
│ ├── auth/ # 认证模块
-│ ├── common/ # 公共模块
-│ ├── config/ # 配置模块
-│ ├── core/ # 核心模块(AOP、异常、过滤器)
-│ ├── file/ # 文件服务
-│ ├── plugin/ # 插件扩展(Knife4j、MyBatis)
-│ ├── security/ # 安全模块(JWT、Token)
-│ ├── support/ # 支撑服务(邮件、短信、WebSocket)
│ ├── system/ # 系统模块(用户、角色、菜单、部门)
-│ ├── tool/ # 工具模块(代码生成)
+│ ├── module/ # 业务模块(文件、代码生成)
+│ ├── framework/ # 技术中台(安全、缓存、持久化、集成)
+│ ├── interfaces/ # 对外接口(SSE)
+│ ├── shared/ # 跨模块共享(DTO、枚举、常量)
+│ ├── common/ # 基础能力(结果、异常、切面、工具)
+│ ├── config/ # 全局配置
│ └── YouLaiBootApplication.java # 启动类
└── pom.xml # Maven 配置
```
diff --git a/pom.xml b/pom.xml
index 1116596a..7a6fd2fc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
* 用于在过滤器、Security处理器等无法使用 @RestControllerAdvice 的场景中统一写入HTTP响应。 * 支持写入成功响应和错误响应。 @@ -20,12 +20,12 @@ import java.nio.charset.StandardCharsets; * @since 2.0.0 */ @Slf4j -public final class WebResponseWriter { +public final class ResponseWriter { /** * 私有构造函数,防止实例化 */ - private WebResponseWriter() { + private ResponseWriter() { throw new UnsupportedOperationException("工具类不允许实例化"); } @@ -115,8 +115,4 @@ public final class WebResponseWriter { default -> HttpStatus.BAD_REQUEST.value(); }; } -} - - - - +} \ No newline at end of file diff --git a/src/main/java/com/youlai/boot/core/web/Result.java b/src/main/java/com/youlai/boot/common/result/Result.java similarity index 98% rename from src/main/java/com/youlai/boot/core/web/Result.java rename to src/main/java/com/youlai/boot/common/result/Result.java index 528c57bc..94153792 100644 --- a/src/main/java/com/youlai/boot/core/web/Result.java +++ b/src/main/java/com/youlai/boot/common/result/Result.java @@ -1,4 +1,4 @@ -package com.youlai.boot.core.web; +package com.youlai.boot.common.result; import cn.hutool.core.util.StrUtil; import lombok.Data; diff --git a/src/main/java/com/youlai/boot/core/web/ResultCode.java b/src/main/java/com/youlai/boot/common/result/ResultCode.java similarity index 99% rename from src/main/java/com/youlai/boot/core/web/ResultCode.java rename to src/main/java/com/youlai/boot/common/result/ResultCode.java index 52784d93..a0833d1d 100644 --- a/src/main/java/com/youlai/boot/core/web/ResultCode.java +++ b/src/main/java/com/youlai/boot/common/result/ResultCode.java @@ -1,4 +1,4 @@ -package com.youlai.boot.core.web; +package com.youlai.boot.common.result; import java.io.Serializable; diff --git a/src/main/java/com/youlai/boot/common/util/DateUtils.java b/src/main/java/com/youlai/boot/common/util/DateUtils.java deleted file mode 100644 index 0a3c30a9..00000000 --- a/src/main/java/com/youlai/boot/common/util/DateUtils.java +++ /dev/null @@ -1,61 +0,0 @@ - -package com.youlai.boot.common.util; - -import cn.hutool.core.date.DateTime; -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.ReflectUtil; -import cn.hutool.core.util.StrUtil; -import org.springframework.format.annotation.DateTimeFormat; - -import java.lang.reflect.Field; - -/** - * 日期工具类 - * - * @author haoxr - * @since 2.4.2 - */ -public class DateUtils { - - /** - * 区间日期格式化为数据库日期格式 - *
- * eg:2021-01-01 → 2021-01-01 00:00:00
- *
- * @param obj 要处理的对象
- * @param startTimeFieldName 起始时间字段名
- * @param endTimeFieldName 结束时间字段名
- */
- public static void toDatabaseFormat(Object obj, String startTimeFieldName, String endTimeFieldName) {
- Field startTimeField = ReflectUtil.getField(obj.getClass(), startTimeFieldName);
- Field endTimeField = ReflectUtil.getField(obj.getClass(), endTimeFieldName);
-
- if (startTimeField != null) {
- processDateTimeField(obj, startTimeField, startTimeFieldName, "yyyy-MM-dd 00:00:00");
- }
-
- if (endTimeField != null) {
- processDateTimeField(obj, endTimeField, endTimeFieldName, "yyyy-MM-dd 23:59:59");
- }
- }
-
- /**
- * 处理日期字段
- *
- * @param obj 要处理的对象
- * @param field 字段
- * @param fieldName 字段名
- * @param targetPattern 目标数据库日期格式
- */
- private static void processDateTimeField(Object obj, Field field, String fieldName, String targetPattern) {
- Object fieldValue = ReflectUtil.getFieldValue(obj, fieldName);
- if (fieldValue != null) {
- // 得到原始的日期格式
- String pattern = field.isAnnotationPresent(DateTimeFormat.class) ? field.getAnnotation(DateTimeFormat.class).pattern() : "yyyy-MM-dd";
- // 转换为日期对象
- DateTime dateTime = DateUtil.parse(StrUtil.toString(fieldValue), pattern);
- // 转换为目标数据库日期格式
- ReflectUtil.setFieldValue(obj, fieldName, dateTime.toString(targetPattern));
- }
- }
-}
diff --git a/src/main/java/com/youlai/boot/core/validator/FieldValidator.java b/src/main/java/com/youlai/boot/common/validator/FieldValidator.java
similarity index 78%
rename from src/main/java/com/youlai/boot/core/validator/FieldValidator.java
rename to src/main/java/com/youlai/boot/common/validator/FieldValidator.java
index d65d4f3c..200e67c8 100644
--- a/src/main/java/com/youlai/boot/core/validator/FieldValidator.java
+++ b/src/main/java/com/youlai/boot/common/validator/FieldValidator.java
@@ -1,4 +1,4 @@
-package com.youlai.boot.core.validator;
+package com.youlai.boot.common.validator;
import com.youlai.boot.common.annotation.ValidField;
import jakarta.validation.ConstraintValidator;
@@ -18,16 +18,14 @@ public class FieldValidator implements ConstraintValidator
+ * 面向第三方系统的开放接口,使用 API Key 认证
+ * > getTablePreviewData(@PathVariable String tableName,
@RequestParam(value = "pageType", required = false, defaultValue = "classic") String pageType,
@RequestParam(value = "type", required = false, defaultValue = "ts") String type) {
@@ -91,7 +90,7 @@ public class CodegenController {
@Operation(summary = "下载代码")
@GetMapping("/{tableName}/download")
- @Log(value = "下载代码", module = LogModuleEnum.OTHER)
+ @Log(module = LogModuleEnum.CODEGEN, value = ActionTypeEnum.DOWNLOAD)
public void downloadZip(HttpServletResponse response, @PathVariable String tableName,
@RequestParam(value = "pageType", required = false, defaultValue = "classic") String pageType,
@RequestParam(value = "type", required = false, defaultValue = "ts") String type) {
diff --git a/src/main/java/com/youlai/boot/module/codegen/service/impl/CodegenServiceImpl.java b/src/main/java/com/youlai/boot/module/codegen/service/impl/CodegenServiceImpl.java
index c3485bbf..5e2125c4 100644
--- a/src/main/java/com/youlai/boot/module/codegen/service/impl/CodegenServiceImpl.java
+++ b/src/main/java/com/youlai/boot/module/codegen/service/impl/CodegenServiceImpl.java
@@ -16,7 +16,7 @@ import com.youlai.boot.config.property.CodegenProperties;
import com.youlai.boot.module.codegen.service.GenTableService;
import com.youlai.boot.module.codegen.service.GenTableColumnService;
import com.youlai.boot.module.codegen.service.CodegenService;
-import com.youlai.boot.core.exception.BusinessException;
+import com.youlai.boot.common.exception.BusinessException;
import com.youlai.boot.module.codegen.mapper.DatabaseMapper;
import com.youlai.boot.module.codegen.model.entity.GenTable;
import com.youlai.boot.module.codegen.model.entity.GenTableColumn;
diff --git a/src/main/java/com/youlai/boot/module/codegen/service/impl/GenTableServiceImpl.java b/src/main/java/com/youlai/boot/module/codegen/service/impl/GenTableServiceImpl.java
index 8bc3cbea..2ab5a592 100644
--- a/src/main/java/com/youlai/boot/module/codegen/service/impl/GenTableServiceImpl.java
+++ b/src/main/java/com/youlai/boot/module/codegen/service/impl/GenTableServiceImpl.java
@@ -10,7 +10,7 @@ import com.youlai.boot.common.enums.EnvEnum;
import com.youlai.boot.module.codegen.enums.FormTypeEnum;
import com.youlai.boot.module.codegen.enums.JavaTypeEnum;
import com.youlai.boot.module.codegen.enums.QueryTypeEnum;
-import com.youlai.boot.core.exception.BusinessException;
+import com.youlai.boot.common.exception.BusinessException;
import com.youlai.boot.config.property.CodegenProperties;
import com.youlai.boot.module.codegen.converter.CodegenConverter;
import com.youlai.boot.module.codegen.mapper.DatabaseMapper;
diff --git a/src/main/java/com/youlai/boot/module/file/controller/FileController.java b/src/main/java/com/youlai/boot/module/file/controller/FileController.java
index 8a0aaa42..47d57246 100644
--- a/src/main/java/com/youlai/boot/module/file/controller/FileController.java
+++ b/src/main/java/com/youlai/boot/module/file/controller/FileController.java
@@ -1,6 +1,6 @@
package com.youlai.boot.module.file.controller;
-import com.youlai.boot.core.web.Result;
+import com.youlai.boot.common.result.Result;
import com.youlai.boot.module.file.service.FileService;
import com.youlai.boot.module.file.model.FileInfo;
import io.swagger.v3.oas.annotations.Parameter;
diff --git a/src/main/java/com/youlai/boot/module/file/service/impl/MinioFileService.java b/src/main/java/com/youlai/boot/module/file/service/impl/MinioFileService.java
index 0c66f9d0..41125235 100644
--- a/src/main/java/com/youlai/boot/module/file/service/impl/MinioFileService.java
+++ b/src/main/java/com/youlai/boot/module/file/service/impl/MinioFileService.java
@@ -5,8 +5,8 @@ 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.core.exception.BusinessException;
-import com.youlai.boot.core.web.ResultCode;
+import com.youlai.boot.common.exception.BusinessException;
+import com.youlai.boot.common.result.ResultCode;
import com.youlai.boot.module.file.model.FileInfo;
import com.youlai.boot.module.file.service.FileService;
import io.minio.*;
diff --git a/src/main/java/com/youlai/boot/common/constant/SystemConstants.java b/src/main/java/com/youlai/boot/shared/constant/SystemConstants.java
similarity index 91%
rename from src/main/java/com/youlai/boot/common/constant/SystemConstants.java
rename to src/main/java/com/youlai/boot/shared/constant/SystemConstants.java
index 43489745..60b8197f 100644
--- a/src/main/java/com/youlai/boot/common/constant/SystemConstants.java
+++ b/src/main/java/com/youlai/boot/shared/constant/SystemConstants.java
@@ -1,4 +1,4 @@
-package com.youlai.boot.common.constant;
+package com.youlai.boot.shared.constant;
/**
* 系统常量
diff --git a/src/main/java/com/youlai/boot/common/model/KeyValue.java b/src/main/java/com/youlai/boot/shared/dto/KeyValue.java
similarity index 92%
rename from src/main/java/com/youlai/boot/common/model/KeyValue.java
rename to src/main/java/com/youlai/boot/shared/dto/KeyValue.java
index 2e33be82..1f368540 100644
--- a/src/main/java/com/youlai/boot/common/model/KeyValue.java
+++ b/src/main/java/com/youlai/boot/shared/dto/KeyValue.java
@@ -1,4 +1,4 @@
-package com.youlai.boot.common.model;
+package com.youlai.boot.shared.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@@ -27,4 +27,4 @@ public class KeyValue {
@Schema(description = "选项的标签")
private String value;
-}
\ No newline at end of file
+}
diff --git a/src/main/java/com/youlai/boot/common/model/Option.java b/src/main/java/com/youlai/boot/shared/dto/Option.java
similarity index 96%
rename from src/main/java/com/youlai/boot/common/model/Option.java
rename to src/main/java/com/youlai/boot/shared/dto/Option.java
index ba0fe9b8..1e0e5c7d 100644
--- a/src/main/java/com/youlai/boot/common/model/Option.java
+++ b/src/main/java/com/youlai/boot/shared/dto/Option.java
@@ -1,4 +1,4 @@
-package com.youlai.boot.common.model;
+package com.youlai.boot.shared.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.v3.oas.annotations.media.Schema;
@@ -50,4 +50,4 @@ public class Option