package cn.iocoder.yudao.module.bi.dal.mysql.decision; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.module.bi.dal.dataobject.decision.BiForecastDataDO; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.apache.ibatis.annotations.Mapper; import java.time.LocalDateTime; import java.util.List; @Mapper public interface BiForecastDataMapper extends BaseMapperX { default List selectListByCodeAndTimeRange(String forecastCode, LocalDateTime beginTime, LocalDateTime endTime) { return selectList(new LambdaQueryWrapper() .eq(BiForecastDataDO::getForecastCode, forecastCode) .between(BiForecastDataDO::getPointTime, beginTime, endTime) .orderByAsc(BiForecastDataDO::getPointTime)); } /** * 查询指定预测编码下最近 n 条预测数据(按时间倒序,用于移动平均) */ default List selectRecentByCode(String forecastCode, int limit) { return selectList(new LambdaQueryWrapper() .eq(BiForecastDataDO::getForecastCode, forecastCode) .orderByDesc(BiForecastDataDO::getPointTime) .last("LIMIT " + limit)); } }