refactor(platform):重构平台模块包结构- 将 shared 包下的文件移动到 platform 包下

- 更新相关类的包引用路径
- 修改 application.yml 中的包扫描路径
-重命名 CaptchaInfo 类为 CaptchaVO 并调整包路径
- 移动 BusinessException 和相关安全类到 core 包- 更新 Codegen 相关类包路径
- 删除无用的条件判断代码块
This commit is contained in:
Ray.Hao
2025-10-14 16:09:46 +08:00
parent f460d8a7c0
commit c43e6dfb54
122 changed files with 346 additions and 475 deletions

View File

@@ -133,7 +133,7 @@ protected-mode no
# #
# enable-protected-configs no # enable-protected-configs no
# enable-debug-command no # enable-debug-command no
# enable-module-command no # enable-business-command no
# Accept connections on the specified port, default is 6379 (IANA #815344). # Accept connections on the specified port, default is 6379 (IANA #815344).
# If port 0 is specified Redis will not listen on a TCP socket. # If port 0 is specified Redis will not listen on a TCP socket.
@@ -867,7 +867,7 @@ replica-priority 100
# Warning: since Redis is pretty fast, an outside user can try up to # Warning: since Redis is pretty fast, an outside user can try up to
# 1 million passwords per second against a modern box. This means that you # 1 million passwords per second against a modern box. This means that you
# should use very strong passwords, otherwise they will be very easy to break. # should use very strong passwords, otherwise they will be very easy to break.
# Note that because the password is really a shared secret between the client # Note that because the password is really a platform secret between the client
# and the server, and should not be memorized by any human, the password # and the server, and should not be memorized by any human, the password
# can be easily a long string from /dev/urandom or whatever, so by using a # can be easily a long string from /dev/urandom or whatever, so by using a
# long and unguessable password no brute force attack will be possible. # long and unguessable password no brute force attack will be possible.
@@ -964,7 +964,7 @@ replica-priority 100
# #
# user alice on +@all -DEBUG ~* >somepassword # user alice on +@all -DEBUG ~* >somepassword
# #
# This will allow "alice" to use all the commands with the exception of the # This will allow "alice" to use all the commands with the handler of the
# DEBUG command, since +@all added all the commands to the set of the commands # DEBUG command, since +@all added all the commands to the set of the commands
# alice can use, and later DEBUG was removed. However if we invert the order # alice can use, and later DEBUG was removed. However if we invert the order
# of two ACL rules the result will be different: # of two ACL rules the result will be different:
@@ -1066,7 +1066,7 @@ acllog-max-len 128
# create for administrative purposes. # create for administrative purposes.
# ------------------------------------------------------------------------ # ------------------------------------------------------------------------
# #
# It is possible to change the name of dangerous commands in a shared # It is possible to change the name of dangerous commands in a platform
# environment. For instance the CONFIG command may be renamed into something # environment. For instance the CONFIG command may be renamed into something
# hard to guess so that it will still be available for internal-use tools # hard to guess so that it will still be available for internal-use tools
# but not available for general clients. # but not available for general clients.
@@ -1095,7 +1095,7 @@ acllog-max-len 128
# an error 'max number of clients reached'. # an error 'max number of clients reached'.
# #
# IMPORTANT: When Redis Cluster is used, the max number of connections is also # IMPORTANT: When Redis Cluster is used, the max number of connections is also
# shared with the cluster bus: every node in the cluster will use two # platform with the cluster bus: every node in the cluster will use two
# connections, one incoming and another outgoing. It is important to size the # connections, one incoming and another outgoing. It is important to size the
# limit accordingly in case of very large clusters. # limit accordingly in case of very large clusters.
# #
@@ -1563,7 +1563,7 @@ aof-timestamp-enabled no
# #
# In this state Redis will only allow a handful of commands to be executed. # In this state Redis will only allow a handful of commands to be executed.
# For instance, SCRIPT KILL, FUNCTION KILL, SHUTDOWN NOSAVE and possibly some # For instance, SCRIPT KILL, FUNCTION KILL, SHUTDOWN NOSAVE and possibly some
# module specific 'allow-busy' commands. # business specific 'allow-busy' commands.
# #
# SCRIPT KILL and FUNCTION KILL will only be able to stop a script that did not # SCRIPT KILL and FUNCTION KILL will only be able to stop a script that did not
# yet call any write commands, so SHUTDOWN NOSAVE may be the only way to stop # yet call any write commands, so SHUTDOWN NOSAVE may be the only way to stop

View File

@@ -12,7 +12,7 @@
<parent> <parent>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId> <artifactId>spring-boot-starter-parent</artifactId>
<version>3.5.5</version> <!-- lookup parent from repository --> <version>3.5.6</version> <!-- lookup parent from repository -->
<relativePath/> <relativePath/>
</parent> </parent>

View File

