org.github.foxnic.web.system.service.INodeService Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of service-system Show documentation
Show all versions of service-system Show documentation
System Service Module Of Foxnic-Web
package org.github.foxnic.web.system.service;
import com.github.foxnic.sql.expr.ConditionExpr;
import com.github.foxnic.dao.entity.ISuperService;
import org.github.foxnic.web.domain.system.Node;
import org.github.foxnic.web.domain.system.NodeVO;
import java.util.List;
import com.github.foxnic.api.transter.Result;
import com.github.foxnic.dao.data.PagedList;
import java.io.InputStream;
import com.github.foxnic.sql.expr.OrderBy;
import com.github.foxnic.sql.meta.DBField;
import com.github.foxnic.dao.excel.ExcelWriter;
import com.github.foxnic.dao.excel.ExcelStructure;
import com.github.foxnic.dao.excel.ValidateResult;
import com.github.foxnic.dao.data.SaveMode;
/**
*
* 服务接口
*
* @author 李方捷 , [email protected]
* @since 2021-08-11 17:11:20
*/
public interface INodeService extends ISuperService {
/**
* 插入实体
* @param node 实体数据
* @return 插入是否成功
* */
Result insert(Node node);
/**
* 批量插入实体,事务内
* @param nodeList 实体数据清单
* @return 插入是否成功
* */
Result insertList(List nodeList);
/**
* 按主键删除 sys_node
*
* @param id 实例id
* @return 删除是否成功
*/
Result deleteByIdPhysical(String id);
/**
* 按主键删除 sys_node
*
* @param id 实例id
* @return 删除是否成功
*/
Result deleteByIdLogical(String id);
/**
* 批量物理删除,仅支持单字段主键表
* @param ids 主键清单
* @return 是否删除成功
* */
Result deleteByIdsPhysical(List ids);
/**
* 批量逻辑删除,仅支持单字段主键表
* @param ids 主键清单
* @return 是否删除成功
* */
Result deleteByIdsLogical(List ids);
/**
* 按主键更新字段 sys_node
*
* @param id 实例id
* @return 是否更新成功
*/
boolean update(DBField field,Object value , String id);
/**
* 更新实体
* @param node 数据对象
* @param mode 保存模式
* @return 保存是否成功
* */
Result update(Node node , SaveMode mode);
/**
* 更新实体集,事务内
* @param nodeList 数据对象列表
* @param mode 保存模式
* @return 保存是否成功
* */
Result updateList(List nodeList, SaveMode mode);
/**
* 保存实体,如果主键值不为 null,则更新,否则插入
* @param node 实体数据
* @param mode 保存模式
* @return 保存是否成功
* */
Result save(Node node , SaveMode mode);
/**
* 保存实体,如果主键值不为null,则更新,否则插入
* @param nodeList 实体数据清单
* @param mode 保存模式
* @return 保存是否成功
* */
Result saveList(List nodeList , SaveMode mode);
/**
* 检查实体中的数据字段是否已经存在
* @param node 实体对象
* @param field 字段清单,至少指定一个
* @return 是否已经存在
* */
boolean checkExists(Node node,DBField... field);
/**
* 按主键获取 sys_node
*
* @param id 实例id
* @return Node 数据对象
*/
Node getById(String id);
/**
* 检查实体中的数据字段是否已经存在
* @param ids 主键清单
* @return 实体集
* */
List getByIds(List ids);
/**
* 检查 角色 是否已经存在
*
* @param node 数据对象
* @return 判断结果
*/
Result checkExists(Node node);
/**
* 根据实体数构建默认的条件表达式,字符串使用模糊匹配
* @param sample 数据样例
* @return ConditionExpr 条件表达式
* */
ConditionExpr buildQueryCondition(Node sample);
/**
* 根据实体数构建默认的条件表达式, 字符串是否使用模糊匹配
* @param sample 数据样例
* @param tableAliase 数据表别名
* @return ConditionExpr 条件表达式
* */
ConditionExpr buildQueryCondition(Node sample,String tableAliase);
/**
* 查询实体集合,默认情况下,字符串使用模糊匹配,非字符串使用精确匹配
* @param sample 查询条件
* @return 查询结果
* */
List queryList(Node sample);
/**
* 查询实体集合,默认情况下,字符串使用模糊匹配,非字符串使用精确匹配
* @param sample 查询条件
* @param condition 其它条件
* @param orderBy 排序
* @return 查询结果
* */
List queryList(Node sample,ConditionExpr condition,OrderBy orderBy);
/**
* 查询实体集合,默认情况下,字符串使用模糊匹配,非字符串使用精确匹配
* @param sample 查询条件
* @param orderBy 排序
* @return 查询结果
* */
List queryList(Node sample,OrderBy orderBy);
/**
* 查询实体集合,默认情况下,字符串使用模糊匹配,非字符串使用精确匹配
* @param sample 查询条件
* @param condition 其它条件
* @return 查询结果
* */
List queryList(Node sample,ConditionExpr condition);
/**
* 查询单个实体
* @param sample 查询条件
* @return 查询结果
* */
Node queryEntity(Node sample);
/**
* 分页查询实体集
* @param sample 查询条件
* @param pageSize 分页条数
* @param pageIndex 页码
* @return 查询结果
* */
PagedList queryPagedList(Node sample,int pageSize,int pageIndex);
/**
* 分页查询实体集
* @param sample 查询条件
* @param pageSize 分页条数
* @param pageIndex 页码
* @param condition 其它条件
* @param orderBy 排序
* @return 查询结果
* */
PagedList queryPagedList(Node sample,ConditionExpr condition,OrderBy orderBy,int pageSize,int pageIndex);
/**
* 分页查询实体集
* @param sample 查询条件
* @param pageSize 分页条数
* @param pageIndex 页码
* @param condition 其它条件
* @return 查询结果
* */
PagedList queryPagedList(Node sample,ConditionExpr condition,int pageSize,int pageIndex);
/**
* 分页查询实体集
* @param sample 查询条件
* @param pageSize 分页条数
* @param pageIndex 页码
* @param orderBy 排序
* @return 查询结果
* */
PagedList queryPagedList(Node sample,OrderBy orderBy,int pageSize,int pageIndex);
/**
* 查询指定字段的数据清单
* @param 元素类型
* @param field 字段
* @param type 元素类型
* @param condition 条件表达式
* @return 列数据
* */
List queryValues(DBField field,Class type, ConditionExpr condition);
/**
* 查询指定字段的数据清单
* @param 元素类型
* @param field 字段
* @param type 元素类型
* @param condition 条件表达式
* @param ps 参数清单
* @return 列数据
* */
List queryValues(DBField field, Class type, String condition,Object... ps);
/**
* 导出 Excel
* */
ExcelWriter exportExcel(Node sample);
/**
* 导出用于数据导入的 Excel 模版
* */
ExcelWriter exportExcelTemplate();
/**
* 构建 Excel 结构
* @param isForExport 是否用于数据导出
* @return ExcelStructure
* */
ExcelStructure buildExcelStructure(boolean isForExport);
/**
* 导入 Excel 数据
* @return 错误信息,成功时返回 null
* */
List importExcel(InputStream input,int sheetIndex,boolean batch);
}