获取文件树

This commit is contained in:
筱锋xiao_lfeng 2023-08-17 10:41:44 +08:00
parent 9477a107aa
commit 3e80f8843c
7 changed files with 86 additions and 89 deletions

View File

@ -1,16 +1,16 @@
package com.wxjw.controller.openapi; package com.wxjw.controller.openapi;
import com.wxjw.common.Result; import com.wxjw.common.BaseResponse;
import com.wxjw.common.ResultUtil;
import com.wxjw.dal.dao.ExcelInfoMapper; import com.wxjw.dal.dao.ExcelInfoMapper;
import com.wxjw.dal.pojo.ErrorCode;
import com.wxjw.dal.pojo.data.getFileTree.GetFileTreeResultBody;
import com.wxjw.service.GetFileTreeService; import com.wxjw.service.GetFileTreeService;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.HashMap;
/** /**
* Controller 获取文件树 * Controller 获取文件树
* *
@ -24,14 +24,11 @@ public class GetFileTreeController {
ExcelInfoMapper excelInfoMapper; ExcelInfoMapper excelInfoMapper;
@PostMapping("/files/tree") @PostMapping("/files/tree")
public ResponseEntity<Result<Object>> getFileTree(@RequestBody @NotNull HashMap<String, String> resultBody) { public ResponseEntity<BaseResponse<Object>> getFileTree(@RequestBody @NotNull GetFileTreeResultBody resultBody) {
String getResult = resultBody.get("action"); if ("getfiletree".equals(resultBody.getAction())) {
if ("getfiletree".equals(getResult)) { return new GetFileTreeService().getFileTreeService(excelInfoMapper);
return ResponseEntity.ok()
.body(new GetFileTreeService().getFileTreeService(excelInfoMapper));
} else { } else {
return ResponseEntity.badRequest() return ResultUtil.error(ErrorCode.PARAMETER_ERROR);
.body(new Result<>(403, null, "参数错误"));
} }
} }
} }

View File

@ -1,17 +0,0 @@
package com.wxjw.dal.pojo.data.getFileTree;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* Data 自定义 GetFileTreeController 实体类构造 父亲
*
* @author 筱锋xiao_lfeng
*/
@Data
@AllArgsConstructor
public class GetFileTreeChildren<T> {
private String name;
private int id;
private T children;
}

View File

@ -0,0 +1,54 @@
package com.wxjw.dal.pojo.data.getFileTree;
import com.wxjw.dal.dao.ExcelInfoMapper;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.ToString;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
/**
* Data 自定义 GetFileTreeController 实体类构造 父亲
*
* @author 筱锋xiao_lfeng
*/
@Data
@AllArgsConstructor
public class GetFileTreeData {
private String name;
private boolean open;
private ArrayList<Object> children;
public GetFileTreeData setData(@NotNull ExcelInfoMapper excelInfoMapper, int id) {
ArrayList<Object> children = new ArrayList<>();
excelInfoMapper.getAllExcelFilesName().forEach(name -> {
if (id == name.getType()) {
ArrayList<Object> childrenSheet = new ArrayList<>();
excelInfoMapper.getAllExcelInfos().forEach(sheet -> {
if (name.getFileName() != null && id == sheet.getType() && name.getFileName().equals(sheet.getFileName())) {
childrenSheet.add(new Sheet(sheet.getSheetName(), sheet.getId()));
}
});
children.add(new Children<>(name.getFileName(), name.getId(), childrenSheet));
}
});
this.children = children;
return this;
}
}
@Data
@AllArgsConstructor
class Children<T> {
private String name;
private int id;
private T children;
}
@Data
@AllArgsConstructor
class Sheet {
private String name;
private int id;
}

View File

@ -1,17 +0,0 @@
package com.wxjw.dal.pojo.data.getFileTree;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* Data 自定义 GetFileTreeController 实体类构造 父亲
*
* @author 筱锋xiao_lfeng
*/
@Data
@AllArgsConstructor
public class GetFileTreeFather<T> {
private String name;
private boolean open;
private T children;
}

View File

@ -0,0 +1,13 @@
package com.wxjw.dal.pojo.data.getFileTree;
import lombok.Getter;
/**
* GetFileTreeResultBody
*
* @author 筱锋xiao_lfeng
*/
@Getter
public class GetFileTreeResultBody {
private String action;
}

