package com.genersoft.iot.vmp.gb28181.dao; import com.genersoft.iot.vmp.gb28181.bean.Device; import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; import org.apache.ibatis.annotations.*; import org.springframework.stereotype.Repository; import java.util.List; /** * 用于存储设备信息 */ @Mapper @Repository public interface DeviceMapper { @Select("SELECT " + "id, " + "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," + "broadcast_push_after_ack," + "(SELECT count(0) FROM wvp_device_channel dc WHERE dc.device_db_id= de.id) as channel_count "+ " FROM wvp_device de WHERE de.device_id = #{deviceId}") Device getDeviceByDeviceId(String deviceId); @Insert("INSERT INTO wvp_device (" + "device_id, " + "name, " + "manufacturer, " + "model, " + "firmware, " + "transport," + "stream_mode," + "media_server_id," + "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,"+ "broadcast_push_after_ack,"+ "geo_coord_sys,"+ "on_line"+ ") VALUES (" + "#{deviceId}," + "#{name}," + "#{manufacturer}," + "#{model}," + "#{firmware}," + "#{transport}," + "#{streamMode}," + "#{mediaServerId}," + "#{ip}," + "#{sdpIp}," + "#{localIp}," + "#{port}," + "#{hostAddress}," + "#{expires}," + "#{registerTime}," + "#{keepaliveTime}," + "#{keepaliveIntervalTime}," + "#{createTime}," + "#{updateTime}," + "#{charset}," + "#{subscribeCycleForCatalog}," + "#{subscribeCycleForMobilePosition}," + "#{mobilePositionSubmissionInterval}," + "#{subscribeCycleForAlarm}," + "#{ssrcCheck}," + "#{asMessageChannel}," + "#{broadcastPushAfterAck}," + "#{geoCoordSys}," + "#{onLine}" + ")") @Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id") 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 " + "id, " + "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,"+ "broadcast_push_after_ack,"+ "geo_coord_sys,"+ "on_line"+ " FROM wvp_device WHERE on_line = true") List getOnlineDevices(); @Select("SELECT " + "id,"+ "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,"+ "broadcast_push_after_ack,"+ "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,"+ "broadcast_push_after_ack,"+ "geo_coord_sys,"+ "on_line,"+ "stream_mode," + "media_server_id"+ ") VALUES (" + "#{deviceId}," + "#{name}," + "#{password}," + "#{sdpIp}," + "#{createTime}," + "#{updateTime}," + "#{charset}," + "#{ssrcCheck}," + "#{asMessageChannel}," + "#{broadcastPushAfterAck}," + "#{geoCoordSys}," + "#{onLine}," + "#{streamMode}," + "#{mediaServerId}" + ")") void addCustomDevice(Device device); @Select("select * FROM wvp_device") List getAll(); @Select("select * FROM wvp_device where as_message_channel = true") List queryDeviceWithAsMessageChannel(); @Select(" ") List getDeviceList(@Param("query") String query, @Param("status") Boolean status); @Select("select * from wvp_device_channel where id = #{id}") DeviceChannel getRawChannel(@Param("id") int id); @Select("select * from wvp_device where id = #{id}") Device query(@Param("id") Integer id); @Select("select wd.* from wvp_device wd left join wvp_device_channel wdc on wd.id = wdc.device_db_id where wdc.id = #{channelId}") Device queryByChannelId(@Param("channelId") Integer channelId); @Select("select wd.* from wvp_device wd left join wvp_device_channel wdc on wd.id = wdc.device_db_id where wdc.device_id = #{channelDeviceId}") Device getDeviceBySourceChannelDeviceId(@Param("channelDeviceId") String channelDeviceId); }