package com.zcxk.charge.web.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zcxk.charge.api.dto.DeviceDto;
import com.zcxk.charge.api.vo.DeviceVo;
import com.zcxk.charge.core.entity.DeviceEntity;

import java.util.List;

/**
 * @description
 * @author  wangli
 * @data 2020-11-16 11:26
 */
public interface DeviceService {

    /**
    * 查询单个设备
    * @author Andy
    * @date 9:13 2021/8/18
    * @param id:
    * @return com.zcxk.charge.api.vo.DeviceVo
    **/
    DeviceVo selectById(Long id);

    /**
    * 添加设备
    * @author Andy
    * @date 9:13 2021/8/18
    * @param deviceEntity:
    * @return java.lang.Integer
    **/
    Integer add(DeviceEntity deviceEntity);

    /**
    * 单条删除设备
    * @author Andy
    * @date 9:13 2021/8/18
    * @param id:
    * @return java.lang.Integer
    **/
    Integer delete(Long id);

    /**
    * 批量删除设备
    * @author Andy
    * @date 9:13 2021/8/18
    * @param ids:
    * @return java.lang.Integer
    **/
    Integer batchDelete(List<Long> ids);

    /**
    * 修改设备信息
    * @author Andy
    * @date 9:13 2021/8/18
    * @param deviceEntity:
    * @return java.lang.Integer
    **/
    Integer update(DeviceEntity deviceEntity);

    /**
    * 分页查询
    * @author Andy
    * @date 9:13 2021/8/18
    * @param page:
    * @param deviceDto:
    * @return com.baomidou.mybatisplus.core.metadata.IPage<com.zcxk.charge.api.vo.DeviceVo>
    **/
    IPage<DeviceVo> selectPage(IPage<DeviceDto> page, DeviceDto deviceDto);

    /**
    * 查询集合
    * @author Andy
    * @date 9:13 2021/8/18
    * @param deviceDto:
    * @return java.util.List<com.zcxk.charge.api.vo.DeviceVo>
    **/
    List<DeviceVo> selectList(DeviceDto deviceDto);

    /**
    * 查询集合
    * @author Andy
    * @date 9:14 2021/8/18
    * @param deviceDto:
    * @return java.util.List<com.zcxk.charge.api.vo.DeviceVo>
    **/
    List<DeviceVo> selectListForReport(DeviceDto deviceDto);

    /**
    * 根据类型查找
    * @author Andy
    * @date 9:14 2021/8/18
    * @param deviceDto:
    * @return java.util.List<com.zcxk.charge.api.vo.DeviceVo>
    **/
    List<DeviceVo> selectListByType(DeviceDto deviceDto);

    /**
    * 根据场景查找
    * @author Andy
    * @date 9:14 2021/8/18
    * @param deviceDto:
    * @return java.util.List<com.zcxk.charge.api.vo.DeviceVo>
    **/
    List<DeviceVo> selectListByScene(DeviceDto deviceDto);

    /**
    * 根据场景ID查找
    * @author Andy
    * @date 9:14 2021/8/18
    * @param deviceDto:
    * @return java.util.List<com.zcxk.charge.api.vo.DeviceVo>
    **/
    List<DeviceVo> selectListBySceneId(DeviceDto deviceDto);

}
