package com.fastbee.iot.mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fastbee.common.extend.core.domin.mq.SubDeviceBo;
import com.fastbee.common.mybatis.mapper.BaseMapperX;
import com.fastbee.iot.domain.SubGateway;
import com.fastbee.iot.model.gateWay.GateSubDeviceVO;
import com.fastbee.iot.model.gateWay.SubDeviceListVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/**
 * 网关与子设备关联Mapper接口
 *
 * @author gsb
 * @date 2024-05-27
 */
public interface SubGatewayMapper extends BaseMapperX<SubGateway>
{

    /**
     * 查询网关与子设备关联列表
     *
     * @param gateway 网关与子设备关联
     * @return 网关与子设备关联集合
     */
    public Page<SubDeviceListVO> selectGatewayList(Page<SubDeviceListVO> page, @Param("gateway") SubGateway gateway);

    /**
     * 获取可选的网关子设备列表
     * @return
     */
    Page<GateSubDeviceVO> getIsSelectGateSubDevice(Page<GateSubDeviceVO> page, @Param("subDeviceVO")GateSubDeviceVO subDeviceVO);


    /**
     * 根据网关设备编号查询子设备列表
     * @param gwSerialNumber
     * @return
     */
    List<SubDeviceBo> getSubDeviceListByGw(String gwSerialNumber);

    /**
     * @description: 查询子设备地址
     * @param: subDeviceId 子设备id
     * @return: java.lang.Integer
     */
    Integer selectSlaveIdBySubDeviceId(Long subDeviceId);

    /**
     * 根据子设备查询网关设备编号
     * @param subDeviceId 子设备id
     * @return
     */
    SubDeviceListVO selectSubGatewayDevice(Long subDeviceId);
}