@@ -1,13 +1,13 @@
package com.youlai.boot.auth.controller; package com.youlai.boot.auth.controller;
import com.youlai.boot.auth.model.CaptchaInfo; import com.youlai.boot.auth.model.vo.CaptchaVO;
import com.youlai.boot.auth.model.dto.WxMiniAppPhoneLoginDTO; import com.youlai.boot.auth.model.dto.WxMiniAppPhoneLoginDTO;
import com.youlai.boot.common.enums.LogModuleEnum; import com.youlai.boot.common.enums.LogModuleEnum;
import com.youlai.boot.common.result.Result; import com.youlai.boot.core.web.Result;
import com.youlai.boot.auth.service.AuthService; import com.youlai.boot.auth.service.AuthService;
import com.youlai.boot.auth.model.dto.WxMiniAppCodeLoginDTO; import com.youlai.boot.auth.model.dto.WxMiniAppCodeLoginDTO;
import com.youlai.boot.core.security.model.AuthenticationToken;
import com.youlai.boot.common.annotation.Log; import com.youlai.boot.common.annotation.Log;
import com.youlai.boot.security.model.AuthenticationToken;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
@@ -34,8 +34,8 @@ public class AuthController {
@Operation(summary = "获取验证码") @Operation(summary = "获取验证码")
@GetMapping("/captcha") @GetMapping("/captcha")
public Result<CaptchaInfo> getCaptcha() { public Result<CaptchaVO> getCaptcha() {
CaptchaInfo captcha = authService.getCaptcha(); CaptchaVO captcha = authService.getCaptcha();
return Result.success(captcha); return Result.success(captcha);
} }

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.auth.model; package com.youlai.boot.auth.model.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Builder; import lombok.Builder;
@@ -13,7 +13,7 @@ import lombok.Data;
@Schema(description = "验证码信息") @Schema(description = "验证码信息")
@Data @Data
@Builder @Builder
public class CaptchaInfo { public class CaptchaVO {
@Schema(description = "验证码缓存 Key") @Schema(description = "验证码缓存 Key")
private String captchaKey; private String captchaKey;

View File

@@ -1,8 +1,8 @@
package com.youlai.boot.auth.service; package com.youlai.boot.auth.service;
import com.youlai.boot.auth.model.CaptchaInfo; import com.youlai.boot.auth.model.vo.CaptchaVO;
import com.youlai.boot.auth.model.dto.WxMiniAppPhoneLoginDTO; import com.youlai.boot.auth.model.dto.WxMiniAppPhoneLoginDTO;
import com.youlai.boot.core.security.model.AuthenticationToken; import com.youlai.boot.security.model.AuthenticationToken;
import com.youlai.boot.auth.model.dto.WxMiniAppCodeLoginDTO; import com.youlai.boot.auth.model.dto.WxMiniAppCodeLoginDTO;
/** /**
@@ -32,7 +32,7 @@ public interface AuthService {
* *
* @return 验证码 * @return 验证码
*/ */
CaptchaInfo getCaptcha(); CaptchaVO getCaptcha();
/** /**
* 刷新令牌 * 刷新令牌

View File

@@ -6,21 +6,21 @@ import cn.hutool.captcha.generator.CodeGenerator;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.youlai.boot.auth.enums.CaptchaTypeEnum; import com.youlai.boot.auth.enums.CaptchaTypeEnum;
import com.youlai.boot.auth.model.CaptchaInfo; import com.youlai.boot.auth.model.vo.CaptchaVO;
import com.youlai.boot.auth.model.dto.WxMiniAppCodeLoginDTO; import com.youlai.boot.auth.model.dto.WxMiniAppCodeLoginDTO;
import com.youlai.boot.auth.model.dto.WxMiniAppPhoneLoginDTO; import com.youlai.boot.auth.model.dto.WxMiniAppPhoneLoginDTO;
import com.youlai.boot.auth.service.AuthService; import com.youlai.boot.auth.service.AuthService;
import com.youlai.boot.common.constant.RedisConstants; import com.youlai.boot.common.constant.RedisConstants;
import com.youlai.boot.common.constant.SecurityConstants; import com.youlai.boot.common.constant.SecurityConstants;
import com.youlai.boot.config.property.CaptchaProperties; import com.youlai.boot.config.property.CaptchaProperties;
import com.youlai.boot.core.security.extension.sms.SmsAuthenticationToken; import com.youlai.boot.security.model.AuthenticationToken;
import com.youlai.boot.core.security.extension.wx.WxMiniAppCodeAuthenticationToken; import com.youlai.boot.security.model.SmsAuthenticationToken;
import com.youlai.boot.core.security.extension.wx.WxMiniAppPhoneAuthenticationToken; import com.youlai.boot.security.model.WxMiniAppCodeAuthenticationToken;
import com.youlai.boot.core.security.model.AuthenticationToken; import com.youlai.boot.security.model.WxMiniAppPhoneAuthenticationToken;
import com.youlai.boot.core.security.token.TokenManager; import com.youlai.boot.security.token.TokenManager;
import com.youlai.boot.core.security.util.SecurityUtils; import com.youlai.boot.security.util.SecurityUtils;
import com.youlai.boot.shared.sms.enums.SmsTypeEnum; import com.youlai.boot.platform.sms.enums.SmsTypeEnum;
import com.youlai.boot.shared.sms.service.SmsService; import com.youlai.boot.platform.sms.service.SmsService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
@@ -168,7 +168,7 @@ public class AuthServiceImpl implements AuthService {
* @return 验证码 * @return 验证码
*/ */
@Override @Override
public CaptchaInfo getCaptcha() { public CaptchaVO getCaptcha() {
String captchaType = captchaProperties.getType(); String captchaType = captchaProperties.getType();
int width = captchaProperties.getWidth(); int width = captchaProperties.getWidth();
@@ -204,7 +204,7 @@ public class AuthServiceImpl implements AuthService {
TimeUnit.SECONDS TimeUnit.SECONDS
); );
return CaptchaInfo.builder() return CaptchaVO.builder()
.captchaKey(captchaKey) .captchaKey(captchaKey)
.captchaBase64(imageBase64Data) .captchaBase64(imageBase64Data)
.build(); .build();

View File

@@ -1,83 +0,0 @@
package com.youlai.boot.common.util;
import cn.hutool.json.JSONUtil;
import com.youlai.boot.common.result.Result;
import com.youlai.boot.common.result.ResultCode;
import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.charset.StandardCharsets;
/**
* 响应工具类
*
* @author Ray.Hao
* @since 2.0.0
*/
@Slf4j
public class ResponseUtils {
/**
* 异常消息返回(适用过滤器中处理异常响应)
*
* @param response HttpServletResponse
* @param resultCode 响应结果码
*/
public static void writeErrMsg(HttpServletResponse response, ResultCode resultCode) {
int status = getHttpStatus(resultCode);
response.setStatus(status);
response.setContentType(MediaType.APPLICATION_JSON_VALUE);
response.setCharacterEncoding(StandardCharsets.UTF_8.name());
try (PrintWriter writer = response.getWriter()) {
String jsonResponse = JSONUtil.toJsonStr(Result.failed(resultCode));
writer.print(jsonResponse);
writer.flush(); // 确保将响应内容写入到输出流
} catch (IOException e) {
log.error("响应异常处理失败", e);
}
}
/**
* 异常消息返回(适用过滤器中处理异常响应)
*
* @param response HttpServletResponse
* @param resultCode 响应结果码
*/
public static void writeErrMsg(HttpServletResponse response, ResultCode resultCode, String message) {
int status = getHttpStatus(resultCode);
response.setStatus(status);
response.setContentType(MediaType.APPLICATION_JSON_VALUE);
response.setCharacterEncoding(StandardCharsets.UTF_8.name());
try (PrintWriter writer = response.getWriter()) {
String jsonResponse = JSONUtil.toJsonStr(Result.failed(resultCode, message));
writer.print(jsonResponse);
writer.flush(); // 确保将响应内容写入到输出流
} catch (IOException e) {
log.error("响应异常处理失败", e);
}
}
/**
* 根据结果码获取HTTP状态码
*
* @param resultCode 结果码
* @return HTTP状态码
*/
private static int getHttpStatus(ResultCode resultCode) {
return switch (resultCode) {
case ACCESS_UNAUTHORIZED, ACCESS_TOKEN_INVALID, REFRESH_TOKEN_INVALID -> HttpStatus.UNAUTHORIZED.value();
default -> HttpStatus.BAD_REQUEST.value();
};
}
}

View File

@@ -5,15 +5,15 @@ import cn.hutool.captcha.generator.CodeGenerator;
import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ArrayUtil;
import com.youlai.boot.config.property.SecurityProperties; import com.youlai.boot.config.property.SecurityProperties;
import com.youlai.boot.core.filter.RateLimiterFilter; import com.youlai.boot.core.filter.RateLimiterFilter;
import com.youlai.boot.core.security.exception.MyAccessDeniedHandler; import com.youlai.boot.security.filter.CaptchaValidationFilter;
import com.youlai.boot.core.security.exception.MyAuthenticationEntryPoint; import com.youlai.boot.security.filter.TokenAuthenticationFilter;
import com.youlai.boot.core.security.extension.sms.SmsAuthenticationProvider; import com.youlai.boot.security.handler.MyAccessDeniedHandler;
import com.youlai.boot.core.security.extension.wx.WxMiniAppCodeAuthenticationProvider; import com.youlai.boot.security.handler.MyAuthenticationEntryPoint;
import com.youlai.boot.core.security.extension.wx.WxMiniAppPhoneAuthenticationProvider; import com.youlai.boot.security.provider.SmsAuthenticationProvider;
import com.youlai.boot.core.security.filter.CaptchaValidationFilter; import com.youlai.boot.security.provider.WxMiniAppCodeAuthenticationProvider;
import com.youlai.boot.core.security.filter.TokenAuthenticationFilter; import com.youlai.boot.security.provider.WxMiniAppPhoneAuthenticationProvider;
import com.youlai.boot.core.security.token.TokenManager; import com.youlai.boot.security.token.TokenManager;
import com.youlai.boot.core.security.service.SysUserDetailsService; import com.youlai.boot.security.service.SysUserDetailsService;
import com.youlai.boot.system.service.ConfigService; import com.youlai.boot.system.service.ConfigService;
import com.youlai.boot.system.service.UserService; import com.youlai.boot.system.service.UserService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@@ -119,9 +119,8 @@ public class SecurityConfig {
*/ */
@Bean @Bean
public DaoAuthenticationProvider daoAuthenticationProvider() { public DaoAuthenticationProvider daoAuthenticationProvider() {
DaoAuthenticationProvider daoAuthenticationProvider = new DaoAuthenticationProvider(); DaoAuthenticationProvider daoAuthenticationProvider = new DaoAuthenticationProvider(userDetailsService);
daoAuthenticationProvider.setPasswordEncoder(passwordEncoder); daoAuthenticationProvider.setPasswordEncoder(passwordEncoder);
daoAuthenticationProvider.setUserDetailsService(userDetailsService);
return daoAuthenticationProvider; return daoAuthenticationProvider;
} }

View File

@@ -1,8 +1,8 @@
package com.youlai.boot.config; package com.youlai.boot.config;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.youlai.boot.core.security.model.SysUserDetails; import com.youlai.boot.security.model.SysUserDetails;
import com.youlai.boot.core.security.token.TokenManager; import com.youlai.boot.security.token.TokenManager;
import com.youlai.boot.system.service.WebSocketService; import com.youlai.boot.system.service.WebSocketService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;

View File

@@ -10,7 +10,7 @@ import cn.hutool.json.JSONUtil;
import com.aliyun.oss.HttpMethod; import com.aliyun.oss.HttpMethod;
import com.youlai.boot.common.enums.LogModuleEnum; import com.youlai.boot.common.enums.LogModuleEnum;
import com.youlai.boot.common.util.IPUtils; import com.youlai.boot.common.util.IPUtils;
import com.youlai.boot.core.security.util.SecurityUtils; import com.youlai.boot.security.util.SecurityUtils;
import com.youlai.boot.system.model.entity.Log; import com.youlai.boot.system.model.entity.Log;
import com.youlai.boot.system.service.LogService; import com.youlai.boot.system.service.LogService;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;

View File

@@ -4,7 +4,7 @@ import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.digest.DigestUtil; import cn.hutool.crypto.digest.DigestUtil;
import com.youlai.boot.common.constant.RedisConstants; import com.youlai.boot.common.constant.RedisConstants;
import com.youlai.boot.common.constant.SecurityConstants; import com.youlai.boot.common.constant.SecurityConstants;
import com.youlai.boot.common.result.ResultCode; import com.youlai.boot.core.web.ResultCode;
import com.youlai.boot.common.exception.BusinessException; import com.youlai.boot.common.exception.BusinessException;
import com.youlai.boot.common.annotation.RepeatSubmit; import com.youlai.boot.common.annotation.RepeatSubmit;
import com.youlai.boot.common.util.IPUtils; import com.youlai.boot.common.util.IPUtils;

View File

@@ -1,6 +1,6 @@
package com.youlai.boot.common.exception; package com.youlai.boot.common.exception;
import com.youlai.boot.common.result.IResultCode; import com.youlai.boot.core.web.IResultCode;
import lombok.Getter; import lombok.Getter;
import org.slf4j.helpers.MessageFormatter; import org.slf4j.helpers.MessageFormatter;

View File

@@ -2,8 +2,8 @@ package com.youlai.boot.common.exception;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.youlai.boot.common.result.Result; import com.youlai.boot.core.web.Result;
import com.youlai.boot.common.result.ResultCode; import com.youlai.boot.core.web.ResultCode;
import jakarta.servlet.ServletException; import jakarta.servlet.ServletException;
import jakarta.validation.ConstraintViolation; import jakarta.validation.ConstraintViolation;
import jakarta.validation.ConstraintViolationException; import jakarta.validation.ConstraintViolationException;

View File

@@ -4,9 +4,9 @@ import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.youlai.boot.common.constant.RedisConstants; import com.youlai.boot.common.constant.RedisConstants;
import com.youlai.boot.common.constant.SystemConstants; import com.youlai.boot.common.constant.SystemConstants;
import com.youlai.boot.common.result.ResultCode; import com.youlai.boot.core.web.ResultCode;
import com.youlai.boot.common.util.IPUtils; import com.youlai.boot.common.util.IPUtils;
import com.youlai.boot.common.util.ResponseUtils; import com.youlai.boot.core.web.WebResponseHelper;
import com.youlai.boot.system.service.ConfigService; import com.youlai.boot.system.service.ConfigService;
import jakarta.servlet.FilterChain; import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException; import jakarta.servlet.ServletException;
@@ -88,7 +88,7 @@ public class RateLimiterFilter extends OncePerRequestFilter {
// 判断是否限流 // 判断是否限流
if (rateLimit(ip)) { if (rateLimit(ip)) {
// 返回限流错误信息 // 返回限流错误信息
ResponseUtils.writeErrMsg(response, ResultCode.REQUEST_CONCURRENCY_LIMIT_EXCEEDED); WebResponseHelper.writeError(response, ResultCode.REQUEST_CONCURRENCY_LIMIT_EXCEEDED);
return; return;
} }

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.common.result; package com.youlai.boot.core.web;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.common.result; package com.youlai.boot.core.web;
/** /**
* 响应码接口 * 响应码接口

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.common.result; package com.youlai.boot.core.web;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.common.result; package com.youlai.boot.core.web;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.common.result; package com.youlai.boot.core.web;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;

View File

@@ -0,0 +1,75 @@
package com.youlai.boot.core.web;
import cn.hutool.extra.servlet.JakartaServletUtil;
import cn.hutool.json.JSONUtil;
import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
/**
* Web响应辅助类
* <p>
* 用于在过滤器、处理器等无法使用 @RestControllerAdvice 的场景中统一处理响应
*
* @author Ray.Hao
* @since 2.0.0
*/
@Slf4j
public class WebResponseHelper {
/**
* 写入错误响应
*
* @param response HttpServletResponse
* @param resultCode 响应结果码
*/
public static void writeError(HttpServletResponse response, ResultCode resultCode) {
writeError(response, resultCode, null);
}
/**
* 写入错误响应(带自定义消息)
*
* @param response HttpServletResponse
* @param resultCode 响应结果码
* @param message 自定义消息
*/
public static void writeError(HttpServletResponse response, ResultCode resultCode, String message) {
try {
// 设置HTTP状态码
int httpStatus = mapHttpStatus(resultCode);
response.setStatus(httpStatus);
// 构建响应对象
Result<?> result = message == null
? Result.failed(resultCode)
: Result.failed(resultCode, message);
// 写入响应
JakartaServletUtil.write(response,
JSONUtil.toJsonStr(result),
MediaType.APPLICATION_JSON_VALUE
);
} catch (Exception e) {
log.error("写入错误响应失败: resultCode={}, message={}", resultCode, message, e);
}
}
/**
* 根据业务结果码映射HTTP状态码
*
* @param resultCode 业务结果码
* @return HTTP状态码
*/
private static int mapHttpStatus(ResultCode resultCode) {
return switch (resultCode) {
case ACCESS_UNAUTHORIZED,
ACCESS_TOKEN_INVALID,
REFRESH_TOKEN_INVALID -> HttpStatus.UNAUTHORIZED.value();
default -> HttpStatus.BAD_REQUEST.value();
};
}
}

View File

@@ -1,10 +0,0 @@
package com.youlai.boot.module.member.controller;
/**
* 会员控制层-业务模块演示
*
* @author haoxr
* @since 2024/10/10
*/
public class MemberController {
}

View File

@@ -1,10 +0,0 @@
package com.youlai.boot.module.member.mapper;
/**
* 会员数据访问层-业务模块演示
*
* @author haoxr
* @since 2024/10/10
*/
public class MemberMapper {
}

View File

@@ -1,10 +0,0 @@
package com.youlai.boot.module.member.model;
/**
* 会员实体-业务模块演示
*
* @author haoxr
* @since 2024/10/10
*/
public class Member {
}

View File

@@ -1,10 +0,0 @@
package com.youlai.boot.module.member.service;
/**
* 会员管理服务类-业务模块演示
*
* @author haoxr
* @since 2024/10/10
*/
public class MemberService {
}

View File

@@ -1,10 +0,0 @@
package com.youlai.boot.module.order.controller;
/**
* 订单控制层-业务模块演示
*
* @author haoxr
* @since 2024/10/10
*/
public class OrderController {
}

View File

@@ -1,10 +0,0 @@
package com.youlai.boot.module.order.mapper;
/**
* 订单数据访问层-业务模块演示
*
* @author haoxr
* @since 2024/10/10
*/
public class OrderMapper {
}

View File

@@ -1,10 +0,0 @@
package com.youlai.boot.module.order.model;
/**
* 订单实体-业务模块演示
*
* @author haoxr
* @since 2024/10/10
*/
public class Order {
}

View File

@@ -1,10 +0,0 @@
package com.youlai.boot.module.order.service;
/**
* 订单管理服务类-业务模块演示
*
* @author haoxr
* @since 2024/10/10
*/
public class OrderService {
}

View File

@@ -1,10 +0,0 @@
package com.youlai.boot.module.product.controller;
/**
* 商品控制层-业务模块演示
*
* @author haoxr
* @since 2024/10/10
*/
public class ProductController {
}

View File

@@ -1,10 +0,0 @@
package com.youlai.boot.module.product.mapper;
/**
* 商品数据访问层-业务模块演示
*
* @author haoxr
* @since 2024/10/10
*/
public class ProductMapper {
}

View File

@@ -1,10 +0,0 @@
package com.youlai.boot.module.product.model;
/**
* 商品实体-业务模块演示
*
* @author haoxr
* @since 2024/10/10
*/
public class Product {
}

View File

@@ -1,10 +0,0 @@
package com.youlai.boot.module.product.service;
/**
* 会员管理服务类-业务模块演示
*
* @author haoxr
* @since 2024/10/10
*/
public class ProductService {
}

View File

@@ -1,17 +1,17 @@
package com.youlai.boot.shared.codegen.controller; package com.youlai.boot.platform.codegen.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.common.result.PageResult; import com.youlai.boot.core.web.PageResult;
import com.youlai.boot.common.result.Result; import com.youlai.boot.core.web.Result;
import com.youlai.boot.config.property.CodegenProperties; import com.youlai.boot.config.property.CodegenProperties;
import com.youlai.boot.common.enums.LogModuleEnum; import com.youlai.boot.common.enums.LogModuleEnum;
import com.youlai.boot.shared.codegen.service.CodegenService; import com.youlai.boot.platform.codegen.service.CodegenService;
import com.youlai.boot.shared.codegen.model.form.GenConfigForm; import com.youlai.boot.platform.codegen.model.form.GenConfigForm;
import com.youlai.boot.shared.codegen.model.query.TablePageQuery; import com.youlai.boot.platform.codegen.model.query.TablePageQuery;
import com.youlai.boot.shared.codegen.model.vo.CodegenPreviewVO; import com.youlai.boot.platform.codegen.model.vo.CodegenPreviewVO;
import com.youlai.boot.shared.codegen.model.vo.TablePageVO; import com.youlai.boot.platform.codegen.model.vo.TablePageVO;
import com.youlai.boot.common.annotation.Log; import com.youlai.boot.common.annotation.Log;
import com.youlai.boot.shared.codegen.service.GenConfigService; import com.youlai.boot.platform.codegen.service.GenConfigService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;

View File

@@ -1,8 +1,8 @@
package com.youlai.boot.shared.codegen.converter; package com.youlai.boot.platform.codegen.converter;
import com.youlai.boot.shared.codegen.model.entity.GenConfig; import com.youlai.boot.platform.codegen.model.entity.GenConfig;
import com.youlai.boot.shared.codegen.model.entity.GenFieldConfig; import com.youlai.boot.platform.codegen.model.entity.GenFieldConfig;
import com.youlai.boot.shared.codegen.model.form.GenConfigForm; import com.youlai.boot.platform.codegen.model.form.GenConfigForm;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping; import org.mapstruct.Mapping;

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.shared.codegen.enums; package com.youlai.boot.platform.codegen.enums;
import com.baomidou.mybatisplus.annotation.EnumValue; import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonCreator;

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.shared.codegen.enums; package com.youlai.boot.platform.codegen.enums;
import lombok.Getter; import lombok.Getter;

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.shared.codegen.enums; package com.youlai.boot.platform.codegen.enums;
import com.baomidou.mybatisplus.annotation.EnumValue; import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonCreator;

View File

@@ -1,11 +1,11 @@
package com.youlai.boot.shared.codegen.mapper; package com.youlai.boot.platform.codegen.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.shared.codegen.model.bo.ColumnMetaData; import com.youlai.boot.platform.codegen.model.bo.ColumnMetaData;
import com.youlai.boot.shared.codegen.model.bo.TableMetaData; import com.youlai.boot.platform.codegen.model.bo.TableMetaData;
import com.youlai.boot.shared.codegen.model.query.TablePageQuery; import com.youlai.boot.platform.codegen.model.query.TablePageQuery;
import com.youlai.boot.shared.codegen.model.vo.TablePageVO; import com.youlai.boot.platform.codegen.model.vo.TablePageVO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List; import java.util.List;

View File

@@ -1,7 +1,7 @@
package com.youlai.boot.shared.codegen.mapper; package com.youlai.boot.platform.codegen.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.youlai.boot.shared.codegen.model.entity.GenConfig; import com.youlai.boot.platform.codegen.model.entity.GenConfig;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
/** /**

View File

@@ -1,7 +1,7 @@
package com.youlai.boot.shared.codegen.mapper; package com.youlai.boot.platform.codegen.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.youlai.boot.shared.codegen.model.entity.GenFieldConfig; import com.youlai.boot.platform.codegen.model.entity.GenFieldConfig;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
/** /**

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.shared.codegen.model.bo; package com.youlai.boot.platform.codegen.model.bo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.shared.codegen.model.bo; package com.youlai.boot.platform.codegen.model.bo;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.shared.codegen.model.entity; package com.youlai.boot.platform.codegen.model.entity;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;

View File

@@ -1,12 +1,12 @@
package com.youlai.boot.shared.codegen.model.entity; package com.youlai.boot.platform.codegen.model.entity;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.youlai.boot.common.base.BaseEntity; import com.youlai.boot.common.base.BaseEntity;
import com.youlai.boot.shared.codegen.enums.FormTypeEnum; import com.youlai.boot.platform.codegen.enums.FormTypeEnum;
import com.youlai.boot.shared.codegen.enums.QueryTypeEnum; import com.youlai.boot.platform.codegen.enums.QueryTypeEnum;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;

View File

@@ -1,7 +1,7 @@
package com.youlai.boot.shared.codegen.model.form; package com.youlai.boot.platform.codegen.model.form;
import com.youlai.boot.shared.codegen.enums.FormTypeEnum; import com.youlai.boot.platform.codegen.enums.FormTypeEnum;
import com.youlai.boot.shared.codegen.enums.QueryTypeEnum; import com.youlai.boot.platform.codegen.enums.QueryTypeEnum;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.shared.codegen.model.query; package com.youlai.boot.platform.codegen.model.query;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.youlai.boot.common.base.BasePageQuery; import com.youlai.boot.common.base.BasePageQuery;

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.shared.codegen.model.vo; package com.youlai.boot.platform.codegen.model.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.shared.codegen.model.vo; package com.youlai.boot.platform.codegen.model.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;

View File

@@ -1,9 +1,9 @@
package com.youlai.boot.shared.codegen.service; package com.youlai.boot.platform.codegen.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.shared.codegen.model.query.TablePageQuery; import com.youlai.boot.platform.codegen.model.query.TablePageQuery;
import com.youlai.boot.shared.codegen.model.vo.CodegenPreviewVO; import com.youlai.boot.platform.codegen.model.vo.CodegenPreviewVO;
import com.youlai.boot.shared.codegen.model.vo.TablePageVO; import com.youlai.boot.platform.codegen.model.vo.TablePageVO;
import java.util.List; import java.util.List;

View File

@@ -1,8 +1,8 @@
package com.youlai.boot.shared.codegen.service; package com.youlai.boot.platform.codegen.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.youlai.boot.shared.codegen.model.entity.GenConfig; import com.youlai.boot.platform.codegen.model.entity.GenConfig;
import com.youlai.boot.shared.codegen.model.form.GenConfigForm; import com.youlai.boot.platform.codegen.model.form.GenConfigForm;
/** /**
* 代码生成配置接口 * 代码生成配置接口

View File

@@ -1,7 +1,7 @@
package com.youlai.boot.shared.codegen.service; package com.youlai.boot.platform.codegen.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.youlai.boot.shared.codegen.model.entity.GenFieldConfig; import com.youlai.boot.platform.codegen.model.entity.GenFieldConfig;
/** /**
* 代码生成配置接口 * 代码生成配置接口

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.shared.codegen.service.impl; package com.youlai.boot.platform.codegen.service.impl;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
@@ -11,18 +11,18 @@ import cn.hutool.extra.template.TemplateEngine;
import cn.hutool.extra.template.TemplateUtil; import cn.hutool.extra.template.TemplateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.shared.codegen.enums.JavaTypeEnum; import com.youlai.boot.platform.codegen.enums.JavaTypeEnum;
import com.youlai.boot.config.property.CodegenProperties; import com.youlai.boot.config.property.CodegenProperties;
import com.youlai.boot.shared.codegen.service.GenConfigService; import com.youlai.boot.platform.codegen.service.GenConfigService;
import com.youlai.boot.shared.codegen.service.GenFieldConfigService; import com.youlai.boot.platform.codegen.service.GenFieldConfigService;
import com.youlai.boot.shared.codegen.service.CodegenService; import com.youlai.boot.platform.codegen.service.CodegenService;
import com.youlai.boot.common.exception.BusinessException; import com.youlai.boot.common.exception.BusinessException;
import com.youlai.boot.shared.codegen.mapper.DatabaseMapper; import com.youlai.boot.platform.codegen.mapper.DatabaseMapper;
import com.youlai.boot.shared.codegen.model.entity.GenConfig; import com.youlai.boot.platform.codegen.model.entity.GenConfig;
import com.youlai.boot.shared.codegen.model.entity.GenFieldConfig; import com.youlai.boot.platform.codegen.model.entity.GenFieldConfig;
import com.youlai.boot.shared.codegen.model.query.TablePageQuery; import com.youlai.boot.platform.codegen.model.query.TablePageQuery;
import com.youlai.boot.shared.codegen.model.vo.CodegenPreviewVO; import com.youlai.boot.platform.codegen.model.vo.CodegenPreviewVO;
import com.youlai.boot.shared.codegen.model.vo.TablePageVO; import com.youlai.boot.platform.codegen.model.vo.TablePageVO;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -258,9 +258,6 @@ public class CodegenServiceImpl implements CodegenService {
TemplateEngine templateEngine = TemplateUtil.createEngine(new TemplateConfig("templates", TemplateConfig.ResourceMode.CLASSPATH)); TemplateEngine templateEngine = TemplateUtil.createEngine(new TemplateConfig("templates", TemplateConfig.ResourceMode.CLASSPATH));
// 根据 ui 选择不同的前端页面模板默认 index.vue.vm封装版使用 index.curd.vue.vm // 根据 ui 选择不同的前端页面模板默认 index.vue.vm封装版使用 index.curd.vue.vm
String path = templateConfig.getTemplatePath(); String path = templateConfig.getTemplatePath();
if ("VIEW".equals(FileNameUtil.mainName(path))) {
// 无法通过文件名区分时依据子包名与扩展名判断
}
if ("curd".equalsIgnoreCase(pageType) && path.endsWith("index.vue.vm")) { if ("curd".equalsIgnoreCase(pageType) && path.endsWith("index.vue.vm")) {
path = path.replace("index.vue.vm", "index.curd.vue.vm"); path = path.replace("index.vue.vm", "index.curd.vue.vm");
} }

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.shared.codegen.service.impl; package com.youlai.boot.platform.codegen.service.impl;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
@@ -7,21 +7,21 @@ 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.boot.YouLaiBootApplication; import com.youlai.boot.YouLaiBootApplication;
import com.youlai.boot.common.enums.EnvEnum; import com.youlai.boot.common.enums.EnvEnum;
import com.youlai.boot.shared.codegen.enums.FormTypeEnum; import com.youlai.boot.platform.codegen.enums.FormTypeEnum;
import com.youlai.boot.shared.codegen.enums.JavaTypeEnum; import com.youlai.boot.platform.codegen.enums.JavaTypeEnum;
import com.youlai.boot.shared.codegen.enums.QueryTypeEnum; import com.youlai.boot.platform.codegen.enums.QueryTypeEnum;
import com.youlai.boot.common.exception.BusinessException; import com.youlai.boot.common.exception.BusinessException;
import com.youlai.boot.config.property.CodegenProperties; import com.youlai.boot.config.property.CodegenProperties;
import com.youlai.boot.shared.codegen.converter.CodegenConverter; import com.youlai.boot.platform.codegen.converter.CodegenConverter;
import com.youlai.boot.shared.codegen.mapper.DatabaseMapper; import com.youlai.boot.platform.codegen.mapper.DatabaseMapper;
import com.youlai.boot.shared.codegen.mapper.GenConfigMapper; import com.youlai.boot.platform.codegen.mapper.GenConfigMapper;
import com.youlai.boot.shared.codegen.model.bo.ColumnMetaData; import com.youlai.boot.platform.codegen.model.bo.ColumnMetaData;
import com.youlai.boot.shared.codegen.model.bo.TableMetaData; import com.youlai.boot.platform.codegen.model.bo.TableMetaData;
import com.youlai.boot.shared.codegen.model.entity.GenConfig; import com.youlai.boot.platform.codegen.model.entity.GenConfig;
import com.youlai.boot.shared.codegen.model.entity.GenFieldConfig; import com.youlai.boot.platform.codegen.model.entity.GenFieldConfig;
import com.youlai.boot.shared.codegen.model.form.GenConfigForm; import com.youlai.boot.platform.codegen.model.form.GenConfigForm;
import com.youlai.boot.shared.codegen.service.GenConfigService; import com.youlai.boot.platform.codegen.service.GenConfigService;
import com.youlai.boot.shared.codegen.service.GenFieldConfigService; import com.youlai.boot.platform.codegen.service.GenFieldConfigService;
import com.youlai.boot.system.service.MenuService; import com.youlai.boot.system.service.MenuService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;

View File

@@ -1,9 +1,9 @@
package com.youlai.boot.shared.codegen.service.impl; package com.youlai.boot.platform.codegen.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.youlai.boot.shared.codegen.mapper.GenFieldConfigMapper; import com.youlai.boot.platform.codegen.mapper.GenFieldConfigMapper;
import com.youlai.boot.shared.codegen.model.entity.GenFieldConfig; import com.youlai.boot.platform.codegen.model.entity.GenFieldConfig;
import com.youlai.boot.shared.codegen.service.GenFieldConfigService; import com.youlai.boot.platform.codegen.service.GenFieldConfigService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

View File

@@ -1,8 +1,8 @@
package com.youlai.boot.shared.file.controller; package com.youlai.boot.platform.file.controller;
import com.youlai.boot.common.result.Result; import com.youlai.boot.core.web.Result;
import com.youlai.boot.shared.file.service.FileService; import com.youlai.boot.platform.file.service.FileService;
import com.youlai.boot.shared.file.model.FileInfo; import com.youlai.boot.platform.file.model.FileInfo;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.enums.ParameterIn; import io.swagger.v3.oas.annotations.enums.ParameterIn;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.shared.file.model; package com.youlai.boot.platform.file.model;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;

View File

@@ -1,6 +1,6 @@
package com.youlai.boot.shared.file.service; package com.youlai.boot.platform.file.service;
import com.youlai.boot.shared.file.model.FileInfo; import com.youlai.boot.platform.file.model.FileInfo;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
/** /**

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.shared.file.service.impl; package com.youlai.boot.platform.file.service.impl;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.FileUtil;
@@ -8,8 +8,8 @@ import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder; import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.ObjectMetadata; import com.aliyun.oss.model.ObjectMetadata;
import com.aliyun.oss.model.PutObjectRequest; import com.aliyun.oss.model.PutObjectRequest;
import com.youlai.boot.shared.file.service.FileService; import com.youlai.boot.platform.file.service.FileService;
import com.youlai.boot.shared.file.model.FileInfo; import com.youlai.boot.platform.file.model.FileInfo;
import jakarta.annotation.PostConstruct; import jakarta.annotation.PostConstruct;
import lombok.Data; import lombok.Data;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;

View File

@@ -1,11 +1,11 @@
package com.youlai.boot.shared.file.service.impl; package com.youlai.boot.platform.file.service.impl;
import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import com.youlai.boot.shared.file.model.FileInfo; import com.youlai.boot.platform.file.model.FileInfo;
import com.youlai.boot.shared.file.service.FileService; import com.youlai.boot.platform.file.service.FileService;
import lombok.Data; import lombok.Data;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.shared.file.service.impl; package com.youlai.boot.platform.file.service.impl;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.FileUtil;
@@ -6,9 +6,9 @@ import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.youlai.boot.common.exception.BusinessException; import com.youlai.boot.common.exception.BusinessException;
import com.youlai.boot.common.result.ResultCode; import com.youlai.boot.core.web.ResultCode;
import com.youlai.boot.shared.file.model.FileInfo; import com.youlai.boot.platform.file.model.FileInfo;
import com.youlai.boot.shared.file.service.FileService; import com.youlai.boot.platform.file.service.FileService;
import io.minio.*; import io.minio.*;
import io.minio.http.Method; import io.minio.http.Method;
import jakarta.annotation.PostConstruct; import jakarta.annotation.PostConstruct;

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.shared.mail.controller; package com.youlai.boot.platform.mail.controller;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.shared.mail.service; package com.youlai.boot.platform.mail.service;
/** /**
* 邮件服务接口层 * 邮件服务接口层

View File

@@ -1,7 +1,7 @@
package com.youlai.boot.shared.mail.service.impl; package com.youlai.boot.platform.mail.service.impl;
import com.youlai.boot.config.property.MailProperties; import com.youlai.boot.config.property.MailProperties;
import com.youlai.boot.shared.mail.service.MailService; import com.youlai.boot.platform.mail.service.MailService;
import jakarta.mail.MessagingException; import jakarta.mail.MessagingException;
import jakarta.mail.internet.MimeMessage; import jakarta.mail.internet.MimeMessage;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.shared.sms.controller; package com.youlai.boot.platform.sms.controller;
/** /**
* 短信控制层 * 短信控制层

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.shared.sms.enums; package com.youlai.boot.platform.sms.enums;
import com.youlai.boot.common.base.IBaseEnum; import com.youlai.boot.common.base.IBaseEnum;
import lombok.Getter; import lombok.Getter;

View File

@@ -1,6 +1,6 @@
package com.youlai.boot.shared.sms.service; package com.youlai.boot.platform.sms.service;
import com.youlai.boot.shared.sms.enums.SmsTypeEnum; import com.youlai.boot.platform.sms.enums.SmsTypeEnum;
import java.util.Map; import java.util.Map;

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.shared.sms.service.impl; package com.youlai.boot.platform.sms.service.impl;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.aliyuncs.CommonRequest; import com.aliyuncs.CommonRequest;
@@ -9,8 +9,8 @@ import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.http.MethodType; import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile; import com.aliyuncs.profile.DefaultProfile;
import com.youlai.boot.config.property.AliyunSmsProperties; import com.youlai.boot.config.property.AliyunSmsProperties;
import com.youlai.boot.shared.sms.enums.SmsTypeEnum; import com.youlai.boot.platform.sms.enums.SmsTypeEnum;
import com.youlai.boot.shared.sms.service.SmsService; import com.youlai.boot.platform.sms.service.SmsService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

View File

@@ -1,6 +1,6 @@
package com.youlai.boot.shared.websocket.controller; package com.youlai.boot.platform.websocket.controller;
import com.youlai.boot.shared.websocket.model.ChatMessage; import com.youlai.boot.platform.websocket.model.ChatMessage;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.messaging.handler.annotation.DestinationVariable; import org.springframework.messaging.handler.annotation.DestinationVariable;

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.shared.websocket.model; package com.youlai.boot.platform.websocket.model;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;

View File

@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.handler.DataPermissionHandler;
import com.youlai.boot.common.annotation.DataPermission; import com.youlai.boot.common.annotation.DataPermission;
import com.youlai.boot.common.base.IBaseEnum; import com.youlai.boot.common.base.IBaseEnum;
import com.youlai.boot.common.enums.DataScopeEnum; import com.youlai.boot.common.enums.DataScopeEnum;
import com.youlai.boot.core.security.util.SecurityUtils; import com.youlai.boot.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;

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.core.security.exception; package com.youlai.boot.core.exception;
import org.springframework.security.core.AuthenticationException; import org.springframework.security.core.AuthenticationException;

View File

@@ -1,11 +1,11 @@
package com.youlai.boot.core.security.filter; package com.youlai.boot.security.filter;
import cn.hutool.captcha.generator.CodeGenerator; import cn.hutool.captcha.generator.CodeGenerator;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.youlai.boot.common.constant.RedisConstants; import com.youlai.boot.common.constant.RedisConstants;
import com.youlai.boot.common.constant.SecurityConstants; import com.youlai.boot.common.constant.SecurityConstants;
import com.youlai.boot.common.result.ResultCode; import com.youlai.boot.core.web.ResultCode;
import com.youlai.boot.common.util.ResponseUtils; import com.youlai.boot.core.web.WebResponseHelper;
import jakarta.servlet.FilterChain; import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException; import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
@@ -58,13 +58,13 @@ public class CaptchaValidationFilter extends OncePerRequestFilter {
StrUtil.format(RedisConstants.Captcha.IMAGE_CODE, verifyCodeKey) StrUtil.format(RedisConstants.Captcha.IMAGE_CODE, verifyCodeKey)
); );
if (cacheVerifyCode == null) { if (cacheVerifyCode == null) {
ResponseUtils.writeErrMsg(response, ResultCode.USER_VERIFICATION_CODE_EXPIRED); WebResponseHelper.writeError(response, ResultCode.USER_VERIFICATION_CODE_EXPIRED);
} else { } else {
// 验证码比对 // 验证码比对
if (codeGenerator.verify(cacheVerifyCode, captchaCode)) { if (codeGenerator.verify(cacheVerifyCode, captchaCode)) {
chain.doFilter(request, response); chain.doFilter(request, response);
} else { } else {
ResponseUtils.writeErrMsg(response, ResultCode.USER_VERIFICATION_CODE_ERROR); WebResponseHelper.writeError(response, ResultCode.USER_VERIFICATION_CODE_ERROR);
} }
} }
} else { } else {

View File

@@ -1,10 +1,10 @@
package com.youlai.boot.core.security.filter; package com.youlai.boot.security.filter;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.youlai.boot.common.constant.SecurityConstants; import com.youlai.boot.common.constant.SecurityConstants;
import com.youlai.boot.common.result.ResultCode; import com.youlai.boot.core.web.ResultCode;
import com.youlai.boot.common.util.ResponseUtils; import com.youlai.boot.core.web.WebResponseHelper;
import com.youlai.boot.core.security.token.TokenManager; import com.youlai.boot.security.token.TokenManager;
import jakarta.servlet.FilterChain; import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException; import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
@@ -52,7 +52,7 @@ public class TokenAuthenticationFilter extends OncePerRequestFilter {
// 执行令牌有效性检查包含密码学验签和过期时间验证 // 执行令牌有效性检查包含密码学验签和过期时间验证
boolean isValidToken = tokenManager.validateToken(rawToken); boolean isValidToken = tokenManager.validateToken(rawToken);
if (!isValidToken) { if (!isValidToken) {
ResponseUtils.writeErrMsg(response, ResultCode.ACCESS_TOKEN_INVALID); WebResponseHelper.writeError(response, ResultCode.ACCESS_TOKEN_INVALID);
return; return;
} }
@@ -63,7 +63,7 @@ public class TokenAuthenticationFilter extends OncePerRequestFilter {
} catch (Exception ex) { } catch (Exception ex) {
// 安全上下文清除保障防止上下文残留 // 安全上下文清除保障防止上下文残留
SecurityContextHolder.clearContext(); SecurityContextHolder.clearContext();
ResponseUtils.writeErrMsg(response, ResultCode.ACCESS_TOKEN_INVALID); WebResponseHelper.writeError(response, ResultCode.ACCESS_TOKEN_INVALID);
return; return;
} }

View File

@@ -1,7 +1,7 @@
package com.youlai.boot.core.security.exception; package com.youlai.boot.security.handler;
import com.youlai.boot.common.result.ResultCode; import com.youlai.boot.core.web.ResultCode;
import com.youlai.boot.common.util.ResponseUtils; import com.youlai.boot.core.web.WebResponseHelper;
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;
@@ -20,7 +20,7 @@ public class MyAccessDeniedHandler implements AccessDeniedHandler {
@Override @Override
public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException) { public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException) {
ResponseUtils.writeErrMsg(response, ResultCode.ACCESS_UNAUTHORIZED); WebResponseHelper.writeError(response, ResultCode.ACCESS_UNAUTHORIZED);
} }
} }

View File

@@ -1,7 +1,7 @@
package com.youlai.boot.core.security.exception; package com.youlai.boot.security.handler;
import com.youlai.boot.common.result.ResultCode; import com.youlai.boot.core.web.ResultCode;
import com.youlai.boot.common.util.ResponseUtils; import com.youlai.boot.core.web.WebResponseHelper;
import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.BadCredentialsException;
import org.springframework.security.authentication.InsufficientAuthenticationException; import org.springframework.security.authentication.InsufficientAuthenticationException;
import org.springframework.security.core.AuthenticationException; import org.springframework.security.core.AuthenticationException;
@@ -32,13 +32,13 @@ public class MyAuthenticationEntryPoint implements AuthenticationEntryPoint {
public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException { public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException {
if (authException instanceof BadCredentialsException) { if (authException instanceof BadCredentialsException) {
// 用户名或密码错误 // 用户名或密码错误
ResponseUtils.writeErrMsg(response, ResultCode.USER_PASSWORD_ERROR); WebResponseHelper.writeError(response, ResultCode.USER_PASSWORD_ERROR);
} else if(authException instanceof InsufficientAuthenticationException){ } else if(authException instanceof InsufficientAuthenticationException){
// 请求头缺失AuthorizationToken格式错误Token过期签名验证失败 // 请求头缺失AuthorizationToken格式错误Token过期签名验证失败
ResponseUtils.writeErrMsg(response, ResultCode.ACCESS_TOKEN_INVALID); WebResponseHelper.writeError(response, ResultCode.ACCESS_TOKEN_INVALID);
} else { } else {
// 其他未明确处理的认证异常如账户被锁定账户禁用等 // 其他未明确处理的认证异常如账户被锁定账户禁用等
ResponseUtils.writeErrMsg(response, ResultCode.USER_LOGIN_EXCEPTION, authException.getMessage()); WebResponseHelper.writeError(response, ResultCode.USER_LOGIN_EXCEPTION, authException.getMessage());
} }
} }
} }

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.core.security.model; package com.youlai.boot.security.model;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Builder; import lombok.Builder;

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.core.security.model; package com.youlai.boot.security.model;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.core.security.extension.sms; package com.youlai.boot.security.model;
import org.springframework.security.authentication.AbstractAuthenticationToken; import org.springframework.security.authentication.AbstractAuthenticationToken;
import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.GrantedAuthority;

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.core.security.model; package com.youlai.boot.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.boot.core.security.model; package com.youlai.boot.security.model;
import lombok.Data; import lombok.Data;
import java.util.Set; import java.util.Set;

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.core.security.extension.wx; package com.youlai.boot.security.model;
import org.springframework.security.authentication.AbstractAuthenticationToken; import org.springframework.security.authentication.AbstractAuthenticationToken;
import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.GrantedAuthority;

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.core.security.extension.wx; package com.youlai.boot.security.model;
import org.springframework.security.authentication.AbstractAuthenticationToken; import org.springframework.security.authentication.AbstractAuthenticationToken;
import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.GrantedAuthority;

View File

@@ -1,11 +1,12 @@
package com.youlai.boot.core.security.extension.sms; package com.youlai.boot.security.provider;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.youlai.boot.common.constant.RedisConstants; import com.youlai.boot.common.constant.RedisConstants;
import com.youlai.boot.core.security.exception.CaptchaValidationException; import com.youlai.boot.core.exception.CaptchaValidationException;
import com.youlai.boot.core.security.model.SysUserDetails; import com.youlai.boot.security.model.SmsAuthenticationToken;
import com.youlai.boot.core.security.model.UserAuthCredentials; import com.youlai.boot.security.model.SysUserDetails;
import com.youlai.boot.security.model.UserAuthCredentials;
import com.youlai.boot.system.service.UserService; import com.youlai.boot.system.service.UserService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;

View File

@@ -1,11 +1,12 @@
package com.youlai.boot.core.security.extension.wx; package com.youlai.boot.security.provider;
import cn.binarywang.wx.miniapp.api.WxMaService; import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.youlai.boot.core.security.model.SysUserDetails; import com.youlai.boot.security.model.SysUserDetails;
import com.youlai.boot.core.security.model.UserAuthCredentials; import com.youlai.boot.security.model.UserAuthCredentials;
import com.youlai.boot.security.model.WxMiniAppCodeAuthenticationToken;
import com.youlai.boot.system.service.UserService; import com.youlai.boot.system.service.UserService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.common.error.WxErrorException;

View File

@@ -1,12 +1,13 @@
package com.youlai.boot.core.security.extension.wx; package com.youlai.boot.security.provider;
import cn.binarywang.wx.miniapp.api.WxMaService; import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.youlai.boot.core.security.model.SysUserDetails; import com.youlai.boot.security.model.SysUserDetails;
import com.youlai.boot.core.security.model.UserAuthCredentials; import com.youlai.boot.security.model.UserAuthCredentials;
import com.youlai.boot.security.model.WxMiniAppPhoneAuthenticationToken;
import com.youlai.boot.system.service.UserService; import com.youlai.boot.system.service.UserService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.common.error.WxErrorException;

View File

@@ -1,9 +1,9 @@
package com.youlai.boot.core.security.service; package com.youlai.boot.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;
import com.youlai.boot.common.constant.RedisConstants; import com.youlai.boot.common.constant.RedisConstants;
import com.youlai.boot.core.security.util.SecurityUtils; import com.youlai.boot.security.util.SecurityUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;

View File

@@ -1,7 +1,7 @@
package com.youlai.boot.core.security.service; package com.youlai.boot.security.service;
import com.youlai.boot.core.security.model.SysUserDetails; import com.youlai.boot.security.model.SysUserDetails;
import com.youlai.boot.core.security.model.UserAuthCredentials; import com.youlai.boot.security.model.UserAuthCredentials;
import com.youlai.boot.system.service.UserService; import com.youlai.boot.system.service.UserService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;

View File

@@ -1,4 +1,4 @@
package com.youlai.boot.core.security.token; package com.youlai.boot.security.token;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
@@ -12,11 +12,11 @@ import com.youlai.boot.common.constant.JwtClaimConstants;
import com.youlai.boot.common.constant.RedisConstants; import com.youlai.boot.common.constant.RedisConstants;
import com.youlai.boot.common.constant.SecurityConstants; import com.youlai.boot.common.constant.SecurityConstants;
import com.youlai.boot.common.exception.BusinessException; import com.youlai.boot.common.exception.BusinessException;
import com.youlai.boot.common.result.ResultCode; import com.youlai.boot.core.web.ResultCode;
import com.youlai.boot.config.property.SecurityProperties; import com.youlai.boot.config.property.SecurityProperties;
import com.youlai.boot.core.security.model.AuthenticationToken; import com.youlai.boot.security.model.AuthenticationToken;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import com.youlai.boot.core.security.model.SysUserDetails; import com.youlai.boot.security.model.SysUserDetails;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;

View File

@@ -1,15 +1,15 @@
package com.youlai.boot.core.security.token; package com.youlai.boot.security.token;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.youlai.boot.common.constant.RedisConstants; import com.youlai.boot.common.constant.RedisConstants;
import com.youlai.boot.common.exception.BusinessException; import com.youlai.boot.common.exception.BusinessException;
import com.youlai.boot.common.result.ResultCode; import com.youlai.boot.core.web.ResultCode;
import com.youlai.boot.config.property.SecurityProperties; import com.youlai.boot.config.property.SecurityProperties;
import com.youlai.boot.core.security.model.AuthenticationToken; import com.youlai.boot.security.model.AuthenticationToken;
import com.youlai.boot.core.security.model.OnlineUser; import com.youlai.boot.security.model.OnlineUser;
import com.youlai.boot.core.security.model.SysUserDetails; import com.youlai.boot.security.model.SysUserDetails;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;

View File

@@ -1,7 +1,7 @@
package com.youlai.boot.core.security.token; package com.youlai.boot.security.token;
import com.youlai.boot.core.security.model.AuthenticationToken; import com.youlai.boot.security.model.AuthenticationToken;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
/** /**

View File

@@ -1,10 +1,10 @@
package com.youlai.boot.core.security.util; package com.youlai.boot.security.util;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.youlai.boot.common.constant.SecurityConstants; import com.youlai.boot.common.constant.SecurityConstants;
import com.youlai.boot.common.constant.SystemConstants; import com.youlai.boot.common.constant.SystemConstants;
import com.youlai.boot.core.security.model.SysUserDetails; import com.youlai.boot.security.model.SysUserDetails;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;

View File

@@ -2,8 +2,8 @@ package com.youlai.boot.system.controller;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.youlai.boot.common.enums.LogModuleEnum; import com.youlai.boot.common.enums.LogModuleEnum;
import com.youlai.boot.common.result.PageResult; import com.youlai.boot.core.web.PageResult;
import com.youlai.boot.common.result.Result; import com.youlai.boot.core.web.Result;
import com.youlai.boot.common.annotation.Log; import com.youlai.boot.common.annotation.Log;
import com.youlai.boot.system.model.form.ConfigForm; import com.youlai.boot.system.model.form.ConfigForm;
import com.youlai.boot.system.model.query.ConfigPageQuery; import com.youlai.boot.system.model.query.ConfigPageQuery;

View File

@@ -3,7 +3,7 @@ package com.youlai.boot.system.controller;
import com.youlai.boot.common.enums.LogModuleEnum; import com.youlai.boot.common.enums.LogModuleEnum;
import com.youlai.boot.common.annotation.RepeatSubmit; import com.youlai.boot.common.annotation.RepeatSubmit;
import com.youlai.boot.common.model.Option; import com.youlai.boot.common.model.Option;
import com.youlai.boot.common.result.Result; import com.youlai.boot.core.web.Result;
import com.youlai.boot.system.model.form.DeptForm; import com.youlai.boot.system.model.form.DeptForm;
import com.youlai.boot.system.model.query.DeptQuery; import com.youlai.boot.system.model.query.DeptQuery;
import com.youlai.boot.system.model.vo.DeptVO; import com.youlai.boot.system.model.vo.DeptVO;

View File

@@ -2,8 +2,8 @@ package com.youlai.boot.system.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.common.model.Option; import com.youlai.boot.common.model.Option;
import com.youlai.boot.common.result.PageResult; import com.youlai.boot.core.web.PageResult;
import com.youlai.boot.common.result.Result; import com.youlai.boot.core.web.Result;
import com.youlai.boot.common.enums.LogModuleEnum; import com.youlai.boot.common.enums.LogModuleEnum;
import com.youlai.boot.system.model.form.DictItemForm; import com.youlai.boot.system.model.form.DictItemForm;
import com.youlai.boot.system.model.query.DictItemPageQuery; import com.youlai.boot.system.model.query.DictItemPageQuery;

View File

@@ -1,8 +1,8 @@
package com.youlai.boot.system.controller; package com.youlai.boot.system.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.common.result.PageResult; import com.youlai.boot.core.web.PageResult;
import com.youlai.boot.common.result.Result; import com.youlai.boot.core.web.Result;
import com.youlai.boot.system.model.query.LogPageQuery; import com.youlai.boot.system.model.query.LogPageQuery;
import com.youlai.boot.system.model.vo.LogPageVO; import com.youlai.boot.system.model.vo.LogPageVO;
import com.youlai.boot.system.model.vo.VisitStatsVO; import com.youlai.boot.system.model.vo.VisitStatsVO;

View File

@@ -4,7 +4,7 @@ import com.youlai.boot.common.annotation.Log;
import com.youlai.boot.common.annotation.RepeatSubmit; import com.youlai.boot.common.annotation.RepeatSubmit;
import com.youlai.boot.common.enums.LogModuleEnum; import com.youlai.boot.common.enums.LogModuleEnum;
import com.youlai.boot.common.model.Option; import com.youlai.boot.common.model.Option;
import com.youlai.boot.common.result.Result; import com.youlai.boot.core.web.Result;
import com.youlai.boot.system.model.form.MenuForm; import com.youlai.boot.system.model.form.MenuForm;
import com.youlai.boot.system.model.query.MenuQuery; import com.youlai.boot.system.model.query.MenuQuery;
import com.youlai.boot.system.model.vo.MenuVO; import com.youlai.boot.system.model.vo.MenuVO;

View File

@@ -1,8 +1,8 @@
package com.youlai.boot.system.controller; package com.youlai.boot.system.controller;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.youlai.boot.common.result.PageResult; import com.youlai.boot.core.web.PageResult;
import com.youlai.boot.common.result.Result; import com.youlai.boot.core.web.Result;
import com.youlai.boot.system.model.form.NoticeForm; import com.youlai.boot.system.model.form.NoticeForm;
import com.youlai.boot.system.model.query.NoticePageQuery; import com.youlai.boot.system.model.query.NoticePageQuery;
import com.youlai.boot.system.model.vo.NoticeDetailVO; import com.youlai.boot.system.model.vo.NoticeDetailVO;

Some files were not shown because too many files have changed in this diff Show More