From 9249a208475212b25e5c4bdc38c3abc6e743c79a Mon Sep 17 00:00:00 2001
From: chentaisen <14615430+chentaisen@user.noreply.gitee.com>
Date: Mon, 29 Jul 2024 09:22:07 +0800
Subject: [PATCH] =?UTF-8?q?day10=E6=97=A5=E8=80=83?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.gitignore | 38 ++++
.idea/$PROJECT_FILE$ | 11 +
.idea/.gitignore | 8 +
.idea/encodings.xml | 12 ++
.idea/misc.xml | 20 ++
.idea/qaplug_profiles.xml | 12 ++
.idea/vcs.xml | 6 +
common/pom.xml | 62 ++++++
pom.xml | 32 +++
src/main/java/com/bw/Main.java | 7 +
user/pom.xml | 196 ++++++++++++++++++
user/src/main/java/com/bw/Application.java | 17 ++
.../java/com/bw/config/BloomFilterUtil.java | 86 ++++++++
.../main/java/com/bw/config/FastConfig.java | 20 ++
.../src/main/java/com/bw/config/FastUtil.java | 56 +++++
.../com/bw/config/Knife4jConfiguration.java | 45 ++++
.../main/java/com/bw/config/QuartzConfig.java | 38 ++++
.../java/com/bw/config/QuartzConfig2.java | 38 ++++
.../main/java/com/bw/config/RedisConfig.java | 43 ++++
.../java/com/bw/config/RedissonConfig.java | 33 +++
.../main/java/com/bw/config/WebMvcConfig.java | 68 ++++++
.../com/bw/controller/UserController.java | 32 +++
.../main/java/com/bw/mapper/UserMapper.java | 14 ++
user/src/main/java/com/bw/pojo/User.java | 18 ++
.../main/java/com/bw/service/UserService.java | 11 +
.../com/bw/service/impl/UserServiceImpl.java | 30 +++
user/src/main/resources/application.yml | 102 +++++++++
.../src/main/resources/mapper/LoginMapper.xml | 19 ++
28 files changed, 1074 insertions(+)
create mode 100644 .gitignore
create mode 100644 .idea/$PROJECT_FILE$
create mode 100644 .idea/.gitignore
create mode 100644 .idea/encodings.xml
create mode 100644 .idea/misc.xml
create mode 100644 .idea/qaplug_profiles.xml
create mode 100644 .idea/vcs.xml
create mode 100644 common/pom.xml
create mode 100644 pom.xml
create mode 100644 src/main/java/com/bw/Main.java
create mode 100644 user/pom.xml
create mode 100644 user/src/main/java/com/bw/Application.java
create mode 100644 user/src/main/java/com/bw/config/BloomFilterUtil.java
create mode 100644 user/src/main/java/com/bw/config/FastConfig.java
create mode 100644 user/src/main/java/com/bw/config/FastUtil.java
create mode 100644 user/src/main/java/com/bw/config/Knife4jConfiguration.java
create mode 100644 user/src/main/java/com/bw/config/QuartzConfig.java
create mode 100644 user/src/main/java/com/bw/config/QuartzConfig2.java
create mode 100644 user/src/main/java/com/bw/config/RedisConfig.java
create mode 100644 user/src/main/java/com/bw/config/RedissonConfig.java
create mode 100644 user/src/main/java/com/bw/config/WebMvcConfig.java
create mode 100644 user/src/main/java/com/bw/controller/UserController.java
create mode 100644 user/src/main/java/com/bw/mapper/UserMapper.java
create mode 100644 user/src/main/java/com/bw/pojo/User.java
create mode 100644 user/src/main/java/com/bw/service/UserService.java
create mode 100644 user/src/main/java/com/bw/service/impl/UserServiceImpl.java
create mode 100644 user/src/main/resources/application.yml
create mode 100644 user/src/main/resources/mapper/LoginMapper.xml
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..5ff6309
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,38 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### IntelliJ IDEA ###
+.idea/modules.xml
+.idea/jarRepositories.xml
+.idea/compiler.xml
+.idea/libraries/
+*.iws
+*.iml
+*.ipr
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
\ No newline at end of file
diff --git a/.idea/$PROJECT_FILE$ b/.idea/$PROJECT_FILE$
new file mode 100644
index 0000000..58b7e3e
--- /dev/null
+++ b/.idea/$PROJECT_FILE$
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..6dfa3fd
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..9e844e1
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/qaplug_profiles.xml b/.idea/qaplug_profiles.xml
new file mode 100644
index 0000000..9a7566c
--- /dev/null
+++ b/.idea/qaplug_profiles.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/common/pom.xml b/common/pom.xml
new file mode 100644
index 0000000..411c3a2
--- /dev/null
+++ b/common/pom.xml
@@ -0,0 +1,62 @@
+
+
+ 4.0.0
+
+ com.bw
+ daytenRikao
+ 1.0-SNAPSHOT
+
+
+ common
+
+
+
+
+ com.alibaba
+ fastjson
+ 1.2.79
+
+
+ org.projectlombok
+ lombok
+
+
+
+ org.apache.httpcomponents
+ httpcore
+ 4.4.12
+
+
+ org.apache.httpcomponents
+ httpclient
+ 4.5.13
+
+
+
+
+ com.alibaba
+ druid-spring-boot-starter
+ 1.1.10
+
+
+ org.mybatis.spring.boot
+ mybatis-spring-boot-starter
+ 1.3.1
+
+
+ commons-lang
+ commons-lang
+ 2.6
+
+
+ com.fasterxml.jackson.core
+ jackson-annotations
+
+
+
+
+
+
+
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..a7caa4e
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,32 @@
+
+
+ 4.0.0
+
+ com.bw
+ daytenRikao
+ 1.0-SNAPSHOT
+ pom
+
+ common
+ user
+
+
+
+ 1.8
+ UTF-8
+ UTF-8
+ 2.2.2.RELEASE
+ false
+
+
+
+
+ spring-boot-starter-parent
+ org.springframework.boot
+ 2.6.2
+
+
+
+
diff --git a/src/main/java/com/bw/Main.java b/src/main/java/com/bw/Main.java
new file mode 100644
index 0000000..e856949
--- /dev/null
+++ b/src/main/java/com/bw/Main.java
@@ -0,0 +1,7 @@
+package com.bw;
+
+public class Main {
+ public static void main(String[] args) {
+ System.out.println("Hello world!");
+ }
+}
\ No newline at end of file
diff --git a/user/pom.xml b/user/pom.xml
new file mode 100644
index 0000000..355cfe0
--- /dev/null
+++ b/user/pom.xml
@@ -0,0 +1,196 @@
+
+
+ 4.0.0
+
+ com.bw
+ daytenRikao
+ 1.0-SNAPSHOT
+
+
+ user
+
+
+
+
+ org.example
+ common
+ 1.0-SNAPSHOT
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-redis
+
+
+ io.lettuce
+ lettuce-core
+
+
+
+
+ redis.clients
+ jedis
+
+
+ org.redisson
+ redisson
+ 3.16.0
+
+
+
+ org.apache.httpcomponents
+ httpcore
+ 4.4.12
+
+
+ org.apache.httpcomponents
+ httpclient
+ 4.5.13
+
+
+
+
+ org.apache.poi
+ poi
+ 3.17
+
+
+
+ org.apache.poi
+ poi-ooxml
+ 3.17
+
+
+ org.apache.poi
+ poi-ooxml-schemas
+ 3.17
+
+
+ org.apache.commons
+ commons-lang3
+ 3.12.0
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+
+ com.alibaba
+ druid-spring-boot-starter
+ 1.2.8
+
+
+
+
+
+
+
+
+ javax.servlet
+ javax.servlet-api
+ provided
+
+
+
+ mysql
+ mysql-connector-java
+ 8.0.11
+ runtime
+
+
+
+ org.mybatis.spring.boot
+ mybatis-spring-boot-starter
+ 2.2.2
+
+
+
+ com.github.pagehelper
+ pagehelper-spring-boot-starter
+ 1.4.1
+
+
+
+ commons-lang
+ commons-lang
+ 2.6
+
+
+
+ com.alibaba
+ fastjson
+ 1.2.79
+
+
+
+ org.springframework.boot
+ spring-boot-starter-mail
+
+
+
+
+ com.aliyun.oss
+ aliyun-sdk-oss
+ 3.10.2
+
+
+
+ com.github.xiaoymin
+ knife4j-spring-boot-starter
+ 2.0.9
+
+
+
+ io.jsonwebtoken
+ jjwt
+ 0.6.0
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-quartz
+
+
+
+
+
+ com.github.tobato
+ fastdfs-client
+ 1.26.5
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ org.junit.vintage
+ junit-vintage-engine
+
+
+
+
+
+ com.google.guava
+ guava
+ 27.0.1-jre
+
+
+
+
+
+
diff --git a/user/src/main/java/com/bw/Application.java b/user/src/main/java/com/bw/Application.java
new file mode 100644
index 0000000..c19062d
--- /dev/null
+++ b/user/src/main/java/com/bw/Application.java
@@ -0,0 +1,17 @@
+package com.bw;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * @ClassName Application
+ * @Description 描述
+ * @Author Chen
+ * @Date 2024/7/29 9:00
+ */
+@SpringBootApplication
+public class Application {
+ public static void main(String[] args) {
+ SpringApplication.run(Application.class);
+ }
+}
diff --git a/user/src/main/java/com/bw/config/BloomFilterUtil.java b/user/src/main/java/com/bw/config/BloomFilterUtil.java
new file mode 100644
index 0000000..89a3288
--- /dev/null
+++ b/user/src/main/java/com/bw/config/BloomFilterUtil.java
@@ -0,0 +1,86 @@
+package com.bw.config;
+
+
+import org.springframework.stereotype.Component;
+
+import java.util.BitSet;
+
+/**
+ * @BelongsProject: month-10a
+ * @BelongsPackage: com.bw.config
+ * @Author: zhupengfei
+ * @CreateTime: 2023-03-09 14:44
+ */
+@Component
+public class BloomFilterUtil {
+ private static final int DEFAULT_SIZE = 2 << 24; // 布隆过滤器的比特长度
+ private static final int[] seeds = new int[] {7, 11, 13, 31,37, 61}; // 这里要选取质数,能很好的降低错误率
+
+ private BitSet bits = new BitSet(DEFAULT_SIZE);
+ private SimpleHash[] func = new SimpleHash[seeds.length];
+
+ public static void main(String[] args) {
+ String value = "crankzcool@gmail.com";
+ BloomFilterUtil filter = new BloomFilterUtil();
+// System.out.println(filter.contains(value));
+// filter.add(value);
+// System.out.println(filter.contains(value));
+
+ filter.add("1");
+ filter.add("2");
+ filter.remove("1");
+ System.out.println(filter.contains("1"));
+ }
+
+ public void remove(String value) {
+ if (value == null) {
+ return;
+ }
+ for (SimpleHash f : func) {
+ bits.set(f.hash(value), false);
+ }
+ }
+
+ public BloomFilterUtil() {
+ for (int i = 0; i < seeds.length; i++) {
+ func[i] = new SimpleHash(DEFAULT_SIZE, seeds[i]);
+ }
+ }
+
+ public void add(String value) {
+ for (SimpleHash f: func) {
+ bits.set(f.hash(value), true);
+ }
+ }
+
+ public boolean contains(String value) {
+ if (value == null) {
+ return false;
+ }
+ boolean ret = true;
+ for (SimpleHash f : func) {
+ ret = ret && bits.get(f.hash(value));
+ }
+ return ret;
+ }
+ public static class SimpleHash {
+ private int cap;
+ private int seed;
+
+ public SimpleHash(int cap, int seed) {
+ this.cap = cap;
+ this.seed = seed;
+ }
+
+ public int hash(String value) {
+ int result = 0;
+ int len = value.length();
+ for (int i = 0; i < len; i++) {
+ result = seed * result + value.charAt(i);
+ }
+ return (cap - 1) & result;
+ }
+ }
+
+
+}
diff --git a/user/src/main/java/com/bw/config/FastConfig.java b/user/src/main/java/com/bw/config/FastConfig.java
new file mode 100644
index 0000000..34cfd90
--- /dev/null
+++ b/user/src/main/java/com/bw/config/FastConfig.java
@@ -0,0 +1,20 @@
+package com.bw.config;
+
+import com.github.tobato.fastdfs.FdfsClientConfig;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.EnableMBeanExport;
+import org.springframework.context.annotation.Import;
+import org.springframework.jmx.support.RegistrationPolicy;
+
+/**
+ * @BelongsProject: demo02
+ * @BelongsPackage: com.bw.config
+ * @Author: zhupengfei
+ * @CreateTime: 2022-12-16 14:37
+ */
+@Configuration
+// 解决 jmx 重复注册 bean 的问题
+@EnableMBeanExport(registration = RegistrationPolicy.IGNORE_EXISTING)
+public class FastConfig {
+
+}
diff --git a/user/src/main/java/com/bw/config/FastUtil.java b/user/src/main/java/com/bw/config/FastUtil.java
new file mode 100644
index 0000000..8a09d65
--- /dev/null
+++ b/user/src/main/java/com/bw/config/FastUtil.java
@@ -0,0 +1,56 @@
+package com.bw.config;
+
+import org.springframework.stereotype.Component;
+import com.github.tobato.fastdfs.domain.fdfs.StorePath;
+import com.github.tobato.fastdfs.service.FastFileStorageClient;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+import org.springframework.util.StringUtils;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+
+/**
+ * @BelongsProject: 0107day02
+ * @BelongsPackage: com.bw.config
+ * @Author: zhupengfei
+ * @CreateTime: 2023-02-01 08:52
+ */
+@Component
+public class FastUtil {
+ private static final Logger log = LoggerFactory.getLogger(FastUtil.class);
+
+ @Resource
+ private FastFileStorageClient storageClient ;
+
+ /**
+ * 上传文件
+ */
+ public String upload(MultipartFile multipartFile) throws Exception{
+ String originalFilename = multipartFile.getOriginalFilename().
+ substring(multipartFile.getOriginalFilename().
+ lastIndexOf(".") + 1);
+ StorePath storePath = this.storageClient.uploadImageAndCrtThumbImage(
+ multipartFile.getInputStream(),
+ multipartFile.getSize(),originalFilename , null);
+ return storePath.getFullPath() ;
+ }
+ /**
+ * 删除文件
+ */
+ public String deleteFile(String fileUrl) {
+ if (StringUtils.isEmpty(fileUrl)) {
+ log.info("fileUrl == >>文件路径为空...");
+ return "文件路径不能为空";
+ }
+ try {
+ StorePath storePath = StorePath.parseFromUrl(fileUrl);
+ storageClient.deleteFile(storePath.getGroup(), storePath.getPath());
+ } catch (Exception e) {
+ log.error(e.getMessage());
+ }
+ return "删除成功";
+ }
+
+}
diff --git a/user/src/main/java/com/bw/config/Knife4jConfiguration.java b/user/src/main/java/com/bw/config/Knife4jConfiguration.java
new file mode 100644
index 0000000..e3c7da5
--- /dev/null
+++ b/user/src/main/java/com/bw/config/Knife4jConfiguration.java
@@ -0,0 +1,45 @@
+package com.bw.config;
+
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.Contact;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+
+import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
+
+/**
+ * @BelongsProject: demo02
+ * @BelongsPackage: com.bw.handler
+ * @Author: zhupengfei
+ * @CreateTime: 2022-12-11 14:17
+ */
+@Configuration
+@EnableSwagger2WebMvc
+public class Knife4jConfiguration {
+
+ @Bean(value = "defaultApi2")
+ public Docket defaultApi2() {
+ Docket docket = new Docket(DocumentationType.SWAGGER_2)
+ .apiInfo(new ApiInfoBuilder()
+ .title("测试==demo")
+ .description("# swagger-bootstrap-ui-demo RESTful APIs")
+ .termsOfServiceUrl("http://www.xx.com/")
+ .contact(new Contact("玉面小白龙", "", "123@qq.com"))
+ .version("1.0")
+ .build())
+ //分组名称
+ .groupName("2.X版本")
+ .select()
+ //这里指定文档Controller层扫描包路径
+ .apis(RequestHandlerSelectors.basePackage("com.bw.controller"))
+ .paths(PathSelectors.any())
+ .build();
+ return docket;
+
+ }
+}
diff --git a/user/src/main/java/com/bw/config/QuartzConfig.java b/user/src/main/java/com/bw/config/QuartzConfig.java
new file mode 100644
index 0000000..4aa520c
--- /dev/null
+++ b/user/src/main/java/com/bw/config/QuartzConfig.java
@@ -0,0 +1,38 @@
+//package com.bw.config;
+//
+//import com.bw.job.MyJob;
+//import com.bw.job.MyJob2;
+//import org.quartz.*;
+//import org.springframework.context.annotation.Bean;
+//import org.springframework.context.annotation.Configuration;
+//
+///**
+// * @BelongsProject: demo02
+// * @BelongsPackage: com.bw.config
+// * @Author: zhupengfei
+// * @CreateTime: 2022-12-22 14:59
+// */
+////把当前类定义为 一个配置文件类
+//@Configuration
+//public class QuartzConfig {
+// @Bean
+// public JobDetail downloadDetail() {
+// return JobBuilder.newJob(MyJob.class) //具体任务类
+// .withIdentity("downloadJobDetail")
+// .usingJobData("job_download","download movie")
+// .storeDurably()
+// .build();
+// }
+// //构建 Trigger 及 Scheduler
+// @Bean
+// public Trigger downloadTrigger() {
+// return TriggerBuilder.newTrigger()
+// .forJob(downloadDetail()) //关联上面的 jobDetail
+// .withIdentity("downloadTrigger")
+// .usingJobData("trigger_download","download")
+// //cron 表达式设置每隔 15 秒执行一次
+// .withSchedule(CronScheduleBuilder.cronSchedule("*/15 * * * * ?"))
+// .build();
+// }
+//
+//}
diff --git a/user/src/main/java/com/bw/config/QuartzConfig2.java b/user/src/main/java/com/bw/config/QuartzConfig2.java
new file mode 100644
index 0000000..4b8741a
--- /dev/null
+++ b/user/src/main/java/com/bw/config/QuartzConfig2.java
@@ -0,0 +1,38 @@
+//package com.bw.config;
+//
+//import com.bw.job.MyJob;
+//import com.bw.job.MyJob2;
+//import org.quartz.*;
+//import org.springframework.context.annotation.Bean;
+//import org.springframework.context.annotation.Configuration;
+//
+///**
+// * @BelongsProject: demo02
+// * @BelongsPackage: com.bw.config
+// * @Author: zhupengfei
+// * @CreateTime: 2022-12-22 14:59
+// */
+////把当前类定义为 一个配置文件类
+//@Configuration
+//public class QuartzConfig2 {
+// @Bean
+// public JobDetail downloadDetail2() {
+// return JobBuilder.newJob(MyJob2.class) //具体任务类
+// .withIdentity("downloadJobDetail2")
+// .usingJobData("job_download","download movie")
+// .storeDurably()
+// .build();
+// }
+// //构建 Trigger 及 Scheduler
+// @Bean
+// public Trigger downloadTrigger2() {
+// return TriggerBuilder.newTrigger()
+// .forJob(downloadDetail2()) //关联上面的 jobDetail
+// .withIdentity("downloadTrigger2")
+// .usingJobData("trigger_download","download")
+// //cron 表达式设置每隔 5 秒执行一次
+// .withSchedule(CronScheduleBuilder.cronSchedule("*/30 * * * * ?"))
+// .build();
+// }
+//
+//}
diff --git a/user/src/main/java/com/bw/config/RedisConfig.java b/user/src/main/java/com/bw/config/RedisConfig.java
new file mode 100644
index 0000000..44552fd
--- /dev/null
+++ b/user/src/main/java/com/bw/config/RedisConfig.java
@@ -0,0 +1,43 @@
+//package com.bw.config;
+//
+//import com.fasterxml.jackson.annotation.JsonAutoDetect;
+//import com.fasterxml.jackson.annotation.PropertyAccessor;
+//import com.fasterxml.jackson.databind.ObjectMapper;
+//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.StringRedisSerializer;
+//
+//@Configuration
+//public class RedisConfig {
+//
+// @Bean
+// public RedisTemplate redisTemplate(RedisConnectionFactory factory) {
+//
+//
+// RedisTemplate template = new RedisTemplate<>();
+// template.setConnectionFactory(factory);
+// Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new
+// Jackson2JsonRedisSerializer(Object.class);
+//
+// ObjectMapper om = new ObjectMapper();
+// om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
+// om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
+// jackson2JsonRedisSerializer.setObjectMapper(om);
+//
+// StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
+// // key采用String的序列化方式
+// template.setKeySerializer(stringRedisSerializer);
+// // hash的key也采用String的序列化方式
+// template.setHashKeySerializer(stringRedisSerializer);
+// // value序列化方式采用jackson
+// template.setValueSerializer(jackson2JsonRedisSerializer);
+// // hash的value序列化方式采用jackson
+// template.setHashValueSerializer(jackson2JsonRedisSerializer);
+// template.afterPropertiesSet();
+//
+// return template;
+// }
+//}
diff --git a/user/src/main/java/com/bw/config/RedissonConfig.java b/user/src/main/java/com/bw/config/RedissonConfig.java
new file mode 100644
index 0000000..ddff9ff
--- /dev/null
+++ b/user/src/main/java/com/bw/config/RedissonConfig.java
@@ -0,0 +1,33 @@
+//package com.bw.config;
+//
+//import org.redisson.Redisson;
+//import org.redisson.api.RedissonClient;
+//import org.redisson.config.Config;
+//import org.springframework.context.annotation.Bean;
+//import org.springframework.context.annotation.Configuration;
+//
+//import java.io.IOException;
+//
+///**
+// * @BelongsProject: demo02
+// * @BelongsPackage: com.bw.config
+// * @Author: zhupengfei
+// * @CreateTime: 2022-12-24 09:26
+// */
+//
+//@Configuration
+//public class RedissonConfig {
+//
+// @Bean(destroyMethod="shutdown") // 服务停止后调用 shutdown 方法。
+// public RedissonClient redisson() throws IOException {
+// System.out.println("配置类初始加载......");
+// // 1.创建配置
+// Config config = new Config();
+// // 集群模式
+// // config.useClusterServers().addNodeAddress("127.0.0.1:6379", "127.0.0.1:6378");
+// // 2.根据 Config 创建出 RedissonClient 实例。
+// config.useSingleServer().setAddress("redis://106.54.193.225:6379");
+// return Redisson.create(config);
+// }
+//
+//}
diff --git a/user/src/main/java/com/bw/config/WebMvcConfig.java b/user/src/main/java/com/bw/config/WebMvcConfig.java
new file mode 100644
index 0000000..de0acc3
--- /dev/null
+++ b/user/src/main/java/com/bw/config/WebMvcConfig.java
@@ -0,0 +1,68 @@
+package com.bw.config;
+
+//import com.bw.interceptor.MyInterceptor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.cors.CorsConfiguration;
+import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
+import org.springframework.web.filter.CorsFilter;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+/**
+ * @BelongsProject: 0107day02
+ * @BelongsPackage: com.bw.config
+ * @Author: zhupengfei
+ * @CreateTime: 2023-02-01 08:51
+ */
+@Configuration
+public class WebMvcConfig implements WebMvcConfigurer {
+
+// @Autowired
+// private MyInterceptor myIntercepter;
+// //全局路由
+ @Override
+ public void addCorsMappings(CorsRegistry registry) {
+ registry.addMapping("/**")
+ //.allowedOrigins("*") //注意这个变动项,这个是旧版
+ .allowedOriginPatterns("*")//这个才是新版的要求
+ .allowedMethods("GET","HEAD","POST","PUT","DELETE","OPTIONS")
+ .allowCredentials(true)
+ .maxAge(3600)
+ .allowedHeaders("*");
+ }
+
+
+ /**
+ * 静态资源
+ * @author: zhupengfei
+ * @param: [registry]
+ * @return: void
+ **/
+ @Override
+ public void addResourceHandlers(ResourceHandlerRegistry registry) {
+ registry
+ .addResourceHandler("/static/**")
+ .addResourceLocations("classpath:/static/");
+ }
+
+ /**
+ * 拦截器
+ * @author: zhupengfei
+ * @param: [registry]
+ * @return: void
+ **/
+
+// @Override
+// public void addInterceptors(InterceptorRegistry registry) {
+// registry.addInterceptor(myIntercepter)
+// .addPathPatterns("/**")
+// .excludePathPatterns("/user/*","/user/*/*"
+// ,"/doc.html","/swagger-resources","/webjars/*/*","/webjars/*","/favicon.ico","/error",
+// "/student/fastDfsUpLoad"
+// );
+// }
+}
diff --git a/user/src/main/java/com/bw/controller/UserController.java b/user/src/main/java/com/bw/controller/UserController.java
new file mode 100644
index 0000000..802b43a
--- /dev/null
+++ b/user/src/main/java/com/bw/controller/UserController.java
@@ -0,0 +1,32 @@
+package com.bw.controller;
+
+import com.bw.pojo.User;
+import com.bw.service.UserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @ClassName UserController
+ * @Description 描述
+ * @Author Chen
+ * @Date 2024/7/29 8:49
+ */
+@RestController
+public class UserController {
+ @Autowired
+ private UserService userService;
+ //列表
+ @PostMapping("list")
+ public List list(){
+ return userService.list();
+ }
+ //删除
+ @PostMapping("/del")
+ public Integer del(@RequestParam("uid") Integer uid){
+ return userService.del(uid);
+ }
+}
diff --git a/user/src/main/java/com/bw/mapper/UserMapper.java b/user/src/main/java/com/bw/mapper/UserMapper.java
new file mode 100644
index 0000000..e9339cd
--- /dev/null
+++ b/user/src/main/java/com/bw/mapper/UserMapper.java
@@ -0,0 +1,14 @@
+package com.bw.mapper;
+
+import com.bw.pojo.User;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+
+@Mapper
+public interface UserMapper {
+ List list();
+
+ Integer del(@RequestParam("uid")Integer uid);
+}
diff --git a/user/src/main/java/com/bw/pojo/User.java b/user/src/main/java/com/bw/pojo/User.java
new file mode 100644
index 0000000..dac8605
--- /dev/null
+++ b/user/src/main/java/com/bw/pojo/User.java
@@ -0,0 +1,18 @@
+package com.bw.pojo;
+
+import lombok.Data;
+
+/**
+ * @ClassName User
+ * @Description 描述
+ * @Author Chen
+ * @Date 2024/7/29 8:49
+ */
+@Data
+public class User {
+ private Integer uid;
+ private String userNmae;
+ private String pwd;
+ private Integer sex;
+ private String birthday;
+}
diff --git a/user/src/main/java/com/bw/service/UserService.java b/user/src/main/java/com/bw/service/UserService.java
new file mode 100644
index 0000000..d2c5856
--- /dev/null
+++ b/user/src/main/java/com/bw/service/UserService.java
@@ -0,0 +1,11 @@
+package com.bw.service;
+
+import com.bw.pojo.User;
+
+import java.util.List;
+
+public interface UserService {
+ List list();
+
+ Integer del(Integer uid);
+}
diff --git a/user/src/main/java/com/bw/service/impl/UserServiceImpl.java b/user/src/main/java/com/bw/service/impl/UserServiceImpl.java
new file mode 100644
index 0000000..ecf4551
--- /dev/null
+++ b/user/src/main/java/com/bw/service/impl/UserServiceImpl.java
@@ -0,0 +1,30 @@
+package com.bw.service.impl;
+
+import com.bw.mapper.UserMapper;
+import com.bw.pojo.User;
+import com.bw.service.UserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @ClassName UserServiceImpl
+ * @Description 描述
+ * @Author Chen
+ * @Date 2024/7/29 8:51
+ */
+@Service
+public class UserServiceImpl implements UserService {
+ @Autowired
+ private UserMapper userMapper;
+ @Override
+ public List list() {
+ return userMapper.list();
+ }
+
+ @Override
+ public Integer del(Integer uid) {
+ return userMapper.del(uid);
+ }
+}
diff --git a/user/src/main/resources/application.yml b/user/src/main/resources/application.yml
new file mode 100644
index 0000000..ac0d0bd
--- /dev/null
+++ b/user/src/main/resources/application.yml
@@ -0,0 +1,102 @@
+# 服务器相关
+
+server:
+ port: 10001
+
+spring:
+ mvc:
+ pathmatch:
+ matching-strategy: ant_path_matcher
+ datasource:
+ driver-class-name: com.mysql.jdbc.Driver
+ url: jdbc:mysql://106.54.193.225:3306/day10rik?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
+ username: root
+ password: cts@123
+ druid:
+ # 下面为连接池的补充设置,应用到上面所有数据源中
+ # 初始化大小,最小,最大
+ initial-size: 5
+ min-idle: 5
+ max-active: 20
+ # 配置获取连接等待超时的时间
+ max-wait: 60000
+ # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+ time-between-eviction-runs-millis: 60000
+ # 配置一个连接在池中最小生存的时间,单位是毫秒
+ min-evictable-idle-time-millis: 300000
+ validation-query: SELECT 1 FROM DUAL
+ test-while-idle: true
+ test-on-borrow: false
+ test-on-return: false
+ # 打开PSCache,并且指定每个连接上PSCache的大小
+ pool-prepared-statements: true
+ # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
+ max-pool-prepared-statement-per-connection-size: 20
+ filters: stat,wall
+ use-global-data-source-stat: true
+ # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
+ connect-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
+ application:
+ name: shop-server
+ redis:
+ host: 106.54.193.225
+ port: 6379
+ mail:
+ host: smtp.qq.com
+ username: 358795815@qq.com
+ password: uuyemjigqlhvbgcj
+ port: 587 # 这个端口根据实际情况配置,一般都是465
+ protocol: smtp # 这里应该是不用改的,我没试过其他的配置
+ test-connection: false
+ default-encoding: UTF-8
+ properties:
+ mail:
+ debug: true
+ smtp:
+ auth: true
+ connectiontimeout: 10000
+ timeout: 10000
+ writetimeout: 10000
+ socketFactory:
+ class: javax.net.ssl.SSLSocketFactory
+ port: 587
+ starttls:
+ enable: true
+ required: true
+ select:
+ multipart:
+ max-file-size: 100MB # 最大支持文件大小
+ max-request-size: 100MB # 最大请求大小
+ enabled: true
+
+
+# mybatis
+mybatis:
+ configuration:
+ map-underscore-to-camel-case: true
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+ mapper-locations: classpath*:mapper/*Mapper.xml
+ global-config:
+ db-config:
+ id-type: auto
+
+
+aliyun:
+ end-point: oss-cn-shanghai.aliyuncs.com
+ access-key-id: LTAI5tSFAGrms29r1xwEFtRM
+ access-key-secret: rztMfqxdYlsMUtIoy9bIOSGEKCWQT7
+ access-pre: https://dongxiaojie.oss-cn-shanghai.aliyuncs.com
+ bucket-name: dongxiaojie
+
+fdfs:
+ so-timeout: 1500 # socket 连接时长
+ connect-timeout: 600 # 连接 tracker 服务器超时时长
+ # 这两个是你服务器的 IP 地址,注意 23000 端口也要打开,阿里云服务器记得配置安全组。tracker 要和 stroage 服务进行交流
+ tracker-list: 106.54.193.225:22122
+ web-server-url: 106.54.193.225:8888
+ pool:
+ jmx-enabled: false
+ # 生成缩略图
+ thumb-image:
+ height: 500
+ width: 500
diff --git a/user/src/main/resources/mapper/LoginMapper.xml b/user/src/main/resources/mapper/LoginMapper.xml
new file mode 100644
index 0000000..fecc805
--- /dev/null
+++ b/user/src/main/resources/mapper/LoginMapper.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+ delete from t_user where uid =#{uid}
+
+
+
+
+
+