🎨 抽取常量Tree根节点ID(0), 模板文件删除时对子节点的操作类型

This commit is contained in:
b2baccline
2020-06-24 19:58:54 +08:00
parent 302579282e
commit 5906d40478
4 changed files with 38 additions and 5 deletions

View File

@@ -0,0 +1,25 @@
package com.hccake.ballcat.codegen.constant;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
/**
* @author Hccake
* @version 1.0
* @date 2020/6/23 14:36
* 模板目录项类型
*/
@Getter
@RequiredArgsConstructor
public enum DirectoryEntryRemoveModeEnum {
/**
* 保留子节点(子节点上移)
*/
RESERVED_CHILD_NODE(1),
/**
* 同时删除子节点
*/
REMOVE_CHILD_NODE(2);
private final Integer type;
}

View File

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
import com.hccake.ballcat.codegen.constant.DirectoryEntryRemoveModeEnum;
import com.hccake.ballcat.codegen.constant.DirectoryEntryTypeEnum;
import com.hccake.ballcat.codegen.mapper.TemplateDirectoryEntryMapper;
import com.hccake.ballcat.codegen.model.converter.TemplateModelConverter;
@@ -158,12 +159,12 @@ public class TemplateDirectoryEntryServiceImpl extends ServiceImpl<TemplateDirec
// 如果是文件夹类型,则根据删除模式进行子节点删除或上移操作
if (DirectoryEntryTypeEnum.FOLDER.getType().equals(entry.getType())) {
if (mode == 1) {
if (DirectoryEntryRemoveModeEnum.RESERVED_CHILD_NODE.getType().equals(mode)) {
// 子节点上移
baseMapper.update(null, Wrappers.<TemplateDirectoryEntry>lambdaUpdate()
.set(TemplateDirectoryEntry::getParentId, entry.getParentId())
.eq(TemplateDirectoryEntry::getParentId, entryId));
} else if (mode == 2) {
} else if (DirectoryEntryRemoveModeEnum.REMOVE_CHILD_NODE.getType().equals(mode)) {
// ==========删除所有子节点=============
// 1. 获取所有目录项(目录项不会太多,一次查询比较方便)
List<TemplateDirectoryEntry> entryList = baseMapper.selectList(Wrappers.emptyWrapper());
@@ -197,9 +198,9 @@ public class TemplateDirectoryEntryServiceImpl extends ServiceImpl<TemplateDirec
@Override
@Transactional(rollbackFor = Exception.class)
public boolean createEntry(TemplateDirectoryCreateDTO entryDTO) {
// 校验父级节点是否有效
// 若父节点不是根,则校验父级节点是否有效
Integer parentId = entryDTO.getParentId();
Assert.isTrue(this.exists(parentId), "This is a nonexistent parent directory entry!");
Assert.isTrue(GlobalConstants.TREE_ROOT_ID.equals(parentId) || this.exists(parentId), "This is a nonexistent parent directory entry!");
// 重名校验
this.duplicateNameCheck(parentId, entryDTO.getFileName());
// 转持久层对象

View File

@@ -19,6 +19,7 @@ import com.hccake.ballcat.codegen.model.vo.TemplateGroupVO;
import com.hccake.ballcat.codegen.service.TemplateDirectoryEntryService;
import com.hccake.ballcat.codegen.service.TemplateGroupService;
import com.hccake.ballcat.codegen.service.TemplateInfoService;
import com.hccake.ballcat.common.core.constant.GlobalConstants;
import com.hccake.ballcat.common.core.util.TreeUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@@ -68,7 +69,7 @@ public class TemplateGroupServiceImpl extends ServiceImpl<TemplateGroupMapper, T
.eq(TemplateDirectoryEntry::getGroupId, groupId));
// 转树形目录结构
List<TemplateDirectory> treeList =
TreeUtil.buildTree(list, 0, TemplateModelConverter.INSTANCE::entryPoToTree);
TreeUtil.buildTree(list, GlobalConstants.TREE_ROOT_ID, TemplateModelConverter.INSTANCE::entryPoToTree);
// 填充模板文件
List<TemplateFile> templateFiles = new ArrayList<>();

View File

@@ -19,4 +19,10 @@ public class GlobalConstants {
* 生产环境
*/
public final static String ENV_PROD = "prod";
/**
* 树根节点ID
*/
public static final Integer TREE_ROOT_ID = 0;
}