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/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/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/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/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/email/EmailSend.java b/dao/src/main/java/cn/bunny/pojo/email/EmailSend.java similarity index 93% rename from model/src/main/java/cn/bunny/entity/system/email/EmailSend.java rename to dao/src/main/java/cn/bunny/pojo/email/EmailSend.java index 1d2e779..247da00 100644 --- a/model/src/main/java/cn/bunny/entity/system/email/EmailSend.java +++ b/dao/src/main/java/cn/bunny/pojo/email/EmailSend.java @@ -1,4 +1,4 @@ -package cn.bunny.entity.system.email; +package cn.bunny.pojo.email; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/model/src/main/java/cn/bunny/entity/system/email/EmailSendInit.java b/dao/src/main/java/cn/bunny/pojo/email/EmailSendInit.java similarity index 90% rename from model/src/main/java/cn/bunny/entity/system/email/EmailSendInit.java rename to dao/src/main/java/cn/bunny/pojo/email/EmailSendInit.java index d2b3aa1..ca084e1 100644 --- a/model/src/main/java/cn/bunny/entity/system/email/EmailSendInit.java +++ b/dao/src/main/java/cn/bunny/pojo/email/EmailSendInit.java @@ -1,4 +1,4 @@ -package cn.bunny.entity.system.email; +package cn.bunny.pojo.email; import lombok.AllArgsConstructor; import lombok.Builder; 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/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/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/dto/article/LoadArticleListDto.java b/model/src/main/java/cn/bunny/dto/article/LoadArticleListDto.java deleted file mode 100644 index c3b5e3b..0000000 --- a/model/src/main/java/cn/bunny/dto/article/LoadArticleListDto.java +++ /dev/null @@ -1,22 +0,0 @@ -package cn.bunny.dto.article; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.Objects; - -@Data -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class LoadArticleListDto { - private Integer pBoardId; - private Integer boardId; - private Integer orderType = 1; - - public void getOrderType(Integer orderType) { - this.orderType = Objects.requireNonNullElse(orderType, 1); - } -} diff --git a/model/src/main/java/cn/bunny/dto/article/LoadUserArticleDto.java b/model/src/main/java/cn/bunny/dto/article/LoadUserArticleDto.java deleted file mode 100644 index a644f4f..0000000 --- a/model/src/main/java/cn/bunny/dto/article/LoadUserArticleDto.java +++ /dev/null @@ -1,15 +0,0 @@ -package cn.bunny.dto.article; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class LoadUserArticleDto { - private Long userId; - private Integer type; -} diff --git a/model/src/main/java/cn/bunny/dto/common/CommentPostDto.java b/model/src/main/java/cn/bunny/dto/common/CommentPostDto.java deleted file mode 100644 index 18a0ec4..0000000 --- a/model/src/main/java/cn/bunny/dto/common/CommentPostDto.java +++ /dev/null @@ -1,19 +0,0 @@ -package cn.bunny.dto.common; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.springframework.web.multipart.MultipartFile; - -@Data -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class CommentPostDto { - private String articleId; - private Integer pCommentId; - private String content; - private MultipartFile image; - private Long replyUserId; -} diff --git a/model/src/main/java/cn/bunny/dto/common/CommentQueryDto.java b/model/src/main/java/cn/bunny/dto/common/CommentQueryDto.java deleted file mode 100644 index 2ad59bc..0000000 --- a/model/src/main/java/cn/bunny/dto/common/CommentQueryDto.java +++ /dev/null @@ -1,16 +0,0 @@ -package cn.bunny.dto.common; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class CommentQueryDto { - private String articleId; - // time 时间查询、goods 点赞数量 - private String orderType; -} diff --git a/model/src/main/java/cn/bunny/dto/common/QueryTopTypeDto.java b/model/src/main/java/cn/bunny/dto/common/QueryTopTypeDto.java deleted file mode 100644 index 843a9de..0000000 --- a/model/src/main/java/cn/bunny/dto/common/QueryTopTypeDto.java +++ /dev/null @@ -1,15 +0,0 @@ -package cn.bunny.dto.common; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class QueryTopTypeDto { - private Long commentId; - private Integer topType; -} diff --git a/model/src/main/java/cn/bunny/dto/user/RegisterDto.java b/model/src/main/java/cn/bunny/dto/user/RegisterDto.java deleted file mode 100644 index 5a15b4d..0000000 --- a/model/src/main/java/cn/bunny/dto/user/RegisterDto.java +++ /dev/null @@ -1,17 +0,0 @@ -package cn.bunny.dto.user; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class RegisterDto { - private String email; - private String nickName; - private String password; - private String code; -} diff --git a/model/src/main/java/cn/bunny/dto/user/ResetPwdDto.java b/model/src/main/java/cn/bunny/dto/user/ResetPwdDto.java deleted file mode 100644 index 490dbbc..0000000 --- a/model/src/main/java/cn/bunny/dto/user/ResetPwdDto.java +++ /dev/null @@ -1,16 +0,0 @@ -package cn.bunny.dto.user; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class ResetPwdDto { - private String email; - private String password; - private String emailCode; -} diff --git a/model/src/main/java/cn/bunny/dto/user/UserInfoDto.java b/model/src/main/java/cn/bunny/dto/user/UserInfoDto.java deleted file mode 100644 index 4bbbc79..0000000 --- a/model/src/main/java/cn/bunny/dto/user/UserInfoDto.java +++ /dev/null @@ -1,22 +0,0 @@ -package cn.bunny.dto.user; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.springframework.web.multipart.MultipartFile; - -/** - * 修改用户信息 - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class UserInfoDto { - private String nickName; - private String password; - private MultipartFile avatar; - private Integer sex; - private String personDescription; -} diff --git a/model/src/main/java/cn/bunny/dto/user/UserIntegralRecordDto.java b/model/src/main/java/cn/bunny/dto/user/UserIntegralRecordDto.java deleted file mode 100644 index 8320e0a..0000000 --- a/model/src/main/java/cn/bunny/dto/user/UserIntegralRecordDto.java +++ /dev/null @@ -1,15 +0,0 @@ -package cn.bunny.dto.user; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class UserIntegralRecordDto { - private String startDate; - private String endDate; -} diff --git a/model/src/main/java/cn/bunny/dto/user/UserMessageDto.java b/model/src/main/java/cn/bunny/dto/user/UserMessageDto.java deleted file mode 100644 index 575bd73..0000000 --- a/model/src/main/java/cn/bunny/dto/user/UserMessageDto.java +++ /dev/null @@ -1,14 +0,0 @@ -package cn.bunny.dto.user; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class UserMessageDto { - private String type; -} diff --git a/model/src/main/java/cn/bunny/entity/system/article/Article.java b/model/src/main/java/cn/bunny/entity/system/article/Article.java deleted file mode 100644 index fe9f84d..0000000 --- a/model/src/main/java/cn/bunny/entity/system/article/Article.java +++ /dev/null @@ -1,83 +0,0 @@ -package cn.bunny.entity.system.article; - -import cn.bunny.entity.base.BaseEntity; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; -import lombok.experimental.Accessors; - -import java.io.Serial; -import java.io.Serializable; - -/** - *

- * 文章信息 - *

- * - * @author Bunny - * @since 2024-05-17 - */ -@Getter -@Setter -@Accessors(chain = true) -@ApiModel(value = "Article对象", description = "文章信息") -public class Article extends BaseEntity implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - - @ApiModelProperty("板块ID") - private Integer boardId; - - @ApiModelProperty("板块名称") - private String boardName; - - @ApiModelProperty("父级板块ID") - private Integer pBoardId; - - @ApiModelProperty("父板块名称") - private String pBoardName; - - @ApiModelProperty("用户ID") - private Long userId; - - @ApiModelProperty("昵称") - private String nickName; - - @ApiModelProperty("最后登录ip地址") - private String userIpAddress; - - @ApiModelProperty("标题") - private String title; - - @ApiModelProperty("封面") - private String cover; - - @ApiModelProperty("内容") - private String content; - - @ApiModelProperty("0:富文本编辑器 1:markdown编辑器") - private Byte editorType; - - @ApiModelProperty("摘要") - private String summary; - - @ApiModelProperty("阅读数量") - private Integer readCount; - - @ApiModelProperty("点赞数") - private Integer goodCount; - - @ApiModelProperty("评论数") - private Integer commentCount; - - @ApiModelProperty("0未置顶 1:已置顶") - private Byte topType; - - @ApiModelProperty("0:没有附件 1:有附件") - private Byte attachmentType; - - @ApiModelProperty("-1已删除 0:待审核 1:已审核 ") - private Byte status; -} diff --git a/model/src/main/java/cn/bunny/entity/system/article/ForumComment.java b/model/src/main/java/cn/bunny/entity/system/article/ForumComment.java deleted file mode 100644 index bb3b0ff..0000000 --- a/model/src/main/java/cn/bunny/entity/system/article/ForumComment.java +++ /dev/null @@ -1,67 +0,0 @@ -package cn.bunny.entity.system.article; - -import cn.bunny.entity.base.BaseEntity; -import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; -import lombok.experimental.Accessors; - -import java.io.Serial; -import java.io.Serializable; - -/** - *

- * 评论 - *

- * - * @author Bunny - * @since 2024-05-17 - */ -@Getter -@Setter -@Accessors(chain = true) -@TableName("forum_comment") -@ApiModel(value = "ForumComment对象", description = "评论") -public class ForumComment extends BaseEntity implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - - @ApiModelProperty("父级评论ID") - private Long pCommentId; - - @ApiModelProperty("文章ID") - private String articleId; - - @ApiModelProperty("回复内容") - private String content; - - @ApiModelProperty("图片") - private String imgPath; - - @ApiModelProperty("用户ID") - private Long userId; - - @ApiModelProperty("昵称") - private String nickName; - - @ApiModelProperty("用户ip地址") - private String userIpAddress; - - @ApiModelProperty("回复人ID") - private Long replyUserId; - - @ApiModelProperty("回复人昵称") - private String replyNickName; - - @ApiModelProperty("0:未置顶 1:置顶") - private Integer topType; - - @ApiModelProperty("good数量") - private Integer goodCount; - - @ApiModelProperty("0:待审核 1:已审核") - private Integer status; -} diff --git a/model/src/main/java/cn/bunny/entity/system/article/IntegralRecord.java b/model/src/main/java/cn/bunny/entity/system/article/IntegralRecord.java deleted file mode 100644 index b88f1e8..0000000 --- a/model/src/main/java/cn/bunny/entity/system/article/IntegralRecord.java +++ /dev/null @@ -1,40 +0,0 @@ -package cn.bunny.entity.system.article; - -import cn.bunny.entity.base.BaseEntity; -import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; -import lombok.experimental.Accessors; - -import java.io.Serial; -import java.io.Serializable; - -/** - *

- * 用户积分记录表 - *

- * - * @author Bunny - * @since 2024-05-17 - */ -@Getter -@Setter -@Accessors(chain = true) -@TableName("integral_record") -@ApiModel(value = "IntegralRecord对象", description = "用户积分记录表") -public class IntegralRecord extends BaseEntity implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - - @ApiModelProperty("用户ID") - private Long userId; - - @ApiModelProperty("操作类型") - private Byte operType; - - @ApiModelProperty("积分") - private Integer integral; -} diff --git a/model/src/main/java/cn/bunny/entity/system/article/LikeRecord.java b/model/src/main/java/cn/bunny/entity/system/article/LikeRecord.java deleted file mode 100644 index 8d27cb9..0000000 --- a/model/src/main/java/cn/bunny/entity/system/article/LikeRecord.java +++ /dev/null @@ -1,43 +0,0 @@ -package cn.bunny.entity.system.article; - -import cn.bunny.entity.base.BaseEntity; -import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; -import lombok.experimental.Accessors; - -import java.io.Serial; -import java.io.Serializable; - -/** - *

- * 点赞记录 - *

- * - * @author Bunny - * @since 2024-05-17 - */ -@Getter -@Setter -@Accessors(chain = true) -@TableName("like_record") -@ApiModel(value = "LikeRecord对象", description = "点赞记录") -public class LikeRecord extends BaseEntity implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - - @ApiModelProperty("操作类型0:文章点赞 1:评论点赞") - private Byte opType; - - @ApiModelProperty("主体ID") - private String objectId; - - @ApiModelProperty("用户ID") - private Long userId; - - @ApiModelProperty("主体作者ID") - private Long authorUserId; -} diff --git a/model/src/main/java/cn/bunny/entity/system/board/ForumBoard.java b/model/src/main/java/cn/bunny/entity/system/board/ForumBoard.java deleted file mode 100644 index 0fad48c..0000000 --- a/model/src/main/java/cn/bunny/entity/system/board/ForumBoard.java +++ /dev/null @@ -1,49 +0,0 @@ -package cn.bunny.entity.system.board; - -import cn.bunny.entity.base.BaseEntity; -import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; -import lombok.experimental.Accessors; - -import java.io.Serial; -import java.io.Serializable; - -/** - *

- * 文章板块信息 - *

- * - * @author Bunny - * @since 2024-05-19 - */ -@Getter -@Setter -@Accessors(chain = true) -@TableName("forum_board") -@ApiModel(value = "ForumBoard对象", description = "文章板块信息") -public class ForumBoard extends BaseEntity implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - - @ApiModelProperty("父级板块ID") - private Long parentId; - - @ApiModelProperty("板块名") - private String boardName; - - @ApiModelProperty("封面") - private String cover; - - @ApiModelProperty("描述") - private String boardDesc; - - @ApiModelProperty("排序") - private Integer sort; - - @ApiModelProperty("0:只允许管理员发帖 1:任何人可以发帖") - private Boolean postType; -} diff --git a/model/src/main/java/cn/bunny/entity/system/file/Files.java b/model/src/main/java/cn/bunny/entity/system/file/Files.java deleted file mode 100644 index 2597bb2..0000000 --- a/model/src/main/java/cn/bunny/entity/system/file/Files.java +++ /dev/null @@ -1,50 +0,0 @@ -package cn.bunny.entity.system.file; - -import cn.bunny.entity.base.BaseEntity; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; -import lombok.experimental.Accessors; - -import java.io.Serial; -import java.io.Serializable; - -/** - *

- * 用于存储文件信息的数据表 - *

- * - * @author Bunny - * @since 2024-05-17 - */ -@Getter -@Setter -@Accessors(chain = true) -@ApiModel(value = "Files对象", description = "用于存储文件信息的数据表") -public class Files extends BaseEntity implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - - @ApiModelProperty("文章ID") - private Long articleId; - - @ApiModelProperty("文件的名称") - private String filename; - - @ApiModelProperty("文件在服务器上的存储路径") - private String filepath; - - @ApiModelProperty("文件的大小,以字节为单位") - private Long fileSize; - - @ApiModelProperty("文件的MIME类型") - private String fileType; - - @ApiModelProperty("创建用户") - private Long createUser; - - @ApiModelProperty("下载次数") - private Integer downloadCount; -} diff --git a/model/src/main/java/cn/bunny/entity/system/user/UserMessage.java b/model/src/main/java/cn/bunny/entity/system/user/UserMessage.java deleted file mode 100644 index faa6cdf..0000000 --- a/model/src/main/java/cn/bunny/entity/system/user/UserMessage.java +++ /dev/null @@ -1,58 +0,0 @@ -package cn.bunny.entity.system.user; - -import cn.bunny.entity.base.BaseEntity; -import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; -import lombok.experimental.Accessors; - -import java.io.Serial; -import java.io.Serializable; - -/** - *

- * 用户消息 - *

- * - * @author Bunny - * @since 2024-05-17 - */ -@Getter -@Setter -@Accessors(chain = true) -@TableName("user_message") -@ApiModel(value = "UserMessage对象", description = "用户消息") -public class UserMessage extends BaseEntity implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - - @ApiModelProperty("接收人用户ID") - private Long receivedUserId; - - @ApiModelProperty("文章ID") - private String articleId; - - @ApiModelProperty("文章标题") - private String articleTitle; - - @ApiModelProperty("评论ID") - private Integer commentId; - - @ApiModelProperty("发送人用户ID") - private Long sendUserId; - - @ApiModelProperty("发送人昵称") - private String sendNickName; - - @ApiModelProperty("sys:系统消息 reply:评论 likePost:文章点赞 likeComment:评论点赞 attachment:附件下载") - private String messageType; - - @ApiModelProperty("消息内容") - private String messageContent; - - @ApiModelProperty("1:未读 2:已读") - private Byte status; -} diff --git a/model/src/main/java/cn/bunny/vo/file/FileInfoVo.java b/model/src/main/java/cn/bunny/vo/file/FileInfoVo.java deleted file mode 100644 index 349ccb1..0000000 --- a/model/src/main/java/cn/bunny/vo/file/FileInfoVo.java +++ /dev/null @@ -1,32 +0,0 @@ -package cn.bunny.vo.file; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * 返回文件信息 - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class FileInfoVo { - private Long id; - // 文章Id - private Long articleId; - // 文件的名称 - private String filename; - // 文件在服务器上的存储路径 - private String filepath; - // 文件的大小,以字节为单位 - private Long fileSize; - // 文件大小 - private String size; - // 文件的MIME类型 - private String fileType; - // 上传人昵称 - private String uploadNickname; - private Integer downloadCount; -} diff --git a/model/src/main/java/cn/bunny/vo/system/article/ForumArticleVo.java b/model/src/main/java/cn/bunny/vo/system/article/ForumArticleVo.java deleted file mode 100644 index 6caaf01..0000000 --- a/model/src/main/java/cn/bunny/vo/system/article/ForumArticleVo.java +++ /dev/null @@ -1,70 +0,0 @@ -package cn.bunny.vo.system.article; - -import cn.bunny.vo.file.FileInfoVo; -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; -import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.List; - -@Data -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class ForumArticleVo { - // 文章ID - private Long id; - // 板块ID - private Integer boardId; - // 父级板块ID - private Integer pBoardId; - // 板块名称 - private String boardName; - // 父板块名称 - private String pBoardName; - // 用户ID - private String userId; - // 昵称 - private String nickName; - // 最后登录ip地址 - private String userIpAddress; - // 标题 - private String title; - // 封面 - private String cover; - // 内容 - private String content; - // 0:富文本编辑器 1:markdown编辑器 - private Byte editorType; - // 摘要 - private String summary; - // 发布时间 - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonSerialize(using = LocalDateTimeSerializer.class) - @JsonDeserialize(using = LocalDateTimeDeserializer.class) - private String createTime; - // 最后更新时间 - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonSerialize(using = LocalDateTimeSerializer.class) - @JsonDeserialize(using = LocalDateTimeDeserializer.class) - private String updateTime; - // 阅读数量 - private Integer readCount; - // 点赞数 - private Integer goodCount; - // 评论数 - private Integer commentCount; - // 0未置顶 1:已置顶 - private Byte topType; - // 0:没有附件 1:有附件 - private Byte attachmentType; - // -1已删除 0:待审核 1:已审核 - private Byte status; - private List fileInfo; -} diff --git a/model/src/main/java/cn/bunny/vo/system/board/ForumBoardVo.java b/model/src/main/java/cn/bunny/vo/system/board/ForumBoardVo.java deleted file mode 100644 index 66c79e0..0000000 --- a/model/src/main/java/cn/bunny/vo/system/board/ForumBoardVo.java +++ /dev/null @@ -1,29 +0,0 @@ -package cn.bunny.vo.system.board; - -import cn.bunny.tree.AbstractTreeNode; -import lombok.Data; - -import java.util.List; - -@Data -public class ForumBoardVo implements AbstractTreeNode { - private Long id; - // 父级板块ID - private Long parentId; - // 板块名 - private String boardName; - // 封面 - private String cover; - // 描述 - private String boardDesc; - // 排序 - private Integer sort; - // 0:只允许管理员发帖 1:任何人可以发帖 - private Boolean postType; - private List children; - - @Override - public void setChildren(List children) { - this.children = (List) children; - } -} diff --git a/model/src/main/java/cn/bunny/vo/system/comment/CommentVo.java b/model/src/main/java/cn/bunny/vo/system/comment/CommentVo.java deleted file mode 100644 index 46585af..0000000 --- a/model/src/main/java/cn/bunny/vo/system/comment/CommentVo.java +++ /dev/null @@ -1,53 +0,0 @@ -package cn.bunny.vo.system.comment; - -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; -import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.time.LocalDateTime; -import java.util.List; - -@Data -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class CommentVo { - // 评论ID - private Long id; - // 父级评论ID - private Integer pCommentId; - // 文章ID - private String articleId; - // 回复内容 - private String content; - // 图片 - private String imgPath; - // 用户ID - private Long userId; - // 昵称 - private String nickName; - // 用户ip地址 - private String userIpAddress; - // 回复人ID - private Long replyUserId; - // 回复人昵称 - private String replyNickName; - // 0:未置顶 1:置顶 - private Byte topType; - // 发布时间 - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonSerialize(using = LocalDateTimeSerializer.class) - @JsonDeserialize(using = LocalDateTimeDeserializer.class) - private LocalDateTime postTime; - // good数量 - private Integer goodCount; - // 0:待审核 1:已审核 - private Byte status; - private List children; -} diff --git a/model/src/main/java/cn/bunny/vo/system/user/UserIntegralRecordVo.java b/model/src/main/java/cn/bunny/vo/system/user/UserIntegralRecordVo.java deleted file mode 100644 index 9c33f60..0000000 --- a/model/src/main/java/cn/bunny/vo/system/user/UserIntegralRecordVo.java +++ /dev/null @@ -1,33 +0,0 @@ -package cn.bunny.vo.system.user; - -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; -import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.time.LocalDateTime; - -@Data -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class UserIntegralRecordVo { - // 记录ID - private Integer recordId; - // 用户ID - private String userId; - // 操作类型 - private Byte operType; - // 积分 - private Integer integral; - // 创建时间 - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonSerialize(using = LocalDateTimeSerializer.class) - @JsonDeserialize(using = LocalDateTimeDeserializer.class) - private LocalDateTime createTime; -} diff --git a/model/src/main/java/cn/bunny/vo/system/user/UserMessageCountVo.java b/model/src/main/java/cn/bunny/vo/system/user/UserMessageCountVo.java deleted file mode 100644 index f0baa0c..0000000 --- a/model/src/main/java/cn/bunny/vo/system/user/UserMessageCountVo.java +++ /dev/null @@ -1,19 +0,0 @@ -package cn.bunny.vo.system.user; - - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class UserMessageCountVo { - private Integer total; - private Integer sys; - private Integer reply; - private Integer likePost; - private Integer likeComment; -} diff --git a/model/src/main/java/cn/bunny/vo/system/user/UserMessageVo.java b/model/src/main/java/cn/bunny/vo/system/user/UserMessageVo.java deleted file mode 100644 index 44c5da9..0000000 --- a/model/src/main/java/cn/bunny/vo/system/user/UserMessageVo.java +++ /dev/null @@ -1,43 +0,0 @@ -package cn.bunny.vo.system.user; - -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; -import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.time.LocalDateTime; - -@Data -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class UserMessageVo { - // 自增ID - private Integer messageId; - // 接收人用户ID - private String receivedUserId; - // 文章ID - private String articleId; - // 文章标题 - private String articleTitle; - // 评论ID - private Integer commentId; - // 发送人用户ID - private String sendUserId; - // 发送人昵称 - private String sendNickName; - // sys:系统消息 reply:评论 likePost:文章点赞 likeComment:评论点赞 attachment:附件下载 - private String messageType; - // 消息内容 - private String messageContent; - // 创建时间 - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonSerialize(using = LocalDateTimeSerializer.class) - @JsonDeserialize(using = LocalDateTimeDeserializer.class) - private LocalDateTime createTime; -} 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..f386346 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 @@ -1,8 +1,8 @@ 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.email.EmailSend; +import cn.bunny.pojo.result.constant.MailMessageConstant; public class MailSendCheckUtil { /** diff --git a/module/module-mail/src/main/java/cn/bunny/module/mail/utils/MailSenderUtil.java b/module/module-mail/src/main/java/cn/bunny/module/mail/utils/MailSenderUtil.java index 0975c97..85ee281 100644 --- a/module/module-mail/src/main/java/cn/bunny/module/mail/utils/MailSenderUtil.java +++ b/module/module-mail/src/main/java/cn/bunny/module/mail/utils/MailSenderUtil.java @@ -1,7 +1,7 @@ package cn.bunny.module.mail.utils; -import cn.bunny.entity.system.email.EmailSend; -import cn.bunny.entity.system.email.EmailSendInit; +import cn.bunny.pojo.email.EmailSend; +import cn.bunny.pojo.email.EmailSendInit; import jakarta.mail.MessagingException; import jakarta.mail.internet.MimeMessage; import org.springframework.mail.SimpleMailMessage; 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..84d347d 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 @@ -5,14 +5,14 @@ import cn.bunny.common.service.utils.JwtHelper; import cn.bunny.dto.user.LoginDto; import cn.bunny.entity.system.admin.AdminPower; import cn.bunny.entity.system.admin.auth.AuthUserRole; -import cn.bunny.entity.system.email.EmailSend; -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.email.EmailSend; +import cn.bunny.pojo.email.EmailSendInit; +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;