package com.genersoft.iot.vmp.storager.dao;
import com.genersoft.iot.vmp.gb28181.bean.Device;
import org.apache.ibatis.annotations.*;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* 用于存储设备信息
*/
@Mapper
@Repository
public interface DeviceMapper {
@Select("SELECT " +
"device_id, " +
"coalesce(custom_name, name) as name, " +
"password, " +
"manufacturer, " +
"model, " +
"firmware, " +
"transport," +
"stream_mode," +
"ip," +
"sdp_ip," +
"local_ip," +
"port," +
"host_address," +
"expires," +
"register_time," +
"keepalive_time," +
"create_time," +
"update_time," +
"charset," +
"subscribe_cycle_for_catalog," +
"subscribe_cycle_for_mobile_position," +
"mobile_position_submission_interval," +
"subscribe_cycle_for_alarm," +
"ssrc_check," +
"as_message_channel," +
"geo_coord_sys," +
"on_line," +
"media_server_id," +
"switch_primary_sub_stream," +
"(SELECT count(0) FROM wvp_device_channel WHERE device_id=wvp_device.device_id) as channel_count "+
" FROM wvp_device WHERE device_id = #{deviceId}")
Device getDeviceByDeviceId(String deviceId);
@Insert("INSERT INTO wvp_device (" +
"device_id, " +
"name, " +
"manufacturer, " +
"model, " +
"firmware, " +
"transport," +
"stream_mode," +
"ip," +
"sdp_ip," +
"local_ip," +
"port," +
"host_address," +
"expires," +
"register_time," +
"keepalive_time," +
"keepalive_interval_time," +
"create_time," +
"update_time," +
"charset," +
"subscribe_cycle_for_catalog," +
"subscribe_cycle_for_mobile_position,"+
"mobile_position_submission_interval,"+
"subscribe_cycle_for_alarm,"+
"ssrc_check,"+
"as_message_channel,"+
"geo_coord_sys,"+
"on_line"+
") VALUES (" +
"#{deviceId}," +
"#{name}," +
"#{manufacturer}," +
"#{model}," +
"#{firmware}," +
"#{transport}," +
"#{streamMode}," +
"#{ip}," +
"#{sdpIp}," +
"#{localIp}," +
"#{port}," +
"#{hostAddress}," +
"#{expires}," +
"#{registerTime}," +
"#{keepaliveTime}," +
"#{keepaliveIntervalTime}," +
"#{createTime}," +
"#{updateTime}," +
"#{charset}," +
"#{subscribeCycleForCatalog}," +
"#{subscribeCycleForMobilePosition}," +
"#{mobilePositionSubmissionInterval}," +
"#{subscribeCycleForAlarm}," +
"#{ssrcCheck}," +
"#{asMessageChannel}," +
"#{geoCoordSys}," +
"#{onLine}" +
")")
int add(Device device);
@Update(value = {" "})
int update(Device device);
@Select(
" "
)
List getDevices(Boolean onLine);
@Delete("DELETE FROM wvp_device WHERE device_id=#{deviceId}")
int del(String deviceId);
@Select("SELECT " +
"device_id, " +
"coalesce(custom_name, name) as name, " +
"password, " +
"manufacturer, " +
"model, " +
"firmware, " +
"transport," +
"stream_mode," +
"ip," +
"sdp_ip,"+
"local_ip,"+
"port,"+
"host_address,"+
"expires,"+
"register_time,"+
"keepalive_time,"+
"create_time,"+
"update_time,"+
"charset,"+
"subscribe_cycle_for_catalog,"+
"subscribe_cycle_for_mobile_position,"+
"mobile_position_submission_interval,"+
"subscribe_cycle_for_alarm,"+
"ssrc_check,"+
"as_message_channel,"+
"geo_coord_sys,"+
"on_line"+
" FROM wvp_device WHERE on_line = true")
List getOnlineDevices();
@Select("SELECT " +
"device_id,"+
"coalesce(custom_name,name)as name,"+
"password,"+
"manufacturer,"+
"model,"+
"firmware,"+
"transport,"+
"stream_mode,"+
"ip,"+
"sdp_ip,"+
"local_ip,"+
"port,"+
"host_address,"+
"expires,"+
"register_time,"+
"keepalive_time,"+
"create_time,"+
"update_time,"+
"charset,"+
"subscribe_cycle_for_catalog,"+
"subscribe_cycle_for_mobile_position,"+
"mobile_position_submission_interval,"+
"subscribe_cycle_for_alarm,"+
"ssrc_check,"+
"as_message_channel,"+
"geo_coord_sys,"+
"on_line"+
" FROM wvp_device WHERE ip = #{host} AND port=#{port}")
Device getDeviceByHostAndPort(@Param("host") String host, @Param("port") int port);
@Update(value = {" "})
void updateCustom(Device device);
@Insert("INSERT INTO wvp_device (" +
"device_id,"+
"custom_name,"+
"password,"+
"sdp_ip,"+
"create_time,"+
"update_time,"+
"charset,"+
"ssrc_check,"+
"as_message_channel,"+
"geo_coord_sys,"+
"on_line,"+
"media_server_id,"+
"switch_primary_sub_stream"+
") VALUES (" +
"#{deviceId}," +
"#{name}," +
"#{password}," +
"#{sdpIp}," +
"#{createTime}," +
"#{updateTime}," +
"#{charset}," +
"#{ssrcCheck}," +
"#{asMessageChannel}," +
"#{geoCoordSys}," +
"#{onLine}," +
"#{mediaServerId}," +
"#{switchPrimarySubStream}" +
")")
void addCustomDevice(Device device);
@Select("select * FROM wvp_device")
List getAll();
@Select("select * FROM wvp_device where as_message_channel = true")
List queryDeviceWithAsMessageChannel();
}