Merge branch 'master' into dev/录制计划
commit
d3f53db160
|
@ -175,15 +175,18 @@ public class SendRtpInfo {
|
||||||
return sendRtpItem;
|
return sendRtpItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static SendRtpInfo getInstance(Integer localPort, MediaServer mediaServer, String ip, int port, String ssrc,
|
public static SendRtpInfo getInstance(Integer localPort, MediaServer mediaServer, String ip, Integer port, String ssrc,
|
||||||
String deviceId, String platformId, Integer channelId, boolean isTcp, boolean rtcp,
|
String deviceId, String platformId, Integer channelId, Boolean isTcp, Boolean rtcp,
|
||||||
String serverId) {
|
String serverId) {
|
||||||
if (localPort == 0) {
|
if (localPort == 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
SendRtpInfo sendRtpItem = new SendRtpInfo();
|
SendRtpInfo sendRtpItem = new SendRtpInfo();
|
||||||
sendRtpItem.setIp(ip);
|
sendRtpItem.setIp(ip);
|
||||||
sendRtpItem.setPort(port);
|
if(port != null) {
|
||||||
|
sendRtpItem.setPort(port);
|
||||||
|
}
|
||||||
|
|
||||||
sendRtpItem.setSsrc(ssrc);
|
sendRtpItem.setSsrc(ssrc);
|
||||||
if (deviceId != null) {
|
if (deviceId != null) {
|
||||||
sendRtpItem.setTargetId(deviceId);
|
sendRtpItem.setTargetId(deviceId);
|
||||||
|
|
|
@ -3,6 +3,8 @@ package com.genersoft.iot.vmp.gb28181.bean;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.time.Instant;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 摄像机同步状态
|
* 摄像机同步状态
|
||||||
* @author lin
|
* @author lin
|
||||||
|
@ -23,4 +25,7 @@ public class SyncStatus {
|
||||||
@Schema(description = "是否同步中")
|
@Schema(description = "是否同步中")
|
||||||
private Boolean syncIng;
|
private Boolean syncIng;
|
||||||
|
|
||||||
|
@Schema(description = "时间")
|
||||||
|
private Instant time;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -144,9 +144,21 @@ public class DeviceQuery {
|
||||||
Device device = deviceService.getDeviceByDeviceId(deviceId);
|
Device device = deviceService.getDeviceByDeviceId(deviceId);
|
||||||
boolean status = deviceService.isSyncRunning(deviceId);
|
boolean status = deviceService.isSyncRunning(deviceId);
|
||||||
// 已存在则返回进度
|
// 已存在则返回进度
|
||||||
if (status) {
|
if (deviceService.isSyncRunning(deviceId)) {
|
||||||
SyncStatus channelSyncStatus = deviceService.getChannelSyncStatus(deviceId);
|
SyncStatus channelSyncStatus = deviceService.getChannelSyncStatus(deviceId);
|
||||||
return WVPResult.success(channelSyncStatus);
|
WVPResult wvpResult = new WVPResult();
|
||||||
|
if (channelSyncStatus.getErrorMsg() != null) {
|
||||||
|
wvpResult.setCode(ErrorCode.ERROR100.getCode());
|
||||||
|
wvpResult.setMsg(channelSyncStatus.getErrorMsg());
|
||||||
|
}else if (channelSyncStatus.getTotal() == null || channelSyncStatus.getTotal() == 0){
|
||||||
|
wvpResult.setCode(ErrorCode.SUCCESS.getCode());
|
||||||
|
wvpResult.setMsg("等待通道信息...");
|
||||||
|
}else {
|
||||||
|
wvpResult.setCode(ErrorCode.SUCCESS.getCode());
|
||||||
|
wvpResult.setMsg(ErrorCode.SUCCESS.getMsg());
|
||||||
|
wvpResult.setData(channelSyncStatus);
|
||||||
|
}
|
||||||
|
return wvpResult;
|
||||||
}
|
}
|
||||||
deviceService.sync(device);
|
deviceService.sync(device);
|
||||||
|
|
||||||
|
@ -413,18 +425,19 @@ public class DeviceQuery {
|
||||||
public WVPResult<SyncStatus> getSyncStatus(@PathVariable String deviceId) {
|
public WVPResult<SyncStatus> getSyncStatus(@PathVariable String deviceId) {
|
||||||
SyncStatus channelSyncStatus = deviceService.getChannelSyncStatus(deviceId);
|
SyncStatus channelSyncStatus = deviceService.getChannelSyncStatus(deviceId);
|
||||||
WVPResult<SyncStatus> wvpResult = new WVPResult<>();
|
WVPResult<SyncStatus> wvpResult = new WVPResult<>();
|
||||||
if (channelSyncStatus == null || channelSyncStatus.getTotal() == null) {
|
if (channelSyncStatus == null) {
|
||||||
wvpResult.setCode(0);
|
wvpResult.setCode(ErrorCode.ERROR100.getCode());
|
||||||
wvpResult.setMsg("同步尚未开始");
|
wvpResult.setMsg("同步不存在");
|
||||||
|
}else if (channelSyncStatus.getErrorMsg() != null) {
|
||||||
|
wvpResult.setCode(ErrorCode.ERROR100.getCode());
|
||||||
|
wvpResult.setMsg(channelSyncStatus.getErrorMsg());
|
||||||
|
}else if (channelSyncStatus.getTotal() == null || channelSyncStatus.getTotal() == 0){
|
||||||
|
wvpResult.setCode(ErrorCode.SUCCESS.getCode());
|
||||||
|
wvpResult.setMsg("等待通道信息...");
|
||||||
}else {
|
}else {
|
||||||
if (channelSyncStatus.getErrorMsg() == null) {
|
wvpResult.setCode(ErrorCode.SUCCESS.getCode());
|
||||||
wvpResult.setCode(ErrorCode.SUCCESS.getCode());
|
wvpResult.setMsg(ErrorCode.SUCCESS.getMsg());
|
||||||
wvpResult.setMsg(ErrorCode.SUCCESS.getMsg());
|
wvpResult.setData(channelSyncStatus);
|
||||||
wvpResult.setData(channelSyncStatus);
|
|
||||||
}else {
|
|
||||||
wvpResult.setCode(ErrorCode.ERROR100.getCode());
|
|
||||||
wvpResult.setMsg(channelSyncStatus.getErrorMsg());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return wvpResult;
|
return wvpResult;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package com.genersoft.iot.vmp.gb28181.service.impl;
|
package com.genersoft.iot.vmp.gb28181.service.impl;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson2.JSON;
|
||||||
import com.baomidou.dynamic.datasource.annotation.DS;
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||||
import com.genersoft.iot.vmp.common.CommonCallback;
|
import com.genersoft.iot.vmp.common.CommonCallback;
|
||||||
import com.genersoft.iot.vmp.common.VideoManagerConstants;
|
import com.genersoft.iot.vmp.common.VideoManagerConstants;
|
||||||
|
@ -322,7 +323,8 @@ public class DeviceServiceImpl implements IDeviceService {
|
||||||
@Override
|
@Override
|
||||||
public void sync(Device device) {
|
public void sync(Device device) {
|
||||||
if (catalogResponseMessageHandler.isSyncRunning(device.getDeviceId())) {
|
if (catalogResponseMessageHandler.isSyncRunning(device.getDeviceId())) {
|
||||||
log.info("开启同步时发现同步已经存在");
|
SyncStatus syncStatus = catalogResponseMessageHandler.getChannelSyncProgress(device.getDeviceId());
|
||||||
|
log.info("[同步通道] 同步已存在, 设备: {}, 同步信息: {}", device.getDeviceId(), JSON.toJSON(syncStatus));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
int sn = (int)((Math.random()*9+1)*100000);
|
int sn = (int)((Math.random()*9+1)*100000);
|
||||||
|
|
|
@ -517,7 +517,14 @@ public class PlayServiceImpl implements IPlayService {
|
||||||
}, userSetting.getPlayTimeout());
|
}, userSetting.getPlayTimeout());
|
||||||
|
|
||||||
try {
|
try {
|
||||||
mediaServerService.startSendRtpPassive(mediaServerItem, sendRtpInfo, userSetting.getPlayTimeout() * 1000);
|
Integer localPort = mediaServerService.startSendRtpPassive(mediaServerItem, sendRtpInfo, userSetting.getPlayTimeout() * 1000);
|
||||||
|
if (localPort == null || localPort <= 0) {
|
||||||
|
timeoutCallback.run();
|
||||||
|
mediaServerService.releaseSsrc(mediaServerItem.getId(), sendRtpInfo.getSsrc());
|
||||||
|
sessionManager.removeByStream(sendRtpInfo.getStream());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
sendRtpInfo.setPort(localPort);
|
||||||
}catch (ControllerException e) {
|
}catch (ControllerException e) {
|
||||||
mediaServerService.releaseSsrc(mediaServerItem.getId(), sendRtpInfo.getSsrc());
|
mediaServerService.releaseSsrc(mediaServerItem.getId(), sendRtpInfo.getSsrc());
|
||||||
log.info("[语音对讲]失败 deviceId: {}, channelId: {}", device.getDeviceId(), channel.getDeviceId());
|
log.info("[语音对讲]失败 deviceId: {}, channelId: {}", device.getDeviceId(), channel.getDeviceId());
|
||||||
|
|
|
@ -170,11 +170,16 @@ public class CatalogDataManager implements CommandLineRunner {
|
||||||
syncStatus.setCurrent(catalogData.getRedisKeysForChannel().size());
|
syncStatus.setCurrent(catalogData.getRedisKeysForChannel().size());
|
||||||
syncStatus.setTotal(catalogData.getTotal());
|
syncStatus.setTotal(catalogData.getTotal());
|
||||||
syncStatus.setErrorMsg(catalogData.getErrorMsg());
|
syncStatus.setErrorMsg(catalogData.getErrorMsg());
|
||||||
|
syncStatus.setTime(catalogData.getTime());
|
||||||
if (catalogData.getStatus().equals(CatalogData.CatalogDataStatus.ready) || catalogData.getStatus().equals(CatalogData.CatalogDataStatus.end)) {
|
if (catalogData.getStatus().equals(CatalogData.CatalogDataStatus.ready) || catalogData.getStatus().equals(CatalogData.CatalogDataStatus.end)) {
|
||||||
syncStatus.setSyncIng(false);
|
syncStatus.setSyncIng(false);
|
||||||
}else {
|
}else {
|
||||||
syncStatus.setSyncIng(true);
|
syncStatus.setSyncIng(true);
|
||||||
}
|
}
|
||||||
|
if (catalogData.getErrorMsg() != null) {
|
||||||
|
// 失败的同步信息,返回一次后直接移除
|
||||||
|
dataMap.remove(key);
|
||||||
|
}
|
||||||
return syncStatus;
|
return syncStatus;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -237,7 +242,8 @@ public class CatalogDataManager implements CommandLineRunner {
|
||||||
catalogData.setErrorMsg(errorMsg);
|
catalogData.setErrorMsg(errorMsg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (catalogData.getStatus().equals(CatalogData.CatalogDataStatus.end) && catalogData.getTime().isBefore(instantBefore30S)) { // 超过三十秒,如果标记为end则删除
|
if ((catalogData.getStatus().equals(CatalogData.CatalogDataStatus.end) || catalogData.getStatus().equals(CatalogData.CatalogDataStatus.ready))
|
||||||
|
&& catalogData.getTime().isBefore(instantBefore30S)) { // 超过三十秒,如果标记为end则删除
|
||||||
dataMap.remove(dataKey);
|
dataMap.remove(dataKey);
|
||||||
Set<String> redisKeysForChannel = catalogData.getRedisKeysForChannel();
|
Set<String> redisKeysForChannel = catalogData.getRedisKeysForChannel();
|
||||||
if (redisKeysForChannel != null && !redisKeysForChannel.isEmpty()) {
|
if (redisKeysForChannel != null && !redisKeysForChannel.isEmpty()) {
|
||||||
|
|
|
@ -303,7 +303,7 @@ public class InviteRequestProcessor extends SIPRequestProcessorParent implements
|
||||||
Media media = mediaDescription.getMedia();
|
Media media = mediaDescription.getMedia();
|
||||||
|
|
||||||
Vector mediaFormats = media.getMediaFormats(false);
|
Vector mediaFormats = media.getMediaFormats(false);
|
||||||
if (mediaFormats.contains("96")) {
|
if (mediaFormats.contains("96") || mediaFormats.contains("8")) {
|
||||||
port = media.getMediaPort();
|
port = media.getMediaPort();
|
||||||
//String mediaType = media.getMediaType();
|
//String mediaType = media.getMediaType();
|
||||||
String protocol = media.getProtocol();
|
String protocol = media.getProtocol();
|
||||||
|
|
|
@ -58,7 +58,7 @@ public interface IMediaNodeServerService {
|
||||||
|
|
||||||
Map<String, String> getFFmpegCMDs(MediaServer mediaServer);
|
Map<String, String> getFFmpegCMDs(MediaServer mediaServer);
|
||||||
|
|
||||||
void startSendRtpPassive(MediaServer mediaServer, SendRtpInfo sendRtpItem, Integer timeout);
|
Integer startSendRtpPassive(MediaServer mediaServer, SendRtpInfo sendRtpItem, Integer timeout);
|
||||||
|
|
||||||
void startSendRtpStream(MediaServer mediaServer, SendRtpInfo sendRtpItem);
|
void startSendRtpStream(MediaServer mediaServer, SendRtpInfo sendRtpItem);
|
||||||
|
|
||||||
|
|
|
@ -142,7 +142,7 @@ public interface IMediaServerService {
|
||||||
|
|
||||||
Boolean isStreamReady(MediaServer mediaServer, String rtp, String streamId);
|
Boolean isStreamReady(MediaServer mediaServer, String rtp, String streamId);
|
||||||
|
|
||||||
void startSendRtpPassive(MediaServer mediaServer, SendRtpInfo sendRtpItem, Integer timeout);
|
Integer startSendRtpPassive(MediaServer mediaServer, SendRtpInfo sendRtpItem, Integer timeout);
|
||||||
|
|
||||||
void startSendRtp(MediaServer mediaServer, SendRtpInfo sendRtpItem);
|
void startSendRtp(MediaServer mediaServer, SendRtpInfo sendRtpItem);
|
||||||
|
|
||||||
|
|
|
@ -867,13 +867,13 @@ public class MediaServerServiceImpl implements IMediaServerService {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void startSendRtpPassive(MediaServer mediaServer, SendRtpInfo sendRtpItem, Integer timeout) {
|
public Integer startSendRtpPassive(MediaServer mediaServer, SendRtpInfo sendRtpItem, Integer timeout) {
|
||||||
IMediaNodeServerService mediaNodeServerService = nodeServerServiceMap.get(mediaServer.getType());
|
IMediaNodeServerService mediaNodeServerService = nodeServerServiceMap.get(mediaServer.getType());
|
||||||
if (mediaNodeServerService == null) {
|
if (mediaNodeServerService == null) {
|
||||||
log.info("[startSendRtpPassive] 失败, mediaServer的类型: {},未找到对应的实现类", mediaServer.getType());
|
log.info("[startSendRtpPassive] 失败, mediaServer的类型: {},未找到对应的实现类", mediaServer.getType());
|
||||||
throw new ControllerException(ErrorCode.ERROR100.getCode(), "未找到mediaServer对应的实现类");
|
throw new ControllerException(ErrorCode.ERROR100.getCode(), "未找到mediaServer对应的实现类");
|
||||||
}
|
}
|
||||||
mediaNodeServerService.startSendRtpPassive(mediaServer, sendRtpItem, timeout);
|
return mediaNodeServerService.startSendRtpPassive(mediaServer, sendRtpItem, timeout);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -329,7 +329,7 @@ public class ZLMMediaNodeServerService implements IMediaNodeServerService {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void startSendRtpPassive(MediaServer mediaServer, SendRtpInfo sendRtpItem, Integer timeout) {
|
public Integer startSendRtpPassive(MediaServer mediaServer, SendRtpInfo sendRtpItem, Integer timeout) {
|
||||||
Map<String, Object> param = new HashMap<>(12);
|
Map<String, Object> param = new HashMap<>(12);
|
||||||
param.put("vhost","__defaultVhost__");
|
param.put("vhost","__defaultVhost__");
|
||||||
param.put("app", sendRtpItem.getApp());
|
param.put("app", sendRtpItem.getApp());
|
||||||
|
@ -361,6 +361,7 @@ public class ZLMMediaNodeServerService implements IMediaNodeServerService {
|
||||||
log.info("调用ZLM-TCP被动推流接口, 结果: {}", jsonObject);
|
log.info("调用ZLM-TCP被动推流接口, 结果: {}", jsonObject);
|
||||||
log.info("启动监听TCP被动推流成功[ {}/{} ],{}->{}:{}, " , sendRtpItem.getApp(), sendRtpItem.getStream(),
|
log.info("启动监听TCP被动推流成功[ {}/{} ],{}->{}:{}, " , sendRtpItem.getApp(), sendRtpItem.getStream(),
|
||||||
jsonObject.getString("local_port"), param.get("dst_url"), param.get("dst_port"));
|
jsonObject.getString("local_port"), param.get("dst_url"), param.get("dst_port"));
|
||||||
|
return jsonObject.getInteger("local_port");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,19 +1,13 @@
|
||||||
package com.genersoft.iot.vmp.media.zlm.dto.hook;
|
package com.genersoft.iot.vmp.media.zlm.dto.hook;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* zlm hook事件的参数
|
* zlm hook事件的参数
|
||||||
* @author lin
|
* @author lin
|
||||||
*/
|
*/
|
||||||
|
@Data
|
||||||
public class HookParam {
|
public class HookParam {
|
||||||
private String mediaServerId;
|
private String mediaServerId;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public String getMediaServerId() {
|
|
||||||
return mediaServerId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMediaServerId(String mediaServerId) {
|
|
||||||
this.mediaServerId = mediaServerId;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,84 +1,48 @@
|
||||||
package com.genersoft.iot.vmp.media.zlm.dto.hook;
|
package com.genersoft.iot.vmp.media.zlm.dto.hook;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* zlm hook事件中的on_publish事件的参数
|
* zlm hook事件中的on_publish事件的参数
|
||||||
* @author lin
|
* @author lin
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class OnPublishHookParam extends HookParam{
|
public class OnPublishHookParam extends HookParam{
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
private String id;
|
private String id;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
private String app;
|
private String app;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
private String stream;
|
private String stream;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
private String ip;
|
private String ip;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
private String params;
|
private String params;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
private int port;
|
private int port;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
private String schema;
|
private String schema;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
private String vhost;
|
private String vhost;
|
||||||
|
|
||||||
|
|
||||||
public String getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(String id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getApp() {
|
|
||||||
return app;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setApp(String app) {
|
|
||||||
this.app = app;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getStream() {
|
|
||||||
return stream;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setStream(String stream) {
|
|
||||||
this.stream = stream;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getIp() {
|
|
||||||
return ip;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setIp(String ip) {
|
|
||||||
this.ip = ip;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getParams() {
|
|
||||||
return params;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setParams(String params) {
|
|
||||||
this.params = params;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getPort() {
|
|
||||||
return port;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPort(int port) {
|
|
||||||
this.port = port;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSchema() {
|
|
||||||
return schema;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSchema(String schema) {
|
|
||||||
this.schema = schema;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getVhost() {
|
|
||||||
return vhost;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setVhost(String vhost) {
|
|
||||||
this.vhost = vhost;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "OnPublishHookParam{" +
|
return "OnPublishHookParam{" +
|
||||||
|
|
|
@ -78,6 +78,12 @@ public class MediaServiceImpl implements IMediaService {
|
||||||
public ResultForOnPublish authenticatePublish(MediaServer mediaServer, String app, String stream, String params) {
|
public ResultForOnPublish authenticatePublish(MediaServer mediaServer, String app, String stream, String params) {
|
||||||
// 推流鉴权的处理
|
// 推流鉴权的处理
|
||||||
if (!"rtp".equals(app)) {
|
if (!"rtp".equals(app)) {
|
||||||
|
if ("talk".equals(app) && stream.endsWith("_talk")) {
|
||||||
|
ResultForOnPublish result = new ResultForOnPublish();
|
||||||
|
result.setEnable_mp4(false);
|
||||||
|
result.setEnable_audio(true);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
StreamProxy streamProxyItem = streamProxyService.getStreamProxyByAppAndStream(app, stream);
|
StreamProxy streamProxyItem = streamProxyService.getStreamProxyByAppAndStream(app, stream);
|
||||||
if (streamProxyItem != null) {
|
if (streamProxyItem != null) {
|
||||||
ResultForOnPublish result = new ResultForOnPublish();
|
ResultForOnPublish result = new ResultForOnPublish();
|
||||||
|
|
|
@ -60,9 +60,6 @@ export default {
|
||||||
url:`/api/device/query/${this.deviceId}/sync_status/`,
|
url:`/api/device/query/${this.deviceId}/sync_status/`,
|
||||||
}).then((res) => {
|
}).then((res) => {
|
||||||
if (res.data.code === 0) {
|
if (res.data.code === 0) {
|
||||||
if (!this.syncFlag) {
|
|
||||||
this.syncFlag = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (res.data.data != null) {
|
if (res.data.data != null) {
|
||||||
if (res.data.data.syncIng) {
|
if (res.data.data.syncIng) {
|
||||||
|
@ -70,6 +67,7 @@ export default {
|
||||||
this.msg = `等待同步中`;
|
this.msg = `等待同步中`;
|
||||||
this.timmer = setTimeout(this.getProgress, 300)
|
this.timmer = setTimeout(this.getProgress, 300)
|
||||||
}else {
|
}else {
|
||||||
|
this.syncFlag = true;
|
||||||
this.total = res.data.data.total;
|
this.total = res.data.data.total;
|
||||||
this.current = res.data.data.current;
|
this.current = res.data.data.current;
|
||||||
this.percentage = Math.floor(Number(res.data.data.current)/Number(res.data.data.total)* 10000)/100;
|
this.percentage = Math.floor(Number(res.data.data.current)/Number(res.data.data.total)* 10000)/100;
|
||||||
|
@ -90,7 +88,7 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}else {
|
}else {
|
||||||
this.msg = `同步尚未开始`;
|
this.msg = res.data.msg;
|
||||||
this.timmer = setTimeout(this.getProgress, 300)
|
this.timmer = setTimeout(this.getProgress, 300)
|
||||||
}
|
}
|
||||||
}else {
|
}else {
|
||||||
|
|
Loading…
Reference in New Issue