diff --git a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/service/CrudService.java b/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/service/CrudService.java index 5dc8d6d6..5be9ead0 100644 --- a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/service/CrudService.java +++ b/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-core/src/main/java/top/continew/starter/extension/crud/service/CrudService.java @@ -21,6 +21,7 @@ import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; import jakarta.validation.constraints.NotEmpty; import org.springframework.validation.annotation.Validated; +import top.continew.starter.extension.crud.annotation.TreeField; import top.continew.starter.extension.crud.model.query.PageQuery; import top.continew.starter.extension.crud.model.query.SortQuery; import top.continew.starter.extension.crud.model.resp.BasePageResp; @@ -66,6 +67,7 @@ public interface CrudService { * @param sortQuery 排序查询条件 * @param isSimple 是否为简单树结构(不包含基本树结构之外的扩展字段,简单树(下拉列表)使用全局配置结构,复杂树(表格)使用 @TreeField 局部配置) * @return 树列表信息 + * @see TreeField */ List> tree(@Valid Q query, @Valid SortQuery sortQuery, boolean isSimple); @@ -77,6 +79,9 @@ public interface CrudService { * @param isSimple 是否为简单树结构(不包含基本树结构之外的扩展字段,简单树(下拉列表)使用全局配置结构,复杂树(表格)使用 @TreeField 局部配置) * @param isSingleRoot 是否为单个根节点 * @return 树列表信息 + * @author lishuyan + * @since 2.13.3 + * @see TreeField */ List> tree(@Valid Q query, @Valid SortQuery sortQuery, boolean isSimple, boolean isSingleRoot); @@ -95,6 +100,7 @@ public interface CrudService { * @param sortQuery 排序查询条件 * @return 字典列表信息 * @since 2.1.0 + * @see top.continew.starter.extension.crud.annotation.DictModel */ List listDict(@Valid Q query, @Valid SortQuery sortQuery); diff --git a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mf/src/main/java/top/continew/starter/extension/crud/service/CrudServiceImpl.java b/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mf/src/main/java/top/continew/starter/extension/crud/service/CrudServiceImpl.java index fe9ebdb6..03a9a251 100644 --- a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mf/src/main/java/top/continew/starter/extension/crud/service/CrudServiceImpl.java +++ b/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mf/src/main/java/top/continew/starter/extension/crud/service/CrudServiceImpl.java @@ -127,29 +127,6 @@ public class CrudServiceImpl, T extends BaseIdDO, L, D, } } - /** - * 构建树字段 - * - * @param isSimple 是否简单树结构 - * @param node 节点 - * @param tree 树 - * @param treeField 树字段 - */ - private void buildTreeField(boolean isSimple, L node, Tree tree, TreeField treeField) { - tree.setId(ReflectUtil.invoke(node, CharSequenceUtil.genGetter(treeField.value()))); - tree.setParentId(ReflectUtil.invoke(node, CharSequenceUtil.genGetter(treeField.parentIdKey()))); - tree.setName(ReflectUtil.invoke(node, CharSequenceUtil.genGetter(treeField.nameKey()))); - tree.setWeight(ReflectUtil.invoke(node, CharSequenceUtil.genGetter(treeField.weightKey()))); - // 如果构建简单树结构,则不包含扩展字段 - if (!isSimple) { - List fieldList = ReflectUtils.getNonStaticFields(listClass); - fieldList.removeIf(f -> CharSequenceUtil.equalsAnyIgnoreCase(f.getName(), treeField.value(), treeField - .parentIdKey(), treeField.nameKey(), treeField.weightKey(), treeField.childrenKey())); - fieldList.forEach(f -> tree.putExtra(f.getName(), ReflectUtil.invoke(node, CharSequenceUtil.genGetter(f - .getName())))); - } - } - @Override public D get(Long id) { T entity = super.getById(id); @@ -350,4 +327,26 @@ public class CrudServiceImpl, T extends BaseIdDO, L, D, return (Class)this.typeArguments[4]; } + /** + * 构建树字段 + * + * @param isSimple 是否简单树结构 + * @param node 节点 + * @param tree 树 + * @param treeField 树字段 + */ + private void buildTreeField(boolean isSimple, L node, Tree tree, TreeField treeField) { + tree.setId(ReflectUtil.invoke(node, CharSequenceUtil.genGetter(treeField.value()))); + tree.setParentId(ReflectUtil.invoke(node, CharSequenceUtil.genGetter(treeField.parentIdKey()))); + tree.setName(ReflectUtil.invoke(node, CharSequenceUtil.genGetter(treeField.nameKey()))); + tree.setWeight(ReflectUtil.invoke(node, CharSequenceUtil.genGetter(treeField.weightKey()))); + // 如果构建简单树结构,则不包含扩展字段 + if (!isSimple) { + List fieldList = ReflectUtils.getNonStaticFields(listClass); + fieldList.removeIf(f -> CharSequenceUtil.equalsAnyIgnoreCase(f.getName(), treeField.value(), treeField + .parentIdKey(), treeField.nameKey(), treeField.weightKey(), treeField.childrenKey())); + fieldList.forEach(f -> tree.putExtra(f.getName(), ReflectUtil.invoke(node, CharSequenceUtil.genGetter(f + .getName())))); + } + } } diff --git a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mp/src/main/java/top/continew/starter/extension/crud/service/CrudServiceImpl.java b/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mp/src/main/java/top/continew/starter/extension/crud/service/CrudServiceImpl.java index 3ac5324c..3826dfa3 100644 --- a/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mp/src/main/java/top/continew/starter/extension/crud/service/CrudServiceImpl.java +++ b/continew-starter-extension/continew-starter-extension-crud/continew-starter-extension-crud-mp/src/main/java/top/continew/starter/extension/crud/service/CrudServiceImpl.java @@ -132,29 +132,6 @@ public class CrudServiceImpl, T extends BaseIdDO, L, D, } } - /** - * 构建树字段 - * - * @param isSimple 是否简单树结构 - * @param node 节点 - * @param tree 树 - * @param treeField 树字段 - */ - private void buildTreeField(boolean isSimple, L node, Tree tree, TreeField treeField) { - tree.setId(ReflectUtil.invoke(node, CharSequenceUtil.genGetter(treeField.value()))); - tree.setParentId(ReflectUtil.invoke(node, CharSequenceUtil.genGetter(treeField.parentIdKey()))); - tree.setName(ReflectUtil.invoke(node, CharSequenceUtil.genGetter(treeField.nameKey()))); - tree.setWeight(ReflectUtil.invoke(node, CharSequenceUtil.genGetter(treeField.weightKey()))); - // 如果构建简单树结构,则不包含扩展字段 - if (!isSimple) { - List fieldList = ReflectUtils.getNonStaticFields(listClass); - fieldList.removeIf(f -> CharSequenceUtil.equalsAnyIgnoreCase(f.getName(), treeField.value(), treeField - .parentIdKey(), treeField.nameKey(), treeField.weightKey(), treeField.childrenKey())); - fieldList.forEach(f -> tree.putExtra(f.getName(), ReflectUtil.invoke(node, CharSequenceUtil.genGetter(f - .getName())))); - } - } - @Override public D get(Long id) { T entity = super.getById(id, false); @@ -407,4 +384,27 @@ public class CrudServiceImpl, T extends BaseIdDO, L, D, protected void afterDelete(List ids) { /* 删除后置处理 */ } + + /** + * 构建树字段 + * + * @param isSimple 是否简单树结构 + * @param node 节点 + * @param tree 树 + * @param treeField 树字段 + */ + private void buildTreeField(boolean isSimple, L node, Tree tree, TreeField treeField) { + tree.setId(ReflectUtil.invoke(node, CharSequenceUtil.genGetter(treeField.value()))); + tree.setParentId(ReflectUtil.invoke(node, CharSequenceUtil.genGetter(treeField.parentIdKey()))); + tree.setName(ReflectUtil.invoke(node, CharSequenceUtil.genGetter(treeField.nameKey()))); + tree.setWeight(ReflectUtil.invoke(node, CharSequenceUtil.genGetter(treeField.weightKey()))); + // 如果构建简单树结构,则不包含扩展字段 + if (!isSimple) { + List fieldList = ReflectUtils.getNonStaticFields(listClass); + fieldList.removeIf(f -> CharSequenceUtil.equalsAnyIgnoreCase(f.getName(), treeField.value(), treeField + .parentIdKey(), treeField.nameKey(), treeField.weightKey(), treeField.childrenKey())); + fieldList.forEach(f -> tree.putExtra(f.getName(), ReflectUtil.invoke(node, CharSequenceUtil.genGetter(f + .getName())))); + } + } }