From 50a01b33093e5981e81ddd33d9424d4ded0459b0 Mon Sep 17 00:00:00 2001
From: bunny <1319900154@qq.com>
Date: Mon, 1 Apr 2024 21:44:38 +0800
Subject: [PATCH] =?UTF-8?q?feat(=E6=96=B0=E5=A2=9E):=20=E9=85=8D=E7=BD=AE?=
=?UTF-8?q?=E7=9B=B8=E5=85=B3=E5=86=85=E5=AE=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.gitignore | 4 +-
.idea/dataSources.xml | 18 +++
.idea/uiDesigner.xml | 124 ++++++++++++++++++
.../java/com/atguigu/common/utils/MD5.java | 30 +++++
common/pom.xml | 6 +
.../common/config/RedisConfiguration.java | 99 ++++++++++++++
...gger2Config.java => WebKnife4jConfig.java} | 39 +-----
.../common/properties/MinioProperties.java | 27 ++++
.../com/atguigu/ssyx/vo/acl/LoginInfoVo.java | 21 +++
.../java/com/atguigu/ssyx/vo/acl/LoginVo.java | 18 +++
pom.xml | 13 ++
.../ssyx/acl/ServiceAclApplication.java | 2 +-
.../ssyx/acl/config/Knife4jConfig.java | 54 ++++++++
.../ssyx/acl/controller/IndexController.java | 28 +++-
.../src/main/resources/application-dev.yml | 6 +
.../src/main/resources/application.yml | 13 +-
16 files changed, 452 insertions(+), 50 deletions(-)
create mode 100644 .idea/dataSources.xml
create mode 100644 .idea/uiDesigner.xml
create mode 100644 common/common-util/src/main/java/com/atguigu/common/utils/MD5.java
create mode 100644 common/service-util/src/main/java/com/atguigu/ssyx/common/config/RedisConfiguration.java
rename common/service-util/src/main/java/com/atguigu/ssyx/common/config/{Swagger2Config.java => WebKnife4jConfig.java} (61%)
create mode 100644 common/service-util/src/main/java/com/atguigu/ssyx/common/properties/MinioProperties.java
create mode 100644 model/src/main/java/com/atguigu/ssyx/vo/acl/LoginInfoVo.java
create mode 100644 model/src/main/java/com/atguigu/ssyx/vo/acl/LoginVo.java
create mode 100644 service/service-acl/src/main/java/com/atguigu/ssyx/acl/config/Knife4jConfig.java
diff --git a/.gitignore b/.gitignore
index 5ff6309..2ebe1c7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -35,4 +35,6 @@ build/
.vscode/
### Mac OS ###
-.DS_Store
\ No newline at end of file
+.DS_Store
+
+logs
\ No newline at end of file
diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml
new file mode 100644
index 0000000..a57e5fc
--- /dev/null
+++ b/.idea/dataSources.xml
@@ -0,0 +1,18 @@
+
+
+
+
+ mysql.8
+ true
+ true
+ com.mysql.cj.jdbc.Driver
+ jdbc:mysql://106.15.251.123:3305/shequ-acl?serverTimezone=GMT
+
+
+
+
+
+ $ProjectFileDir$
+
+
+
\ No newline at end of file
diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
new file mode 100644
index 0000000..2b63946
--- /dev/null
+++ b/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/common/common-util/src/main/java/com/atguigu/common/utils/MD5.java b/common/common-util/src/main/java/com/atguigu/common/utils/MD5.java
new file mode 100644
index 0000000..6f7230d
--- /dev/null
+++ b/common/common-util/src/main/java/com/atguigu/common/utils/MD5.java
@@ -0,0 +1,30 @@
+package com.atguigu.common.utils;
+
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+
+
+public final class MD5 {
+ public static String encrypt(String strSrc) {
+ try {
+ char[] hexChars = {'0', '1', '2', '3', '4', '5', '6', '7', '8',
+ '9', 'a', 'b', 'c', 'd', 'e', 'f'};
+ byte[] bytes = strSrc.getBytes();
+ MessageDigest md = MessageDigest.getInstance("MD5");
+ md.update(bytes);
+ bytes = md.digest();
+ int j = bytes.length;
+ char[] chars = new char[j * 2];
+ int k = 0;
+ for (int i = 0; i < bytes.length; i++) {
+ byte b = bytes[i];
+ chars[k++] = hexChars[b >>> 4 & 0xf];
+ chars[k++] = hexChars[b & 0xf];
+ }
+ return new String(chars);
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
+ throw new RuntimeException("MD5加密出错!!+" + e);
+ }
+ }
+}
diff --git a/common/pom.xml b/common/pom.xml
index f90885c..bff215d 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -50,5 +50,11 @@
org.springframework.cloud
spring-cloud-starter-openfeign
+
+
+
+ io.minio
+ minio
+
diff --git a/common/service-util/src/main/java/com/atguigu/ssyx/common/config/RedisConfiguration.java b/common/service-util/src/main/java/com/atguigu/ssyx/common/config/RedisConfiguration.java
new file mode 100644
index 0000000..c3d6ca5
--- /dev/null
+++ b/common/service-util/src/main/java/com/atguigu/ssyx/common/config/RedisConfiguration.java
@@ -0,0 +1,99 @@
+package com.atguigu.ssyx.common.config;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.PropertyAccessor;
+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 com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
+import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
+import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
+import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.cache.CacheManager;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.redis.cache.RedisCacheConfiguration;
+import org.springframework.data.redis.cache.RedisCacheManager;
+import org.springframework.data.redis.connection.RedisConnectionFactory;
+import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
+import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
+import org.springframework.data.redis.serializer.RedisSerializationContext;
+import org.springframework.data.redis.serializer.StringRedisSerializer;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+
+@Configuration
+@Slf4j
+public class RedisConfiguration {
+ /**
+ * 使用StringRedisSerializer序列化为字符串
+ */
+ @Bean
+ public RedisTemplate redisTemplate(LettuceConnectionFactory connectionFactory) {
+ log.info("RedisConfiguration===>使用StringRedisSerializer序列化为字符串");
+
+ RedisTemplate redisTemplate = new RedisTemplate<>();
+ redisTemplate.setConnectionFactory(connectionFactory);
+ // 设置key序列化为string
+ redisTemplate.setKeySerializer(new StringRedisSerializer());
+ // 设置value序列化为JSON,使用GenericJackson2JsonRedisSerializer替换默认序列化
+ redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
+ redisTemplate.setHashKeySerializer(new StringRedisSerializer());
+ redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());
+
+ return redisTemplate;
+ }
+
+ /**
+ * 解决cache(@Cacheable)把数据缓存到redis中的value是乱码问题
+ */
+ @Bean
+ @SuppressWarnings("all")
+ public CacheManager cacheManager(RedisConnectionFactory factory) {
+ log.info("RedisConfiguration===>解决cache(@Cacheable)把数据缓存到redis中的value是乱码问题");
+
+ StringRedisSerializer redisSerializer = new StringRedisSerializer();
+ // 配置序列化
+ RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig();
+ RedisCacheConfiguration redisCacheConfiguration = config
+ .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(redisSerializer))
+ .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(jsonRedisSerializer()));
+
+ RedisCacheManager cacheManager = RedisCacheManager.builder(factory)
+ .cacheDefaults(redisCacheConfiguration).build();
+ return cacheManager;
+ }
+
+ /**
+ * 指定的日期模式
+ */
+ public Jackson2JsonRedisSerializer