refactor: 项目结构优化

This commit is contained in:
haoxr
2022-12-18 12:50:44 +08:00
parent 0e8e56a24a
commit e8affeca51
20 changed files with 36 additions and 33 deletions

View File

@@ -1,4 +1,4 @@
package com.youlai.system.enums; package com.youlai.system.common.enums;
import com.youlai.system.common.base.IBaseEnum; import com.youlai.system.common.base.IBaseEnum;
import lombok.Getter; import lombok.Getter;

View File

@@ -1,4 +1,4 @@
package com.youlai.system.enums; package com.youlai.system.common.enums;
import com.youlai.system.common.base.IBaseEnum; import com.youlai.system.common.base.IBaseEnum;
import lombok.Getter; import lombok.Getter;

View File

@@ -1,4 +1,4 @@
package com.youlai.system.enums; package com.youlai.system.common.enums;
import com.baomidou.mybatisplus.annotation.EnumValue; import com.baomidou.mybatisplus.annotation.EnumValue;
import com.youlai.system.common.base.IBaseEnum; import com.youlai.system.common.base.IBaseEnum;

View File

@@ -1,4 +1,4 @@
package com.youlai.system.enums; package com.youlai.system.common.enums;
import com.youlai.system.common.base.IBaseEnum; import com.youlai.system.common.base.IBaseEnum;
import lombok.Getter; import lombok.Getter;

View File

