package com.trs.ggzyexchange.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.trs.ggzyexchange.entity.GcNoticeandfile;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.trs.ggzyexchange.entity.GcNoticeandfileVo;
import com.trs.ggzyexchange.entity.TenderDetailsVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 招标公告与资格预审公告 Mapper 接口
 * </p>
 *
 * @author trs
 * @since 2023-02-16
 */
@Mapper
public interface GcNoticeandfileMapper extends BaseMapper<GcNoticeandfile> {
    IPage<GcNoticeandfileVo> queryGcTenderProjectList(
            Page<GcNoticeandfile> page,
            @Param("regionCode") String regionCode,
            @Param("industriesType") String industriesType,
            @Param("noticeName") String noticeName,
            @Param("platformCode") String platformCode,
            @Param("noticeSendTimeStart") Long noticeSendTimeStart,
            @Param("noticeSendTimeEnd") Long noticeSendTimeEnd
    );

    IPage<TenderDetailsVo> queryGcTenderProjectAllList(
            Page<GcNoticeandfile> page,
            @Param("regionCode") String regionCode,
            @Param("industriesType") String industriesType,
            @Param("noticeName") String noticeName,
            @Param("platformCode") String platformCode,
            @Param("noticeSendTimeStart") Long noticeSendTimeStart,
            @Param("noticeSendTimeEnd") Long noticeSendTimeEnd
    );

    IPage<TenderDetailsVo> queryGcTenderProjectAllListGeTime(
            Page<GcNoticeandfile> page,
            @Param("regionCode") String regionCode,
            @Param("industriesType") String industriesType,
            @Param("noticeName") String noticeName,
            @Param("platformCode") String platformCode,
            @Param("noticeSendTimeStart") Long noticeSendTimeStart,
            @Param("noticeSendTimeEnd") Long noticeSendTimeEnd,
            @Param("time") Long  time
    );

    Long maxDataTimeStamp();

}
