diff --git a/src/main/java/cn/lihongjie/coal/common/RequestUtils.java b/src/main/java/cn/lihongjie/coal/common/RequestUtils.java index 94d824b1..bd6f7c10 100644 --- a/src/main/java/cn/lihongjie/coal/common/RequestUtils.java +++ b/src/main/java/cn/lihongjie/coal/common/RequestUtils.java @@ -6,6 +6,7 @@ import eu.bitwalker.useragentutils.UserAgent; import eu.bitwalker.useragentutils.Version; import jakarta.servlet.http.HttpServletRequest; import lombok.experimental.UtilityClass; +import org.apache.commons.lang3.StringUtils; @UtilityClass public class RequestUtils { @@ -41,18 +42,27 @@ public class RequestUtils { public static String getUa(HttpServletRequest request) { - UserAgent userAgent = UserAgent.parseUserAgentString(request.getHeader("User-Agent")); - Browser browser = userAgent.getBrowser(); + try { - String browserName = browser.getName(); - //or - // String browserName = browser.getGroup().getName(); - Version browserVersion = userAgent.getBrowserVersion(); + String header = request.getHeader("User-Agent"); + if (StringUtils.isEmpty(header)) { + return ""; + } + UserAgent userAgent = UserAgent.parseUserAgentString(header); + Browser browser = userAgent.getBrowser(); - OperatingSystem os = userAgent.getOperatingSystem(); + String browserName = browser.getName(); + //or + // String browserName = browser.getGroup().getName(); + Version browserVersion = userAgent.getBrowserVersion(); - return os.getName() + " " + browserName + browserVersion.toString(); + OperatingSystem os = userAgent.getOperatingSystem(); + return os.getName() + " " + browserName + browserVersion.toString(); + + } catch (Exception e) { + return ""; + } } } diff --git a/src/main/java/cn/lihongjie/coal/controller/ResourceController.java b/src/main/java/cn/lihongjie/coal/controller/ResourceController.java index 0ac3b0f4..4f4e067e 100644 --- a/src/main/java/cn/lihongjie/coal/controller/ResourceController.java +++ b/src/main/java/cn/lihongjie/coal/controller/ResourceController.java @@ -18,6 +18,19 @@ public class ResourceController { @Autowired ResourceService service; + + + @PostMapping("/apiTree") + @SysLog(action = "获取接口树") + public ResourceTreeDto apiTree() { + return this.service.apiTree(); + } + @PostMapping("/menuTree") + @SysLog(action = "获取菜单树") + public ResourceTreeDto menuTree() { + return this.service.menuTree(); + } + @PostMapping("/create") @SysLog(action = "新增") public ResourceDto create(@RequestBody CreateResourceDto dto) { diff --git a/src/main/java/cn/lihongjie/coal/dao/ResourceRepository.java b/src/main/java/cn/lihongjie/coal/dao/ResourceRepository.java index 2eb976d4..22156d0a 100644 --- a/src/main/java/cn/lihongjie/coal/dao/ResourceRepository.java +++ b/src/main/java/cn/lihongjie/coal/dao/ResourceRepository.java @@ -1,8 +1,13 @@ package cn.lihongjie.coal.dao; import cn.lihongjie.coal.entity.ResourceEntity; +import org.springframework.data.jpa.repository.EntityGraph; import org.springframework.stereotype.Repository; @Repository public interface ResourceRepository extends BaseRepository { + + + @EntityGraph(attributePaths = {"children"}) + ResourceEntity findByTypeAndParentIsNull(String type); } \ No newline at end of file diff --git a/src/main/java/cn/lihongjie/coal/dto/ResourceTreeDto.java b/src/main/java/cn/lihongjie/coal/dto/ResourceTreeDto.java new file mode 100644 index 00000000..9c98e86f --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/dto/ResourceTreeDto.java @@ -0,0 +1,11 @@ +package cn.lihongjie.coal.dto; + +import lombok.Data; + +import java.util.List; + +@Data +public class ResourceTreeDto extends ResourceDto { + + private List children; +} diff --git a/src/main/java/cn/lihongjie/coal/entity/ResourceEntity.java b/src/main/java/cn/lihongjie/coal/entity/ResourceEntity.java index a5171521..03cc7ea0 100644 --- a/src/main/java/cn/lihongjie/coal/entity/ResourceEntity.java +++ b/src/main/java/cn/lihongjie/coal/entity/ResourceEntity.java @@ -51,7 +51,7 @@ public class ResourceEntity extends CommonEntity { public void addChildren(ResourceEntity newRs) { - log.info("addChildren1 {} {}", this.getUrl(), newRs.getUrl()); +// log.info("addChildren1 {} {}", this.getUrl(), newRs.getUrl()); if (this.children == null) { this.children = new ArrayList<>(); } @@ -94,7 +94,7 @@ public class ResourceEntity extends CommonEntity { this.children.add(r); - log.info("addChildren2 {} {}", r.getUrl(), this.getUrl()); +// log.info("addChildren2 {} {}", r.getUrl(), this.getUrl()); r.addChildren(newRs); diff --git a/src/main/java/cn/lihongjie/coal/entity/base/OrgCommonEntity.java b/src/main/java/cn/lihongjie/coal/entity/base/OrgCommonEntity.java index 4cbc1915..ca8bfd46 100644 --- a/src/main/java/cn/lihongjie/coal/entity/base/OrgCommonEntity.java +++ b/src/main/java/cn/lihongjie/coal/entity/base/OrgCommonEntity.java @@ -1,17 +1,19 @@ package cn.lihongjie.coal.entity.base; import cn.lihongjie.coal.common.Ctx; -import cn.lihongjie.coal.entity.OrganizationEntity; -import cn.lihongjie.coal.entity.base.CommonEntity; -import com.fasterxml.jackson.annotation.JsonIgnore; -import jakarta.persistence.*; +import jakarta.persistence.MappedSuperclass; import lombok.Getter; import lombok.Setter; import org.apache.commons.lang3.StringUtils; +import org.hibernate.annotations.Filter; +import org.hibernate.annotations.FilterDef; +import org.hibernate.annotations.ParamDef; @MappedSuperclass @Getter @Setter +@FilterDef(name = "orgFilter", parameters = @ParamDef(name = "organizationId", type = String.class)) +@Filter(name = "orgFilter", condition = "organizationId = :organizationId") public class OrgCommonEntity extends CommonEntity { diff --git a/src/main/java/cn/lihongjie/coal/mapper/ResourceMapper.java b/src/main/java/cn/lihongjie/coal/mapper/ResourceMapper.java index d4469217..1a39245c 100644 --- a/src/main/java/cn/lihongjie/coal/mapper/ResourceMapper.java +++ b/src/main/java/cn/lihongjie/coal/mapper/ResourceMapper.java @@ -3,6 +3,7 @@ package cn.lihongjie.coal.mapper; import cn.lihongjie.coal.dto.CreateResourceDto; import cn.lihongjie.coal.dto.ResourceDto; +import cn.lihongjie.coal.dto.ResourceTreeDto; import cn.lihongjie.coal.dto.UpdateResourceDto; import cn.lihongjie.coal.entity.ResourceEntity; import org.mapstruct.Mapper; @@ -23,4 +24,6 @@ public interface ResourceMapper { void updateEntity(@MappingTarget ResourceEntity entity, UpdateResourceDto dto); + + ResourceTreeDto toTreeDto(ResourceEntity byTypeAndParentIsNull); } diff --git a/src/main/java/cn/lihongjie/coal/service/ResourceService.java b/src/main/java/cn/lihongjie/coal/service/ResourceService.java index 622e5d2e..4c8ec898 100644 --- a/src/main/java/cn/lihongjie/coal/service/ResourceService.java +++ b/src/main/java/cn/lihongjie/coal/service/ResourceService.java @@ -182,4 +182,14 @@ public class ResourceService extends BaseService