@@ -28,12 +28,11 @@ import java.util.stream.Collectors;
/** /**
* 全局系统异常处理 * 全局系统异常处理
*
* 调整异常处理的HTTP状态码丰富异常处理类型 * 调整异常处理的HTTP状态码丰富异常处理类型
* *
* @author hxrui
* @author Gadfly * @author Gadfly
* @date 2020-02-25 13:54 * @date 2020-02-25 13:54
* <p>
**/ **/
@RestControllerAdvice @RestControllerAdvice
@Slf4j @Slf4j
@@ -166,12 +165,10 @@ public class GlobalExceptionHandler {
} }
@ResponseStatus(HttpStatus.BAD_REQUEST) @ResponseStatus(HttpStatus.BAD_REQUEST)
@ExceptionHandler(BusinessException.class) @ExceptionHandler(BusinessException.class)
public <T> Result<T> handleBizException(BusinessException e) { public <T> Result<T> handleBizException(BusinessException e) {
log.error("业务异常,异常原因:{}", e.getMessage(), e); log.error("biz exception,{}", e.getMessage());
if (e.getResultCode() != null) { if (e.getResultCode() != null) {
return Result.failed(e.getResultCode()); return Result.failed(e.getResultCode());
} }
@@ -181,6 +178,7 @@ public class GlobalExceptionHandler {
@ResponseStatus(HttpStatus.BAD_REQUEST) @ResponseStatus(HttpStatus.BAD_REQUEST)
@ExceptionHandler(Exception.class) @ExceptionHandler(Exception.class)
public <T> Result<T> handleException(Exception e) { public <T> Result<T> handleException(Exception e) {
log.error("unknown exception, {}", e.getMessage());
return Result.failed(e.getLocalizedMessage()); return Result.failed(e.getLocalizedMessage());
} }

View File

@@ -1,4 +1,4 @@
package com.youlai.system.util; package com.youlai.system.common.util;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.youlai.system.common.result.Result; import com.youlai.system.common.result.Result;
@@ -8,7 +8,6 @@ import org.springframework.http.MediaType;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter;
/** /**
* response 响应工具类 * response 响应工具类

View File

@@ -3,7 +3,7 @@ package com.youlai.system.config;
import com.youlai.system.security.filter.JwtAuthenticationFilter; import com.youlai.system.security.filter.JwtAuthenticationFilter;
import com.youlai.system.security.exception.MyAccessDeniedHandler; import com.youlai.system.security.exception.MyAccessDeniedHandler;
import com.youlai.system.security.exception.MyAuthenticationEntryPoint; import com.youlai.system.security.exception.MyAuthenticationEntryPoint;
import com.youlai.system.security.jwt.JwtTokenManager; import com.youlai.system.security.JwtTokenManager;
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;

View File

@@ -22,7 +22,7 @@ import org.mapstruct.Mappings;
public interface UserConverter { public interface UserConverter {
@Mappings({ @Mappings({
@Mapping(target = "genderLabel", expression = "java(com.youlai.system.common.base.IBaseEnum.getLabelByValue(po.getGender(), com.youlai.system.enums.GenderEnum.class))") @Mapping(target = "genderLabel", expression = "java(com.youlai.system.common.base.IBaseEnum.getLabelByValue(po.getGender(), com.youlai.system.common.enums.GenderEnum.class))")
}) })
UserVO po2Vo(UserBO po); UserVO po2Vo(UserBO po);

View File

@@ -6,8 +6,8 @@ import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.extension.plugins.handler.DataPermissionHandler; import com.baomidou.mybatisplus.extension.plugins.handler.DataPermissionHandler;
import com.youlai.system.common.annotation.DataPermission; import com.youlai.system.common.annotation.DataPermission;
import com.youlai.system.common.base.IBaseEnum; import com.youlai.system.common.base.IBaseEnum;
import com.youlai.system.enums.DataScopeEnum; import com.youlai.system.common.enums.DataScopeEnum;
import com.youlai.system.util.SecurityUtils; import com.youlai.system.security.util.SecurityUtils;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.sf.jsqlparser.expression.Expression; import net.sf.jsqlparser.expression.Expression;
@@ -55,7 +55,7 @@ public class MyDataPermissionHandler implements DataPermissionHandler {
public static Expression dataScopeFilter(String deptAlias, String deptIdColumnName, String userAlias, String userIdColumnName, Expression where) { public static Expression dataScopeFilter(String deptAlias, String deptIdColumnName, String userAlias, String userIdColumnName, Expression where) {
String deptColumnName = StrUtil.isNotBlank(deptAlias) ? (deptAlias +StringPool.DOT+ deptIdColumnName) : deptIdColumnName; String deptColumnName = StrUtil.isNotBlank(deptAlias) ? (deptAlias + StringPool.DOT + deptIdColumnName) : deptIdColumnName;
String userColumnName = StrUtil.isNotBlank(userAlias) ? (userAlias + StringPool.DOT + userIdColumnName) : userIdColumnName; String userColumnName = StrUtil.isNotBlank(userAlias) ? (userAlias + StringPool.DOT + userIdColumnName) : userIdColumnName;
// 获取当前用户的数据权限 // 获取当前用户的数据权限
@@ -70,11 +70,11 @@ public class MyDataPermissionHandler implements DataPermissionHandler {
return where; return where;
case DEPT: case DEPT:
deptId = SecurityUtils.getDeptId(); deptId = SecurityUtils.getDeptId();
appendSqlStr = deptColumnName + StringPool.EQUALS+ deptId; appendSqlStr = deptColumnName + StringPool.EQUALS + deptId;
break; break;
case SELF: case SELF:
userId = SecurityUtils.getUserId(); userId = SecurityUtils.getUserId();
appendSqlStr = userColumnName + StringPool.EQUALS + userId; appendSqlStr = userColumnName + StringPool.EQUALS + userId;
break; break;
// 默认部门及子部门数据权限 // 默认部门及子部门数据权限
default: default:
@@ -87,9 +87,9 @@ public class MyDataPermissionHandler implements DataPermissionHandler {
return where; return where;
} }
Expression appendExpression =CCJSqlParserUtil.parseCondExpression(appendSqlStr); Expression appendExpression = CCJSqlParserUtil.parseCondExpression(appendSqlStr);
if(where==null){ if (where == null) {
return appendExpression; return appendExpression;
} }

View File

@@ -2,7 +2,7 @@ package com.youlai.system.pojo.bo;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.youlai.system.enums.MenuTypeEnum; import com.youlai.system.common.enums.MenuTypeEnum;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;

View File

@@ -1,7 +1,7 @@
package com.youlai.system.pojo.vo.menu; package com.youlai.system.pojo.vo.menu;
import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude;
import com.youlai.system.enums.MenuTypeEnum; import com.youlai.system.common.enums.MenuTypeEnum;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;

View File

@@ -1,7 +1,7 @@
package com.youlai.system.security.exception; package com.youlai.system.security.exception;
import com.youlai.system.common.result.ResultCode; import com.youlai.system.common.result.ResultCode;
import com.youlai.system.util.ResponseUtils; import com.youlai.system.common.util.ResponseUtils;
import org.springframework.security.access.AccessDeniedException; import org.springframework.security.access.AccessDeniedException;
import org.springframework.security.web.access.AccessDeniedHandler; import org.springframework.security.web.access.AccessDeniedHandler;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;

View File

@@ -1,7 +1,7 @@
package com.youlai.system.security.exception; package com.youlai.system.security.exception;
import com.youlai.system.common.result.ResultCode; import com.youlai.system.common.result.ResultCode;
import com.youlai.system.util.ResponseUtils; import com.youlai.system.common.util.ResponseUtils;
import org.springframework.security.core.AuthenticationException; import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.AuthenticationEntryPoint; import org.springframework.security.web.AuthenticationEntryPoint;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;

View File

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

View File

@@ -21,6 +21,12 @@ import java.io.InputStream;
import java.time.LocalDateTime; import java.time.LocalDateTime;
/**
* MinIO 文件实现类
*
* @author haoxr
* @date 2022/12/17
*/
@Component @Component
@ConfigurationProperties(prefix = "minio") @ConfigurationProperties(prefix = "minio")
@Slf4j @Slf4j

View File

@@ -7,7 +7,7 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.youlai.system.common.constant.SystemConstants; import com.youlai.system.common.constant.SystemConstants;
import com.youlai.system.enums.StatusEnum; import com.youlai.system.common.enums.StatusEnum;
import com.youlai.system.pojo.Option; import com.youlai.system.pojo.Option;
import com.youlai.system.converter.DeptConverter; import com.youlai.system.converter.DeptConverter;
import com.youlai.system.mapper.SysDeptMapper; import com.youlai.system.mapper.SysDeptMapper;

View File

@@ -7,8 +7,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.youlai.system.common.constant.SystemConstants; import com.youlai.system.common.constant.SystemConstants;
import com.youlai.system.enums.MenuTypeEnum; import com.youlai.system.common.enums.MenuTypeEnum;
import com.youlai.system.enums.StatusEnum; import com.youlai.system.common.enums.StatusEnum;
import com.youlai.system.pojo.Option; import com.youlai.system.pojo.Option;
import com.youlai.system.converter.MenuConverter; import com.youlai.system.converter.MenuConverter;
import com.youlai.system.mapper.SysMenuMapper; import com.youlai.system.mapper.SysMenuMapper;

View File

@@ -20,7 +20,7 @@ import com.youlai.system.pojo.vo.role.RolePageVO;
import com.youlai.system.service.SysRoleMenuService; import com.youlai.system.service.SysRoleMenuService;
import com.youlai.system.service.SysRoleService; import com.youlai.system.service.SysRoleService;
import com.youlai.system.service.SysUserRoleService; import com.youlai.system.service.SysUserRoleService;
import com.youlai.system.util.SecurityUtils; import com.youlai.system.security.util.SecurityUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.CacheEvict;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

View File

@@ -16,7 +16,7 @@ import com.google.common.collect.Lists;
import com.youlai.system.common.base.IBaseEnum; import com.youlai.system.common.base.IBaseEnum;
import com.youlai.system.common.constant.SystemConstants; import com.youlai.system.common.constant.SystemConstants;
import com.youlai.system.converter.UserConverter; import com.youlai.system.converter.UserConverter;
import com.youlai.system.enums.GenderEnum; import com.youlai.system.common.enums.GenderEnum;
import com.youlai.system.listener.UserImportListener; import com.youlai.system.listener.UserImportListener;
import com.youlai.system.mapper.SysUserMapper; import com.youlai.system.mapper.SysUserMapper;
import com.youlai.system.pojo.bo.UserBO; import com.youlai.system.pojo.bo.UserBO;
@@ -34,7 +34,7 @@ import com.youlai.system.service.SysMenuService;
import com.youlai.system.service.SysRoleService; import com.youlai.system.service.SysRoleService;
import com.youlai.system.service.SysUserRoleService; import com.youlai.system.service.SysUserRoleService;
import com.youlai.system.service.SysUserService; import com.youlai.system.service.SysUserService;
import com.youlai.system.util.SecurityUtils; import com.youlai.system.security.util.SecurityUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder;

View File

@@ -40,7 +40,7 @@
LEFT JOIN sys_role_menu t2 ON t1.id = t2.menu_id LEFT JOIN sys_role_menu t2 ON t1.id = t2.menu_id
LEFT JOIN sys_role t3 ON t2.role_id = t3.id LEFT JOIN sys_role t3 ON t2.role_id = t3.id
WHERE WHERE
t1.type != '${@com.youlai.system.enums.MenuTypeEnum@BUTTON.getValue()}' t1.type != '${@com.youlai.system.common.enums.MenuTypeEnum@BUTTON.getValue()}'
ORDER BY t1.sort asc ORDER BY t1.sort asc
</select> </select>
@@ -53,7 +53,7 @@
INNER JOIN sys_role_menu t2 INNER JOIN sys_role_menu t2
INNER JOIN sys_role t3 INNER JOIN sys_role t3
WHERE WHERE
t1.type = '${@com.youlai.system.enums.MenuTypeEnum@BUTTON.getValue()}' t1.type = '${@com.youlai.system.common.enums.MenuTypeEnum@BUTTON.getValue()}'
AND t1.perm IS NOT NULL AND t1.perm IS NOT NULL
<choose> <choose>
<when test="roles!=null and roles.size()>0"> <when test="roles!=null and roles.size()>0">