refactor: 项目目录结构优化

This commit is contained in:
haoxr
2023-11-07 23:34:22 +08:00
parent 791dc49a52
commit f93190e81d
27 changed files with 68 additions and 64 deletions

View File

@@ -4,7 +4,7 @@ import cn.hutool.core.util.StrUtil;
import com.youlai.system.common.annotation.PreventDuplicateSubmit; import com.youlai.system.common.annotation.PreventDuplicateSubmit;
import com.youlai.system.common.result.ResultCode; import com.youlai.system.common.result.ResultCode;
import com.youlai.system.common.exception.BusinessException; import com.youlai.system.common.exception.BusinessException;
import com.youlai.system.security.jwt.JwtTokenProvider; import com.youlai.system.core.security.jwt.JwtTokenProvider;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;

View File

@@ -1,7 +1,7 @@
package com.youlai.system.common.util; package com.youlai.system.common.util;
import com.alibaba.excel.EasyExcel; import com.alibaba.excel.EasyExcel;
import com.youlai.system.listener.easyexcel.MyAnalysisEventListener; import com.youlai.system.plugin.easyexcel.MyAnalysisEventListener;
import java.io.InputStream; import java.io.InputStream;

View File

@@ -4,7 +4,7 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.youlai.system.common.constant.SystemConstants; import com.youlai.system.common.constant.SystemConstants;
import com.youlai.system.security.model.SysUserDetails; import com.youlai.system.core.security.model.SysUserDetails;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.context.SecurityContextHolder;

View File

@@ -9,7 +9,7 @@ import com.youlai.system.common.result.PageResult;
import com.youlai.system.common.result.Result; import com.youlai.system.common.result.Result;
import com.youlai.system.common.util.ExcelUtils; import com.youlai.system.common.util.ExcelUtils;
import com.youlai.system.common.annotation.PreventDuplicateSubmit; import com.youlai.system.common.annotation.PreventDuplicateSubmit;
import com.youlai.system.listener.easyexcel.UserImportListener; import com.youlai.system.plugin.easyexcel.UserImportListener;
import com.youlai.system.model.vo.UserImportVO; import com.youlai.system.model.vo.UserImportVO;
import com.youlai.system.model.form.UserForm; import com.youlai.system.model.form.UserForm;
import com.youlai.system.model.entity.SysUser; import com.youlai.system.model.entity.SysUser;
@@ -19,7 +19,6 @@ import com.youlai.system.model.vo.UserInfoVO;
import com.youlai.system.model.vo.UserPageVO; import com.youlai.system.model.vo.UserPageVO;
import com.youlai.system.service.SysUserService; import com.youlai.system.service.SysUserService;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;

View File

@@ -1,12 +1,12 @@
package com.youlai.system.config; package com.youlai.system.core.mybatisplus.config;
import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.core.config.GlobalConfig; import com.baomidou.mybatisplus.core.config.GlobalConfig;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.DataPermissionInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.DataPermissionInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import com.youlai.system.handler.mybatisplus.MyDataPermissionHandler; import com.youlai.system.core.mybatisplus.handler.MyDataPermissionHandler;
import com.youlai.system.handler.mybatisplus.MyMetaObjectHandler; import com.youlai.system.core.mybatisplus.handler.MyMetaObjectHandler;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;

View File

@@ -1,4 +1,4 @@
package com.youlai.system.handler.mybatisplus; package com.youlai.system.core.mybatisplus.handler;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;

View File

@@ -1,4 +1,4 @@
package com.youlai.system.handler.mybatisplus; package com.youlai.system.core.mybatisplus.handler;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject; import org.apache.ibatis.reflection.MetaObject;

View File

