package com.njcn.device.terminal.mapper;

import cn.hutool.core.date.DateTime;
import com.njcn.device.pq.pojo.vo.LineFlowMealDetailVO;
import com.njcn.device.pq.pojo.vo.TerminalDaliyFlowVO;
import com.njcn.device.pq.pojo.vo.TerminalMaintainVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * pqs
 * 终端运维
 * @author cdf
 * @date 2022/5/11
 */
public interface TerminalMaintainMapper {


    /**
     * 或取装置及关联信息
     * @author cdf
     * @date 2022/5/11
     */
    List<TerminalMaintainVO> getTerminalDevInfo(@Param("devIds") List<String> devIds, @Param("comFlag") Integer comFlag, @Param("devType") String devType);


    List<TerminalMaintainVO> terminalConfig(@Param("devIds") List<String> devIds, @Param("comFlag") Integer comFlag, @Param("devType") String devType);


    /**
     * 获取区域
     * @author cdf
     * @date 2022/5/11
     */
    List<TerminalMaintainVO> getProvList();

    /**
     * 获取公司，单位
     * @author cdf
     * @date 2022/5/11
     */
    List<TerminalMaintainVO> getGdAndSubList(@Param("level") Integer level);

    /**
     * 根据ids获取pq_line省份信息
     * @author cdf
     * @date 2022/5/12
     */
    List<TerminalMaintainVO> getPqLineProvList(@Param("ids") List<String> ids);

    /**
     * 根据ids获取pq_line公司单位信息
     * @author cdf
     * @date 2022/5/12
     */
    List<TerminalMaintainVO> getPqLineGdAndSubList(@Param("ids") List<String> ids);




    /**
     * 根据装置ids获取所有终端运行状态
     * @author cdf
     * @date 2022/5/12
     */
    List<TerminalMaintainVO> getRunFlagList(@Param("ids") List<String> ids);

    /**
     * 根据装置ids获取所有终端流量套餐
     * @author cdf
     * @date 2022/5/12
     */
    List<TerminalMaintainVO> getFlowMealList(@Param("ids") List<String> ids);

    /**
     * 根据装置ids获取所有终端流量策略
     * @author cdf
     * @date 2022/5/12
     */
    List<TerminalMaintainVO> getFlowStrategyList(@Param("ids") List<String> ids);


    TerminalDaliyFlowVO getFlowManageDetail(@Param("devId") String deviceId);

    List<LineFlowMealDetailVO> getMonthFlow (@Param("devs") List<String> list, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime);
}
