🎨 抽取常量Tree根节点ID(0), 模板文件删除时对子节点的操作类型
This commit is contained in:
@@ -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;
|
||||
}
|
||||
@@ -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());
|
||||
// 转持久层对象
|
||||
|
||||
@@ -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<>();
|
||||
|
||||
@@ -19,4 +19,10 @@ public class GlobalConstants {
|
||||
* 生产环境
|
||||
*/
|
||||
public final static String ENV_PROD = "prod";
|
||||
|
||||
|
||||
/**
|
||||
* 树根节点ID
|
||||
*/
|
||||
public static final Integer TREE_ROOT_ID = 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user