package com.zcxk.charge.core.dao;

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 org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @description
 * @author  wangli
 * @data 2020-11-16 11:36
 */
@Mapper
public interface DeviceMapper {

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

    /**
    * 查询多个
    * @author Andy
    * @date 17:59 2021/8/17
    * @param ids:
    * @return java.util.List<com.zcxk.charge.api.vo.DeviceVo>
    **/
    List<DeviceVo> selectByIds(@Param("ids") List<Long> ids);

    /**
    * 添加设备
    * @author Andy
    * @date 17:59 2021/8/17
    * @param deviceEntity:
    * @return java.lang.Integer
    **/
    Integer insert(DeviceEntity deviceEntity);

    /**
    * 批量插入设备信息
    * @author Andy
    * @date 17:59 2021/8/17
    * @param devices:
    * @return java.lang.Integer
    **/
    Integer batchInsert(List<DeviceEntity> devices);

    /**
    * 单条删除设备
    * @author Andy
    * @date 17:59 2021/8/17
    * @param id:
    * @return java.lang.Integer
    **/
    Integer deleteById(Long id);
    
    /** 
    * 删除设备
    * @author Andy
    * @date 18:00 2021/8/17
    * @param ids:  
    * @return java.lang.Integer 
    **/
    Integer batchDelete(@Param("ids") List<Long> ids);

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

    /**
    * 查询设备信息
    * @author Andy
    * @date 18:00 2021/8/17
    * @param deviceDto:
    * @return java.util.List<com.zcxk.charge.api.vo.DeviceVo>
    **/
    List<DeviceVo> selectList(@Param("deviceDto") DeviceDto deviceDto);

    /**
    * T查询设备信息
    * @author Andy
    * @date 18:00 2021/8/17
    * @param deviceDto:
    * @return java.util.List<com.zcxk.charge.api.vo.DeviceVo>
    **/
    List<DeviceVo> selectListForReport(@Param("deviceDto") DeviceDto deviceDto);

    /**
    * 分页查询
    * @author Andy
    * @date 18:00 2021/8/17
    * @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);

    /**
    * selectListByScene
    * @author Andy
    * @date 18:00 2021/8/17
    * @param deviceDto:
    * @return java.util.List<com.zcxk.charge.api.vo.DeviceVo>
    **/
    List<DeviceVo> selectListByScene(@Param("deviceDto") DeviceDto deviceDto);

    /**
    * selectListBySceneId
    * @author Andy
    * @date 18:00 2021/8/17
    * @param deviceDto:
    * @return java.util.List<com.zcxk.charge.api.vo.DeviceVo>
    **/
    List<DeviceVo> selectListBySceneId(@Param("deviceDto") DeviceDto deviceDto);

}
