package com.smppw.analysis.infrastructure.persistence; import com.smppw.common.pojo.IndexesTradeDateDo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; /** * 交易日历表mapper * * @author David * @version 1.0 * @date 2023-04-24 */ @Mapper public interface IndexesTradeDateDoMapper { /** * 获取最近的交日期,往前找 * * @param tradeDate / * @return / */ String queryLatestTradeDate(String tradeDate); /** * 获取交易日历表中所有的日期对象,主要用于缓存使用 * * @return List */ List listNatureDays(); /** * 获取所有的节假日日期 * * @return List */ List listHolidays(); /** * 获取指定区间所有的节假日日期 * * @param startDate 开始日期 * @param endDate 截止日期 * @return List */ List listIntervalHolidays(@Param("startDate") String startDate, @Param("endDate") String endDate); /** * 获取指定区间所有的交易日期 * * @param startDate 开始日期 * @param endDate 截止日期 * @return List */ List listTradeDates(@Param("startDate") String startDate, @Param("endDate") String endDate); /** * 计算给定区间内交易日数量 * * @param startDate 开始日期 * @param endDate 截止日期 * @return 数量 */ int countTradeDateDistance(@Param("startDate") String startDate, @Param("endDate") String endDate); /** * 获取交易日 * * @param startDate 开始日期 * @param endDate 截止日期 * @return / */ List listNatureDaysByCondition(@Param("startDate") String startDate, @Param("endDate") String endDate); /** * 根据指定的区间和获取区间日期是否日、周、月进行取值 * * @param startDate 开始日期 * @param endDate 结束日期 * @param frequency 获取的日期类型,1-日,2-is_weekend, 3-is_monthend * @return 返回指定日期类型的日期列表 */ List listTradeDatesByFrequency(@Param("startDate") String startDate, @Param("endDate") String endDate, @Param("frequency") Integer frequency); }