From dcd78a1cfa0c929403d51a347e43414f6aa5f0d8 Mon Sep 17 00:00:00 2001
From: panlinlin <648540858@qq.com>
Date: 星期一, 04 一月 2021 18:30:44 +0800
Subject: [PATCH] 存储部分使用sqlite代替redis-3
---
src/main/java/com/genersoft/iot/vmp/gb28181/bean/Device.java | 53 +-
web_src/src/components/videoList.vue | 5
src/main/resources/wvp.sqlite | 0
pom.xml | 59 --
src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java | 281 ++--------------
src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java | 18
src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMapper.java | 50 ++
/dev/null | 385 ----------------------
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java | 13
web_src/src/components/channelList.vue | 6
src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java | 4
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/RegisterRequestProcessor.java | 8
src/main/java/com/genersoft/iot/vmp/vmanager/device/DeviceController.java | 40 +
src/main/java/com/genersoft/iot/vmp/web/ApiDeviceController.java | 19
src/main/resources/application-dev.yml | 1
src/main/resources/application.yml | 2
src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java | 40 ++
17 files changed, 222 insertions(+), 762 deletions(-)
diff --git a/pom.xml b/pom.xml
index ae4d666..2f45a6d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -45,9 +45,6 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- 渚濊禆鐗堟湰 -->
- <mapper.version>4.1.5</mapper.version>
- <mybatis.version>3.5.5</mybatis.version>
- <mybatis.spring.version>2.0.5</mybatis.spring.version>
<pagehelper.version>5.2.0</pagehelper.version>
<snippetsDirectory>${project.build.directory}/generated-snippets</snippetsDirectory>
<asciidoctor.input.directory>${project.basedir}/docs/asciidoc</asciidoctor.input.directory>
@@ -59,30 +56,16 @@
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-jdbc</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-tomcat</artifactId>
+ <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- </dependency>
-
- <!-- redis -->
- <dependency>
- <groupId>org.springframework.data</groupId>
- <artifactId>spring-data-redis</artifactId>
- </dependency>
- <dependency>
- <groupId>redis.clients</groupId>
- <artifactId>jedis</artifactId>
- <version>3.3.0</version>
+ <groupId>org.mybatis.spring.boot</groupId>
+ <artifactId>mybatis-spring-boot-starter</artifactId>
+ <version>2.1.4</version>
</dependency>
<!-- druid鏁版嵁搴撹繛鎺ユ睜 -->
@@ -106,36 +89,18 @@
<version>3.32.3.2</version>
</dependency>
- <!--Mybatis -->
- <dependency>
- <groupId>org.mybatis</groupId>
- <artifactId>mybatis</artifactId>
- <version>${mybatis.version}</version>
- </dependency>
- <dependency>
- <groupId>org.mybatis</groupId>
- <artifactId>mybatis-spring</artifactId>
- <version>${mybatis.spring.version}</version>
- </dependency>
-
- <!--鍒嗛〉鎻掍欢 -->
+ <!--Mybatis鍒嗛〉鎻掍欢 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
- <artifactId>pagehelper</artifactId>
- <version>${pagehelper.version}</version>
+ <artifactId>pagehelper-spring-boot-starter</artifactId>
+ <version>1.2.10</version>
</dependency>
- <!--閫氱敤Mapper -->
- <dependency>
- <groupId>tk.mybatis</groupId>
- <artifactId>mapper</artifactId>
- <version>${mapper.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-lang3</artifactId>
- <version>3.11</version>
- </dependency>
+<!-- <dependency>-->
+<!-- <groupId>org.apache.commons</groupId>-->
+<!-- <artifactId>commons-lang3</artifactId>-->
+<!-- <version>3.11</version>-->
+<!-- </dependency>-->
<!--Swagger2 -->
<!--鍦ㄧ嚎鏂囨。 -->
diff --git a/src/main/java/com/genersoft/iot/vmp/common/PageResult.java b/src/main/java/com/genersoft/iot/vmp/common/PageResult.java
deleted file mode 100644
index 6d7c89e..0000000
--- a/src/main/java/com/genersoft/iot/vmp/common/PageResult.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package com.genersoft.iot.vmp.common;
-
-
-import java.util.List;
-
-public class PageResult<T> {
-
- private int page;
- private int count;
- private int total;
-
- private List<T> data;
-
- public List<T> getData() {
- return data;
- }
-
- public int getPage() {
- return page;
- }
-
- public void setPage(int page) {
- this.page = page;
- }
-
- public int getCount() {
- return count;
- }
-
- public void setCount(int count) {
- this.count = count;
- }
-
- public int getTotal() {
- return total;
- }
-
- public void setTotal(int total) {
- this.total = total;
- }
-
- public void setData(List<T> data) {
- this.data = data;
- }
-}
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/Device.java b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/Device.java
index 12b8a00..9393106 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/Device.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/Device.java
@@ -1,16 +1,7 @@
package com.genersoft.iot.vmp.gb28181.bean;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
public class Device {
-
- /**
- * 鏁版嵁搴撳瓨鍌↖D
- */
- private int id;
/**
* 璁惧Id
@@ -52,9 +43,19 @@
private String streamMode;
/**
+ * wan鍦板潃_ip
+ */
+ private String ip;
+
+ /**
+ * wan鍦板潃_port
+ */
+ private int port;
+
+ /**
* wan鍦板潃
*/
- private Host host;
+ private String hostAddress;
/**
* 鍦ㄧ嚎
@@ -71,14 +72,6 @@
* 閫氶亾涓暟
*/
private int channelCount;
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
public String getDeviceId() {
return deviceId;
@@ -136,12 +129,28 @@
this.streamMode = streamMode;
}
- public Host getHost() {
- return host;
+ public String getIp() {
+ return ip;
}
- public void setHost(Host host) {
- this.host = host;
+ public void setIp(String ip) {
+ this.ip = ip;
+ }
+
+ public int getPort() {
+ return port;
+ }
+
+ public void setPort(int port) {
+ this.port = port;
+ }
+
+ public String getHostAddress() {
+ return hostAddress;
+ }
+
+ public void setHostAddress(String hostAddress) {
+ this.hostAddress = hostAddress;
}
public int getOnline() {
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java
index a606171..8f2c0dd 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java
@@ -44,9 +44,8 @@
public Request createMessageRequest(Device device, String content, String viaTag, String fromTag, String toTag) throws ParseException, InvalidArgumentException, PeerUnavailableException {
Request request = null;
- Host host = device.getHost();
// sipuri
- SipURI requestURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), host.getAddress());
+ SipURI requestURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress());
// via
ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>();
ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(sipConfig.getSipIp(), sipConfig.getSipPort(),
@@ -79,12 +78,11 @@
public Request createInviteRequest(Device device, String channelId, String content, String viaTag, String fromTag, String toTag, String ssrc) throws ParseException, InvalidArgumentException, PeerUnavailableException {
Request request = null;
- Host host = device.getHost();
//璇锋眰琛�
- SipURI requestLine = sipFactory.createAddressFactory().createSipURI(channelId, host.getAddress());
+ SipURI requestLine = sipFactory.createAddressFactory().createSipURI(channelId, device.getHostAddress());
//via
ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>();
- ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(device.getHost().getIp(), device.getHost().getPort(), device.getTransport(), viaTag);
+ ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(device.getIp(), device.getPort(), device.getTransport(), viaTag);
viaHeader.setRPort();
viaHeaders.add(viaHeader);
@@ -126,12 +124,11 @@
public Request createPlaybackInviteRequest(Device device, String channelId, String content, String viaTag, String fromTag, String toTag) throws ParseException, InvalidArgumentException, PeerUnavailableException {
Request request = null;
- Host host = device.getHost();
//璇锋眰琛�
- SipURI requestLine = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), host.getAddress());
+ SipURI requestLine = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress());
// via
ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>();
- ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(device.getHost().getIp(), device.getHost().getPort(), device.getTransport(), viaTag);
+ ViaHeader viaHeader = sipFactory.createHeaderFactory().createViaHeader(device.getIp(), device.getPort(), device.getTransport(), viaTag);
viaHeader.setRPort();
viaHeaders.add(viaHeader);
//from
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/RegisterRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/RegisterRequestProcessor.java
index bcd4482..4faab0e 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/RegisterRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/RegisterRequestProcessor.java
@@ -107,17 +107,15 @@
rPort = viaHeader.getPort();
}
//
- Host host = new Host();
- host.setIp(received);
- host.setPort(rPort);
- host.setAddress(received.concat(":").concat(String.valueOf(rPort)));
AddressImpl address = (AddressImpl) fromHeader.getAddress();
SipUri uri = (SipUri) address.getURI();
String deviceId = uri.getUser();
device = new Device();
device.setStreamMode("UDP");
device.setDeviceId(deviceId);
- device.setHost(host);
+ device.setIp(received);
+ device.setPort(rPort);
+ device.setHostAddress(received.concat(":").concat(String.valueOf(rPort)));
// 娉ㄩ攢鎴愬姛
if (expiresHeader != null && expiresHeader.getExpires() == 0) {
registerFlag = 2;
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java b/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java
index 4174507..c601f7e 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java
@@ -1,14 +1,10 @@
package com.genersoft.iot.vmp.storager;
import java.util.List;
-import java.util.Map;
-import com.alibaba.fastjson.JSONObject;
-import com.genersoft.iot.vmp.common.PageResult;
-import com.genersoft.iot.vmp.common.StreamInfo;
-import com.genersoft.iot.vmp.conf.MediaServerConfig;
import com.genersoft.iot.vmp.gb28181.bean.Device;
import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
+import com.github.pagehelper.PageInfo;
/**
* @Description:瑙嗛璁惧鏁版嵁瀛樺偍鎺ュ彛
@@ -65,7 +61,7 @@
* @param count 姣忛〉鏁伴噺
* @return
*/
- public PageResult queryChannelsByDeviceId(String deviceId, String query, Boolean hasSubChannel, String online, int page, int count);
+ public PageInfo queryChannelsByDeviceId(String deviceId, String query, Boolean hasSubChannel, Boolean online, int page, int count);
/**
* 鑾峰彇鏌愪釜璁惧鐨勯�氶亾鍒楄〃
@@ -82,13 +78,13 @@
*/
public DeviceChannel queryChannel(String deviceId, String channelId);
- /**
+ /**
* 鑾峰彇澶氫釜璁惧
- *
- * @param deviceIds 璁惧ID鏁扮粍
+ * @param page 褰撳墠椤垫暟
+ * @param count 姣忛〉鏁伴噺
* @return List<Device> 璁惧瀵硅薄鏁扮粍
*/
- public PageResult<Device> queryVideoDeviceList(String[] deviceIds, int page, int count);
+ public PageInfo<Device> queryVideoDeviceList(int page, int count);
/**
* 鑾峰彇澶氫釜璁惧
@@ -131,7 +127,7 @@
* @param count
* @return
*/
- PageResult querySubChannels(String deviceId, String channelId, String query, Boolean hasSubChannel, String online, int page, int count);
+ PageInfo querySubChannels(String deviceId, String channelId, String query, Boolean hasSubChannel, String online, int page, int count);
/**
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/VodeoMannagerTask.java b/src/main/java/com/genersoft/iot/vmp/storager/VodeoMannagerTask.java
deleted file mode 100644
index c207484..0000000
--- a/src/main/java/com/genersoft/iot/vmp/storager/VodeoMannagerTask.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.genersoft.iot.vmp.storager;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.CommandLineRunner;
-import org.springframework.stereotype.Component;
-
-@Component
-public class VodeoMannagerTask implements CommandLineRunner {
-
- @Autowired
- private IVideoManagerStorager redisStorager;
-
- @Override
- public void run(String... strings) throws Exception {
- redisStorager.updateCatch();
- }
-}
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java
index bf67095..072b1bf 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java
@@ -1,20 +1,50 @@
package com.genersoft.iot.vmp.storager.dao;
-import com.genersoft.iot.vmp.common.PageResult;
import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
-import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.*;
import java.util.List;
+/**
+ * 鐢ㄤ簬瀛樺偍璁惧閫氶亾淇℃伅
+ */
@Mapper
public interface DeviceChannelMapper {
+
+ @Insert("INSERT INTO device_channel (channelId, deviceId, name, manufacture, model, owner, civilCode, block, " +
+ "address, parental, parentId, safetyWay, registerWay, certNum, certifiable, errCode, secrecy, " +
+ "ipAddress, port, password, PTZType, status) " +
+ "VALUES ('${channelId}', '${deviceId}', '${name}', '${manufacture}', '${model}', '${owner}', '${civilCode}', '${block}'," +
+ "'${address}', ${parental}, '${parentId}', ${safetyWay}, ${registerWay}, '${certNum}', ${certifiable}, ${errCode}, '${secrecy}', " +
+ "'${ipAddress}', ${port}, '${password}', ${PTZType}, ${status})")
+ int add(DeviceChannel channel);
+
+ @Update("UPDATE device_channel " +
+ "SET name=#{name}, manufacture=#{manufacture}, model=#{model}, owner=#{owner}, civilCode=#{civilCode}, " +
+ "block=#{block}, address=#{address}, parental=#{parental}, parentId=#{parentId}, safetyWay=#{safetyWay}, " +
+ "registerWay=#{registerWay}, certNum=#{certNum}, certifiable=#{certifiable}, errCode=#{errCode}, secrecy=#{secrecy}, " +
+ "ipAddress=#{ipAddress}, port=#{port}, password=#{password}, PTZType=#{PTZType}, status=#{status} " +
+ "WHERE deviceId=#{deviceId} AND channelId=#{channelId}")
int update(DeviceChannel channel);
- List<DeviceChannel> queryChannelsByDeviceId(String deviceId);
+ @Select(value = {" <script>" +
+ "SELECT * FROM ( "+
+ " SELECT * , (SELECT count(0) FROM device_channel WHERE parentId=dc.channelId) as subCount FROM device_channel dc " +
+ " WHERE dc.deviceId=#{deviceId} " +
+ " <if test=\"query != null\"> AND (dc.channelId LIKE '%${query}%' OR dc.name LIKE '%${query}%' OR dc.name LIKE '%${query}%')</if> " +
+ " <if test=\"parentChannelId != null\"> AND dc.parentId=#{parentChannelId} </if> " +
+ " <if test=\"online == true\" > AND dc.status=1</if>" +
+ " <if test=\"online == false\" > AND dc.status=0</if>) dcr" +
+ " WHERE 1=1 " +
+ " <if test=\"hasSubChannel == true\" > AND subCount >0</if>" +
+ " <if test=\"hasSubChannel == false\" > AND subCount=0</if>" +
+ " </script>"})
+ List<DeviceChannel> queryChannelsByDeviceId(String deviceId, String parentChannelId, String query, Boolean hasSubChannel, Boolean online);
- List<DeviceChannel> queryChannelsByDeviceId(String deviceId, String parentChannelId);
-
+ @Select("SELECT * FROM device_channel WHERE deviceId=#{deviceId} AND channelId=#{channelId}")
DeviceChannel queryChannel(String deviceId, String channelId);
+ @Delete("DELETE FROM device_channel WHERE deviceId=#{deviceId}")
int cleanChannelsByDeviceId(String deviceId);
+
}
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMapper.java
index da455fb..3c10618 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMapper.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMapper.java
@@ -1,24 +1,66 @@
package com.genersoft.iot.vmp.storager.dao;
import com.genersoft.iot.vmp.gb28181.bean.Device;
-import org.apache.ibatis.annotations.Insert;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Select;
+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("SELECT * FROM device WHERE deviceId = #{deviceId}")
+ @Insert("INSERT INTO device (" +
+ "deviceId, " +
+ "name, " +
+ "manufacturer, " +
+ "model, " +
+ "firmware, " +
+ "transport," +
+ "streamMode," +
+ "ip," +
+ "port," +
+ "hostAddress," +
+ "online" +
+ ") VALUES (" +
+ "#{deviceId}," +
+ "#{name}," +
+ "#{manufacturer}," +
+ "#{model}," +
+ "#{firmware}," +
+ "#{transport}," +
+ "#{streamMode}," +
+ "#{ip}," +
+ "#{port}," +
+ "#{hostAddress}," +
+ "#{online}" +
+ ")")
int add(Device device);
+
+ @Update("UPDATE device " +
+ "SET name=#{name}, " +
+ "manufacturer=#{manufacturer}," +
+ "model=#{model}," +
+ "firmware=#{firmware}, " +
+ "transport=#{transport}," +
+ "streamMode=#{streamMode}, " +
+ "ip=#{ip}, " +
+ "port=#{port}, " +
+ "hostAddress=#{hostAddress}, " +
+ "online=#{online} " +
+ "WHERE deviceId=#{deviceId}")
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);
}
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java
index 96b55b0..cebb30b 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java
@@ -6,7 +6,6 @@
import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
import com.genersoft.iot.vmp.storager.dao.DeviceChannelMapper;
-import com.genersoft.iot.vmp.storager.dao.DeviceMapper;
import com.genersoft.iot.vmp.utils.redis.RedisUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -21,9 +20,6 @@
@Autowired
private RedisUtil redis;
-
- @Autowired
- private DeviceMapper deviceMapper;
@Autowired
private DeviceChannelMapper deviceChannelMapper;
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java
index 1288efc..01ed247 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java
@@ -2,19 +2,17 @@
import java.util.*;
-import com.genersoft.iot.vmp.common.PageResult;
-import com.genersoft.iot.vmp.common.StreamInfo;
-import com.genersoft.iot.vmp.conf.MediaServerConfig;
import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
import com.genersoft.iot.vmp.storager.dao.DeviceChannelMapper;
import com.genersoft.iot.vmp.storager.dao.DeviceMapper;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import io.swagger.models.auth.In;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
-import com.genersoft.iot.vmp.common.VideoManagerConstants;
import com.genersoft.iot.vmp.gb28181.bean.Device;
import com.genersoft.iot.vmp.storager.IVideoManagerStorager;
-import com.genersoft.iot.vmp.utils.redis.RedisUtil;
import org.springframework.util.StringUtils;
/**
@@ -50,7 +48,7 @@
* @return true锛氬垱寤烘垚鍔� false锛氬垱寤哄け璐�
*/
@Override
- public boolean create(Device device) {
+ public synchronized boolean create(Device device) {
return deviceMapper.add(device) > 0;
}
@@ -63,69 +61,26 @@
* @return true锛氭洿鏂版垚鍔� false锛氭洿鏂板け璐�
*/
@Override
- public boolean updateDevice(Device device) {
-// if (deviceMap.get(device.getDeviceId()) == null) {
-// deviceMap.put(device.getDeviceId(), new HashMap<String, HashSet<String>>());
-// }
- // 鏇存柊device涓殑閫氶亾鏁伴噺
-// device.setChannelCount(deviceMap.get(device.getDeviceId()).size());
- int result = deviceMapper.update(device);
- // 瀛樺偍device
- return result > 0;
-
+ public synchronized boolean updateDevice(Device device) {
+ Device deviceByDeviceId = deviceMapper.getDeviceByDeviceId(device.getDeviceId());
+ if (deviceByDeviceId == null) {
+ return deviceMapper.add(device) > 0;
+ }else {
+ return deviceMapper.update(device) > 0;
+ }
}
@Override
- public void updateChannel(String deviceId, DeviceChannel channel) {
+ public synchronized void updateChannel(String deviceId, DeviceChannel channel) {
String channelId = channel.getChannelId();
channel.setDeviceId(deviceId);
- deviceChannelMapper.update(channel);
-
-// HashMap<String, HashSet<String>> channelMap = deviceMap.get(deviceId);
-// if (channelMap == null) return;
-// // 浣滀负鐖惰澶�, 纭畾鑷繁鐨勫瓙鑺傜偣鏁�
-// if (channelMap.get(channelId) == null) {
-// channelMap.put(channelId, new HashSet<String>());
-// }else if (channelMap.get(channelId).size() > 0) {
-// channel.setSubCount(channelMap.get(channelId).size());
-// }
-//
-// // 瀛樺偍閫氶亾
-// redis.set(VideoManagerConstants.CACHEKEY_PREFIX + deviceId +
-// "_" + channel.getChannelId() +
-// "_" + (channel.getStatus() == 1 ? "on":"off") +
-// "_" + (channelMap.get(channelId).size() > 0)+
-// "_" + (StringUtils.isEmpty(channel.getParentId())?null:channel.getParentId()),
-// channel);
-// // 鏇存柊device涓殑閫氶亾鏁伴噺
-// Device device = (Device)redis.get(VideoManagerConstants.DEVICE_PREFIX+deviceId);
-// device.setChannelCount(deviceMap.get(deviceId).size());
-// redis.set(VideoManagerConstants.DEVICE_PREFIX+device.getDeviceId(), device);
-//
-//
-// // 濡傛灉鏈夌埗璁惧,鏇存柊鐖惰澶囧唴瀛愯妭鐐规暟
-// String parentId = channel.getParentId();
-// if (!StringUtils.isEmpty(parentId) && !parentId.equals(deviceId)) {
-//
-// if (channelMap.get(parentId) == null) {
-// channelMap.put(parentId, new HashSet<String>());
-// }
-// channelMap.get(parentId).add(channelId);
-//
-// DeviceChannel deviceChannel = queryChannel(deviceId, parentId);
-// if (deviceChannel != null) {
-// deviceChannel.setSubCount(channelMap.get(parentId).size());
-// redis.set(VideoManagerConstants.CACHEKEY_PREFIX + deviceId +
-// "_" + deviceChannel.getChannelId() +
-// "_" + (deviceChannel.getStatus() == 1 ? "on":"off") +
-// "_" + (channelMap.get(deviceChannel.getChannelId()).size() > 0)+
-// "_" + (StringUtils.isEmpty(deviceChannel.getParentId())?null:deviceChannel.getParentId()),
-// deviceChannel);
-//
-// }
-// }
-
+ DeviceChannel deviceChannel = deviceChannelMapper.queryChannel(deviceId, channelId);
+ if (deviceChannel == null) {
+ deviceChannelMapper.add(channel);
+ }else {
+ deviceChannelMapper.update(channel);
+ }
}
/**
@@ -140,179 +95,45 @@
}
@Override
- public PageResult queryChannelsByDeviceId(String deviceId, String query, Boolean hasSubChannel, String online, int page, int count) {
+ public PageInfo queryChannelsByDeviceId(String deviceId, String query, Boolean hasSubChannel, Boolean online, int page, int count) {
// 鑾峰彇鍒版墍鏈夋鍦ㄦ挱鏀剧殑娴�
- List<DeviceChannel> result = new ArrayList<>();
- PageResult pageResult = new PageResult<DeviceChannel>();
-
- deviceChannelMapper.queryChannelsByDeviceId(deviceId);
-// String queryContent = "*";
-// if (!StringUtils.isEmpty(query)) queryContent = String.format("*%S*",query);
-// String queryHasSubChannel = "*";
-// if (hasSubChannel != null) queryHasSubChannel = hasSubChannel?"true":"false";
-// String queryOnline = "*";
-// if (!StringUtils.isEmpty(online)) queryOnline = online;
-// String queryStr = VideoManagerConstants.CACHEKEY_PREFIX + deviceId +
-// "_" + queryContent + // 鎼滅储缂栧彿鍜屽悕绉�
-// "_" + queryOnline + // 鎼滅储鏄惁鍦ㄧ嚎
-// "_" + queryHasSubChannel + // 鎼滅储鏄惁鍚湁瀛愯妭鐐�
-// "_" + "*";
-// List<Object> deviceChannelList = redis.scan(queryStr);
-// //瀵规煡璇㈢粨鏋滄帓搴忥紝閬垮厤鍑虹幇閫氶亾鎺掑垪椤哄簭涔卞簭鐨勬儏鍐�
-// Collections.sort(deviceChannelList,new Comparator<Object>(){
-// @Override
-// public int compare(Object o1, Object o2) {
-// return o1.toString().compareToIgnoreCase(o2.toString());
-// }
-// });
-// pageResult.setPage(page);
-// pageResult.setCount(count);
-// pageResult.setTotal(deviceChannelList.size());
-// int maxCount = (page + 1 ) * count;
-// if (deviceChannelList != null && deviceChannelList.size() > 0 ) {
-// for (int i = page * count; i < (pageResult.getTotal() > maxCount ? maxCount : pageResult.getTotal() ); i++) {
-// DeviceChannel deviceChannel = (DeviceChannel)redis.get((String)deviceChannelList.get(i));
-// StreamInfo streamInfo = stringStreamInfoMap.get(deviceId + "_" + deviceChannel.getChannelId());
-// deviceChannel.setPlay(streamInfo != null);
-// if (streamInfo != null) deviceChannel.setStreamId(streamInfo.getStreamId());
-// result.add(deviceChannel);
-// }
-// pageResult.setData(result);
-// }
-
- return pageResult;
+ PageHelper.startPage(page, count);
+ List<DeviceChannel> all = deviceChannelMapper.queryChannelsByDeviceId(deviceId, null, query, hasSubChannel, online);
+ return new PageInfo<>(all);
}
@Override
public List<DeviceChannel> queryChannelsByDeviceId(String deviceId) {
-// List<DeviceChannel> result = new ArrayList<>();
-//// List<Object> deviceChannelList = redis.keys(VideoManagerConstants.CACHEKEY_PREFIX + deviceId + "_" + "*");
-// List<Object> deviceChannelList = redis.scan(VideoManagerConstants.CACHEKEY_PREFIX + deviceId + "_" + "*");
-//
-// if (deviceChannelList != null && deviceChannelList.size() > 0 ) {
-// for (int i = 0; i < deviceChannelList.size(); i++) {
-// result.add((DeviceChannel)redis.get((String) deviceChannelList.get(i)));
-// }
-// }
- return deviceChannelMapper.queryChannelsByDeviceId(deviceId);
+ return deviceChannelMapper.queryChannelsByDeviceId(deviceId, null,null, null, null);
}
@Override
- public PageResult querySubChannels(String deviceId, String parentChannelId, String query, Boolean hasSubChannel, String online, int page, int count) {
-
- deviceChannelMapper.queryChannelsByDeviceId(deviceId, parentChannelId);
-
-// List<DeviceChannel> allDeviceChannels = new ArrayList<>();
-// String queryContent = "*";
-// if (!StringUtils.isEmpty(query)) queryContent = String.format("*%S*",query);
-// String queryHasSubChannel = "*";
-// if (hasSubChannel != null) queryHasSubChannel = hasSubChannel?"true":"false";
-// String queryOnline = "*";
-// if (!StringUtils.isEmpty(online)) queryOnline = online;
-// String queryStr = VideoManagerConstants.CACHEKEY_PREFIX + deviceId +
-// "_" + queryContent + // 鎼滅储缂栧彿鍜屽悕绉�
-// "_" + queryOnline + // 鎼滅储鏄惁鍦ㄧ嚎
-// "_" + queryHasSubChannel + // 鎼滅储鏄惁鍚湁瀛愯妭鐐�
-// "_" + parentChannelId;
-//
-//// List<Object> deviceChannelList = redis.keys(queryStr);
-// List<Object> deviceChannelList = redis.scan(queryStr);
-//
-// if (deviceChannelList != null && deviceChannelList.size() > 0 ) {
-// for (int i = 0; i < deviceChannelList.size(); i++) {
-// DeviceChannel deviceChannel = (DeviceChannel)redis.get((String)deviceChannelList.get(i));
-// if (deviceChannel.getParentId() != null && deviceChannel.getParentId().equals(parentChannelId)) {
-// allDeviceChannels.add(deviceChannel);
-// }
-// }
-// }
-// int maxCount = (page + 1 ) * count;
- PageResult pageResult = new PageResult<DeviceChannel>();
-// pageResult.setPage(page);
-// pageResult.setCount(count);
-// pageResult.setTotal(allDeviceChannels.size());
-//
-// if (allDeviceChannels.size() > 0) {
-// pageResult.setData(allDeviceChannels.subList(
-// page * count, pageResult.getTotal() > maxCount ? maxCount : pageResult.getTotal()
-// ));
-// }
- return pageResult;
- }
-
- public List<DeviceChannel> querySubChannels(String deviceId, String parentChannelId) {
- List<DeviceChannel> allDeviceChannels = new ArrayList<>();
-// List<Object> deviceChannelList = redis.keys(VideoManagerConstants.CACHEKEY_PREFIX + deviceId + "_" + "*");
-// List<Object> deviceChannelList = redis.scan(VideoManagerConstants.CACHEKEY_PREFIX + deviceId + "_" + "*");
-//
-// if (deviceChannelList != null && deviceChannelList.size() > 0 ) {
-// for (int i = 0; i < deviceChannelList.size(); i++) {
-// DeviceChannel deviceChannel = (DeviceChannel)redis.get((String)deviceChannelList.get(i));
-// if (deviceChannel.getParentId() != null && deviceChannel.getParentId().equals(parentChannelId)) {
-// allDeviceChannels.add(deviceChannel);
-// }
-// }
-// }
-
- return allDeviceChannels;
+ public PageInfo<DeviceChannel> querySubChannels(String deviceId, String parentChannelId, String query, Boolean hasSubChannel, String online, int page, int count) {
+ PageHelper.startPage(page, count);
+ List<DeviceChannel> all = deviceChannelMapper.queryChannelsByDeviceId(deviceId, parentChannelId, null, null, null);
+ return new PageInfo<>(all);
}
@Override
public DeviceChannel queryChannel(String deviceId, String channelId) {
- DeviceChannel deviceChannel = null;
return deviceChannelMapper.queryChannel(deviceId, channelId);
-//// List<Object> deviceChannelList = redis.keys(VideoManagerConstants.CACHEKEY_PREFIX + deviceId +
-// List<Object> deviceChannelList = redis.scan(VideoManagerConstants.CACHEKEY_PREFIX + deviceId +
-// "_" + channelId + "*");
-// if (deviceChannelList != null && deviceChannelList.size() > 0 ) {
-// deviceChannel = (DeviceChannel)redis.get((String)deviceChannelList.get(0));
-// }
-// return deviceChannel;
}
/**
* 鑾峰彇澶氫釜璁惧
*
- * @param deviceIds 璁惧ID鏁扮粍
- * @return List<Device> 璁惧瀵硅薄鏁扮粍
+ * @param page 褰撳墠椤垫暟
+ * @param count 姣忛〉鏁伴噺
+ * @return PageInfo<Device> 鍒嗛〉璁惧瀵硅薄鏁扮粍
*/
@Override
- public PageResult<Device> queryVideoDeviceList(String[] deviceIds, int page, int count) {
- List<Device> devices = new ArrayList<>();
- PageResult pageResult = new PageResult<Device>();
-// pageResult.setPage(page);
-// pageResult.setCount(count);
-// Device device = null;
-//
-// if (deviceIds == null || deviceIds.length == 0) {
-//
-//// List<Object> deviceIdList = redis.keys(VideoManagerConstants.DEVICE_PREFIX+"*");
-// List<Object> deviceIdList = redis.scan(VideoManagerConstants.DEVICE_PREFIX+"*");
-// pageResult.setTotal(deviceIdList.size());
-// int maxCount = (page + 1)* count;
-// for (int i = page * count; i < (pageResult.getTotal() > maxCount ? maxCount : pageResult.getTotal() ); i++) {
-// // devices.add((Device)redis.get((String)deviceIdList.get(i)));
-// device =(Device)redis.get((String)deviceIdList.get(i));
-// if (redis.scan(VideoManagerConstants.KEEPLIVEKEY_PREFIX+device.getDeviceId()).size() == 0){
-// // outline(device.getDeviceId());
-// }
-// devices.add(device);
-// }
-// } else {
-// for (int i = 0; i < deviceIds.length; i++) {
-// // devices.add((Device)redis.get(VideoManagerConstants.DEVICE_PREFIX+deviceIds[i]));
-// device = (Device)redis.get(VideoManagerConstants.DEVICE_PREFIX+deviceIds[i]);
-// if (redis.scan(VideoManagerConstants.KEEPLIVEKEY_PREFIX+device.getDeviceId()).size() == 0){
-// // outline(device.getDeviceId());
-// }
-// devices.add(device);
-// }
-// }
-// pageResult.setData(devices);
- return pageResult;
+ public PageInfo<Device> queryVideoDeviceList(int page, int count) {
+ PageHelper.startPage(page, count);
+ List<Device> all = deviceMapper.getDevices();
+ return new PageInfo<>(all);
}
/**
@@ -322,26 +143,6 @@
*/
@Override
public List<Device> queryVideoDeviceList() {
-
-// if (deviceIds == null || deviceIds.length == 0) {
-//// List<Object> deviceIdList = redis.keys(VideoManagerConstants.DEVICE_PREFIX+"*");
-// List<Object> deviceIdList = redis.scan(VideoManagerConstants.DEVICE_PREFIX+"*");
-// for (int i = 0; i < deviceIdList.size(); i++) {
-// device =(Device)redis.get((String)deviceIdList.get(i));
-// if (redis.scan(VideoManagerConstants.KEEPLIVEKEY_PREFIX+device.getDeviceId()).size() == 0){
-// outline(device.getDeviceId());
-// }
-// devices.add(device);
-// }
-// } else {
-// for (int i = 0; i < deviceIds.length; i++) {
-// device = (Device)redis.get(VideoManagerConstants.DEVICE_PREFIX+deviceIds[i]);
-// if (redis.scan(VideoManagerConstants.KEEPLIVEKEY_PREFIX+device.getDeviceId()).size() == 0){
-// outline(device.getDeviceId());
-// }
-// devices.add(device);
-// }
-// }
List<Device> deviceList = deviceMapper.getDevices();
return deviceList;
@@ -367,9 +168,13 @@
* @return true锛氭洿鏂版垚鍔� false锛氭洿鏂板け璐�
*/
@Override
- public boolean online(String deviceId) {
+ public synchronized boolean online(String deviceId) {
Device device = deviceMapper.getDeviceByDeviceId(deviceId);
device.setOnline(1);
+ System.out.println("鏇存柊璁惧鍦ㄧ嚎");
+ if (device == null) {
+ return false;
+ }
return deviceMapper.update(device) > 0;
}
@@ -380,14 +185,10 @@
* @return true锛氭洿鏂版垚鍔� false锛氭洿鏂板け璐�
*/
@Override
- public boolean outline(String deviceId) {
-// Device device = (Device)redis.get(VideoManagerConstants.DEVICE_PREFIX+deviceId);
-// if (device == null) return false;
-// device.setOnline(0);
-// return redis.set(VideoManagerConstants.DEVICE_PREFIX+device.getDeviceId(), device);
-
+ public synchronized boolean outline(String deviceId) {
Device device = deviceMapper.getDeviceByDeviceId(deviceId);
device.setOnline(0);
+ System.out.println("鏇存柊璁惧绂荤嚎");
return deviceMapper.update(device) > 0;
}
diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/device/DeviceController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/device/DeviceController.java
index 65e294a..d64b632 100644
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/device/DeviceController.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/device/DeviceController.java
@@ -1,15 +1,14 @@
package com.genersoft.iot.vmp.vmanager.device;
-import java.util.List;
-
-import com.genersoft.iot.vmp.common.PageResult;
import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage;
+import com.github.pagehelper.PageInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
+import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.context.request.async.DeferredResult;
@@ -53,13 +52,13 @@
}
@GetMapping("/devices")
- public PageResult<Device> devices(int page, int count){
+ public PageInfo<Device> devices(int page, int count){
if (logger.isDebugEnabled()) {
logger.debug("鏌ヨ鎵�鏈夎棰戣澶嘇PI璋冪敤");
}
- return storager.queryVideoDeviceList(null, page, count);
+ return storager.queryVideoDeviceList(page, count);
}
/**
@@ -69,18 +68,33 @@
* @param count 姣忛〉鏉℃暟
* @return 閫氶亾鍒楄〃
*/
+ /**
+ * 鍒嗛〉鏌ヨ閫氶亾鏁�
+ *
+ * @param deviceId 璁惧id
+ * @param page 褰撳墠椤�
+ * @param count 姣忛〉鏉℃暟
+ * @param query 鏌ヨ鍐呭
+ * @param online 鏄惁鍦ㄧ嚎 鍦ㄧ嚎 true / 绂荤嚎 false
+ * @param channelType 璁惧 false/瀛愮洰褰� true
+ * @return 閫氶亾鍒楄〃
+ */
@GetMapping("/devices/{deviceId}/channels")
- public ResponseEntity<PageResult> channels(@PathVariable String deviceId,
+ public ResponseEntity<PageInfo> channels(@PathVariable String deviceId,
int page, int count,
@RequestParam(required = false) String query,
- @RequestParam(required = false) String online,
+ @RequestParam(required = false) Boolean online,
@RequestParam(required = false) Boolean channelType
){
if (logger.isDebugEnabled()) {
logger.debug("鏌ヨ鎵�鏈夎棰戣澶嘇PI璋冪敤");
}
- PageResult pageResult = storager.queryChannelsByDeviceId(deviceId, query, channelType, online, page, count);
+ if (StringUtils.isEmpty(query)) {
+ query = null;
+ }
+
+ PageInfo pageResult = storager.queryChannelsByDeviceId(deviceId, query, channelType, online, page, count);
return new ResponseEntity<>(pageResult,HttpStatus.OK);
}
@@ -141,7 +155,7 @@
* @return 瀛愰�氶亾鍒楄〃
*/
@GetMapping("/subChannels/{deviceId}/{channelId}/channels")
- public ResponseEntity<PageResult> subChannels(@PathVariable String deviceId,
+ public ResponseEntity<PageInfo> subChannels(@PathVariable String deviceId,
@PathVariable String channelId,
int page,
int count,
@@ -154,23 +168,23 @@
}
DeviceChannel deviceChannel = storager.queryChannel(deviceId,channelId);
if (deviceChannel == null) {
- PageResult<DeviceChannel> deviceChannelPageResult = new PageResult<>();
+ PageInfo<DeviceChannel> deviceChannelPageResult = new PageInfo<>();
return new ResponseEntity<>(deviceChannelPageResult,HttpStatus.OK);
}
- PageResult pageResult = storager.querySubChannels(deviceId, channelId, query, channelType, online, page, count);
+ PageInfo pageResult = storager.querySubChannels(deviceId, channelId, query, channelType, online, page, count);
return new ResponseEntity<>(pageResult,HttpStatus.OK);
}
@PostMapping("/channel/update/{deviceId}")
- public ResponseEntity<PageResult> updateChannel(@PathVariable String deviceId,DeviceChannel channel){
+ public ResponseEntity<PageInfo> updateChannel(@PathVariable String deviceId,DeviceChannel channel){
storager.updateChannel(deviceId, channel);
return new ResponseEntity<>(null,HttpStatus.OK);
}
@GetMapping("/devices/{deviceId}/transport/{streamMode}")
@PostMapping("/devices/{deviceId}/transport/{streamMode}")
- public ResponseEntity<PageResult> updateTransport(@PathVariable String deviceId, @PathVariable String streamMode){
+ public ResponseEntity<PageInfo> updateTransport(@PathVariable String deviceId, @PathVariable String streamMode){
Device device = storager.queryVideoDevice(deviceId);
device.setStreamMode(streamMode);
storager.updateDevice(device);
diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/device/entity/Device.java b/src/main/java/com/genersoft/iot/vmp/vmanager/device/entity/Device.java
deleted file mode 100644
index e47f796..0000000
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/device/entity/Device.java
+++ /dev/null
@@ -1,401 +0,0 @@
-package com.genersoft.iot.vmp.vmanager.device.entity;
-
-import java.util.List;
-
-import javax.persistence.Column;
-import javax.persistence.Id;
-import javax.persistence.Table;
-import javax.persistence.Transient;
-import javax.validation.constraints.Max;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-
-/**
- * @Description:瑙嗛璁惧淇℃伅
- * @author: songww
- * @date: 2020骞�5鏈�8鏃� 涓嬪崍2:05:56
- */
-@ApiModel(value = "瑙嗛璁惧淇℃伅", description = "瑙嗛璁惧淇℃伅")
-@Table(name="VMP_VIDEODEVICES")
-public class Device {
-
- /**
- * 璁惧Id
- */
- @ApiModelProperty("璁惧缂栧彿")
- @Id
- @Column(name="DEVICE_ID")
- @NotNull(message = "deviceId 涓嶈兘涓� null")
- @Size(min = 4, max = 32, message = "deviceId 蹇呴』澶т簬 4 浣嶅苟涓斿皬浜� 32 浣�")
- private String deviceId;
-
- /**
- * 璁惧鍚嶇О
- */
- @ApiModelProperty("璁惧鍚嶇О")
- @Column(name="DEVICE_NAME")
- @Size(max = 32, message = "deviceName 蹇呴』灏忎簬 32 浣�")
- private String deviceName;
-
- /**
- * 鐢熶骇鍘傚晢
- */
- @ApiModelProperty("鐢熶骇鍘傚晢")
- @Column(name="MANUFACTURER")
- @Size(max = 64, message = "manufacturer 蹇呴』灏忎簬 64 浣�")
- private String manufacturer;
-
- /**
- * 鍨嬪彿
- */
- @ApiModelProperty("鍨嬪彿")
- @Column(name="MODEL")
- @Size(max = 64, message = "manufacturer 蹇呴』灏忎簬 64 浣�")
- private String model;
-
- /**
- * 鍥轰欢鐗堟湰
- */
- @ApiModelProperty("鍥轰欢鐗堟湰")
- @Column(name="FIRMWARE")
- @Size(max = 64, message = "firmware 蹇呴』灏忎簬 64 浣�")
- private String firmware;
-
- /**
- * 閫氫俊鍗忚
- * GB28181 ONVIF
- */
- @ApiModelProperty("閫氫俊鍗忚")
- @Column(name="PROTOCOL")
- @NotNull(message = "protocol 涓嶈兘涓� null")
- @Size(max = 16, message = "protocol 蹇呴』灏忎簬 16 浣�")
- private String protocol;
-
- /**
- * SIP 浼犺緭鍗忚
- * UDP/TCP
- */
- @ApiModelProperty("SIP 浼犺緭鍗忚")
- @Column(name="TRANSPORT")
- @Size(min = 3,max = 3 ,message = "transport 蹇呴』涓� 3 浣�")
- private String transport;
-
- /**
- * 鏁版嵁娴佷紶杈撴ā寮�
- * UDP:udp浼犺緭
- * TCP-ACTIVE锛歵cp涓诲姩妯″紡
- * TCP-PASSIVE锛歵cp琚姩妯″紡
- */
- @ApiModelProperty("鏁版嵁娴佷紶杈撴ā寮�")
- @Column(name="STREAM_MODE")
- @Size(max = 64, message = "streamMode 蹇呴』灏忎簬 16 浣�")
- private String streamMode;
-
- /**
- * IP鍦板潃
- */
- @ApiModelProperty("IP鍦板潃")
- @Column(name="IP")
- @Size(max = 15, message = "streamMode 蹇呴』灏忎簬 15 浣�")
- private String ip;
-
- /**
- * 绔彛鍙�
- */
- @ApiModelProperty("绔彛鍙�")
- @Column(name="PORT")
- @Max(value = 65535,message = "port 鏈�澶у�间负 65535")
- private Integer port;
-
- /**
- * 鍦ㄧ嚎鐘舵�� 1鍦ㄧ嚎, 0绂荤嚎
- */
- @ApiModelProperty("鍦ㄧ嚎鐘舵��")
- @Size(min = 1,max = 1 ,message = "online 蹇呴』涓� 1 浣�")
- @Column(name="ONLINE")
- private String online;
-
- /**
- * 閫氶亾鏁伴噺
- */
- @ApiModelProperty("閫氶亾鏁伴噺")
- @Column(name="CHANNEL_SUM")
- @Max(value = 1000000000,message = "channelSum 鏈�澶у�间负 1000000000")
- private Integer channelSum;
-
- @Override
- public String toString() {
- return "Device{" +
- "deviceId='" + deviceId + '\'' +
- ", deviceName='" + deviceName + '\'' +
- ", manufacturer='" + manufacturer + '\'' +
- ", model='" + model + '\'' +
- ", firmware='" + firmware + '\'' +
- ", protocol='" + protocol + '\'' +
- ", transport='" + transport + '\'' +
- ", streamMode='" + streamMode + '\'' +
- ", ip='" + ip + '\'' +
- ", port=" + port +
- ", online='" + online + '\'' +
- ", channelSum=" + channelSum +
- ", createTime='" + createTime + '\'' +
- ", registerTime='" + registerTime + '\'' +
- ", heartbeatTime='" + heartbeatTime + '\'' +
- ", updateTime='" + updateTime + '\'' +
- ", updatePerson='" + updatePerson + '\'' +
- ", syncTime='" + syncTime + '\'' +
- ", syncPerson='" + syncPerson + '\'' +
- ", username='" + username + '\'' +
- ", password='" + password + '\'' +
- ", channelList=" + channelList +
- '}';
- }
-
- /**
- * 鍒涘缓鏃堕棿
- */
- @ApiModelProperty("鍒涘缓鏃堕棿")
- @Column(name="CREATE_TIME")
- private String createTime;
-
- /**
- * 娉ㄥ唽鏃堕棿
- */
- @ApiModelProperty("娉ㄥ唽鏃堕棿")
- @Column(name="REGISTER_TIME")
- private String registerTime;
-
- /**
- * 蹇冭烦鏃堕棿
- */
- @ApiModelProperty("蹇冭烦鏃堕棿")
- @Column(name="HEARTBEAT_TIME")
- private String heartbeatTime;
-
- /**
- * 淇敼鏃堕棿
- */
- @ApiModelProperty("鏇存柊鏃堕棿")
- @Column(name="UPDATE_TIME")
- private String updateTime;
-
- /**
- * 淇敼浜�
- */
- @ApiModelProperty("淇敼浜�")
- @Column(name="UPDATE_PERSON")
- private String updatePerson;
-
- /**
- * 鍚屾鏃堕棿
- */
- @ApiModelProperty("鍚屾鏃堕棿")
- @Column(name="SYNC_TIME")
- private String syncTime;
-
- /**
- * 鍚屾浜�
- */
- @ApiModelProperty("鍚屾浜�")
- @Column(name="SYNC_PERSON")
- private String syncPerson;
-
- /**
- * ONVIF鍗忚-鐢ㄦ埛鍚�
- */
- @ApiModelProperty("鐢ㄦ埛鍚�")
- @Column(name="USERNAME")
- @Size(max = 32, message = "username 蹇呴』灏忎簬 32 浣�")
- private String username;
-
- /**
- * ONVIF鍗忚-瀵嗙爜
- */
- @ApiModelProperty("瀵嗙爜")
- @Size(max = 32, message = "password 蹇呴』灏忎簬 32 浣�")
- @Column(name="PASSWORD")
- private String password;
-
- @Transient
- private List<DeviceChannel> channelList;
-
-
- public String getDeviceId() {
- return deviceId;
- }
-
- public void setDeviceId(String deviceId) {
- this.deviceId = deviceId;
- }
-
- public String getDeviceName() {
- return deviceName;
- }
-
- public void setDeviceName(String deviceName) {
- this.deviceName = deviceName;
- }
-
- public String getManufacturer() {
- return manufacturer;
- }
-
- public void setManufacturer(String manufacturer) {
- this.manufacturer = manufacturer;
- }
-
- public String getModel() {
- return model;
- }
-
- public void setModel(String model) {
- this.model = model;
- }
-
- public String getFirmware() {
- return firmware;
- }
-
- public void setFirmware(String firmware) {
- this.firmware = firmware;
- }
-
- public String getProtocol() {
- return protocol;
- }
-
- public void setProtocol(String protocol) {
- this.protocol = protocol;
- }
-
- public String getTransport() {
- return transport;
- }
-
- public void setTransport(String transport) {
- this.transport = transport;
- }
-
- public String getStreamMode() {
- return streamMode;
- }
-
- public void setStreamMode(String streamMode) {
- this.streamMode = streamMode;
- }
-
- public String getIp() {
- return ip;
- }
-
- public void setIp(String ip) {
- this.ip = ip;
- }
-
- public Integer getPort() {
- return port;
- }
-
- public void setPort(Integer port) {
- this.port = port;
- }
-
- public String getOnline() {
- return online;
- }
-
- public void setOnline(String online) {
- this.online = online;
- }
-
- public Integer getChannelSum() {
- return channelSum;
- }
-
- public void setChannelSum(Integer channelSum) {
- this.channelSum = channelSum;
- }
-
- public String getCreateTime() {
- return createTime;
- }
-
- public void setCreateTime(String createTime) {
- this.createTime = createTime;
- }
-
- public String getRegisterTime() {
- return registerTime;
- }
-
- public void setRegisterTime(String registerTime) {
- this.registerTime = registerTime;
- }
-
- public String getHeartbeatTime() {
- return heartbeatTime;
- }
-
- public void setHeartbeatTime(String heartbeatTime) {
- this.heartbeatTime = heartbeatTime;
- }
-
- public String getUpdateTime() {
- return updateTime;
- }
-
- public void setUpdateTime(String updateTime) {
- this.updateTime = updateTime;
- }
-
- public String getUpdatePerson() {
- return updatePerson;
- }
-
- public void setUpdatePerson(String updatePerson) {
- this.updatePerson = updatePerson;
- }
-
- public String getSyncTime() {
- return syncTime;
- }
-
- public void setSyncTime(String syncTime) {
- this.syncTime = syncTime;
- }
-
- public String getSyncPerson() {
- return syncPerson;
- }
-
- public void setSyncPerson(String syncPerson) {
- this.syncPerson = syncPerson;
- }
-
- public String getUsername() {
- return username;
- }
-
- public void setUsername(String username) {
- this.username = username;
- }
-
- public String getPassword() {
- return password;
- }
-
- public void setPassword(String password) {
- this.password = password;
- }
-
- public List<DeviceChannel> getChannelList() {
- return channelList;
- }
-
- public void setChannelList(List<DeviceChannel> channelList) {
- this.channelList = channelList;
- }
-}
diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/device/entity/DeviceChannel.java b/src/main/java/com/genersoft/iot/vmp/vmanager/device/entity/DeviceChannel.java
deleted file mode 100644
index bedd075..0000000
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/device/entity/DeviceChannel.java
+++ /dev/null
@@ -1,385 +0,0 @@
-package com.genersoft.iot.vmp.vmanager.device.entity;
-
-import javax.persistence.Column;
-import javax.persistence.Id;
-import javax.persistence.Table;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-
-/**
- * @Description:璁惧閫氶亾淇℃伅
- * @author: songww
- * @date: 2020骞�5鏈�20鏃� 涓嬪崍9:00:46
- */
-@ApiModel(value = "璁惧閫氶亾淇℃伅", description = "璁惧閫氶亾淇℃伅")
-@Table(name="VMP_VIDEOCHANNELS")
-public class DeviceChannel {
-
- /**
- * 閫氶亾缂栧彿
- */
- @ApiModelProperty("閫氶亾缂栧彿")
- @Id
- @Column(name="CHANNEL_ID")
- private String channelId;
-
- /**
- * 璁惧缂栧彿
- */
- @ApiModelProperty("璁惧缂栧彿")
- @Column(name="DEVICE_ID")
- private String deviceId;
-
- /**
- * 閫氶亾鍚�
- */
- @ApiModelProperty("閫氶亾鍚�")
- @Column(name="CHANNEL_NAME")
- private String channelName;
-
- /**
- * 鐢熶骇鍘傚晢
- */
- @ApiModelProperty("鐢熶骇鍘傚晢")
- @Column(name="MANUFACTURER")
- private String manufacture;
-
- /**
- * 鍨嬪彿
- */
- @ApiModelProperty("鍨嬪彿")
- @Column(name="MODEL")
- private String model;
-
- /**
- * 璁惧褰掑睘
- */
- @ApiModelProperty("璁惧褰掑睘")
- @Column(name="OWNER")
- private String owner;
-
- /**
- * 琛屾斂鍖哄煙
- */
- @ApiModelProperty("琛屾斂鍖哄煙")
- @Column(name="CIVIL_CODE")
- private String civilCode;
-
- /**
- * 璀﹀尯
- */
- @ApiModelProperty("璀﹀尯")
- @Column(name="BLOCK")
- private String block;
-
- /**
- * 瀹夎鍦板潃
- */
- @ApiModelProperty("瀹夎鍦板潃")
- @Column(name="ADDRESS")
- private String address;
-
- /**
- * 鏄惁鏈夊瓙璁惧 1鏈�, 0娌℃湁
- */
- @ApiModelProperty("鏄惁鏈夊瓙璁惧")
- @Column(name="PARENTAL")
- private String parental;
-
- /**
- * 鐖剁骇id
- */
- @ApiModelProperty("鐖剁骇缂栫爜")
- @Column(name="PARENT_ID")
- private String parentId;
-
- /**
- * 淇′护瀹夊叏妯″紡 缂虹渷涓�0; 0:涓嶉噰鐢�; 2: S/MIME绛惧悕鏂瑰紡; 3: S/ MIME鍔犲瘑绛惧悕鍚屾椂閲囩敤鏂瑰紡; 4:鏁板瓧鎽樿鏂瑰紡
- */
- @ApiModelProperty("淇′护瀹夊叏妯″紡")
- @Column(name="SAFETY_WAY")
- private String safetyWay;
-
- /**
- * 娉ㄥ唽鏂瑰紡 缂虹渷涓�1;1:绗﹀悎IETFRFC3261鏍囧噯鐨勮璇佹敞鍐屾ā 寮�; 2:鍩轰簬鍙d护鐨勫弻鍚戣璇佹敞鍐屾ā寮�; 3:鍩轰簬鏁板瓧璇佷功鐨勫弻鍚戣璇佹敞鍐屾ā寮�
- */
- @ApiModelProperty("娉ㄥ唽鏂瑰紡")
- @Column(name="REGISTER_WAY")
- private String registerWay;
-
- /**
- * 璇佷功搴忓垪鍙�
- */
- @ApiModelProperty("璇佷功搴忓垪鍙�")
- @Column(name="CERT_NUM")
- private String certNum;
-
- /**
- * 璇佷功鏈夋晥鏍囪瘑 缂虹渷涓�0;璇佷功鏈夋晥鏍囪瘑:0:鏃犳晥1: 鏈夋晥
- */
- @ApiModelProperty("璇佷功鏈夋晥鏍囪瘑")
- @Column(name="CERT_VALID")
- private String certValid;
-
- /**
- * 璇佷功鏃犳晥鍘熷洜鐮�
- */
- @ApiModelProperty("璇佷功鏃犳晥鍘熷洜鐮�")
- @Column(name="CERT_ERRCODE")
- private String certErrCode;
-
- /**
- * 璇佷功缁堟鏈夋晥鏈�
- */
- @ApiModelProperty("璇佷功缁堟鏈夋晥鏈�")
- @Column(name="CERT_ENDTIME")
- private String certEndTime;
-
- /**
- * 淇濆瘑灞炴�� 缂虹渷涓�0; 0:涓嶆秹瀵�, 1:娑夊瘑
- */
- @ApiModelProperty("淇濆瘑灞炴��")
- @Column(name="SECRECY")
- private String secrecy;
-
- /**
- * IP鍦板潃
- */
- @ApiModelProperty("IP鍦板潃")
- @Column(name="IP")
- private String ip;
-
- /**
- * 绔彛鍙�
- */
- @ApiModelProperty("绔彛鍙�")
- @Column(name="PORT")
- private Integer port;
-
- /**
- * 瀵嗙爜
- */
- @ApiModelProperty("瀵嗙爜")
- @Column(name="PASSWORD")
- private String password;
-
- /**
- * 鍦ㄧ嚎/绂荤嚎
- * 1鍦ㄧ嚎,0绂荤嚎
- * 榛樿鍦ㄧ嚎
- * 淇′护:
- * <Status>ON</Status>
- * <Status>OFF</Status>
- * 閬囧埌杩嘚VR涓嬬殑IPC涓嬪彂淇′护鍙互鎺ㄦ祦锛� 浣嗘槸 Status 鍝嶅簲 OFF
- */
- @ApiModelProperty("鐘舵��")
- @Column(name="ONLINE")
- private String online;
-
- /**
- * 缁忓害
- */
- @ApiModelProperty("缁忓害")
- @Column(name="LONGITUDE")
- private double longitude;
-
- /**
- * 绾害
- */
- @ApiModelProperty("绾害")
- @Column(name="LATITUDE")
- private double latitude;
-
- public String getChannelId() {
- return channelId;
- }
-
- public void setChannelId(String channelId) {
- this.channelId = channelId;
- }
-
- public String getDeviceId() {
- return deviceId;
- }
-
- public void setDeviceId(String deviceId) {
- this.deviceId = deviceId;
- }
-
- public String getChannelName() {
- return channelName;
- }
-
- public void setChannelName(String channelName) {
- this.channelName = channelName;
- }
-
- public String getManufacture() {
- return manufacture;
- }
-
- public void setManufacture(String manufacture) {
- this.manufacture = manufacture;
- }
-
- public String getModel() {
- return model;
- }
-
- public void setModel(String model) {
- this.model = model;
- }
-
- public String getOwner() {
- return owner;
- }
-
- public void setOwner(String owner) {
- this.owner = owner;
- }
-
- public String getCivilCode() {
- return civilCode;
- }
-
- public void setCivilCode(String civilCode) {
- this.civilCode = civilCode;
- }
-
- public String getBlock() {
- return block;
- }
-
- public void setBlock(String block) {
- this.block = block;
- }
-
- public String getAddress() {
- return address;
- }
-
- public void setAddress(String address) {
- this.address = address;
- }
-
- public String getParental() {
- return parental;
- }
-
- public void setParental(String parental) {
- this.parental = parental;
- }
-
- public String getParentId() {
- return parentId;
- }
-
- public void setParentId(String parentId) {
- this.parentId = parentId;
- }
-
- public String getSafetyWay() {
- return safetyWay;
- }
-
- public void setSafetyWay(String safetyWay) {
- this.safetyWay = safetyWay;
- }
-
- public String getRegisterWay() {
- return registerWay;
- }
-
- public void setRegisterWay(String registerWay) {
- this.registerWay = registerWay;
- }
-
- public String getCertNum() {
- return certNum;
- }
-
- public void setCertNum(String certNum) {
- this.certNum = certNum;
- }
-
- public String getCertValid() {
- return certValid;
- }
-
- public void setCertValid(String certValid) {
- this.certValid = certValid;
- }
-
- public String getCertErrCode() {
- return certErrCode;
- }
-
- public void setCertErrCode(String certErrCode) {
- this.certErrCode = certErrCode;
- }
-
- public String getCertEndTime() {
- return certEndTime;
- }
-
- public void setCertEndTime(String certEndTime) {
- this.certEndTime = certEndTime;
- }
-
- public String getSecrecy() {
- return secrecy;
- }
-
- public void setSecrecy(String secrecy) {
- this.secrecy = secrecy;
- }
-
- public String getIp() {
- return ip;
- }
-
- public void setIp(String ip) {
- this.ip = ip;
- }
-
- public Integer getPort() {
- return port;
- }
-
- public void setPort(Integer port) {
- this.port = port;
- }
-
- public String getPassword() {
- return password;
- }
-
- public void setPassword(String password) {
- this.password = password;
- }
-
- public String getOnline() {
- return online;
- }
-
- public void setOnline(String online) {
- this.online = online;
- }
-
- public double getLongitude() {
- return longitude;
- }
-
- public void setLongitude(double longitude) {
- this.longitude = longitude;
- }
-
- public double getLatitude() {
- return latitude;
- }
-
- public void setLatitude(double latitude) {
- this.latitude = latitude;
- }
-}
diff --git a/src/main/java/com/genersoft/iot/vmp/web/ApiDeviceController.java b/src/main/java/com/genersoft/iot/vmp/web/ApiDeviceController.java
index def98d8..199a9e6 100644
--- a/src/main/java/com/genersoft/iot/vmp/web/ApiDeviceController.java
+++ b/src/main/java/com/genersoft/iot/vmp/web/ApiDeviceController.java
@@ -1,22 +1,17 @@
package com.genersoft.iot.vmp.web;
-import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
-import com.genersoft.iot.vmp.common.PageResult;
import com.genersoft.iot.vmp.gb28181.bean.Device;
import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
import com.genersoft.iot.vmp.gb28181.event.DeviceOffLineDetector;
import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder;
import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander;
import com.genersoft.iot.vmp.storager.IVideoManagerStorager;
-import com.genersoft.iot.vmp.vmanager.device.DeviceController;
+import com.github.pagehelper.PageInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -68,9 +63,9 @@
devices = storager.queryVideoDeviceList();
result.put("DeviceCount", devices.size());
}else {
- PageResult<Device> deviceList = storager.queryVideoDeviceList(null, start/limit, limit);
+ PageInfo<Device> deviceList = storager.queryVideoDeviceList(start/limit, limit);
result.put("DeviceCount", deviceList.getTotal());
- devices = deviceList.getData();
+ devices = deviceList.getList();
}
JSONArray deviceJSONList = new JSONArray();
@@ -86,8 +81,8 @@
deviceJsonObject.put("Online", device.getOnline() == 1);
deviceJsonObject.put("Password", "");
deviceJsonObject.put("MediaTransport", device.getTransport());
- deviceJsonObject.put("RemoteIP", device.getHost().getIp());
- deviceJsonObject.put("RemotePort", device.getHost().getPort());
+ deviceJsonObject.put("RemoteIP", device.getIp());
+ deviceJsonObject.put("RemotePort", device.getPort());
deviceJsonObject.put("LastRegisterAt", "");
deviceJsonObject.put("LastKeepaliveAt", "");
deviceJsonObject.put("UpdatedAt", "");
@@ -123,9 +118,9 @@
deviceChannels = storager.queryChannelsByDeviceId(serial);
result.put("ChannelCount", deviceChannels.size());
}else {
- PageResult<DeviceChannel> pageResult = storager.queryChannelsByDeviceId(serial, null, null, null,start/limit, limit);
+ PageInfo<DeviceChannel> pageResult = storager.queryChannelsByDeviceId(serial, null, null, null,start/limit, limit);
result.put("ChannelCount", pageResult.getTotal());
- deviceChannels = pageResult.getData();
+ deviceChannels = pageResult.getList();
}
JSONArray channleJSONList = new JSONArray();
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 34f615a..6cee0cb 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -27,6 +27,7 @@
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
+
# [鍙�塢 WVP鐩戝惉鐨凥TTP绔彛, 缃戦〉鍜屾帴鍙h皟鐢ㄩ兘鏄繖涓鍙�
server:
port: 18080
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index caf4dfc..ef46c2a 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,3 +1,3 @@
spring:
profiles:
- active: dev
\ No newline at end of file
+ active: local
\ No newline at end of file
diff --git a/src/main/resources/wvp.sqlite b/src/main/resources/wvp.sqlite
index e781bbc..ab68634 100644
--- a/src/main/resources/wvp.sqlite
+++ b/src/main/resources/wvp.sqlite
Binary files differ
diff --git a/web_src/src/components/channelList.vue b/web_src/src/components/channelList.vue
index b46f1d9..2867d7b 100644
--- a/web_src/src/components/channelList.vue
+++ b/web_src/src/components/channelList.vue
@@ -21,8 +21,8 @@
</el-select>
鍦ㄧ嚎鐘舵��: <el-select size="mini" @change="search" v-model="online" placeholder="璇烽�夋嫨" default-first-option>
<el-option label="鍏ㄩ儴" value=""></el-option>
- <el-option label="鍦ㄧ嚎" value="on"></el-option>
- <el-option label="绂荤嚎" value="off"></el-option>
+ <el-option label="鍦ㄧ嚎" value="true"></el-option>
+ <el-option label="绂荤嚎" value="false"></el-option>
</el-select>
</div>
@@ -161,7 +161,7 @@
.then(function (res) {
console.log(res);
that.total = res.data.total;
- that.deviceChannelList = res.data.data;
+ that.deviceChannelList = res.data.list;
// 闃叉鍑虹幇琛ㄦ牸閿欎綅
that.$nextTick(() => {
that.$refs.channelListTable.doLayout();
diff --git a/web_src/src/components/videoList.vue b/web_src/src/components/videoList.vue
index 50767cc..9e03696 100644
--- a/web_src/src/components/videoList.vue
+++ b/web_src/src/components/videoList.vue
@@ -21,7 +21,7 @@
<el-table-column label="鍦板潃" width="180" align="center">
<template slot-scope="scope">
<div slot="reference" class="name-wrapper">
- <el-tag size="medium">{{ scope.row.host.address }}</el-tag>
+ <el-tag size="medium">{{ scope.row.hostAddress }}</el-tag>
</div>
</template>
</el-table-column>
@@ -140,8 +140,9 @@
} )
.then(function (res) {
console.log(res);
+ console.log(res.data.list);
that.total = res.data.total;
- that.deviceList = res.data.data;
+ that.deviceList = res.data.list;
that.getDeviceListLoading = false;
})
.catch(function (error) {
--
Gitblit v1.8.0