diff --git a/pom.xml b/pom.xml index 35aa0c7..bd5576b 100644 --- a/pom.xml +++ b/pom.xml @@ -8,7 +8,7 @@ 3.3.0 - com.rainbus + com.dlp.admin dlp-admin-backend 0.0.1-SNAPSHOT dlp-admin-backend @@ -45,21 +45,21 @@ org.springframework.boot spring-boot-starter-data-redis - - - - + + org.springframework.boot + spring-boot-starter-data-jpa + - - com.baomidou - mybatis-plus-spring-boot3-starter - ${mybatis-plus.version} - - - com.github.pagehelper - pagehelper-spring-boot-starter - ${page-helper.version} - + + + + + + + + + + com.mysql @@ -121,10 +121,10 @@ com.fasterxml.jackson.datatype jackson-datatype-jsr310 - - - - + + com.fasterxml.jackson.datatype + jackson-datatype-hibernate6 + diff --git a/src/main/java/com/rainbus/dlp/DlpAdminBackendApplication.java b/src/main/java/com/dlp/admin/DlpAdminBackendApplication.java similarity index 78% rename from src/main/java/com/rainbus/dlp/DlpAdminBackendApplication.java rename to src/main/java/com/dlp/admin/DlpAdminBackendApplication.java index c1a9aff..cd23ddd 100644 --- a/src/main/java/com/rainbus/dlp/DlpAdminBackendApplication.java +++ b/src/main/java/com/dlp/admin/DlpAdminBackendApplication.java @@ -1,12 +1,10 @@ -package com.rainbus.dlp; +package com.dlp.admin; -import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration; @SpringBootApplication(exclude = {SecurityAutoConfiguration.class}) -@MapperScan("com.rainbus.dlp.repository.mapper") public class DlpAdminBackendApplication { public static void main(String[] args) { diff --git a/src/main/java/com/rainbus/dlp/config/JwtFilter.java b/src/main/java/com/dlp/admin/config/JwtFilter.java similarity index 86% rename from src/main/java/com/rainbus/dlp/config/JwtFilter.java rename to src/main/java/com/dlp/admin/config/JwtFilter.java index e816db9..75ed1d0 100644 --- a/src/main/java/com/rainbus/dlp/config/JwtFilter.java +++ b/src/main/java/com/dlp/admin/config/JwtFilter.java @@ -1,8 +1,8 @@ -package com.rainbus.dlp.config; +package com.dlp.admin.config; -import com.rainbus.dlp.entity.dto.user.TokenClaims; -import com.rainbus.dlp.service.UserServ; -import com.rainbus.dlp.util.JwtUtil; +import com.dlp.admin.entity.dto.user.TokenClaims; +import com.dlp.admin.service.UserServ; +import com.dlp.admin.util.JwtUtil; import jakarta.servlet.FilterChain; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; @@ -12,8 +12,6 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.lang.NonNull; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.web.authentication.WebAuthenticationDetailsSource; @@ -21,9 +19,7 @@ import org.springframework.stereotype.Component; import org.springframework.web.filter.OncePerRequestFilter; import java.io.IOException; -import java.util.List; import java.util.Objects; -import java.util.stream.Collectors; @Component @RequiredArgsConstructor diff --git a/src/main/java/com/rainbus/dlp/config/OpenApiConf.java b/src/main/java/com/dlp/admin/config/OpenApiConf.java similarity index 94% rename from src/main/java/com/rainbus/dlp/config/OpenApiConf.java rename to src/main/java/com/dlp/admin/config/OpenApiConf.java index 7686b68..b29368f 100644 --- a/src/main/java/com/rainbus/dlp/config/OpenApiConf.java +++ b/src/main/java/com/dlp/admin/config/OpenApiConf.java @@ -1,4 +1,4 @@ -package com.rainbus.dlp.config; +package com.dlp.admin.config; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Info; diff --git a/src/main/java/com/rainbus/dlp/config/SecurityConf.java b/src/main/java/com/dlp/admin/config/SecurityConf.java similarity index 77% rename from src/main/java/com/rainbus/dlp/config/SecurityConf.java rename to src/main/java/com/dlp/admin/config/SecurityConf.java index 9e56cc2..e8eb229 100644 --- a/src/main/java/com/rainbus/dlp/config/SecurityConf.java +++ b/src/main/java/com/dlp/admin/config/SecurityConf.java @@ -1,8 +1,9 @@ -package com.rainbus.dlp.config; +package com.dlp.admin.config; -import com.rainbus.dlp.repository.dao.UserDao; -import com.rainbus.dlp.service.UserServ; +import com.dlp.admin.entity.pojo.user.SysRole; +import com.dlp.admin.repository.user.SysRoleRepo; +import jakarta.transaction.Transactional; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -18,13 +19,16 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; +import org.springframework.stereotype.Service; + +import java.util.List; @Configuration @EnableWebSecurity @RequiredArgsConstructor public class SecurityConf { - private final UserDao userDao; + private final SecurityDataService securityDataService; @Bean public SecurityFilterChain filterChain(HttpSecurity http, JwtFilter jwtFilter) throws Exception { @@ -32,7 +36,8 @@ public class SecurityConf { .csrf(AbstractHttpConfigurer::disable) .sessionManagement(sess -> sess.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .authorizeHttpRequests((authorizeHttpRequests) -> { - userDao.listRoleResource().forEach(role -> { + //TODO: Lazy load problem + securityDataService.fetchAllRoles().forEach(role -> { role.getResources().forEach(resource -> { authorizeHttpRequests.requestMatchers( HttpMethod.valueOf(resource.getRequestMethod().name()), @@ -58,4 +63,18 @@ public class SecurityConf { return new BCryptPasswordEncoder(); } + + @Service + @RequiredArgsConstructor + static class SecurityDataService { + + private final SysRoleRepo roleRepo; + + @Transactional + public List fetchAllRoles() { + return roleRepo.findAll().stream().filter(role -> !role.getResources().isEmpty()).toList(); + } + + } + } diff --git a/src/main/java/com/rainbus/dlp/controller/ExceptionCtrl.java b/src/main/java/com/dlp/admin/controller/ExceptionCtrl.java similarity index 72% rename from src/main/java/com/rainbus/dlp/controller/ExceptionCtrl.java rename to src/main/java/com/dlp/admin/controller/ExceptionCtrl.java index ced2fb4..203d986 100644 --- a/src/main/java/com/rainbus/dlp/controller/ExceptionCtrl.java +++ b/src/main/java/com/dlp/admin/controller/ExceptionCtrl.java @@ -1,7 +1,7 @@ -package com.rainbus.dlp.controller; +package com.dlp.admin.controller; -import com.rainbus.dlp.entity.exception.UsernameOrPasswordExcp; -import com.rainbus.dlp.entity.resp.Resp; +import com.dlp.admin.entity.exception.UsernameOrPasswordExcp; +import com.dlp.admin.entity.resp.Resp; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; diff --git a/src/main/java/com/rainbus/dlp/controller/UserCtrl.java b/src/main/java/com/dlp/admin/controller/UserCtrl.java similarity index 72% rename from src/main/java/com/rainbus/dlp/controller/UserCtrl.java rename to src/main/java/com/dlp/admin/controller/UserCtrl.java index 413f879..ed3813c 100644 --- a/src/main/java/com/rainbus/dlp/controller/UserCtrl.java +++ b/src/main/java/com/dlp/admin/controller/UserCtrl.java @@ -1,16 +1,16 @@ -package com.rainbus.dlp.controller; +package com.dlp.admin.controller; -import com.github.pagehelper.PageInfo; -import com.rainbus.dlp.entity.pojo.user.SysResource; -import com.rainbus.dlp.entity.req.user.*; -import com.rainbus.dlp.entity.resp.Resp; -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.repository.mapper.user.SysResourceMapper; -import com.rainbus.dlp.repository.mapper.user.SysRoleMapper; -import com.rainbus.dlp.service.UserServ; -import com.rainbus.dlp.util.RedisUtil; +import com.dlp.admin.entity.pojo.user.SysResource; +import com.dlp.admin.entity.pojo.user.SysRole; +import com.dlp.admin.entity.req.user.*; +import com.dlp.admin.entity.resp.PageResp; +import com.dlp.admin.entity.resp.Resp; +import com.dlp.admin.entity.resp.user.GetTagResp; +import com.dlp.admin.entity.resp.user.GetUserResp; +import com.dlp.admin.entity.resp.user.LoginResp; +import com.dlp.admin.repository.user.SysRoleRepo; +import com.dlp.admin.service.UserServ; +import com.dlp.admin.util.RedisUtil; import io.swagger.v3.oas.annotations.Operation; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; @@ -24,8 +24,7 @@ public class UserCtrl { private final RedisUtil redisUtil; private final UserServ userServ; - private final SysRoleMapper sysRoleMapper; - private final SysResourceMapper sysResourceMapper; + private final SysRoleRepo sysRoleRepo; @PostMapping("/login") @Operation(summary = "登录接口") @@ -35,7 +34,7 @@ public class UserCtrl { @PostMapping("/list") @Operation(summary = "搜索用户") - public Resp> listUser(@RequestBody ListUserReq req) { + public Resp> listUser(@RequestBody ListUserReq req) { return Resp.success(null); } @@ -93,8 +92,11 @@ public class UserCtrl { resource.setResource("/user/test"); resource.setRequestMethod(RequestMethod.GET); List resources = List.of(resource); - return Resp.success(sysResourceMapper.batchInsert(resources)); +// return Resp.success(sysResourceMapper.batchInsert(resources)); // return Resp.success(sysRoleMapper.selectRoleIdsByUserId(List.of(1L, 2L))); + List roles = sysRoleRepo.findAll(); + roles.stream().forEach(role -> role.getResources().stream().forEach(resource1 -> System.out.println(resource1.getResource()))); + return Resp.success(); } } diff --git a/src/main/java/com/rainbus/dlp/entity/ApiDescription.java b/src/main/java/com/dlp/admin/entity/ApiDescription.java similarity index 83% rename from src/main/java/com/rainbus/dlp/entity/ApiDescription.java rename to src/main/java/com/dlp/admin/entity/ApiDescription.java index e4c477e..5c9d5df 100644 --- a/src/main/java/com/rainbus/dlp/entity/ApiDescription.java +++ b/src/main/java/com/dlp/admin/entity/ApiDescription.java @@ -1,4 +1,4 @@ -package com.rainbus.dlp.entity; +package com.dlp.admin.entity; import java.lang.annotation.*; diff --git a/src/main/java/com/rainbus/dlp/entity/converter/SystemConv.java b/src/main/java/com/dlp/admin/entity/converter/SystemConv.java similarity index 76% rename from src/main/java/com/rainbus/dlp/entity/converter/SystemConv.java rename to src/main/java/com/dlp/admin/entity/converter/SystemConv.java index 83bee63..05bc67c 100644 --- a/src/main/java/com/rainbus/dlp/entity/converter/SystemConv.java +++ b/src/main/java/com/dlp/admin/entity/converter/SystemConv.java @@ -1,7 +1,7 @@ -package com.rainbus.dlp.entity.converter; +package com.dlp.admin.entity.converter; -import com.rainbus.dlp.entity.dto.system.ApiInfo; -import com.rainbus.dlp.entity.pojo.user.SysResource; +import com.dlp.admin.entity.pojo.user.SysResource; +import com.dlp.admin.entity.dto.system.ApiInfo; import org.mapstruct.Mapper; import org.mapstruct.Mapping; diff --git a/src/main/java/com/rainbus/dlp/entity/converter/UserConv.java b/src/main/java/com/dlp/admin/entity/converter/UserConv.java similarity index 63% rename from src/main/java/com/rainbus/dlp/entity/converter/UserConv.java rename to src/main/java/com/dlp/admin/entity/converter/UserConv.java index 0225016..b92e812 100644 --- a/src/main/java/com/rainbus/dlp/entity/converter/UserConv.java +++ b/src/main/java/com/dlp/admin/entity/converter/UserConv.java @@ -1,9 +1,9 @@ -package com.rainbus.dlp.entity.converter; +package com.dlp.admin.entity.converter; -import com.rainbus.dlp.entity.dto.user.CustomUserDetails; -import com.rainbus.dlp.entity.dto.user.TokenClaims; -import com.rainbus.dlp.entity.pojo.user.SysUser; -import com.rainbus.dlp.entity.req.user.AddUserReq; +import com.dlp.admin.entity.dto.user.CustomUserDetails; +import com.dlp.admin.entity.dto.user.TokenClaims; +import com.dlp.admin.entity.pojo.user.SysUser; +import com.dlp.admin.entity.req.user.AddUserReq; import org.mapstruct.InheritInverseConfiguration; import org.mapstruct.Mapper; import org.mapstruct.Mapping; @@ -14,13 +14,13 @@ public interface UserConv { @InheritInverseConfiguration SysUser RegisterReq2Pojo(AddUserReq req, String password); - @Mapping(target = "roles", expression = "java(user.getRoles().stream().map(com.rainbus.dlp.entity.pojo.user.SysRole::getRole).toList())") + @Mapping(target = "roles", expression = "java(user.getRoles().stream().map(com.dlp.admin.entity.pojo.user.SysRole::getRole).toList())") @Mapping(target = "orgId", expression = "java(user.getOrg().getId())") TokenClaims ClaimsPojo2Dto(SysUser user); @Mapping(target = "orgId", expression = "java(user.getOrg().getId())") @Mapping(target = "authorities", ignore = true) - @Mapping(target = "roles", expression = "java(user.getRoles().stream().map(com.rainbus.dlp.entity.pojo.user.SysRole::getRole).toList())") + @Mapping(target = "roles", expression = "java(user.getRoles().stream().map(com.dlp.admin.entity.pojo.user.SysRole::getRole).toList())") CustomUserDetails UserDetailsPojo2Dto(SysUser user); } diff --git a/src/main/java/com/rainbus/dlp/entity/dto/Pair.java b/src/main/java/com/dlp/admin/entity/dto/Pair.java similarity index 56% rename from src/main/java/com/rainbus/dlp/entity/dto/Pair.java rename to src/main/java/com/dlp/admin/entity/dto/Pair.java index 0dd952d..b7b36da 100644 --- a/src/main/java/com/rainbus/dlp/entity/dto/Pair.java +++ b/src/main/java/com/dlp/admin/entity/dto/Pair.java @@ -1,4 +1,4 @@ -package com.rainbus.dlp.entity.dto; +package com.dlp.admin.entity.dto; public record Pair(T1 v1, T2 v2) { } diff --git a/src/main/java/com/rainbus/dlp/entity/dto/Tuple.java b/src/main/java/com/dlp/admin/entity/dto/Tuple.java similarity index 61% rename from src/main/java/com/rainbus/dlp/entity/dto/Tuple.java rename to src/main/java/com/dlp/admin/entity/dto/Tuple.java index 34fd842..9b65147 100644 --- a/src/main/java/com/rainbus/dlp/entity/dto/Tuple.java +++ b/src/main/java/com/dlp/admin/entity/dto/Tuple.java @@ -1,4 +1,4 @@ -package com.rainbus.dlp.entity.dto; +package com.dlp.admin.entity.dto; public record Tuple(T1 v1, T2 v2, T3 v3) { } diff --git a/src/main/java/com/rainbus/dlp/entity/dto/system/ApiInfo.java b/src/main/java/com/dlp/admin/entity/dto/system/ApiInfo.java similarity index 77% rename from src/main/java/com/rainbus/dlp/entity/dto/system/ApiInfo.java rename to src/main/java/com/dlp/admin/entity/dto/system/ApiInfo.java index dfe4f12..b96c353 100644 --- a/src/main/java/com/rainbus/dlp/entity/dto/system/ApiInfo.java +++ b/src/main/java/com/dlp/admin/entity/dto/system/ApiInfo.java @@ -1,4 +1,4 @@ -package com.rainbus.dlp.entity.dto.system; +package com.dlp.admin.entity.dto.system; import org.springframework.web.bind.annotation.RequestMethod; diff --git a/src/main/java/com/rainbus/dlp/entity/dto/user/CustomUserDetails.java b/src/main/java/com/dlp/admin/entity/dto/user/CustomUserDetails.java similarity index 87% rename from src/main/java/com/rainbus/dlp/entity/dto/user/CustomUserDetails.java rename to src/main/java/com/dlp/admin/entity/dto/user/CustomUserDetails.java index dba8bfc..dd8fb89 100644 --- a/src/main/java/com/rainbus/dlp/entity/dto/user/CustomUserDetails.java +++ b/src/main/java/com/dlp/admin/entity/dto/user/CustomUserDetails.java @@ -1,11 +1,8 @@ -package com.rainbus.dlp.entity.dto.user; +package com.dlp.admin.entity.dto.user; import com.fasterxml.jackson.annotation.JsonIgnore; -import com.rainbus.dlp.entity.enums.UserStatusEnum; -import com.rainbus.dlp.entity.pojo.user.SysOrg; import lombok.AllArgsConstructor; import lombok.Data; -import lombok.Getter; import lombok.NoArgsConstructor; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority; @@ -13,7 +10,6 @@ import org.springframework.security.core.userdetails.UserDetails; import java.util.Collection; import java.util.List; -import java.util.stream.Collectors; @Data @NoArgsConstructor diff --git a/src/main/java/com/rainbus/dlp/entity/dto/user/TokenClaims.java b/src/main/java/com/dlp/admin/entity/dto/user/TokenClaims.java similarity index 88% rename from src/main/java/com/rainbus/dlp/entity/dto/user/TokenClaims.java rename to src/main/java/com/dlp/admin/entity/dto/user/TokenClaims.java index f9828ba..4d8c95c 100644 --- a/src/main/java/com/rainbus/dlp/entity/dto/user/TokenClaims.java +++ b/src/main/java/com/dlp/admin/entity/dto/user/TokenClaims.java @@ -1,8 +1,7 @@ -package com.rainbus.dlp.entity.dto.user; +package com.dlp.admin.entity.dto.user; import com.auth0.jwt.interfaces.Claim; -import com.rainbus.dlp.entity.pojo.user.SysOrg; -import com.rainbus.dlp.util.ConvertUtil; +import com.dlp.admin.util.ConvertUtil; import lombok.Data; import java.lang.reflect.Field; diff --git a/src/main/java/com/rainbus/dlp/entity/enums/ExceptionEnum.java b/src/main/java/com/dlp/admin/entity/enums/ExceptionEnum.java similarity index 88% rename from src/main/java/com/rainbus/dlp/entity/enums/ExceptionEnum.java rename to src/main/java/com/dlp/admin/entity/enums/ExceptionEnum.java index 159e2e0..ace9e19 100644 --- a/src/main/java/com/rainbus/dlp/entity/enums/ExceptionEnum.java +++ b/src/main/java/com/dlp/admin/entity/enums/ExceptionEnum.java @@ -1,4 +1,4 @@ -package com.rainbus.dlp.entity.enums; +package com.dlp.admin.entity.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/src/main/java/com/rainbus/dlp/entity/enums/OrgTypeEnum.java b/src/main/java/com/dlp/admin/entity/enums/OrgTypeEnum.java similarity index 85% rename from src/main/java/com/rainbus/dlp/entity/enums/OrgTypeEnum.java rename to src/main/java/com/dlp/admin/entity/enums/OrgTypeEnum.java index 1db836b..e3b78fa 100644 --- a/src/main/java/com/rainbus/dlp/entity/enums/OrgTypeEnum.java +++ b/src/main/java/com/dlp/admin/entity/enums/OrgTypeEnum.java @@ -1,4 +1,4 @@ -package com.rainbus.dlp.entity.enums; +package com.dlp.admin.entity.enums; import lombok.Getter; diff --git a/src/main/java/com/rainbus/dlp/entity/enums/RoleEnum.java b/src/main/java/com/dlp/admin/entity/enums/RoleEnum.java similarity index 76% rename from src/main/java/com/rainbus/dlp/entity/enums/RoleEnum.java rename to src/main/java/com/dlp/admin/entity/enums/RoleEnum.java index dc0365d..61b8a02 100644 --- a/src/main/java/com/rainbus/dlp/entity/enums/RoleEnum.java +++ b/src/main/java/com/dlp/admin/entity/enums/RoleEnum.java @@ -1,4 +1,4 @@ -package com.rainbus.dlp.entity.enums; +package com.dlp.admin.entity.enums; public enum RoleEnum { // system admin diff --git a/src/main/java/com/rainbus/dlp/entity/enums/UserStatusEnum.java b/src/main/java/com/dlp/admin/entity/enums/UserStatusEnum.java similarity index 85% rename from src/main/java/com/rainbus/dlp/entity/enums/UserStatusEnum.java rename to src/main/java/com/dlp/admin/entity/enums/UserStatusEnum.java index acac67c..c217944 100644 --- a/src/main/java/com/rainbus/dlp/entity/enums/UserStatusEnum.java +++ b/src/main/java/com/dlp/admin/entity/enums/UserStatusEnum.java @@ -1,4 +1,4 @@ -package com.rainbus.dlp.entity.enums; +package com.dlp.admin.entity.enums; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/src/main/java/com/rainbus/dlp/entity/exception/OrgNotExistExcp.java b/src/main/java/com/dlp/admin/entity/exception/OrgNotExistExcp.java similarity index 86% rename from src/main/java/com/rainbus/dlp/entity/exception/OrgNotExistExcp.java rename to src/main/java/com/dlp/admin/entity/exception/OrgNotExistExcp.java index af279b3..3302918 100644 --- a/src/main/java/com/rainbus/dlp/entity/exception/OrgNotExistExcp.java +++ b/src/main/java/com/dlp/admin/entity/exception/OrgNotExistExcp.java @@ -1,4 +1,4 @@ -package com.rainbus.dlp.entity.exception; +package com.dlp.admin.entity.exception; import lombok.Getter; diff --git a/src/main/java/com/rainbus/dlp/entity/exception/UserDisabledExcp.java b/src/main/java/com/dlp/admin/entity/exception/UserDisabledExcp.java similarity index 77% rename from src/main/java/com/rainbus/dlp/entity/exception/UserDisabledExcp.java rename to src/main/java/com/dlp/admin/entity/exception/UserDisabledExcp.java index a756bf0..7e73b68 100644 --- a/src/main/java/com/rainbus/dlp/entity/exception/UserDisabledExcp.java +++ b/src/main/java/com/dlp/admin/entity/exception/UserDisabledExcp.java @@ -1,6 +1,6 @@ -package com.rainbus.dlp.entity.exception; +package com.dlp.admin.entity.exception; -import com.rainbus.dlp.entity.enums.ExceptionEnum; +import com.dlp.admin.entity.enums.ExceptionEnum; import lombok.Getter; @Getter diff --git a/src/main/java/com/rainbus/dlp/entity/exception/UsernameOrPasswordExcp.java b/src/main/java/com/dlp/admin/entity/exception/UsernameOrPasswordExcp.java similarity index 79% rename from src/main/java/com/rainbus/dlp/entity/exception/UsernameOrPasswordExcp.java rename to src/main/java/com/dlp/admin/entity/exception/UsernameOrPasswordExcp.java index 8f4d298..242366e 100644 --- a/src/main/java/com/rainbus/dlp/entity/exception/UsernameOrPasswordExcp.java +++ b/src/main/java/com/dlp/admin/entity/exception/UsernameOrPasswordExcp.java @@ -1,6 +1,6 @@ -package com.rainbus.dlp.entity.exception; +package com.dlp.admin.entity.exception; -import com.rainbus.dlp.entity.enums.ExceptionEnum; +import com.dlp.admin.entity.enums.ExceptionEnum; import lombok.Getter; @Getter diff --git a/src/main/java/com/dlp/admin/entity/pojo/user/SysOrg.java b/src/main/java/com/dlp/admin/entity/pojo/user/SysOrg.java new file mode 100644 index 0000000..9efcc96 --- /dev/null +++ b/src/main/java/com/dlp/admin/entity/pojo/user/SysOrg.java @@ -0,0 +1,49 @@ +package com.dlp.admin.entity.pojo.user; + +import com.dlp.admin.entity.enums.OrgTypeEnum; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import lombok.Data; +import org.springframework.data.annotation.CreatedBy; +import org.springframework.data.annotation.CreatedDate; +import org.springframework.data.annotation.LastModifiedBy; +import org.springframework.data.annotation.LastModifiedDate; +import org.springframework.data.jpa.repository.config.EnableJpaAuditing; + +import java.time.LocalDateTime; + +@Data +@Entity +@EnableJpaAuditing +public class SysOrg { + + @Id + private Long id; + + private String org; + + private OrgTypeEnum type; + + private String fullPathName; + + private String fullPath; + + private Long parentId; + + private String region; + + private String area; + + @CreatedDate + private LocalDateTime createdAt; + + @LastModifiedDate + private LocalDateTime updatedAt; + + @CreatedBy + private Long createdBy; + + @LastModifiedBy + private Long updatedBy; + +} diff --git a/src/main/java/com/rainbus/dlp/entity/pojo/user/SysResource.java b/src/main/java/com/dlp/admin/entity/pojo/user/SysResource.java similarity index 53% rename from src/main/java/com/rainbus/dlp/entity/pojo/user/SysResource.java rename to src/main/java/com/dlp/admin/entity/pojo/user/SysResource.java index 36cda98..c721cf7 100644 --- a/src/main/java/com/rainbus/dlp/entity/pojo/user/SysResource.java +++ b/src/main/java/com/dlp/admin/entity/pojo/user/SysResource.java @@ -1,24 +1,29 @@ -package com.rainbus.dlp.entity.pojo.user; +package com.dlp.admin.entity.pojo.user; +import jakarta.persistence.*; import lombok.Data; import org.springframework.web.bind.annotation.RequestMethod; import java.time.LocalDateTime; @Data +@Entity public class SysResource { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String resource; + @Enumerated(EnumType.STRING) private RequestMethod requestMethod; private String description; - private LocalDateTime createdAt = LocalDateTime.now(); + private LocalDateTime createdAt; - private LocalDateTime updatedAt = LocalDateTime.now(); + private LocalDateTime updatedAt; } diff --git a/src/main/java/com/rainbus/dlp/entity/pojo/user/SysRole.java b/src/main/java/com/dlp/admin/entity/pojo/user/SysRole.java similarity index 66% rename from src/main/java/com/rainbus/dlp/entity/pojo/user/SysRole.java rename to src/main/java/com/dlp/admin/entity/pojo/user/SysRole.java index 2073a4f..a8894e7 100644 --- a/src/main/java/com/rainbus/dlp/entity/pojo/user/SysRole.java +++ b/src/main/java/com/dlp/admin/entity/pojo/user/SysRole.java @@ -1,18 +1,23 @@ -package com.rainbus.dlp.entity.pojo.user; +package com.dlp.admin.entity.pojo.user; +import jakarta.persistence.*; import lombok.Data; import java.util.List; @Data +@Entity public class SysRole { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String role; private String description; + @ManyToMany private List resources; private Long createdBy; diff --git a/src/main/java/com/rainbus/dlp/entity/pojo/user/SysUser.java b/src/main/java/com/dlp/admin/entity/pojo/user/SysUser.java similarity index 61% rename from src/main/java/com/rainbus/dlp/entity/pojo/user/SysUser.java rename to src/main/java/com/dlp/admin/entity/pojo/user/SysUser.java index 8fafd1d..ba9f92f 100644 --- a/src/main/java/com/rainbus/dlp/entity/pojo/user/SysUser.java +++ b/src/main/java/com/dlp/admin/entity/pojo/user/SysUser.java @@ -1,18 +1,18 @@ -package com.rainbus.dlp.entity.pojo.user; +package com.dlp.admin.entity.pojo.user; -import com.baomidou.mybatisplus.annotation.TableLogic; -import com.rainbus.dlp.entity.enums.UserStatusEnum; -import com.rainbus.dlp.entity.exception.UserDisabledExcp; -import com.rainbus.dlp.entity.exception.UsernameOrPasswordExcp; +import com.dlp.admin.entity.enums.UserStatusEnum; +import jakarta.persistence.*; import lombok.Data; import java.time.LocalDateTime; import java.util.List; -import java.util.Optional; @Data +@Entity public class SysUser { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String username; @@ -21,8 +21,10 @@ public class SysUser { private String email; + @ManyToMany private List roles; + @ManyToOne private SysOrg org; private UserStatusEnum status; diff --git a/src/main/java/com/rainbus/dlp/entity/req/PageReq.java b/src/main/java/com/dlp/admin/entity/req/PageReq.java similarity index 77% rename from src/main/java/com/rainbus/dlp/entity/req/PageReq.java rename to src/main/java/com/dlp/admin/entity/req/PageReq.java index 4b45acc..22a255d 100644 --- a/src/main/java/com/rainbus/dlp/entity/req/PageReq.java +++ b/src/main/java/com/dlp/admin/entity/req/PageReq.java @@ -1,4 +1,4 @@ -package com.rainbus.dlp.entity.req; +package com.dlp.admin.entity.req; import lombok.Data; diff --git a/src/main/java/com/rainbus/dlp/entity/req/user/AddUserReq.java b/src/main/java/com/dlp/admin/entity/req/user/AddUserReq.java similarity index 93% rename from src/main/java/com/rainbus/dlp/entity/req/user/AddUserReq.java rename to src/main/java/com/dlp/admin/entity/req/user/AddUserReq.java index ec86c87..df7503a 100644 --- a/src/main/java/com/rainbus/dlp/entity/req/user/AddUserReq.java +++ b/src/main/java/com/dlp/admin/entity/req/user/AddUserReq.java @@ -1,10 +1,9 @@ -package com.rainbus.dlp.entity.req.user; +package com.dlp.admin.entity.req.user; import jakarta.validation.constraints.Email; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Pattern; import lombok.Data; -import lombok.NonNull; @Data public class AddUserReq { diff --git a/src/main/java/com/rainbus/dlp/entity/req/user/AddUserTagReq.java b/src/main/java/com/dlp/admin/entity/req/user/AddUserTagReq.java similarity index 72% rename from src/main/java/com/rainbus/dlp/entity/req/user/AddUserTagReq.java rename to src/main/java/com/dlp/admin/entity/req/user/AddUserTagReq.java index b4a977b..ea5cca4 100644 --- a/src/main/java/com/rainbus/dlp/entity/req/user/AddUserTagReq.java +++ b/src/main/java/com/dlp/admin/entity/req/user/AddUserTagReq.java @@ -1,4 +1,4 @@ -package com.rainbus.dlp.entity.req.user; +package com.dlp.admin.entity.req.user; import lombok.Data; diff --git a/src/main/java/com/rainbus/dlp/entity/req/user/ListUserReq.java b/src/main/java/com/dlp/admin/entity/req/user/ListUserReq.java similarity index 70% rename from src/main/java/com/rainbus/dlp/entity/req/user/ListUserReq.java rename to src/main/java/com/dlp/admin/entity/req/user/ListUserReq.java index d4dcaf0..7021ef5 100644 --- a/src/main/java/com/rainbus/dlp/entity/req/user/ListUserReq.java +++ b/src/main/java/com/dlp/admin/entity/req/user/ListUserReq.java @@ -1,9 +1,8 @@ -package com.rainbus.dlp.entity.req.user; +package com.dlp.admin.entity.req.user; -import com.rainbus.dlp.entity.req.PageReq; +import com.dlp.admin.entity.req.PageReq; import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.Getter; @Data @EqualsAndHashCode(callSuper = true) diff --git a/src/main/java/com/rainbus/dlp/entity/req/user/LoginReq.java b/src/main/java/com/dlp/admin/entity/req/user/LoginReq.java similarity index 88% rename from src/main/java/com/rainbus/dlp/entity/req/user/LoginReq.java rename to src/main/java/com/dlp/admin/entity/req/user/LoginReq.java index 226b11a..29da296 100644 --- a/src/main/java/com/rainbus/dlp/entity/req/user/LoginReq.java +++ b/src/main/java/com/dlp/admin/entity/req/user/LoginReq.java @@ -1,4 +1,4 @@ -package com.rainbus.dlp.entity.req.user; +package com.dlp.admin.entity.req.user; import jakarta.validation.constraints.Pattern; import lombok.Data; diff --git a/src/main/java/com/rainbus/dlp/entity/req/user/UpdateUserReq.java b/src/main/java/com/dlp/admin/entity/req/user/UpdateUserReq.java similarity index 95% rename from src/main/java/com/rainbus/dlp/entity/req/user/UpdateUserReq.java rename to src/main/java/com/dlp/admin/entity/req/user/UpdateUserReq.java index 50645b2..be3cb7f 100644 --- a/src/main/java/com/rainbus/dlp/entity/req/user/UpdateUserReq.java +++ b/src/main/java/com/dlp/admin/entity/req/user/UpdateUserReq.java @@ -1,4 +1,4 @@ -package com.rainbus.dlp.entity.req.user; +package com.dlp.admin.entity.req.user; import jakarta.validation.constraints.Email; import jakarta.validation.constraints.NotNull; diff --git a/src/main/java/com/rainbus/dlp/entity/resp/PageResp.java b/src/main/java/com/dlp/admin/entity/resp/PageResp.java similarity index 83% rename from src/main/java/com/rainbus/dlp/entity/resp/PageResp.java rename to src/main/java/com/dlp/admin/entity/resp/PageResp.java index aa16193..00c1405 100644 --- a/src/main/java/com/rainbus/dlp/entity/resp/PageResp.java +++ b/src/main/java/com/dlp/admin/entity/resp/PageResp.java @@ -1,4 +1,4 @@ -package com.rainbus.dlp.entity.resp; +package com.dlp.admin.entity.resp; import lombok.Data; diff --git a/src/main/java/com/rainbus/dlp/entity/resp/Resp.java b/src/main/java/com/dlp/admin/entity/resp/Resp.java similarity index 94% rename from src/main/java/com/rainbus/dlp/entity/resp/Resp.java rename to src/main/java/com/dlp/admin/entity/resp/Resp.java index 4e01907..f293a52 100644 --- a/src/main/java/com/rainbus/dlp/entity/resp/Resp.java +++ b/src/main/java/com/dlp/admin/entity/resp/Resp.java @@ -1,4 +1,4 @@ -package com.rainbus.dlp.entity.resp; +package com.dlp.admin.entity.resp; import lombok.AllArgsConstructor; diff --git a/src/main/java/com/rainbus/dlp/entity/resp/user/GetTagResp.java b/src/main/java/com/dlp/admin/entity/resp/user/GetTagResp.java similarity index 75% rename from src/main/java/com/rainbus/dlp/entity/resp/user/GetTagResp.java rename to src/main/java/com/dlp/admin/entity/resp/user/GetTagResp.java index a669786..43e5707 100644 --- a/src/main/java/com/rainbus/dlp/entity/resp/user/GetTagResp.java +++ b/src/main/java/com/dlp/admin/entity/resp/user/GetTagResp.java @@ -1,4 +1,4 @@ -package com.rainbus.dlp.entity.resp.user; +package com.dlp.admin.entity.resp.user; import lombok.Data; diff --git a/src/main/java/com/rainbus/dlp/entity/resp/user/GetUserResp.java b/src/main/java/com/dlp/admin/entity/resp/user/GetUserResp.java similarity index 72% rename from src/main/java/com/rainbus/dlp/entity/resp/user/GetUserResp.java rename to src/main/java/com/dlp/admin/entity/resp/user/GetUserResp.java index 9fcc88a..b6dec05 100644 --- a/src/main/java/com/rainbus/dlp/entity/resp/user/GetUserResp.java +++ b/src/main/java/com/dlp/admin/entity/resp/user/GetUserResp.java @@ -1,11 +1,10 @@ -package com.rainbus.dlp.entity.resp.user; +package com.dlp.admin.entity.resp.user; -import com.rainbus.dlp.entity.enums.UserStatusEnum; -import com.rainbus.dlp.entity.pojo.user.SysOrg; -import com.rainbus.dlp.entity.pojo.user.SysRole; +import com.dlp.admin.entity.enums.UserStatusEnum; +import com.dlp.admin.entity.pojo.user.SysOrg; +import com.dlp.admin.entity.pojo.user.SysRole; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import lombok.Getter; import java.time.LocalDateTime; import java.util.List; diff --git a/src/main/java/com/rainbus/dlp/entity/resp/user/LoginResp.java b/src/main/java/com/dlp/admin/entity/resp/user/LoginResp.java similarity index 65% rename from src/main/java/com/rainbus/dlp/entity/resp/user/LoginResp.java rename to src/main/java/com/dlp/admin/entity/resp/user/LoginResp.java index d5e2033..0f94579 100644 --- a/src/main/java/com/rainbus/dlp/entity/resp/user/LoginResp.java +++ b/src/main/java/com/dlp/admin/entity/resp/user/LoginResp.java @@ -1,4 +1,4 @@ -package com.rainbus.dlp.entity.resp.user; +package com.dlp.admin.entity.resp.user; import lombok.Data; diff --git a/src/main/java/com/dlp/admin/repository/user/SysOrgRepo.java b/src/main/java/com/dlp/admin/repository/user/SysOrgRepo.java new file mode 100644 index 0000000..497dfaa --- /dev/null +++ b/src/main/java/com/dlp/admin/repository/user/SysOrgRepo.java @@ -0,0 +1,7 @@ +package com.dlp.admin.repository.user; + +import com.dlp.admin.entity.pojo.user.SysOrg; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface SysOrgRepo extends JpaRepository { +} diff --git a/src/main/java/com/dlp/admin/repository/user/SysResourceRepo.java b/src/main/java/com/dlp/admin/repository/user/SysResourceRepo.java new file mode 100644 index 0000000..982f6be --- /dev/null +++ b/src/main/java/com/dlp/admin/repository/user/SysResourceRepo.java @@ -0,0 +1,7 @@ +package com.dlp.admin.repository.user; + +import com.dlp.admin.entity.pojo.user.SysResource; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface SysResourceRepo extends JpaRepository { +} diff --git a/src/main/java/com/dlp/admin/repository/user/SysRoleRepo.java b/src/main/java/com/dlp/admin/repository/user/SysRoleRepo.java new file mode 100644 index 0000000..615c465 --- /dev/null +++ b/src/main/java/com/dlp/admin/repository/user/SysRoleRepo.java @@ -0,0 +1,7 @@ +package com.dlp.admin.repository.user; + +import com.dlp.admin.entity.pojo.user.SysRole; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface SysRoleRepo extends JpaRepository { +} diff --git a/src/main/java/com/dlp/admin/repository/user/SysUserRepo.java b/src/main/java/com/dlp/admin/repository/user/SysUserRepo.java new file mode 100644 index 0000000..a69ebee --- /dev/null +++ b/src/main/java/com/dlp/admin/repository/user/SysUserRepo.java @@ -0,0 +1,10 @@ +package com.dlp.admin.repository.user; + +import com.dlp.admin.entity.pojo.user.SysUser; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.Optional; + +public interface SysUserRepo extends JpaRepository { + Optional findByUsername(String username); +} diff --git a/src/main/java/com/rainbus/dlp/service/SystemServ.java b/src/main/java/com/dlp/admin/service/SystemServ.java similarity index 76% rename from src/main/java/com/rainbus/dlp/service/SystemServ.java rename to src/main/java/com/dlp/admin/service/SystemServ.java index 5a6e1c4..3be070b 100644 --- a/src/main/java/com/rainbus/dlp/service/SystemServ.java +++ b/src/main/java/com/dlp/admin/service/SystemServ.java @@ -1,10 +1,10 @@ -package com.rainbus.dlp.service; +package com.dlp.admin.service; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.rainbus.dlp.entity.ApiDescription; -import com.rainbus.dlp.entity.converter.SystemConv; -import com.rainbus.dlp.entity.dto.system.ApiInfo; -import com.rainbus.dlp.entity.pojo.user.SysResource; +import com.dlp.admin.entity.converter.SystemConv; +import com.dlp.admin.entity.dto.system.ApiInfo; + +import com.dlp.admin.entity.pojo.user.SysResource; +import io.swagger.v3.oas.annotations.Operation; import lombok.RequiredArgsConstructor; import org.springframework.context.ApplicationContext; import org.springframework.stereotype.Service; @@ -15,7 +15,6 @@ import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandl import org.springframework.web.util.pattern.PathPattern; import java.util.*; -import java.util.stream.Collectors; @Service @RequiredArgsConstructor @@ -38,10 +37,10 @@ public class SystemServ { Set patterns = info.getPathPatternsCondition().getPatterns(); Set methods = info.getMethodsCondition().getMethods(); - Optional desc = Optional.ofNullable(func.getMethod().getAnnotation(ApiDescription.class)); + Optional desc = Optional.ofNullable(func.getMethod().getAnnotation(Operation.class)); for (PathPattern url : patterns) { for (RequestMethod method : methods) { - apiInfos.add(new ApiInfo(url.getPatternString(), method, desc.map(ApiDescription::value).orElse(null))); + apiInfos.add(new ApiInfo(url.getPatternString(), method, desc.map(Operation::summary).orElse(null))); } } }); diff --git a/src/main/java/com/rainbus/dlp/service/UserServ.java b/src/main/java/com/dlp/admin/service/UserServ.java similarity index 67% rename from src/main/java/com/rainbus/dlp/service/UserServ.java rename to src/main/java/com/dlp/admin/service/UserServ.java index cae2d5c..4bef6d6 100644 --- a/src/main/java/com/rainbus/dlp/service/UserServ.java +++ b/src/main/java/com/dlp/admin/service/UserServ.java @@ -1,21 +1,20 @@ -package com.rainbus.dlp.service; +package com.dlp.admin.service; -import com.rainbus.dlp.entity.converter.UserConv; -import com.rainbus.dlp.entity.dto.user.CustomUserDetails; -import com.rainbus.dlp.entity.dto.user.TokenClaims; -import com.rainbus.dlp.entity.enums.UserStatusEnum; -import com.rainbus.dlp.entity.exception.OrgNotExistExcp; -import com.rainbus.dlp.entity.exception.UserDisabledExcp; -import com.rainbus.dlp.entity.exception.UsernameOrPasswordExcp; -import com.rainbus.dlp.entity.pojo.user.SysOrg; -import com.rainbus.dlp.entity.pojo.user.SysRole; -import com.rainbus.dlp.entity.pojo.user.SysUser; -import com.rainbus.dlp.entity.req.user.LoginReq; -import com.rainbus.dlp.entity.resp.user.LoginResp; -import com.rainbus.dlp.repository.dao.UserDao; -import com.rainbus.dlp.util.AuthUtil; -import com.rainbus.dlp.util.JwtUtil; -import com.rainbus.dlp.util.RedisUtil; +import com.dlp.admin.entity.converter.UserConv; +import com.dlp.admin.entity.dto.user.CustomUserDetails; +import com.dlp.admin.entity.dto.user.TokenClaims; +import com.dlp.admin.entity.enums.UserStatusEnum; +import com.dlp.admin.entity.exception.OrgNotExistExcp; +import com.dlp.admin.entity.exception.UserDisabledExcp; +import com.dlp.admin.entity.exception.UsernameOrPasswordExcp; +import com.dlp.admin.entity.pojo.user.SysOrg; +import com.dlp.admin.entity.pojo.user.SysUser; +import com.dlp.admin.entity.req.user.LoginReq; +import com.dlp.admin.entity.resp.user.LoginResp; +import com.dlp.admin.repository.user.SysUserRepo; +import com.dlp.admin.util.AuthUtil; +import com.dlp.admin.util.JwtUtil; +import com.dlp.admin.util.RedisUtil; import lombok.AllArgsConstructor; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; @@ -23,7 +22,6 @@ import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; -import java.util.List; import java.util.Optional; @@ -32,7 +30,7 @@ import java.util.Optional; public class UserServ implements UserDetailsService { private final UserConv userConv; - private final UserDao userDao; + private final SysUserRepo userRepo; public static final String REDIS_USER_DETAILS = "user_details_%s"; public static final long REDIS_USER_DETAILS_EXPIRE = 1 * 60 * 60; @@ -41,7 +39,7 @@ public class UserServ implements UserDetailsService { private final AuthUtil authUtil; public SysUser getUserByUsername(String username) { - Optional user = userDao.findUserByUsername(username); + Optional user = userRepo.findByUsername(username); if (user.isEmpty()) { throw new UsernameNotFoundException("用户不存在"); } @@ -49,7 +47,7 @@ public class UserServ implements UserDetailsService { } public LoginResp login(LoginReq req) { - Optional userOpt = userDao.findUserRoleOrgByUsername(req.getUsername()); + Optional userOpt = userRepo.findByUsername(req.getUsername()); SysUser user = validUserAvailable(userOpt); validPassword(req.getPassword(), user.getPassword()); TokenClaims claims = userConv.ClaimsPojo2Dto(user); @@ -57,12 +55,12 @@ public class UserServ implements UserDetailsService { resp.setToken(JwtUtil.generateToken(claims)); return resp; } - - public Object listUser() { - Long orgId = authUtil.getUserDetails().getOrgId(); - List subOrgIds = userDao.listOrgWithSubOrg(orgId).stream().map(SysOrg::getId).toList(); - return userDao.listUserByOrgIds(subOrgIds); - } +// +// public Object listUser() { +// Long orgId = authUtil.getUserDetails().getOrgId(); +// List subOrgIds = userDao.listOrgWithSubOrg(orgId).stream().map(SysOrg::getId).toList(); +// return userDao.listUserByOrgIds(subOrgIds); +// } @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { @@ -73,7 +71,7 @@ public class UserServ implements UserDetailsService { } // 读数据库 - Optional userOpt = userDao.findUserRoleOrgByUsername(username); + Optional userOpt = userRepo.findByUsername(username); SysUser user = validUserAvailable(userOpt); CustomUserDetails userDetails = userConv.UserDetailsPojo2Dto(user); diff --git a/src/main/java/com/rainbus/dlp/util/AuthUtil.java b/src/main/java/com/dlp/admin/util/AuthUtil.java similarity index 59% rename from src/main/java/com/rainbus/dlp/util/AuthUtil.java rename to src/main/java/com/dlp/admin/util/AuthUtil.java index 53de53f..e14460a 100644 --- a/src/main/java/com/rainbus/dlp/util/AuthUtil.java +++ b/src/main/java/com/dlp/admin/util/AuthUtil.java @@ -1,9 +1,7 @@ -package com.rainbus.dlp.util; +package com.dlp.admin.util; -import com.rainbus.dlp.entity.dto.user.CustomUserDetails; -import org.springframework.context.annotation.Configuration; +import com.dlp.admin.entity.dto.user.CustomUserDetails; import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.UserDetails; import org.springframework.stereotype.Component; @Component diff --git a/src/main/java/com/rainbus/dlp/util/ConvertUtil.java b/src/main/java/com/dlp/admin/util/ConvertUtil.java similarity index 97% rename from src/main/java/com/rainbus/dlp/util/ConvertUtil.java rename to src/main/java/com/dlp/admin/util/ConvertUtil.java index 725a260..a925452 100644 --- a/src/main/java/com/rainbus/dlp/util/ConvertUtil.java +++ b/src/main/java/com/dlp/admin/util/ConvertUtil.java @@ -1,4 +1,4 @@ -package com.rainbus.dlp.util; +package com.dlp.admin.util; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/src/main/java/com/rainbus/dlp/util/JwtUtil.java b/src/main/java/com/dlp/admin/util/JwtUtil.java similarity index 94% rename from src/main/java/com/rainbus/dlp/util/JwtUtil.java rename to src/main/java/com/dlp/admin/util/JwtUtil.java index a29f159..61b2855 100644 --- a/src/main/java/com/rainbus/dlp/util/JwtUtil.java +++ b/src/main/java/com/dlp/admin/util/JwtUtil.java @@ -1,4 +1,4 @@ -package com.rainbus.dlp.util; +package com.dlp.admin.util; import com.auth0.jwt.JWT; import com.auth0.jwt.JWTCreator; @@ -6,7 +6,7 @@ import com.auth0.jwt.JWTVerifier; import com.auth0.jwt.algorithms.Algorithm; import com.auth0.jwt.exceptions.JWTVerificationException; import com.auth0.jwt.interfaces.DecodedJWT; -import com.rainbus.dlp.entity.dto.user.TokenClaims; +import com.dlp.admin.entity.dto.user.TokenClaims; import java.time.Instant; diff --git a/src/main/java/com/rainbus/dlp/util/RedisUtil.java b/src/main/java/com/dlp/admin/util/RedisUtil.java similarity index 98% rename from src/main/java/com/rainbus/dlp/util/RedisUtil.java rename to src/main/java/com/dlp/admin/util/RedisUtil.java index 12cb387..8be8db5 100644 --- a/src/main/java/com/rainbus/dlp/util/RedisUtil.java +++ b/src/main/java/com/dlp/admin/util/RedisUtil.java @@ -1,4 +1,4 @@ -package com.rainbus.dlp.util; +package com.dlp.admin.util; import com.fasterxml.jackson.core.JsonProcessingException; import lombok.AllArgsConstructor; diff --git a/src/main/java/com/rainbus/dlp/config/MybatisMetaObjectHandler.java b/src/main/java/com/rainbus/dlp/config/MybatisMetaObjectHandler.java deleted file mode 100644 index e20ef1f..0000000 --- a/src/main/java/com/rainbus/dlp/config/MybatisMetaObjectHandler.java +++ /dev/null @@ -1,54 +0,0 @@ -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; - -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")) { - this.fillStrategy(metaObject, "createAt", LocalDateTime.now()); - } - if (metaObject.hasSetter("updateAt")) { - this.fillStrategy(metaObject, "updateAt", LocalDateTime.now()); - } - if (metaObject.hasSetter("createBy")) { - this.fillStrategy(metaObject, "createBy", this.getCurrentUserId()); - } - if (metaObject.hasSetter("updateBy")) { - this.fillStrategy(metaObject, "updateBy", this.getCurrentUserId()); - } - if (metaObject.hasSetter("isDeleted")) { - this.fillStrategy(metaObject, "isDeleted", false); - } - } - - @Override - public void updateFill(MetaObject metaObject) { - if (metaObject.hasSetter("updateAt")) { - this.fillStrategy(metaObject, "updateAt", LocalDateTime.now()); - } - if (metaObject.hasSetter("updateBy")) { - this.fillStrategy(metaObject, "updateBy", this.getCurrentUserId()); - } - } - - private Long getCurrentUserId() { - 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 deleted file mode 100644 index 400667a..0000000 --- a/src/main/java/com/rainbus/dlp/config/MybatisPlusConf.java +++ /dev/null @@ -1,19 +0,0 @@ -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/entity/pojo/user/SysOrg.java b/src/main/java/com/rainbus/dlp/entity/pojo/user/SysOrg.java deleted file mode 100644 index f5485a5..0000000 --- a/src/main/java/com/rainbus/dlp/entity/pojo/user/SysOrg.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.rainbus.dlp.entity.pojo.user; - -import com.rainbus.dlp.entity.enums.OrgTypeEnum; -import lombok.Data; - -import java.time.LocalDateTime; - -@Data -public class SysOrg { - - private Long id; - - private String org; - - private OrgTypeEnum type; - - private String fullPathName; - - private String fullPath; - - private Long parentId; - - private String region; - - private String area; - - private LocalDateTime createdAt; - - private LocalDateTime updatedAt; - - private Long createdBy; - - private Long updatedBy; - -} diff --git a/src/main/java/com/rainbus/dlp/repository/dao/SystemDao.java b/src/main/java/com/rainbus/dlp/repository/dao/SystemDao.java deleted file mode 100644 index 7d8300b..0000000 --- a/src/main/java/com/rainbus/dlp/repository/dao/SystemDao.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.rainbus.dlp.repository.dao; - -import com.baomidou.mybatisplus.core.batch.MybatisBatch; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.rainbus.dlp.entity.pojo.user.SysResource; -import com.rainbus.dlp.repository.mapper.user.SysResourceMapper; -import com.rainbus.dlp.repository.mapper.user.SysUserMapper; -import org.apache.ibatis.session.SqlSessionFactory; -import org.springframework.stereotype.Component; - -import java.util.List; - -@Component -public class SystemDao { - - private final SysResourceMapper resourceMapper; - private final SqlSessionFactory sqlSessionFactory; - private final SysUserMapper sysUserMapper; - - public SystemDao(SysResourceMapper sysResourceMapper, SqlSessionFactory sqlSessionFactory, SysUserMapper sysUserMapper) { - this.resourceMapper = sysResourceMapper; - this.sqlSessionFactory = sqlSessionFactory; - this.sysUserMapper = sysUserMapper; - } - -} diff --git a/src/main/java/com/rainbus/dlp/repository/dao/UserDao.java b/src/main/java/com/rainbus/dlp/repository/dao/UserDao.java deleted file mode 100644 index 3eebf95..0000000 --- a/src/main/java/com/rainbus/dlp/repository/dao/UserDao.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.rainbus.dlp.repository.dao; - -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.rainbus.dlp.entity.pojo.user.SysOrg; -import com.rainbus.dlp.entity.pojo.user.SysRole; -import com.rainbus.dlp.entity.pojo.user.SysUser; -import com.rainbus.dlp.repository.mapper.user.SysOrgMapper; -import com.rainbus.dlp.repository.mapper.user.SysRoleMapper; -import com.rainbus.dlp.repository.mapper.user.SysUserMapper; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Component; - -import java.util.List; -import java.util.Objects; -import java.util.Optional; - - -@Component -@RequiredArgsConstructor -public class UserDao { - - private final SysUserMapper userMapper; - private final SysRoleMapper roleMapper; - private final SysOrgMapper orgMapper; - - public Optional findUserByUsername(String username) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper() - .eq(SysUser::getUsername, username); - return Optional.ofNullable(userMapper.selectOne(wrapper)); - } - - public Optional findUserRoleOrgByUsername(String username) { - return Optional.ofNullable(userMapper.selectUserRoleOrgByUsername(username)); - } - - public List listRoleResource() { - return roleMapper.selectAllRoleResource(); - } - - - public Optional findOrgById(Long orgId) { - return Optional.ofNullable(orgMapper.selectById(orgId)); - } - - public List listOrgWithSubOrg(Long orgId) { - SysOrg org = orgMapper.selectById(orgId); - if (Objects.isNull(org)) { - return List.of(); - } - LambdaQueryWrapper subQueryWrapper = new LambdaQueryWrapper() - .like(SysOrg::getFullPath, org.getFullPath() + "%"); - return orgMapper.selectList(subQueryWrapper); - } - - public List listUserByOrgIds(List orgIds) { - LambdaQueryWrapper lqw = new LambdaQueryWrapper() - .in(SysUser::getOrg, orgIds); - return userMapper.selectList(lqw); - } - -} diff --git a/src/main/java/com/rainbus/dlp/repository/mapper/user/SysOrgMapper.java b/src/main/java/com/rainbus/dlp/repository/mapper/user/SysOrgMapper.java deleted file mode 100644 index 79551c1..0000000 --- a/src/main/java/com/rainbus/dlp/repository/mapper/user/SysOrgMapper.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.rainbus.dlp.repository.mapper.user; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.rainbus.dlp.entity.pojo.user.SysOrg; - -public interface SysOrgMapper extends BaseMapper { -} diff --git a/src/main/java/com/rainbus/dlp/repository/mapper/user/SysResourceMapper.java b/src/main/java/com/rainbus/dlp/repository/mapper/user/SysResourceMapper.java deleted file mode 100644 index 3040aa0..0000000 --- a/src/main/java/com/rainbus/dlp/repository/mapper/user/SysResourceMapper.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.rainbus.dlp.repository.mapper.user; - -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.rainbus.dlp.entity.pojo.user.SysResource; -import com.rainbus.dlp.util.SqlUtil; -import com.rainbus.dlp.util.TextUtil; -import org.apache.ibatis.annotations.Insert; -import org.apache.ibatis.annotations.Select; -import org.mapstruct.Mapping; - -import java.util.List; - -public interface SysResourceMapper extends BaseMapper { - - @Select(""" - select * from sys_resource sr - left join sys_role_resources srr - on sr.id = srr.resources_id - where srr.sys_role_id = #{roleId} - """) - List selectListByRoleId(Long roleId); - - @Insert(""" - - """) - Long batchInsert(List resources); - -} diff --git a/src/main/java/com/rainbus/dlp/repository/mapper/user/SysRoleMapper.java b/src/main/java/com/rainbus/dlp/repository/mapper/user/SysRoleMapper.java deleted file mode 100644 index cc9cf9a..0000000 --- a/src/main/java/com/rainbus/dlp/repository/mapper/user/SysRoleMapper.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.rainbus.dlp.repository.mapper.user; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.rainbus.dlp.entity.dto.Pair; -import com.rainbus.dlp.entity.pojo.user.SysRole; -import org.apache.ibatis.annotations.*; - -import javax.management.relation.Role; -import java.util.List; - -public interface SysRoleMapper extends BaseMapper { - - @Select(""" - select * from sys_role sr - left join sys_user_roles sur - on sr.id = sur.roles_id - where sur.sys_user_id = #{userId} - """) - List selectListByUserId(Long userId); - - @Select(""" - select * from sys_role where id = 4 - """) - @Results( - @Result( - property = "resources", - column = "id", - many = @Many( - select = "com.rainbus.dlp.repository.mapper.user.SysResourceMapper.selectListByRoleId" - ) - ) - ) - List selectAllRoleResource(); - - - @Select(""" - select * from sys_user_roles where sys_user_id in #{userId} - """) - @Results({ - @Result(property = "v1", column = "sys_user_id"), - @Result(property = "v2", column = "roles_id") - }) - List> selectRoleIdsByUserId(List userId); - - -} diff --git a/src/main/java/com/rainbus/dlp/repository/mapper/user/SysUserMapper.java b/src/main/java/com/rainbus/dlp/repository/mapper/user/SysUserMapper.java deleted file mode 100644 index bf76e0d..0000000 --- a/src/main/java/com/rainbus/dlp/repository/mapper/user/SysUserMapper.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.rainbus.dlp.repository.mapper.user; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.rainbus.dlp.entity.pojo.user.SysUser; -import org.apache.ibatis.annotations.*; - -import java.util.List; - -public interface SysUserMapper extends BaseMapper { - @Select(""" - select * from sys_user where username = #{username} - """) - @Results({ - @Result(column = "id", property = "id"), - @Result( - column = "id", - property = "roles", - many = @Many( - select = "com.rainbus.dlp.repository.mapper.user.SysRoleMapper.selectListByUserId" - ) - ), - @Result( - column = "org_id", - property = "org", - one = @One( - select = "com.rainbus.dlp.repository.mapper.user.SysOrgMapper.selectById" - ) - ) - }) - SysUser selectUserRoleOrgByUsername(@Param("username") String username); - -} diff --git a/src/main/java/com/rainbus/dlp/util/SqlUtil.java b/src/main/java/com/rainbus/dlp/util/SqlUtil.java deleted file mode 100644 index 8414676..0000000 --- a/src/main/java/com/rainbus/dlp/util/SqlUtil.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.rainbus.dlp.util; - -import java.util.Arrays; -import java.util.List; - -public class SqlUtil { - - record TableInfo(String tableName, List columName) {} - - public static String generateBatchInsertSql(String fieldName, Class tClass) { - TableInfo tableInfo = getTableInfo(tClass); - return STR.""" - INSERT INTO \{tableInfo.tableName} (\{String.join(", ", tableInfo.columName)}) - VALUES - - (\{String.join(", ", tableInfo.columName.stream().map(colum -> STR."#{item.\{colum}}").toList())}) - - """; - } - - private static TableInfo getTableInfo(Class tClass) { - String tableName = TextUtil.camelToSnake(tClass.getSimpleName()); - List columName = Arrays.stream(tClass.getDeclaredFields()) - .map(field -> TextUtil.camelToSnake(field.getName())) - .toList(); - return new TableInfo(tableName, columName); - } -} diff --git a/src/main/java/com/rainbus/dlp/util/TextUtil.java b/src/main/java/com/rainbus/dlp/util/TextUtil.java deleted file mode 100644 index 88046b4..0000000 --- a/src/main/java/com/rainbus/dlp/util/TextUtil.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.rainbus.dlp.util; - -import org.apache.commons.lang3.StringUtils; - -import java.nio.charset.StandardCharsets; - -public class TextUtil { - public static String camelToSnake(String camel) { - if (StringUtils.isBlank(camel)) { - return camel; - } - camel = Character.toLowerCase(camel.charAt(0)) + camel.substring(1); - - StringBuilder result = new StringBuilder(); - for (Character c: camel.toCharArray()) { - if (Character.isUpperCase(c)) { - result.append("_"); - result.append(Character.toLowerCase(c)); - } else { - result.append(c); - } - } - return result.toString(); - } -} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 09c9c44..cb20593 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -7,6 +7,13 @@ spring: username: root password: 13291004986@lm driver-class-name: com.mysql.cj.jdbc.Driver + jpa: + hibernate: + ddl-auto: update + show-sql: true +# properties: +# hibernate: +# enable_lazy_load_no_trans: true data: @@ -15,11 +22,4 @@ spring: port: 6379 password: 13291004986 timeout: 10000 - database: 0 -logging: - level: - com: - rainbus: - dlp: - repository: - mapper: debug + database: 0 \ No newline at end of file diff --git a/src/main/resources/mapper/SysResourceMapper.xml b/src/main/resources/mapper/SysResourceMapper.xml deleted file mode 100644 index b628899..0000000 --- a/src/main/resources/mapper/SysResourceMapper.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - diff --git a/src/test/java/com/rainbus/dlp/DlpAdminBackendApplicationTests.java b/src/test/java/com/dlp/admin/DlpAdminBackendApplicationTests.java similarity index 88% rename from src/test/java/com/rainbus/dlp/DlpAdminBackendApplicationTests.java rename to src/test/java/com/dlp/admin/DlpAdminBackendApplicationTests.java index 994e996..cc26e3c 100644 --- a/src/test/java/com/rainbus/dlp/DlpAdminBackendApplicationTests.java +++ b/src/test/java/com/dlp/admin/DlpAdminBackendApplicationTests.java @@ -1,4 +1,4 @@ -package com.rainbus.dlp; +package com.dlp.admin; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest;