package com.iailab.module.model.mcs.sche.dao;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.iailab.framework.common.pojo.PageResult;
import com.iailab.framework.mybatis.core.mapper.BaseMapperX;
import com.iailab.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.iailab.framework.tenant.core.db.dynamic.TenantDS;
import com.iailab.module.model.api.mcs.dto.StAlarmAndSuggestPageReqVO;
import com.iailab.module.model.api.mcs.dto.StAlarmAndSuggestRespVO;
import com.iailab.module.model.mcs.sche.entity.StScheduleSchemeEntity;
import com.iailab.module.model.mcs.sche.vo.StScheduleSchemePageReqVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Map;

/**
 * @author PanZhibao
 * @date 2021年07月20日 9:08
 */
@TenantDS
@Mapper
public interface StScheduleSchemeDao extends BaseMapperX<StScheduleSchemeEntity> {

    default PageResult<StScheduleSchemeEntity> selectPage(StScheduleSchemePageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<StScheduleSchemeEntity>()
                .likeIfPresent(StScheduleSchemeEntity::getName, reqVO.getName())
                .likeIfPresent(StScheduleSchemeEntity::getCode, reqVO.getCode())
                .orderByDesc(StScheduleSchemeEntity::getCreateTime));
    }

    IPage<StAlarmAndSuggestRespVO> getAlarmAndSuggestPage(IPage<StScheduleSchemeEntity> page, @Param("params") StAlarmAndSuggestPageReqVO reqVO);

    default IPage<StAlarmAndSuggestRespVO> selectAlarmAndSuggestPageList(StAlarmAndSuggestPageReqVO reqVO) {
        return getAlarmAndSuggestPage(getPage(reqVO), reqVO);
    }
}