com.diboot.core.dto.RelatedDataDTO Maven / Gradle / Ivy
package com.diboot.core.dto;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.diboot.core.controller.BaseController;
import com.diboot.core.util.S;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Map;
import java.util.function.Function;
/**
* 用于加载关联数据传递的DTO格式
*
* @author [email protected]
* @version v2.0
* @date 2018/12/27
*/
@Getter
@Setter
@Accessors(chain = true)
public class RelatedDataDTO implements Serializable {
private static final long serialVersionUID = 10301L;
/**
* 需要查询的目标对象类型
* 其value自动取该对象ID值
*/
@NotNull(message = "类型不能为空!")
private String type;
/**
* 需要查询的label字段
*/
@NotNull(message = "label不能为空!")
private String label;
/**
* 需要查询的ext字段
*/
private String ext;
/**
* 筛选条件
* 可重写{@link BaseController#buildRelatedDataCondition(RelatedDataDTO, QueryWrapper, Function)}进行自定义筛选条件规则
*/
private Map condition;
/**
* 排序
* 示例 `id:DESC,age:ASC`
*/
private String orderBy;
/**
* 用于Tree构数据
* 父节点ID属性;如:parentId
*/
private String parent;
/**
* 用于Tree构数据远程过滤
* 所有父节点ID拼接属性,便于搜索时向上查找父节点
*/
private String parentPath;
/**
* 异步加载子节点
* 推荐异步加载,默认为true;为false时会加载整个树
*/
private boolean lazyChild = true;
@JsonIgnore
public String getTypeClassName(){
return S.capFirst(S.toLowerCaseCamel(this.type));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy