From 0dc1807f621ce9077b58dff40ad4485c9a3d6c40 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期日, 17 四月 2022 19:48:05 +0800
Subject: [PATCH] 优化通道同步添加对SN的判断,精简代码
---
src/main/java/com/genersoft/iot/vmp/gb28181/event/online/OnlineEventListener.java | 3
src/main/java/com/genersoft/iot/vmp/service/IDeviceService.java | 13 --
src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java | 18 ++-
src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java | 13 ++-
src/main/java/com/genersoft/iot/vmp/gb28181/session/CatalogDataCatch.java | 62 +++++++++------
web_src/src/components/dialog/SyncChannelProgress.vue | 45 +++++++----
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java | 4
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java | 8 -
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/CatalogResponseMessageHandler.java | 49 ++++--------
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommander.java | 2
src/main/java/com/genersoft/iot/vmp/gb28181/bean/CatalogData.java | 10 ++
11 files changed, 121 insertions(+), 106 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/CatalogData.java b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/CatalogData.java
index 40f676e..338f8ad 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/CatalogData.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/CatalogData.java
@@ -4,6 +4,7 @@
import java.util.List;
public class CatalogData {
+ private int sn; // 鍛戒护搴忓垪鍙�
private int total;
private List<DeviceChannel> channelList;
private Date lastTime;
@@ -15,6 +16,15 @@
}
private CatalogDataStatus status;
+
+ public int getSn() {
+ return sn;
+ }
+
+ public void setSn(int sn) {
+ this.sn = sn;
+ }
+
public int getTotal() {
return total;
}
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/event/online/OnlineEventListener.java b/src/main/java/com/genersoft/iot/vmp/gb28181/event/online/OnlineEventListener.java
index e454d49..b97457a 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/event/online/OnlineEventListener.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/event/online/OnlineEventListener.java
@@ -54,6 +54,7 @@
@Autowired
private SIPCommander cmder;
+
private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@Override
@@ -76,7 +77,7 @@
if (deviceInStore == null) { //绗竴娆′笂绾�
logger.info("[{}] 棣栨娉ㄥ唽锛屾煡璇㈣澶囦俊鎭互鍙婇�氶亾淇℃伅", device.getDeviceId());
cmder.deviceInfoQuery(device);
- cmder.catalogQuery(device, null);
+ deviceService.sync(device);
}
break;
// 璁惧涓诲姩鍙戦�佸績璺宠Е鍙戠殑鍦ㄧ嚎浜嬩欢
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/session/CatalogDataCatch.java b/src/main/java/com/genersoft/iot/vmp/gb28181/session/CatalogDataCatch.java
index fbc2a32..c3de8a2 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/session/CatalogDataCatch.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/session/CatalogDataCatch.java
@@ -26,28 +26,35 @@
@Autowired
private IVideoManagerStorage storager;
- public void addReady(String key) {
- CatalogData catalogData = data.get(key);
+ public void addReady(Device device, int sn ) {
+ CatalogData catalogData = data.get(device.getDeviceId());
if (catalogData == null || catalogData.getStatus().equals(CatalogData.CatalogDataStatus.end)) {
catalogData = new CatalogData();
catalogData.setChannelList(new ArrayList<>());
+ catalogData.setDevice(device);
+ catalogData.setSn(sn);
catalogData.setStatus(CatalogData.CatalogDataStatus.ready);
catalogData.setLastTime(new Date(System.currentTimeMillis()));
- data.put(key, catalogData);
+ data.put(device.getDeviceId(), catalogData);
}
}
- public void put(String key, int total, Device device, List<DeviceChannel> deviceChannelList) {
- CatalogData catalogData = data.get(key);
+ public void put(String deviceId, int sn, int total, Device device, List<DeviceChannel> deviceChannelList) {
+ CatalogData catalogData = data.get(deviceId);
if (catalogData == null) {
catalogData = new CatalogData();
+ catalogData.setSn(sn);
catalogData.setTotal(total);
catalogData.setDevice(device);
catalogData.setChannelList(new ArrayList<>());
catalogData.setStatus(CatalogData.CatalogDataStatus.runIng);
catalogData.setLastTime(new Date(System.currentTimeMillis()));
- data.put(key, catalogData);
+ data.put(deviceId, catalogData);
}else {
+ // 鍚屼竴涓澶囩殑閫氶亾鍚屾璇锋眰鍙�冭檻涓�涓紝鍏朵粬鐨勭洿鎺ュ拷鐣�
+ if (catalogData.getSn() != sn) {
+ return;
+ }
catalogData.setTotal(total);
catalogData.setDevice(device);
catalogData.setStatus(CatalogData.CatalogDataStatus.runIng);
@@ -56,30 +63,26 @@
}
}
- public List<DeviceChannel> get(String key) {
- CatalogData catalogData = data.get(key);
+ public List<DeviceChannel> get(String deviceId) {
+ CatalogData catalogData = data.get(deviceId);
if (catalogData == null) return null;
return catalogData.getChannelList();
}
- public int getTotal(String key) {
- CatalogData catalogData = data.get(key);
+ public int getTotal(String deviceId) {
+ CatalogData catalogData = data.get(deviceId);
if (catalogData == null) return 0;
return catalogData.getTotal();
}
- public SyncStatus getSyncStatus(String key) {
- CatalogData catalogData = data.get(key);
+ public SyncStatus getSyncStatus(String deviceId) {
+ CatalogData catalogData = data.get(deviceId);
if (catalogData == null) return null;
SyncStatus syncStatus = new SyncStatus();
syncStatus.setCurrent(catalogData.getChannelList().size());
syncStatus.setTotal(catalogData.getTotal());
syncStatus.setErrorMsg(catalogData.getErrorMsg());
return syncStatus;
- }
-
- public void del(String key) {
- data.remove(key);
}
@Scheduled(fixedRate = 5 * 1000) //姣�5绉掓墽琛屼竴娆�, 鍙戠幇鏁版嵁5绉掓湭鏇存柊鍒欑Щ闄ゆ暟鎹苟璁や负鏁版嵁鎺ユ敹瓒呮椂
@@ -92,23 +95,30 @@
Calendar calendarBefore30S = Calendar.getInstance();
calendarBefore30S.setTime(new Date());
calendarBefore30S.set(Calendar.SECOND, calendarBefore30S.get(Calendar.SECOND) - 30);
- for (String key : keys) {
- CatalogData catalogData = data.get(key);
- if (catalogData.getLastTime().before(calendarBefore5S.getTime())) { // 瓒呰繃浜旂鏀朵笉鍒版秷鎭换鍔¤秴鏃讹紝 鍙洿鏂拌繖涓�閮ㄥ垎鏁版嵁
- storager.resetChannels(catalogData.getDevice().getDeviceId(), catalogData.getChannelList());
- String errorMsg = "鏇存柊鎴愬姛锛屽叡" + catalogData.getTotal() + "鏉★紝宸叉洿鏂�" + catalogData.getChannelList().size() + "鏉�";
+ for (String deviceId : keys) {
+ CatalogData catalogData = data.get(deviceId);
+ if ( catalogData.getLastTime().before(calendarBefore5S.getTime())) { // 瓒呰繃浜旂鏀朵笉鍒版秷鎭换鍔¤秴鏃讹紝 鍙洿鏂拌繖涓�閮ㄥ垎鏁版嵁
+ if (catalogData.getStatus().equals(CatalogData.CatalogDataStatus.runIng)) {
+ storager.resetChannels(catalogData.getDevice().getDeviceId(), catalogData.getChannelList());
+ if (catalogData.getTotal() != catalogData.getChannelList().size()) {
+ String errorMsg = "鏇存柊鎴愬姛锛屽叡" + catalogData.getTotal() + "鏉★紝宸叉洿鏂�" + catalogData.getChannelList().size() + "鏉�";
+ catalogData.setErrorMsg(errorMsg);
+ }
+ }else if (catalogData.getStatus().equals(CatalogData.CatalogDataStatus.ready)) {
+ String errorMsg = "鍚屾澶辫触锛岀瓑寰呭洖澶嶈秴鏃�";
+ catalogData.setErrorMsg(errorMsg);
+ }
catalogData.setStatus(CatalogData.CatalogDataStatus.end);
- catalogData.setErrorMsg(errorMsg);
}
- if (catalogData.getLastTime().before(calendarBefore30S.getTime())) { // 瓒呰繃涓夊崄绉掞紝濡傛灉鏍囪涓篹nd鍒欏垹闄�
- data.remove(key);
+ if (catalogData.getStatus().equals(CatalogData.CatalogDataStatus.end) && catalogData.getLastTime().before(calendarBefore30S.getTime())) { // 瓒呰繃涓夊崄绉掞紝濡傛灉鏍囪涓篹nd鍒欏垹闄�
+ data.remove(deviceId);
}
}
}
- public void setChannelSyncEnd(String key, String errorMsg) {
- CatalogData catalogData = data.get(key);
+ public void setChannelSyncEnd(String deviceId, String errorMsg) {
+ CatalogData catalogData = data.get(deviceId);
if (catalogData == null)return;
catalogData.setStatus(CatalogData.CatalogDataStatus.end);
catalogData.setErrorMsg(errorMsg);
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommander.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommander.java
index 1de03bd..aea37b6 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommander.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommander.java
@@ -250,7 +250,7 @@
*
* @param device 瑙嗛璁惧
*/
- boolean catalogQuery(Device device, SipSubscribe.Event errorEvent);
+ boolean catalogQuery(Device device, int sn, SipSubscribe.Event errorEvent);
/**
* 鏌ヨ褰曞儚淇℃伅
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
index 027238b..89e70d0 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
@@ -1208,14 +1208,14 @@
* @param device 瑙嗛璁惧
*/
@Override
- public boolean catalogQuery(Device device, SipSubscribe.Event errorEvent) {
+ public boolean catalogQuery(Device device, int sn, SipSubscribe.Event errorEvent) {
try {
StringBuffer catalogXml = new StringBuffer(200);
String charset = device.getCharset();
catalogXml.append("<?xml version=\"1.0\" encoding=\"" + charset + "\"?>\r\n");
catalogXml.append("<Query>\r\n");
catalogXml.append("<CmdType>Catalog</CmdType>\r\n");
- catalogXml.append("<SN>" + (int)((Math.random()*9+1)*100000) + "</SN>\r\n");
+ catalogXml.append("<SN>" + sn + "</SN>\r\n");
catalogXml.append("<DeviceID>" + device.getDeviceId() + "</DeviceID>\r\n");
catalogXml.append("</Query>\r\n");
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/CatalogResponseMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/CatalogResponseMessageHandler.java
index dbc25fc..2ec8047 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/CatalogResponseMessageHandler.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/CatalogResponseMessageHandler.java
@@ -86,23 +86,17 @@
rootElement = getRootElement(evt, device.getCharset());
Element deviceListElement = rootElement.element("DeviceList");
Element sumNumElement = rootElement.element("SumNum");
- if (sumNumElement == null || deviceListElement == null) {
+ Element snElement = rootElement.element("SN");
+ if (snElement == null || sumNumElement == null || deviceListElement == null) {
responseAck(evt, Response.BAD_REQUEST, "xml error");
return;
}
int sumNum = Integer.parseInt(sumNumElement.getText());
+
if (sumNum == 0) {
// 鏁版嵁宸茬粡瀹屾暣鎺ユ敹
storager.cleanChannelsForDevice(device.getDeviceId());
- RequestMessage msg = new RequestMessage();
- msg.setKey(key);
- WVPResult<Object> result = new WVPResult<>();
- result.setCode(0);
- result.setData(device);
- msg.setData(result);
- result.setMsg("鏇存柊鎴愬姛锛屽叡0鏉�");
- deferredResultHolder.invokeAllResult(msg);
- catalogDataCatch.del(key);
+ catalogDataCatch.setChannelSyncEnd(device.getDeviceId(), null);
}else {
Iterator<Element> deviceListIterator = deviceListElement.elementIterator();
if (deviceListIterator != null) {
@@ -123,24 +117,18 @@
channelList.add(deviceChannel);
}
+ int sn = Integer.parseInt(snElement.getText());
logger.info("鏀跺埌鏉ヨ嚜璁惧銆恵}銆戠殑閫氶亾: {}涓紝{}/{}", device.getDeviceId(), channelList.size(), catalogDataCatch.get(key) == null ? 0 :catalogDataCatch.get(key).size(), sumNum);
- catalogDataCatch.put(key, sumNum, device, channelList);
- if (catalogDataCatch.get(key).size() == sumNum) {
+ catalogDataCatch.put(device.getDeviceId(), sn, sumNum, device, channelList);
+ if (catalogDataCatch.get(device.getDeviceId()).size() == sumNum) {
// 鏁版嵁宸茬粡瀹屾暣鎺ユ敹
- boolean resetChannelsResult = storager.resetChannels(device.getDeviceId(), catalogDataCatch.get(key));
- RequestMessage msg = new RequestMessage();
- msg.setKey(key);
- WVPResult<Object> result = new WVPResult<>();
- result.setCode(0);
- result.setData(device);
- if (resetChannelsResult || sumNum ==0) {
- result.setMsg("鏇存柊鎴愬姛锛屽叡" + sumNum + "鏉★紝宸叉洿鏂�" + catalogDataCatch.get(key).size() + "鏉�");
+ boolean resetChannelsResult = storager.resetChannels(device.getDeviceId(), catalogDataCatch.get(device.getDeviceId()));
+ if (!resetChannelsResult) {
+ String errorMsg = "鎺ユ敹鎴愬姛锛屽啓鍏ュけ璐ワ紝鍏�" + sumNum + "鏉★紝宸叉帴鏀�" + catalogDataCatch.get(device.getDeviceId()).size() + "鏉�";
+ catalogDataCatch.setChannelSyncEnd(device.getDeviceId(), errorMsg);
}else {
- result.setMsg("鎺ユ敹鎴愬姛锛屽啓鍏ュけ璐ワ紝鍏�" + sumNum + "鏉★紝宸叉帴鏀�" + catalogDataCatch.get(key).size() + "鏉�");
+ catalogDataCatch.setChannelSyncEnd(device.getDeviceId(), null);
}
- msg.setData(result);
- deferredResultHolder.invokeAllResult(msg);
- catalogDataCatch.del(key);
}
}
// 鍥炲200 OK
@@ -228,21 +216,18 @@
}
public SyncStatus getChannelSyncProgress(String deviceId) {
- String key = DeferredResultHolder.CALLBACK_CMD_CATALOG + deviceId;
- if (catalogDataCatch.get(key) == null) {
+ if (catalogDataCatch.get(deviceId) == null) {
return null;
}else {
- return catalogDataCatch.getSyncStatus(key);
+ return catalogDataCatch.getSyncStatus(deviceId);
}
}
- public void setChannelSyncReady(String deviceId) {
- String key = DeferredResultHolder.CALLBACK_CMD_CATALOG + deviceId;
- catalogDataCatch.addReady(key);
+ public void setChannelSyncReady(Device device, int sn) {
+ catalogDataCatch.addReady(device, sn);
}
public void setChannelSyncEnd(String deviceId, String errorMsg) {
- String key = DeferredResultHolder.CALLBACK_CMD_CATALOG + deviceId;
- catalogDataCatch.setChannelSyncEnd(key, errorMsg);
+ catalogDataCatch.setChannelSyncEnd(deviceId, errorMsg);
}
}
diff --git a/src/main/java/com/genersoft/iot/vmp/service/IDeviceService.java b/src/main/java/com/genersoft/iot/vmp/service/IDeviceService.java
index 17cf7f4..08ccfff 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/IDeviceService.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/IDeviceService.java
@@ -44,15 +44,8 @@
SyncStatus getChannelSyncStatus(String deviceId);
/**
- * 璁剧疆閫氶亾鍚屾鐘舵��
- * @param deviceId 璁惧ID
+ * 閫氶亾鍚屾
+ * @param device
*/
- void setChannelSyncReady(String deviceId);
-
- /**
- * 璁剧疆鍚屾缁撴潫
- * @param deviceId 璁惧ID
- * @param errorMsg 閿欒淇℃伅
- */
- void setChannelSyncEnd(String deviceId, String errorMsg);
+ void sync(Device device);
}
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java
index d343286..f36b3ae 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java
@@ -100,12 +100,16 @@
}
@Override
- public void setChannelSyncReady(String deviceId) {
- catalogResponseMessageHandler.setChannelSyncReady(deviceId);
- }
-
- @Override
- public void setChannelSyncEnd(String deviceId, String errorMsg) {
- catalogResponseMessageHandler.setChannelSyncEnd(deviceId, errorMsg);
+ public void sync(Device device) {
+ if (catalogResponseMessageHandler.getChannelSyncProgress(device.getDeviceId()) != null) {
+ logger.info("寮�鍚悓姝ユ椂鍙戠幇鍚屾宸茬粡瀛樺湪");
+ return;
+ }
+ int sn = (int)((Math.random()*9+1)*100000);
+ catalogResponseMessageHandler.setChannelSyncReady(device, sn);
+ sipCommander.catalogQuery(device, sn, event -> {
+ String errorMsg = String.format("鍚屾閫氶亾澶辫触锛岄敊璇爜锛� %s, %s", event.statusCode, event.msg);
+ catalogResponseMessageHandler.setChannelSyncEnd(device.getDeviceId(), errorMsg);
+ });
}
}
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java
index 20e56d9..a3c5c6c 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java
@@ -238,12 +238,15 @@
@Override
public boolean resetChannels(String deviceId, List<DeviceChannel> deviceChannelList) {
+ if (deviceChannelList == null) {
+ return false;
+ }
TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);
// 鏁版嵁鍘婚噸
List<DeviceChannel> channels = new ArrayList<>();
StringBuilder stringBuilder = new StringBuilder();
Map<String, Integer> subContMap = new HashMap<>();
- if (deviceChannelList.size() > 1) {
+ if (deviceChannelList != null && deviceChannelList.size() > 1) {
// 鏁版嵁鍘婚噸
Set<String> gbIdSet = new HashSet<>();
for (DeviceChannel deviceChannel : deviceChannelList) {
@@ -300,6 +303,7 @@
dataSourceTransactionManager.commit(transactionStatus); //鎵嬪姩鎻愪氦
return true;
}catch (Exception e) {
+ e.printStackTrace();
dataSourceTransactionManager.rollback(transactionStatus);
return false;
}
@@ -415,10 +419,9 @@
TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);
boolean result = false;
try {
- if (platformChannelMapper.delChannelForDeviceId(deviceId) <0 // 鍒犻櫎涓庡浗鏍囧钩鍙扮殑鍏宠仈
- || deviceChannelMapper.cleanChannelsByDeviceId(deviceId) < 0 // 鍒犻櫎浠栫殑閫氶亾
- || deviceMapper.del(deviceId) < 0 // 绉婚櫎璁惧淇℃伅
- ) {
+ platformChannelMapper.delChannelForDeviceId(deviceId);
+ deviceChannelMapper.cleanChannelsByDeviceId(deviceId);
+ if ( deviceMapper.del(deviceId) < 0 ) {
//浜嬪姟鍥炴粴
dataSourceTransactionManager.rollback(transactionStatus);
}
diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java
index 12136f4..cbcb4ff 100644
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceQuery.java
@@ -172,12 +172,8 @@
wvpResult.setData(syncStatus);
return wvpResult;
}
- SyncStatus syncStatusReady = new SyncStatus();
- deviceService.setChannelSyncReady(deviceId);
- cmder.catalogQuery(device, event -> {
- String errorMsg = String.format("鍚屾閫氶亾澶辫触锛岄敊璇爜锛� %s, %s", event.statusCode, event.msg);
- deviceService.setChannelSyncEnd(deviceId, errorMsg);
- });
+ deviceService.sync(device);
+
WVPResult<SyncStatus> wvpResult = new WVPResult<>();
wvpResult.setCode(0);
wvpResult.setMsg("寮�濮嬪悓姝�");
diff --git a/web_src/src/components/dialog/SyncChannelProgress.vue b/web_src/src/components/dialog/SyncChannelProgress.vue
index 1ec16f4..246f1ae 100644
--- a/web_src/src/components/dialog/SyncChannelProgress.vue
+++ b/web_src/src/components/dialog/SyncChannelProgress.vue
@@ -61,23 +61,36 @@
if (!this.syncFlag) {
this.syncFlag = true;
}
- if (res.data.data == null) {
- this.syncStatus = "success"
- this.percentage = 100;
- this.msg = '鍚屾鎴愬姛';
- }else if (res.data.data.total == 0){
- this.msg = `绛夊緟鍚屾涓璥;
- this.timmer = setTimeout(this.getProgress, 300)
- }else if (res.data.data.errorMsg !== null ){
- this.msg = res.data.data.errorMsg;
- this.syncStatus = "exception"
- }else {
- this.total = res.data.data.total;
- this.current = res.data.data.current;
- this.percentage = Math.floor(Number(res.data.data.current)/Number(res.data.data.total)* 10000)/100;
- this.msg = `鍚屾涓�...[${res.data.data.current}/${res.data.data.total}]`;
- this.timmer = setTimeout(this.getProgress, 300)
+
+ if (res.data.data != null) {
+ if (res.data.data.total == 0) {
+ if (res.data.data.errorMsg !== null ){
+ this.msg = res.data.data.errorMsg;
+ this.syncStatus = "exception"
+ }else {
+ this.msg = `绛夊緟鍚屾涓璥;
+ this.timmer = setTimeout(this.getProgress, 300)
+ }
+ }else {
+ if (res.data.data.total == res.data.data.current) {
+ this.syncStatus = "success"
+ this.percentage = 100;
+ this.msg = '鍚屾鎴愬姛';
+ }else {
+ if (res.data.data.errorMsg !== null ){
+ this.msg = res.data.data.errorMsg;
+ this.syncStatus = "exception"
+ }else {
+ this.total = res.data.data.total;
+ this.current = res.data.data.current;
+ this.percentage = Math.floor(Number(res.data.data.current)/Number(res.data.data.total)* 10000)/100;
+ this.msg = `鍚屾涓�...[${res.data.data.current}/${res.data.data.total}]`;
+ this.timmer = setTimeout(this.getProgress, 300)
+ }
+ }
+ }
}
+
}else {
if (this.syncFlag) {
this.syncStatus = "success"
--
Gitblit v1.8.0