Java目录树的创建与获取
更新时间:2024年03月31日 09:06:54 作者:Java中的战斗机
在Java开发中,经常会涉及到生成目录树的需求,本文主要介绍了Java目录树的创建与获取,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
在Java开发中,经常会涉及到生成目录树的需求,目录树是一种树状结构,用于表示文件系统中的目录和文件之间的层次关系。下面就来介绍一下Java目录树的创建与获取,具体如下:
逻辑代码
/** * @描述 应用目录树添加 * @作者 梁伟浩 * @日期 2024/3/29 15:30 */ @Override @Transactional(rollbackFor = Exception.class) public R saveApplyContent(ApplyDirContentRequest request) { BiProjectDir projectDir = new BiProjectDir(); BeanUtil.copyProperties(request, projectDir); projectDir.setCreateUser(request.getUserId()); projectDir.setCreateTime(new Date()); projectDir.setUpdateUser(request.getUserId()); projectDir.setUpdateTime(new Date()); // 参数没传父级ID,则进入方法查询是否有父级目录,有则取其ID作为父ID无则创建根节点配置 if (ObjectUtil.isEmpty(request.getParentId())) { BiProjectDir rootContent = this.getRootContent(request.getProjectId()); //获取父级ID projectDir.setParentId(rootContent.getId()); } biProjectDirMapper.insert(projectDir); return R.data(projectDir); } private BiProjectDir getRootContent(Long projectId) { //查出同一项目下的所有目录与文件 BiProjectDir rootContent = biProjectDirMapper.selectOne(new LambdaQueryWrapper<BiProjectDir>().eq(BiProjectDir::getProjectId,projectId).eq(BiProjectDir::getName,"根节点配置")); if (rootContent == null) { // 如果没有根节点配置,则自动新建根节点配置 rootContent = new BiProjectDir(); rootContent.setName("根节点配置"); rootContent.setProjectId(projectId); rootContent.setSort(1); biProjectDirMapper.insert(rootContent); } return rootContent; } /** * @param projectId 项目ID * @描述 获取应用目录树 * @作者 梁伟浩 * @日期 2024/3/30 14:20 星期六 */ @Override public R<List<ApplyContentResponse>> getApplyContent(Long projectId) { List<BiProjectDir> biProjectDirs = biProjectDirMapper.selectList(new LambdaQueryWrapper<BiProjectDir>().eq(BiProjectDir::getProjectId, projectId)); if (!biProjectDirs.isEmpty()){ //构建目录树 List<ApplyContentResponse> list = ListTreeUtil.build(biProjectDirs, "id", "parentId", null, ApplyContentResponse.class, Comparator.comparing(ApplyContentResponse::getSort)); System.out.println(list); return R.data(list); } return null; }
实体
package com.guodi.bi.dmp.entiy; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.util.Date; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; /** * 项目专题目录图层表 */ @Data @ApiModel(value = "项目专题目录图层表", description = "项目专题目录图层表") @TableName("bi_project_dir") public class BiProjectDir { /** * 主键ID */ @ApiModelProperty(value = "主键ID") private Long id; /** * 名称 */ @ApiModelProperty(value = "名称") private String name; /** * 上级ID */ @ApiModelProperty(value = "上级ID") private Long parentId; /** * 备注 */ @ApiModelProperty(value = "备注") private String remark; /** * 目录/图层(1.目录,2图层) */ @ApiModelProperty(value = "目录/图层(1.目录,2图层)") private Integer type; /** * 显示顺序 */ @ApiModelProperty(value = "显示顺序") private Integer sort; /** * 项目ID */ @ApiModelProperty(value = "项目ID") private Long projectId; /** * 项目数据页面ID */ @ApiModelProperty(value = "项目数据页面ID") private Long projectDataId; /** * 创建人 */ @ApiModelProperty(value = "创建人") private Long createUser; /** * 创建时间 */ @ApiModelProperty(value = "创建时间") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; /** * 更新人 */ @ApiModelProperty(value = "更新人") private Long updateUser; /** * 更新时间 */ @ApiModelProperty(value = "更新时间") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; /** * 是否已删除 */ @TableLogic @ApiModelProperty(value = "是否已删除") private Integer isDeleted = 0; }
响应实体
package com.guodi.bi.dmp.vo.response; import com.fasterxml.jackson.annotation.JsonInclude; import com.guodi.bi.dmp.entiy.BiProjectDir; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; /** * @author 梁伟浩 * @description 应用目录树返回实体 * @date 2024/3/30 14:15 * @study 星期六 */ @Data public class ApplyContentResponse extends BiProjectDir { /** * 子孙节点 */ @ApiModelProperty(value = "子节点") @JsonInclude(JsonInclude.Include.NON_EMPTY) private List<BiProjectDir> children; }
到此这篇关于Java目录树的创建与获取的文章就介绍到这了,更多相关Java目录树创建与获取内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
相关文章
struts2+jsp+jquery+Jcrop实现图片裁剪并上传实例
本篇文章主要介绍了struts2+jsp+jquery+Jcrop实现图片裁剪并上传实例,具有一定的参考价值,有兴趣的可以了解一下。2017-01-01spring注解 @PropertySource配置数据源全流程
这篇文章主要介绍了spring注解 @PropertySource配置数据源全流程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-03-03Spring @RestController注解组合实现方法解析
这篇文章主要介绍了Spring @RestController注解组合实现方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2020-06-06Java LocalDateTime获取时间信息、格式化、转换为数字时间戳代码示例
其实我们在Java项目中对日期进行格式化,主要是利用一些日期格式化类,下面这篇文章主要给大家介绍了关于Java LocalDateTime获取时间信息、格式化、转换为数字时间戳的相关资料,需要的朋友可以参考下2023-11-11
最新评论