diff --git a/pom.xml b/pom.xml
index 0e9ce0b..35aa0c7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,10 +20,12 @@
0.2.0
5.2.5
3.14.0
+ 1.12.0
2.5.0
5.1.3
4.4.0
3.5.6
+ 2.1.0
@@ -53,6 +55,11 @@
mybatis-plus-spring-boot3-starter
${mybatis-plus.version}
+
+ com.github.pagehelper
+ pagehelper-spring-boot-starter
+ ${page-helper.version}
+
com.mysql
@@ -82,12 +89,17 @@
commons-lang3
${commons-lang3.version}
+
+ org.apache.commons
+ commons-text
+ ${commons-text.version}
+
-
-
-
-
-
+
+ org.springdoc
+ springdoc-openapi-starter-webmvc-ui
+ ${open-api.version}
+
redis.clients
@@ -155,6 +167,7 @@
${lomstrcut-binding.version}
+ --enable-preview
diff --git a/src/main/java/com/rainbus/dlp/config/MybatisMetaObjectHandler.java b/src/main/java/com/rainbus/dlp/config/MybatisMetaObjectHandler.java
index 79ad839..e20ef1f 100644
--- a/src/main/java/com/rainbus/dlp/config/MybatisMetaObjectHandler.java
+++ b/src/main/java/com/rainbus/dlp/config/MybatisMetaObjectHandler.java
@@ -2,6 +2,7 @@ package com.rainbus.dlp.config;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.rainbus.dlp.entity.dto.user.CustomUserDetails;
+import com.rainbus.dlp.util.AuthUtil;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.core.context.SecurityContextHolder;
@@ -10,6 +11,12 @@ import java.time.LocalDateTime;
@Configuration
public class MybatisMetaObjectHandler implements MetaObjectHandler {
+ private final AuthUtil authUtil;
+
+ public MybatisMetaObjectHandler(AuthUtil authUtil) {
+ this.authUtil = authUtil;
+ }
+
@Override
public void insertFill(MetaObject metaObject) {
if (metaObject.hasSetter("createAt")) {
@@ -40,7 +47,7 @@ public class MybatisMetaObjectHandler implements MetaObjectHandler {
}
private Long getCurrentUserId() {
- CustomUserDetails userDetails = (CustomUserDetails) SecurityContextHolder.getContext().getAuthentication().getDetails();
+ CustomUserDetails userDetails = authUtil.getUserDetails();
return userDetails.getId();
}
diff --git a/src/main/java/com/rainbus/dlp/config/MybatisPlusConf.java b/src/main/java/com/rainbus/dlp/config/MybatisPlusConf.java
new file mode 100644
index 0000000..400667a
--- /dev/null
+++ b/src/main/java/com/rainbus/dlp/config/MybatisPlusConf.java
@@ -0,0 +1,19 @@
+package com.rainbus.dlp.config;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class MybatisPlusConf {
+
+ @Bean
+ public MybatisPlusInterceptor mybatisPlusInterceptor() {
+ MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+ interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
+ return interceptor;
+ }
+
+}
diff --git a/src/main/java/com/rainbus/dlp/config/OpenApiConf.java b/src/main/java/com/rainbus/dlp/config/OpenApiConf.java
new file mode 100644
index 0000000..7686b68
--- /dev/null
+++ b/src/main/java/com/rainbus/dlp/config/OpenApiConf.java
@@ -0,0 +1,20 @@
+package com.rainbus.dlp.config;
+
+import io.swagger.v3.oas.models.OpenAPI;
+import io.swagger.v3.oas.models.info.Info;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class OpenApiConf {
+
+ @Bean
+ public OpenAPI springOpenAPI() {
+ return new OpenAPI()
+ .info(new Info()
+ .title("DLP Admin")
+ .description("DLP Admin APIs")
+ .version("0.0.1"));
+ }
+
+}
diff --git a/src/main/java/com/rainbus/dlp/config/SecurityConf.java b/src/main/java/com/rainbus/dlp/config/SecurityConf.java
index da70248..9e56cc2 100644
--- a/src/main/java/com/rainbus/dlp/config/SecurityConf.java
+++ b/src/main/java/com/rainbus/dlp/config/SecurityConf.java
@@ -1,7 +1,7 @@
package com.rainbus.dlp.config;
-import com.rainbus.dlp.entity.pojo.user.SysRole;
+import com.rainbus.dlp.repository.dao.UserDao;
import com.rainbus.dlp.service.UserServ;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Bean;
@@ -19,14 +19,12 @@ import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.web.SecurityFilterChain;
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
-import java.util.List;
-
@Configuration
@EnableWebSecurity
@RequiredArgsConstructor
public class SecurityConf {
- private final UserServ userServ;
+ private final UserDao userDao;
@Bean
public SecurityFilterChain filterChain(HttpSecurity http, JwtFilter jwtFilter) throws Exception {
@@ -34,7 +32,7 @@ public class SecurityConf {
.csrf(AbstractHttpConfigurer::disable)
.sessionManagement(sess -> sess.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
.authorizeHttpRequests((authorizeHttpRequests) -> {
- userServ.listRoleResource().forEach(role -> {
+ userDao.listRoleResource().forEach(role -> {
role.getResources().forEach(resource -> {
authorizeHttpRequests.requestMatchers(
HttpMethod.valueOf(resource.getRequestMethod().name()),
diff --git a/src/main/java/com/rainbus/dlp/controller/UserCtrl.java b/src/main/java/com/rainbus/dlp/controller/UserCtrl.java
index ddc9e98..2ae991d 100644
--- a/src/main/java/com/rainbus/dlp/controller/UserCtrl.java
+++ b/src/main/java/com/rainbus/dlp/controller/UserCtrl.java
@@ -1,66 +1,85 @@
package com.rainbus.dlp.controller;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.rainbus.dlp.entity.converter.UserConv;
-import com.rainbus.dlp.entity.pojo.user.SysUser;
-import com.rainbus.dlp.entity.req.user.RegisterReq;
+import com.github.pagehelper.PageInfo;
+import com.rainbus.dlp.entity.req.user.*;
import com.rainbus.dlp.entity.resp.Resp;
-import com.rainbus.dlp.repository.mapper.user.SysRoleMapper;
-import com.rainbus.dlp.repository.mapper.user.SysUserMapper;
-import com.rainbus.dlp.service.SystemServ;
+import com.rainbus.dlp.entity.resp.user.GetTagResp;
+import com.rainbus.dlp.entity.resp.user.GetUserResp;
+import com.rainbus.dlp.entity.resp.user.LoginResp;
+import com.rainbus.dlp.service.UserServ;
import com.rainbus.dlp.util.RedisUtil;
+import io.swagger.v3.oas.annotations.Operation;
import lombok.AllArgsConstructor;
-import org.springframework.security.authentication.AuthenticationManager;
-import org.springframework.security.crypto.password.PasswordEncoder;
-import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
+import java.util.List;
+
@RestController
@RequestMapping("/user")
@AllArgsConstructor
public class UserCtrl {
- private final UserConv userConv;
- private final AuthenticationManager authenticationManager;
- private final PasswordEncoder passwordEncoder;
private final RedisUtil redisUtil;
- private final SystemServ systemServ;
- private final SysUserMapper sysUserMapper;
- private final SysRoleMapper sysRoleMapper;
-
- @PostMapping("/addUser")
- public Resp