mirror of
https://github.com/continew-org/continew-starter.git
synced 2025-10-24 04:57:10 +08:00
refactor(extension/crud): 优化部分代码
This commit is contained in:
@@ -21,6 +21,7 @@ import jakarta.servlet.http.HttpServletResponse;
|
|||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
import jakarta.validation.constraints.NotEmpty;
|
import jakarta.validation.constraints.NotEmpty;
|
||||||
import org.springframework.validation.annotation.Validated;
|
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.PageQuery;
|
||||||
import top.continew.starter.extension.crud.model.query.SortQuery;
|
import top.continew.starter.extension.crud.model.query.SortQuery;
|
||||||
import top.continew.starter.extension.crud.model.resp.BasePageResp;
|
import top.continew.starter.extension.crud.model.resp.BasePageResp;
|
||||||
@@ -66,6 +67,7 @@ public interface CrudService<L, D, Q, C> {
|
|||||||
* @param sortQuery 排序查询条件
|
* @param sortQuery 排序查询条件
|
||||||
* @param isSimple 是否为简单树结构(不包含基本树结构之外的扩展字段,简单树(下拉列表)使用全局配置结构,复杂树(表格)使用 @TreeField 局部配置)
|
* @param isSimple 是否为简单树结构(不包含基本树结构之外的扩展字段,简单树(下拉列表)使用全局配置结构,复杂树(表格)使用 @TreeField 局部配置)
|
||||||
* @return 树列表信息
|
* @return 树列表信息
|
||||||
|
* @see TreeField
|
||||||
*/
|
*/
|
||||||
List<Tree<Long>> tree(@Valid Q query, @Valid SortQuery sortQuery, boolean isSimple);
|
List<Tree<Long>> tree(@Valid Q query, @Valid SortQuery sortQuery, boolean isSimple);
|
||||||
|
|
||||||
@@ -77,6 +79,9 @@ public interface CrudService<L, D, Q, C> {
|
|||||||
* @param isSimple 是否为简单树结构(不包含基本树结构之外的扩展字段,简单树(下拉列表)使用全局配置结构,复杂树(表格)使用 @TreeField 局部配置)
|
* @param isSimple 是否为简单树结构(不包含基本树结构之外的扩展字段,简单树(下拉列表)使用全局配置结构,复杂树(表格)使用 @TreeField 局部配置)
|
||||||
* @param isSingleRoot 是否为单个根节点
|
* @param isSingleRoot 是否为单个根节点
|
||||||
* @return 树列表信息
|
* @return 树列表信息
|
||||||
|
* @author lishuyan
|
||||||
|
* @since 2.13.3
|
||||||
|
* @see TreeField
|
||||||
*/
|
*/
|
||||||
List<Tree<Long>> tree(@Valid Q query, @Valid SortQuery sortQuery, boolean isSimple, boolean isSingleRoot);
|
List<Tree<Long>> tree(@Valid Q query, @Valid SortQuery sortQuery, boolean isSimple, boolean isSingleRoot);
|
||||||
|
|
||||||
@@ -95,6 +100,7 @@ public interface CrudService<L, D, Q, C> {
|
|||||||
* @param sortQuery 排序查询条件
|
* @param sortQuery 排序查询条件
|
||||||
* @return 字典列表信息
|
* @return 字典列表信息
|
||||||
* @since 2.1.0
|
* @since 2.1.0
|
||||||
|
* @see top.continew.starter.extension.crud.annotation.DictModel
|
||||||
*/
|
*/
|
||||||
List<LabelValueResp> listDict(@Valid Q query, @Valid SortQuery sortQuery);
|
List<LabelValueResp> listDict(@Valid Q query, @Valid SortQuery sortQuery);
|
||||||
|
|
||||||
|
|||||||
@@ -127,29 +127,6 @@ public class CrudServiceImpl<M extends BaseMapper<T>, T extends BaseIdDO, L, D,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 构建树字段
|
|
||||||
*
|
|
||||||
* @param isSimple 是否简单树结构
|
|
||||||
* @param node 节点
|
|
||||||
* @param tree 树
|
|
||||||
* @param treeField 树字段
|
|
||||||
*/
|
|
||||||
private void buildTreeField(boolean isSimple, L node, Tree<Long> 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<Field> 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
|
@Override
|
||||||
public D get(Long id) {
|
public D get(Long id) {
|
||||||
T entity = super.getById(id);
|
T entity = super.getById(id);
|
||||||
@@ -350,4 +327,26 @@ public class CrudServiceImpl<M extends BaseMapper<T>, T extends BaseIdDO, L, D,
|
|||||||
return (Class<Q>)this.typeArguments[4];
|
return (Class<Q>)this.typeArguments[4];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 构建树字段
|
||||||
|
*
|
||||||
|
* @param isSimple 是否简单树结构
|
||||||
|
* @param node 节点
|
||||||
|
* @param tree 树
|
||||||
|
* @param treeField 树字段
|
||||||
|
*/
|
||||||
|
private void buildTreeField(boolean isSimple, L node, Tree<Long> 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<Field> 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()))));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -132,29 +132,6 @@ public class CrudServiceImpl<M extends BaseMapper<T>, T extends BaseIdDO, L, D,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 构建树字段
|
|
||||||
*
|
|
||||||
* @param isSimple 是否简单树结构
|
|
||||||
* @param node 节点
|
|
||||||
* @param tree 树
|
|
||||||
* @param treeField 树字段
|
|
||||||
*/
|
|
||||||
private void buildTreeField(boolean isSimple, L node, Tree<Long> 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<Field> 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
|
@Override
|
||||||
public D get(Long id) {
|
public D get(Long id) {
|
||||||
T entity = super.getById(id, false);
|
T entity = super.getById(id, false);
|
||||||
@@ -407,4 +384,27 @@ public class CrudServiceImpl<M extends BaseMapper<T>, T extends BaseIdDO, L, D,
|
|||||||
protected void afterDelete(List<Long> ids) {
|
protected void afterDelete(List<Long> ids) {
|
||||||
/* 删除后置处理 */
|
/* 删除后置处理 */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 构建树字段
|
||||||
|
*
|
||||||
|
* @param isSimple 是否简单树结构
|
||||||
|
* @param node 节点
|
||||||
|
* @param tree 树
|
||||||
|
* @param treeField 树字段
|
||||||
|
*/
|
||||||
|
private void buildTreeField(boolean isSimple, L node, Tree<Long> 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<Field> 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()))));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user