package cn.wise.sc.energy.power.plant.business.service;

import cn.wise.sc.energy.power.plant.business.domain.AbstractEntity;
import cn.wise.sc.energy.power.plant.business.domain.vo.EntityVo;
import cn.wise.sc.energy.power.plant.common.core.bean.EntityQuery;
import java.util.List;

/**
 * @description: 服务层接口公共
 * @author: qh
 * @create: 2020-07-14 16:40
 **/
public interface IBaseService<ID, T extends AbstractEntity<ID>> {

    /**
     * 根据id获取实体对象
     *
     * @param id 主键
     * @return T
     */
    AbstractEntity getByID(ID id);

    /**
     * 根据id删除对象
     *
     * @param id 主键
     */
    void delByID(ID id);

    /**
     * 添加对象
     *
     * @param entityQuery 对象添加实体
     * @return EntityVo
     */
    EntityVo add(EntityQuery<T> entityQuery);

    /**
     * 获取所有数据
     * @return
     */
    List<EntityVo> list();

    /**
     * 更新对象
     * @param entityQuery 对象更新实体
     * @return EntityVo
     */
    EntityVo update(EntityQuery<T> entityQuery);
}