@@ -1,11 +1,11 @@
package com.youlai.system.config; package com.youlai.system.core.security.config;
import com.youlai.system.common.constant.SecurityConstants; import com.youlai.system.common.constant.SecurityConstants;
import com.youlai.system.security.exception.MyAccessDeniedHandler; import com.youlai.system.core.security.exception.MyAccessDeniedHandler;
import com.youlai.system.security.exception.MyAuthenticationEntryPoint; import com.youlai.system.core.security.exception.MyAuthenticationEntryPoint;
import com.youlai.system.security.jwt.JwtTokenFilter; import com.youlai.system.core.security.jwt.JwtTokenFilter;
import com.youlai.system.filter.VerifyCodeFilter; import com.youlai.system.filter.VerifyCodeFilter;
import com.youlai.system.security.jwt.JwtTokenProvider; import com.youlai.system.core.security.jwt.JwtTokenProvider;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@@ -56,7 +56,7 @@ public class SecurityConfig {
; ;
// 验证码校验过滤器 // 验证码校验过滤器
http.addFilterBefore(new VerifyCodeFilter(),UsernamePasswordAuthenticationFilter.class); http.addFilterBefore(new VerifyCodeFilter(), UsernamePasswordAuthenticationFilter.class);
// JWT 校验过滤器 // JWT 校验过滤器
http.addFilterBefore(new JwtTokenFilter(jwtTokenProvider), UsernamePasswordAuthenticationFilter.class); http.addFilterBefore(new JwtTokenFilter(jwtTokenProvider), UsernamePasswordAuthenticationFilter.class);
@@ -75,7 +75,7 @@ public class SecurityConfig {
"/doc.html", "/doc.html",
"/swagger-resources/**", "/swagger-resources/**",
"/v3/api-docs/**", "/v3/api-docs/**",
"/swagger-ui/**", "/swagger-ui.html",
"/ws/**" "/ws/**"
); );
} }
@@ -89,11 +89,9 @@ public class SecurityConfig {
} }
/** /**
* 无法直接注入 AuthenticationManager * AuthenticationManager 手动注入
* *
* @param authenticationConfiguration * @param authenticationConfiguration 认证配置
* @return
* @throws Exception
*/ */
@Bean @Bean
public AuthenticationManager authenticationManager(AuthenticationConfiguration authenticationConfiguration) throws Exception { public AuthenticationManager authenticationManager(AuthenticationConfiguration authenticationConfiguration) throws Exception {

View File

@@ -1,4 +1,4 @@
package com.youlai.system.security.exception; package com.youlai.system.core.security.exception;
import com.youlai.system.common.result.ResultCode; import com.youlai.system.common.result.ResultCode;
import com.youlai.system.common.util.ResponseUtils; import com.youlai.system.common.util.ResponseUtils;

View File

@@ -1,4 +1,4 @@
package com.youlai.system.security.exception; package com.youlai.system.core.security.exception;
import com.youlai.system.common.result.ResultCode; import com.youlai.system.common.result.ResultCode;
import com.youlai.system.common.util.ResponseUtils; import com.youlai.system.common.util.ResponseUtils;

View File

@@ -1,4 +1,4 @@
package com.youlai.system.security.jwt; package com.youlai.system.core.security.jwt;
import com.youlai.system.common.result.ResultCode; import com.youlai.system.common.result.ResultCode;
import com.youlai.system.common.util.ResponseUtils; import com.youlai.system.common.util.ResponseUtils;

View File

@@ -1,8 +1,8 @@
package com.youlai.system.security.jwt; package com.youlai.system.core.security.jwt;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import com.youlai.system.common.constant.SecurityConstants; import com.youlai.system.common.constant.SecurityConstants;
import com.youlai.system.security.model.SysUserDetails; import com.youlai.system.core.security.model.SysUserDetails;
import io.jsonwebtoken.Claims; import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts; import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm; import io.jsonwebtoken.SignatureAlgorithm;

View File

@@ -1,4 +1,4 @@
package com.youlai.system.security.model; package com.youlai.system.core.security.model;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;

View File

@@ -1,4 +1,4 @@
package com.youlai.system.security.service; package com.youlai.system.core.security.service;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;

View File

@@ -1,7 +1,7 @@
package com.youlai.system.security.service; package com.youlai.system.core.security.service;
import com.youlai.system.core.security.model.SysUserDetails;
import com.youlai.system.model.dto.UserAuthInfo; import com.youlai.system.model.dto.UserAuthInfo;
import com.youlai.system.security.model.SysUserDetails;
import com.youlai.system.service.SysUserService; import com.youlai.system.service.SysUserService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetails;

View File

@@ -1,21 +0,0 @@
package com.youlai.system.handler.xxljob;
import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component;
import java.util.concurrent.TimeUnit;
@Component
public class XxlJobSampleHandler {
@XxlJob("demoJobHandler")
public void demoJobHandler() throws Exception {
XxlJobHelper.log("XXL-JOB, Hello World.");
for (int i = 0; i < 5; i++) {
XxlJobHelper.log("beat at:" + i);
TimeUnit.SECONDS.sleep(2);
}
}
}

View File

@@ -1,4 +1,4 @@
package com.youlai.system.listener.easyexcel; package com.youlai.system.plugin.easyexcel;
import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.excel.event.AnalysisEventListener;

View File

@@ -1,4 +1,4 @@
package com.youlai.system.listener.easyexcel; package com.youlai.system.plugin.easyexcel;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Validator; import cn.hutool.core.lang.Validator;

View File

@@ -1,4 +1,4 @@
package com.youlai.system.listener.rabbitmq; package com.youlai.system.plugin.rabbitmq;
/** /**
* @author haoxr * @author haoxr

View File

@@ -0,0 +1,9 @@
package com.youlai.system.plugin.websocket;
/**
* @author haoxr
* @since 2023/11/7
*/
public class StompPrincipal {
}

View File

@@ -1,6 +1,5 @@
package com.youlai.system.config; package com.youlai.system.plugin.websocket;
import com.youlai.system.interceptor.WebsocketChannelInterceptor;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;

View File

@@ -1,4 +1,4 @@
package com.youlai.system.listener.websocket; package com.youlai.system.plugin.websocket;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -9,6 +9,8 @@ import org.springframework.web.socket.messaging.SessionDisconnectEvent;
import org.springframework.web.socket.messaging.SessionSubscribeEvent; import org.springframework.web.socket.messaging.SessionSubscribeEvent;
import org.springframework.web.socket.messaging.SessionUnsubscribeEvent; import org.springframework.web.socket.messaging.SessionUnsubscribeEvent;
import java.security.Principal;
/** /**
* Websocket 客户端事件监听器 * Websocket 客户端事件监听器
* *
@@ -26,6 +28,8 @@ public class WebSocketEventListener {
*/ */
@EventListener @EventListener
public void handleWebSocketConnectListener(SessionConnectedEvent event) { public void handleWebSocketConnectListener(SessionConnectedEvent event) {
Principal user = event.getUser();
log.info("客户端连接成功"); log.info("客户端连接成功");
} }

View File

@@ -1,7 +1,7 @@
package com.youlai.system.interceptor; package com.youlai.system.plugin.websocket;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.youlai.system.security.jwt.JwtTokenProvider; import com.youlai.system.core.security.jwt.JwtTokenProvider;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.messaging.Message; import org.springframework.messaging.Message;
import org.springframework.messaging.MessageChannel; import org.springframework.messaging.MessageChannel;

View File

@@ -1,4 +1,4 @@
package com.youlai.system.config; package com.youlai.system.plugin.xxljob;
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor; import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;

View File

@@ -0,0 +1,19 @@
package com.youlai.system.plugin.xxljob;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
/**
* xxl-job 测试示例Bean模式
*/
@Component
@Slf4j
public class XxlJobSampleHandler {
@XxlJob("demoJobHandler")
public void demoJobHandler() {
log.info("XXL-JOB, Hello World.");
}
}

View File

@@ -7,7 +7,7 @@ import cn.hutool.core.util.StrUtil;
import com.youlai.system.common.constant.SecurityConstants; import com.youlai.system.common.constant.SecurityConstants;
import com.youlai.system.model.dto.CaptchaResult; import com.youlai.system.model.dto.CaptchaResult;
import com.youlai.system.model.dto.LoginResult; import com.youlai.system.model.dto.LoginResult;
import com.youlai.system.security.jwt.JwtTokenProvider; import com.youlai.system.core.security.jwt.JwtTokenProvider;
import com.youlai.system.service.AuthService; import com.youlai.system.service.AuthService;
import io.jsonwebtoken.Claims; import io.jsonwebtoken.Claims;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;

View File

@@ -293,7 +293,4 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
} }
} }