From 05535f66d012ff0432b014e7bdd0f4c82aace24f Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Fri, 24 May 2024 14:21:00 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E4=BF=AE=E6=94=B9):=20:rocket:=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=A7=86=E5=9B=BE=E6=A8=A1=E5=9E=8B=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE=E4=BB=A5=E5=8F=8A=E5=8F=AF=E4=BB=A5=E4=BD=BF=E7=94=A8?= =?UTF-8?q?Web=E8=87=AA=E5=B8=A6=E6=8B=A6=E6=88=AA=E5=99=A8=EF=BC=8C?= =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E9=80=89=E6=8B=A9=E6=80=A7=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/common-utils/pom.xml | 2 +- .../cn/bunny/common/utils/CommentUtil.java | 51 ------------------ .../java/cn/bunny/common/utils/FileUtil.java | 3 ++ common/service-utils/pom.xml | 2 +- .../service/config/WebMvcConfiguration.java | 38 +++++++++++++ .../service/exception/BunnyException.java | 2 +- .../exception/GlobalExceptionHandler.java | 6 +-- .../interceptor/UserTokenInterceptor.java | 54 +++++++++++++++++++ .../common/service/utils/ResponseUtil.java | 2 +- {model => dao}/pom.xml | 2 +- .../bunny/dto/article/LoadArticleListDto.java | 0 .../bunny/dto/article/LoadUserArticleDto.java | 0 .../cn/bunny/dto/common/CommentPostDto.java | 0 .../cn/bunny/dto/common/CommentQueryDto.java | 0 .../cn/bunny/dto/common/QueryTopTypeDto.java | 0 .../cn/bunny/dto/email/EmailTemplateDto.java | 0 .../cn/bunny/dto/email/EmailUsersDto.java | 0 .../main/java/cn/bunny/dto/user/LoginDto.java | 0 .../java/cn/bunny/dto/user/RegisterDto.java | 0 .../java/cn/bunny/dto/user/ResetPwdDto.java | 0 .../java/cn/bunny/dto/user/UserInfoDto.java | 0 .../bunny/dto/user/UserIntegralRecordDto.java | 0 .../cn/bunny/dto/user/UserMessageDto.java | 0 .../java/cn/bunny/entity/base/BaseEntity.java | 0 .../bunny/entity/system/admin/AdminPower.java | 0 .../bunny/entity/system/admin/AdminRole.java | 0 .../entity/system/admin/AdminRolePower.java | 0 .../entity/system/admin/AdminUserRole.java | 0 .../system/admin/auth/AuthUserRole.java | 0 .../bunny/entity/system/article/Article.java | 0 .../entity/system/article/ForumComment.java | 0 .../entity/system/article/IntegralRecord.java | 0 .../entity/system/article/LikeRecord.java | 0 .../bunny/entity/system/board/ForumBoard.java | 0 .../bunny/entity/system/email/EmailSend.java | 0 .../entity/system/email/EmailSendInit.java | 0 .../entity/system/email/EmailTemplate.java | 0 .../bunny/entity/system/email/EmailUsers.java | 0 .../cn/bunny/entity/system/file/Files.java | 0 .../cn/bunny/entity/system/user/User.java | 0 .../bunny/entity/system/user/UserMessage.java | 0 .../cn/bunny/pojo}/enums/OperationType.java | 2 +- .../java/cn/bunny/pojo}/result/Result.java | 2 +- .../cn/bunny/pojo}/result/ResultCodeEnum.java | 2 +- .../result/constant/ExceptionConstant.java | 2 +- .../result/constant/FileMessageConstant.java | 2 +- .../constant/LocalDateTimeConstant.java | 2 +- .../result/constant/MailMessageConstant.java | 2 +- .../result/constant/RedisUserConstant.java | 2 +- .../result/constant/SQLAutoFillConstant.java | 2 +- .../result/constant/SecurityConstant.java | 2 +- .../pojo}/result/constant/StatusConstant.java | 2 +- .../pojo}/result/constant/UserConstant.java | 2 +- .../cn/bunny/pojo}/tree/AbstractTreeNode.java | 2 +- .../java/cn/bunny/pojo}/tree/TreeBuilder.java | 2 +- .../cn/bunny/vo/email/EmailTemplateVo.java | 0 .../java/cn/bunny/vo/file/FileInfoVo.java | 0 .../java/cn/bunny/vo/page/PageResult.java | 0 .../vo/system/article/ForumArticleVo.java | 0 .../bunny/vo/system/board/ForumBoardVo.java | 2 +- .../cn/bunny/vo/system/comment/CommentVo.java | 0 .../cn/bunny/vo/system/login/LoginVo.java | 2 +- .../bunny/vo/system/login/ValidateCodeVo.java | 0 .../cn/bunny/vo/system/user/UserInfoVo.java | 2 +- .../vo/system/user/UserIntegralRecordVo.java | 0 .../vo/system/user/UserMessageCountVo.java | 0 .../bunny/vo/system/user/UserMessageVo.java | 0 .../module/mail/utils/MailSendCheckUtil.java | 2 +- .../bunny/module/minio/utils/MinioUtil.java | 2 +- module/pom.xml | 1 + .../filter/TokenAuthenticationFilter.java | 6 +-- .../filter/TokenLoginFilterService.java | 6 +-- .../handelr/SecurityAccessDeniedHandler.java | 4 +- .../SecurityAuthenticationEntryPoint.java | 4 +- .../SecurityAuthenticationFailureHandler.java | 2 +- .../SecurityAuthenticationSuccessHandler.java | 2 +- pom.xml | 2 +- .../service/aop/annotation/AutoFill.java | 2 +- .../service/controller/LoginController.java | 2 +- ...CustomAuthorizationManagerServiceImpl.java | 48 ++++++++++++++--- .../security/CustomUserDetailsService.java | 6 +-- .../service/service/impl/UserServiceImpl.java | 6 +-- 82 files changed, 186 insertions(+), 105 deletions(-) delete mode 100644 common/common-utils/src/main/java/cn/bunny/common/utils/CommentUtil.java create mode 100644 common/service-utils/src/main/java/cn/bunny/common/service/config/WebMvcConfiguration.java create mode 100644 common/service-utils/src/main/java/cn/bunny/common/service/interceptor/UserTokenInterceptor.java rename {model => dao}/pom.xml (98%) rename {model => dao}/src/main/java/cn/bunny/dto/article/LoadArticleListDto.java (100%) rename {model => dao}/src/main/java/cn/bunny/dto/article/LoadUserArticleDto.java (100%) rename {model => dao}/src/main/java/cn/bunny/dto/common/CommentPostDto.java (100%) rename {model => dao}/src/main/java/cn/bunny/dto/common/CommentQueryDto.java (100%) rename {model => dao}/src/main/java/cn/bunny/dto/common/QueryTopTypeDto.java (100%) rename {model => dao}/src/main/java/cn/bunny/dto/email/EmailTemplateDto.java (100%) rename {model => dao}/src/main/java/cn/bunny/dto/email/EmailUsersDto.java (100%) rename {model => dao}/src/main/java/cn/bunny/dto/user/LoginDto.java (100%) rename {model => dao}/src/main/java/cn/bunny/dto/user/RegisterDto.java (100%) rename {model => dao}/src/main/java/cn/bunny/dto/user/ResetPwdDto.java (100%) rename {model => dao}/src/main/java/cn/bunny/dto/user/UserInfoDto.java (100%) rename {model => dao}/src/main/java/cn/bunny/dto/user/UserIntegralRecordDto.java (100%) rename {model => dao}/src/main/java/cn/bunny/dto/user/UserMessageDto.java (100%) rename {model => dao}/src/main/java/cn/bunny/entity/base/BaseEntity.java (100%) rename {model => dao}/src/main/java/cn/bunny/entity/system/admin/AdminPower.java (100%) rename {model => dao}/src/main/java/cn/bunny/entity/system/admin/AdminRole.java (100%) rename {model => dao}/src/main/java/cn/bunny/entity/system/admin/AdminRolePower.java (100%) rename {model => dao}/src/main/java/cn/bunny/entity/system/admin/AdminUserRole.java (100%) rename {model => dao}/src/main/java/cn/bunny/entity/system/admin/auth/AuthUserRole.java (100%) rename {model => dao}/src/main/java/cn/bunny/entity/system/article/Article.java (100%) rename {model => dao}/src/main/java/cn/bunny/entity/system/article/ForumComment.java (100%) rename {model => dao}/src/main/java/cn/bunny/entity/system/article/IntegralRecord.java (100%) rename {model => dao}/src/main/java/cn/bunny/entity/system/article/LikeRecord.java (100%) rename {model => dao}/src/main/java/cn/bunny/entity/system/board/ForumBoard.java (100%) rename {model => dao}/src/main/java/cn/bunny/entity/system/email/EmailSend.java (100%) rename {model => dao}/src/main/java/cn/bunny/entity/system/email/EmailSendInit.java (100%) rename {model => dao}/src/main/java/cn/bunny/entity/system/email/EmailTemplate.java (100%) rename {model => dao}/src/main/java/cn/bunny/entity/system/email/EmailUsers.java (100%) rename {model => dao}/src/main/java/cn/bunny/entity/system/file/Files.java (100%) rename {model => dao}/src/main/java/cn/bunny/entity/system/user/User.java (100%) rename {model => dao}/src/main/java/cn/bunny/entity/system/user/UserMessage.java (100%) rename {model/src/main/java/cn/bunny => dao/src/main/java/cn/bunny/pojo}/enums/OperationType.java (74%) rename {model/src/main/java/cn/bunny => dao/src/main/java/cn/bunny/pojo}/result/Result.java (99%) rename {model/src/main/java/cn/bunny => dao/src/main/java/cn/bunny/pojo}/result/ResultCodeEnum.java (98%) rename {model/src/main/java/cn/bunny => dao/src/main/java/cn/bunny/pojo}/result/constant/ExceptionConstant.java (98%) rename {model/src/main/java/cn/bunny => dao/src/main/java/cn/bunny/pojo}/result/constant/FileMessageConstant.java (96%) rename {model/src/main/java/cn/bunny => dao/src/main/java/cn/bunny/pojo}/result/constant/LocalDateTimeConstant.java (90%) rename {model/src/main/java/cn/bunny => dao/src/main/java/cn/bunny/pojo}/result/constant/MailMessageConstant.java (92%) rename {model/src/main/java/cn/bunny => dao/src/main/java/cn/bunny/pojo}/result/constant/RedisUserConstant.java (97%) rename {model/src/main/java/cn/bunny => dao/src/main/java/cn/bunny/pojo}/result/constant/SQLAutoFillConstant.java (90%) rename {model/src/main/java/cn/bunny => dao/src/main/java/cn/bunny/pojo}/result/constant/SecurityConstant.java (91%) rename {model/src/main/java/cn/bunny => dao/src/main/java/cn/bunny/pojo}/result/constant/StatusConstant.java (85%) rename {model/src/main/java/cn/bunny => dao/src/main/java/cn/bunny/pojo}/result/constant/UserConstant.java (85%) rename {model/src/main/java/cn/bunny => dao/src/main/java/cn/bunny/pojo}/tree/AbstractTreeNode.java (86%) rename {model/src/main/java/cn/bunny => dao/src/main/java/cn/bunny/pojo}/tree/TreeBuilder.java (96%) rename {model => dao}/src/main/java/cn/bunny/vo/email/EmailTemplateVo.java (100%) rename {model => dao}/src/main/java/cn/bunny/vo/file/FileInfoVo.java (100%) rename {model => dao}/src/main/java/cn/bunny/vo/page/PageResult.java (100%) rename {model => dao}/src/main/java/cn/bunny/vo/system/article/ForumArticleVo.java (100%) rename {model => dao}/src/main/java/cn/bunny/vo/system/board/ForumBoardVo.java (93%) rename {model => dao}/src/main/java/cn/bunny/vo/system/comment/CommentVo.java (100%) rename {model => dao}/src/main/java/cn/bunny/vo/system/login/LoginVo.java (96%) rename {model => dao}/src/main/java/cn/bunny/vo/system/login/ValidateCodeVo.java (100%) rename {model => dao}/src/main/java/cn/bunny/vo/system/user/UserInfoVo.java (96%) rename {model => dao}/src/main/java/cn/bunny/vo/system/user/UserIntegralRecordVo.java (100%) rename {model => dao}/src/main/java/cn/bunny/vo/system/user/UserMessageCountVo.java (100%) rename {model => dao}/src/main/java/cn/bunny/vo/system/user/UserMessageVo.java (100%) diff --git a/common/common-utils/pom.xml b/common/common-utils/pom.xml index f832c59..943745a 100644 --- a/common/common-utils/pom.xml +++ b/common/common-utils/pom.xml @@ -20,7 +20,7 @@ cn.bunny - model + dao 0.0.1-SNAPSHOT diff --git a/common/common-utils/src/main/java/cn/bunny/common/utils/CommentUtil.java b/common/common-utils/src/main/java/cn/bunny/common/utils/CommentUtil.java deleted file mode 100644 index b733f66..0000000 --- a/common/common-utils/src/main/java/cn/bunny/common/utils/CommentUtil.java +++ /dev/null @@ -1,51 +0,0 @@ -package cn.bunny.common.utils; - -import cn.bunny.vo.system.comment.CommentVo; - -import java.util.ArrayList; -import java.util.List; - -public class CommentUtil { - /** - * 构建树型结构 - * - * @param commentList 评论列表 - * @return 结构列表 - */ - public static List buildTree(List commentList) { - // 构建树形结构 - List tree = new ArrayList<>(); - // 遍历评论列表 - for (CommentVo comment : commentList) { - // 找到顶级评论(没有父评论) - if (comment.getPCommentId() == 0) { - // 递归构建子评论 - comment.setChildren(getChildren(comment.getId(), commentList)); - tree.add(comment); - } - } - return tree; - } - - /** - * 递归获取子评论 - * - * @param commentId 当前评论ID - * @param commentList 评论列表 - * @return 子评论列表 - */ - private static List getChildren(Long commentId, List commentList) { - List children = new ArrayList<>(); - - // 遍历评论列表 - for (CommentVo comment : commentList) { - // 找到当前评论的子评论 - if (Long.valueOf(comment.getPCommentId()).equals(commentId)) { - // 递归构建子评论的子评论 - comment.setChildren(getChildren(comment.getId(), commentList)); - children.add(comment); - } - } - return children; - } -} diff --git a/common/common-utils/src/main/java/cn/bunny/common/utils/FileUtil.java b/common/common-utils/src/main/java/cn/bunny/common/utils/FileUtil.java index 739253c..8b591a0 100644 --- a/common/common-utils/src/main/java/cn/bunny/common/utils/FileUtil.java +++ b/common/common-utils/src/main/java/cn/bunny/common/utils/FileUtil.java @@ -1,5 +1,8 @@ package cn.bunny.common.utils; +/** + * 计算 kb mb gb + */ public class FileUtil { public static String getSize(Long fileSize) { double fileSizeInKB = fileSize / 1024.00; diff --git a/common/service-utils/pom.xml b/common/service-utils/pom.xml index 3a326b2..0405330 100644 --- a/common/service-utils/pom.xml +++ b/common/service-utils/pom.xml @@ -19,7 +19,7 @@ cn.bunny - model + dao 0.0.1-SNAPSHOT diff --git a/common/service-utils/src/main/java/cn/bunny/common/service/config/WebMvcConfiguration.java b/common/service-utils/src/main/java/cn/bunny/common/service/config/WebMvcConfiguration.java new file mode 100644 index 0000000..34dd3b5 --- /dev/null +++ b/common/service-utils/src/main/java/cn/bunny/common/service/config/WebMvcConfiguration.java @@ -0,0 +1,38 @@ +package cn.bunny.common.service.config; + +import cn.bunny.common.service.interceptor.UserTokenInterceptor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +@Slf4j +public class WebMvcConfiguration implements WebMvcConfigurer { + @Autowired + private UserTokenInterceptor userTokenInterceptor; + + /** + * 跨域配置 + * + * @param registry 跨域注册表 + */ + @Override + public void addCorsMappings(CorsRegistry registry) { + registry.addMapping("/**") + // 是否发送Cookies + .allowCredentials(true) + // 放行哪些原始域 + .allowedOriginPatterns("*").allowedMethods("GET", "POST", "PUT", "DELETE").allowedHeaders("*").exposedHeaders("*"); + } + + @Override + public void addInterceptors(InterceptorRegistry registry) { + String[] excludeList = {"/api/checkCode", "/api/sendEmailCode", "/api/register", "/api/login", "/api/article/loadArticle/**"}; + log.info("WebMvcConfiguration===>开始注册自定义拦截器..."); + // TODO 如果想使用普通JWT可以使用这个,不使用 SpringSecurity6 + // registry.addInterceptor(userTokenInterceptor).addPathPatterns("/api/**").excludePathPatterns(excludeList); + } +} diff --git a/common/service-utils/src/main/java/cn/bunny/common/service/exception/BunnyException.java b/common/service-utils/src/main/java/cn/bunny/common/service/exception/BunnyException.java index 1012971..680c503 100644 --- a/common/service-utils/src/main/java/cn/bunny/common/service/exception/BunnyException.java +++ b/common/service-utils/src/main/java/cn/bunny/common/service/exception/BunnyException.java @@ -1,6 +1,6 @@ package cn.bunny.common.service.exception; -import cn.bunny.result.ResultCodeEnum; +import cn.bunny.pojo.result.ResultCodeEnum; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.ToString; 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 345d29b..30ec51c 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,9 +1,9 @@ package cn.bunny.common.service.exception; -import cn.bunny.result.Result; -import cn.bunny.result.ResultCodeEnum; -import cn.bunny.result.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.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; diff --git a/common/service-utils/src/main/java/cn/bunny/common/service/interceptor/UserTokenInterceptor.java b/common/service-utils/src/main/java/cn/bunny/common/service/interceptor/UserTokenInterceptor.java new file mode 100644 index 0000000..80aa5d6 --- /dev/null +++ b/common/service-utils/src/main/java/cn/bunny/common/service/interceptor/UserTokenInterceptor.java @@ -0,0 +1,54 @@ +package cn.bunny.common.service.interceptor; + +import cn.bunny.common.service.context.BaseContext; +import cn.bunny.common.service.utils.JwtHelper; +import cn.bunny.common.service.utils.ResponseUtil; +import cn.bunny.pojo.result.Result; +import cn.bunny.pojo.result.ResultCodeEnum; +import cn.bunny.pojo.result.constant.RedisUserConstant; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.lang.Nullable; +import org.springframework.stereotype.Component; +import org.springframework.web.method.HandlerMethod; +import org.springframework.web.servlet.HandlerInterceptor; + +@Component +@Slf4j +public class UserTokenInterceptor implements HandlerInterceptor { + @Autowired + private RedisTemplate redisTemplate; + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + log.info("UserTokenInterceptor===>设置拦截器"); + String token = request.getHeader("token"); + Long userId = JwtHelper.getUserId(token); + String username = JwtHelper.getUsername(token); + Object redisUserinfo = redisTemplate.opsForValue().get(RedisUserConstant.getUserLoginInfoPrefix(username)); + + // 不是动态方法直接返回 + if (!(handler instanceof HandlerMethod)) return true; + // 解析不到userId + if (userId == null) { + ResponseUtil.out(response, Result.error(ResultCodeEnum.LOGIN_AUTH)); + return false; + } + if (redisUserinfo == null) { + ResponseUtil.out(response, Result.error(ResultCodeEnum.LOGIN_AUTH)); + return false; + } + + BaseContext.setUserId(userId); + BaseContext.setUsername(username); + return true; + } + + @Override + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception { + BaseContext.removeUser(); + } +} diff --git a/common/service-utils/src/main/java/cn/bunny/common/service/utils/ResponseUtil.java b/common/service-utils/src/main/java/cn/bunny/common/service/utils/ResponseUtil.java index 2f3f1f2..d6f2019 100644 --- a/common/service-utils/src/main/java/cn/bunny/common/service/utils/ResponseUtil.java +++ b/common/service-utils/src/main/java/cn/bunny/common/service/utils/ResponseUtil.java @@ -1,6 +1,6 @@ package cn.bunny.common.service.utils; -import cn.bunny.result.Result; +import cn.bunny.pojo.result.Result; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import jakarta.servlet.http.HttpServletResponse; diff --git a/model/pom.xml b/dao/pom.xml similarity index 98% rename from model/pom.xml rename to dao/pom.xml index 33eccf6..ac62f0e 100644 --- a/model/pom.xml +++ b/dao/pom.xml @@ -7,7 +7,7 @@ 0.0.1-SNAPSHOT - model + dao jar model diff --git a/model/src/main/java/cn/bunny/dto/article/LoadArticleListDto.java b/dao/src/main/java/cn/bunny/dto/article/LoadArticleListDto.java similarity index 100% rename from model/src/main/java/cn/bunny/dto/article/LoadArticleListDto.java rename to dao/src/main/java/cn/bunny/dto/article/LoadArticleListDto.java diff --git a/model/src/main/java/cn/bunny/dto/article/LoadUserArticleDto.java b/dao/src/main/java/cn/bunny/dto/article/LoadUserArticleDto.java similarity index 100% rename from model/src/main/java/cn/bunny/dto/article/LoadUserArticleDto.java rename to dao/src/main/java/cn/bunny/dto/article/LoadUserArticleDto.java diff --git a/model/src/main/java/cn/bunny/dto/common/CommentPostDto.java b/dao/src/main/java/cn/bunny/dto/common/CommentPostDto.java similarity index 100% rename from model/src/main/java/cn/bunny/dto/common/CommentPostDto.java rename to dao/src/main/java/cn/bunny/dto/common/CommentPostDto.java diff --git a/model/src/main/java/cn/bunny/dto/common/CommentQueryDto.java b/dao/src/main/java/cn/bunny/dto/common/CommentQueryDto.java similarity index 100% rename from model/src/main/java/cn/bunny/dto/common/CommentQueryDto.java rename to dao/src/main/java/cn/bunny/dto/common/CommentQueryDto.java diff --git a/model/src/main/java/cn/bunny/dto/common/QueryTopTypeDto.java b/dao/src/main/java/cn/bunny/dto/common/QueryTopTypeDto.java similarity index 100% rename from model/src/main/java/cn/bunny/dto/common/QueryTopTypeDto.java rename to dao/src/main/java/cn/bunny/dto/common/QueryTopTypeDto.java diff --git a/model/src/main/java/cn/bunny/dto/email/EmailTemplateDto.java b/dao/src/main/java/cn/bunny/dto/email/EmailTemplateDto.java similarity index 100% rename from model/src/main/java/cn/bunny/dto/email/EmailTemplateDto.java rename to dao/src/main/java/cn/bunny/dto/email/EmailTemplateDto.java diff --git a/model/src/main/java/cn/bunny/dto/email/EmailUsersDto.java b/dao/src/main/java/cn/bunny/dto/email/EmailUsersDto.java similarity index 100% rename from model/src/main/java/cn/bunny/dto/email/EmailUsersDto.java rename to dao/src/main/java/cn/bunny/dto/email/EmailUsersDto.java diff --git a/model/src/main/java/cn/bunny/dto/user/LoginDto.java b/dao/src/main/java/cn/bunny/dto/user/LoginDto.java similarity index 100% rename from model/src/main/java/cn/bunny/dto/user/LoginDto.java rename to dao/src/main/java/cn/bunny/dto/user/LoginDto.java diff --git a/model/src/main/java/cn/bunny/dto/user/RegisterDto.java b/dao/src/main/java/cn/bunny/dto/user/RegisterDto.java similarity index 100% rename from model/src/main/java/cn/bunny/dto/user/RegisterDto.java rename to dao/src/main/java/cn/bunny/dto/user/RegisterDto.java diff --git a/model/src/main/java/cn/bunny/dto/user/ResetPwdDto.java b/dao/src/main/java/cn/bunny/dto/user/ResetPwdDto.java similarity index 100% rename from model/src/main/java/cn/bunny/dto/user/ResetPwdDto.java rename to dao/src/main/java/cn/bunny/dto/user/ResetPwdDto.java diff --git a/model/src/main/java/cn/bunny/dto/user/UserInfoDto.java b/dao/src/main/java/cn/bunny/dto/user/UserInfoDto.java similarity index 100% rename from model/src/main/java/cn/bunny/dto/user/UserInfoDto.java rename to dao/src/main/java/cn/bunny/dto/user/UserInfoDto.java diff --git a/model/src/main/java/cn/bunny/dto/user/UserIntegralRecordDto.java b/dao/src/main/java/cn/bunny/dto/user/UserIntegralRecordDto.java similarity index 100% rename from model/src/main/java/cn/bunny/dto/user/UserIntegralRecordDto.java rename to dao/src/main/java/cn/bunny/dto/user/UserIntegralRecordDto.java diff --git a/model/src/main/java/cn/bunny/dto/user/UserMessageDto.java b/dao/src/main/java/cn/bunny/dto/user/UserMessageDto.java similarity index 100% rename from model/src/main/java/cn/bunny/dto/user/UserMessageDto.java rename to dao/src/main/java/cn/bunny/dto/user/UserMessageDto.java diff --git a/model/src/main/java/cn/bunny/entity/base/BaseEntity.java b/dao/src/main/java/cn/bunny/entity/base/BaseEntity.java similarity index 100% rename from model/src/main/java/cn/bunny/entity/base/BaseEntity.java rename to dao/src/main/java/cn/bunny/entity/base/BaseEntity.java diff --git a/model/src/main/java/cn/bunny/entity/system/admin/AdminPower.java b/dao/src/main/java/cn/bunny/entity/system/admin/AdminPower.java similarity index 100% rename from model/src/main/java/cn/bunny/entity/system/admin/AdminPower.java rename to dao/src/main/java/cn/bunny/entity/system/admin/AdminPower.java diff --git a/model/src/main/java/cn/bunny/entity/system/admin/AdminRole.java b/dao/src/main/java/cn/bunny/entity/system/admin/AdminRole.java similarity index 100% rename from model/src/main/java/cn/bunny/entity/system/admin/AdminRole.java rename to dao/src/main/java/cn/bunny/entity/system/admin/AdminRole.java diff --git a/model/src/main/java/cn/bunny/entity/system/admin/AdminRolePower.java b/dao/src/main/java/cn/bunny/entity/system/admin/AdminRolePower.java similarity index 100% rename from model/src/main/java/cn/bunny/entity/system/admin/AdminRolePower.java rename to dao/src/main/java/cn/bunny/entity/system/admin/AdminRolePower.java diff --git a/model/src/main/java/cn/bunny/entity/system/admin/AdminUserRole.java b/dao/src/main/java/cn/bunny/entity/system/admin/AdminUserRole.java similarity index 100% rename from model/src/main/java/cn/bunny/entity/system/admin/AdminUserRole.java rename to dao/src/main/java/cn/bunny/entity/system/admin/AdminUserRole.java diff --git a/model/src/main/java/cn/bunny/entity/system/admin/auth/AuthUserRole.java b/dao/src/main/java/cn/bunny/entity/system/admin/auth/AuthUserRole.java similarity index 100% rename from model/src/main/java/cn/bunny/entity/system/admin/auth/AuthUserRole.java rename to dao/src/main/java/cn/bunny/entity/system/admin/auth/AuthUserRole.java diff --git a/model/src/main/java/cn/bunny/entity/system/article/Article.java b/dao/src/main/java/cn/bunny/entity/system/article/Article.java similarity index 100% rename from model/src/main/java/cn/bunny/entity/system/article/Article.java rename to dao/src/main/java/cn/bunny/entity/system/article/Article.java diff --git a/model/src/main/java/cn/bunny/entity/system/article/ForumComment.java b/dao/src/main/java/cn/bunny/entity/system/article/ForumComment.java similarity index 100% rename from model/src/main/java/cn/bunny/entity/system/article/ForumComment.java rename to dao/src/main/java/cn/bunny/entity/system/article/ForumComment.java diff --git a/model/src/main/java/cn/bunny/entity/system/article/IntegralRecord.java b/dao/src/main/java/cn/bunny/entity/system/article/IntegralRecord.java similarity index 100% rename from model/src/main/java/cn/bunny/entity/system/article/IntegralRecord.java rename to dao/src/main/java/cn/bunny/entity/system/article/IntegralRecord.java diff --git a/model/src/main/java/cn/bunny/entity/system/article/LikeRecord.java b/dao/src/main/java/cn/bunny/entity/system/article/LikeRecord.java similarity index 100% rename from model/src/main/java/cn/bunny/entity/system/article/LikeRecord.java rename to dao/src/main/java/cn/bunny/entity/system/article/LikeRecord.java diff --git a/model/src/main/java/cn/bunny/entity/system/board/ForumBoard.java b/dao/src/main/java/cn/bunny/entity/system/board/ForumBoard.java similarity index 100% rename from model/src/main/java/cn/bunny/entity/system/board/ForumBoard.java rename to dao/src/main/java/cn/bunny/entity/system/board/ForumBoard.java diff --git a/model/src/main/java/cn/bunny/entity/system/email/EmailSend.java b/dao/src/main/java/cn/bunny/entity/system/email/EmailSend.java similarity index 100% rename from model/src/main/java/cn/bunny/entity/system/email/EmailSend.java rename to dao/src/main/java/cn/bunny/entity/system/email/EmailSend.java diff --git a/model/src/main/java/cn/bunny/entity/system/email/EmailSendInit.java b/dao/src/main/java/cn/bunny/entity/system/email/EmailSendInit.java similarity index 100% rename from model/src/main/java/cn/bunny/entity/system/email/EmailSendInit.java rename to dao/src/main/java/cn/bunny/entity/system/email/EmailSendInit.java diff --git a/model/src/main/java/cn/bunny/entity/system/email/EmailTemplate.java b/dao/src/main/java/cn/bunny/entity/system/email/EmailTemplate.java similarity index 100% rename from model/src/main/java/cn/bunny/entity/system/email/EmailTemplate.java rename to dao/src/main/java/cn/bunny/entity/system/email/EmailTemplate.java diff --git a/model/src/main/java/cn/bunny/entity/system/email/EmailUsers.java b/dao/src/main/java/cn/bunny/entity/system/email/EmailUsers.java similarity index 100% rename from model/src/main/java/cn/bunny/entity/system/email/EmailUsers.java rename to dao/src/main/java/cn/bunny/entity/system/email/EmailUsers.java diff --git a/model/src/main/java/cn/bunny/entity/system/file/Files.java b/dao/src/main/java/cn/bunny/entity/system/file/Files.java similarity index 100% rename from model/src/main/java/cn/bunny/entity/system/file/Files.java rename to dao/src/main/java/cn/bunny/entity/system/file/Files.java diff --git a/model/src/main/java/cn/bunny/entity/system/user/User.java b/dao/src/main/java/cn/bunny/entity/system/user/User.java similarity index 100% rename from model/src/main/java/cn/bunny/entity/system/user/User.java rename to dao/src/main/java/cn/bunny/entity/system/user/User.java diff --git a/model/src/main/java/cn/bunny/entity/system/user/UserMessage.java b/dao/src/main/java/cn/bunny/entity/system/user/UserMessage.java similarity index 100% rename from model/src/main/java/cn/bunny/entity/system/user/UserMessage.java rename to dao/src/main/java/cn/bunny/entity/system/user/UserMessage.java diff --git a/model/src/main/java/cn/bunny/enums/OperationType.java b/dao/src/main/java/cn/bunny/pojo/enums/OperationType.java similarity index 74% rename from model/src/main/java/cn/bunny/enums/OperationType.java rename to dao/src/main/java/cn/bunny/pojo/enums/OperationType.java index 7e0999e..e15d341 100644 --- a/model/src/main/java/cn/bunny/enums/OperationType.java +++ b/dao/src/main/java/cn/bunny/pojo/enums/OperationType.java @@ -1,4 +1,4 @@ -package cn.bunny.enums; +package cn.bunny.pojo.enums; /** * 数据库操作类型 diff --git a/model/src/main/java/cn/bunny/result/Result.java b/dao/src/main/java/cn/bunny/pojo/result/Result.java similarity index 99% rename from model/src/main/java/cn/bunny/result/Result.java rename to dao/src/main/java/cn/bunny/pojo/result/Result.java index 6484684..d85b26d 100644 --- a/model/src/main/java/cn/bunny/result/Result.java +++ b/dao/src/main/java/cn/bunny/pojo/result/Result.java @@ -1,4 +1,4 @@ -package cn.bunny.result; +package cn.bunny.pojo.result; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/model/src/main/java/cn/bunny/result/ResultCodeEnum.java b/dao/src/main/java/cn/bunny/pojo/result/ResultCodeEnum.java similarity index 98% rename from model/src/main/java/cn/bunny/result/ResultCodeEnum.java rename to dao/src/main/java/cn/bunny/pojo/result/ResultCodeEnum.java index d391b55..d2a98d7 100644 --- a/model/src/main/java/cn/bunny/result/ResultCodeEnum.java +++ b/dao/src/main/java/cn/bunny/pojo/result/ResultCodeEnum.java @@ -1,4 +1,4 @@ -package cn.bunny.result; +package cn.bunny.pojo.result; import lombok.Getter; diff --git a/model/src/main/java/cn/bunny/result/constant/ExceptionConstant.java b/dao/src/main/java/cn/bunny/pojo/result/constant/ExceptionConstant.java similarity index 98% rename from model/src/main/java/cn/bunny/result/constant/ExceptionConstant.java rename to dao/src/main/java/cn/bunny/pojo/result/constant/ExceptionConstant.java index 7662b0e..cdb8945 100644 --- a/model/src/main/java/cn/bunny/result/constant/ExceptionConstant.java +++ b/dao/src/main/java/cn/bunny/pojo/result/constant/ExceptionConstant.java @@ -1,4 +1,4 @@ -package cn.bunny.result.constant; +package cn.bunny.pojo.result.constant; import lombok.Data; diff --git a/model/src/main/java/cn/bunny/result/constant/FileMessageConstant.java b/dao/src/main/java/cn/bunny/pojo/result/constant/FileMessageConstant.java similarity index 96% rename from model/src/main/java/cn/bunny/result/constant/FileMessageConstant.java rename to dao/src/main/java/cn/bunny/pojo/result/constant/FileMessageConstant.java index db799c7..d608a30 100644 --- a/model/src/main/java/cn/bunny/result/constant/FileMessageConstant.java +++ b/dao/src/main/java/cn/bunny/pojo/result/constant/FileMessageConstant.java @@ -1,4 +1,4 @@ -package cn.bunny.result.constant; +package cn.bunny.pojo.result.constant; import lombok.Data; diff --git a/model/src/main/java/cn/bunny/result/constant/LocalDateTimeConstant.java b/dao/src/main/java/cn/bunny/pojo/result/constant/LocalDateTimeConstant.java similarity index 90% rename from model/src/main/java/cn/bunny/result/constant/LocalDateTimeConstant.java rename to dao/src/main/java/cn/bunny/pojo/result/constant/LocalDateTimeConstant.java index b0c4d40..afda4da 100644 --- a/model/src/main/java/cn/bunny/result/constant/LocalDateTimeConstant.java +++ b/dao/src/main/java/cn/bunny/pojo/result/constant/LocalDateTimeConstant.java @@ -1,4 +1,4 @@ -package cn.bunny.result.constant; +package cn.bunny.pojo.result.constant; import lombok.Data; diff --git a/model/src/main/java/cn/bunny/result/constant/MailMessageConstant.java b/dao/src/main/java/cn/bunny/pojo/result/constant/MailMessageConstant.java similarity index 92% rename from model/src/main/java/cn/bunny/result/constant/MailMessageConstant.java rename to dao/src/main/java/cn/bunny/pojo/result/constant/MailMessageConstant.java index c2410ac..9a13a7f 100644 --- a/model/src/main/java/cn/bunny/result/constant/MailMessageConstant.java +++ b/dao/src/main/java/cn/bunny/pojo/result/constant/MailMessageConstant.java @@ -1,4 +1,4 @@ -package cn.bunny.result.constant; +package cn.bunny.pojo.result.constant; import lombok.Data; diff --git a/model/src/main/java/cn/bunny/result/constant/RedisUserConstant.java b/dao/src/main/java/cn/bunny/pojo/result/constant/RedisUserConstant.java similarity index 97% rename from model/src/main/java/cn/bunny/result/constant/RedisUserConstant.java rename to dao/src/main/java/cn/bunny/pojo/result/constant/RedisUserConstant.java index 9772191..9ddf241 100644 --- a/model/src/main/java/cn/bunny/result/constant/RedisUserConstant.java +++ b/dao/src/main/java/cn/bunny/pojo/result/constant/RedisUserConstant.java @@ -1,4 +1,4 @@ -package cn.bunny.result.constant; +package cn.bunny.pojo.result.constant; import lombok.Data; diff --git a/model/src/main/java/cn/bunny/result/constant/SQLAutoFillConstant.java b/dao/src/main/java/cn/bunny/pojo/result/constant/SQLAutoFillConstant.java similarity index 90% rename from model/src/main/java/cn/bunny/result/constant/SQLAutoFillConstant.java rename to dao/src/main/java/cn/bunny/pojo/result/constant/SQLAutoFillConstant.java index 6b09482..d2ebde4 100644 --- a/model/src/main/java/cn/bunny/result/constant/SQLAutoFillConstant.java +++ b/dao/src/main/java/cn/bunny/pojo/result/constant/SQLAutoFillConstant.java @@ -1,4 +1,4 @@ -package cn.bunny.result.constant; +package cn.bunny.pojo.result.constant; import lombok.Data; diff --git a/model/src/main/java/cn/bunny/result/constant/SecurityConstant.java b/dao/src/main/java/cn/bunny/pojo/result/constant/SecurityConstant.java similarity index 91% rename from model/src/main/java/cn/bunny/result/constant/SecurityConstant.java rename to dao/src/main/java/cn/bunny/pojo/result/constant/SecurityConstant.java index a26c0b4..4d21335 100644 --- a/model/src/main/java/cn/bunny/result/constant/SecurityConstant.java +++ b/dao/src/main/java/cn/bunny/pojo/result/constant/SecurityConstant.java @@ -1,4 +1,4 @@ -package cn.bunny.result.constant; +package cn.bunny.pojo.result.constant; import lombok.Data; diff --git a/model/src/main/java/cn/bunny/result/constant/StatusConstant.java b/dao/src/main/java/cn/bunny/pojo/result/constant/StatusConstant.java similarity index 85% rename from model/src/main/java/cn/bunny/result/constant/StatusConstant.java rename to dao/src/main/java/cn/bunny/pojo/result/constant/StatusConstant.java index c530625..333531e 100644 --- a/model/src/main/java/cn/bunny/result/constant/StatusConstant.java +++ b/dao/src/main/java/cn/bunny/pojo/result/constant/StatusConstant.java @@ -1,4 +1,4 @@ -package cn.bunny.result.constant; +package cn.bunny.pojo.result.constant; import lombok.Data; diff --git a/model/src/main/java/cn/bunny/result/constant/UserConstant.java b/dao/src/main/java/cn/bunny/pojo/result/constant/UserConstant.java similarity index 85% rename from model/src/main/java/cn/bunny/result/constant/UserConstant.java rename to dao/src/main/java/cn/bunny/pojo/result/constant/UserConstant.java index d9f4832..b36248a 100644 --- a/model/src/main/java/cn/bunny/result/constant/UserConstant.java +++ b/dao/src/main/java/cn/bunny/pojo/result/constant/UserConstant.java @@ -1,4 +1,4 @@ -package cn.bunny.result.constant; +package cn.bunny.pojo.result.constant; import lombok.Data; diff --git a/model/src/main/java/cn/bunny/tree/AbstractTreeNode.java b/dao/src/main/java/cn/bunny/pojo/tree/AbstractTreeNode.java similarity index 86% rename from model/src/main/java/cn/bunny/tree/AbstractTreeNode.java rename to dao/src/main/java/cn/bunny/pojo/tree/AbstractTreeNode.java index d5e7770..643a62e 100644 --- a/model/src/main/java/cn/bunny/tree/AbstractTreeNode.java +++ b/dao/src/main/java/cn/bunny/pojo/tree/AbstractTreeNode.java @@ -1,4 +1,4 @@ -package cn.bunny.tree; +package cn.bunny.pojo.tree; import java.util.List; diff --git a/model/src/main/java/cn/bunny/tree/TreeBuilder.java b/dao/src/main/java/cn/bunny/pojo/tree/TreeBuilder.java similarity index 96% rename from model/src/main/java/cn/bunny/tree/TreeBuilder.java rename to dao/src/main/java/cn/bunny/pojo/tree/TreeBuilder.java index f85d419..0b6214f 100644 --- a/model/src/main/java/cn/bunny/tree/TreeBuilder.java +++ b/dao/src/main/java/cn/bunny/pojo/tree/TreeBuilder.java @@ -1,4 +1,4 @@ -package cn.bunny.tree; +package cn.bunny.pojo.tree; import java.util.ArrayList; import java.util.List; diff --git a/model/src/main/java/cn/bunny/vo/email/EmailTemplateVo.java b/dao/src/main/java/cn/bunny/vo/email/EmailTemplateVo.java similarity index 100% rename from model/src/main/java/cn/bunny/vo/email/EmailTemplateVo.java rename to dao/src/main/java/cn/bunny/vo/email/EmailTemplateVo.java diff --git a/model/src/main/java/cn/bunny/vo/file/FileInfoVo.java b/dao/src/main/java/cn/bunny/vo/file/FileInfoVo.java similarity index 100% rename from model/src/main/java/cn/bunny/vo/file/FileInfoVo.java rename to dao/src/main/java/cn/bunny/vo/file/FileInfoVo.java diff --git a/model/src/main/java/cn/bunny/vo/page/PageResult.java b/dao/src/main/java/cn/bunny/vo/page/PageResult.java similarity index 100% rename from model/src/main/java/cn/bunny/vo/page/PageResult.java rename to dao/src/main/java/cn/bunny/vo/page/PageResult.java diff --git a/model/src/main/java/cn/bunny/vo/system/article/ForumArticleVo.java b/dao/src/main/java/cn/bunny/vo/system/article/ForumArticleVo.java similarity index 100% rename from model/src/main/java/cn/bunny/vo/system/article/ForumArticleVo.java rename to dao/src/main/java/cn/bunny/vo/system/article/ForumArticleVo.java diff --git a/model/src/main/java/cn/bunny/vo/system/board/ForumBoardVo.java b/dao/src/main/java/cn/bunny/vo/system/board/ForumBoardVo.java similarity index 93% rename from model/src/main/java/cn/bunny/vo/system/board/ForumBoardVo.java rename to dao/src/main/java/cn/bunny/vo/system/board/ForumBoardVo.java index 66c79e0..42b86a4 100644 --- a/model/src/main/java/cn/bunny/vo/system/board/ForumBoardVo.java +++ b/dao/src/main/java/cn/bunny/vo/system/board/ForumBoardVo.java @@ -1,6 +1,6 @@ package cn.bunny.vo.system.board; -import cn.bunny.tree.AbstractTreeNode; +import cn.bunny.pojo.tree.AbstractTreeNode; import lombok.Data; import java.util.List; diff --git a/model/src/main/java/cn/bunny/vo/system/comment/CommentVo.java b/dao/src/main/java/cn/bunny/vo/system/comment/CommentVo.java similarity index 100% rename from model/src/main/java/cn/bunny/vo/system/comment/CommentVo.java rename to dao/src/main/java/cn/bunny/vo/system/comment/CommentVo.java diff --git a/model/src/main/java/cn/bunny/vo/system/login/LoginVo.java b/dao/src/main/java/cn/bunny/vo/system/login/LoginVo.java similarity index 96% rename from model/src/main/java/cn/bunny/vo/system/login/LoginVo.java rename to dao/src/main/java/cn/bunny/vo/system/login/LoginVo.java index 9bda0ae..087e7de 100644 --- a/model/src/main/java/cn/bunny/vo/system/login/LoginVo.java +++ b/dao/src/main/java/cn/bunny/vo/system/login/LoginVo.java @@ -1,6 +1,6 @@ package cn.bunny.vo.system.login; -import cn.bunny.result.constant.LocalDateTimeConstant; +import cn.bunny.pojo.result.constant.LocalDateTimeConstant; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; diff --git a/model/src/main/java/cn/bunny/vo/system/login/ValidateCodeVo.java b/dao/src/main/java/cn/bunny/vo/system/login/ValidateCodeVo.java similarity index 100% rename from model/src/main/java/cn/bunny/vo/system/login/ValidateCodeVo.java rename to dao/src/main/java/cn/bunny/vo/system/login/ValidateCodeVo.java diff --git a/model/src/main/java/cn/bunny/vo/system/user/UserInfoVo.java b/dao/src/main/java/cn/bunny/vo/system/user/UserInfoVo.java similarity index 96% rename from model/src/main/java/cn/bunny/vo/system/user/UserInfoVo.java rename to dao/src/main/java/cn/bunny/vo/system/user/UserInfoVo.java index fa60a87..78e954d 100644 --- a/model/src/main/java/cn/bunny/vo/system/user/UserInfoVo.java +++ b/dao/src/main/java/cn/bunny/vo/system/user/UserInfoVo.java @@ -1,6 +1,6 @@ package cn.bunny.vo.system.user; -import cn.bunny.result.constant.LocalDateTimeConstant; +import cn.bunny.pojo.result.constant.LocalDateTimeConstant; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; diff --git a/model/src/main/java/cn/bunny/vo/system/user/UserIntegralRecordVo.java b/dao/src/main/java/cn/bunny/vo/system/user/UserIntegralRecordVo.java similarity index 100% rename from model/src/main/java/cn/bunny/vo/system/user/UserIntegralRecordVo.java rename to dao/src/main/java/cn/bunny/vo/system/user/UserIntegralRecordVo.java diff --git a/model/src/main/java/cn/bunny/vo/system/user/UserMessageCountVo.java b/dao/src/main/java/cn/bunny/vo/system/user/UserMessageCountVo.java similarity index 100% rename from model/src/main/java/cn/bunny/vo/system/user/UserMessageCountVo.java rename to dao/src/main/java/cn/bunny/vo/system/user/UserMessageCountVo.java diff --git a/model/src/main/java/cn/bunny/vo/system/user/UserMessageVo.java b/dao/src/main/java/cn/bunny/vo/system/user/UserMessageVo.java similarity index 100% rename from model/src/main/java/cn/bunny/vo/system/user/UserMessageVo.java rename to dao/src/main/java/cn/bunny/vo/system/user/UserMessageVo.java diff --git a/module/module-mail/src/main/java/cn/bunny/module/mail/utils/MailSendCheckUtil.java b/module/module-mail/src/main/java/cn/bunny/module/mail/utils/MailSendCheckUtil.java index 6829253..dab0ff1 100644 --- a/module/module-mail/src/main/java/cn/bunny/module/mail/utils/MailSendCheckUtil.java +++ b/module/module-mail/src/main/java/cn/bunny/module/mail/utils/MailSendCheckUtil.java @@ -2,7 +2,7 @@ package cn.bunny.module.mail.utils; import cn.bunny.common.service.utils.EmptyUtil; import cn.bunny.entity.system.email.EmailSend; -import cn.bunny.result.constant.MailMessageConstant; +import cn.bunny.pojo.result.constant.MailMessageConstant; public class MailSendCheckUtil { /** diff --git a/module/module-minio/src/main/java/cn/bunny/module/minio/utils/MinioUtil.java b/module/module-minio/src/main/java/cn/bunny/module/minio/utils/MinioUtil.java index 8fc332d..cec93ea 100644 --- a/module/module-minio/src/main/java/cn/bunny/module/minio/utils/MinioUtil.java +++ b/module/module-minio/src/main/java/cn/bunny/module/minio/utils/MinioUtil.java @@ -1,7 +1,7 @@ package cn.bunny.module.minio.utils; -import cn.bunny.result.constant.FileMessageConstant; import cn.bunny.common.service.exception.BunnyException; +import cn.bunny.pojo.result.constant.FileMessageConstant; import io.minio.*; import io.minio.messages.*; import lombok.extern.slf4j.Slf4j; diff --git a/module/pom.xml b/module/pom.xml index 3a479ab..4ea3077 100644 --- a/module/pom.xml +++ b/module/pom.xml @@ -17,6 +17,7 @@ module-mail module-rabbitMQ module-websocket + spring-security module-task diff --git a/module/spring-security/src/main/java/cn/bunny/security/filter/TokenAuthenticationFilter.java b/module/spring-security/src/main/java/cn/bunny/security/filter/TokenAuthenticationFilter.java index bea057b..cb10849 100644 --- a/module/spring-security/src/main/java/cn/bunny/security/filter/TokenAuthenticationFilter.java +++ b/module/spring-security/src/main/java/cn/bunny/security/filter/TokenAuthenticationFilter.java @@ -4,9 +4,9 @@ import cn.bunny.common.service.context.BaseContext; import cn.bunny.common.service.exception.BunnyException; import cn.bunny.common.service.utils.JwtHelper; import cn.bunny.common.service.utils.ResponseUtil; -import cn.bunny.result.Result; -import cn.bunny.result.ResultCodeEnum; -import cn.bunny.result.constant.RedisUserConstant; +import cn.bunny.pojo.result.Result; +import cn.bunny.pojo.result.ResultCodeEnum; +import cn.bunny.pojo.result.constant.RedisUserConstant; import cn.bunny.vo.system.login.LoginVo; import com.alibaba.fastjson2.JSON; import jakarta.servlet.FilterChain; diff --git a/module/spring-security/src/main/java/cn/bunny/security/filter/TokenLoginFilterService.java b/module/spring-security/src/main/java/cn/bunny/security/filter/TokenLoginFilterService.java index 9eadac3..47bcf59 100644 --- a/module/spring-security/src/main/java/cn/bunny/security/filter/TokenLoginFilterService.java +++ b/module/spring-security/src/main/java/cn/bunny/security/filter/TokenLoginFilterService.java @@ -3,9 +3,9 @@ package cn.bunny.security.filter; import cn.bunny.common.service.utils.ResponseUtil; import cn.bunny.dto.user.LoginDto; -import cn.bunny.result.Result; -import cn.bunny.result.ResultCodeEnum; -import cn.bunny.result.constant.RedisUserConstant; +import cn.bunny.pojo.result.Result; +import cn.bunny.pojo.result.ResultCodeEnum; +import cn.bunny.pojo.result.constant.RedisUserConstant; import cn.bunny.security.handelr.SecurityAuthenticationFailureHandler; import cn.bunny.security.handelr.SecurityAuthenticationSuccessHandler; import cn.bunny.security.service.CustomUserDetailsService; diff --git a/module/spring-security/src/main/java/cn/bunny/security/handelr/SecurityAccessDeniedHandler.java b/module/spring-security/src/main/java/cn/bunny/security/handelr/SecurityAccessDeniedHandler.java index b14a8d7..6dc7ea8 100644 --- a/module/spring-security/src/main/java/cn/bunny/security/handelr/SecurityAccessDeniedHandler.java +++ b/module/spring-security/src/main/java/cn/bunny/security/handelr/SecurityAccessDeniedHandler.java @@ -1,7 +1,7 @@ package cn.bunny.security.handelr; -import cn.bunny.result.Result; -import cn.bunny.result.ResultCodeEnum; +import cn.bunny.pojo.result.Result; +import cn.bunny.pojo.result.ResultCodeEnum; import com.alibaba.fastjson2.JSON; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; diff --git a/module/spring-security/src/main/java/cn/bunny/security/handelr/SecurityAuthenticationEntryPoint.java b/module/spring-security/src/main/java/cn/bunny/security/handelr/SecurityAuthenticationEntryPoint.java index cd82558..39801f9 100644 --- a/module/spring-security/src/main/java/cn/bunny/security/handelr/SecurityAuthenticationEntryPoint.java +++ b/module/spring-security/src/main/java/cn/bunny/security/handelr/SecurityAuthenticationEntryPoint.java @@ -1,8 +1,8 @@ package cn.bunny.security.handelr; import cn.bunny.common.service.utils.ResponseUtil; -import cn.bunny.result.Result; -import cn.bunny.result.ResultCodeEnum; +import cn.bunny.pojo.result.Result; +import cn.bunny.pojo.result.ResultCodeEnum; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; diff --git a/module/spring-security/src/main/java/cn/bunny/security/handelr/SecurityAuthenticationFailureHandler.java b/module/spring-security/src/main/java/cn/bunny/security/handelr/SecurityAuthenticationFailureHandler.java index e48ad49..e6eba91 100644 --- a/module/spring-security/src/main/java/cn/bunny/security/handelr/SecurityAuthenticationFailureHandler.java +++ b/module/spring-security/src/main/java/cn/bunny/security/handelr/SecurityAuthenticationFailureHandler.java @@ -1,6 +1,6 @@ package cn.bunny.security.handelr; -import cn.bunny.result.Result; +import cn.bunny.pojo.result.Result; import com.alibaba.fastjson2.JSON; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; diff --git a/module/spring-security/src/main/java/cn/bunny/security/handelr/SecurityAuthenticationSuccessHandler.java b/module/spring-security/src/main/java/cn/bunny/security/handelr/SecurityAuthenticationSuccessHandler.java index e5bd0fd..fb6605e 100644 --- a/module/spring-security/src/main/java/cn/bunny/security/handelr/SecurityAuthenticationSuccessHandler.java +++ b/module/spring-security/src/main/java/cn/bunny/security/handelr/SecurityAuthenticationSuccessHandler.java @@ -1,6 +1,6 @@ package cn.bunny.security.handelr; -import cn.bunny.result.Result; +import cn.bunny.pojo.result.Result; import com.alibaba.fastjson2.JSON; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; diff --git a/pom.xml b/pom.xml index 4325dff..e897960 100644 --- a/pom.xml +++ b/pom.xml @@ -17,7 +17,7 @@ common - model + dao service module diff --git a/service/src/main/java/cn/bunny/service/aop/annotation/AutoFill.java b/service/src/main/java/cn/bunny/service/aop/annotation/AutoFill.java index 8c26d32..cf2b292 100644 --- a/service/src/main/java/cn/bunny/service/aop/annotation/AutoFill.java +++ b/service/src/main/java/cn/bunny/service/aop/annotation/AutoFill.java @@ -1,6 +1,6 @@ package cn.bunny.service.aop.annotation; -import cn.bunny.enums.OperationType; +import cn.bunny.pojo.enums.OperationType; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/service/src/main/java/cn/bunny/service/controller/LoginController.java b/service/src/main/java/cn/bunny/service/controller/LoginController.java index eeb495f..6d4aa81 100644 --- a/service/src/main/java/cn/bunny/service/controller/LoginController.java +++ b/service/src/main/java/cn/bunny/service/controller/LoginController.java @@ -2,7 +2,7 @@ package cn.bunny.service.controller; import cn.bunny.dto.user.LoginDto; -import cn.bunny.result.Result; +import cn.bunny.pojo.result.Result; import cn.bunny.service.service.UserService; import cn.bunny.vo.system.login.LoginVo; import io.swagger.v3.oas.annotations.Operation; diff --git a/service/src/main/java/cn/bunny/service/security/CustomAuthorizationManagerServiceImpl.java b/service/src/main/java/cn/bunny/service/security/CustomAuthorizationManagerServiceImpl.java index 6c3fccb..c26adbd 100644 --- a/service/src/main/java/cn/bunny/service/security/CustomAuthorizationManagerServiceImpl.java +++ b/service/src/main/java/cn/bunny/service/security/CustomAuthorizationManagerServiceImpl.java @@ -1,13 +1,20 @@ package cn.bunny.service.security; +import cn.bunny.common.service.utils.JwtHelper; +import cn.bunny.entity.system.admin.AdminPower; import cn.bunny.security.service.CustomAuthorizationManagerService; +import cn.bunny.service.mapper.AdminPowerMapper; +import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.AccessDeniedException; import org.springframework.security.authorization.AuthorizationDecision; import org.springframework.security.core.Authentication; +import org.springframework.security.core.GrantedAuthority; import org.springframework.security.web.access.intercept.RequestAuthorizationContext; -import org.springframework.stereotype.Service; +import org.springframework.stereotype.Component; +import java.util.List; import java.util.function.Supplier; @@ -15,22 +22,51 @@ import java.util.function.Supplier; * 自定义权限判断 * 判断用户有哪些权限 */ -@Service +@Component @Slf4j public class CustomAuthorizationManagerServiceImpl implements CustomAuthorizationManagerService { + @Autowired + private AdminPowerMapper adminPowerMapper; + @Override public void verify(Supplier authentication, RequestAuthorizationContext requestAuthorizationContext) { CustomAuthorizationManagerService.super.verify(authentication, requestAuthorizationContext); } @Override - public AuthorizationDecision check(Supplier authentication, RequestAuthorizationContext object) { - String token = object.getRequest().getHeader("token"); - + public AuthorizationDecision check(Supplier authentication, RequestAuthorizationContext context) { + // 用户的token和用户id、请求Url + HttpServletRequest request = context.getRequest(); + String token = request.getHeader("token"); + Long userId = JwtHelper.getUserId(token);// 用户id + String requestURI = request.getRequestURI();// 请求地址 + String method = request.getMethod();// 请求方式 + List roleCodeList = authentication.get().getAuthorities().stream().map(GrantedAuthority::getAuthority).toList();// 角色代码列表 if (token == null) { throw new AccessDeniedException(""); } - return new AuthorizationDecision(true); + return new AuthorizationDecision(hasRoleList(requestURI, method, userId)); + } + + /** + * 查询用户所属的角色信息 + * + * @param requestURI 请求url地址 + * @param method 请求方式 + * @param userId 用户id + */ + private Boolean hasRoleList(String requestURI, String method, Long userId) { + // 查询用户权限 + List powerList = adminPowerMapper.queryByUserIdWithPower(userId); + // 如果查询到当前地址符合这个地址 + for (AdminPower adminPower : powerList) { + String description = adminPower.getDescription(); + if (description.equals(requestURI) || requestURI.matches(description)) { + return true; + } + } + + return false; } } diff --git a/service/src/main/java/cn/bunny/service/security/CustomUserDetailsService.java b/service/src/main/java/cn/bunny/service/security/CustomUserDetailsService.java index b3d7237..ebc6310 100644 --- a/service/src/main/java/cn/bunny/service/security/CustomUserDetailsService.java +++ b/service/src/main/java/cn/bunny/service/security/CustomUserDetailsService.java @@ -10,14 +10,14 @@ import cn.bunny.service.service.UserService; import cn.bunny.vo.system.login.LoginVo; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Configuration; import org.springframework.security.core.authority.AuthorityUtils; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UsernameNotFoundException; +import org.springframework.stereotype.Component; import java.util.List; -@Configuration +@Component public class CustomUserDetailsService implements cn.bunny.security.service.CustomUserDetailsService { @Autowired private UserMapper userMapper; @@ -51,4 +51,4 @@ public class CustomUserDetailsService implements cn.bunny.security.service.Custo public LoginVo login(LoginDto loginDto) { return userService.login(loginDto); } -} \ No newline at end of file +} diff --git a/service/src/main/java/cn/bunny/service/service/impl/UserServiceImpl.java b/service/src/main/java/cn/bunny/service/service/impl/UserServiceImpl.java index e0cf57c..8690663 100644 --- a/service/src/main/java/cn/bunny/service/service/impl/UserServiceImpl.java +++ b/service/src/main/java/cn/bunny/service/service/impl/UserServiceImpl.java @@ -10,9 +10,9 @@ import cn.bunny.entity.system.email.EmailSendInit; import cn.bunny.entity.system.email.EmailUsers; import cn.bunny.entity.system.user.User; import cn.bunny.module.mail.utils.MailSenderUtil; -import cn.bunny.result.constant.ExceptionConstant; -import cn.bunny.result.constant.MailMessageConstant; -import cn.bunny.result.constant.RedisUserConstant; +import cn.bunny.pojo.result.constant.ExceptionConstant; +import cn.bunny.pojo.result.constant.MailMessageConstant; +import cn.bunny.pojo.result.constant.RedisUserConstant; import cn.bunny.service.mapper.AdminPowerMapper; import cn.bunny.service.mapper.AdminRoleMapper; import cn.bunny.service.mapper.EmailUsersMapper;