Commit dcd78a1cfa0c929403d51a347e43414f6aa5f0d8
1 parent
a25f7e4f
存储部分使用sqlite代替redis-3
Showing
20 changed files
with
222 additions
and
1225 deletions
pom.xml
| @@ -45,9 +45,6 @@ | @@ -45,9 +45,6 @@ | ||
| 45 | <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | 45 | <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
| 46 | 46 | ||
| 47 | <!-- 依赖版本 --> | 47 | <!-- 依赖版本 --> |
| 48 | - <mapper.version>4.1.5</mapper.version> | ||
| 49 | - <mybatis.version>3.5.5</mybatis.version> | ||
| 50 | - <mybatis.spring.version>2.0.5</mybatis.spring.version> | ||
| 51 | <pagehelper.version>5.2.0</pagehelper.version> | 48 | <pagehelper.version>5.2.0</pagehelper.version> |
| 52 | <snippetsDirectory>${project.build.directory}/generated-snippets</snippetsDirectory> | 49 | <snippetsDirectory>${project.build.directory}/generated-snippets</snippetsDirectory> |
| 53 | <asciidoctor.input.directory>${project.basedir}/docs/asciidoc</asciidoctor.input.directory> | 50 | <asciidoctor.input.directory>${project.basedir}/docs/asciidoc</asciidoctor.input.directory> |
| @@ -59,30 +56,16 @@ | @@ -59,30 +56,16 @@ | ||
| 59 | <dependencies> | 56 | <dependencies> |
| 60 | <dependency> | 57 | <dependency> |
| 61 | <groupId>org.springframework.boot</groupId> | 58 | <groupId>org.springframework.boot</groupId> |
| 62 | - <artifactId>spring-boot-starter-jdbc</artifactId> | ||
| 63 | - </dependency> | ||
| 64 | - <dependency> | ||
| 65 | - <groupId>org.springframework.boot</groupId> | ||
| 66 | - <artifactId>spring-boot-starter-tomcat</artifactId> | 59 | + <artifactId>spring-boot-starter-data-redis</artifactId> |
| 67 | </dependency> | 60 | </dependency> |
| 68 | <dependency> | 61 | <dependency> |
| 69 | <groupId>org.springframework.boot</groupId> | 62 | <groupId>org.springframework.boot</groupId> |
| 70 | <artifactId>spring-boot-starter-web</artifactId> | 63 | <artifactId>spring-boot-starter-web</artifactId> |
| 71 | </dependency> | 64 | </dependency> |
| 72 | <dependency> | 65 | <dependency> |
| 73 | - <groupId>org.springframework</groupId> | ||
| 74 | - <artifactId>spring-context</artifactId> | ||
| 75 | - </dependency> | ||
| 76 | - | ||
| 77 | - <!-- redis --> | ||
| 78 | - <dependency> | ||
| 79 | - <groupId>org.springframework.data</groupId> | ||
| 80 | - <artifactId>spring-data-redis</artifactId> | ||
| 81 | - </dependency> | ||
| 82 | - <dependency> | ||
| 83 | - <groupId>redis.clients</groupId> | ||
| 84 | - <artifactId>jedis</artifactId> | ||
| 85 | - <version>3.3.0</version> | 66 | + <groupId>org.mybatis.spring.boot</groupId> |
| 67 | + <artifactId>mybatis-spring-boot-starter</artifactId> | ||
| 68 | + <version>2.1.4</version> | ||
| 86 | </dependency> | 69 | </dependency> |
| 87 | 70 | ||
| 88 | <!-- druid数据库连接池 --> | 71 | <!-- druid数据库连接池 --> |
| @@ -106,36 +89,18 @@ | @@ -106,36 +89,18 @@ | ||
| 106 | <version>3.32.3.2</version> | 89 | <version>3.32.3.2</version> |
| 107 | </dependency> | 90 | </dependency> |
| 108 | 91 | ||
| 109 | - <!--Mybatis --> | ||
| 110 | - <dependency> | ||
| 111 | - <groupId>org.mybatis</groupId> | ||
| 112 | - <artifactId>mybatis</artifactId> | ||
| 113 | - <version>${mybatis.version}</version> | ||
| 114 | - </dependency> | ||
| 115 | - <dependency> | ||
| 116 | - <groupId>org.mybatis</groupId> | ||
| 117 | - <artifactId>mybatis-spring</artifactId> | ||
| 118 | - <version>${mybatis.spring.version}</version> | ||
| 119 | - </dependency> | ||
| 120 | - | ||
| 121 | - <!--分页插件 --> | 92 | + <!--Mybatis分页插件 --> |
| 122 | <dependency> | 93 | <dependency> |
| 123 | <groupId>com.github.pagehelper</groupId> | 94 | <groupId>com.github.pagehelper</groupId> |
| 124 | - <artifactId>pagehelper</artifactId> | ||
| 125 | - <version>${pagehelper.version}</version> | 95 | + <artifactId>pagehelper-spring-boot-starter</artifactId> |
| 96 | + <version>1.2.10</version> | ||
| 126 | </dependency> | 97 | </dependency> |
| 127 | 98 | ||
| 128 | - <!--通用Mapper --> | ||
| 129 | - <dependency> | ||
| 130 | - <groupId>tk.mybatis</groupId> | ||
| 131 | - <artifactId>mapper</artifactId> | ||
| 132 | - <version>${mapper.version}</version> | ||
| 133 | - </dependency> | ||
| 134 | - <dependency> | ||
| 135 | - <groupId>org.apache.commons</groupId> | ||
| 136 | - <artifactId>commons-lang3</artifactId> | ||
| 137 | - <version>3.11</version> | ||
| 138 | - </dependency> | 99 | +<!-- <dependency>--> |
| 100 | +<!-- <groupId>org.apache.commons</groupId>--> | ||
| 101 | +<!-- <artifactId>commons-lang3</artifactId>--> | ||
| 102 | +<!-- <version>3.11</version>--> | ||
| 103 | +<!-- </dependency>--> | ||
| 139 | 104 | ||
| 140 | <!--Swagger2 --> | 105 | <!--Swagger2 --> |
| 141 | <!--在线文档 --> | 106 | <!--在线文档 --> |
src/main/java/com/genersoft/iot/vmp/common/PageResult.java deleted
100644 → 0
| 1 | -package com.genersoft.iot.vmp.common; | ||
| 2 | - | ||
| 3 | - | ||
| 4 | -import java.util.List; | ||
| 5 | - | ||
| 6 | -public class PageResult<T> { | ||
| 7 | - | ||
| 8 | - private int page; | ||
| 9 | - private int count; | ||
| 10 | - private int total; | ||
| 11 | - | ||
| 12 | - private List<T> data; | ||
| 13 | - | ||
| 14 | - public List<T> getData() { | ||
| 15 | - return data; | ||
| 16 | - } | ||
| 17 | - | ||
| 18 | - public int getPage() { | ||
| 19 | - return page; | ||
| 20 | - } | ||
| 21 | - | ||
| 22 | - public void setPage(int page) { | ||
| 23 | - this.page = page; | ||
| 24 | - } | ||
| 25 | - | ||
| 26 | - public int getCount() { | ||
| 27 | - return count; | ||
| 28 | - } | ||
| 29 | - | ||
| 30 | - public void setCount(int count) { | ||
| 31 | - this.count = count; | ||
| 32 | - } | ||
| 33 | - | ||
| 34 | - public int getTotal() { | ||
| 35 | - return total; | ||
| 36 | - } | ||
| 37 | - | ||
| 38 | - public void setTotal(int total) { | ||
| 39 | - this.total = total; | ||
| 40 | - } | ||
| 41 | - | ||
| 42 | - public void setData(List<T> data) { | ||
| 43 | - this.data = data; | ||
| 44 | - } | ||
| 45 | -} |
src/main/java/com/genersoft/iot/vmp/gb28181/bean/Device.java
| 1 | package com.genersoft.iot.vmp.gb28181.bean; | 1 | package com.genersoft.iot.vmp.gb28181.bean; |
| 2 | 2 | ||
| 3 | 3 | ||
| 4 | -import java.util.Date; | ||
| 5 | -import java.util.List; | ||
| 6 | -import java.util.Map; | ||
| 7 | - | ||
| 8 | public class Device { | 4 | public class Device { |
| 9 | 5 | ||
| 10 | /** | 6 | /** |
| 11 | - * 数据库存储ID | ||
| 12 | - */ | ||
| 13 | - private int id; | ||
| 14 | - | ||
| 15 | - /** | ||
| 16 | * 设备Id | 7 | * 设备Id |
| 17 | */ | 8 | */ |
| 18 | private String deviceId; | 9 | private String deviceId; |
| @@ -52,9 +43,19 @@ public class Device { | @@ -52,9 +43,19 @@ public class Device { | ||
| 52 | private String streamMode; | 43 | private String streamMode; |
| 53 | 44 | ||
| 54 | /** | 45 | /** |
| 46 | + * wan地址_ip | ||
| 47 | + */ | ||
| 48 | + private String ip; | ||
| 49 | + | ||
| 50 | + /** | ||
| 51 | + * wan地址_port | ||
| 52 | + */ | ||
| 53 | + private int port; | ||
| 54 | + | ||
| 55 | + /** | ||
| 55 | * wan地址 | 56 | * wan地址 |
| 56 | */ | 57 | */ |
| 57 | - private Host host; | 58 | + private String hostAddress; |
| 58 | 59 | ||
| 59 | /** | 60 | /** |
| 60 | * 在线 | 61 | * 在线 |
| @@ -72,14 +73,6 @@ public class Device { | @@ -72,14 +73,6 @@ public class Device { | ||
| 72 | */ | 73 | */ |
| 73 | private int channelCount; | 74 | private int channelCount; |
| 74 | 75 | ||
| 75 | - public int getId() { | ||
| 76 | - return id; | ||
| 77 | - } | ||
| 78 | - | ||
| 79 | - public void setId(int id) { | ||
| 80 | - this.id = id; | ||
| 81 | - } | ||
| 82 | - | ||
| 83 | public String getDeviceId() { | 76 | public String getDeviceId() { |
| 84 | return deviceId; | 77 | return deviceId; |
| 85 | } | 78 | } |
| @@ -136,12 +129,28 @@ public class Device { | @@ -136,12 +129,28 @@ public class Device { | ||
| 136 | this.streamMode = streamMode; | 129 | this.streamMode = streamMode; |
| 137 | } | 130 | } |
| 138 | 131 | ||
| 139 | - public Host getHost() { | ||
| 140 | - return host; | 132 | + public String getIp() { |
| 133 | + return ip; | ||
| 134 | + } | ||
| 135 | + | ||
| 136 | + public void setIp(String ip) { | ||
| 137 | + this.ip = ip; | ||
| 138 | + } | ||
| 139 | + | ||
| 140 | + public int getPort() { | ||
| 141 | + return port; | ||
| 142 | + } | ||
| 143 | + | ||
| 144 | + public void setPort(int port) { | ||
| 145 | + this.port = port; | ||
| 146 | + } | ||
| 147 | + | ||
| 148 | + public String getHostAddress() { | ||
| 149 | + return hostAddress; | ||
| 141 | } | 150 | } |
| 142 | 151 | ||
| 143 | - public void setHost(Host host) { | ||
| 144 | - this.host = host; | 152 | + public void setHostAddress(String hostAddress) { |
| 153 | + this.hostAddress = hostAddress; | ||
| 145 | } | 154 | } |
| 146 | 155 | ||
| 147 | public int getOnline() { | 156 | public int getOnline() { |
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java
| @@ -44,9 +44,8 @@ public class SIPRequestHeaderProvider { | @@ -44,9 +44,8 @@ public class SIPRequestHeaderProvider { | ||
| 44 | 44 | ||
| 45 | public Request createMessageRequest(Device device, String content, String viaTag, String fromTag, String toTag) throws ParseException, InvalidArgumentException, PeerUnavailableException { | 45 | public Request createMessageRequest(Device device, String content, String viaTag, String fromTag, String toTag) throws ParseException, InvalidArgumentException, PeerUnavailableException { |
| 46 | Request request = null; | 46 | Request request = null; |
| 47 | - Host host = device.getHost(); | ||
| 48 | // sipuri | 47 | // sipuri |
| 49 | - SipURI requestURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), host.getAddress()); | 48 | + SipURI requestURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress()); |
| 50 | // via | 49 | // via |
| 51 | ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); | 50 | ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); |
| 52 | ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(sipConfig.getSipIp(), sipConfig.getSipPort(), | 51 | ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(sipConfig.getSipIp(), sipConfig.getSipPort(), |
| @@ -79,12 +78,11 @@ public class SIPRequestHeaderProvider { | @@ -79,12 +78,11 @@ public class SIPRequestHeaderProvider { | ||
| 79 | 78 | ||
| 80 | public Request createInviteRequest(Device device, String channelId, String content, String viaTag, String fromTag, String toTag, String ssrc) throws ParseException, InvalidArgumentException, PeerUnavailableException { | 79 | public Request createInviteRequest(Device device, String channelId, String content, String viaTag, String fromTag, String toTag, String ssrc) throws ParseException, InvalidArgumentException, PeerUnavailableException { |
| 81 | Request request = null; | 80 | Request request = null; |
| 82 | - Host host = device.getHost(); | ||
| 83 | //请求行 | 81 | //请求行 |
| 84 | - SipURI requestLine = sipFactory.createAddressFactory().createSipURI(channelId, host.getAddress()); | 82 | + SipURI requestLine = sipFactory.createAddressFactory().createSipURI(channelId, device.getHostAddress()); |
| 85 | //via | 83 | //via |
| 86 | ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); | 84 | ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); |
| 87 | - ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(device.getHost().getIp(), device.getHost().getPort(), device.getTransport(), viaTag); | 85 | + ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(device.getIp(), device.getPort(), device.getTransport(), viaTag); |
| 88 | viaHeader.setRPort(); | 86 | viaHeader.setRPort(); |
| 89 | viaHeaders.add(viaHeader); | 87 | viaHeaders.add(viaHeader); |
| 90 | 88 | ||
| @@ -126,12 +124,11 @@ public class SIPRequestHeaderProvider { | @@ -126,12 +124,11 @@ public class SIPRequestHeaderProvider { | ||
| 126 | 124 | ||
| 127 | public Request createPlaybackInviteRequest(Device device, String channelId, String content, String viaTag, String fromTag, String toTag) throws ParseException, InvalidArgumentException, PeerUnavailableException { | 125 | public Request createPlaybackInviteRequest(Device device, String channelId, String content, String viaTag, String fromTag, String toTag) throws ParseException, InvalidArgumentException, PeerUnavailableException { |
| 128 | Request request = null; | 126 | Request request = null; |
| 129 | - Host host = device.getHost(); | ||
| 130 | //请求行 | 127 | //请求行 |
| 131 | - SipURI requestLine = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), host.getAddress()); | 128 | + SipURI requestLine = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress()); |
| 132 | // via | 129 | // via |
| 133 | ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); | 130 | ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); |
| 134 | - ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(device.getHost().getIp(), device.getHost().getPort(), device.getTransport(), viaTag); | 131 | + ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(device.getIp(), device.getPort(), device.getTransport(), viaTag); |
| 135 | viaHeader.setRPort(); | 132 | viaHeader.setRPort(); |
| 136 | viaHeaders.add(viaHeader); | 133 | viaHeaders.add(viaHeader); |
| 137 | //from | 134 | //from |
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/RegisterRequestProcessor.java
| @@ -107,17 +107,15 @@ public class RegisterRequestProcessor extends SIPRequestAbstractProcessor { | @@ -107,17 +107,15 @@ public class RegisterRequestProcessor extends SIPRequestAbstractProcessor { | ||
| 107 | rPort = viaHeader.getPort(); | 107 | rPort = viaHeader.getPort(); |
| 108 | } | 108 | } |
| 109 | // | 109 | // |
| 110 | - Host host = new Host(); | ||
| 111 | - host.setIp(received); | ||
| 112 | - host.setPort(rPort); | ||
| 113 | - host.setAddress(received.concat(":").concat(String.valueOf(rPort))); | ||
| 114 | AddressImpl address = (AddressImpl) fromHeader.getAddress(); | 110 | AddressImpl address = (AddressImpl) fromHeader.getAddress(); |
| 115 | SipUri uri = (SipUri) address.getURI(); | 111 | SipUri uri = (SipUri) address.getURI(); |
| 116 | String deviceId = uri.getUser(); | 112 | String deviceId = uri.getUser(); |
| 117 | device = new Device(); | 113 | device = new Device(); |
| 118 | device.setStreamMode("UDP"); | 114 | device.setStreamMode("UDP"); |
| 119 | device.setDeviceId(deviceId); | 115 | device.setDeviceId(deviceId); |
| 120 | - device.setHost(host); | 116 | + device.setIp(received); |
| 117 | + device.setPort(rPort); | ||
| 118 | + device.setHostAddress(received.concat(":").concat(String.valueOf(rPort))); | ||
| 121 | // 注销成功 | 119 | // 注销成功 |
| 122 | if (expiresHeader != null && expiresHeader.getExpires() == 0) { | 120 | if (expiresHeader != null && expiresHeader.getExpires() == 0) { |
| 123 | registerFlag = 2; | 121 | registerFlag = 2; |
src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java
| 1 | package com.genersoft.iot.vmp.storager; | 1 | package com.genersoft.iot.vmp.storager; |
| 2 | 2 | ||
| 3 | import java.util.List; | 3 | import java.util.List; |
| 4 | -import java.util.Map; | ||
| 5 | 4 | ||
| 6 | -import com.alibaba.fastjson.JSONObject; | ||
| 7 | -import com.genersoft.iot.vmp.common.PageResult; | ||
| 8 | -import com.genersoft.iot.vmp.common.StreamInfo; | ||
| 9 | -import com.genersoft.iot.vmp.conf.MediaServerConfig; | ||
| 10 | import com.genersoft.iot.vmp.gb28181.bean.Device; | 5 | import com.genersoft.iot.vmp.gb28181.bean.Device; |
| 11 | import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; | 6 | import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; |
| 7 | +import com.github.pagehelper.PageInfo; | ||
| 12 | 8 | ||
| 13 | /** | 9 | /** |
| 14 | * @Description:视频设备数据存储接口 | 10 | * @Description:视频设备数据存储接口 |
| @@ -65,7 +61,7 @@ public interface IVideoManagerStorager { | @@ -65,7 +61,7 @@ public interface IVideoManagerStorager { | ||
| 65 | * @param count 每页数量 | 61 | * @param count 每页数量 |
| 66 | * @return | 62 | * @return |
| 67 | */ | 63 | */ |
| 68 | - public PageResult queryChannelsByDeviceId(String deviceId, String query, Boolean hasSubChannel, String online, int page, int count); | 64 | + public PageInfo queryChannelsByDeviceId(String deviceId, String query, Boolean hasSubChannel, Boolean online, int page, int count); |
| 69 | 65 | ||
| 70 | /** | 66 | /** |
| 71 | * 获取某个设备的通道列表 | 67 | * 获取某个设备的通道列表 |
| @@ -82,13 +78,13 @@ public interface IVideoManagerStorager { | @@ -82,13 +78,13 @@ public interface IVideoManagerStorager { | ||
| 82 | */ | 78 | */ |
| 83 | public DeviceChannel queryChannel(String deviceId, String channelId); | 79 | public DeviceChannel queryChannel(String deviceId, String channelId); |
| 84 | 80 | ||
| 85 | - /** | 81 | + /** |
| 86 | * 获取多个设备 | 82 | * 获取多个设备 |
| 87 | - * | ||
| 88 | - * @param deviceIds 设备ID数组 | 83 | + * @param page 当前页数 |
| 84 | + * @param count 每页数量 | ||
| 89 | * @return List<Device> 设备对象数组 | 85 | * @return List<Device> 设备对象数组 |
| 90 | */ | 86 | */ |
| 91 | - public PageResult<Device> queryVideoDeviceList(String[] deviceIds, int page, int count); | 87 | + public PageInfo<Device> queryVideoDeviceList(int page, int count); |
| 92 | 88 | ||
| 93 | /** | 89 | /** |
| 94 | * 获取多个设备 | 90 | * 获取多个设备 |
| @@ -131,7 +127,7 @@ public interface IVideoManagerStorager { | @@ -131,7 +127,7 @@ public interface IVideoManagerStorager { | ||
| 131 | * @param count | 127 | * @param count |
| 132 | * @return | 128 | * @return |
| 133 | */ | 129 | */ |
| 134 | - PageResult querySubChannels(String deviceId, String channelId, String query, Boolean hasSubChannel, String online, int page, int count); | 130 | + PageInfo querySubChannels(String deviceId, String channelId, String query, Boolean hasSubChannel, String online, int page, int count); |
| 135 | 131 | ||
| 136 | 132 | ||
| 137 | /** | 133 | /** |
src/main/java/com/genersoft/iot/vmp/storager/VodeoMannagerTask.java deleted
100644 → 0
| 1 | -package com.genersoft.iot.vmp.storager; | ||
| 2 | - | ||
| 3 | -import org.springframework.beans.factory.annotation.Autowired; | ||
| 4 | -import org.springframework.boot.CommandLineRunner; | ||
| 5 | -import org.springframework.stereotype.Component; | ||
| 6 | - | ||
| 7 | -@Component | ||
| 8 | -public class VodeoMannagerTask implements CommandLineRunner { | ||
| 9 | - | ||
| 10 | - @Autowired | ||
| 11 | - private IVideoManagerStorager redisStorager; | ||
| 12 | - | ||
| 13 | - @Override | ||
| 14 | - public void run(String... strings) throws Exception { | ||
| 15 | - redisStorager.updateCatch(); | ||
| 16 | - } | ||
| 17 | -} |
src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java
| 1 | package com.genersoft.iot.vmp.storager.dao; | 1 | package com.genersoft.iot.vmp.storager.dao; |
| 2 | 2 | ||
| 3 | -import com.genersoft.iot.vmp.common.PageResult; | ||
| 4 | import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; | 3 | import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; |
| 5 | -import org.apache.ibatis.annotations.Mapper; | 4 | +import org.apache.ibatis.annotations.*; |
| 6 | 5 | ||
| 7 | import java.util.List; | 6 | import java.util.List; |
| 8 | 7 | ||
| 8 | +/** | ||
| 9 | + * 用于存储设备通道信息 | ||
| 10 | + */ | ||
| 9 | @Mapper | 11 | @Mapper |
| 10 | public interface DeviceChannelMapper { | 12 | public interface DeviceChannelMapper { |
| 11 | - int update(DeviceChannel channel); | ||
| 12 | 13 | ||
| 13 | - List<DeviceChannel> queryChannelsByDeviceId(String deviceId); | 14 | + @Insert("INSERT INTO device_channel (channelId, deviceId, name, manufacture, model, owner, civilCode, block, " + |
| 15 | + "address, parental, parentId, safetyWay, registerWay, certNum, certifiable, errCode, secrecy, " + | ||
| 16 | + "ipAddress, port, password, PTZType, status) " + | ||
| 17 | + "VALUES ('${channelId}', '${deviceId}', '${name}', '${manufacture}', '${model}', '${owner}', '${civilCode}', '${block}'," + | ||
| 18 | + "'${address}', ${parental}, '${parentId}', ${safetyWay}, ${registerWay}, '${certNum}', ${certifiable}, ${errCode}, '${secrecy}', " + | ||
| 19 | + "'${ipAddress}', ${port}, '${password}', ${PTZType}, ${status})") | ||
| 20 | + int add(DeviceChannel channel); | ||
| 21 | + | ||
| 22 | + @Update("UPDATE device_channel " + | ||
| 23 | + "SET name=#{name}, manufacture=#{manufacture}, model=#{model}, owner=#{owner}, civilCode=#{civilCode}, " + | ||
| 24 | + "block=#{block}, address=#{address}, parental=#{parental}, parentId=#{parentId}, safetyWay=#{safetyWay}, " + | ||
| 25 | + "registerWay=#{registerWay}, certNum=#{certNum}, certifiable=#{certifiable}, errCode=#{errCode}, secrecy=#{secrecy}, " + | ||
| 26 | + "ipAddress=#{ipAddress}, port=#{port}, password=#{password}, PTZType=#{PTZType}, status=#{status} " + | ||
| 27 | + "WHERE deviceId=#{deviceId} AND channelId=#{channelId}") | ||
| 28 | + int update(DeviceChannel channel); | ||
| 14 | 29 | ||
| 15 | - List<DeviceChannel> queryChannelsByDeviceId(String deviceId, String parentChannelId); | 30 | + @Select(value = {" <script>" + |
| 31 | + "SELECT * FROM ( "+ | ||
| 32 | + " SELECT * , (SELECT count(0) FROM device_channel WHERE parentId=dc.channelId) as subCount FROM device_channel dc " + | ||
| 33 | + " WHERE dc.deviceId=#{deviceId} " + | ||
| 34 | + " <if test=\"query != null\"> AND (dc.channelId LIKE '%${query}%' OR dc.name LIKE '%${query}%' OR dc.name LIKE '%${query}%')</if> " + | ||
| 35 | + " <if test=\"parentChannelId != null\"> AND dc.parentId=#{parentChannelId} </if> " + | ||
| 36 | + " <if test=\"online == true\" > AND dc.status=1</if>" + | ||
| 37 | + " <if test=\"online == false\" > AND dc.status=0</if>) dcr" + | ||
| 38 | + " WHERE 1=1 " + | ||
| 39 | + " <if test=\"hasSubChannel == true\" > AND subCount >0</if>" + | ||
| 40 | + " <if test=\"hasSubChannel == false\" > AND subCount=0</if>" + | ||
| 41 | + " </script>"}) | ||
| 42 | + List<DeviceChannel> queryChannelsByDeviceId(String deviceId, String parentChannelId, String query, Boolean hasSubChannel, Boolean online); | ||
| 16 | 43 | ||
| 44 | + @Select("SELECT * FROM device_channel WHERE deviceId=#{deviceId} AND channelId=#{channelId}") | ||
| 17 | DeviceChannel queryChannel(String deviceId, String channelId); | 45 | DeviceChannel queryChannel(String deviceId, String channelId); |
| 18 | 46 | ||
| 47 | + @Delete("DELETE FROM device_channel WHERE deviceId=#{deviceId}") | ||
| 19 | int cleanChannelsByDeviceId(String deviceId); | 48 | int cleanChannelsByDeviceId(String deviceId); |
| 49 | + | ||
| 20 | } | 50 | } |
src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMapper.java
| 1 | package com.genersoft.iot.vmp.storager.dao; | 1 | package com.genersoft.iot.vmp.storager.dao; |
| 2 | 2 | ||
| 3 | import com.genersoft.iot.vmp.gb28181.bean.Device; | 3 | import com.genersoft.iot.vmp.gb28181.bean.Device; |
| 4 | -import org.apache.ibatis.annotations.Insert; | ||
| 5 | -import org.apache.ibatis.annotations.Mapper; | ||
| 6 | -import org.apache.ibatis.annotations.Select; | 4 | +import org.apache.ibatis.annotations.*; |
| 5 | +import org.springframework.stereotype.Repository; | ||
| 7 | 6 | ||
| 8 | import java.util.List; | 7 | import java.util.List; |
| 9 | 8 | ||
| 9 | +/** | ||
| 10 | + * 用于存储设备信息 | ||
| 11 | + */ | ||
| 10 | @Mapper | 12 | @Mapper |
| 13 | +@Repository | ||
| 11 | public interface DeviceMapper { | 14 | public interface DeviceMapper { |
| 12 | 15 | ||
| 13 | @Select("SELECT * FROM device WHERE deviceId = #{deviceId}") | 16 | @Select("SELECT * FROM device WHERE deviceId = #{deviceId}") |
| 14 | Device getDeviceByDeviceId(String deviceId); | 17 | Device getDeviceByDeviceId(String deviceId); |
| 15 | 18 | ||
| 16 | - @Insert("SELECT * FROM device WHERE deviceId = #{deviceId}") | 19 | + @Insert("INSERT INTO device (" + |
| 20 | + "deviceId, " + | ||
| 21 | + "name, " + | ||
| 22 | + "manufacturer, " + | ||
| 23 | + "model, " + | ||
| 24 | + "firmware, " + | ||
| 25 | + "transport," + | ||
| 26 | + "streamMode," + | ||
| 27 | + "ip," + | ||
| 28 | + "port," + | ||
| 29 | + "hostAddress," + | ||
| 30 | + "online" + | ||
| 31 | + ") VALUES (" + | ||
| 32 | + "#{deviceId}," + | ||
| 33 | + "#{name}," + | ||
| 34 | + "#{manufacturer}," + | ||
| 35 | + "#{model}," + | ||
| 36 | + "#{firmware}," + | ||
| 37 | + "#{transport}," + | ||
| 38 | + "#{streamMode}," + | ||
| 39 | + "#{ip}," + | ||
| 40 | + "#{port}," + | ||
| 41 | + "#{hostAddress}," + | ||
| 42 | + "#{online}" + | ||
| 43 | + ")") | ||
| 17 | int add(Device device); | 44 | int add(Device device); |
| 18 | 45 | ||
| 46 | + | ||
| 47 | + @Update("UPDATE device " + | ||
| 48 | + "SET name=#{name}, " + | ||
| 49 | + "manufacturer=#{manufacturer}," + | ||
| 50 | + "model=#{model}," + | ||
| 51 | + "firmware=#{firmware}, " + | ||
| 52 | + "transport=#{transport}," + | ||
| 53 | + "streamMode=#{streamMode}, " + | ||
| 54 | + "ip=#{ip}, " + | ||
| 55 | + "port=#{port}, " + | ||
| 56 | + "hostAddress=#{hostAddress}, " + | ||
| 57 | + "online=#{online} " + | ||
| 58 | + "WHERE deviceId=#{deviceId}") | ||
| 19 | int update(Device device); | 59 | int update(Device device); |
| 20 | 60 | ||
| 61 | + @Select("SELECT *, (SELECT count(0) FROM device_channel WHERE deviceId=de.deviceId) as channelCount FROM device de") | ||
| 21 | List<Device> getDevices(); | 62 | List<Device> getDevices(); |
| 22 | 63 | ||
| 64 | + @Delete("DELETE FROM device WHERE deviceId=#{deviceId}") | ||
| 23 | int del(String deviceId); | 65 | int del(String deviceId); |
| 24 | } | 66 | } |
src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java
| @@ -6,7 +6,6 @@ import com.genersoft.iot.vmp.conf.MediaServerConfig; | @@ -6,7 +6,6 @@ import com.genersoft.iot.vmp.conf.MediaServerConfig; | ||
| 6 | import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; | 6 | import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; |
| 7 | import com.genersoft.iot.vmp.storager.IRedisCatchStorage; | 7 | import com.genersoft.iot.vmp.storager.IRedisCatchStorage; |
| 8 | import com.genersoft.iot.vmp.storager.dao.DeviceChannelMapper; | 8 | import com.genersoft.iot.vmp.storager.dao.DeviceChannelMapper; |
| 9 | -import com.genersoft.iot.vmp.storager.dao.DeviceMapper; | ||
| 10 | import com.genersoft.iot.vmp.utils.redis.RedisUtil; | 9 | import com.genersoft.iot.vmp.utils.redis.RedisUtil; |
| 11 | import org.springframework.beans.factory.annotation.Autowired; | 10 | import org.springframework.beans.factory.annotation.Autowired; |
| 12 | import org.springframework.stereotype.Component; | 11 | import org.springframework.stereotype.Component; |
| @@ -23,9 +22,6 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage { | @@ -23,9 +22,6 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage { | ||
| 23 | private RedisUtil redis; | 22 | private RedisUtil redis; |
| 24 | 23 | ||
| 25 | @Autowired | 24 | @Autowired |
| 26 | - private DeviceMapper deviceMapper; | ||
| 27 | - | ||
| 28 | - @Autowired | ||
| 29 | private DeviceChannelMapper deviceChannelMapper; | 25 | private DeviceChannelMapper deviceChannelMapper; |
| 30 | 26 | ||
| 31 | 27 |
src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java
| @@ -2,19 +2,17 @@ package com.genersoft.iot.vmp.storager.impl; | @@ -2,19 +2,17 @@ package com.genersoft.iot.vmp.storager.impl; | ||
| 2 | 2 | ||
| 3 | import java.util.*; | 3 | import java.util.*; |
| 4 | 4 | ||
| 5 | -import com.genersoft.iot.vmp.common.PageResult; | ||
| 6 | -import com.genersoft.iot.vmp.common.StreamInfo; | ||
| 7 | -import com.genersoft.iot.vmp.conf.MediaServerConfig; | ||
| 8 | import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; | 5 | import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; |
| 9 | import com.genersoft.iot.vmp.storager.dao.DeviceChannelMapper; | 6 | import com.genersoft.iot.vmp.storager.dao.DeviceChannelMapper; |
| 10 | import com.genersoft.iot.vmp.storager.dao.DeviceMapper; | 7 | import com.genersoft.iot.vmp.storager.dao.DeviceMapper; |
| 8 | +import com.github.pagehelper.PageHelper; | ||
| 9 | +import com.github.pagehelper.PageInfo; | ||
| 10 | +import io.swagger.models.auth.In; | ||
| 11 | import org.springframework.beans.factory.annotation.Autowired; | 11 | import org.springframework.beans.factory.annotation.Autowired; |
| 12 | import org.springframework.stereotype.Component; | 12 | import org.springframework.stereotype.Component; |
| 13 | 13 | ||
| 14 | -import com.genersoft.iot.vmp.common.VideoManagerConstants; | ||
| 15 | import com.genersoft.iot.vmp.gb28181.bean.Device; | 14 | import com.genersoft.iot.vmp.gb28181.bean.Device; |
| 16 | import com.genersoft.iot.vmp.storager.IVideoManagerStorager; | 15 | import com.genersoft.iot.vmp.storager.IVideoManagerStorager; |
| 17 | -import com.genersoft.iot.vmp.utils.redis.RedisUtil; | ||
| 18 | import org.springframework.util.StringUtils; | 16 | import org.springframework.util.StringUtils; |
| 19 | 17 | ||
| 20 | /** | 18 | /** |
| @@ -50,7 +48,7 @@ public class VideoManagerStoragerImpl implements IVideoManagerStorager { | @@ -50,7 +48,7 @@ public class VideoManagerStoragerImpl implements IVideoManagerStorager { | ||
| 50 | * @return true:创建成功 false:创建失败 | 48 | * @return true:创建成功 false:创建失败 |
| 51 | */ | 49 | */ |
| 52 | @Override | 50 | @Override |
| 53 | - public boolean create(Device device) { | 51 | + public synchronized boolean create(Device device) { |
| 54 | return deviceMapper.add(device) > 0; | 52 | return deviceMapper.add(device) > 0; |
| 55 | } | 53 | } |
| 56 | 54 | ||
| @@ -63,69 +61,26 @@ public class VideoManagerStoragerImpl implements IVideoManagerStorager { | @@ -63,69 +61,26 @@ public class VideoManagerStoragerImpl implements IVideoManagerStorager { | ||
| 63 | * @return true:更新成功 false:更新失败 | 61 | * @return true:更新成功 false:更新失败 |
| 64 | */ | 62 | */ |
| 65 | @Override | 63 | @Override |
| 66 | - public boolean updateDevice(Device device) { | ||
| 67 | -// if (deviceMap.get(device.getDeviceId()) == null) { | ||
| 68 | -// deviceMap.put(device.getDeviceId(), new HashMap<String, HashSet<String>>()); | ||
| 69 | -// } | ||
| 70 | - // 更新device中的通道数量 | ||
| 71 | -// device.setChannelCount(deviceMap.get(device.getDeviceId()).size()); | ||
| 72 | - int result = deviceMapper.update(device); | ||
| 73 | - // 存储device | ||
| 74 | - return result > 0; | ||
| 75 | - | 64 | + public synchronized boolean updateDevice(Device device) { |
| 65 | + Device deviceByDeviceId = deviceMapper.getDeviceByDeviceId(device.getDeviceId()); | ||
| 66 | + if (deviceByDeviceId == null) { | ||
| 67 | + return deviceMapper.add(device) > 0; | ||
| 68 | + }else { | ||
| 69 | + return deviceMapper.update(device) > 0; | ||
| 70 | + } | ||
| 76 | 71 | ||
| 77 | } | 72 | } |
| 78 | 73 | ||
| 79 | @Override | 74 | @Override |
| 80 | - public void updateChannel(String deviceId, DeviceChannel channel) { | 75 | + public synchronized void updateChannel(String deviceId, DeviceChannel channel) { |
| 81 | String channelId = channel.getChannelId(); | 76 | String channelId = channel.getChannelId(); |
| 82 | channel.setDeviceId(deviceId); | 77 | channel.setDeviceId(deviceId); |
| 83 | - deviceChannelMapper.update(channel); | ||
| 84 | - | ||
| 85 | -// HashMap<String, HashSet<String>> channelMap = deviceMap.get(deviceId); | ||
| 86 | -// if (channelMap == null) return; | ||
| 87 | -// // 作为父设备, 确定自己的子节点数 | ||
| 88 | -// if (channelMap.get(channelId) == null) { | ||
| 89 | -// channelMap.put(channelId, new HashSet<String>()); | ||
| 90 | -// }else if (channelMap.get(channelId).size() > 0) { | ||
| 91 | -// channel.setSubCount(channelMap.get(channelId).size()); | ||
| 92 | -// } | ||
| 93 | -// | ||
| 94 | -// // 存储通道 | ||
| 95 | -// redis.set(VideoManagerConstants.CACHEKEY_PREFIX + deviceId + | ||
| 96 | -// "_" + channel.getChannelId() + | ||
| 97 | -// "_" + (channel.getStatus() == 1 ? "on":"off") + | ||
| 98 | -// "_" + (channelMap.get(channelId).size() > 0)+ | ||
| 99 | -// "_" + (StringUtils.isEmpty(channel.getParentId())?null:channel.getParentId()), | ||
| 100 | -// channel); | ||
| 101 | -// // 更新device中的通道数量 | ||
| 102 | -// Device device = (Device)redis.get(VideoManagerConstants.DEVICE_PREFIX+deviceId); | ||
| 103 | -// device.setChannelCount(deviceMap.get(deviceId).size()); | ||
| 104 | -// redis.set(VideoManagerConstants.DEVICE_PREFIX+device.getDeviceId(), device); | ||
| 105 | -// | ||
| 106 | -// | ||
| 107 | -// // 如果有父设备,更新父设备内子节点数 | ||
| 108 | -// String parentId = channel.getParentId(); | ||
| 109 | -// if (!StringUtils.isEmpty(parentId) && !parentId.equals(deviceId)) { | ||
| 110 | -// | ||
| 111 | -// if (channelMap.get(parentId) == null) { | ||
| 112 | -// channelMap.put(parentId, new HashSet<String>()); | ||
| 113 | -// } | ||
| 114 | -// channelMap.get(parentId).add(channelId); | ||
| 115 | -// | ||
| 116 | -// DeviceChannel deviceChannel = queryChannel(deviceId, parentId); | ||
| 117 | -// if (deviceChannel != null) { | ||
| 118 | -// deviceChannel.setSubCount(channelMap.get(parentId).size()); | ||
| 119 | -// redis.set(VideoManagerConstants.CACHEKEY_PREFIX + deviceId + | ||
| 120 | -// "_" + deviceChannel.getChannelId() + | ||
| 121 | -// "_" + (deviceChannel.getStatus() == 1 ? "on":"off") + | ||
| 122 | -// "_" + (channelMap.get(deviceChannel.getChannelId()).size() > 0)+ | ||
| 123 | -// "_" + (StringUtils.isEmpty(deviceChannel.getParentId())?null:deviceChannel.getParentId()), | ||
| 124 | -// deviceChannel); | ||
| 125 | -// | ||
| 126 | -// } | ||
| 127 | -// } | ||
| 128 | - | 78 | + DeviceChannel deviceChannel = deviceChannelMapper.queryChannel(deviceId, channelId); |
| 79 | + if (deviceChannel == null) { | ||
| 80 | + deviceChannelMapper.add(channel); | ||
| 81 | + }else { | ||
| 82 | + deviceChannelMapper.update(channel); | ||
| 83 | + } | ||
| 129 | } | 84 | } |
| 130 | 85 | ||
| 131 | /** | 86 | /** |
| @@ -140,179 +95,45 @@ public class VideoManagerStoragerImpl implements IVideoManagerStorager { | @@ -140,179 +95,45 @@ public class VideoManagerStoragerImpl implements IVideoManagerStorager { | ||
| 140 | } | 95 | } |
| 141 | 96 | ||
| 142 | @Override | 97 | @Override |
| 143 | - public PageResult queryChannelsByDeviceId(String deviceId, String query, Boolean hasSubChannel, String online, int page, int count) { | 98 | + public PageInfo queryChannelsByDeviceId(String deviceId, String query, Boolean hasSubChannel, Boolean online, int page, int count) { |
| 144 | // 获取到所有正在播放的流 | 99 | // 获取到所有正在播放的流 |
| 145 | - List<DeviceChannel> result = new ArrayList<>(); | ||
| 146 | - PageResult pageResult = new PageResult<DeviceChannel>(); | ||
| 147 | - | ||
| 148 | - deviceChannelMapper.queryChannelsByDeviceId(deviceId); | ||
| 149 | -// String queryContent = "*"; | ||
| 150 | -// if (!StringUtils.isEmpty(query)) queryContent = String.format("*%S*",query); | ||
| 151 | -// String queryHasSubChannel = "*"; | ||
| 152 | -// if (hasSubChannel != null) queryHasSubChannel = hasSubChannel?"true":"false"; | ||
| 153 | -// String queryOnline = "*"; | ||
| 154 | -// if (!StringUtils.isEmpty(online)) queryOnline = online; | ||
| 155 | -// String queryStr = VideoManagerConstants.CACHEKEY_PREFIX + deviceId + | ||
| 156 | -// "_" + queryContent + // 搜索编号和名称 | ||
| 157 | -// "_" + queryOnline + // 搜索是否在线 | ||
| 158 | -// "_" + queryHasSubChannel + // 搜索是否含有子节点 | ||
| 159 | -// "_" + "*"; | ||
| 160 | -// List<Object> deviceChannelList = redis.scan(queryStr); | ||
| 161 | -// //对查询结果排序,避免出现通道排列顺序乱序的情况 | ||
| 162 | -// Collections.sort(deviceChannelList,new Comparator<Object>(){ | ||
| 163 | -// @Override | ||
| 164 | -// public int compare(Object o1, Object o2) { | ||
| 165 | -// return o1.toString().compareToIgnoreCase(o2.toString()); | ||
| 166 | -// } | ||
| 167 | -// }); | ||
| 168 | -// pageResult.setPage(page); | ||
| 169 | -// pageResult.setCount(count); | ||
| 170 | -// pageResult.setTotal(deviceChannelList.size()); | ||
| 171 | -// int maxCount = (page + 1 ) * count; | ||
| 172 | -// if (deviceChannelList != null && deviceChannelList.size() > 0 ) { | ||
| 173 | -// for (int i = page * count; i < (pageResult.getTotal() > maxCount ? maxCount : pageResult.getTotal() ); i++) { | ||
| 174 | -// DeviceChannel deviceChannel = (DeviceChannel)redis.get((String)deviceChannelList.get(i)); | ||
| 175 | -// StreamInfo streamInfo = stringStreamInfoMap.get(deviceId + "_" + deviceChannel.getChannelId()); | ||
| 176 | -// deviceChannel.setPlay(streamInfo != null); | ||
| 177 | -// if (streamInfo != null) deviceChannel.setStreamId(streamInfo.getStreamId()); | ||
| 178 | -// result.add(deviceChannel); | ||
| 179 | -// } | ||
| 180 | -// pageResult.setData(result); | ||
| 181 | -// } | ||
| 182 | - | ||
| 183 | - return pageResult; | 100 | + PageHelper.startPage(page, count); |
| 101 | + List<DeviceChannel> all = deviceChannelMapper.queryChannelsByDeviceId(deviceId, null, query, hasSubChannel, online); | ||
| 102 | + return new PageInfo<>(all); | ||
| 184 | } | 103 | } |
| 185 | 104 | ||
| 186 | 105 | ||
| 187 | 106 | ||
| 188 | @Override | 107 | @Override |
| 189 | public List<DeviceChannel> queryChannelsByDeviceId(String deviceId) { | 108 | public List<DeviceChannel> queryChannelsByDeviceId(String deviceId) { |
| 190 | -// List<DeviceChannel> result = new ArrayList<>(); | ||
| 191 | -//// List<Object> deviceChannelList = redis.keys(VideoManagerConstants.CACHEKEY_PREFIX + deviceId + "_" + "*"); | ||
| 192 | -// List<Object> deviceChannelList = redis.scan(VideoManagerConstants.CACHEKEY_PREFIX + deviceId + "_" + "*"); | ||
| 193 | -// | ||
| 194 | -// if (deviceChannelList != null && deviceChannelList.size() > 0 ) { | ||
| 195 | -// for (int i = 0; i < deviceChannelList.size(); i++) { | ||
| 196 | -// result.add((DeviceChannel)redis.get((String) deviceChannelList.get(i))); | ||
| 197 | -// } | ||
| 198 | -// } | ||
| 199 | - return deviceChannelMapper.queryChannelsByDeviceId(deviceId); | 109 | + return deviceChannelMapper.queryChannelsByDeviceId(deviceId, null,null, null, null); |
| 200 | } | 110 | } |
| 201 | 111 | ||
| 202 | @Override | 112 | @Override |
| 203 | - public PageResult querySubChannels(String deviceId, String parentChannelId, String query, Boolean hasSubChannel, String online, int page, int count) { | ||
| 204 | - | ||
| 205 | - deviceChannelMapper.queryChannelsByDeviceId(deviceId, parentChannelId); | ||
| 206 | - | ||
| 207 | -// List<DeviceChannel> allDeviceChannels = new ArrayList<>(); | ||
| 208 | -// String queryContent = "*"; | ||
| 209 | -// if (!StringUtils.isEmpty(query)) queryContent = String.format("*%S*",query); | ||
| 210 | -// String queryHasSubChannel = "*"; | ||
| 211 | -// if (hasSubChannel != null) queryHasSubChannel = hasSubChannel?"true":"false"; | ||
| 212 | -// String queryOnline = "*"; | ||
| 213 | -// if (!StringUtils.isEmpty(online)) queryOnline = online; | ||
| 214 | -// String queryStr = VideoManagerConstants.CACHEKEY_PREFIX + deviceId + | ||
| 215 | -// "_" + queryContent + // 搜索编号和名称 | ||
| 216 | -// "_" + queryOnline + // 搜索是否在线 | ||
| 217 | -// "_" + queryHasSubChannel + // 搜索是否含有子节点 | ||
| 218 | -// "_" + parentChannelId; | ||
| 219 | -// | ||
| 220 | -//// List<Object> deviceChannelList = redis.keys(queryStr); | ||
| 221 | -// List<Object> deviceChannelList = redis.scan(queryStr); | ||
| 222 | -// | ||
| 223 | -// if (deviceChannelList != null && deviceChannelList.size() > 0 ) { | ||
| 224 | -// for (int i = 0; i < deviceChannelList.size(); i++) { | ||
| 225 | -// DeviceChannel deviceChannel = (DeviceChannel)redis.get((String)deviceChannelList.get(i)); | ||
| 226 | -// if (deviceChannel.getParentId() != null && deviceChannel.getParentId().equals(parentChannelId)) { | ||
| 227 | -// allDeviceChannels.add(deviceChannel); | ||
| 228 | -// } | ||
| 229 | -// } | ||
| 230 | -// } | ||
| 231 | -// int maxCount = (page + 1 ) * count; | ||
| 232 | - PageResult pageResult = new PageResult<DeviceChannel>(); | ||
| 233 | -// pageResult.setPage(page); | ||
| 234 | -// pageResult.setCount(count); | ||
| 235 | -// pageResult.setTotal(allDeviceChannels.size()); | ||
| 236 | -// | ||
| 237 | -// if (allDeviceChannels.size() > 0) { | ||
| 238 | -// pageResult.setData(allDeviceChannels.subList( | ||
| 239 | -// page * count, pageResult.getTotal() > maxCount ? maxCount : pageResult.getTotal() | ||
| 240 | -// )); | ||
| 241 | -// } | ||
| 242 | - return pageResult; | ||
| 243 | - } | ||
| 244 | - | ||
| 245 | - public List<DeviceChannel> querySubChannels(String deviceId, String parentChannelId) { | ||
| 246 | - List<DeviceChannel> allDeviceChannels = new ArrayList<>(); | ||
| 247 | -// List<Object> deviceChannelList = redis.keys(VideoManagerConstants.CACHEKEY_PREFIX + deviceId + "_" + "*"); | ||
| 248 | -// List<Object> deviceChannelList = redis.scan(VideoManagerConstants.CACHEKEY_PREFIX + deviceId + "_" + "*"); | ||
| 249 | -// | ||
| 250 | -// if (deviceChannelList != null && deviceChannelList.size() > 0 ) { | ||
| 251 | -// for (int i = 0; i < deviceChannelList.size(); i++) { | ||
| 252 | -// DeviceChannel deviceChannel = (DeviceChannel)redis.get((String)deviceChannelList.get(i)); | ||
| 253 | -// if (deviceChannel.getParentId() != null && deviceChannel.getParentId().equals(parentChannelId)) { | ||
| 254 | -// allDeviceChannels.add(deviceChannel); | ||
| 255 | -// } | ||
| 256 | -// } | ||
| 257 | -// } | ||
| 258 | - | ||
| 259 | - return allDeviceChannels; | 113 | + public PageInfo<DeviceChannel> querySubChannels(String deviceId, String parentChannelId, String query, Boolean hasSubChannel, String online, int page, int count) { |
| 114 | + PageHelper.startPage(page, count); | ||
| 115 | + List<DeviceChannel> all = deviceChannelMapper.queryChannelsByDeviceId(deviceId, parentChannelId, null, null, null); | ||
| 116 | + return new PageInfo<>(all); | ||
| 260 | } | 117 | } |
| 261 | 118 | ||
| 262 | @Override | 119 | @Override |
| 263 | public DeviceChannel queryChannel(String deviceId, String channelId) { | 120 | public DeviceChannel queryChannel(String deviceId, String channelId) { |
| 264 | - DeviceChannel deviceChannel = null; | ||
| 265 | return deviceChannelMapper.queryChannel(deviceId, channelId); | 121 | return deviceChannelMapper.queryChannel(deviceId, channelId); |
| 266 | -//// List<Object> deviceChannelList = redis.keys(VideoManagerConstants.CACHEKEY_PREFIX + deviceId + | ||
| 267 | -// List<Object> deviceChannelList = redis.scan(VideoManagerConstants.CACHEKEY_PREFIX + deviceId + | ||
| 268 | -// "_" + channelId + "*"); | ||
| 269 | -// if (deviceChannelList != null && deviceChannelList.size() > 0 ) { | ||
| 270 | -// deviceChannel = (DeviceChannel)redis.get((String)deviceChannelList.get(0)); | ||
| 271 | -// } | ||
| 272 | -// return deviceChannel; | ||
| 273 | } | 122 | } |
| 274 | 123 | ||
| 275 | 124 | ||
| 276 | /** | 125 | /** |
| 277 | * 获取多个设备 | 126 | * 获取多个设备 |
| 278 | * | 127 | * |
| 279 | - * @param deviceIds 设备ID数组 | ||
| 280 | - * @return List<Device> 设备对象数组 | 128 | + * @param page 当前页数 |
| 129 | + * @param count 每页数量 | ||
| 130 | + * @return PageInfo<Device> 分页设备对象数组 | ||
| 281 | */ | 131 | */ |
| 282 | @Override | 132 | @Override |
| 283 | - public PageResult<Device> queryVideoDeviceList(String[] deviceIds, int page, int count) { | ||
| 284 | - List<Device> devices = new ArrayList<>(); | ||
| 285 | - PageResult pageResult = new PageResult<Device>(); | ||
| 286 | -// pageResult.setPage(page); | ||
| 287 | -// pageResult.setCount(count); | ||
| 288 | -// Device device = null; | ||
| 289 | -// | ||
| 290 | -// if (deviceIds == null || deviceIds.length == 0) { | ||
| 291 | -// | ||
| 292 | -//// List<Object> deviceIdList = redis.keys(VideoManagerConstants.DEVICE_PREFIX+"*"); | ||
| 293 | -// List<Object> deviceIdList = redis.scan(VideoManagerConstants.DEVICE_PREFIX+"*"); | ||
| 294 | -// pageResult.setTotal(deviceIdList.size()); | ||
| 295 | -// int maxCount = (page + 1)* count; | ||
| 296 | -// for (int i = page * count; i < (pageResult.getTotal() > maxCount ? maxCount : pageResult.getTotal() ); i++) { | ||
| 297 | -// // devices.add((Device)redis.get((String)deviceIdList.get(i))); | ||
| 298 | -// device =(Device)redis.get((String)deviceIdList.get(i)); | ||
| 299 | -// if (redis.scan(VideoManagerConstants.KEEPLIVEKEY_PREFIX+device.getDeviceId()).size() == 0){ | ||
| 300 | -// // outline(device.getDeviceId()); | ||
| 301 | -// } | ||
| 302 | -// devices.add(device); | ||
| 303 | -// } | ||
| 304 | -// } else { | ||
| 305 | -// for (int i = 0; i < deviceIds.length; i++) { | ||
| 306 | -// // devices.add((Device)redis.get(VideoManagerConstants.DEVICE_PREFIX+deviceIds[i])); | ||
| 307 | -// device = (Device)redis.get(VideoManagerConstants.DEVICE_PREFIX+deviceIds[i]); | ||
| 308 | -// if (redis.scan(VideoManagerConstants.KEEPLIVEKEY_PREFIX+device.getDeviceId()).size() == 0){ | ||
| 309 | -// // outline(device.getDeviceId()); | ||
| 310 | -// } | ||
| 311 | -// devices.add(device); | ||
| 312 | -// } | ||
| 313 | -// } | ||
| 314 | -// pageResult.setData(devices); | ||
| 315 | - return pageResult; | 133 | + public PageInfo<Device> queryVideoDeviceList(int page, int count) { |
| 134 | + PageHelper.startPage(page, count); | ||
| 135 | + List<Device> all = deviceMapper.getDevices(); | ||
| 136 | + return new PageInfo<>(all); | ||
| 316 | } | 137 | } |
| 317 | 138 | ||
| 318 | /** | 139 | /** |
| @@ -323,26 +144,6 @@ public class VideoManagerStoragerImpl implements IVideoManagerStorager { | @@ -323,26 +144,6 @@ public class VideoManagerStoragerImpl implements IVideoManagerStorager { | ||
| 323 | @Override | 144 | @Override |
| 324 | public List<Device> queryVideoDeviceList() { | 145 | public List<Device> queryVideoDeviceList() { |
| 325 | 146 | ||
| 326 | -// if (deviceIds == null || deviceIds.length == 0) { | ||
| 327 | -//// List<Object> deviceIdList = redis.keys(VideoManagerConstants.DEVICE_PREFIX+"*"); | ||
| 328 | -// List<Object> deviceIdList = redis.scan(VideoManagerConstants.DEVICE_PREFIX+"*"); | ||
| 329 | -// for (int i = 0; i < deviceIdList.size(); i++) { | ||
| 330 | -// device =(Device)redis.get((String)deviceIdList.get(i)); | ||
| 331 | -// if (redis.scan(VideoManagerConstants.KEEPLIVEKEY_PREFIX+device.getDeviceId()).size() == 0){ | ||
| 332 | -// outline(device.getDeviceId()); | ||
| 333 | -// } | ||
| 334 | -// devices.add(device); | ||
| 335 | -// } | ||
| 336 | -// } else { | ||
| 337 | -// for (int i = 0; i < deviceIds.length; i++) { | ||
| 338 | -// device = (Device)redis.get(VideoManagerConstants.DEVICE_PREFIX+deviceIds[i]); | ||
| 339 | -// if (redis.scan(VideoManagerConstants.KEEPLIVEKEY_PREFIX+device.getDeviceId()).size() == 0){ | ||
| 340 | -// outline(device.getDeviceId()); | ||
| 341 | -// } | ||
| 342 | -// devices.add(device); | ||
| 343 | -// } | ||
| 344 | -// } | ||
| 345 | - | ||
| 346 | List<Device> deviceList = deviceMapper.getDevices(); | 147 | List<Device> deviceList = deviceMapper.getDevices(); |
| 347 | return deviceList; | 148 | return deviceList; |
| 348 | } | 149 | } |
| @@ -367,9 +168,13 @@ public class VideoManagerStoragerImpl implements IVideoManagerStorager { | @@ -367,9 +168,13 @@ public class VideoManagerStoragerImpl implements IVideoManagerStorager { | ||
| 367 | * @return true:更新成功 false:更新失败 | 168 | * @return true:更新成功 false:更新失败 |
| 368 | */ | 169 | */ |
| 369 | @Override | 170 | @Override |
| 370 | - public boolean online(String deviceId) { | 171 | + public synchronized boolean online(String deviceId) { |
| 371 | Device device = deviceMapper.getDeviceByDeviceId(deviceId); | 172 | Device device = deviceMapper.getDeviceByDeviceId(deviceId); |
| 372 | device.setOnline(1); | 173 | device.setOnline(1); |
| 174 | + System.out.println("更新设备在线"); | ||
| 175 | + if (device == null) { | ||
| 176 | + return false; | ||
| 177 | + } | ||
| 373 | return deviceMapper.update(device) > 0; | 178 | return deviceMapper.update(device) > 0; |
| 374 | } | 179 | } |
| 375 | 180 | ||
| @@ -380,14 +185,10 @@ public class VideoManagerStoragerImpl implements IVideoManagerStorager { | @@ -380,14 +185,10 @@ public class VideoManagerStoragerImpl implements IVideoManagerStorager { | ||
| 380 | * @return true:更新成功 false:更新失败 | 185 | * @return true:更新成功 false:更新失败 |
| 381 | */ | 186 | */ |
| 382 | @Override | 187 | @Override |
| 383 | - public boolean outline(String deviceId) { | ||
| 384 | -// Device device = (Device)redis.get(VideoManagerConstants.DEVICE_PREFIX+deviceId); | ||
| 385 | -// if (device == null) return false; | ||
| 386 | -// device.setOnline(0); | ||
| 387 | -// return redis.set(VideoManagerConstants.DEVICE_PREFIX+device.getDeviceId(), device); | ||
| 388 | - | 188 | + public synchronized boolean outline(String deviceId) { |
| 389 | Device device = deviceMapper.getDeviceByDeviceId(deviceId); | 189 | Device device = deviceMapper.getDeviceByDeviceId(deviceId); |
| 390 | device.setOnline(0); | 190 | device.setOnline(0); |
| 191 | + System.out.println("更新设备离线"); | ||
| 391 | return deviceMapper.update(device) > 0; | 192 | return deviceMapper.update(device) > 0; |
| 392 | } | 193 | } |
| 393 | 194 |
src/main/java/com/genersoft/iot/vmp/vmanager/device/DeviceController.java
| 1 | package com.genersoft.iot.vmp.vmanager.device; | 1 | package com.genersoft.iot.vmp.vmanager.device; |
| 2 | 2 | ||
| 3 | -import java.util.List; | ||
| 4 | - | ||
| 5 | -import com.genersoft.iot.vmp.common.PageResult; | ||
| 6 | import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; | 3 | import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; |
| 7 | import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage; | 4 | import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage; |
| 5 | +import com.github.pagehelper.PageInfo; | ||
| 8 | import org.slf4j.Logger; | 6 | import org.slf4j.Logger; |
| 9 | import org.slf4j.LoggerFactory; | 7 | import org.slf4j.LoggerFactory; |
| 10 | import org.springframework.beans.factory.annotation.Autowired; | 8 | import org.springframework.beans.factory.annotation.Autowired; |
| 11 | import org.springframework.http.HttpStatus; | 9 | import org.springframework.http.HttpStatus; |
| 12 | import org.springframework.http.ResponseEntity; | 10 | import org.springframework.http.ResponseEntity; |
| 11 | +import org.springframework.util.StringUtils; | ||
| 13 | import org.springframework.web.bind.annotation.*; | 12 | import org.springframework.web.bind.annotation.*; |
| 14 | import org.springframework.web.context.request.async.DeferredResult; | 13 | import org.springframework.web.context.request.async.DeferredResult; |
| 15 | 14 | ||
| @@ -53,13 +52,13 @@ public class DeviceController { | @@ -53,13 +52,13 @@ public class DeviceController { | ||
| 53 | } | 52 | } |
| 54 | 53 | ||
| 55 | @GetMapping("/devices") | 54 | @GetMapping("/devices") |
| 56 | - public PageResult<Device> devices(int page, int count){ | 55 | + public PageInfo<Device> devices(int page, int count){ |
| 57 | 56 | ||
| 58 | if (logger.isDebugEnabled()) { | 57 | if (logger.isDebugEnabled()) { |
| 59 | logger.debug("查询所有视频设备API调用"); | 58 | logger.debug("查询所有视频设备API调用"); |
| 60 | } | 59 | } |
| 61 | 60 | ||
| 62 | - return storager.queryVideoDeviceList(null, page, count); | 61 | + return storager.queryVideoDeviceList(page, count); |
| 63 | } | 62 | } |
| 64 | 63 | ||
| 65 | /** | 64 | /** |
| @@ -69,18 +68,33 @@ public class DeviceController { | @@ -69,18 +68,33 @@ public class DeviceController { | ||
| 69 | * @param count 每页条数 | 68 | * @param count 每页条数 |
| 70 | * @return 通道列表 | 69 | * @return 通道列表 |
| 71 | */ | 70 | */ |
| 71 | + /** | ||
| 72 | + * 分页查询通道数 | ||
| 73 | + * | ||
| 74 | + * @param deviceId 设备id | ||
| 75 | + * @param page 当前页 | ||
| 76 | + * @param count 每页条数 | ||
| 77 | + * @param query 查询内容 | ||
| 78 | + * @param online 是否在线 在线 true / 离线 false | ||
| 79 | + * @param channelType 设备 false/子目录 true | ||
| 80 | + * @return 通道列表 | ||
| 81 | + */ | ||
| 72 | @GetMapping("/devices/{deviceId}/channels") | 82 | @GetMapping("/devices/{deviceId}/channels") |
| 73 | - public ResponseEntity<PageResult> channels(@PathVariable String deviceId, | 83 | + public ResponseEntity<PageInfo> channels(@PathVariable String deviceId, |
| 74 | int page, int count, | 84 | int page, int count, |
| 75 | @RequestParam(required = false) String query, | 85 | @RequestParam(required = false) String query, |
| 76 | - @RequestParam(required = false) String online, | 86 | + @RequestParam(required = false) Boolean online, |
| 77 | @RequestParam(required = false) Boolean channelType | 87 | @RequestParam(required = false) Boolean channelType |
| 78 | ){ | 88 | ){ |
| 79 | 89 | ||
| 80 | if (logger.isDebugEnabled()) { | 90 | if (logger.isDebugEnabled()) { |
| 81 | logger.debug("查询所有视频设备API调用"); | 91 | logger.debug("查询所有视频设备API调用"); |
| 82 | } | 92 | } |
| 83 | - PageResult pageResult = storager.queryChannelsByDeviceId(deviceId, query, channelType, online, page, count); | 93 | + if (StringUtils.isEmpty(query)) { |
| 94 | + query = null; | ||
| 95 | + } | ||
| 96 | + | ||
| 97 | + PageInfo pageResult = storager.queryChannelsByDeviceId(deviceId, query, channelType, online, page, count); | ||
| 84 | return new ResponseEntity<>(pageResult,HttpStatus.OK); | 98 | return new ResponseEntity<>(pageResult,HttpStatus.OK); |
| 85 | } | 99 | } |
| 86 | 100 | ||
| @@ -141,7 +155,7 @@ public class DeviceController { | @@ -141,7 +155,7 @@ public class DeviceController { | ||
| 141 | * @return 子通道列表 | 155 | * @return 子通道列表 |
| 142 | */ | 156 | */ |
| 143 | @GetMapping("/subChannels/{deviceId}/{channelId}/channels") | 157 | @GetMapping("/subChannels/{deviceId}/{channelId}/channels") |
| 144 | - public ResponseEntity<PageResult> subChannels(@PathVariable String deviceId, | 158 | + public ResponseEntity<PageInfo> subChannels(@PathVariable String deviceId, |
| 145 | @PathVariable String channelId, | 159 | @PathVariable String channelId, |
| 146 | int page, | 160 | int page, |
| 147 | int count, | 161 | int count, |
| @@ -154,23 +168,23 @@ public class DeviceController { | @@ -154,23 +168,23 @@ public class DeviceController { | ||
| 154 | } | 168 | } |
| 155 | DeviceChannel deviceChannel = storager.queryChannel(deviceId,channelId); | 169 | DeviceChannel deviceChannel = storager.queryChannel(deviceId,channelId); |
| 156 | if (deviceChannel == null) { | 170 | if (deviceChannel == null) { |
| 157 | - PageResult<DeviceChannel> deviceChannelPageResult = new PageResult<>(); | 171 | + PageInfo<DeviceChannel> deviceChannelPageResult = new PageInfo<>(); |
| 158 | return new ResponseEntity<>(deviceChannelPageResult,HttpStatus.OK); | 172 | return new ResponseEntity<>(deviceChannelPageResult,HttpStatus.OK); |
| 159 | } | 173 | } |
| 160 | 174 | ||
| 161 | - PageResult pageResult = storager.querySubChannels(deviceId, channelId, query, channelType, online, page, count); | 175 | + PageInfo pageResult = storager.querySubChannels(deviceId, channelId, query, channelType, online, page, count); |
| 162 | return new ResponseEntity<>(pageResult,HttpStatus.OK); | 176 | return new ResponseEntity<>(pageResult,HttpStatus.OK); |
| 163 | } | 177 | } |
| 164 | 178 | ||
| 165 | @PostMapping("/channel/update/{deviceId}") | 179 | @PostMapping("/channel/update/{deviceId}") |
| 166 | - public ResponseEntity<PageResult> updateChannel(@PathVariable String deviceId,DeviceChannel channel){ | 180 | + public ResponseEntity<PageInfo> updateChannel(@PathVariable String deviceId,DeviceChannel channel){ |
| 167 | storager.updateChannel(deviceId, channel); | 181 | storager.updateChannel(deviceId, channel); |
| 168 | return new ResponseEntity<>(null,HttpStatus.OK); | 182 | return new ResponseEntity<>(null,HttpStatus.OK); |
| 169 | } | 183 | } |
| 170 | 184 | ||
| 171 | @GetMapping("/devices/{deviceId}/transport/{streamMode}") | 185 | @GetMapping("/devices/{deviceId}/transport/{streamMode}") |
| 172 | @PostMapping("/devices/{deviceId}/transport/{streamMode}") | 186 | @PostMapping("/devices/{deviceId}/transport/{streamMode}") |
| 173 | - public ResponseEntity<PageResult> updateTransport(@PathVariable String deviceId, @PathVariable String streamMode){ | 187 | + public ResponseEntity<PageInfo> updateTransport(@PathVariable String deviceId, @PathVariable String streamMode){ |
| 174 | Device device = storager.queryVideoDevice(deviceId); | 188 | Device device = storager.queryVideoDevice(deviceId); |
| 175 | device.setStreamMode(streamMode); | 189 | device.setStreamMode(streamMode); |
| 176 | storager.updateDevice(device); | 190 | storager.updateDevice(device); |
src/main/java/com/genersoft/iot/vmp/vmanager/device/entity/Device.java deleted
100644 → 0
| 1 | -package com.genersoft.iot.vmp.vmanager.device.entity; | ||
| 2 | - | ||
| 3 | -import java.util.List; | ||
| 4 | - | ||
| 5 | -import javax.persistence.Column; | ||
| 6 | -import javax.persistence.Id; | ||
| 7 | -import javax.persistence.Table; | ||
| 8 | -import javax.persistence.Transient; | ||
| 9 | -import javax.validation.constraints.Max; | ||
| 10 | -import javax.validation.constraints.NotNull; | ||
| 11 | -import javax.validation.constraints.Size; | ||
| 12 | - | ||
| 13 | -import io.swagger.annotations.ApiModel; | ||
| 14 | -import io.swagger.annotations.ApiModelProperty; | ||
| 15 | - | ||
| 16 | -/** | ||
| 17 | - * @Description:视频设备信息 | ||
| 18 | - * @author: songww | ||
| 19 | - * @date: 2020年5月8日 下午2:05:56 | ||
| 20 | - */ | ||
| 21 | -@ApiModel(value = "视频设备信息", description = "视频设备信息") | ||
| 22 | -@Table(name="VMP_VIDEODEVICES") | ||
| 23 | -public class Device { | ||
| 24 | - | ||
| 25 | - /** | ||
| 26 | - * 设备Id | ||
| 27 | - */ | ||
| 28 | - @ApiModelProperty("设备编号") | ||
| 29 | - @Id | ||
| 30 | - @Column(name="DEVICE_ID") | ||
| 31 | - @NotNull(message = "deviceId 不能为 null") | ||
| 32 | - @Size(min = 4, max = 32, message = "deviceId 必须大于 4 位并且小于 32 位") | ||
| 33 | - private String deviceId; | ||
| 34 | - | ||
| 35 | - /** | ||
| 36 | - * 设备名称 | ||
| 37 | - */ | ||
| 38 | - @ApiModelProperty("设备名称") | ||
| 39 | - @Column(name="DEVICE_NAME") | ||
| 40 | - @Size(max = 32, message = "deviceName 必须小于 32 位") | ||
| 41 | - private String deviceName; | ||
| 42 | - | ||
| 43 | - /** | ||
| 44 | - * 生产厂商 | ||
| 45 | - */ | ||
| 46 | - @ApiModelProperty("生产厂商") | ||
| 47 | - @Column(name="MANUFACTURER") | ||
| 48 | - @Size(max = 64, message = "manufacturer 必须小于 64 位") | ||
| 49 | - private String manufacturer; | ||
| 50 | - | ||
| 51 | - /** | ||
| 52 | - * 型号 | ||
| 53 | - */ | ||
| 54 | - @ApiModelProperty("型号") | ||
| 55 | - @Column(name="MODEL") | ||
| 56 | - @Size(max = 64, message = "manufacturer 必须小于 64 位") | ||
| 57 | - private String model; | ||
| 58 | - | ||
| 59 | - /** | ||
| 60 | - * 固件版本 | ||
| 61 | - */ | ||
| 62 | - @ApiModelProperty("固件版本") | ||
| 63 | - @Column(name="FIRMWARE") | ||
| 64 | - @Size(max = 64, message = "firmware 必须小于 64 位") | ||
| 65 | - private String firmware; | ||
| 66 | - | ||
| 67 | - /** | ||
| 68 | - * 通信协议 | ||
| 69 | - * GB28181 ONVIF | ||
| 70 | - */ | ||
| 71 | - @ApiModelProperty("通信协议") | ||
| 72 | - @Column(name="PROTOCOL") | ||
| 73 | - @NotNull(message = "protocol 不能为 null") | ||
| 74 | - @Size(max = 16, message = "protocol 必须小于 16 位") | ||
| 75 | - private String protocol; | ||
| 76 | - | ||
| 77 | - /** | ||
| 78 | - * SIP 传输协议 | ||
| 79 | - * UDP/TCP | ||
| 80 | - */ | ||
| 81 | - @ApiModelProperty("SIP 传输协议") | ||
| 82 | - @Column(name="TRANSPORT") | ||
| 83 | - @Size(min = 3,max = 3 ,message = "transport 必须为 3 位") | ||
| 84 | - private String transport; | ||
| 85 | - | ||
| 86 | - /** | ||
| 87 | - * 数据流传输模式 | ||
| 88 | - * UDP:udp传输 | ||
| 89 | - * TCP-ACTIVE:tcp主动模式 | ||
| 90 | - * TCP-PASSIVE:tcp被动模式 | ||
| 91 | - */ | ||
| 92 | - @ApiModelProperty("数据流传输模式") | ||
| 93 | - @Column(name="STREAM_MODE") | ||
| 94 | - @Size(max = 64, message = "streamMode 必须小于 16 位") | ||
| 95 | - private String streamMode; | ||
| 96 | - | ||
| 97 | - /** | ||
| 98 | - * IP地址 | ||
| 99 | - */ | ||
| 100 | - @ApiModelProperty("IP地址") | ||
| 101 | - @Column(name="IP") | ||
| 102 | - @Size(max = 15, message = "streamMode 必须小于 15 位") | ||
| 103 | - private String ip; | ||
| 104 | - | ||
| 105 | - /** | ||
| 106 | - * 端口号 | ||
| 107 | - */ | ||
| 108 | - @ApiModelProperty("端口号") | ||
| 109 | - @Column(name="PORT") | ||
| 110 | - @Max(value = 65535,message = "port 最大值为 65535") | ||
| 111 | - private Integer port; | ||
| 112 | - | ||
| 113 | - /** | ||
| 114 | - * 在线状态 1在线, 0离线 | ||
| 115 | - */ | ||
| 116 | - @ApiModelProperty("在线状态") | ||
| 117 | - @Size(min = 1,max = 1 ,message = "online 必须为 1 位") | ||
| 118 | - @Column(name="ONLINE") | ||
| 119 | - private String online; | ||
| 120 | - | ||
| 121 | - /** | ||
| 122 | - * 通道数量 | ||
| 123 | - */ | ||
| 124 | - @ApiModelProperty("通道数量") | ||
| 125 | - @Column(name="CHANNEL_SUM") | ||
| 126 | - @Max(value = 1000000000,message = "channelSum 最大值为 1000000000") | ||
| 127 | - private Integer channelSum; | ||
| 128 | - | ||
| 129 | - @Override | ||
| 130 | - public String toString() { | ||
| 131 | - return "Device{" + | ||
| 132 | - "deviceId='" + deviceId + '\'' + | ||
| 133 | - ", deviceName='" + deviceName + '\'' + | ||
| 134 | - ", manufacturer='" + manufacturer + '\'' + | ||
| 135 | - ", model='" + model + '\'' + | ||
| 136 | - ", firmware='" + firmware + '\'' + | ||
| 137 | - ", protocol='" + protocol + '\'' + | ||
| 138 | - ", transport='" + transport + '\'' + | ||
| 139 | - ", streamMode='" + streamMode + '\'' + | ||
| 140 | - ", ip='" + ip + '\'' + | ||
| 141 | - ", port=" + port + | ||
| 142 | - ", online='" + online + '\'' + | ||
| 143 | - ", channelSum=" + channelSum + | ||
| 144 | - ", createTime='" + createTime + '\'' + | ||
| 145 | - ", registerTime='" + registerTime + '\'' + | ||
| 146 | - ", heartbeatTime='" + heartbeatTime + '\'' + | ||
| 147 | - ", updateTime='" + updateTime + '\'' + | ||
| 148 | - ", updatePerson='" + updatePerson + '\'' + | ||
| 149 | - ", syncTime='" + syncTime + '\'' + | ||
| 150 | - ", syncPerson='" + syncPerson + '\'' + | ||
| 151 | - ", username='" + username + '\'' + | ||
| 152 | - ", password='" + password + '\'' + | ||
| 153 | - ", channelList=" + channelList + | ||
| 154 | - '}'; | ||
| 155 | - } | ||
| 156 | - | ||
| 157 | - /** | ||
| 158 | - * 创建时间 | ||
| 159 | - */ | ||
| 160 | - @ApiModelProperty("创建时间") | ||
| 161 | - @Column(name="CREATE_TIME") | ||
| 162 | - private String createTime; | ||
| 163 | - | ||
| 164 | - /** | ||
| 165 | - * 注册时间 | ||
| 166 | - */ | ||
| 167 | - @ApiModelProperty("注册时间") | ||
| 168 | - @Column(name="REGISTER_TIME") | ||
| 169 | - private String registerTime; | ||
| 170 | - | ||
| 171 | - /** | ||
| 172 | - * 心跳时间 | ||
| 173 | - */ | ||
| 174 | - @ApiModelProperty("心跳时间") | ||
| 175 | - @Column(name="HEARTBEAT_TIME") | ||
| 176 | - private String heartbeatTime; | ||
| 177 | - | ||
| 178 | - /** | ||
| 179 | - * 修改时间 | ||
| 180 | - */ | ||
| 181 | - @ApiModelProperty("更新时间") | ||
| 182 | - @Column(name="UPDATE_TIME") | ||
| 183 | - private String updateTime; | ||
| 184 | - | ||
| 185 | - /** | ||
| 186 | - * 修改人 | ||
| 187 | - */ | ||
| 188 | - @ApiModelProperty("修改人") | ||
| 189 | - @Column(name="UPDATE_PERSON") | ||
| 190 | - private String updatePerson; | ||
| 191 | - | ||
| 192 | - /** | ||
| 193 | - * 同步时间 | ||
| 194 | - */ | ||
| 195 | - @ApiModelProperty("同步时间") | ||
| 196 | - @Column(name="SYNC_TIME") | ||
| 197 | - private String syncTime; | ||
| 198 | - | ||
| 199 | - /** | ||
| 200 | - * 同步人 | ||
| 201 | - */ | ||
| 202 | - @ApiModelProperty("同步人") | ||
| 203 | - @Column(name="SYNC_PERSON") | ||
| 204 | - private String syncPerson; | ||
| 205 | - | ||
| 206 | - /** | ||
| 207 | - * ONVIF协议-用户名 | ||
| 208 | - */ | ||
| 209 | - @ApiModelProperty("用户名") | ||
| 210 | - @Column(name="USERNAME") | ||
| 211 | - @Size(max = 32, message = "username 必须小于 32 位") | ||
| 212 | - private String username; | ||
| 213 | - | ||
| 214 | - /** | ||
| 215 | - * ONVIF协议-密码 | ||
| 216 | - */ | ||
| 217 | - @ApiModelProperty("密码") | ||
| 218 | - @Size(max = 32, message = "password 必须小于 32 位") | ||
| 219 | - @Column(name="PASSWORD") | ||
| 220 | - private String password; | ||
| 221 | - | ||
| 222 | - @Transient | ||
| 223 | - private List<DeviceChannel> channelList; | ||
| 224 | - | ||
| 225 | - | ||
| 226 | - public String getDeviceId() { | ||
| 227 | - return deviceId; | ||
| 228 | - } | ||
| 229 | - | ||
| 230 | - public void setDeviceId(String deviceId) { | ||
| 231 | - this.deviceId = deviceId; | ||
| 232 | - } | ||
| 233 | - | ||
| 234 | - public String getDeviceName() { | ||
| 235 | - return deviceName; | ||
| 236 | - } | ||
| 237 | - | ||
| 238 | - public void setDeviceName(String deviceName) { | ||
| 239 | - this.deviceName = deviceName; | ||
| 240 | - } | ||
| 241 | - | ||
| 242 | - public String getManufacturer() { | ||
| 243 | - return manufacturer; | ||
| 244 | - } | ||
| 245 | - | ||
| 246 | - public void setManufacturer(String manufacturer) { | ||
| 247 | - this.manufacturer = manufacturer; | ||
| 248 | - } | ||
| 249 | - | ||
| 250 | - public String getModel() { | ||
| 251 | - return model; | ||
| 252 | - } | ||
| 253 | - | ||
| 254 | - public void setModel(String model) { | ||
| 255 | - this.model = model; | ||
| 256 | - } | ||
| 257 | - | ||
| 258 | - public String getFirmware() { | ||
| 259 | - return firmware; | ||
| 260 | - } | ||
| 261 | - | ||
| 262 | - public void setFirmware(String firmware) { | ||
| 263 | - this.firmware = firmware; | ||
| 264 | - } | ||
| 265 | - | ||
| 266 | - public String getProtocol() { | ||
| 267 | - return protocol; | ||
| 268 | - } | ||
| 269 | - | ||
| 270 | - public void setProtocol(String protocol) { | ||
| 271 | - this.protocol = protocol; | ||
| 272 | - } | ||
| 273 | - | ||
| 274 | - public String getTransport() { | ||
| 275 | - return transport; | ||
| 276 | - } | ||
| 277 | - | ||
| 278 | - public void setTransport(String transport) { | ||
| 279 | - this.transport = transport; | ||
| 280 | - } | ||
| 281 | - | ||
| 282 | - public String getStreamMode() { | ||
| 283 | - return streamMode; | ||
| 284 | - } | ||
| 285 | - | ||
| 286 | - public void setStreamMode(String streamMode) { | ||
| 287 | - this.streamMode = streamMode; | ||
| 288 | - } | ||
| 289 | - | ||
| 290 | - public String getIp() { | ||
| 291 | - return ip; | ||
| 292 | - } | ||
| 293 | - | ||
| 294 | - public void setIp(String ip) { | ||
| 295 | - this.ip = ip; | ||
| 296 | - } | ||
| 297 | - | ||
| 298 | - public Integer getPort() { | ||
| 299 | - return port; | ||
| 300 | - } | ||
| 301 | - | ||
| 302 | - public void setPort(Integer port) { | ||
| 303 | - this.port = port; | ||
| 304 | - } | ||
| 305 | - | ||
| 306 | - public String getOnline() { | ||
| 307 | - return online; | ||
| 308 | - } | ||
| 309 | - | ||
| 310 | - public void setOnline(String online) { | ||
| 311 | - this.online = online; | ||
| 312 | - } | ||
| 313 | - | ||
| 314 | - public Integer getChannelSum() { | ||
| 315 | - return channelSum; | ||
| 316 | - } | ||
| 317 | - | ||
| 318 | - public void setChannelSum(Integer channelSum) { | ||
| 319 | - this.channelSum = channelSum; | ||
| 320 | - } | ||
| 321 | - | ||
| 322 | - public String getCreateTime() { | ||
| 323 | - return createTime; | ||
| 324 | - } | ||
| 325 | - | ||
| 326 | - public void setCreateTime(String createTime) { | ||
| 327 | - this.createTime = createTime; | ||
| 328 | - } | ||
| 329 | - | ||
| 330 | - public String getRegisterTime() { | ||
| 331 | - return registerTime; | ||
| 332 | - } | ||
| 333 | - | ||
| 334 | - public void setRegisterTime(String registerTime) { | ||
| 335 | - this.registerTime = registerTime; | ||
| 336 | - } | ||
| 337 | - | ||
| 338 | - public String getHeartbeatTime() { | ||
| 339 | - return heartbeatTime; | ||
| 340 | - } | ||
| 341 | - | ||
| 342 | - public void setHeartbeatTime(String heartbeatTime) { | ||
| 343 | - this.heartbeatTime = heartbeatTime; | ||
| 344 | - } | ||
| 345 | - | ||
| 346 | - public String getUpdateTime() { | ||
| 347 | - return updateTime; | ||
| 348 | - } | ||
| 349 | - | ||
| 350 | - public void setUpdateTime(String updateTime) { | ||
| 351 | - this.updateTime = updateTime; | ||
| 352 | - } | ||
| 353 | - | ||
| 354 | - public String getUpdatePerson() { | ||
| 355 | - return updatePerson; | ||
| 356 | - } | ||
| 357 | - | ||
| 358 | - public void setUpdatePerson(String updatePerson) { | ||
| 359 | - this.updatePerson = updatePerson; | ||
| 360 | - } | ||
| 361 | - | ||
| 362 | - public String getSyncTime() { | ||
| 363 | - return syncTime; | ||
| 364 | - } | ||
| 365 | - | ||
| 366 | - public void setSyncTime(String syncTime) { | ||
| 367 | - this.syncTime = syncTime; | ||
| 368 | - } | ||
| 369 | - | ||
| 370 | - public String getSyncPerson() { | ||
| 371 | - return syncPerson; | ||
| 372 | - } | ||
| 373 | - | ||
| 374 | - public void setSyncPerson(String syncPerson) { | ||
| 375 | - this.syncPerson = syncPerson; | ||
| 376 | - } | ||
| 377 | - | ||
| 378 | - public String getUsername() { | ||
| 379 | - return username; | ||
| 380 | - } | ||
| 381 | - | ||
| 382 | - public void setUsername(String username) { | ||
| 383 | - this.username = username; | ||
| 384 | - } | ||
| 385 | - | ||
| 386 | - public String getPassword() { | ||
| 387 | - return password; | ||
| 388 | - } | ||
| 389 | - | ||
| 390 | - public void setPassword(String password) { | ||
| 391 | - this.password = password; | ||
| 392 | - } | ||
| 393 | - | ||
| 394 | - public List<DeviceChannel> getChannelList() { | ||
| 395 | - return channelList; | ||
| 396 | - } | ||
| 397 | - | ||
| 398 | - public void setChannelList(List<DeviceChannel> channelList) { | ||
| 399 | - this.channelList = channelList; | ||
| 400 | - } | ||
| 401 | -} |
src/main/java/com/genersoft/iot/vmp/vmanager/device/entity/DeviceChannel.java deleted
100644 → 0
| 1 | -package com.genersoft.iot.vmp.vmanager.device.entity; | ||
| 2 | - | ||
| 3 | -import javax.persistence.Column; | ||
| 4 | -import javax.persistence.Id; | ||
| 5 | -import javax.persistence.Table; | ||
| 6 | - | ||
| 7 | -import io.swagger.annotations.ApiModel; | ||
| 8 | -import io.swagger.annotations.ApiModelProperty; | ||
| 9 | - | ||
| 10 | -/** | ||
| 11 | - * @Description:设备通道信息 | ||
| 12 | - * @author: songww | ||
| 13 | - * @date: 2020年5月20日 下午9:00:46 | ||
| 14 | - */ | ||
| 15 | -@ApiModel(value = "设备通道信息", description = "设备通道信息") | ||
| 16 | -@Table(name="VMP_VIDEOCHANNELS") | ||
| 17 | -public class DeviceChannel { | ||
| 18 | - | ||
| 19 | - /** | ||
| 20 | - * 通道编号 | ||
| 21 | - */ | ||
| 22 | - @ApiModelProperty("通道编号") | ||
| 23 | - @Id | ||
| 24 | - @Column(name="CHANNEL_ID") | ||
| 25 | - private String channelId; | ||
| 26 | - | ||
| 27 | - /** | ||
| 28 | - * 设备编号 | ||
| 29 | - */ | ||
| 30 | - @ApiModelProperty("设备编号") | ||
| 31 | - @Column(name="DEVICE_ID") | ||
| 32 | - private String deviceId; | ||
| 33 | - | ||
| 34 | - /** | ||
| 35 | - * 通道名 | ||
| 36 | - */ | ||
| 37 | - @ApiModelProperty("通道名") | ||
| 38 | - @Column(name="CHANNEL_NAME") | ||
| 39 | - private String channelName; | ||
| 40 | - | ||
| 41 | - /** | ||
| 42 | - * 生产厂商 | ||
| 43 | - */ | ||
| 44 | - @ApiModelProperty("生产厂商") | ||
| 45 | - @Column(name="MANUFACTURER") | ||
| 46 | - private String manufacture; | ||
| 47 | - | ||
| 48 | - /** | ||
| 49 | - * 型号 | ||
| 50 | - */ | ||
| 51 | - @ApiModelProperty("型号") | ||
| 52 | - @Column(name="MODEL") | ||
| 53 | - private String model; | ||
| 54 | - | ||
| 55 | - /** | ||
| 56 | - * 设备归属 | ||
| 57 | - */ | ||
| 58 | - @ApiModelProperty("设备归属") | ||
| 59 | - @Column(name="OWNER") | ||
| 60 | - private String owner; | ||
| 61 | - | ||
| 62 | - /** | ||
| 63 | - * 行政区域 | ||
| 64 | - */ | ||
| 65 | - @ApiModelProperty("行政区域") | ||
| 66 | - @Column(name="CIVIL_CODE") | ||
| 67 | - private String civilCode; | ||
| 68 | - | ||
| 69 | - /** | ||
| 70 | - * 警区 | ||
| 71 | - */ | ||
| 72 | - @ApiModelProperty("警区") | ||
| 73 | - @Column(name="BLOCK") | ||
| 74 | - private String block; | ||
| 75 | - | ||
| 76 | - /** | ||
| 77 | - * 安装地址 | ||
| 78 | - */ | ||
| 79 | - @ApiModelProperty("安装地址") | ||
| 80 | - @Column(name="ADDRESS") | ||
| 81 | - private String address; | ||
| 82 | - | ||
| 83 | - /** | ||
| 84 | - * 是否有子设备 1有, 0没有 | ||
| 85 | - */ | ||
| 86 | - @ApiModelProperty("是否有子设备") | ||
| 87 | - @Column(name="PARENTAL") | ||
| 88 | - private String parental; | ||
| 89 | - | ||
| 90 | - /** | ||
| 91 | - * 父级id | ||
| 92 | - */ | ||
| 93 | - @ApiModelProperty("父级编码") | ||
| 94 | - @Column(name="PARENT_ID") | ||
| 95 | - private String parentId; | ||
| 96 | - | ||
| 97 | - /** | ||
| 98 | - * 信令安全模式 缺省为0; 0:不采用; 2: S/MIME签名方式; 3: S/ MIME加密签名同时采用方式; 4:数字摘要方式 | ||
| 99 | - */ | ||
| 100 | - @ApiModelProperty("信令安全模式") | ||
| 101 | - @Column(name="SAFETY_WAY") | ||
| 102 | - private String safetyWay; | ||
| 103 | - | ||
| 104 | - /** | ||
| 105 | - * 注册方式 缺省为1;1:符合IETFRFC3261标准的认证注册模 式; 2:基于口令的双向认证注册模式; 3:基于数字证书的双向认证注册模式 | ||
| 106 | - */ | ||
| 107 | - @ApiModelProperty("注册方式") | ||
| 108 | - @Column(name="REGISTER_WAY") | ||
| 109 | - private String registerWay; | ||
| 110 | - | ||
| 111 | - /** | ||
| 112 | - * 证书序列号 | ||
| 113 | - */ | ||
| 114 | - @ApiModelProperty("证书序列号") | ||
| 115 | - @Column(name="CERT_NUM") | ||
| 116 | - private String certNum; | ||
| 117 | - | ||
| 118 | - /** | ||
| 119 | - * 证书有效标识 缺省为0;证书有效标识:0:无效1: 有效 | ||
| 120 | - */ | ||
| 121 | - @ApiModelProperty("证书有效标识") | ||
| 122 | - @Column(name="CERT_VALID") | ||
| 123 | - private String certValid; | ||
| 124 | - | ||
| 125 | - /** | ||
| 126 | - * 证书无效原因码 | ||
| 127 | - */ | ||
| 128 | - @ApiModelProperty("证书无效原因码") | ||
| 129 | - @Column(name="CERT_ERRCODE") | ||
| 130 | - private String certErrCode; | ||
| 131 | - | ||
| 132 | - /** | ||
| 133 | - * 证书终止有效期 | ||
| 134 | - */ | ||
| 135 | - @ApiModelProperty("证书终止有效期") | ||
| 136 | - @Column(name="CERT_ENDTIME") | ||
| 137 | - private String certEndTime; | ||
| 138 | - | ||
| 139 | - /** | ||
| 140 | - * 保密属性 缺省为0; 0:不涉密, 1:涉密 | ||
| 141 | - */ | ||
| 142 | - @ApiModelProperty("保密属性") | ||
| 143 | - @Column(name="SECRECY") | ||
| 144 | - private String secrecy; | ||
| 145 | - | ||
| 146 | - /** | ||
| 147 | - * IP地址 | ||
| 148 | - */ | ||
| 149 | - @ApiModelProperty("IP地址") | ||
| 150 | - @Column(name="IP") | ||
| 151 | - private String ip; | ||
| 152 | - | ||
| 153 | - /** | ||
| 154 | - * 端口号 | ||
| 155 | - */ | ||
| 156 | - @ApiModelProperty("端口号") | ||
| 157 | - @Column(name="PORT") | ||
| 158 | - private Integer port; | ||
| 159 | - | ||
| 160 | - /** | ||
| 161 | - * 密码 | ||
| 162 | - */ | ||
| 163 | - @ApiModelProperty("密码") | ||
| 164 | - @Column(name="PASSWORD") | ||
| 165 | - private String password; | ||
| 166 | - | ||
| 167 | - /** | ||
| 168 | - * 在线/离线 | ||
| 169 | - * 1在线,0离线 | ||
| 170 | - * 默认在线 | ||
| 171 | - * 信令: | ||
| 172 | - * <Status>ON</Status> | ||
| 173 | - * <Status>OFF</Status> | ||
| 174 | - * 遇到过NVR下的IPC下发信令可以推流, 但是 Status 响应 OFF | ||
| 175 | - */ | ||
| 176 | - @ApiModelProperty("状态") | ||
| 177 | - @Column(name="ONLINE") | ||
| 178 | - private String online; | ||
| 179 | - | ||
| 180 | - /** | ||
| 181 | - * 经度 | ||
| 182 | - */ | ||
| 183 | - @ApiModelProperty("经度") | ||
| 184 | - @Column(name="LONGITUDE") | ||
| 185 | - private double longitude; | ||
| 186 | - | ||
| 187 | - /** | ||
| 188 | - * 纬度 | ||
| 189 | - */ | ||
| 190 | - @ApiModelProperty("纬度") | ||
| 191 | - @Column(name="LATITUDE") | ||
| 192 | - private double latitude; | ||
| 193 | - | ||
| 194 | - public String getChannelId() { | ||
| 195 | - return channelId; | ||
| 196 | - } | ||
| 197 | - | ||
| 198 | - public void setChannelId(String channelId) { | ||
| 199 | - this.channelId = channelId; | ||
| 200 | - } | ||
| 201 | - | ||
| 202 | - public String getDeviceId() { | ||
| 203 | - return deviceId; | ||
| 204 | - } | ||
| 205 | - | ||
| 206 | - public void setDeviceId(String deviceId) { | ||
| 207 | - this.deviceId = deviceId; | ||
| 208 | - } | ||
| 209 | - | ||
| 210 | - public String getChannelName() { | ||
| 211 | - return channelName; | ||
| 212 | - } | ||
| 213 | - | ||
| 214 | - public void setChannelName(String channelName) { | ||
| 215 | - this.channelName = channelName; | ||
| 216 | - } | ||
| 217 | - | ||
| 218 | - public String getManufacture() { | ||
| 219 | - return manufacture; | ||
| 220 | - } | ||
| 221 | - | ||
| 222 | - public void setManufacture(String manufacture) { | ||
| 223 | - this.manufacture = manufacture; | ||
| 224 | - } | ||
| 225 | - | ||
| 226 | - public String getModel() { | ||
| 227 | - return model; | ||
| 228 | - } | ||
| 229 | - | ||
| 230 | - public void setModel(String model) { | ||
| 231 | - this.model = model; | ||
| 232 | - } | ||
| 233 | - | ||
| 234 | - public String getOwner() { | ||
| 235 | - return owner; | ||
| 236 | - } | ||
| 237 | - | ||
| 238 | - public void setOwner(String owner) { | ||
| 239 | - this.owner = owner; | ||
| 240 | - } | ||
| 241 | - | ||
| 242 | - public String getCivilCode() { | ||
| 243 | - return civilCode; | ||
| 244 | - } | ||
| 245 | - | ||
| 246 | - public void setCivilCode(String civilCode) { | ||
| 247 | - this.civilCode = civilCode; | ||
| 248 | - } | ||
| 249 | - | ||
| 250 | - public String getBlock() { | ||
| 251 | - return block; | ||
| 252 | - } | ||
| 253 | - | ||
| 254 | - public void setBlock(String block) { | ||
| 255 | - this.block = block; | ||
| 256 | - } | ||
| 257 | - | ||
| 258 | - public String getAddress() { | ||
| 259 | - return address; | ||
| 260 | - } | ||
| 261 | - | ||
| 262 | - public void setAddress(String address) { | ||
| 263 | - this.address = address; | ||
| 264 | - } | ||
| 265 | - | ||
| 266 | - public String getParental() { | ||
| 267 | - return parental; | ||
| 268 | - } | ||
| 269 | - | ||
| 270 | - public void setParental(String parental) { | ||
| 271 | - this.parental = parental; | ||
| 272 | - } | ||
| 273 | - | ||
| 274 | - public String getParentId() { | ||
| 275 | - return parentId; | ||
| 276 | - } | ||
| 277 | - | ||
| 278 | - public void setParentId(String parentId) { | ||
| 279 | - this.parentId = parentId; | ||
| 280 | - } | ||
| 281 | - | ||
| 282 | - public String getSafetyWay() { | ||
| 283 | - return safetyWay; | ||
| 284 | - } | ||
| 285 | - | ||
| 286 | - public void setSafetyWay(String safetyWay) { | ||
| 287 | - this.safetyWay = safetyWay; | ||
| 288 | - } | ||
| 289 | - | ||
| 290 | - public String getRegisterWay() { | ||
| 291 | - return registerWay; | ||
| 292 | - } | ||
| 293 | - | ||
| 294 | - public void setRegisterWay(String registerWay) { | ||
| 295 | - this.registerWay = registerWay; | ||
| 296 | - } | ||
| 297 | - | ||
| 298 | - public String getCertNum() { | ||
| 299 | - return certNum; | ||
| 300 | - } | ||
| 301 | - | ||
| 302 | - public void setCertNum(String certNum) { | ||
| 303 | - this.certNum = certNum; | ||
| 304 | - } | ||
| 305 | - | ||
| 306 | - public String getCertValid() { | ||
| 307 | - return certValid; | ||
| 308 | - } | ||
| 309 | - | ||
| 310 | - public void setCertValid(String certValid) { | ||
| 311 | - this.certValid = certValid; | ||
| 312 | - } | ||
| 313 | - | ||
| 314 | - public String getCertErrCode() { | ||
| 315 | - return certErrCode; | ||
| 316 | - } | ||
| 317 | - | ||
| 318 | - public void setCertErrCode(String certErrCode) { | ||
| 319 | - this.certErrCode = certErrCode; | ||
| 320 | - } | ||
| 321 | - | ||
| 322 | - public String getCertEndTime() { | ||
| 323 | - return certEndTime; | ||
| 324 | - } | ||
| 325 | - | ||
| 326 | - public void setCertEndTime(String certEndTime) { | ||
| 327 | - this.certEndTime = certEndTime; | ||
| 328 | - } | ||
| 329 | - | ||
| 330 | - public String getSecrecy() { | ||
| 331 | - return secrecy; | ||
| 332 | - } | ||
| 333 | - | ||
| 334 | - public void setSecrecy(String secrecy) { | ||
| 335 | - this.secrecy = secrecy; | ||
| 336 | - } | ||
| 337 | - | ||
| 338 | - public String getIp() { | ||
| 339 | - return ip; | ||
| 340 | - } | ||
| 341 | - | ||
| 342 | - public void setIp(String ip) { | ||
| 343 | - this.ip = ip; | ||
| 344 | - } | ||
| 345 | - | ||
| 346 | - public Integer getPort() { | ||
| 347 | - return port; | ||
| 348 | - } | ||
| 349 | - | ||
| 350 | - public void setPort(Integer port) { | ||
| 351 | - this.port = port; | ||
| 352 | - } | ||
| 353 | - | ||
| 354 | - public String getPassword() { | ||
| 355 | - return password; | ||
| 356 | - } | ||
| 357 | - | ||
| 358 | - public void setPassword(String password) { | ||
| 359 | - this.password = password; | ||
| 360 | - } | ||
| 361 | - | ||
| 362 | - public String getOnline() { | ||
| 363 | - return online; | ||
| 364 | - } | ||
| 365 | - | ||
| 366 | - public void setOnline(String online) { | ||
| 367 | - this.online = online; | ||
| 368 | - } | ||
| 369 | - | ||
| 370 | - public double getLongitude() { | ||
| 371 | - return longitude; | ||
| 372 | - } | ||
| 373 | - | ||
| 374 | - public void setLongitude(double longitude) { | ||
| 375 | - this.longitude = longitude; | ||
| 376 | - } | ||
| 377 | - | ||
| 378 | - public double getLatitude() { | ||
| 379 | - return latitude; | ||
| 380 | - } | ||
| 381 | - | ||
| 382 | - public void setLatitude(double latitude) { | ||
| 383 | - this.latitude = latitude; | ||
| 384 | - } | ||
| 385 | -} |
src/main/java/com/genersoft/iot/vmp/web/ApiDeviceController.java
| 1 | package com.genersoft.iot.vmp.web; | 1 | package com.genersoft.iot.vmp.web; |
| 2 | 2 | ||
| 3 | -import com.alibaba.fastjson.JSON; | ||
| 4 | import com.alibaba.fastjson.JSONArray; | 3 | import com.alibaba.fastjson.JSONArray; |
| 5 | import com.alibaba.fastjson.JSONObject; | 4 | import com.alibaba.fastjson.JSONObject; |
| 6 | -import com.genersoft.iot.vmp.common.PageResult; | ||
| 7 | import com.genersoft.iot.vmp.gb28181.bean.Device; | 5 | import com.genersoft.iot.vmp.gb28181.bean.Device; |
| 8 | import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; | 6 | import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; |
| 9 | import com.genersoft.iot.vmp.gb28181.event.DeviceOffLineDetector; | 7 | import com.genersoft.iot.vmp.gb28181.event.DeviceOffLineDetector; |
| 10 | import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder; | 8 | import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder; |
| 11 | import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander; | 9 | import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander; |
| 12 | import com.genersoft.iot.vmp.storager.IVideoManagerStorager; | 10 | import com.genersoft.iot.vmp.storager.IVideoManagerStorager; |
| 13 | -import com.genersoft.iot.vmp.vmanager.device.DeviceController; | 11 | +import com.github.pagehelper.PageInfo; |
| 14 | import org.slf4j.Logger; | 12 | import org.slf4j.Logger; |
| 15 | import org.slf4j.LoggerFactory; | 13 | import org.slf4j.LoggerFactory; |
| 16 | import org.springframework.beans.factory.annotation.Autowired; | 14 | import org.springframework.beans.factory.annotation.Autowired; |
| 17 | -import org.springframework.http.HttpStatus; | ||
| 18 | -import org.springframework.http.ResponseEntity; | ||
| 19 | -import org.springframework.stereotype.Controller; | ||
| 20 | import org.springframework.web.bind.annotation.*; | 15 | import org.springframework.web.bind.annotation.*; |
| 21 | 16 | ||
| 22 | import java.util.List; | 17 | import java.util.List; |
| @@ -68,9 +63,9 @@ public class ApiDeviceController { | @@ -68,9 +63,9 @@ public class ApiDeviceController { | ||
| 68 | devices = storager.queryVideoDeviceList(); | 63 | devices = storager.queryVideoDeviceList(); |
| 69 | result.put("DeviceCount", devices.size()); | 64 | result.put("DeviceCount", devices.size()); |
| 70 | }else { | 65 | }else { |
| 71 | - PageResult<Device> deviceList = storager.queryVideoDeviceList(null, start/limit, limit); | 66 | + PageInfo<Device> deviceList = storager.queryVideoDeviceList(start/limit, limit); |
| 72 | result.put("DeviceCount", deviceList.getTotal()); | 67 | result.put("DeviceCount", deviceList.getTotal()); |
| 73 | - devices = deviceList.getData(); | 68 | + devices = deviceList.getList(); |
| 74 | } | 69 | } |
| 75 | 70 | ||
| 76 | JSONArray deviceJSONList = new JSONArray(); | 71 | JSONArray deviceJSONList = new JSONArray(); |
| @@ -86,8 +81,8 @@ public class ApiDeviceController { | @@ -86,8 +81,8 @@ public class ApiDeviceController { | ||
| 86 | deviceJsonObject.put("Online", device.getOnline() == 1); | 81 | deviceJsonObject.put("Online", device.getOnline() == 1); |
| 87 | deviceJsonObject.put("Password", ""); | 82 | deviceJsonObject.put("Password", ""); |
| 88 | deviceJsonObject.put("MediaTransport", device.getTransport()); | 83 | deviceJsonObject.put("MediaTransport", device.getTransport()); |
| 89 | - deviceJsonObject.put("RemoteIP", device.getHost().getIp()); | ||
| 90 | - deviceJsonObject.put("RemotePort", device.getHost().getPort()); | 84 | + deviceJsonObject.put("RemoteIP", device.getIp()); |
| 85 | + deviceJsonObject.put("RemotePort", device.getPort()); | ||
| 91 | deviceJsonObject.put("LastRegisterAt", ""); | 86 | deviceJsonObject.put("LastRegisterAt", ""); |
| 92 | deviceJsonObject.put("LastKeepaliveAt", ""); | 87 | deviceJsonObject.put("LastKeepaliveAt", ""); |
| 93 | deviceJsonObject.put("UpdatedAt", ""); | 88 | deviceJsonObject.put("UpdatedAt", ""); |
| @@ -123,9 +118,9 @@ public class ApiDeviceController { | @@ -123,9 +118,9 @@ public class ApiDeviceController { | ||
| 123 | deviceChannels = storager.queryChannelsByDeviceId(serial); | 118 | deviceChannels = storager.queryChannelsByDeviceId(serial); |
| 124 | result.put("ChannelCount", deviceChannels.size()); | 119 | result.put("ChannelCount", deviceChannels.size()); |
| 125 | }else { | 120 | }else { |
| 126 | - PageResult<DeviceChannel> pageResult = storager.queryChannelsByDeviceId(serial, null, null, null,start/limit, limit); | 121 | + PageInfo<DeviceChannel> pageResult = storager.queryChannelsByDeviceId(serial, null, null, null,start/limit, limit); |
| 127 | result.put("ChannelCount", pageResult.getTotal()); | 122 | result.put("ChannelCount", pageResult.getTotal()); |
| 128 | - deviceChannels = pageResult.getData(); | 123 | + deviceChannels = pageResult.getList(); |
| 129 | } | 124 | } |
| 130 | 125 | ||
| 131 | JSONArray channleJSONList = new JSONArray(); | 126 | JSONArray channleJSONList = new JSONArray(); |
src/main/resources/application-dev.yml
| @@ -27,6 +27,7 @@ spring: | @@ -27,6 +27,7 @@ spring: | ||
| 27 | type: com.alibaba.druid.pool.DruidDataSource | 27 | type: com.alibaba.druid.pool.DruidDataSource |
| 28 | driver-class-name: com.mysql.jdbc.Driver | 28 | driver-class-name: com.mysql.jdbc.Driver |
| 29 | 29 | ||
| 30 | + | ||
| 30 | # [可选] WVP监听的HTTP端口, 网页和接口调用都是这个端口 | 31 | # [可选] WVP监听的HTTP端口, 网页和接口调用都是这个端口 |
| 31 | server: | 32 | server: |
| 32 | port: 18080 | 33 | port: 18080 |
src/main/resources/application.yml
src/main/resources/wvp.sqlite
No preview for this file type
web_src/src/components/channelList.vue
| @@ -21,8 +21,8 @@ | @@ -21,8 +21,8 @@ | ||
| 21 | </el-select> | 21 | </el-select> |
| 22 | 在线状态: <el-select size="mini" @change="search" v-model="online" placeholder="请选择" default-first-option> | 22 | 在线状态: <el-select size="mini" @change="search" v-model="online" placeholder="请选择" default-first-option> |
| 23 | <el-option label="全部" value=""></el-option> | 23 | <el-option label="全部" value=""></el-option> |
| 24 | - <el-option label="在线" value="on"></el-option> | ||
| 25 | - <el-option label="离线" value="off"></el-option> | 24 | + <el-option label="在线" value="true"></el-option> |
| 25 | + <el-option label="离线" value="false"></el-option> | ||
| 26 | </el-select> | 26 | </el-select> |
| 27 | 27 | ||
| 28 | </div> | 28 | </div> |
| @@ -161,7 +161,7 @@ export default { | @@ -161,7 +161,7 @@ export default { | ||
| 161 | .then(function (res) { | 161 | .then(function (res) { |
| 162 | console.log(res); | 162 | console.log(res); |
| 163 | that.total = res.data.total; | 163 | that.total = res.data.total; |
| 164 | - that.deviceChannelList = res.data.data; | 164 | + that.deviceChannelList = res.data.list; |
| 165 | // 防止出现表格错位 | 165 | // 防止出现表格错位 |
| 166 | that.$nextTick(() => { | 166 | that.$nextTick(() => { |
| 167 | that.$refs.channelListTable.doLayout(); | 167 | that.$refs.channelListTable.doLayout(); |
web_src/src/components/videoList.vue
| @@ -21,7 +21,7 @@ | @@ -21,7 +21,7 @@ | ||
| 21 | <el-table-column label="地址" width="180" align="center"> | 21 | <el-table-column label="地址" width="180" align="center"> |
| 22 | <template slot-scope="scope"> | 22 | <template slot-scope="scope"> |
| 23 | <div slot="reference" class="name-wrapper"> | 23 | <div slot="reference" class="name-wrapper"> |
| 24 | - <el-tag size="medium">{{ scope.row.host.address }}</el-tag> | 24 | + <el-tag size="medium">{{ scope.row.hostAddress }}</el-tag> |
| 25 | </div> | 25 | </div> |
| 26 | </template> | 26 | </template> |
| 27 | </el-table-column> | 27 | </el-table-column> |
| @@ -140,8 +140,9 @@ | @@ -140,8 +140,9 @@ | ||
| 140 | } ) | 140 | } ) |
| 141 | .then(function (res) { | 141 | .then(function (res) { |
| 142 | console.log(res); | 142 | console.log(res); |
| 143 | + console.log(res.data.list); | ||
| 143 | that.total = res.data.total; | 144 | that.total = res.data.total; |
| 144 | - that.deviceList = res.data.data; | 145 | + that.deviceList = res.data.list; |
| 145 | that.getDeviceListLoading = false; | 146 | that.getDeviceListLoading = false; |
| 146 | }) | 147 | }) |
| 147 | .catch(function (error) { | 148 | .catch(function (error) { |