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(); }