package com.sptg.ad.biz.service;

import com.baomidou.mybatisplus.enums.SqlLike;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.sptg.ad.api.entity.EarlyWarning;
import com.sptg.common.core.beans.PageBean;
import org.springframework.util.StringUtils;

/**
 *            
 *                
 * description:
 */
public interface EarlyWarningService extends IService<EarlyWarning> {

    /**
     * 分页查询
     * @param pageBean 查询条件
     * @return Page<EarlyWarning>
     */
    default Page<EarlyWarning> pagingQuery(PageBean<EarlyWarning, EarlyWarning> pageBean) {
        Wrapper<EarlyWarning> wrapper = new EntityWrapper<>();
        EarlyWarning dto = pageBean.getDto();
        //  根据结束标识查询
        if (null != dto.getEndFlag()){
            wrapper.eq("end_flag",dto.getEndFlag());
        }
        //  根据任务类型查询
        if (null != dto.getTaskType()){
            wrapper.eq("task_type",dto.getTaskType());
        }
        //  根据类型查询
        if (null != dto.getType()){
            wrapper.eq("type",dto.getType());
        }
        //  根据设备名称模糊查询
        if (StringUtils.hasText(dto.getDeviceName())){
            wrapper.like("device_name",dto.getDeviceName(), SqlLike.RIGHT);
        }
        //  根据设备序列号查询
        if (StringUtils.hasText(dto.getSerialNumber())){
            wrapper.like("serial_number",dto.getSerialNumber(),SqlLike.RIGHT);
        }
        //  根据结束时间查询
        if (StringUtils.hasText(dto.getTime())){
            wrapper.and("( DATE_FORMAT( end_time,'%Y-%m-%d' ) = {0} )",dto.getTime());
        }
        return this.selectPage(pageBean,wrapper);
    }

}
