Merge branch 'master' of https://gitee.com/youlaiorg/youlai-boot into feature/noticews
# Conflicts: # src/main/java/com/youlai/boot/platform/websocket/service/impl/WebsocketServiceImpl.java # src/main/java/com/youlai/boot/system/controller/NoticeController.java # src/main/java/com/youlai/boot/system/controller/NoticeStatusController.java # src/main/java/com/youlai/boot/system/converter/NoticeConverter.java # src/main/java/com/youlai/boot/system/converter/NoticeStatusConverter.java # src/main/java/com/youlai/boot/system/mapper/NoticeMapper.java # src/main/java/com/youlai/boot/system/mapper/NoticeStatusMapper.java # src/main/java/com/youlai/boot/system/model/entity/Notice.java # src/main/java/com/youlai/boot/system/model/entity/NoticeStatus.java # src/main/java/com/youlai/boot/system/model/form/NoticeForm.java # src/main/java/com/youlai/boot/system/model/form/NoticeStatusForm.java # src/main/java/com/youlai/boot/system/model/query/NoticeQuery.java # src/main/java/com/youlai/boot/system/model/query/NoticeStatusQuery.java # src/main/java/com/youlai/boot/system/model/vo/NoticeStatusVO.java # src/main/java/com/youlai/boot/system/model/vo/NoticeVO.java # src/main/java/com/youlai/boot/system/service/NoticeService.java # src/main/java/com/youlai/boot/system/service/NoticeStatusService.java # src/main/java/com/youlai/boot/system/service/impl/NoticeServiceImpl.java # src/main/java/com/youlai/boot/system/service/impl/NoticeStatusServiceImpl.java
This commit is contained in:
@@ -1,15 +1,23 @@
|
||||
package com.youlai.system;
|
||||
package com.youlai.boot;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.boot.context.properties.ConfigurationPropertiesScan;
|
||||
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||
|
||||
/**
|
||||
* 应用启动类
|
||||
*
|
||||
* @author Ray
|
||||
* @since 0.0.1
|
||||
*/
|
||||
@SpringBootApplication
|
||||
@ConfigurationPropertiesScan
|
||||
@EnableScheduling
|
||||
public class SystemApplication {
|
||||
public class YouLaiApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(SystemApplication.class, args);
|
||||
SpringApplication.run(YouLaiApplication.class, args);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.youlai.system.plugin.mybatis.annotation;
|
||||
package com.youlai.boot.common.annotation;
|
||||
|
||||
import java.lang.annotation.*;
|
||||
|
||||
/**
|
||||
* MP数据权限注解
|
||||
* 数据权限注解
|
||||
*
|
||||
* @author zc
|
||||
* @since 2.0.0
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.youlai.system.plugin.syslog.annotation;
|
||||
package com.youlai.boot.common.annotation;
|
||||
|
||||
import com.youlai.system.enums.LogModuleEnum;
|
||||
import com.youlai.boot.common.enums.LogModuleEnum;
|
||||
|
||||
import java.lang.annotation.*;
|
||||
|
||||
@@ -13,7 +13,7 @@ import java.lang.annotation.*;
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target(ElementType.METHOD)
|
||||
@Documented
|
||||
public @interface LogAnnotation {
|
||||
public @interface Log {
|
||||
|
||||
String value() default "";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.plugin.norepeat.annotation;
|
||||
package com.youlai.boot.common.annotation;
|
||||
|
||||
|
||||
import java.lang.annotation.*;
|
||||
@@ -16,7 +16,7 @@ import java.lang.annotation.*;
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Documented
|
||||
@Inherited
|
||||
public @interface PreventRepeatSubmit {
|
||||
public @interface RepeatSubmit {
|
||||
|
||||
/**
|
||||
* 锁过期时间(秒)
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.plugin.easyexcel;
|
||||
package com.youlai.boot.common.base;
|
||||
|
||||
import com.alibaba.excel.event.AnalysisEventListener;
|
||||
|
||||
@@ -8,7 +8,7 @@ import com.alibaba.excel.event.AnalysisEventListener;
|
||||
* @author haoxr
|
||||
* @since 2023/03/01
|
||||
*/
|
||||
public abstract class MyAnalysisEventListener<T> extends AnalysisEventListener<T> {
|
||||
public abstract class BaseAnalysisEventListener<T> extends AnalysisEventListener<T> {
|
||||
|
||||
private String msg;
|
||||
public abstract String getMsg();
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.common.base;
|
||||
package com.youlai.boot.common.base;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.common.base;
|
||||
package com.youlai.boot.common.base;
|
||||
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.common.base;
|
||||
package com.youlai.boot.common.base;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.ToString;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.common.base;
|
||||
package com.youlai.boot.common.base;
|
||||
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.common.constant;
|
||||
package com.youlai.boot.common.constant;
|
||||
|
||||
/**
|
||||
* JWT Claims声明常量
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.common.constant;
|
||||
package com.youlai.boot.common.constant;
|
||||
|
||||
/**
|
||||
* Redis Key常量
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.common.constant;
|
||||
package com.youlai.boot.common.constant;
|
||||
|
||||
/**
|
||||
* 缓存常量
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.common.constant;
|
||||
package com.youlai.boot.common.constant;
|
||||
|
||||
/**
|
||||
* 符号和特殊符号常用类
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.common.constant;
|
||||
package com.youlai.boot.common.constant;
|
||||
|
||||
/**
|
||||
* 系统常量
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.enums;
|
||||
package com.youlai.boot.common.enums;
|
||||
|
||||
/**
|
||||
* EasyCaptcha 验证码类型枚举
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.enums;
|
||||
package com.youlai.boot.common.enums;
|
||||
|
||||
/**
|
||||
* 联系方式类型
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.youlai.system.enums;
|
||||
package com.youlai.boot.common.enums;
|
||||
|
||||
import com.youlai.system.common.base.IBaseEnum;
|
||||
import com.youlai.boot.common.base.IBaseEnum;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.youlai.system.enums;
|
||||
package com.youlai.boot.common.enums;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.EnumValue;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import com.youlai.system.common.base.IBaseEnum;
|
||||
import com.youlai.boot.common.base.IBaseEnum;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.youlai.system.enums;
|
||||
package com.youlai.boot.common.enums;
|
||||
|
||||
import com.youlai.system.common.base.IBaseEnum;
|
||||
import com.youlai.boot.common.base.IBaseEnum;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Getter;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.enums;
|
||||
package com.youlai.boot.common.enums;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.enums;
|
||||
package com.youlai.boot.common.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.youlai.system.enums;
|
||||
package com.youlai.boot.common.enums;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.EnumValue;
|
||||
import com.youlai.system.common.base.IBaseEnum;
|
||||
import com.youlai.boot.common.base.IBaseEnum;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.youlai.system.enums;
|
||||
package com.youlai.boot.common.enums;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.EnumValue;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import com.youlai.system.common.base.IBaseEnum;
|
||||
import com.youlai.boot.common.base.IBaseEnum;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.youlai.system.enums;
|
||||
package com.youlai.boot.common.enums;
|
||||
|
||||
import com.youlai.system.common.base.IBaseEnum;
|
||||
import com.youlai.boot.common.base.IBaseEnum;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.youlai.system.exception;
|
||||
package com.youlai.boot.common.exception;
|
||||
|
||||
import com.youlai.system.common.result.IResultCode;
|
||||
import com.youlai.boot.common.result.IResultCode;
|
||||
import lombok.Getter;
|
||||
import org.slf4j.helpers.MessageFormatter;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.youlai.system.exception;
|
||||
package com.youlai.boot.common.exception;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.youlai.system.common.result.Result;
|
||||
import com.youlai.system.common.result.ResultCode;
|
||||
import com.youlai.boot.common.result.Result;
|
||||
import com.youlai.boot.common.result.ResultCode;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.TypeMismatchException;
|
||||
import org.springframework.context.support.DefaultMessageSourceResolvable;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.common.model;
|
||||
package com.youlai.boot.common.model;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.common.model;
|
||||
package com.youlai.boot.common.model;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.common.result;
|
||||
package com.youlai.boot.common.result;
|
||||
|
||||
/**
|
||||
* 响应码接口
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.common.result;
|
||||
package com.youlai.boot.common.result;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import lombok.Data;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.common.result;
|
||||
package com.youlai.boot.common.result;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.common.result;
|
||||
package com.youlai.boot.common.result;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.NoArgsConstructor;
|
||||
@@ -1,5 +1,5 @@
|
||||
|
||||
package com.youlai.system.util;
|
||||
package com.youlai.boot.common.util;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.youlai.system.util;
|
||||
package com.youlai.boot.common.util;
|
||||
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.youlai.system.plugin.easyexcel.MyAnalysisEventListener;
|
||||
import com.youlai.boot.common.base.BaseAnalysisEventListener;
|
||||
|
||||
import java.io.InputStream;
|
||||
|
||||
@@ -13,7 +13,7 @@ import java.io.InputStream;
|
||||
*/
|
||||
public class ExcelUtils {
|
||||
|
||||
public static <T> String importExcel(InputStream is, Class clazz, MyAnalysisEventListener<T> listener) {
|
||||
public static <T> String importExcel(InputStream is, Class clazz, BaseAnalysisEventListener<T> listener) {
|
||||
EasyExcel.read(is, clazz, listener).sheet().doRead();
|
||||
return listener.getMsg();
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.util;
|
||||
package com.youlai.boot.common.util;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import jakarta.annotation.PostConstruct;
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.youlai.system.util;
|
||||
package com.youlai.boot.common.util;
|
||||
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.youlai.system.common.result.Result;
|
||||
import com.youlai.system.common.result.ResultCode;
|
||||
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;
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.youlai.system.config;
|
||||
package com.youlai.boot.config;
|
||||
|
||||
import cn.hutool.captcha.generator.CodeGenerator;
|
||||
import cn.hutool.captcha.generator.MathGenerator;
|
||||
import cn.hutool.captcha.generator.RandomGenerator;
|
||||
import com.youlai.system.config.property.CaptchaProperties;
|
||||
import com.youlai.boot.config.property.CaptchaProperties;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.config;
|
||||
package com.youlai.boot.config;
|
||||
|
||||
import org.springframework.boot.web.servlet.FilterRegistrationBean;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.youlai.system.config;
|
||||
package com.youlai.boot.config;
|
||||
|
||||
import com.youlai.system.config.property.MailProperties;
|
||||
import com.youlai.boot.config.property.MailProperties;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
@@ -1,12 +1,12 @@
|
||||
package com.youlai.system.config;
|
||||
package com.youlai.boot.config;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.DbType;
|
||||
import com.baomidou.mybatisplus.core.config.GlobalConfig;
|
||||
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
|
||||
import com.baomidou.mybatisplus.extension.plugins.inner.DataPermissionInterceptor;
|
||||
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
|
||||
import com.youlai.system.plugin.mybatis.handler.MyDataPermissionHandler;
|
||||
import com.youlai.system.plugin.mybatis.handler.MyMetaObjectHandler;
|
||||
import com.youlai.boot.core.handler.MyDataPermissionHandler;
|
||||
import com.youlai.boot.core.handler.MyMetaObjectHandler;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.config;
|
||||
package com.youlai.boot.config;
|
||||
|
||||
import org.springframework.boot.autoconfigure.cache.CacheProperties;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.config;
|
||||
package com.youlai.boot.config;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
@@ -1,15 +1,15 @@
|
||||
package com.youlai.system.config;
|
||||
package com.youlai.boot.config;
|
||||
|
||||
import cn.hutool.captcha.generator.CodeGenerator;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.youlai.system.common.constant.SecurityConstants;
|
||||
import com.youlai.system.config.property.SecurityProperties;
|
||||
import com.youlai.system.filter.RedisRateLimiterFilter;
|
||||
import com.youlai.system.security.exception.MyAccessDeniedHandler;
|
||||
import com.youlai.system.security.exception.MyAuthenticationEntryPoint;
|
||||
import com.youlai.system.filter.JwtValidationFilter;
|
||||
import com.youlai.system.filter.CaptchaValidationFilter;
|
||||
import com.youlai.system.service.SysConfigService;
|
||||
import com.youlai.boot.common.constant.SecurityConstants;
|
||||
import com.youlai.boot.config.property.SecurityProperties;
|
||||
import com.youlai.boot.core.filter.RateLimiterFilter;
|
||||
import com.youlai.boot.core.security.exception.MyAccessDeniedHandler;
|
||||
import com.youlai.boot.core.security.exception.MyAuthenticationEntryPoint;
|
||||
import com.youlai.boot.core.security.filter.JwtValidationFilter;
|
||||
import com.youlai.boot.core.security.filter.CaptchaValidationFilter;
|
||||
import com.youlai.boot.system.service.ConfigService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
@@ -45,9 +45,7 @@ public class SecurityConfig {
|
||||
private final RedisTemplate<String, Object> redisTemplate;
|
||||
private final CodeGenerator codeGenerator;
|
||||
private final SecurityProperties securityProperties;
|
||||
private final SysConfigService sysConfigService;
|
||||
|
||||
|
||||
private final ConfigService configService;
|
||||
|
||||
@Bean
|
||||
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
|
||||
@@ -68,7 +66,7 @@ public class SecurityConfig {
|
||||
|
||||
;
|
||||
// 限流过滤器
|
||||
http.addFilterBefore(new RedisRateLimiterFilter(redisTemplate, sysConfigService), UsernamePasswordAuthenticationFilter.class);
|
||||
http.addFilterBefore(new RateLimiterFilter(redisTemplate, configService), UsernamePasswordAuthenticationFilter.class);
|
||||
// 验证码校验过滤器
|
||||
http.addFilterBefore(new CaptchaValidationFilter(redisTemplate, codeGenerator), UsernamePasswordAuthenticationFilter.class);
|
||||
// JWT 校验过滤器
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.config;
|
||||
package com.youlai.boot.config;
|
||||
|
||||
import io.swagger.v3.oas.models.Components;
|
||||
import io.swagger.v3.oas.models.OpenAPI;
|
||||
@@ -68,7 +68,7 @@ public class SwaggerConfig {
|
||||
if (openApi.getPaths() != null) {
|
||||
openApi.getPaths().forEach((s, pathItem) -> {
|
||||
// 登录接口/验证码不需要添加鉴权参数
|
||||
if (s.equals("/api/v1/auth/login") || s.equals("/api/v1/auth/captcha")) {
|
||||
if ("/api/v1/auth/login".equals(s) || "/api/v1/auth/captcha".equals(s)) {
|
||||
return;
|
||||
}
|
||||
// 接口添加鉴权参数
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.config;
|
||||
package com.youlai.boot.config;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonParser;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
@@ -21,9 +21,7 @@ import org.springframework.validation.beanvalidation.SpringConstraintValidatorFa
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
|
||||
import java.math.BigInteger;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.List;
|
||||
import java.util.TimeZone;
|
||||
|
||||
/**
|
||||
* WebMvc 自动装配配置
|
||||
@@ -1,16 +1,12 @@
|
||||
package com.youlai.system.config;
|
||||
package com.youlai.boot.config;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.jwt.JWTPayload;
|
||||
import cn.hutool.jwt.JWTUtil;
|
||||
import com.youlai.system.common.constant.SecurityConstants;
|
||||
import com.youlai.system.event.UserConnectionEvent;
|
||||
import com.youlai.system.service.WebsocketService;
|
||||
import groovy.lang.Lazy;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import com.youlai.boot.common.constant.SecurityConstants;
|
||||
import com.youlai.boot.system.event.UserConnectionEvent;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.ApplicationEventPublisher;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.config;
|
||||
package com.youlai.boot.config;
|
||||
|
||||
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.config.property;
|
||||
package com.youlai.boot.config.property;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.config.property;
|
||||
package com.youlai.boot.config.property;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.config.property;
|
||||
package com.youlai.boot.config.property;
|
||||
|
||||
import cn.hutool.core.io.file.FileNameUtil;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.config.property;
|
||||
package com.youlai.boot.config.property;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.config.property;
|
||||
package com.youlai.boot.config.property;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
@@ -1,16 +1,15 @@
|
||||
package com.youlai.system.plugin.syslog.aspect;
|
||||
package com.youlai.boot.core.aspect;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.date.TimeInterval;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.http.useragent.UserAgent;
|
||||
import cn.hutool.http.useragent.UserAgentUtil;
|
||||
import com.youlai.system.common.constant.SecurityConstants;
|
||||
import com.youlai.system.util.IPUtils;
|
||||
import com.youlai.system.model.entity.SysLog;
|
||||
import com.youlai.system.plugin.syslog.annotation.LogAnnotation;
|
||||
import com.youlai.system.security.util.SecurityUtils;
|
||||
import com.youlai.system.service.SysLogService;
|
||||
import com.youlai.boot.common.constant.SecurityConstants;
|
||||
import com.youlai.boot.common.util.IPUtils;
|
||||
import com.youlai.boot.system.model.entity.Log;
|
||||
import com.youlai.boot.core.security.util.SecurityUtils;
|
||||
import com.youlai.boot.system.service.LogService;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -32,15 +31,15 @@ import org.springframework.stereotype.Component;
|
||||
@Slf4j
|
||||
public class LogAspect {
|
||||
|
||||
private final SysLogService logService;
|
||||
private final LogService logService;
|
||||
private final HttpServletRequest request;
|
||||
|
||||
@Pointcut("@annotation(com.youlai.system.plugin.syslog.annotation.LogAnnotation)")
|
||||
@Pointcut("@annotation(com.youlai.boot.common.annotation.Log)")
|
||||
public void logPointcut() {
|
||||
}
|
||||
|
||||
@Around("logPointcut() && @annotation(logAnnotation)")
|
||||
public Object logExecutionTime(ProceedingJoinPoint joinPoint, LogAnnotation logAnnotation) throws Throwable {
|
||||
public Object logExecutionTime(ProceedingJoinPoint joinPoint, com.youlai.boot.common.annotation.Log logAnnotation) throws Throwable {
|
||||
String requestURI = request.getRequestURI();
|
||||
|
||||
Long userId = null;
|
||||
@@ -55,7 +54,7 @@ public class LogAspect {
|
||||
long executionTime = timer.interval();
|
||||
|
||||
// 创建日志记录
|
||||
SysLog log = new SysLog();
|
||||
Log log = new Log();
|
||||
log.setModule(logAnnotation.module());
|
||||
log.setContent(logAnnotation.value());
|
||||
log.setRequestUri(requestURI);
|
||||
@@ -1,13 +1,13 @@
|
||||
package com.youlai.system.plugin.norepeat.aspect;
|
||||
package com.youlai.boot.core.aspect;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.jwt.JWTUtil;
|
||||
import cn.hutool.jwt.RegisteredPayload;
|
||||
import com.youlai.system.common.constant.RedisConstants;
|
||||
import com.youlai.system.common.constant.SecurityConstants;
|
||||
import com.youlai.system.exception.BusinessException;
|
||||
import com.youlai.system.common.result.ResultCode;
|
||||
import com.youlai.system.plugin.norepeat.annotation.PreventRepeatSubmit;
|
||||
import com.youlai.boot.common.constant.RedisConstants;
|
||||
import com.youlai.boot.common.constant.SecurityConstants;
|
||||
import com.youlai.boot.common.result.ResultCode;
|
||||
import com.youlai.boot.common.exception.BusinessException;
|
||||
import com.youlai.boot.common.annotation.RepeatSubmit;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -34,24 +34,24 @@ import java.util.concurrent.TimeUnit;
|
||||
@Component
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
public class DuplicateSubmitAspect {
|
||||
public class RepeatSubmitAspect {
|
||||
|
||||
private final RedissonClient redissonClient;
|
||||
|
||||
/**
|
||||
* 防重复提交切点
|
||||
*/
|
||||
@Pointcut("@annotation(preventRepeatSubmit)")
|
||||
public void preventDuplicateSubmitPointCut(PreventRepeatSubmit preventRepeatSubmit) {
|
||||
@Pointcut("@annotation(repeatSubmit)")
|
||||
public void preventDuplicateSubmitPointCut(RepeatSubmit repeatSubmit) {
|
||||
log.info("定义防重复提交切点");
|
||||
}
|
||||
|
||||
@Around("preventDuplicateSubmitPointCut(preventRepeatSubmit)")
|
||||
public Object doAround(ProceedingJoinPoint pjp, PreventRepeatSubmit preventRepeatSubmit) throws Throwable {
|
||||
@Around("preventDuplicateSubmitPointCut(repeatSubmit)")
|
||||
public Object doAround(ProceedingJoinPoint pjp, RepeatSubmit repeatSubmit) throws Throwable {
|
||||
|
||||
String resubmitLockKey = generateResubmitLockKey();
|
||||
if (resubmitLockKey != null) {
|
||||
int expire = preventRepeatSubmit.expire(); // 防重提交锁过期时间
|
||||
int expire = repeatSubmit.expire(); // 防重提交锁过期时间
|
||||
RLock lock = redissonClient.getLock(resubmitLockKey);
|
||||
boolean lockResult = lock.tryLock(0, expire, TimeUnit.SECONDS); // 获取锁失败,直接返回 false
|
||||
if (!lockResult) {
|
||||
@@ -1,10 +1,10 @@
|
||||
package com.youlai.system.filter;
|
||||
package com.youlai.boot.core.filter;
|
||||
|
||||
import com.youlai.system.common.constant.RedisConstants;
|
||||
import com.youlai.system.common.result.ResultCode;
|
||||
import com.youlai.system.service.SysConfigService;
|
||||
import com.youlai.system.util.IPUtils;
|
||||
import com.youlai.system.util.ResponseUtils;
|
||||
import com.youlai.boot.common.constant.RedisConstants;
|
||||
import com.youlai.boot.common.result.ResultCode;
|
||||
import com.youlai.boot.common.util.IPUtils;
|
||||
import com.youlai.boot.common.util.ResponseUtils;
|
||||
import com.youlai.boot.system.service.ConfigService;
|
||||
import jakarta.servlet.FilterChain;
|
||||
import jakarta.servlet.ServletException;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
@@ -24,14 +24,14 @@ import java.util.concurrent.TimeUnit;
|
||||
* @since 2024/08/10 14:38
|
||||
*/
|
||||
@Slf4j
|
||||
public class RedisRateLimiterFilter extends OncePerRequestFilter {
|
||||
public class RateLimiterFilter extends OncePerRequestFilter {
|
||||
|
||||
private final RedisTemplate<String, Object> redisTemplate;
|
||||
private final SysConfigService sysConfigService;
|
||||
private final ConfigService configService;
|
||||
|
||||
public RedisRateLimiterFilter(RedisTemplate<String, Object> redisTemplate, SysConfigService sysConfigService) {
|
||||
public RateLimiterFilter(RedisTemplate<String, Object> redisTemplate, ConfigService configService) {
|
||||
this.redisTemplate = redisTemplate;
|
||||
this.sysConfigService = sysConfigService;
|
||||
this.configService = configService;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -48,7 +48,7 @@ public class RedisRateLimiterFilter extends OncePerRequestFilter {
|
||||
if (count == null || count == 1) {
|
||||
redisTemplate.expire(key,1, TimeUnit.SECONDS);
|
||||
}
|
||||
Object systemConfig = sysConfigService.getSystemConfig(RedisConstants.IP_QPS_THRESHOLD_LIMIT_KEY);
|
||||
Object systemConfig = configService.getSystemConfig(RedisConstants.IP_QPS_THRESHOLD_LIMIT_KEY);
|
||||
long limit = 10;
|
||||
if(systemConfig != null){
|
||||
limit = Long.parseLong(systemConfig.toString());
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.filter;
|
||||
package com.youlai.boot.core.filter;
|
||||
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -1,12 +1,12 @@
|
||||
package com.youlai.system.plugin.mybatis.handler;
|
||||
package com.youlai.boot.core.handler;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.toolkit.StringPool;
|
||||
import com.baomidou.mybatisplus.extension.plugins.handler.DataPermissionHandler;
|
||||
import com.youlai.system.plugin.mybatis.annotation.DataPermission;
|
||||
import com.youlai.system.common.base.IBaseEnum;
|
||||
import com.youlai.system.enums.DataScopeEnum;
|
||||
import com.youlai.system.security.util.SecurityUtils;
|
||||
import com.youlai.boot.common.annotation.DataPermission;
|
||||
import com.youlai.boot.common.base.IBaseEnum;
|
||||
import com.youlai.boot.common.enums.DataScopeEnum;
|
||||
import com.youlai.boot.core.security.util.SecurityUtils;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.sf.jsqlparser.expression.Expression;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.plugin.mybatis.handler;
|
||||
package com.youlai.boot.core.handler;
|
||||
|
||||
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
|
||||
import org.apache.ibatis.reflection.MetaObject;
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.youlai.system.security.exception;
|
||||
package com.youlai.boot.core.security.exception;
|
||||
|
||||
import com.youlai.system.common.result.ResultCode;
|
||||
import com.youlai.system.util.ResponseUtils;
|
||||
import com.youlai.boot.common.result.ResultCode;
|
||||
import com.youlai.boot.common.util.ResponseUtils;
|
||||
import org.springframework.security.access.AccessDeniedException;
|
||||
import org.springframework.security.web.access.AccessDeniedHandler;
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.youlai.system.security.exception;
|
||||
package com.youlai.boot.core.security.exception;
|
||||
|
||||
import com.youlai.system.common.result.ResultCode;
|
||||
import com.youlai.system.util.ResponseUtils;
|
||||
import com.youlai.boot.common.result.ResultCode;
|
||||
import com.youlai.boot.common.util.ResponseUtils;
|
||||
import org.springframework.security.authentication.BadCredentialsException;
|
||||
import org.springframework.security.core.AuthenticationException;
|
||||
import org.springframework.security.web.AuthenticationEntryPoint;
|
||||
@@ -1,10 +1,10 @@
|
||||
package com.youlai.system.filter;
|
||||
package com.youlai.boot.core.security.filter;
|
||||
|
||||
import cn.hutool.captcha.generator.CodeGenerator;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.youlai.system.common.constant.SecurityConstants;
|
||||
import com.youlai.system.common.result.ResultCode;
|
||||
import com.youlai.system.util.ResponseUtils;
|
||||
import com.youlai.boot.common.constant.SecurityConstants;
|
||||
import com.youlai.boot.common.result.ResultCode;
|
||||
import com.youlai.boot.common.util.ResponseUtils;
|
||||
import jakarta.servlet.FilterChain;
|
||||
import jakarta.servlet.ServletException;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
@@ -1,14 +1,14 @@
|
||||
package com.youlai.system.filter;
|
||||
package com.youlai.boot.core.security.filter;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import cn.hutool.jwt.JWT;
|
||||
import cn.hutool.jwt.JWTPayload;
|
||||
import cn.hutool.jwt.JWTUtil;
|
||||
import com.youlai.system.common.constant.SecurityConstants;
|
||||
import com.youlai.system.common.result.ResultCode;
|
||||
import com.youlai.system.security.util.JwtUtils;
|
||||
import com.youlai.system.util.ResponseUtils;
|
||||
import com.youlai.boot.common.constant.SecurityConstants;
|
||||
import com.youlai.boot.common.result.ResultCode;
|
||||
import com.youlai.boot.core.security.util.JwtUtils;
|
||||
import com.youlai.boot.common.util.ResponseUtils;
|
||||
import jakarta.servlet.FilterChain;
|
||||
import jakarta.servlet.ServletException;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.youlai.system.security.model;
|
||||
package com.youlai.boot.core.security.model;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.youlai.system.model.dto.UserAuthInfo;
|
||||
import com.youlai.boot.system.model.dto.UserAuthInfo;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.youlai.system.security.service;
|
||||
package com.youlai.boot.core.security.service;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.youlai.system.common.constant.SecurityConstants;
|
||||
import com.youlai.system.security.util.SecurityUtils;
|
||||
import com.youlai.boot.common.constant.SecurityConstants;
|
||||
import com.youlai.boot.core.security.util.SecurityUtils;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.youlai.system.security.service;
|
||||
package com.youlai.boot.core.security.service;
|
||||
|
||||
import com.youlai.system.security.model.SysUserDetails;
|
||||
import com.youlai.system.model.dto.UserAuthInfo;
|
||||
import com.youlai.system.service.SysUserService;
|
||||
import com.youlai.boot.core.security.model.SysUserDetails;
|
||||
import com.youlai.boot.system.model.dto.UserAuthInfo;
|
||||
import com.youlai.boot.system.service.UserService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.security.core.userdetails.UserDetails;
|
||||
@@ -21,7 +21,7 @@ import org.springframework.stereotype.Service;
|
||||
@Slf4j
|
||||
public class SysUserDetailsService implements UserDetailsService {
|
||||
|
||||
private final SysUserService sysUserService;
|
||||
private final UserService userService;
|
||||
|
||||
/**
|
||||
* 根据用户名获取用户信息
|
||||
@@ -33,7 +33,7 @@ public class SysUserDetailsService implements UserDetailsService {
|
||||
@Override
|
||||
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
|
||||
try {
|
||||
UserAuthInfo userAuthInfo = sysUserService.getUserAuthInfo(username);
|
||||
UserAuthInfo userAuthInfo = userService.getUserAuthInfo(username);
|
||||
if (userAuthInfo == null) {
|
||||
throw new UsernameNotFoundException(username);
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.security.util;
|
||||
package com.youlai.boot.core.security.util;
|
||||
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
@@ -6,8 +6,8 @@ import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import cn.hutool.jwt.JWTPayload;
|
||||
import cn.hutool.jwt.JWTUtil;
|
||||
import com.youlai.system.common.constant.JwtClaimConstants;
|
||||
import com.youlai.system.security.model.SysUserDetails;
|
||||
import com.youlai.boot.common.constant.JwtClaimConstants;
|
||||
import com.youlai.boot.core.security.model.SysUserDetails;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
||||
import org.springframework.security.core.Authentication;
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.youlai.system.security.util;
|
||||
package com.youlai.boot.core.security.util;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.youlai.system.common.constant.SystemConstants;
|
||||
import com.youlai.system.security.model.SysUserDetails;
|
||||
import com.youlai.boot.common.constant.SystemConstants;
|
||||
import com.youlai.boot.core.security.model.SysUserDetails;
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.security.core.GrantedAuthority;
|
||||
import org.springframework.security.core.context.SecurityContextHolder;
|
||||
@@ -1,11 +1,11 @@
|
||||
package com.youlai.system.controller;
|
||||
package com.youlai.boot.platform.auth.controller;
|
||||
|
||||
import com.youlai.system.enums.LogModuleEnum;
|
||||
import com.youlai.system.common.result.Result;
|
||||
import com.youlai.system.model.dto.CaptchaResult;
|
||||
import com.youlai.system.model.dto.LoginResult;
|
||||
import com.youlai.system.plugin.syslog.annotation.LogAnnotation;
|
||||
import com.youlai.system.service.AuthService;
|
||||
import com.youlai.boot.common.enums.LogModuleEnum;
|
||||
import com.youlai.boot.common.result.Result;
|
||||
import com.youlai.boot.platform.auth.service.AuthService;
|
||||
import com.youlai.boot.system.model.dto.CaptchaResult;
|
||||
import com.youlai.boot.system.model.dto.LoginResult;
|
||||
import com.youlai.boot.common.annotation.Log;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
@@ -30,7 +30,7 @@ public class AuthController {
|
||||
|
||||
@Operation(summary = "登录")
|
||||
@PostMapping("/login")
|
||||
@LogAnnotation(value = "登录", module = LogModuleEnum.LOGIN)
|
||||
@Log(value = "登录", module = LogModuleEnum.LOGIN)
|
||||
public Result<LoginResult> login(
|
||||
@Parameter(description = "用户名", example = "admin") @RequestParam String username,
|
||||
@Parameter(description = "密码", example = "123456") @RequestParam String password
|
||||
@@ -41,7 +41,7 @@ public class AuthController {
|
||||
|
||||
@Operation(summary = "注销")
|
||||
@DeleteMapping("/logout")
|
||||
@LogAnnotation(value = "注销", module = LogModuleEnum.LOGIN)
|
||||
@Log(value = "注销", module = LogModuleEnum.LOGIN)
|
||||
public Result<?> logout() {
|
||||
authService.logout();
|
||||
return Result.success();
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.youlai.system.service;
|
||||
package com.youlai.boot.platform.auth.service;
|
||||
|
||||
import com.youlai.system.model.dto.CaptchaResult;
|
||||
import com.youlai.system.model.dto.LoginResult;
|
||||
import com.youlai.boot.system.model.dto.CaptchaResult;
|
||||
import com.youlai.boot.system.model.dto.LoginResult;
|
||||
|
||||
/**
|
||||
* 认证服务接口
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.service.impl;
|
||||
package com.youlai.boot.platform.auth.service.impl;
|
||||
|
||||
import cn.hutool.captcha.AbstractCaptcha;
|
||||
import cn.hutool.captcha.CaptchaUtil;
|
||||
@@ -8,13 +8,13 @@ import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import cn.hutool.jwt.JWTPayload;
|
||||
import cn.hutool.jwt.JWTUtil;
|
||||
import com.youlai.system.common.constant.SecurityConstants;
|
||||
import com.youlai.system.enums.CaptchaTypeEnum;
|
||||
import com.youlai.system.model.dto.CaptchaResult;
|
||||
import com.youlai.system.model.dto.LoginResult;
|
||||
import com.youlai.system.config.property.CaptchaProperties;
|
||||
import com.youlai.system.service.AuthService;
|
||||
import com.youlai.system.security.util.JwtUtils;
|
||||
import com.youlai.boot.common.constant.SecurityConstants;
|
||||
import com.youlai.boot.common.enums.CaptchaTypeEnum;
|
||||
import com.youlai.boot.platform.auth.service.AuthService;
|
||||
import com.youlai.boot.system.model.dto.CaptchaResult;
|
||||
import com.youlai.boot.system.model.dto.LoginResult;
|
||||
import com.youlai.boot.config.property.CaptchaProperties;
|
||||
import com.youlai.boot.core.security.util.JwtUtils;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.youlai.system.controller;
|
||||
package com.youlai.boot.platform.file.controller;
|
||||
|
||||
import com.youlai.system.common.result.Result;
|
||||
import com.youlai.system.model.dto.FileInfo;
|
||||
import com.youlai.system.service.OssService;
|
||||
import com.youlai.boot.common.result.Result;
|
||||
import com.youlai.boot.platform.file.service.FileService;
|
||||
import com.youlai.boot.system.model.dto.FileInfo;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.enums.ParameterIn;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
@@ -25,15 +25,21 @@ import org.springframework.web.multipart.MultipartFile;
|
||||
@RequiredArgsConstructor
|
||||
public class FileController {
|
||||
|
||||
private final OssService ossService;
|
||||
private final FileService fileService;
|
||||
|
||||
@PostMapping
|
||||
@Operation(summary = "文件上传")
|
||||
public Result<FileInfo> uploadFile(
|
||||
@Parameter(name = "file", description = "表单文件对象", required = true, in = ParameterIn.DEFAULT, schema = @Schema(name = "file", format = "binary"))
|
||||
@Parameter(
|
||||
name = "file",
|
||||
description = "表单文件对象",
|
||||
required = true,
|
||||
in = ParameterIn.DEFAULT,
|
||||
schema = @Schema(name = "file", format = "binary")
|
||||
)
|
||||
@RequestPart(value = "file") MultipartFile file
|
||||
) {
|
||||
FileInfo fileInfo = ossService.uploadFile(file);
|
||||
FileInfo fileInfo = fileService.uploadFile(file);
|
||||
return Result.success(fileInfo);
|
||||
}
|
||||
|
||||
@@ -43,7 +49,7 @@ public class FileController {
|
||||
public Result<?> deleteFile(
|
||||
@Parameter(description = "文件路径") @RequestParam String filePath
|
||||
) {
|
||||
boolean result = ossService.deleteFile(filePath);
|
||||
boolean result = fileService.deleteFile(filePath);
|
||||
return Result.judge(result);
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.youlai.system.service;
|
||||
package com.youlai.boot.platform.file.service;
|
||||
|
||||
import com.youlai.system.model.dto.FileInfo;
|
||||
import com.youlai.boot.system.model.dto.FileInfo;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
/**
|
||||
@@ -9,7 +9,7 @@ import org.springframework.web.multipart.MultipartFile;
|
||||
* @author haoxr
|
||||
* @since 2022/11/19
|
||||
*/
|
||||
public interface OssService {
|
||||
public interface FileService {
|
||||
|
||||
/**
|
||||
* 上传文件
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.service.impl.oss;
|
||||
package com.youlai.boot.platform.file.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
@@ -8,8 +8,8 @@ import com.aliyun.oss.OSS;
|
||||
import com.aliyun.oss.OSSClientBuilder;
|
||||
import com.aliyun.oss.model.ObjectMetadata;
|
||||
import com.aliyun.oss.model.PutObjectRequest;
|
||||
import com.youlai.system.model.dto.FileInfo;
|
||||
import com.youlai.system.service.OssService;
|
||||
import com.youlai.boot.platform.file.service.FileService;
|
||||
import com.youlai.boot.system.model.dto.FileInfo;
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import lombok.Data;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -33,7 +33,7 @@ import java.time.LocalDateTime;
|
||||
@ConfigurationProperties(prefix = "oss.aliyun")
|
||||
@RequiredArgsConstructor
|
||||
@Data
|
||||
public class AliyunOssService implements OssService {
|
||||
public class AliyunFileService implements FileService {
|
||||
/**
|
||||
* 服务Endpoint
|
||||
*/
|
||||
@@ -1,12 +1,12 @@
|
||||
package com.youlai.system.service.impl.oss;
|
||||
package com.youlai.boot.platform.file.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.youlai.system.model.dto.FileInfo;
|
||||
import com.youlai.system.service.OssService;
|
||||
import com.youlai.boot.platform.file.service.FileService;
|
||||
import com.youlai.boot.system.model.dto.FileInfo;
|
||||
import io.minio.*;
|
||||
import io.minio.errors.*;
|
||||
import io.minio.http.Method;
|
||||
@@ -36,7 +36,7 @@ import java.time.LocalDateTime;
|
||||
@ConfigurationProperties(prefix = "oss.minio")
|
||||
@RequiredArgsConstructor
|
||||
@Data
|
||||
public class MinioOssService implements OssService {
|
||||
public class MinioFileService implements FileService {
|
||||
|
||||
/**
|
||||
* 服务Endpoint
|
||||
@@ -102,7 +102,8 @@ public class MinioOssService implements OssService {
|
||||
|
||||
// 返回文件路径
|
||||
String fileUrl;
|
||||
if (StrUtil.isBlank(customDomain)) { // 未配置自定义域名
|
||||
// 未配置自定义域名
|
||||
if (StrUtil.isBlank(customDomain)) {
|
||||
GetPresignedObjectUrlArgs getPresignedObjectUrlArgs = GetPresignedObjectUrlArgs.builder()
|
||||
.bucket(bucketName).object(fileName)
|
||||
.method(Method.GET)
|
||||
@@ -1,16 +1,16 @@
|
||||
package com.youlai.system.controller;
|
||||
package com.youlai.boot.platform.generator.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.youlai.system.common.result.PageResult;
|
||||
import com.youlai.system.common.result.Result;
|
||||
import com.youlai.system.config.property.GeneratorProperties;
|
||||
import com.youlai.system.enums.LogModuleEnum;
|
||||
import com.youlai.system.model.form.GenConfigForm;
|
||||
import com.youlai.system.model.query.TablePageQuery;
|
||||
import com.youlai.system.model.vo.GeneratorPreviewVO;
|
||||
import com.youlai.system.model.vo.TablePageVO;
|
||||
import com.youlai.system.plugin.syslog.annotation.LogAnnotation;
|
||||
import com.youlai.system.service.GeneratorService;
|
||||
import com.youlai.boot.common.result.PageResult;
|
||||
import com.youlai.boot.common.result.Result;
|
||||
import com.youlai.boot.config.property.GeneratorProperties;
|
||||
import com.youlai.boot.common.enums.LogModuleEnum;
|
||||
import com.youlai.boot.platform.generator.service.GeneratorService;
|
||||
import com.youlai.boot.platform.generator.model.form.GenConfigForm;
|
||||
import com.youlai.boot.system.model.query.TablePageQuery;
|
||||
import com.youlai.boot.system.model.vo.GeneratorPreviewVO;
|
||||
import com.youlai.boot.system.model.vo.TablePageVO;
|
||||
import com.youlai.boot.common.annotation.Log;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
@@ -18,7 +18,6 @@ import jakarta.servlet.http.HttpServletResponse;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.util.UriUtils;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URLEncoder;
|
||||
@@ -42,7 +41,7 @@ public class GeneratorController {
|
||||
|
||||
@Operation(summary = "获取数据表分页列表")
|
||||
@GetMapping("/table/page")
|
||||
@LogAnnotation(value = "代码生成分页列表", module = LogModuleEnum.OTHER)
|
||||
@Log(value = "代码生成分页列表", module = LogModuleEnum.OTHER)
|
||||
public PageResult<TablePageVO> getTablePage(
|
||||
TablePageQuery queryParams
|
||||
) {
|
||||
@@ -61,7 +60,7 @@ public class GeneratorController {
|
||||
|
||||
@Operation(summary = "保存代码生成配置")
|
||||
@PostMapping("/{tableName}/config")
|
||||
@LogAnnotation(value = "生成代码", module = LogModuleEnum.OTHER)
|
||||
@Log(value = "生成代码", module = LogModuleEnum.OTHER)
|
||||
public Result<?> saveGenConfig(@RequestBody GenConfigForm formData) {
|
||||
generatorService.saveGenConfig(formData);
|
||||
return Result.success();
|
||||
@@ -78,7 +77,7 @@ public class GeneratorController {
|
||||
|
||||
@Operation(summary = "获取预览生成代码")
|
||||
@GetMapping("/{tableName}/preview")
|
||||
@LogAnnotation(value = "预览生成代码", module = LogModuleEnum.OTHER)
|
||||
@Log(value = "预览生成代码", module = LogModuleEnum.OTHER)
|
||||
public Result<List<GeneratorPreviewVO>> getTablePreviewData(@PathVariable String tableName) {
|
||||
List<GeneratorPreviewVO> list = generatorService.getTablePreviewData(tableName);
|
||||
return Result.success(list);
|
||||
@@ -86,7 +85,7 @@ public class GeneratorController {
|
||||
|
||||
@Operation(summary = "下载代码")
|
||||
@GetMapping("/{tableName}/download")
|
||||
@LogAnnotation(value = "下载代码", module = LogModuleEnum.OTHER)
|
||||
@Log(value = "下载代码", module = LogModuleEnum.OTHER)
|
||||
public void downloadZip(HttpServletResponse response, @PathVariable String tableName) throws IOException {
|
||||
String[] tableNames = tableName.split(",");
|
||||
byte[] data = generatorService.downloadCode(tableNames);
|
||||
@@ -1,25 +1,24 @@
|
||||
package com.youlai.system.mapper;
|
||||
package com.youlai.boot.platform.generator.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.youlai.system.model.bo.ColumnMetaData;
|
||||
import com.youlai.system.model.bo.TableMetaData;
|
||||
import com.youlai.system.model.entity.SysDept;
|
||||
import com.youlai.system.model.query.TablePageQuery;
|
||||
import com.youlai.system.model.vo.TablePageVO;
|
||||
import com.youlai.boot.system.model.bo.ColumnMetaData;
|
||||
import com.youlai.boot.system.model.bo.TableMetaData;
|
||||
import com.youlai.boot.system.model.entity.Dept;
|
||||
import com.youlai.boot.system.model.query.TablePageQuery;
|
||||
import com.youlai.boot.system.model.vo.TablePageVO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@Mapper
|
||||
public interface DatabaseMapper extends BaseMapper<SysDept> {
|
||||
public interface DatabaseMapper extends BaseMapper<Dept> {
|
||||
|
||||
|
||||
Page<TablePageVO> getTablePage(Page<TablePageVO> page, TablePageQuery queryParams);
|
||||
|
||||
List<ColumnMetaData> getTableColumns(String tableName);
|
||||
|
||||
|
||||
TableMetaData getTableMetadata(String tableName);
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.youlai.system.mapper;
|
||||
package com.youlai.boot.platform.generator.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.youlai.system.model.entity.GenConfig;
|
||||
import com.youlai.boot.platform.generator.model.entity.GenConfig;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.youlai.system.mapper;
|
||||
package com.youlai.boot.platform.generator.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.youlai.system.model.entity.GenFieldConfig;
|
||||
import com.youlai.boot.platform.generator.model.entity.GenFieldConfig;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.youlai.system.model.entity;
|
||||
package com.youlai.boot.platform.generator.model.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
|
||||
import com.youlai.system.common.base.BaseEntity;
|
||||
import com.youlai.boot.common.base.BaseEntity;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
package com.youlai.system.model.entity;
|
||||
package com.youlai.boot.platform.generator.model.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.youlai.system.common.base.BaseEntity;
|
||||
import com.youlai.system.enums.FormTypeEnum;
|
||||
import com.youlai.system.enums.QueryTypeEnum;
|
||||
import com.youlai.boot.common.base.BaseEntity;
|
||||
import com.youlai.boot.common.enums.FormTypeEnum;
|
||||
import com.youlai.boot.common.enums.QueryTypeEnum;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.youlai.system.model.form;
|
||||
package com.youlai.boot.platform.generator.model.form;
|
||||
|
||||
import com.youlai.system.enums.FormTypeEnum;
|
||||
import com.youlai.system.enums.QueryTypeEnum;
|
||||
import com.youlai.boot.common.enums.FormTypeEnum;
|
||||
import com.youlai.boot.common.enums.QueryTypeEnum;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.youlai.system.service;
|
||||
package com.youlai.boot.platform.generator.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.youlai.system.model.entity.GenConfig;
|
||||
import com.youlai.boot.platform.generator.model.entity.GenConfig;
|
||||
|
||||
/**
|
||||
* 代码生成配置接口
|
||||
@@ -1,8 +1,7 @@
|
||||
package com.youlai.system.service;
|
||||
package com.youlai.boot.platform.generator.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.youlai.system.model.entity.GenConfig;
|
||||
import com.youlai.system.model.entity.GenFieldConfig;
|
||||
import com.youlai.boot.platform.generator.model.entity.GenFieldConfig;
|
||||
|
||||
/**
|
||||
* 代码生成配置接口
|
||||
@@ -1,10 +1,10 @@
|
||||
package com.youlai.system.service;
|
||||
package com.youlai.boot.platform.generator.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.youlai.system.model.form.GenConfigForm;
|
||||
import com.youlai.system.model.query.TablePageQuery;
|
||||
import com.youlai.system.model.vo.GeneratorPreviewVO;
|
||||
import com.youlai.system.model.vo.TablePageVO;
|
||||
import com.youlai.boot.platform.generator.model.form.GenConfigForm;
|
||||
import com.youlai.boot.system.model.query.TablePageQuery;
|
||||
import com.youlai.boot.system.model.vo.GeneratorPreviewVO;
|
||||
import com.youlai.boot.system.model.vo.TablePageVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.youlai.system.service.impl;
|
||||
package com.youlai.boot.platform.generator.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.youlai.system.mapper.GenConfigMapper;
|
||||
import com.youlai.system.model.entity.GenConfig;
|
||||
import com.youlai.system.service.GenConfigService;
|
||||
import com.youlai.boot.platform.generator.mapper.GenConfigMapper;
|
||||
import com.youlai.boot.platform.generator.model.entity.GenConfig;
|
||||
import com.youlai.boot.platform.generator.service.GenConfigService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.youlai.system.service.impl;
|
||||
package com.youlai.boot.platform.generator.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.youlai.system.mapper.GenFieldConfigMapper;
|
||||
import com.youlai.system.model.entity.GenFieldConfig;
|
||||
import com.youlai.system.service.GenFieldConfigService;
|
||||
import com.youlai.boot.platform.generator.mapper.GenFieldConfigMapper;
|
||||
import com.youlai.boot.platform.generator.model.entity.GenFieldConfig;
|
||||
import com.youlai.boot.platform.generator.service.GenFieldConfigService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.service.impl;
|
||||
package com.youlai.boot.platform.generator.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
@@ -11,26 +11,26 @@ import cn.hutool.extra.template.TemplateEngine;
|
||||
import cn.hutool.extra.template.TemplateUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.youlai.system.SystemApplication;
|
||||
import com.youlai.system.config.property.GeneratorProperties;
|
||||
import com.youlai.system.converter.GenConfigConverter;
|
||||
import com.youlai.system.enums.FormTypeEnum;
|
||||
import com.youlai.system.enums.JavaTypeEnum;
|
||||
import com.youlai.system.enums.QueryTypeEnum;
|
||||
import com.youlai.system.exception.BusinessException;
|
||||
import com.youlai.system.mapper.DatabaseMapper;
|
||||
import com.youlai.system.model.bo.ColumnMetaData;
|
||||
import com.youlai.system.model.bo.TableMetaData;
|
||||
import com.youlai.system.model.entity.GenConfig;
|
||||
import com.youlai.system.model.entity.GenFieldConfig;
|
||||
import com.youlai.system.model.form.GenConfigForm;
|
||||
import com.youlai.system.model.query.TablePageQuery;
|
||||
import com.youlai.system.model.vo.GeneratorPreviewVO;
|
||||
import com.youlai.system.model.vo.TablePageVO;
|
||||
import com.youlai.system.service.GeneratorService;
|
||||
import com.youlai.system.service.GenConfigService;
|
||||
import com.youlai.system.service.GenFieldConfigService;
|
||||
import com.youlai.system.service.SysMenuService;
|
||||
import com.youlai.boot.YouLaiApplication;
|
||||
import com.youlai.boot.common.enums.FormTypeEnum;
|
||||
import com.youlai.boot.common.enums.JavaTypeEnum;
|
||||
import com.youlai.boot.common.enums.QueryTypeEnum;
|
||||
import com.youlai.boot.config.property.GeneratorProperties;
|
||||
import com.youlai.boot.platform.generator.service.GenConfigService;
|
||||
import com.youlai.boot.platform.generator.service.GenFieldConfigService;
|
||||
import com.youlai.boot.platform.generator.service.GeneratorService;
|
||||
import com.youlai.boot.system.converter.GenConfigConverter;
|
||||
import com.youlai.boot.common.exception.BusinessException;
|
||||
import com.youlai.boot.platform.generator.mapper.DatabaseMapper;
|
||||
import com.youlai.boot.system.model.bo.ColumnMetaData;
|
||||
import com.youlai.boot.system.model.bo.TableMetaData;
|
||||
import com.youlai.boot.platform.generator.model.entity.GenConfig;
|
||||
import com.youlai.boot.platform.generator.model.entity.GenFieldConfig;
|
||||
import com.youlai.boot.platform.generator.model.form.GenConfigForm;
|
||||
import com.youlai.boot.system.model.query.TablePageQuery;
|
||||
import com.youlai.boot.system.model.vo.GeneratorPreviewVO;
|
||||
import com.youlai.boot.system.model.vo.TablePageVO;
|
||||
import com.youlai.boot.system.service.MenuService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
@@ -40,7 +40,6 @@ import java.io.ByteArrayOutputStream;
|
||||
import java.io.File;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.zip.ZipOutputStream;
|
||||
|
||||
|
||||
@@ -59,7 +58,7 @@ public class GeneratorServiceImpl implements GeneratorService {
|
||||
private final GenConfigService genConfigService;
|
||||
private final GenFieldConfigService genFieldConfigService;
|
||||
private final GenConfigConverter genConfigConverter;
|
||||
private final SysMenuService menuService;
|
||||
private final MenuService menuService;
|
||||
|
||||
@Value("${spring.profiles.active}")
|
||||
private String springProfilesActive;
|
||||
@@ -113,7 +112,7 @@ public class GeneratorServiceImpl implements GeneratorService {
|
||||
String entityName = StrUtil.toCamelCase(StrUtil.removePrefix(tableName, tableName.split("_")[0]));
|
||||
genConfig.setEntityName(entityName);
|
||||
|
||||
String packageName = SystemApplication.class.getPackageName();
|
||||
String packageName = YouLaiApplication.class.getPackageName();
|
||||
genConfig.setPackageName(StrUtil.subBefore(packageName, ".", true));
|
||||
genConfig.setModuleName(StrUtil.subAfter(packageName, ".", true));
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.youlai.boot.platform.mail.controller;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
* 邮件控制层
|
||||
*
|
||||
* @author Ray
|
||||
* @since 2.10.0
|
||||
*/
|
||||
@RestController
|
||||
public class MailController {
|
||||
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.service;
|
||||
package com.youlai.boot.platform.mail.service;
|
||||
|
||||
/**
|
||||
* 邮件服务接口层
|
||||
@@ -16,7 +16,7 @@ public interface MailService {
|
||||
* @param subject 邮件主题
|
||||
* @param text 邮件内容
|
||||
*/
|
||||
boolean sendSimpleMail(String to, String subject, String text) ;
|
||||
void sendMail(String to, String subject, String text) ;
|
||||
|
||||
/**
|
||||
* 发送带附件的邮件
|
||||
@@ -26,6 +26,6 @@ public interface MailService {
|
||||
* @param text 邮件内容
|
||||
* @param filePath 附件路径
|
||||
*/
|
||||
boolean sendMailWithAttachment(String to, String subject, String text, String filePath);
|
||||
void sendMailWithAttachment(String to, String subject, String text, String filePath);
|
||||
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.youlai.system.service.impl.mail;
|
||||
package com.youlai.boot.platform.mail.service.impl;
|
||||
|
||||
import com.youlai.system.config.property.MailProperties;
|
||||
import com.youlai.system.service.MailService;
|
||||
import com.youlai.boot.config.property.MailProperties;
|
||||
import com.youlai.boot.platform.mail.service.MailService;
|
||||
import jakarta.mail.MessagingException;
|
||||
import jakarta.mail.internet.MimeMessage;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -37,7 +37,7 @@ public class MailServiceImpl implements MailService {
|
||||
* @param text 邮件内容
|
||||
*/
|
||||
@Override
|
||||
public boolean sendSimpleMail(String to, String subject, String text) {
|
||||
public void sendMail(String to, String subject, String text) {
|
||||
try {
|
||||
SimpleMailMessage message = new SimpleMailMessage();
|
||||
message.setFrom(mailProperties.getFrom());
|
||||
@@ -45,11 +45,8 @@ public class MailServiceImpl implements MailService {
|
||||
message.setSubject(subject);
|
||||
message.setText(text);
|
||||
mailSender.send(message);
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
log.error("发送邮件失败{}", e.getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,7 +59,7 @@ public class MailServiceImpl implements MailService {
|
||||
* @param filePath 附件路径
|
||||
*/
|
||||
@Override
|
||||
public boolean sendMailWithAttachment(String to, String subject, String text, String filePath) {
|
||||
public void sendMailWithAttachment(String to, String subject, String text, String filePath) {
|
||||
MimeMessage message = mailSender.createMimeMessage();
|
||||
try {
|
||||
MimeMessageHelper helper = new MimeMessageHelper(message, true);
|
||||
@@ -75,9 +72,8 @@ public class MailServiceImpl implements MailService {
|
||||
helper.addAttachment(file.getFilename(), file);
|
||||
|
||||
mailSender.send(message);
|
||||
return true;
|
||||
} catch (MessagingException e) {
|
||||
return false;
|
||||
log.error("发送邮件失败{}", e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.youlai.boot.platform.sms.controller;
|
||||
|
||||
import com.youlai.boot.platform.sms.service.SmsService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* 短信控制层
|
||||
*
|
||||
* @author Ray
|
||||
* @since 2.10.0
|
||||
*/
|
||||
public class SmsController {
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.service;
|
||||
package com.youlai.boot.platform.sms.service;
|
||||
|
||||
/**
|
||||
* 短信服务接口层
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.service.impl.sms;
|
||||
package com.youlai.boot.platform.sms.service.impl;
|
||||
|
||||
import com.aliyuncs.CommonRequest;
|
||||
import com.aliyuncs.CommonResponse;
|
||||
@@ -8,8 +8,8 @@ import com.aliyuncs.exceptions.ClientException;
|
||||
import com.aliyuncs.exceptions.ServerException;
|
||||
import com.aliyuncs.http.MethodType;
|
||||
import com.aliyuncs.profile.DefaultProfile;
|
||||
import com.youlai.system.config.property.AliyunSmsProperties;
|
||||
import com.youlai.system.service.SmsService;
|
||||
import com.youlai.boot.config.property.AliyunSmsProperties;
|
||||
import com.youlai.boot.platform.sms.service.SmsService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.youlai.system.controller;
|
||||
package com.youlai.boot.platform.websocket.controller;
|
||||
|
||||
import com.youlai.system.model.dto.ChatMessage;
|
||||
import com.youlai.boot.system.model.dto.ChatMessage;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.messaging.handler.annotation.DestinationVariable;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.service;
|
||||
package com.youlai.boot.platform.websocket.service;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.system.service.impl;
|
||||
package com.youlai.boot.platform.websocket.service.impl;
|
||||
|
||||
import com.youlai.system.event.UserConnectionEvent;
|
||||
import com.youlai.system.model.dto.ChatMessage;
|
||||
@@ -1,12 +1,12 @@
|
||||
package com.youlai.system.controller;
|
||||
package com.youlai.boot.system.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.youlai.system.common.result.PageResult;
|
||||
import com.youlai.system.common.result.Result;
|
||||
import com.youlai.system.model.form.ConfigForm;
|
||||
import com.youlai.system.model.query.ConfigPageQuery;
|
||||
import com.youlai.system.model.vo.ConfigVO;
|
||||
import com.youlai.system.service.SysConfigService;
|
||||
import com.youlai.boot.common.result.PageResult;
|
||||
import com.youlai.boot.common.result.Result;
|
||||
import com.youlai.boot.system.model.form.ConfigForm;
|
||||
import com.youlai.boot.system.model.query.ConfigPageQuery;
|
||||
import com.youlai.boot.system.model.vo.ConfigVO;
|
||||
import com.youlai.boot.system.service.ConfigService;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import jakarta.validation.Valid;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -29,15 +29,15 @@ import org.springframework.security.access.prepost.PreAuthorize;
|
||||
@RequiredArgsConstructor
|
||||
@Tag(name = "10.系统配置")
|
||||
@RequestMapping("/api/v1/config")
|
||||
public class SysConfigController {
|
||||
public class ConfigController {
|
||||
|
||||
private final SysConfigService sysConfigService;
|
||||
private final ConfigService configService;
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "系统配置分页列表")
|
||||
@PreAuthorize("@ss.hasPerm('sys:config:query')")
|
||||
public PageResult<ConfigVO> page(@ParameterObject ConfigPageQuery configPageQuery) {
|
||||
IPage<ConfigVO> result = sysConfigService.page(configPageQuery);
|
||||
IPage<ConfigVO> result = configService.page(configPageQuery);
|
||||
return PageResult.success(result);
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ public class SysConfigController {
|
||||
@PostMapping
|
||||
@PreAuthorize("@ss.hasPerm('sys:config:add')")
|
||||
public Result<?> save(@RequestBody @Valid ConfigForm configForm) {
|
||||
return Result.judge(sysConfigService.save(configForm));
|
||||
return Result.judge(configService.save(configForm));
|
||||
}
|
||||
|
||||
@Operation(summary = "获取系统配置表单数据")
|
||||
@@ -53,7 +53,7 @@ public class SysConfigController {
|
||||
public Result<ConfigForm> getConfigForm(
|
||||
@Parameter(description = "系统配置ID") @PathVariable Long id
|
||||
) {
|
||||
ConfigForm formData = sysConfigService.getConfigFormData(id);
|
||||
ConfigForm formData = configService.getConfigFormData(id);
|
||||
return Result.success(formData);
|
||||
}
|
||||
|
||||
@@ -61,21 +61,21 @@ public class SysConfigController {
|
||||
@PatchMapping
|
||||
@PreAuthorize("@ss.hasPerm('sys:config:refresh')")
|
||||
public Result<ConfigForm> refreshCache() {
|
||||
return Result.judge(sysConfigService.refreshCache());
|
||||
return Result.judge(configService.refreshCache());
|
||||
}
|
||||
|
||||
@PutMapping(value = "/{id}")
|
||||
@Operation(summary = "修改系统配置")
|
||||
@PreAuthorize("@ss.hasPerm('sys:config:update')")
|
||||
public Result<?> update(@Valid @PathVariable Long id, @RequestBody ConfigForm configForm) {
|
||||
return Result.judge(sysConfigService.edit(id, configForm));
|
||||
return Result.judge(configService.edit(id, configForm));
|
||||
}
|
||||
|
||||
@DeleteMapping("/{id}")
|
||||
@Operation(summary = "删除系统配置")
|
||||
@PreAuthorize("@ss.hasPerm('sys:config:delete')")
|
||||
public Result<?> delete(@PathVariable Long id) {
|
||||
return Result.judge(sysConfigService.delete(id));
|
||||
return Result.judge(configService.delete(id));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,14 +1,14 @@
|
||||
package com.youlai.system.controller;
|
||||
package com.youlai.boot.system.controller;
|
||||
|
||||
import com.youlai.system.enums.LogModuleEnum;
|
||||
import com.youlai.system.plugin.norepeat.annotation.PreventRepeatSubmit;
|
||||
import com.youlai.system.common.model.Option;
|
||||
import com.youlai.system.common.result.Result;
|
||||
import com.youlai.system.model.form.DeptForm;
|
||||
import com.youlai.system.model.query.DeptQuery;
|
||||
import com.youlai.system.model.vo.DeptVO;
|
||||
import com.youlai.system.plugin.syslog.annotation.LogAnnotation;
|
||||
import com.youlai.system.service.SysDeptService;
|
||||
import com.youlai.boot.common.enums.LogModuleEnum;
|
||||
import com.youlai.boot.common.annotation.RepeatSubmit;
|
||||
import com.youlai.boot.common.model.Option;
|
||||
import com.youlai.boot.common.result.Result;
|
||||
import com.youlai.boot.system.model.form.DeptForm;
|
||||
import com.youlai.boot.system.model.query.DeptQuery;
|
||||
import com.youlai.boot.system.model.vo.DeptVO;
|
||||
import com.youlai.boot.common.annotation.Log;
|
||||
import com.youlai.boot.system.service.DeptService;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
@@ -29,13 +29,13 @@ import java.util.List;
|
||||
@RestController
|
||||
@RequestMapping("/api/v1/dept")
|
||||
@RequiredArgsConstructor
|
||||
public class SysDeptController {
|
||||
public class DeptController {
|
||||
|
||||
private final SysDeptService deptService;
|
||||
private final DeptService deptService;
|
||||
|
||||
@Operation(summary = "部门列表")
|
||||
@GetMapping
|
||||
@LogAnnotation( value = "部门列表",module = LogModuleEnum.DEPT)
|
||||
@Log( value = "部门列表",module = LogModuleEnum.DEPT)
|
||||
public Result<List<DeptVO>> getDeptList(
|
||||
DeptQuery queryParams
|
||||
) {
|
||||
@@ -53,7 +53,7 @@ public class SysDeptController {
|
||||
@Operation(summary = "新增部门")
|
||||
@PostMapping
|
||||
@PreAuthorize("@ss.hasPerm('sys:dept:add')")
|
||||
@PreventRepeatSubmit
|
||||
@RepeatSubmit
|
||||
public Result<?> saveDept(
|
||||
@Valid @RequestBody DeptForm formData
|
||||
) {
|
||||
@@ -1,16 +1,16 @@
|
||||
package com.youlai.system.controller;
|
||||
package com.youlai.boot.system.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.youlai.system.common.model.Option;
|
||||
import com.youlai.system.common.result.PageResult;
|
||||
import com.youlai.system.common.result.Result;
|
||||
import com.youlai.system.enums.LogModuleEnum;
|
||||
import com.youlai.system.model.query.DictPageQuery;
|
||||
import com.youlai.system.model.vo.DictPageVO;
|
||||
import com.youlai.system.plugin.norepeat.annotation.PreventRepeatSubmit;
|
||||
import com.youlai.system.model.form.DictForm;
|
||||
import com.youlai.system.plugin.syslog.annotation.LogAnnotation;
|
||||
import com.youlai.system.service.SysDictService;
|
||||
import com.youlai.boot.common.model.Option;
|
||||
import com.youlai.boot.common.result.PageResult;
|
||||
import com.youlai.boot.common.result.Result;
|
||||
import com.youlai.boot.common.enums.LogModuleEnum;
|
||||
import com.youlai.boot.system.model.query.DictPageQuery;
|
||||
import com.youlai.boot.system.model.vo.DictPageVO;
|
||||
import com.youlai.boot.common.annotation.RepeatSubmit;
|
||||
import com.youlai.boot.system.model.form.DictForm;
|
||||
import com.youlai.boot.common.annotation.Log;
|
||||
import com.youlai.boot.system.service.DictService;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
@@ -30,13 +30,13 @@ import java.util.List;
|
||||
@RestController
|
||||
@RequestMapping("/api/v1/dict")
|
||||
@RequiredArgsConstructor
|
||||
public class SysDictController {
|
||||
public class DictController {
|
||||
|
||||
private final SysDictService dictService;
|
||||
private final DictService dictService;
|
||||
|
||||
@Operation(summary = "字典分页列表")
|
||||
@GetMapping("/page")
|
||||
@LogAnnotation( value = "字典分页列表",module = LogModuleEnum.DICT)
|
||||
@Log( value = "字典分页列表",module = LogModuleEnum.DICT)
|
||||
public PageResult<DictPageVO> getDictPage(
|
||||
DictPageQuery queryParams
|
||||
) {
|
||||
@@ -72,7 +72,7 @@ public class SysDictController {
|
||||
@Operation(summary = "新增字典")
|
||||
@PostMapping
|
||||
@PreAuthorize("@ss.hasPerm('sys:dict:add')")
|
||||
@PreventRepeatSubmit
|
||||
@RepeatSubmit
|
||||
public Result<?> saveDict(@RequestBody DictForm formData) {
|
||||
boolean result = dictService.saveDict(formData);
|
||||
return Result.judge(result);
|
||||
@@ -1,13 +1,13 @@
|
||||
package com.youlai.system.controller;
|
||||
package com.youlai.boot.system.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.youlai.system.common.result.PageResult;
|
||||
import com.youlai.system.common.result.Result;
|
||||
import com.youlai.system.model.query.LogPageQuery;
|
||||
import com.youlai.system.model.vo.LogPageVO;
|
||||
import com.youlai.system.model.vo.VisitStatsVO;
|
||||
import com.youlai.system.model.vo.VisitTrendVO;
|
||||
import com.youlai.system.service.SysLogService;
|
||||
import com.youlai.boot.common.result.PageResult;
|
||||
import com.youlai.boot.common.result.Result;
|
||||
import com.youlai.boot.system.model.query.LogPageQuery;
|
||||
import com.youlai.boot.system.model.vo.LogPageVO;
|
||||
import com.youlai.boot.system.model.vo.VisitStatsVO;
|
||||
import com.youlai.boot.system.model.vo.VisitTrendVO;
|
||||
import com.youlai.boot.system.service.LogService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
@@ -28,9 +28,9 @@ import java.util.List;
|
||||
@RestController
|
||||
@RequestMapping("/api/v1/logs")
|
||||
@RequiredArgsConstructor
|
||||
public class SysLogController {
|
||||
public class LogController {
|
||||
|
||||
private final SysLogService logService;
|
||||
private final LogService logService;
|
||||
|
||||
@Operation(summary = "日志分页列表")
|
||||
@GetMapping("/page")
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user