package cn.iocoder.yudao.module.product.dal.mysql.envdata;

import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.product.controller.admin.envdata.vo.EnvDataPageReqVO;
import cn.iocoder.yudao.module.product.controller.admin.envdata.vo.EnvDataRespVO;
import cn.iocoder.yudao.module.product.dal.dataobject.envdata.EnvDataDO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * 环境数据 Mapper
 *
 * @author 芋道源码
 */
@Mapper
public interface EnvDataMapper extends BaseMapperX<EnvDataDO> {

    List<EnvDataRespVO> selectEnvDataPage(Page page, @Param("pageReqVO") EnvDataPageReqVO pageReqVO);

    EnvDataDO getLastOne(@Param("landId") String landId);

    List<EnvDataRespVO> getLastEnvDatas(@Param("landId") String landId, @Param("date") Date date, @Param("typeIds") List<Long> typeIds);

    List<EnvDataRespVO> getAVGEnvDatas(@Param("landId") String landId, @Param("day") Integer day, @Param("typeIds") List<Long> typeIds);

    /**
     * 清理超过X天的数据
     */
    void cleanDataWhenOverXDays(@Param("day") Integer day);
}
