集成 Spring Boot Admin 监控服务端及客户端依赖,并新增 AdminServerConfig 配置类启用应用监控。
This commit is contained in:
20
src/main/java/com/youlai/boot/config/AdminServerConfig.java
Normal file
20
src/main/java/com/youlai/boot/config/AdminServerConfig.java
Normal file
@@ -0,0 +1,20 @@
|
||||
package com.youlai.boot.config;
|
||||
|
||||
import de.codecentric.boot.admin.server.config.EnableAdminServer;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
/**
|
||||
* Spring Boot Admin Server 配置
|
||||
* <p>
|
||||
* 启用应用监控服务端,提供可视化监控界面。
|
||||
* 访问地址:http://localhost:8800/admin
|
||||
* </p>
|
||||
*
|
||||
* @author Ray
|
||||
* @since 2024/1/1
|
||||
*/
|
||||
@Configuration
|
||||
@EnableAdminServer
|
||||
public class AdminServerConfig {
|
||||
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.boot.plugin.knife4j;
|
||||
package com.youlai.boot.config;
|
||||
|
||||
|
||||
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
|
||||
@@ -147,4 +147,4 @@ public class Knife4jOpenApiCustomizer extends com.github.xiaoymin.knife4j.spring
|
||||
}
|
||||
return classes;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.boot.plugin.mybatis;
|
||||
package com.youlai.boot.config;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.boot.plugin.mybatis;
|
||||
package com.youlai.boot.config;
|
||||
|
||||
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -5,8 +5,8 @@ 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.boot.plugin.mybatis.MyDataPermissionHandler;
|
||||
import com.youlai.boot.plugin.mybatis.MyMetaObjectHandler;
|
||||
import com.youlai.boot.config.MyDataPermissionHandler;
|
||||
import com.youlai.boot.config.MyMetaObjectHandler;
|
||||
import org.apache.ibatis.mapping.DatabaseIdProvider;
|
||||
import org.apache.ibatis.mapping.VendorDatabaseIdProvider;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
|
||||
@@ -1,9 +1,15 @@
|
||||
package com.youlai.boot.config;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.SerializationFeature;
|
||||
import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
|
||||
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.redis.connection.RedisConnectionFactory;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
|
||||
import org.springframework.data.redis.serializer.RedisSerializer;
|
||||
|
||||
/**
|
||||
@@ -29,11 +35,21 @@ public class RedisConfig {
|
||||
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
|
||||
redisTemplate.setConnectionFactory(redisConnectionFactory);
|
||||
|
||||
// Key 使用 String 序列化
|
||||
redisTemplate.setKeySerializer(RedisSerializer.string());
|
||||
redisTemplate.setValueSerializer(RedisSerializer.json());
|
||||
|
||||
redisTemplate.setHashKeySerializer(RedisSerializer.string());
|
||||
redisTemplate.setHashValueSerializer(RedisSerializer.json());
|
||||
|
||||
// Value 使用自定义 JSON 序列化(不写入类型信息,避免 HashSet 等集合被序列化成带 @class 的结构)
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
objectMapper.registerModule(new JavaTimeModule());
|
||||
objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
|
||||
// 禁用类型信息写入,避免集合类型名被当成元素
|
||||
objectMapper.disableDefaultTyping();
|
||||
|
||||
Jackson2JsonRedisSerializer<Object> jsonSerializer = new Jackson2JsonRedisSerializer<>(objectMapper, Object.class);
|
||||
|
||||
redisTemplate.setValueSerializer(jsonSerializer);
|
||||
redisTemplate.setHashValueSerializer(jsonSerializer);
|
||||
|
||||
redisTemplate.afterPropertiesSet();
|
||||
return redisTemplate;
|
||||
|
||||
@@ -14,7 +14,6 @@ import com.youlai.boot.security.provider.WechatMiniAuthenticationProvider;
|
||||
import com.youlai.boot.security.token.TokenManager;
|
||||
import com.youlai.boot.security.service.SysUserDetailsService;
|
||||
import com.youlai.boot.system.service.ConfigService;
|
||||
import com.youlai.boot.system.service.UserSocialService;
|
||||
import com.youlai.boot.system.service.UserService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@@ -33,6 +32,9 @@ import org.springframework.security.config.http.SessionCreationPolicy;
|
||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||
import org.springframework.security.web.SecurityFilterChain;
|
||||
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
|
||||
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* Spring Security 配置类
|
||||
@@ -58,17 +60,17 @@ public class SecurityConfig {
|
||||
private final SecurityProperties securityProperties;
|
||||
|
||||
private final WxMaService wxMaService;
|
||||
private final UserSocialService userSocialService;
|
||||
|
||||
private final RequestMappingHandlerMapping requestMappingHandlerMapping;
|
||||
|
||||
/**
|
||||
* 配置安全过滤链 SecurityFilterChain
|
||||
*/
|
||||
@Bean
|
||||
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
|
||||
|
||||
return http
|
||||
.authorizeHttpRequests(requestMatcherRegistry -> {
|
||||
// 配置无需登录即可访问的公开接口
|
||||
// 配置无需登录即可访问的公开接口(配置文件方式)
|
||||
String[] ignoreUrls = securityProperties.getIgnoreUrls();
|
||||
if (ArrayUtil.isNotEmpty(ignoreUrls)) {
|
||||
requestMatcherRegistry.requestMatchers(ignoreUrls).permitAll();
|
||||
@@ -138,8 +140,11 @@ public class SecurityConfig {
|
||||
* 微信小程序认证 Provider
|
||||
*/
|
||||
@Bean
|
||||
public WechatMiniAuthenticationProvider wechatMiniAuthenticationProvider() {
|
||||
return new WechatMiniAuthenticationProvider(wxMaService, userSocialService);
|
||||
public WechatMiniAuthenticationProvider wechatMiniAuthenticationProvider(
|
||||
WxMaService wxMaService,
|
||||
SysUserDetailsService sysUserDetailsService
|
||||
) {
|
||||
return new WechatMiniAuthenticationProvider(wxMaService, sysUserDetailsService);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -157,4 +162,5 @@ public class SecurityConfig {
|
||||
wechatMiniAuthenticationProvider
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
package com.youlai.boot.tool.codegen.controller;
|
||||
package com.youlai.boot.module.codegen.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.youlai.boot.core.web.PageResult;
|
||||
import com.youlai.boot.core.web.Result;
|
||||
import com.youlai.boot.config.property.CodegenProperties;
|
||||
import com.youlai.boot.common.enums.LogModuleEnum;
|
||||
import com.youlai.boot.tool.codegen.service.CodegenService;
|
||||
import com.youlai.boot.tool.codegen.model.form.GenConfigForm;
|
||||
import com.youlai.boot.tool.codegen.model.query.TableQuery;
|
||||
import com.youlai.boot.tool.codegen.model.vo.CodegenPreviewVO;
|
||||
import com.youlai.boot.tool.codegen.model.vo.TablePageVO;
|
||||
import com.youlai.boot.module.codegen.service.CodegenService;
|
||||
import com.youlai.boot.module.codegen.model.form.GenConfigForm;
|
||||
import com.youlai.boot.module.codegen.model.query.TableQuery;
|
||||
import com.youlai.boot.module.codegen.model.vo.CodegenPreviewVO;
|
||||
import com.youlai.boot.module.codegen.model.vo.TablePageVO;
|
||||
import com.youlai.boot.common.annotation.Log;
|
||||
import com.youlai.boot.tool.codegen.service.GenTableService;
|
||||
import com.youlai.boot.module.codegen.service.GenTableService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
@@ -106,8 +106,8 @@ public class CodegenController {
|
||||
outputStream.write(data);
|
||||
outputStream.flush();
|
||||
} catch (IOException e) {
|
||||
log.error("Error while writing the zip file to response", e);
|
||||
throw new RuntimeException("Failed to write the zip file to response", e);
|
||||
log.error("Error while writing the zip file1 to response", e);
|
||||
throw new RuntimeException("Failed to write the zip file1 to response", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.youlai.boot.tool.codegen.converter;
|
||||
package com.youlai.boot.module.codegen.converter;
|
||||
|
||||
import com.youlai.boot.tool.codegen.model.entity.GenTable;
|
||||
import com.youlai.boot.tool.codegen.model.entity.GenTableColumn;
|
||||
import com.youlai.boot.tool.codegen.model.form.GenConfigForm;
|
||||
import com.youlai.boot.module.codegen.model.entity.GenTable;
|
||||
import com.youlai.boot.module.codegen.model.entity.GenTableColumn;
|
||||
import com.youlai.boot.module.codegen.model.form.GenConfigForm;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
|
||||
@@ -38,4 +38,4 @@ public interface CodegenConverter {
|
||||
|
||||
GenTableColumn toGenTableColumn(GenConfigForm.FieldConfig fieldConfig);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.boot.tool.codegen.enums;
|
||||
package com.youlai.boot.module.codegen.enums;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.EnumValue;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.boot.tool.codegen.enums;
|
||||
package com.youlai.boot.module.codegen.enums;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.boot.tool.codegen.enums;
|
||||
package com.youlai.boot.module.codegen.enums;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.EnumValue;
|
||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
@@ -1,11 +1,11 @@
|
||||
package com.youlai.boot.tool.codegen.mapper;
|
||||
package com.youlai.boot.module.codegen.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.youlai.boot.tool.codegen.model.bo.ColumnMetaData;
|
||||
import com.youlai.boot.tool.codegen.model.bo.TableMetaData;
|
||||
import com.youlai.boot.tool.codegen.model.query.TableQuery;
|
||||
import com.youlai.boot.tool.codegen.model.vo.TablePageVO;
|
||||
import com.youlai.boot.module.codegen.model.bo.ColumnMetaData;
|
||||
import com.youlai.boot.module.codegen.model.bo.TableMetaData;
|
||||
import com.youlai.boot.module.codegen.model.query.TableQuery;
|
||||
import com.youlai.boot.module.codegen.model.vo.TablePageVO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.youlai.boot.tool.codegen.mapper;
|
||||
package com.youlai.boot.module.codegen.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.youlai.boot.tool.codegen.model.entity.GenTableColumn;
|
||||
import com.youlai.boot.module.codegen.model.entity.GenTableColumn;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.youlai.boot.tool.codegen.mapper;
|
||||
package com.youlai.boot.module.codegen.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.youlai.boot.tool.codegen.model.entity.GenTable;
|
||||
import com.youlai.boot.module.codegen.model.entity.GenTable;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.boot.tool.codegen.model.bo;
|
||||
package com.youlai.boot.module.codegen.model.bo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.boot.tool.codegen.model.bo;
|
||||
package com.youlai.boot.module.codegen.model.bo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.boot.tool.codegen.model.entity;
|
||||
package com.youlai.boot.module.codegen.model.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
package com.youlai.boot.tool.codegen.model.entity;
|
||||
package com.youlai.boot.module.codegen.model.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.youlai.boot.common.base.BaseEntity;
|
||||
import com.youlai.boot.tool.codegen.enums.FormTypeEnum;
|
||||
import com.youlai.boot.tool.codegen.enums.QueryTypeEnum;
|
||||
import com.youlai.boot.module.codegen.enums.FormTypeEnum;
|
||||
import com.youlai.boot.module.codegen.enums.QueryTypeEnum;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.youlai.boot.tool.codegen.model.form;
|
||||
package com.youlai.boot.module.codegen.model.form;
|
||||
|
||||
import com.youlai.boot.tool.codegen.enums.FormTypeEnum;
|
||||
import com.youlai.boot.tool.codegen.enums.QueryTypeEnum;
|
||||
import com.youlai.boot.module.codegen.enums.FormTypeEnum;
|
||||
import com.youlai.boot.module.codegen.enums.QueryTypeEnum;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.boot.tool.codegen.model.query;
|
||||
package com.youlai.boot.module.codegen.model.query;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.youlai.boot.common.base.BaseQuery;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.boot.tool.codegen.model.query;
|
||||
package com.youlai.boot.module.codegen.model.query;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.youlai.boot.common.base.BaseQuery;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.boot.tool.codegen.model.vo;
|
||||
package com.youlai.boot.module.codegen.model.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.boot.tool.codegen.model.vo;
|
||||
package com.youlai.boot.module.codegen.model.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.youlai.boot.tool.codegen.service;
|
||||
package com.youlai.boot.module.codegen.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.youlai.boot.tool.codegen.model.query.TableQuery;
|
||||
import com.youlai.boot.tool.codegen.model.vo.CodegenPreviewVO;
|
||||
import com.youlai.boot.tool.codegen.model.vo.TablePageVO;
|
||||
import com.youlai.boot.module.codegen.model.query.TableQuery;
|
||||
import com.youlai.boot.module.codegen.model.vo.CodegenPreviewVO;
|
||||
import com.youlai.boot.module.codegen.model.vo.TablePageVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.youlai.boot.tool.codegen.service;
|
||||
package com.youlai.boot.module.codegen.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.youlai.boot.tool.codegen.model.entity.GenTableColumn;
|
||||
import com.youlai.boot.module.codegen.model.entity.GenTableColumn;
|
||||
|
||||
/**
|
||||
* 代码生成配置接口
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.youlai.boot.tool.codegen.service;
|
||||
package com.youlai.boot.module.codegen.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.youlai.boot.tool.codegen.model.entity.GenTable;
|
||||
import com.youlai.boot.tool.codegen.model.form.GenConfigForm;
|
||||
import com.youlai.boot.module.codegen.model.entity.GenTable;
|
||||
import com.youlai.boot.module.codegen.model.form.GenConfigForm;
|
||||
|
||||
/**
|
||||
* 代码生成配置接口
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.boot.tool.codegen.service.impl;
|
||||
package com.youlai.boot.module.codegen.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
@@ -11,18 +11,18 @@ 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.boot.tool.codegen.enums.JavaTypeEnum;
|
||||
import com.youlai.boot.module.codegen.enums.JavaTypeEnum;
|
||||
import com.youlai.boot.config.property.CodegenProperties;
|
||||
import com.youlai.boot.tool.codegen.service.GenTableService;
|
||||
import com.youlai.boot.tool.codegen.service.GenTableColumnService;
|
||||
import com.youlai.boot.tool.codegen.service.CodegenService;
|
||||
import com.youlai.boot.module.codegen.service.GenTableService;
|
||||
import com.youlai.boot.module.codegen.service.GenTableColumnService;
|
||||
import com.youlai.boot.module.codegen.service.CodegenService;
|
||||
import com.youlai.boot.core.exception.BusinessException;
|
||||
import com.youlai.boot.tool.codegen.mapper.DatabaseMapper;
|
||||
import com.youlai.boot.tool.codegen.model.entity.GenTable;
|
||||
import com.youlai.boot.tool.codegen.model.entity.GenTableColumn;
|
||||
import com.youlai.boot.tool.codegen.model.query.TableQuery;
|
||||
import com.youlai.boot.tool.codegen.model.vo.CodegenPreviewVO;
|
||||
import com.youlai.boot.tool.codegen.model.vo.TablePageVO;
|
||||
import com.youlai.boot.module.codegen.mapper.DatabaseMapper;
|
||||
import com.youlai.boot.module.codegen.model.entity.GenTable;
|
||||
import com.youlai.boot.module.codegen.model.entity.GenTableColumn;
|
||||
import com.youlai.boot.module.codegen.model.query.TableQuery;
|
||||
import com.youlai.boot.module.codegen.model.vo.CodegenPreviewVO;
|
||||
import com.youlai.boot.module.codegen.model.vo.TablePageVO;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -390,7 +390,7 @@ public class CodegenServiceImpl implements CodegenService {
|
||||
|
||||
} catch (IOException e) {
|
||||
log.error("Error while generating zip for code download", e);
|
||||
throw new RuntimeException("Failed to generate code zip file", e);
|
||||
throw new RuntimeException("Failed to generate code zip file1", e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -421,7 +421,7 @@ public class CodegenServiceImpl implements CodegenService {
|
||||
zip.closeEntry();
|
||||
|
||||
} catch (IOException e) {
|
||||
log.error("Error while adding file {} to zip", fileName, e);
|
||||
log.error("Error while adding file1 {} to zip", fileName, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.youlai.boot.tool.codegen.service.impl;
|
||||
package com.youlai.boot.module.codegen.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.youlai.boot.tool.codegen.mapper.GenTableColumnMapper;
|
||||
import com.youlai.boot.tool.codegen.model.entity.GenTableColumn;
|
||||
import com.youlai.boot.tool.codegen.service.GenTableColumnService;
|
||||
import com.youlai.boot.module.codegen.mapper.GenTableColumnMapper;
|
||||
import com.youlai.boot.module.codegen.model.entity.GenTableColumn;
|
||||
import com.youlai.boot.module.codegen.service.GenTableColumnService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.boot.tool.codegen.service.impl;
|
||||
package com.youlai.boot.module.codegen.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
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.youlai.boot.YouLaiBootApplication;
|
||||
import com.youlai.boot.common.enums.EnvEnum;
|
||||
import com.youlai.boot.tool.codegen.enums.FormTypeEnum;
|
||||
import com.youlai.boot.tool.codegen.enums.JavaTypeEnum;
|
||||
import com.youlai.boot.tool.codegen.enums.QueryTypeEnum;
|
||||
import com.youlai.boot.module.codegen.enums.FormTypeEnum;
|
||||
import com.youlai.boot.module.codegen.enums.JavaTypeEnum;
|
||||
import com.youlai.boot.module.codegen.enums.QueryTypeEnum;
|
||||
import com.youlai.boot.core.exception.BusinessException;
|
||||
import com.youlai.boot.config.property.CodegenProperties;
|
||||
import com.youlai.boot.tool.codegen.converter.CodegenConverter;
|
||||
import com.youlai.boot.tool.codegen.mapper.DatabaseMapper;
|
||||
import com.youlai.boot.tool.codegen.mapper.GenTableMapper;
|
||||
import com.youlai.boot.tool.codegen.model.bo.ColumnMetaData;
|
||||
import com.youlai.boot.tool.codegen.model.bo.TableMetaData;
|
||||
import com.youlai.boot.tool.codegen.model.entity.GenTable;
|
||||
import com.youlai.boot.tool.codegen.model.entity.GenTableColumn;
|
||||
import com.youlai.boot.tool.codegen.model.form.GenConfigForm;
|
||||
import com.youlai.boot.tool.codegen.service.GenTableService;
|
||||
import com.youlai.boot.tool.codegen.service.GenTableColumnService;
|
||||
import com.youlai.boot.module.codegen.converter.CodegenConverter;
|
||||
import com.youlai.boot.module.codegen.mapper.DatabaseMapper;
|
||||
import com.youlai.boot.module.codegen.mapper.GenTableMapper;
|
||||
import com.youlai.boot.module.codegen.model.bo.ColumnMetaData;
|
||||
import com.youlai.boot.module.codegen.model.bo.TableMetaData;
|
||||
import com.youlai.boot.module.codegen.model.entity.GenTable;
|
||||
import com.youlai.boot.module.codegen.model.entity.GenTableColumn;
|
||||
import com.youlai.boot.module.codegen.model.form.GenConfigForm;
|
||||
import com.youlai.boot.module.codegen.service.GenTableService;
|
||||
import com.youlai.boot.module.codegen.service.GenTableColumnService;
|
||||
import com.youlai.boot.system.service.MenuService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.youlai.boot.file.controller;
|
||||
package com.youlai.boot.module.file.controller;
|
||||
|
||||
import com.youlai.boot.core.web.Result;
|
||||
import com.youlai.boot.file.service.FileService;
|
||||
import com.youlai.boot.file.model.FileInfo;
|
||||
import com.youlai.boot.module.file.service.FileService;
|
||||
import com.youlai.boot.module.file.model.FileInfo;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.enums.ParameterIn;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
@@ -31,13 +31,13 @@ public class FileController {
|
||||
@Operation(summary = "文件上传")
|
||||
public Result<FileInfo> uploadFile(
|
||||
@Parameter(
|
||||
name = "file",
|
||||
name = "file1",
|
||||
description = "表单文件对象",
|
||||
required = true,
|
||||
in = ParameterIn.DEFAULT,
|
||||
schema = @Schema(name = "file", format = "binary")
|
||||
schema = @Schema(name = "file1", format = "binary")
|
||||
)
|
||||
@RequestPart(value = "file") MultipartFile file
|
||||
@RequestPart(value = "file1") MultipartFile file
|
||||
) {
|
||||
FileInfo fileInfo = fileService.uploadFile(file);
|
||||
return Result.success(fileInfo);
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.boot.file.model;
|
||||
package com.youlai.boot.module.file.model;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.youlai.boot.file.service;
|
||||
package com.youlai.boot.module.file.service;
|
||||
|
||||
import com.youlai.boot.file.model.FileInfo;
|
||||
import com.youlai.boot.module.file.model.FileInfo;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
/**
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.boot.file.service.impl;
|
||||
package com.youlai.boot.module.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.boot.file.service.FileService;
|
||||
import com.youlai.boot.file.model.FileInfo;
|
||||
import com.youlai.boot.module.file.service.FileService;
|
||||
import com.youlai.boot.module.file.model.FileInfo;
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import lombok.Data;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -1,11 +1,11 @@
|
||||
package com.youlai.boot.file.service.impl;
|
||||
package com.youlai.boot.module.file.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DatePattern;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import com.youlai.boot.file.model.FileInfo;
|
||||
import com.youlai.boot.file.service.FileService;
|
||||
import com.youlai.boot.module.file.model.FileInfo;
|
||||
import com.youlai.boot.module.file.service.FileService;
|
||||
import lombok.Data;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.youlai.boot.file.service.impl;
|
||||
package com.youlai.boot.module.file.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
@@ -7,8 +7,8 @@ import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.youlai.boot.core.exception.BusinessException;
|
||||
import com.youlai.boot.core.web.ResultCode;
|
||||
import com.youlai.boot.file.model.FileInfo;
|
||||
import com.youlai.boot.file.service.FileService;
|
||||
import com.youlai.boot.module.file.model.FileInfo;
|
||||
import com.youlai.boot.module.file.service.FileService;
|
||||
import io.minio.*;
|
||||
import io.minio.http.Method;
|
||||
import jakarta.annotation.PostConstruct;
|
||||
@@ -7,9 +7,8 @@ import com.youlai.boot.security.exception.NeedBindMobileException;
|
||||
import com.youlai.boot.security.model.SysUserDetails;
|
||||
import com.youlai.boot.security.model.UserAuthInfo;
|
||||
import com.youlai.boot.security.model.WechatMiniAuthenticationToken;
|
||||
import com.youlai.boot.system.enums.SocialPlatformEnum;
|
||||
import com.youlai.boot.security.service.SysUserDetailsService;
|
||||
import com.youlai.boot.system.model.entity.UserSocial;
|
||||
import com.youlai.boot.system.service.UserSocialService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import me.chanjar.weixin.common.error.WxErrorException;
|
||||
@@ -27,7 +26,7 @@ import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
||||
public class WechatMiniAuthenticationProvider implements AuthenticationProvider {
|
||||
|
||||
private final WxMaService wxMaService;
|
||||
private final UserSocialService userSocialService;
|
||||
private final SysUserDetailsService sysUserDetailsService;
|
||||
|
||||
@Override
|
||||
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
|
||||
@@ -47,7 +46,7 @@ public class WechatMiniAuthenticationProvider implements AuthenticationProvider
|
||||
log.info("微信小程序登录:openid={}", openid);
|
||||
|
||||
// 2. 根据 openid 查询绑定信息
|
||||
UserSocial userSocial = userSocialService.getByPlatformAndOpenid(SocialPlatformEnum.WECHAT_MINI, openid);
|
||||
UserSocial userSocial = sysUserDetailsService.getWechatMiniBindInfo(openid);
|
||||
|
||||
if (userSocial == null) {
|
||||
// 未绑定,抛出异常提示需要绑定手机号
|
||||
@@ -56,7 +55,7 @@ public class WechatMiniAuthenticationProvider implements AuthenticationProvider
|
||||
}
|
||||
|
||||
// 3. 获取用户认证信息
|
||||
UserAuthInfo userAuthInfo = userSocialService.getAuthInfoByOpenid(SocialPlatformEnum.WECHAT_MINI, openid);
|
||||
UserAuthInfo userAuthInfo = sysUserDetailsService.getAuthInfoByWechatOpenid(openid);
|
||||
|
||||
if (userAuthInfo == null) {
|
||||
log.warn("微信小程序登录失败:用户不存在,openid={}", openid);
|
||||
@@ -70,7 +69,7 @@ public class WechatMiniAuthenticationProvider implements AuthenticationProvider
|
||||
}
|
||||
|
||||
// 5. 更新 session_key
|
||||
userSocialService.updateSessionKey(userSocial.getId(), sessionKey);
|
||||
sysUserDetailsService.updateWechatSessionKey(userSocial.getId(), sessionKey);
|
||||
|
||||
// 6. 构建已认证 Token
|
||||
SysUserDetails userDetails = new SysUserDetails(userAuthInfo);
|
||||
|
||||
@@ -2,6 +2,9 @@ package com.youlai.boot.security.service;
|
||||
|
||||
import com.youlai.boot.security.model.SysUserDetails;
|
||||
import com.youlai.boot.security.model.UserAuthInfo;
|
||||
import com.youlai.boot.system.enums.SocialPlatformEnum;
|
||||
import com.youlai.boot.system.model.entity.UserSocial;
|
||||
import com.youlai.boot.system.service.UserSocialService;
|
||||
import com.youlai.boot.system.service.UserService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -22,6 +25,7 @@ import org.springframework.stereotype.Service;
|
||||
public class SysUserDetailsService implements UserDetailsService {
|
||||
|
||||
private final UserService userService;
|
||||
private final UserSocialService userSocialService;
|
||||
|
||||
/**
|
||||
* 根据用户名获取用户信息
|
||||
@@ -45,4 +49,34 @@ public class SysUserDetailsService implements UserDetailsService {
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据微信小程序openid查询绑定信息
|
||||
*
|
||||
* @param openid 微信小程序openid
|
||||
* @return 绑定信息,未绑定返回null
|
||||
*/
|
||||
public UserSocial getWechatMiniBindInfo(String openid) {
|
||||
return userSocialService.getByPlatformAndOpenid(SocialPlatformEnum.WECHAT_MINI, openid);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据微信小程序openid获取用户认证信息
|
||||
*
|
||||
* @param openid 微信小程序openid
|
||||
* @return 用户认证信息,用户不存在返回null
|
||||
*/
|
||||
public UserAuthInfo getAuthInfoByWechatOpenid(String openid) {
|
||||
return userSocialService.getAuthInfoByOpenid(SocialPlatformEnum.WECHAT_MINI, openid);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新微信小程序session_key
|
||||
*
|
||||
* @param bindId 绑定记录ID
|
||||
* @param sessionKey session_key
|
||||
*/
|
||||
public void updateWechatSessionKey(Long bindId, String sessionKey) {
|
||||
userSocialService.updateSessionKey(bindId, sessionKey);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.youlai.boot.system.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.youlai.boot.tool.codegen.model.entity.GenTable;
|
||||
import com.youlai.boot.module.codegen.model.entity.GenTable;
|
||||
import com.youlai.boot.system.model.form.MenuForm;
|
||||
import com.youlai.boot.common.model.Option;
|
||||
import com.youlai.boot.system.model.entity.Menu;
|
||||
@@ -13,7 +13,7 @@ import java.util.List;
|
||||
|
||||
/**
|
||||
* 菜单业务接口
|
||||
*
|
||||
*
|
||||
* @author haoxr
|
||||
* @since 2020/11/06
|
||||
*/
|
||||
@@ -52,7 +52,7 @@ public interface MenuService extends IService<Menu> {
|
||||
|
||||
/**
|
||||
* 修改菜单显示状态
|
||||
*
|
||||
*
|
||||
* @param menuId 菜单ID
|
||||
* @param visible 是否显示(1-显示 0-隐藏)
|
||||
*/
|
||||
|
||||
@@ -7,7 +7,7 @@ import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.youlai.boot.tool.codegen.model.entity.GenTable;
|
||||
import com.youlai.boot.module.codegen.model.entity.GenTable;
|
||||
import com.youlai.boot.security.util.SecurityUtils;
|
||||
import com.youlai.boot.system.converter.MenuConverter;
|
||||
import com.youlai.boot.system.mapper.MenuMapper;
|
||||
|
||||
Reference in New Issue
Block a user