View File

@ -1,16 +0,0 @@
package com.wxjw.dal.pojo.data.getFileTree;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* Data 自定义 GetFileTreeController 实体类构造 父亲
*
* @author 筱锋xiao_lfeng
*/
@Data
@AllArgsConstructor
public class GetFileTreeSheet {
private String name;
private int id;
}

View File

@ -1,12 +1,12 @@
package com.wxjw.service; package com.wxjw.service;
import com.wxjw.common.Result; import com.wxjw.common.BaseResponse;
import com.wxjw.common.ResultUtil;
import com.wxjw.dal.dao.ExcelInfoMapper; import com.wxjw.dal.dao.ExcelInfoMapper;
import com.wxjw.dal.pojo.data.getFileTree.GetFileTreeChildren; import com.wxjw.dal.pojo.ErrorCode;
import com.wxjw.dal.pojo.data.getFileTree.GetFileTreeFather; import com.wxjw.dal.pojo.data.getFileTree.GetFileTreeData;
import com.wxjw.dal.pojo.data.getFileTree.GetFileTreeSheet;
import com.wxjw.dal.pojo.entity.ExcelInfoEntity; import com.wxjw.dal.pojo.entity.ExcelInfoEntity;
import jakarta.annotation.Resource; import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
@ -20,39 +20,22 @@ import java.util.ArrayList;
@Service @Service
public class GetFileTreeService { public class GetFileTreeService {
public Result<Object> getFileTreeService(ExcelInfoMapper excelInfoMapper) { public ResponseEntity<BaseResponse<Object>> getFileTreeService(ExcelInfoMapper excelInfoMapper) {
// 从数据库读取数据 // 从数据库读取数据
ArrayList<ExcelInfoEntity> allExcelFileName = (ArrayList<ExcelInfoEntity>) excelInfoMapper.getAllExcelFilesName(); ArrayList<ExcelInfoEntity> allExcelFileName = (ArrayList<ExcelInfoEntity>) excelInfoMapper.getAllExcelFilesName();
// 检查所得数据是否为空 // 检查所得数据是否为空
if (!allExcelFileName.isEmpty() && !excelInfoMapper.getAllExcelInfos().isEmpty()) { if (!allExcelFileName.isEmpty() && !excelInfoMapper.getAllExcelInfos().isEmpty()) {
ArrayList<Object> data = new ArrayList<>(); ArrayList<Object> data = new ArrayList<>();
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
// 循环创建
ArrayList<Object> fatherList = new ArrayList<>();
for (ExcelInfoEntity excelInfoEntityFather : allExcelFileName) {
if (excelInfoEntityFather.getType() == i) {
ArrayList<Object> childrenList = new ArrayList<>();
for (ExcelInfoEntity excelInfoEntityChildren : excelInfoMapper.getAllExcelInfos()) {
GetFileTreeSheet getFileTreeSheet;
getFileTreeSheet = new GetFileTreeSheet(excelInfoEntityChildren.getSheetName(), excelInfoEntityChildren.getId());
childrenList.add(getFileTreeSheet);
}
GetFileTreeChildren<Object> getFileTreeChildren;
getFileTreeChildren = new GetFileTreeChildren<>(excelInfoEntityFather.getFileName(), excelInfoEntityFather.getId(), childrenList);
fatherList.add(getFileTreeChildren);
}
}
switch (i) { switch (i) {
case 0 -> data.add(new GetFileTreeFather<>("公共库", true, fatherList)); case 0 -> data.add(new GetFileTreeData("公共库", true, null).setData(excelInfoMapper, i));
case 1 -> data.add(new GetFileTreeFather<>("高级库", true, fatherList)); case 1 -> data.add(new GetFileTreeData("高级库", true, null).setData(excelInfoMapper, i));
case 2 -> data.add(new GetFileTreeFather<>("个人库", true, fatherList)); case 2 -> data.add(new GetFileTreeData("个人库", true, null).setData(excelInfoMapper, i));
} }
} }
return new Result<>(200, data, "输出成功"); return ResultUtil.success(data, "输出成功");
} else { } else {
return new Result<>(403, null, "数据为空"); return ResultUtil.error(ErrorCode.DATA_IS_EMPTY);
} }
} }
} }