From 9444088b48c9f7d670baf61f624c5cb04f412046 Mon Sep 17 00:00:00 2001
From: bunny <1319900154@qq.com>
Date: Fri, 27 Sep 2024 10:39:40 +0800
Subject: [PATCH] =?UTF-8?q?feat(=E6=96=B0=E5=A2=9E):=20:sparkles:=20?=
=?UTF-8?q?=E5=A2=9E=E5=8A=A0Redis=E4=BA=8B=E5=8A=A1,=E9=87=8D=E6=9E=84?=
=?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=BB=93=E6=9E=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
common/service-utils/pom.xml | 15 +
.../config/MyBatisPlusFieldConfig.java | 12 +-
.../service/config/RedisConfiguration.java | 3 +
.../common/service/context/BaseContext.java | 26 +-
.../exception/GlobalExceptionHandler.java | 39 +-
.../interceptor/UserTokenInterceptor.java | 58 +-
.../bunny/common/service/utils/HttpUtil.java | 206 +++
.../common/service/utils/ip/IpEntity.java | 21 +
.../bunny/common/service/utils/ip/IpUtil.java | 99 ++
.../utils/mail}/MailSendCheckUtil.java | 6 +-
.../service/utils/mail}/MailSenderUtil.java | 17 +-
.../service/utils}/mail/template-propties | 2 +
.../service/utils/minio}/MinioProperties.java | 3 +-
.../common/service/utils/minio/MinioUtil.java | 142 ++
.../cn/bunny/dto/email/EmailTemplateDto.java | 18 +-
.../cn/bunny/dto/email/EmailUsersDto.java | 29 +-
.../main/java/cn/bunny/dto/user/LoginDto.java | 19 +-
.../bunny/entity/{base => }/BaseEntity.java | 2 +-
.../cn/bunny/entity/system/AdminUser.java | 56 +
.../cn/bunny/entity/system/EmailTemplate.java | 38 +
.../cn/bunny/entity/system/EmailUsers.java | 45 +
.../entity/system/{log => }/SystemLog.java | 2 +-
.../bunny/entity/system/admin/AdminPower.java | 58 -
.../bunny/entity/system/admin/AdminRole.java | 55 -
.../entity/system/admin/AdminRolePower.java | 56 -
.../entity/system/admin/AdminUserRole.java | 56 -
.../system/admin/auth/AuthUserRole.java | 21 -
.../entity/system/email/EmailTemplate.java | 42 -
.../bunny/entity/system/email/EmailUsers.java | 49 -
.../cn/bunny/entity/system/user/User.java | 61 -
.../pojo/{email => common}/EmailSend.java | 2 +-
.../pojo/{email => common}/EmailSendInit.java | 2 +-
.../pojo/{file => common}/MinioFIlePath.java | 2 +-
.../pojo/constant/ExceptionConstant.java | 22 +
.../pojo/constant/LocalDateTimeConstant.java | 10 +
.../constant/MailMessageConstant.java | 2 +-
.../{result => }/constant/MinioConstant.java | 4 +-
.../pojo/constant/RedisUserConstant.java | 34 +
.../{result => }/constant/UserConstant.java | 3 +-
.../cn/bunny/pojo/result/ResultCodeEnum.java | 12 +-
.../result/constant/ExceptionConstant.java | 52 -
.../result/constant/FileMessageConstant.java | 21 -
.../constant/LocalDateTimeConstant.java | 11 -
.../result/constant/RedisUserConstant.java | 67 -
.../result/constant/SQLAutoFillConstant.java | 14 -
.../result/constant/SecurityConstant.java | 13 -
.../pojo/result/constant/StatusConstant.java | 14 -
.../cn/bunny/pojo/tree/AbstractTreeNode.java | 11 -
.../java/cn/bunny/pojo/tree/TreeBuilder.java | 29 -
dao/src/main/java/cn/bunny/vo/BaseVo.java | 47 +
.../cn/bunny/vo/email/EmailTemplateVo.java | 10 +-
.../cn/bunny/vo/system/login/LoginVo.java | 48 -
.../cn/bunny/vo/system/user/UserInfoVo.java | 43 -
.../main/java/cn/bunny/vo/user/LoginVo.java | 72 +
.../login => user}/ValidateCodeVo.java | 2 +-
module/module-mail/pom.xml | 26 -
module/module-minio/pom.xml | 27 -
.../bunny/module/minio/utils/MinioUtil.java | 1187 -----------------
module/module-rabbitMQ/pom.xml | 35 -
module/pom.xml | 42 -
module/spring-security/pom.xml | 32 -
.../filter/TokenAuthenticationFilter.java | 91 --
.../filter/TokenLoginFilterService.java | 139 --
pom.xml | 7 +-
service/Dockerfile | 4 +-
service/pom.xml | 35 +-
.../cn/bunny/service/ServiceApplication.java | 10 +-
.../service/aop/annotation/AutoFill.java | 15 -
.../service/aop/aspect/AutoFillAspect.java | 28 -
.../service/aop/aspect/AutoLogAspect.java | 82 +-
.../service/controller/IndexController.java | 18 +
.../service/controller/LoginController.java | 36 -
.../service/controller/WebController.java | 31 -
.../service/mapper/AdminPowerMapper.java | 34 -
.../bunny/service/mapper/AdminRoleMapper.java | 26 -
.../service/mapper/EmailUsersMapper.java | 24 -
.../bunny/service/mapper/SystemLogMapper.java | 18 -
.../cn/bunny/service/mapper/UserMapper.java | 25 -
.../cn/bunny/service/mq}/RabbitMqConfig.java | 2 +-
.../service/mq}/listener/DelayListener.java | 2 +-
.../service/mq}/listener/DirectListener.java | 2 +-
.../service/mq}/listener/ErrorListener.java | 2 +-
.../service/mq}/listener/FanoutListener.java | 2 +-
.../service/mq}/listener/LazyListener.java | 2 +-
.../service/mq}/listener/TopicListener.java | 2 +-
.../mq/{ => publish}/PublishDirect.java | 2 +-
.../security/CustomUserDetailsService.java | 54 -
.../security/config/WebSecurityConfig.java | 28 +-
.../custom/CustomPasswordEncoder.java | 2 +-
.../service}/security/custom/CustomUser.java | 7 +-
.../filter/NoTokenAuthenticationFilter.java | 55 +
.../filter/TokenAuthenticationFilter.java | 61 +
.../filter/TokenLoginFilterService.java | 86 ++
.../handelr/SecurityAccessDeniedHandler.java | 2 +-
.../SecurityAuthenticationEntryPoint.java | 2 +-
.../SecurityAuthenticationFailureHandler.java | 2 +-
.../SecurityAuthenticationSuccessHandler.java | 2 +-
.../CustomAuthorizationManagerService.java | 2 +-
.../service/CustomUserDetailsService.java | 4 +-
...CustomAuthorizationManagerServiceImpl.java | 26 +-
.../service/iml/CustomUserDetailsService.java | 33 +
.../bunny/service/service/LoginService.java | 10 -
.../cn/bunny/service/service/UserService.java | 31 -
.../service/impl/LoginServiceImpl.java | 21 -
.../service/service/impl/UserServiceImpl.java | 131 --
.../src/main/resources/application-dev.yml | 14 +-
.../src/main/resources/application-prod.yml | 14 +-
service/src/main/resources/application.yml | 8 +-
.../resources/mapper/AdminPowerMapper.xml | 41 -
.../main/resources/mapper/AdminRoleMapper.xml | 29 -
.../resources/mapper/EmailUsersMapper.xml | 30 -
.../main/resources/mapper/SystemLogMapper.xml | 28 -
.../src/main/resources/mapper/UserMapper.xml | 39 -
.../cn/bunny/CustomPasswordEncoderTest.java | 2 +-
.../test/java/cn/bunny/jwt/JwtHelperTest.java | 3 +-
115 files changed, 1324 insertions(+), 3234 deletions(-)
create mode 100644 common/service-utils/src/main/java/cn/bunny/common/service/utils/HttpUtil.java
create mode 100644 common/service-utils/src/main/java/cn/bunny/common/service/utils/ip/IpEntity.java
create mode 100644 common/service-utils/src/main/java/cn/bunny/common/service/utils/ip/IpUtil.java
rename {module/module-mail/src/main/java/cn/bunny/module/mail/utils => common/service-utils/src/main/java/cn/bunny/common/service/utils/mail}/MailSendCheckUtil.java (84%)
rename {module/module-mail/src/main/java/cn/bunny/module/mail/utils => common/service-utils/src/main/java/cn/bunny/common/service/utils/mail}/MailSenderUtil.java (92%)
rename {module/module-mail/src/main/java/cn/bunny/module => common/service-utils/src/main/java/cn/bunny/common/service/utils}/mail/template-propties (95%)
rename {module/module-minio/src/main/java/cn/bunny/module/minio/properties => common/service-utils/src/main/java/cn/bunny/common/service/utils/minio}/MinioProperties.java (90%)
create mode 100644 common/service-utils/src/main/java/cn/bunny/common/service/utils/minio/MinioUtil.java
rename dao/src/main/java/cn/bunny/entity/{base => }/BaseEntity.java (97%)
create mode 100644 dao/src/main/java/cn/bunny/entity/system/AdminUser.java
create mode 100644 dao/src/main/java/cn/bunny/entity/system/EmailTemplate.java
create mode 100644 dao/src/main/java/cn/bunny/entity/system/EmailUsers.java
rename dao/src/main/java/cn/bunny/entity/system/{log => }/SystemLog.java (97%)
delete mode 100644 dao/src/main/java/cn/bunny/entity/system/admin/AdminPower.java
delete mode 100644 dao/src/main/java/cn/bunny/entity/system/admin/AdminRole.java
delete mode 100644 dao/src/main/java/cn/bunny/entity/system/admin/AdminRolePower.java
delete mode 100644 dao/src/main/java/cn/bunny/entity/system/admin/AdminUserRole.java
delete mode 100644 dao/src/main/java/cn/bunny/entity/system/admin/auth/AuthUserRole.java
delete mode 100644 dao/src/main/java/cn/bunny/entity/system/email/EmailTemplate.java
delete mode 100644 dao/src/main/java/cn/bunny/entity/system/email/EmailUsers.java
delete mode 100644 dao/src/main/java/cn/bunny/entity/system/user/User.java
rename dao/src/main/java/cn/bunny/pojo/{email => common}/EmailSend.java (95%)
rename dao/src/main/java/cn/bunny/pojo/{email => common}/EmailSendInit.java (92%)
rename dao/src/main/java/cn/bunny/pojo/{file => common}/MinioFIlePath.java (92%)
create mode 100644 dao/src/main/java/cn/bunny/pojo/constant/ExceptionConstant.java
create mode 100644 dao/src/main/java/cn/bunny/pojo/constant/LocalDateTimeConstant.java
rename dao/src/main/java/cn/bunny/pojo/{result => }/constant/MailMessageConstant.java (92%)
rename dao/src/main/java/cn/bunny/pojo/{result => }/constant/MinioConstant.java (91%)
create mode 100644 dao/src/main/java/cn/bunny/pojo/constant/RedisUserConstant.java
rename dao/src/main/java/cn/bunny/pojo/{result => }/constant/UserConstant.java (66%)
delete mode 100644 dao/src/main/java/cn/bunny/pojo/result/constant/ExceptionConstant.java
delete mode 100644 dao/src/main/java/cn/bunny/pojo/result/constant/FileMessageConstant.java
delete mode 100644 dao/src/main/java/cn/bunny/pojo/result/constant/LocalDateTimeConstant.java
delete mode 100644 dao/src/main/java/cn/bunny/pojo/result/constant/RedisUserConstant.java
delete mode 100644 dao/src/main/java/cn/bunny/pojo/result/constant/SQLAutoFillConstant.java
delete mode 100644 dao/src/main/java/cn/bunny/pojo/result/constant/SecurityConstant.java
delete mode 100644 dao/src/main/java/cn/bunny/pojo/result/constant/StatusConstant.java
delete mode 100644 dao/src/main/java/cn/bunny/pojo/tree/AbstractTreeNode.java
delete mode 100644 dao/src/main/java/cn/bunny/pojo/tree/TreeBuilder.java
create mode 100644 dao/src/main/java/cn/bunny/vo/BaseVo.java
delete mode 100644 dao/src/main/java/cn/bunny/vo/system/login/LoginVo.java
delete mode 100644 dao/src/main/java/cn/bunny/vo/system/user/UserInfoVo.java
create mode 100644 dao/src/main/java/cn/bunny/vo/user/LoginVo.java
rename dao/src/main/java/cn/bunny/vo/{system/login => user}/ValidateCodeVo.java (93%)
delete mode 100644 module/module-mail/pom.xml
delete mode 100644 module/module-minio/pom.xml
delete mode 100644 module/module-minio/src/main/java/cn/bunny/module/minio/utils/MinioUtil.java
delete mode 100644 module/module-rabbitMQ/pom.xml
delete mode 100644 module/pom.xml
delete mode 100644 module/spring-security/pom.xml
delete mode 100644 module/spring-security/src/main/java/cn/bunny/security/filter/TokenAuthenticationFilter.java
delete mode 100644 module/spring-security/src/main/java/cn/bunny/security/filter/TokenLoginFilterService.java
delete mode 100644 service/src/main/java/cn/bunny/service/aop/annotation/AutoFill.java
delete mode 100644 service/src/main/java/cn/bunny/service/aop/aspect/AutoFillAspect.java
delete mode 100644 service/src/main/java/cn/bunny/service/controller/LoginController.java
delete mode 100644 service/src/main/java/cn/bunny/service/controller/WebController.java
delete mode 100644 service/src/main/java/cn/bunny/service/mapper/AdminPowerMapper.java
delete mode 100644 service/src/main/java/cn/bunny/service/mapper/AdminRoleMapper.java
delete mode 100644 service/src/main/java/cn/bunny/service/mapper/EmailUsersMapper.java
delete mode 100644 service/src/main/java/cn/bunny/service/mapper/SystemLogMapper.java
delete mode 100644 service/src/main/java/cn/bunny/service/mapper/UserMapper.java
rename {module/module-rabbitMQ/src/main/java/cn/bunny/module/rabbitMQ/config => service/src/main/java/cn/bunny/service/mq}/RabbitMqConfig.java (98%)
rename {module/module-rabbitMQ/src/main/java/cn/bunny/module/rabbitMQ => service/src/main/java/cn/bunny/service/mq}/listener/DelayListener.java (75%)
rename {module/module-rabbitMQ/src/main/java/cn/bunny/module/rabbitMQ => service/src/main/java/cn/bunny/service/mq}/listener/DirectListener.java (97%)
rename {module/module-rabbitMQ/src/main/java/cn/bunny/module/rabbitMQ => service/src/main/java/cn/bunny/service/mq}/listener/ErrorListener.java (75%)
rename {module/module-rabbitMQ/src/main/java/cn/bunny/module/rabbitMQ => service/src/main/java/cn/bunny/service/mq}/listener/FanoutListener.java (75%)
rename {module/module-rabbitMQ/src/main/java/cn/bunny/module/rabbitMQ => service/src/main/java/cn/bunny/service/mq}/listener/LazyListener.java (75%)
rename {module/module-rabbitMQ/src/main/java/cn/bunny/module/rabbitMQ => service/src/main/java/cn/bunny/service/mq}/listener/TopicListener.java (75%)
rename service/src/main/java/cn/bunny/service/mq/{ => publish}/PublishDirect.java (88%)
delete mode 100644 service/src/main/java/cn/bunny/service/security/CustomUserDetailsService.java
rename {module/spring-security/src/main/java/cn/bunny => service/src/main/java/cn/bunny/service}/security/config/WebSecurityConfig.java (79%)
rename {module/spring-security/src/main/java/cn/bunny => service/src/main/java/cn/bunny/service}/security/custom/CustomPasswordEncoder.java (96%)
rename {module/spring-security/src/main/java/cn/bunny => service/src/main/java/cn/bunny/service}/security/custom/CustomUser.java (64%)
create mode 100644 service/src/main/java/cn/bunny/service/security/filter/NoTokenAuthenticationFilter.java
create mode 100644 service/src/main/java/cn/bunny/service/security/filter/TokenAuthenticationFilter.java
create mode 100644 service/src/main/java/cn/bunny/service/security/filter/TokenLoginFilterService.java
rename {module/spring-security/src/main/java/cn/bunny => service/src/main/java/cn/bunny/service}/security/handelr/SecurityAccessDeniedHandler.java (95%)
rename {module/spring-security/src/main/java/cn/bunny => service/src/main/java/cn/bunny/service}/security/handelr/SecurityAuthenticationEntryPoint.java (96%)
rename {module/spring-security/src/main/java/cn/bunny => service/src/main/java/cn/bunny/service}/security/handelr/SecurityAuthenticationFailureHandler.java (95%)
rename {module/spring-security/src/main/java/cn/bunny => service/src/main/java/cn/bunny/service}/security/handelr/SecurityAuthenticationSuccessHandler.java (95%)
rename {module/spring-security/src/main/java/cn/bunny => service/src/main/java/cn/bunny/service}/security/service/CustomAuthorizationManagerService.java (86%)
rename {module/spring-security/src/main/java/cn/bunny => service/src/main/java/cn/bunny/service}/security/service/CustomUserDetailsService.java (90%)
rename service/src/main/java/cn/bunny/service/security/{ => service/iml}/CustomAuthorizationManagerServiceImpl.java (67%)
create mode 100644 service/src/main/java/cn/bunny/service/security/service/iml/CustomUserDetailsService.java
delete mode 100644 service/src/main/java/cn/bunny/service/service/LoginService.java
delete mode 100644 service/src/main/java/cn/bunny/service/service/UserService.java
delete mode 100644 service/src/main/java/cn/bunny/service/service/impl/LoginServiceImpl.java
delete mode 100644 service/src/main/java/cn/bunny/service/service/impl/UserServiceImpl.java
delete mode 100644 service/src/main/resources/mapper/AdminPowerMapper.xml
delete mode 100644 service/src/main/resources/mapper/AdminRoleMapper.xml
delete mode 100644 service/src/main/resources/mapper/EmailUsersMapper.xml
delete mode 100644 service/src/main/resources/mapper/SystemLogMapper.xml
delete mode 100644 service/src/main/resources/mapper/UserMapper.xml
diff --git a/common/service-utils/pom.xml b/common/service-utils/pom.xml
index 23a0cf0..9131699 100644
--- a/common/service-utils/pom.xml
+++ b/common/service-utils/pom.xml
@@ -40,11 +40,26 @@
redisson
3.26.1
+
+
+ io.minio
+ minio
+
org.lionsoul
ip2region
2.6.5
+
+
+ org.springframework
+ spring-websocket
+
+
+
+ org.springframework.boot
+ spring-boot-starter-mail
+
diff --git a/common/service-utils/src/main/java/cn/bunny/common/service/config/MyBatisPlusFieldConfig.java b/common/service-utils/src/main/java/cn/bunny/common/service/config/MyBatisPlusFieldConfig.java
index d32b125..b441e16 100644
--- a/common/service-utils/src/main/java/cn/bunny/common/service/config/MyBatisPlusFieldConfig.java
+++ b/common/service-utils/src/main/java/cn/bunny/common/service/config/MyBatisPlusFieldConfig.java
@@ -19,12 +19,12 @@ public class MyBatisPlusFieldConfig implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
// 设置属性值
+ this.strictInsertFill(metaObject, "isDeleted", Integer.class, 0);
this.setFieldValByName("createTime", new Date(), metaObject);
this.setFieldValByName("updateTime", new Date(), metaObject);
- this.setFieldValByName("deleteStatus", 1, metaObject);
if (BaseContext.getUsername() != null) {
- this.setFieldValByName("createBy", BaseContext.getUsername(), metaObject);
- this.setFieldValByName("updateBy", BaseContext.getUsername(), metaObject);
+ this.setFieldValByName("createUser", BaseContext.getUsername(), metaObject);
+ this.setFieldValByName("updateUser", BaseContext.getUsername(), metaObject);
}
}
@@ -33,7 +33,9 @@ public class MyBatisPlusFieldConfig implements MetaObjectHandler {
*/
@Override
public void updateFill(MetaObject metaObject) {
- this.setFieldValByName("updateTime", new Date(), metaObject);
- this.setFieldValByName("updateBy", BaseContext.getUsername(), metaObject);
+ if (BaseContext.getUserId() != null) {
+ this.setFieldValByName("updateTime", new Date(), metaObject);
+ this.setFieldValByName("updateUser", BaseContext.getUsername(), metaObject);
+ }
}
}
diff --git a/common/service-utils/src/main/java/cn/bunny/common/service/config/RedisConfiguration.java b/common/service-utils/src/main/java/cn/bunny/common/service/config/RedisConfiguration.java
index c82936b..0c67fee 100644
--- a/common/service-utils/src/main/java/cn/bunny/common/service/config/RedisConfiguration.java
+++ b/common/service-utils/src/main/java/cn/bunny/common/service/config/RedisConfiguration.java
@@ -45,11 +45,14 @@ public class RedisConfiguration {
redisTemplate.setConnectionFactory(connectionFactory);
// 设置key序列化为string
redisTemplate.setKeySerializer(new StringRedisSerializer());
+
// 设置value序列化为JSON,使用GenericJackson2JsonRedisSerializer替换默认序列化
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());
+ // 开启Redis事务
+ redisTemplate.setEnableTransactionSupport(true);
return redisTemplate;
}
diff --git a/common/service-utils/src/main/java/cn/bunny/common/service/context/BaseContext.java b/common/service-utils/src/main/java/cn/bunny/common/service/context/BaseContext.java
index aaae16c..afb5454 100644
--- a/common/service-utils/src/main/java/cn/bunny/common/service/context/BaseContext.java
+++ b/common/service-utils/src/main/java/cn/bunny/common/service/context/BaseContext.java
@@ -1,12 +1,10 @@
package cn.bunny.common.service.context;
-import cn.bunny.vo.system.login.LoginVo;
+import cn.bunny.vo.user.LoginVo;
public class BaseContext {
private static final ThreadLocal userId = new ThreadLocal<>();
private static final ThreadLocal username = new ThreadLocal();
- private static final ThreadLocal adminId = new ThreadLocal<>();
- private static final ThreadLocal adminName = new ThreadLocal<>();
private static final ThreadLocal loginVo = new ThreadLocal<>();
// 用户id相关
@@ -39,26 +37,4 @@ public class BaseContext {
userId.remove();
loginVo.remove();
}
-
- // adminId 相关
- public static Long getAdminId() {
- return adminId.get();
- }
-
- public static void setAdminId(Long _adminId) {
- adminId.set(_adminId);
- }
-
- public static String getAdminName() {
- return adminName.get();
- }
-
- public static void setAdminName(String _adminName) {
- adminName.set(_adminName);
- }
-
- public static void removeAdmin() {
- adminName.remove();
- adminId.remove();
- }
}
\ No newline at end of file
diff --git a/common/service-utils/src/main/java/cn/bunny/common/service/exception/GlobalExceptionHandler.java b/common/service-utils/src/main/java/cn/bunny/common/service/exception/GlobalExceptionHandler.java
index 30ec51c..14532e6 100644
--- a/common/service-utils/src/main/java/cn/bunny/common/service/exception/GlobalExceptionHandler.java
+++ b/common/service-utils/src/main/java/cn/bunny/common/service/exception/GlobalExceptionHandler.java
@@ -1,10 +1,12 @@
package cn.bunny.common.service.exception;
+import cn.bunny.pojo.constant.ExceptionConstant;
import cn.bunny.pojo.result.Result;
import cn.bunny.pojo.result.ResultCodeEnum;
-import cn.bunny.pojo.result.constant.ExceptionConstant;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.support.DefaultMessageSourceResolvable;
+import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestControllerAdvice;
@@ -12,6 +14,9 @@ import org.springframework.web.bind.annotation.RestControllerAdvice;
import java.io.FileNotFoundException;
import java.nio.file.AccessDeniedException;
import java.sql.SQLIntegrityConstraintViolationException;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
@RestControllerAdvice
@Slf4j
@@ -32,18 +37,42 @@ public class GlobalExceptionHandler {
public Result