| package com.genersoft.iot.vmp.storager.dao; | 
|   | 
| import com.genersoft.iot.vmp.gb28181.bean.Device; | 
| import org.apache.ibatis.annotations.*; | 
| import org.springframework.stereotype.Repository; | 
|   | 
| import java.util.List; | 
|   | 
| /** | 
|  * 用于存储设备信息 | 
|  */ | 
| @Mapper | 
| @Repository | 
| public interface DeviceMapper { | 
|   | 
|     @Select("SELECT * FROM device WHERE deviceId = #{deviceId}") | 
|     Device getDeviceByDeviceId(String deviceId); | 
|   | 
|     @Insert("INSERT INTO device (" + | 
|                 "deviceId, " + | 
|                 "name, " + | 
|                 "manufacturer, " + | 
|                 "model, " + | 
|                 "firmware, " + | 
|                 "transport," + | 
|                 "streamMode," + | 
|                 "ip," + | 
|                 "port," + | 
|                 "hostAddress," + | 
|                 "expires," + | 
|                 "registerTime," + | 
|                 "keepaliveTime," + | 
|                 "createTime," + | 
|                 "updateTime," + | 
|                 "charset," + | 
|                 "subscribeCycleForCatalog," + | 
|                 "subscribeCycleForMobilePosition," + | 
|                 "mobilePositionSubmissionInterval," + | 
|                 "subscribeCycleForAlarm," + | 
|                 "ssrcCheck," + | 
|                 "online" + | 
|             ") VALUES (" + | 
|                 "#{deviceId}," + | 
|                 "#{name}," + | 
|                 "#{manufacturer}," + | 
|                 "#{model}," + | 
|                 "#{firmware}," + | 
|                 "#{transport}," + | 
|                 "#{streamMode}," + | 
|                 "#{ip}," + | 
|                 "#{port}," + | 
|                 "#{hostAddress}," + | 
|                 "#{expires}," + | 
|                 "#{registerTime}," + | 
|                 "#{keepaliveTime}," + | 
|                 "#{createTime}," + | 
|                 "#{updateTime}," + | 
|                 "#{charset}," + | 
|                 "#{subscribeCycleForCatalog}," + | 
|                 "#{subscribeCycleForMobilePosition}," + | 
|                 "#{mobilePositionSubmissionInterval}," + | 
|                 "#{subscribeCycleForAlarm}," + | 
|                 "#{ssrcCheck}," + | 
|                 "#{online}" + | 
|             ")") | 
|     int add(Device device); | 
|   | 
|     @Update(value = {" <script>" + | 
|                 "UPDATE device " + | 
|                 "SET updateTime='${updateTime}'" + | 
|                 "<if test=\"name != null\">, name='${name}'</if>" + | 
|                 "<if test=\"manufacturer != null\">, manufacturer='${manufacturer}'</if>" + | 
|                 "<if test=\"model != null\">, model='${model}'</if>" + | 
|                 "<if test=\"firmware != null\">, firmware='${firmware}'</if>" + | 
|                 "<if test=\"transport != null\">, transport='${transport}'</if>" + | 
|                 "<if test=\"streamMode != null\">, streamMode='${streamMode}'</if>" + | 
|                 "<if test=\"ip != null\">, ip='${ip}'</if>" + | 
|                 "<if test=\"port != null\">, port=${port}</if>" + | 
|                 "<if test=\"hostAddress != null\">, hostAddress='${hostAddress}'</if>" + | 
|                 "<if test=\"online != null\">, online=${online}</if>" + | 
|                 "<if test=\"registerTime != null\">, registerTime='${registerTime}'</if>" + | 
|                 "<if test=\"keepaliveTime != null\">, keepaliveTime='${keepaliveTime}'</if>" + | 
|                 "<if test=\"expires != null\">, expires=${expires}</if>" + | 
|                 "<if test=\"charset != null\">, charset='${charset}'</if>" + | 
|                 "<if test=\"subscribeCycleForCatalog != null\">, subscribeCycleForCatalog=${subscribeCycleForCatalog}</if>" + | 
|                 "<if test=\"subscribeCycleForMobilePosition != null\">, subscribeCycleForMobilePosition=${subscribeCycleForMobilePosition}</if>" + | 
|                 "<if test=\"mobilePositionSubmissionInterval != null\">, mobilePositionSubmissionInterval=${mobilePositionSubmissionInterval}</if>" + | 
|                 "<if test=\"subscribeCycleForAlarm != null\">, subscribeCycleForAlarm=${subscribeCycleForAlarm}</if>" + | 
|                 "<if test=\"ssrcCheck != null\">, ssrcCheck=${ssrcCheck}</if>" + | 
|                 "WHERE deviceId='${deviceId}'"+ | 
|             " </script>"}) | 
|     int update(Device device); | 
|   | 
|     @Select("SELECT *, (SELECT count(0) FROM device_channel WHERE deviceId=de.deviceId) as channelCount  FROM device de") | 
|     List<Device> getDevices(); | 
|   | 
|     @Delete("DELETE FROM device WHERE deviceId=#{deviceId}") | 
|     int del(String deviceId); | 
|   | 
|     @Update("UPDATE device SET online=0") | 
|     int outlineForAll(); | 
|   | 
|     @Select("SELECT * FROM device WHERE online = 1") | 
|     List<Device> getOnlineDevices(); | 
|     @Select("SELECT * FROM device WHERE ip = #{host} AND port=${port}") | 
|     Device getDeviceByHostAndPort(String host, int port); | 
| } |