diff --git a/src/main/java/com/genersoft/iot/vmp/common/enums/ChannelDataType.java b/src/main/java/com/genersoft/iot/vmp/common/enums/ChannelDataType.java index c2d2a11e0..8bb396b97 100644 --- a/src/main/java/com/genersoft/iot/vmp/common/enums/ChannelDataType.java +++ b/src/main/java/com/genersoft/iot/vmp/common/enums/ChannelDataType.java @@ -8,7 +8,9 @@ public enum ChannelDataType { GB28181(1,"国标28181"), STREAM_PUSH(2,"推流设备"), - STREAM_PROXY(3,"拉流代理"); + STREAM_PROXY(3,"拉流代理"), + JT_1078(200,"部标设备"), + ; public final int value; diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/CommonGBChannel.java b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/CommonGBChannel.java index f3d08da0e..39e121fdf 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/CommonGBChannel.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/CommonGBChannel.java @@ -144,9 +144,6 @@ public class CommonGBChannel { @Schema(description = "关联的设备ID") private Integer dataDeviceId; - @Schema(description = "关联的部标标通道ID") - private Integer jtChannelId; - @Schema(description = "创建时间") private String createTime; diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTChannel.java b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTChannel.java index 1ea227e69..79601eceb 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTChannel.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTChannel.java @@ -1,5 +1,6 @@ package com.genersoft.iot.vmp.jt1078.bean; +import com.genersoft.iot.vmp.common.enums.ChannelDataType; import com.genersoft.iot.vmp.gb28181.bean.CommonGBChannel; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -38,6 +39,8 @@ public class JTChannel extends CommonGBChannel { @Schema(description = "流信息") private String stream; + private Integer dataType = ChannelDataType.JT_1078.value; + @Override public String toString() { return "JTChannel{" + @@ -58,7 +61,6 @@ public class JTChannel extends CommonGBChannel { if (ObjectUtils.isEmpty(this.getGbName())) { this.setGbName(this.getName()); } - this.setJtChannelId(this.getId()); return this; } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/controller/JT1078Controller.java b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/JT1078Controller.java index 5a9c88a87..bd776fc3d 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/controller/JT1078Controller.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/JT1078Controller.java @@ -1,5 +1,6 @@ package com.genersoft.iot.vmp.jt1078.controller; +import com.genersoft.iot.vmp.common.StreamInfo; import com.genersoft.iot.vmp.conf.ftpServer.FtpSetting; import com.genersoft.iot.vmp.conf.UserSetting; import com.genersoft.iot.vmp.conf.exception.ControllerException; @@ -96,11 +97,12 @@ public class JT1078Controller { jt1078PlayService.stopPlay(phoneNumber, channelId); }); - jt1078PlayService.play(phoneNumber, channelId, type, (code, msg, streamInfo) -> { - WVPResult wvpResult = new WVPResult<>(); - if (code == InviteErrorCode.SUCCESS.getCode()) { - wvpResult.setCode(ErrorCode.SUCCESS.getCode()); - wvpResult.setMsg(ErrorCode.SUCCESS.getMsg()); + jt1078PlayService.play(phoneNumber, channelId, type, wvpResult -> { + WVPResult wvpResultForFinish = new WVPResult<>(); + wvpResultForFinish.setCode(wvpResult.getCode()); + wvpResultForFinish.setMsg(wvpResult.getMsg()); + if (wvpResult.getCode() == InviteErrorCode.SUCCESS.getCode()) { + StreamInfo streamInfo = wvpResult.getData(); if (streamInfo != null) { if (userSetting.getUseSourceIpAsStreamIp()) { @@ -114,16 +116,10 @@ public class JT1078Controller { } streamInfo.changeStreamIp(host); } - wvpResult.setData(new StreamContent(streamInfo)); - }else { - wvpResult.setCode(code); - wvpResult.setMsg(msg); + wvpResultForFinish.setData(new StreamContent(streamInfo)); } - }else { - wvpResult.setCode(code); - wvpResult.setMsg(msg); } - result.setResult(wvpResult); + result.setResult(wvpResultForFinish); }); return result; @@ -165,15 +161,16 @@ public class JT1078Controller { jt1078PlayService.stopPlay(phoneNumber, channelId); }); - jt1078PlayService.startTalk(phoneNumber, channelId, app, stream, mediaServerId, onlySend, (code, msg, streamInfo) -> { - WVPResult wvpResult = new WVPResult<>(); - if (code == InviteErrorCode.SUCCESS.getCode()) { - wvpResult.setCode(ErrorCode.SUCCESS.getCode()); - wvpResult.setMsg(ErrorCode.SUCCESS.getMsg()); + jt1078PlayService.startTalk(phoneNumber, channelId, app, stream, mediaServerId, onlySend, wvpResult -> { + WVPResult wvpResultForFinish = new WVPResult<>(); + wvpResultForFinish.setCode(wvpResult.getCode()); + wvpResultForFinish.setMsg(wvpResult.getMsg()); + if (wvpResult.getCode() == InviteErrorCode.SUCCESS.getCode()) { - if (streamInfo != null) { + if (wvpResult.getData() != null) { + StreamInfo streamInfo = wvpResult.getData(); if (userSetting.getUseSourceIpAsStreamIp()) { - streamInfo=streamInfo.clone();//深拷贝 + streamInfo = wvpResult.getData().clone();//深拷贝 String host; try { URL url=new URL(request.getRequestURL().toString()); @@ -183,16 +180,10 @@ public class JT1078Controller { } streamInfo.changeStreamIp(host); } - wvpResult.setData(new StreamContent(streamInfo)); - }else { - wvpResult.setCode(code); - wvpResult.setMsg(msg); + wvpResultForFinish.setData(new StreamContent(streamInfo)); } - }else { - wvpResult.setCode(code); - wvpResult.setMsg(msg); } - result.setResult(wvpResult); + result.setResult(wvpResultForFinish); }); return result; @@ -293,15 +284,14 @@ public class JT1078Controller { jt1078PlayService.stopPlay(phoneNumber, channelId); }); - jt1078PlayService.playback(phoneNumber, channelId, startTime, endTime,type, rate, playbackType, playbackSpeed, (code, msg, streamInfo) -> { - WVPResult wvpResult = new WVPResult<>(); - if (code == InviteErrorCode.SUCCESS.getCode()) { - wvpResult.setCode(ErrorCode.SUCCESS.getCode()); - wvpResult.setMsg(ErrorCode.SUCCESS.getMsg()); - + jt1078PlayService.playback(phoneNumber, channelId, startTime, endTime,type, rate, playbackType, playbackSpeed, wvpResult -> { + WVPResult wvpResultForFinish = new WVPResult<>(); + wvpResultForFinish.setCode(wvpResult.getCode()); + wvpResultForFinish.setMsg(wvpResult.getMsg()); + if (wvpResult.getCode() == InviteErrorCode.SUCCESS.getCode()) { + StreamInfo streamInfo = wvpResult.getData(); if (streamInfo != null) { if (userSetting.getUseSourceIpAsStreamIp()) { - streamInfo=streamInfo.clone();//深拷贝 String host; try { URL url=new URL(request.getRequestURL().toString()); @@ -311,16 +301,10 @@ public class JT1078Controller { } streamInfo.changeStreamIp(host); } - wvpResult.setData(new StreamContent(streamInfo)); - }else { - wvpResult.setCode(code); - wvpResult.setMsg(msg); + wvpResultForFinish.setData(new StreamContent(streamInfo)); } - }else { - wvpResult.setCode(code); - wvpResult.setMsg(msg); } - result.setResult(wvpResult); + result.setResult(wvpResultForFinish); }); return result; @@ -385,8 +369,8 @@ public class JT1078Controller { response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(phoneNumber + "_" + channelId + ".mp4", "UTF-8")); response.setStatus(HttpServletResponse.SC_OK); - service.recordDownload(phoneNumber, channelId, startTime, endTime, alarmSign, mediaType, streamType, storageType, (code, msg, data) -> { - String filePath = "ftp" + data; + service.recordDownload(phoneNumber, channelId, startTime, endTime, alarmSign, mediaType, streamType, storageType, wvpResult -> { + String filePath = "ftp" + wvpResult.getData(); File file = new File(filePath); if (!file.exists()) { log.warn("[下载录像] 收到通知时未找到录像文件: {}", filePath); diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/dao/provider/JTChannelProvider.java b/src/main/java/com/genersoft/iot/vmp/jt1078/dao/provider/JTChannelProvider.java index d07887f06..8a5be9a63 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/dao/provider/JTChannelProvider.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/dao/provider/JTChannelProvider.java @@ -5,10 +5,10 @@ import java.util.Map; public class JTChannelProvider { public final static String BASE_SQL = - "SELECT jc.*, jc.id as jt_channel_id, wdc.*, wdc.id as gb_id " + + "SELECT jc.*, jc.id as data_device_id, wdc.*, wdc.id as gb_id " + " from wvp_jt_channel jc " + " LEFT join wvp_device_channel wdc " + - " on jc.id = wdc.jt_channel_id "; + " on jc.id = wdc.data_device_id and wdc.data_type = 200 "; public String selectChannelByChannelId(Map params ){ StringBuilder sqlBuild = new StringBuilder(); diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/event/CallbackManager.java b/src/main/java/com/genersoft/iot/vmp/jt1078/event/CallbackManager.java deleted file mode 100644 index 8503feaec..000000000 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/event/CallbackManager.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.genersoft.iot.vmp.jt1078.event; - -import com.genersoft.iot.vmp.common.GeneralCallback; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Component; - -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -/** - * 管理callback回调,支持设置超时时间,未设置则按照五分钟超时自动移除 - */ -@Component -public class CallbackManager { - - private final long expire = 5 * 60 * 1000; - - static class ManagerCallBack { - public String key; - public GeneralCallback callback; - public long createTime; - public long expire; - } - - private final Map allCallbacks = new ConcurrentHashMap<>(); - - - public void addCallback(String key, GeneralCallback callback) { - ManagerCallBack managerCallBack = new ManagerCallBack(); - managerCallBack.callback = callback; - managerCallBack.key = key; - managerCallBack.createTime = System.currentTimeMillis(); - managerCallBack.expire = expire; - allCallbacks.put(key, managerCallBack); - } - - public void addCallback(String key, GeneralCallback callback, long timeout) { - ManagerCallBack managerCallBack = new ManagerCallBack(); - managerCallBack.callback = callback; - managerCallBack.key = key; - managerCallBack.createTime = System.currentTimeMillis(); - managerCallBack.expire = timeout; - allCallbacks.put(key, managerCallBack); - } - - public GeneralCallback getCallback(String key){ - ManagerCallBack managerCallBack = allCallbacks.get(key); - if (managerCallBack != null) { - return managerCallBack.callback; - }else { - return null; - } - } - - public void removeCallback(String key){ - allCallbacks.remove(key); - } - /** - * 对订阅数据进行过期清理 - */ - @Scheduled(fixedRate=expire) //每5分钟执行一次 - public void execute(){ - for (ManagerCallBack callBack : allCallbacks.values()) { - if ((System.currentTimeMillis() - callBack.createTime - callBack.expire) > 0) { - allCallbacks.remove(callBack.key); - } - } - } -} diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/service/Ijt1078PlayService.java b/src/main/java/com/genersoft/iot/vmp/jt1078/service/Ijt1078PlayService.java index aa2a3f234..3c2ea669e 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/service/Ijt1078PlayService.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/service/Ijt1078PlayService.java @@ -1,20 +1,20 @@ package com.genersoft.iot.vmp.jt1078.service; -import com.genersoft.iot.vmp.common.GeneralCallback; +import com.genersoft.iot.vmp.common.CommonCallback; import com.genersoft.iot.vmp.common.StreamInfo; import com.genersoft.iot.vmp.jt1078.bean.*; import com.genersoft.iot.vmp.jt1078.proc.request.J1205; -import com.github.pagehelper.PageInfo; +import com.genersoft.iot.vmp.vmanager.bean.WVPResult; import java.util.List; public interface Ijt1078PlayService { JTMediaStreamType checkStreamFromJt(String stream); - void play(String phoneNumber, Integer channelId, int type, GeneralCallback callback); + void play(String phoneNumber, Integer channelId, int type, CommonCallback> callback); void playback(String phoneNumber, Integer channelId, String startTime, String endTime, Integer type, - Integer rate, Integer playbackType, Integer playbackSpeed, GeneralCallback callback); + Integer rate, Integer playbackType, Integer playbackSpeed, CommonCallback> callback); void stopPlay(String phoneNumber, Integer channelId); @@ -26,7 +26,7 @@ public interface Ijt1078PlayService { void stopPlayback(String phoneNumber, Integer channelId); - void startTalk(String phoneNumber, Integer channelId, String app, String stream, String mediaServerId, Boolean onlySend, GeneralCallback callback); + void startTalk(String phoneNumber, Integer channelId, String app, String stream, String mediaServerId, Boolean onlySend, CommonCallback> callback); void stopTalk(String phoneNumber, Integer channelId); diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/service/Ijt1078Service.java b/src/main/java/com/genersoft/iot/vmp/jt1078/service/Ijt1078Service.java index 23c10b4b0..dd217ed98 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/service/Ijt1078Service.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/service/Ijt1078Service.java @@ -1,9 +1,10 @@ package com.genersoft.iot.vmp.jt1078.service; -import com.genersoft.iot.vmp.common.GeneralCallback; +import com.genersoft.iot.vmp.common.CommonCallback; import com.genersoft.iot.vmp.common.StreamInfo; import com.genersoft.iot.vmp.jt1078.bean.*; import com.genersoft.iot.vmp.jt1078.proc.request.J1205; +import com.genersoft.iot.vmp.vmanager.bean.WVPResult; import com.github.pagehelper.PageInfo; import java.util.List; @@ -32,7 +33,7 @@ public interface Ijt1078Service { void wiper(String phoneNumber, Integer channelId, String command); - JTDeviceConfig queryConfig(String phoneNumber, String[] params, GeneralCallback callback); + JTDeviceConfig queryConfig(String phoneNumber, String[] params, CommonCallback> callback); void setConfig(String phoneNumber, JTDeviceConfig config); @@ -100,7 +101,7 @@ public interface Ijt1078Service { void changeStreamType(String phoneNumber, Integer channelId, Integer streamType); - void recordDownload(String phoneNumber, Integer channelId, String startTime, String endTime, Integer alarmSign, Integer mediaType, Integer streamType, Integer storageType, GeneralCallback fileCallback); + void recordDownload(String phoneNumber, Integer channelId, String startTime, String endTime, Integer alarmSign, Integer mediaType, Integer streamType, Integer storageType, CommonCallback> fileCallback); PageInfo getChannelList(int page, int count, int deviceId, String query); diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/service/impl/jt1078PlayServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/jt1078/service/impl/jt1078PlayServiceImpl.java index 1e343d557..40f8b302c 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/service/impl/jt1078PlayServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/service/impl/jt1078PlayServiceImpl.java @@ -1,6 +1,6 @@ package com.genersoft.iot.vmp.jt1078.service.impl; -import com.genersoft.iot.vmp.common.GeneralCallback; +import com.genersoft.iot.vmp.common.CommonCallback; import com.genersoft.iot.vmp.common.StreamInfo; import com.genersoft.iot.vmp.common.VideoManagerConstants; import com.genersoft.iot.vmp.conf.DynamicTask; @@ -10,8 +10,6 @@ import com.genersoft.iot.vmp.conf.ftpServer.FtpSetting; import com.genersoft.iot.vmp.gb28181.bean.SendRtpInfo; import com.genersoft.iot.vmp.jt1078.bean.*; import com.genersoft.iot.vmp.jt1078.cmd.JT1078Template; -import com.genersoft.iot.vmp.jt1078.dao.JTChannelMapper; -import com.genersoft.iot.vmp.jt1078.dao.JTTerminalMapper; import com.genersoft.iot.vmp.jt1078.event.FtpUploadEvent; import com.genersoft.iot.vmp.jt1078.proc.request.J1205; import com.genersoft.iot.vmp.jt1078.proc.response.*; @@ -35,6 +33,7 @@ import com.genersoft.iot.vmp.storager.IRedisCatchStorage; import com.genersoft.iot.vmp.utils.DateUtil; import com.genersoft.iot.vmp.utils.MediaServerUtils; import com.genersoft.iot.vmp.vmanager.bean.ErrorCode; +import com.genersoft.iot.vmp.vmanager.bean.WVPResult; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -160,10 +159,10 @@ public class jt1078PlayServiceImpl implements Ijt1078PlayService { } } - private final Map>> inviteErrorCallbackMap = new ConcurrentHashMap<>(); + private final Map>>> inviteErrorCallbackMap = new ConcurrentHashMap<>(); @Override - public void play(String phoneNumber, Integer channelId, int type, GeneralCallback callback) { + public void play(String phoneNumber, Integer channelId, int type, CommonCallback> callback) { JTDevice device = jt1078Service.getDevice(phoneNumber); if (device == null) { throw new ControllerException(ErrorCode.ERROR100.getCode(), "设备不存在"); @@ -175,7 +174,7 @@ public class jt1078PlayServiceImpl implements Ijt1078PlayService { } // 检查流是否已经存在,存在则返回 String playKey = VideoManagerConstants.INVITE_INFO_1078_PLAY + phoneNumber + ":" + channelId; - List> errorCallbacks = inviteErrorCallbackMap.computeIfAbsent(playKey, k -> new ArrayList<>()); + List>> errorCallbacks = inviteErrorCallbackMap.computeIfAbsent(playKey, k -> new ArrayList<>()); errorCallbacks.add(callback); StreamInfo streamInfo = (StreamInfo) redisTemplate.opsForValue().get(playKey); if (streamInfo != null) { @@ -185,8 +184,8 @@ public class jt1078PlayServiceImpl implements Ijt1078PlayService { MediaInfo mediaInfo = mediaServerService.getMediaInfo(mediaServer, "rtp", streamInfo.getStream()); if (mediaInfo != null) { log.info("[1078-点播] 点播已经存在,直接返回, phoneNumber: {}, channelId: {}", phoneNumber, channelId); - for (GeneralCallback errorCallback : errorCallbacks) { - errorCallback.run(InviteErrorCode.SUCCESS.getCode(), InviteErrorCode.SUCCESS.getMsg(), streamInfo); + for (CommonCallback> errorCallback : errorCallbacks) { + errorCallback.run(new WVPResult<>(InviteErrorCode.SUCCESS.getCode(), InviteErrorCode.SUCCESS.getMsg(), streamInfo)); } return; } @@ -197,8 +196,8 @@ public class jt1078PlayServiceImpl implements Ijt1078PlayService { String stream = "jt_" + phoneNumber + "_" + channelId; MediaServer mediaServer = mediaServerService.getMediaServerForMinimumLoad(null); if (mediaServer == null) { - for (GeneralCallback errorCallback : errorCallbacks) { - errorCallback.run(InviteErrorCode.FAIL.getCode(), "未找到可用的媒体节点", streamInfo); + for (CommonCallback> errorCallback : errorCallbacks) { + errorCallback.run(new WVPResult<>(InviteErrorCode.FAIL.getCode(), "未找到可用的媒体节点", streamInfo)); } return; } @@ -210,11 +209,11 @@ public class jt1078PlayServiceImpl implements Ijt1078PlayService { // TODO 发送9105 实时音视频传输状态通知, 通知丢包率 StreamInfo info = onPublishHandler(mediaServer, hookData, phoneNumber, channelId); - for (GeneralCallback errorCallback : errorCallbacks) { + for (CommonCallback> errorCallback : errorCallbacks) { if (errorCallback == null) { continue; } - errorCallback.run(InviteErrorCode.SUCCESS.getCode(), InviteErrorCode.SUCCESS.getMsg(), info); + errorCallback.run(new WVPResult<>(InviteErrorCode.SUCCESS.getCode(), InviteErrorCode.SUCCESS.getMsg(), info)); } subscribe.removeSubscribe(hook); redisTemplate.opsForValue().set(playKey, info); @@ -240,9 +239,9 @@ public class jt1078PlayServiceImpl implements Ijt1078PlayService { // 设置超时监听 dynamicTask.startDelay(playKey, () -> { log.info("[1078-点播] 超时, phoneNumber: {}, channelId: {}", phoneNumber, channelId); - for (GeneralCallback errorCallback : errorCallbacks) { - errorCallback.run(InviteErrorCode.ERROR_FOR_SIGNALLING_TIMEOUT.getCode(), - InviteErrorCode.ERROR_FOR_SIGNALLING_TIMEOUT.getMsg(), null); + for (CommonCallback> errorCallback : errorCallbacks) { + errorCallback.run(new WVPResult<>(InviteErrorCode.ERROR_FOR_SIGNALLING_TIMEOUT.getCode(), + InviteErrorCode.ERROR_FOR_SIGNALLING_TIMEOUT.getMsg(), null)); } mediaServerService.closeRTPServer(mediaServer, stream); subscribe.removeSubscribe(hook); @@ -271,10 +270,10 @@ public class jt1078PlayServiceImpl implements Ijt1078PlayService { String playKey = VideoManagerConstants.INVITE_INFO_1078_PLAY + phoneNumber + ":" + channelId; dynamicTask.stop(playKey); // 清理回调 - List> generalCallbacks = inviteErrorCallbackMap.get(playKey); + List>> generalCallbacks = inviteErrorCallbackMap.get(playKey); if (generalCallbacks != null && !generalCallbacks.isEmpty()) { - for (GeneralCallback callback : generalCallbacks) { - callback.run(InviteErrorCode.ERROR_FOR_FINISH.getCode(), InviteErrorCode.ERROR_FOR_FINISH.getMsg(), null); + for (CommonCallback> callback : generalCallbacks) { + callback.run(new WVPResult<>(InviteErrorCode.ERROR_FOR_FINISH.getCode(), InviteErrorCode.ERROR_FOR_FINISH.getMsg(), null)); } } jt1078Template.checkTerminalStatus(phoneNumber); @@ -355,12 +354,12 @@ public class jt1078PlayServiceImpl implements Ijt1078PlayService { @Override public void playback(String phoneNumber, Integer channelId, String startTime, String endTime, Integer type, - Integer rate, Integer playbackType, Integer playbackSpeed, GeneralCallback callback) { + Integer rate, Integer playbackType, Integer playbackSpeed, CommonCallback> callback) { log.info("[1078-回放] 回放,设备:{}, 通道: {}, 开始时间: {}, 结束时间: {}, 音视频类型: {}, 码流类型: {}, " + "回放方式: {}, 快进或快退倍数: {}", phoneNumber, channelId, startTime, endTime, type, rate, playbackType, playbackSpeed); // 检查流是否已经存在,存在则返回 String playbackKey = VideoManagerConstants.INVITE_INFO_1078_PLAYBACK + phoneNumber + ":" + channelId; - List> errorCallbacks = inviteErrorCallbackMap.computeIfAbsent(playbackKey, k -> new ArrayList<>()); + List>> errorCallbacks = inviteErrorCallbackMap.computeIfAbsent(playbackKey, k -> new ArrayList<>()); errorCallbacks.add(callback); String logInfo = String.format("phoneNumber:%s, channelId:%s, startTime:%s, endTime:%s", phoneNumber, channelId, startTime, endTime); StreamInfo streamInfo = (StreamInfo) redisTemplate.opsForValue().get(playbackKey); @@ -371,8 +370,8 @@ public class jt1078PlayServiceImpl implements Ijt1078PlayService { MediaInfo mediaInfo = mediaServerService.getMediaInfo(mediaServer, "rtp", streamInfo.getStream()); if (mediaInfo != null) { log.info("[1078-回放] 回放已经存在,直接返回, logInfo: {}", logInfo); - for (GeneralCallback errorCallback : errorCallbacks) { - errorCallback.run(InviteErrorCode.SUCCESS.getCode(), InviteErrorCode.SUCCESS.getMsg(), streamInfo); + for (CommonCallback> errorCallback : errorCallbacks) { + errorCallback.run(new WVPResult<>(InviteErrorCode.SUCCESS.getCode(), InviteErrorCode.SUCCESS.getMsg(), streamInfo)); } return; } @@ -385,8 +384,8 @@ public class jt1078PlayServiceImpl implements Ijt1078PlayService { String stream = "jt_" + phoneNumber + "_" + channelId + "_" + startTimeParam + "_" + endTimeParam; MediaServer mediaServer = mediaServerService.getMediaServerForMinimumLoad(null); if (mediaServer == null) { - for (GeneralCallback errorCallback : errorCallbacks) { - errorCallback.run(InviteErrorCode.FAIL.getCode(), "未找到可用的媒体节点", streamInfo); + for (CommonCallback> errorCallback : errorCallbacks) { + errorCallback.run(new WVPResult<>(InviteErrorCode.FAIL.getCode(), "未找到可用的媒体节点", streamInfo)); } return; } @@ -397,11 +396,11 @@ public class jt1078PlayServiceImpl implements Ijt1078PlayService { log.info("[1078-回放] 回放成功, logInfo: {}", logInfo); StreamInfo info = onPublishHandler(mediaServer, hookData, phoneNumber, channelId); - for (GeneralCallback errorCallback : errorCallbacks) { + for (CommonCallback> errorCallback : errorCallbacks) { if (errorCallback == null) { continue; } - errorCallback.run(InviteErrorCode.SUCCESS.getCode(), InviteErrorCode.SUCCESS.getMsg(), info); + errorCallback.run(new WVPResult<>(InviteErrorCode.SUCCESS.getCode(), InviteErrorCode.SUCCESS.getMsg(), info)); } subscribe.removeSubscribe(hookSubscribe); redisTemplate.opsForValue().set(playbackKey, info); @@ -409,9 +408,9 @@ public class jt1078PlayServiceImpl implements Ijt1078PlayService { // 设置超时监听 dynamicTask.startDelay(playbackKey, () -> { log.info("[1078-回放] 回放超时, logInfo: {}", logInfo); - for (GeneralCallback errorCallback : errorCallbacks) { - errorCallback.run(InviteErrorCode.ERROR_FOR_SIGNALLING_TIMEOUT.getCode(), - InviteErrorCode.ERROR_FOR_SIGNALLING_TIMEOUT.getMsg(), null); + for (CommonCallback> errorCallback : errorCallbacks) { + errorCallback.run(new WVPResult<>(InviteErrorCode.ERROR_FOR_SIGNALLING_TIMEOUT.getCode(), + InviteErrorCode.ERROR_FOR_SIGNALLING_TIMEOUT.getMsg(), null)); } }, userSetting.getPlayTimeout()); @@ -456,13 +455,13 @@ public class jt1078PlayServiceImpl implements Ijt1078PlayService { mediaServerService.closeRTPServer(streamInfo.getMediaServer(), streamInfo.getStream()); } // 清理回调 - List> generalCallbacks = inviteErrorCallbackMap.get(playKey); + List>> generalCallbacks = inviteErrorCallbackMap.get(playKey); if (generalCallbacks != null && !generalCallbacks.isEmpty()) { - for (GeneralCallback callback : generalCallbacks) { + for (CommonCallback> callback : generalCallbacks) { if (callback == null) { continue; } - callback.run(InviteErrorCode.ERROR_FOR_FINISH.getCode(), InviteErrorCode.ERROR_FOR_FINISH.getMsg(), null); + callback.run(new WVPResult<>(InviteErrorCode.ERROR_FOR_FINISH.getCode(), InviteErrorCode.ERROR_FOR_FINISH.getMsg(), null)); } } } @@ -484,7 +483,7 @@ public class jt1078PlayServiceImpl implements Ijt1078PlayService { playbackControl(phoneNumber, channelId, 2, null, null); } - private Map> fileUploadMap = new ConcurrentHashMap<>(); + private Map>> fileUploadMap = new ConcurrentHashMap<>(); @EventListener public void onApplicationEvent(FtpUploadEvent event) { @@ -495,9 +494,9 @@ public class jt1078PlayServiceImpl implements Ijt1078PlayService { if (!event.getFileName().contains(key)) { return; } - GeneralCallback callback = fileUploadMap.get(key); + CommonCallback> callback = fileUploadMap.get(key); if (callback != null) { - callback.run(ErrorCode.SUCCESS.getCode(), ErrorCode.SUCCESS.getMsg(), event.getFileName()); + callback.run(new WVPResult<>(ErrorCode.SUCCESS.getCode(), ErrorCode.SUCCESS.getMsg(), event.getFileName())); fileUploadMap.remove(key); } }); @@ -528,10 +527,10 @@ public class jt1078PlayServiceImpl implements Ijt1078PlayService { @Override public void startTalk(String phoneNumber, Integer channelId, String app, String stream, String mediaServerId, Boolean onlySend, - GeneralCallback callback) { + CommonCallback> callback) { // 检查流是否已经存在,存在则返回 String playKey = VideoManagerConstants.INVITE_INFO_1078_TALK + phoneNumber + ":" + channelId; - List> errorCallbacks = inviteErrorCallbackMap.computeIfAbsent(playKey, k -> new ArrayList<>()); + List>> errorCallbacks = inviteErrorCallbackMap.computeIfAbsent(playKey, k -> new ArrayList<>()); errorCallbacks.add(callback); StreamInfo streamInfo = (StreamInfo) redisTemplate.opsForValue().get(playKey); if (streamInfo != null) { @@ -541,8 +540,8 @@ public class jt1078PlayServiceImpl implements Ijt1078PlayService { String receiveStream = "jt_" + phoneNumber + "_" + channelId + "_talk"; MediaServer mediaServer = mediaServerService.getOne(mediaServerId); if (mediaServer == null) { - for (GeneralCallback errorCallback : errorCallbacks) { - errorCallback.run(InviteErrorCode.FAIL.getCode(), "未找到可用的媒体节点", streamInfo); + for (CommonCallback> errorCallback : errorCallbacks) { + errorCallback.run(new WVPResult<>(InviteErrorCode.FAIL.getCode(), "未找到可用的媒体节点", streamInfo)); } return; } @@ -568,8 +567,8 @@ public class jt1078PlayServiceImpl implements Ijt1078PlayService { log.info("[1078-对讲] 对讲成功, phoneNumber: {}, channelId: {}", phoneNumber, channelId); StreamInfo info = onPublishHandler(mediaServer, hookData, phoneNumber, channelId); - for (GeneralCallback errorCallback : errorCallbacks) { - errorCallback.run(InviteErrorCode.SUCCESS.getCode(), InviteErrorCode.SUCCESS.getMsg(), info); + for (CommonCallback> errorCallback : errorCallbacks) { + errorCallback.run(new WVPResult<>(InviteErrorCode.SUCCESS.getCode(), InviteErrorCode.SUCCESS.getMsg(), info)); } subscribe.removeSubscribe(hook); redisTemplate.opsForValue().set(playKey, info); @@ -584,9 +583,9 @@ public class jt1078PlayServiceImpl implements Ijt1078PlayService { // 设置超时监听 dynamicTask.startDelay(playKey, () -> { log.info("[1078-对讲] 超时, phoneNumber: {}, channelId: {}", phoneNumber, channelId); - for (GeneralCallback errorCallback : errorCallbacks) { - errorCallback.run(InviteErrorCode.ERROR_FOR_SIGNALLING_TIMEOUT.getCode(), - InviteErrorCode.ERROR_FOR_SIGNALLING_TIMEOUT.getMsg(), null); + for (CommonCallback> errorCallback : errorCallbacks) { + errorCallback.run(new WVPResult<>(InviteErrorCode.ERROR_FOR_SIGNALLING_TIMEOUT.getCode(), + InviteErrorCode.ERROR_FOR_SIGNALLING_TIMEOUT.getMsg(), null)); } }, userSetting.getPlayTimeout()); @@ -604,8 +603,8 @@ public class jt1078PlayServiceImpl implements Ijt1078PlayService { jt1078Template.startLive(phoneNumber, j9101, 6); if (onlySend != null && onlySend) { log.info("[1078-对讲] 对讲成功, phoneNumber: {}, channelId: {}", phoneNumber, channelId); - for (GeneralCallback errorCallback : errorCallbacks) { - errorCallback.run(InviteErrorCode.SUCCESS.getCode(), InviteErrorCode.SUCCESS.getMsg(), null); + for (CommonCallback> errorCallback : errorCallbacks) { + errorCallback.run(new WVPResult<>(InviteErrorCode.SUCCESS.getCode(), InviteErrorCode.SUCCESS.getMsg(), null)); } // 存储发流信息 sendRtpServerService.update(sendRtpInfo); @@ -632,10 +631,10 @@ public class jt1078PlayServiceImpl implements Ijt1078PlayService { mediaServerService.closeRTPServer(streamInfo.getMediaServer(), streamInfo.getStream()); } // 清理回调 - List> generalCallbacks = inviteErrorCallbackMap.get(playKey); + List>> generalCallbacks = inviteErrorCallbackMap.get(playKey); if (generalCallbacks != null && !generalCallbacks.isEmpty()) { - for (GeneralCallback callback : generalCallbacks) { - callback.run(InviteErrorCode.ERROR_FOR_FINISH.getCode(), InviteErrorCode.ERROR_FOR_FINISH.getMsg(), null); + for (CommonCallback> callback : generalCallbacks) { + callback.run(new WVPResult<>(InviteErrorCode.ERROR_FOR_FINISH.getCode(), InviteErrorCode.ERROR_FOR_FINISH.getMsg(), null)); } } } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/service/impl/jt1078ServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/jt1078/service/impl/jt1078ServiceImpl.java index 53aef875a..bcbe6ed51 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/service/impl/jt1078ServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/service/impl/jt1078ServiceImpl.java @@ -1,6 +1,6 @@ package com.genersoft.iot.vmp.jt1078.service.impl; -import com.genersoft.iot.vmp.common.GeneralCallback; +import com.genersoft.iot.vmp.common.CommonCallback; import com.genersoft.iot.vmp.common.StreamInfo; import com.genersoft.iot.vmp.common.VideoManagerConstants; import com.genersoft.iot.vmp.conf.DynamicTask; @@ -18,19 +18,13 @@ import com.genersoft.iot.vmp.jt1078.proc.response.*; import com.genersoft.iot.vmp.jt1078.service.Ijt1078Service; import com.genersoft.iot.vmp.media.event.media.MediaArrivalEvent; import com.genersoft.iot.vmp.media.event.media.MediaDepartureEvent; -import com.genersoft.iot.vmp.media.event.media.MediaNotFoundEvent; -import com.genersoft.iot.vmp.media.service.IMediaServerService; -import com.genersoft.iot.vmp.service.ISendRtpServerService; -import com.genersoft.iot.vmp.storager.IRedisCatchStorage; import com.genersoft.iot.vmp.utils.DateUtil; -import com.genersoft.iot.vmp.utils.MediaServerUtils; import com.genersoft.iot.vmp.vmanager.bean.ErrorCode; +import com.genersoft.iot.vmp.vmanager.bean.WVPResult; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.event.EventListener; import org.springframework.data.redis.core.RedisTemplate; @@ -154,7 +148,7 @@ public class jt1078ServiceImpl implements Ijt1078Service { jtDeviceMapper.updateDeviceStatus(connected, phoneNumber); } - private Map> fileUploadMap = new ConcurrentHashMap<>(); + private Map>> fileUploadMap = new ConcurrentHashMap<>(); @EventListener public void onApplicationEvent(FtpUploadEvent event) { @@ -165,16 +159,16 @@ public class jt1078ServiceImpl implements Ijt1078Service { if (!event.getFileName().contains(key)) { return; } - GeneralCallback callback = fileUploadMap.get(key); + CommonCallback> callback = fileUploadMap.get(key); if (callback != null) { - callback.run(ErrorCode.SUCCESS.getCode(), ErrorCode.SUCCESS.getMsg(), event.getFileName()); + callback.run(new WVPResult<>(ErrorCode.SUCCESS.getCode(), ErrorCode.SUCCESS.getMsg(), event.getFileName())); fileUploadMap.remove(key); } }); } @Override - public void recordDownload(String phoneNumber, Integer channelId, String startTime, String endTime, Integer alarmSign, Integer mediaType, Integer streamType, Integer storageType, GeneralCallback fileCallback) { + public void recordDownload(String phoneNumber, Integer channelId, String startTime, String endTime, Integer alarmSign, Integer mediaType, Integer streamType, Integer storageType, CommonCallback> fileCallback) { String filePath = UUID.randomUUID().toString(); fileUploadMap.put(filePath, fileCallback); dynamicTask.startDelay(filePath, ()->{ @@ -307,7 +301,7 @@ public class jt1078ServiceImpl implements Ijt1078Service { } @Override - public JTDeviceConfig queryConfig(String phoneNumber, String[] params, GeneralCallback callback) { + public JTDeviceConfig queryConfig(String phoneNumber, String[] params, CommonCallback> callback) { if (phoneNumber == null) { return null; } diff --git a/web_src/src/main.js b/web_src/src/main.js index 8ea7ece1c..6ba7e0080 100755 --- a/web_src/src/main.js +++ b/web_src/src/main.js @@ -80,6 +80,7 @@ Vue.prototype.$channelTypeList = { 1: {id: 1, name: "国标设备", style: {color: "#409eff", borderColor: "#b3d8ff"}}, 2: {id: 2, name: "推流设备", style: {color: "#67c23a", borderColor: "#c2e7b0"}}, 3: {id: 3, name: "拉流代理", style: {color: "#e6a23c", borderColor: "#f5dab1"}}, + 200: {id: 200, name: "部标设备", style: {color: "#179fa5", borderColor: "#a2dfe0"}}, }; diff --git a/数据库/2.7.3/初始化-mysql-2.7.3.sql b/数据库/2.7.3/初始化-mysql-2.7.3.sql index 20d9f4603..0d0a4f2c7 100644 --- a/数据库/2.7.3/初始化-mysql-2.7.3.sql +++ b/数据库/2.7.3/初始化-mysql-2.7.3.sql @@ -462,36 +462,3 @@ create table IF NOT EXISTS wvp_record_plan_item update_time character varying(50) ); -create table wvp_jt_terminal ( - id serial primary key, - phone_number character varying(50), - terminal_id character varying(50), - province_id character varying(50), - province_text character varying(100), - city_id character varying(50), - city_text character varying(100), - maker_id character varying(50), - model character varying(50), - plate_color character varying(50), - plate_no character varying(50), - authentication_code character varying(255), - longitude double precision, - latitude double precision, - status bool default false, - register_time character varying(50) default null, - update_time character varying(50) not null, - create_time character varying(50) not null, - constraint uk_jt_device_id_device_id unique (id, phone_number) -); - -create table wvp_jt_channel ( - id serial primary key, - terminal_db_id integer, - channel_id integer, - has_audio bool default false, - name character varying(255), - update_time character varying(50) not null, - create_time character varying(50) not null, - constraint uk_jt_device_id_device_id unique (terminal_db_id, channel_id) -); - diff --git a/数据库/2.7.3/初始化-postgresql-kingbase-2.7.3.sql b/数据库/2.7.3/初始化-postgresql-kingbase-2.7.3.sql index 7c56e3eb5..05d04538e 100644 --- a/数据库/2.7.3/初始化-postgresql-kingbase-2.7.3.sql +++ b/数据库/2.7.3/初始化-postgresql-kingbase-2.7.3.sql @@ -462,36 +462,3 @@ create table IF NOT EXISTS wvp_record_plan_item update_time character varying(50) ); -create table wvp_jt_terminal ( - id serial primary key, - phone_number character varying(50), - terminal_id character varying(50), - province_id character varying(50), - province_text character varying(100), - city_id character varying(50), - city_text character varying(100), - maker_id character varying(50), - model character varying(50), - plate_color character varying(50), - plate_no character varying(50), - authentication_code character varying(255), - longitude double precision, - latitude double precision, - status bool default false, - register_time character varying(50) default null, - update_time character varying(50) not null, - create_time character varying(50) not null, - constraint uk_jt_device_id_device_id unique (id, phone_number) -); - -create table wvp_jt_channel ( - id serial primary key, - terminal_db_id integer, - channel_id integer, - has_audio bool default false, - name character varying(255), - update_time character varying(50) not null, - create_time character varying(50) not null, - constraint uk_jt_device_id_device_id unique (terminal_db_id, channel_id) -); - diff --git a/数据库/JT1078-2.7.2/初始化-mysql-2.7.2.sql b/数据库/JT1078-2.7.2/初始化-mysql-2.7.2.sql deleted file mode 100644 index 98d434042..000000000 --- a/数据库/JT1078-2.7.2/初始化-mysql-2.7.2.sql +++ /dev/null @@ -1,342 +0,0 @@ -/*建表*/ -create table wvp_device ( - id serial primary key , - device_id character varying(50) not null , - name character varying(255), - manufacturer character varying(255), - model character varying(255), - firmware character varying(255), - transport character varying(50), - stream_mode character varying(50), - on_line bool default false, - register_time character varying(50), - keepalive_time character varying(50), - ip character varying(50), - create_time character varying(50), - update_time character varying(50), - port integer, - expires integer, - subscribe_cycle_for_catalog integer DEFAULT 0, - subscribe_cycle_for_mobile_position integer DEFAULT 0, - mobile_position_submission_interval integer DEFAULT 5, - subscribe_cycle_for_alarm integer DEFAULT 0, - host_address character varying(50), - charset character varying(50), - ssrc_check bool default false, - geo_coord_sys character varying(50), - media_server_id character varying(50), - custom_name character varying(255), - sdp_ip character varying(50), - local_ip character varying(50), - password character varying(255), - as_message_channel bool default false, - keepalive_interval_time integer, - broadcast_push_after_ack bool default false, - constraint uk_device_device unique (device_id) -); - -create table wvp_device_alarm ( - id serial primary key , - device_id character varying(50) not null, - channel_id character varying(50) not null, - alarm_priority character varying(50), - alarm_method character varying(50), - alarm_time character varying(50), - alarm_description character varying(255), - longitude double precision, - latitude double precision, - alarm_type character varying(50), - create_time character varying(50) not null -); - -create table wvp_device_channel ( - id serial primary key , - channel_id character varying(50) not null, - name character varying(255), - custom_name character varying(255), - manufacture character varying(50), - model character varying(50), - owner character varying(50), - civil_code character varying(50), - block character varying(50), - address character varying(50), - parent_id character varying(50), - safety_way integer, - register_way integer, - cert_num character varying(50), - certifiable integer, - err_code integer, - end_time character varying(50), - secrecy character varying(50), - ip_address character varying(50), - port integer, - password character varying(255), - ptz_type integer, - custom_ptz_type integer, - status bool default false, - longitude double precision, - custom_longitude double precision, - latitude double precision, - custom_latitude double precision, - stream_id character varying(255), - device_id character varying(50) not null, - parental character varying(50), - has_audio bool default false, - create_time character varying(50) not null, - update_time character varying(50) not null, - sub_count integer, - longitude_gcj02 double precision, - latitude_gcj02 double precision, - longitude_wgs84 double precision, - latitude_wgs84 double precision, - business_group_id character varying(50), - gps_time character varying(50), - stream_identification character varying(50), - constraint uk_wvp_device_channel_unique_device_channel unique (device_id, channel_id) -); - -create table wvp_device_mobile_position ( - id serial primary key, - device_id character varying(50) not null, - channel_id character varying(50) not null, - device_name character varying(255), - time character varying(50), - longitude double precision, - latitude double precision, - altitude double precision, - speed double precision, - direction double precision, - report_source character varying(50), - longitude_gcj02 double precision, - latitude_gcj02 double precision, - longitude_wgs84 double precision, - latitude_wgs84 double precision, - create_time character varying(50) -); - -create table wvp_gb_stream ( - gb_stream_id serial primary key, - app character varying(255) not null, - stream character varying(255) not null, - gb_id character varying(50) not null, - name character varying(255), - longitude double precision, - latitude double precision, - stream_type character varying(50), - media_server_id character varying(50), - create_time character varying(50), - constraint uk_gb_stream_unique_gb_id unique (gb_id), - constraint uk_gb_stream_unique_app_stream unique (app, stream) -); - -create table wvp_log ( - id serial primary key , - name character varying(50), - type character varying(50), - uri character varying(200), - address character varying(50), - result character varying(50), - timing bigint, - username character varying(50), - create_time character varying(50) -); - -create table wvp_media_server ( - id character varying(255) primary key , - ip character varying(50), - hook_ip character varying(50), - sdp_ip character varying(50), - stream_ip character varying(50), - http_port integer, - http_ssl_port integer, - rtmp_port integer, - rtmp_ssl_port integer, - rtp_proxy_port integer, - rtsp_port integer, - rtsp_ssl_port integer, - flv_port integer, - flv_ssl_port integer, - ws_flv_port integer, - ws_flv_ssl_port integer, - auto_config bool default false, - secret character varying(50), - type character varying(50) default 'zlm', - rtp_enable bool default false, - rtp_port_range character varying(50), - send_rtp_port_range character varying(50), - record_assist_port integer, - default_server bool default false, - create_time character varying(50), - update_time character varying(50), - hook_alive_interval integer, - record_path character varying(255), - record_day integer default 7, - transcode_suffix character varying(255), - constraint uk_media_server_unique_ip_http_port unique (ip, http_port) -); - -create table wvp_platform ( - id serial primary key , - enable bool default false, - name character varying(255), - server_gb_id character varying(50), - server_gb_domain character varying(50), - server_ip character varying(50), - server_port integer, - device_gb_id character varying(50), - device_ip character varying(50), - device_port character varying(50), - username character varying(255), - password character varying(50), - expires character varying(50), - keep_timeout character varying(50), - transport character varying(50), - character_set character varying(50), - catalog_id character varying(50), - ptz bool default false, - rtcp bool default false, - status bool default false, - start_offline_push bool default false, - administrative_division character varying(50), - catalog_group integer, - create_time character varying(50), - update_time character varying(50), - as_message_channel bool default false, - auto_push_channel bool default false, - send_stream_ip character varying(50), - constraint uk_platform_unique_server_gb_id unique (server_gb_id) -); - -create table wvp_platform_catalog ( - id character varying(50), - platform_id character varying(50), - name character varying(255), - parent_id character varying(50), - civil_code character varying(50), - business_group_id character varying(50), - constraint uk_platform_catalog_id_platform_id unique (id, platform_id) -); - -create table wvp_platform_gb_channel ( - id serial primary key , - platform_id character varying(50), - catalog_id character varying(50), - device_channel_id integer, - constraint uk_platform_gb_channel_platform_id_catalog_id_device_channel_id unique (platform_id, catalog_id, device_channel_id) -); - -create table wvp_platform_gb_stream ( - id serial primary key, - platform_id character varying(50), - catalog_id character varying(50), - gb_stream_id integer, - constraint uk_platform_gb_stream_platform_id_catalog_id_gb_stream_id unique (platform_id, catalog_id, gb_stream_id) -); - -create table wvp_stream_proxy ( - id serial primary key, - type character varying(50), - app character varying(255), - stream character varying(255), - url character varying(255), - src_url character varying(255), - dst_url character varying(255), - timeout_ms integer, - ffmpeg_cmd_key character varying(255), - rtp_type character varying(50), - media_server_id character varying(50), - enable_audio bool default false, - enable_mp4 bool default false, - enable bool default false, - status boolean, - enable_remove_none_reader bool default false, - create_time character varying(50), - name character varying(255), - update_time character varying(50), - stream_key character varying(255), - enable_disable_none_reader bool default false, - constraint uk_stream_proxy_app_stream unique (app, stream) -); - -create table wvp_stream_push ( - id serial primary key, - app character varying(255), - stream character varying(255), - total_reader_count character varying(50), - origin_type integer, - origin_type_str character varying(50), - create_time character varying(50), - alive_second integer, - media_server_id character varying(50), - server_id character varying(50), - push_time character varying(50), - status bool default false, - update_time character varying(50), - push_ing bool default false, - self bool default false, - constraint uk_stream_push_app_stream unique (app, stream) -); -create table wvp_cloud_record ( - id serial primary key, - app character varying(255), - stream character varying(255), - call_id character varying(255), - start_time bigint, - end_time bigint, - media_server_id character varying(50), - file_name character varying(255), - folder character varying(255), - file_path character varying(255), - collect bool default false, - file_size bigint, - time_len bigint, - constraint uk_stream_push_app_stream_path unique (app, stream, file_path) -); - -create table wvp_user ( - id serial primary key, - username character varying(255), - password character varying(255), - role_id integer, - create_time character varying(50), - update_time character varying(50), - push_key character varying(50), - constraint uk_user_username unique (username) -); - -create table wvp_user_role ( - id serial primary key, - name character varying(50), - authority character varying(50), - create_time character varying(50), - update_time character varying(50) -); -create table wvp_resources_tree ( - id serial primary key , - is_catalog bool default true, - device_channel_id integer , - gb_stream_id integer, - name character varying(255), - parentId integer, - path character varying(255) -); - -create table wvp_user_api_key ( - id serial primary key , - user_id bigint, - app character varying(255) , - api_key text, - expired_at bigint, - remark character varying(255), - enable bool default true, - create_time character varying(50), - update_time character varying(50) -); - - -/*初始数据*/ -INSERT INTO wvp_user VALUES (1, 'admin','21232f297a57a5a743894a0e4a801fc3',1,'2021-04-13 14:14:57','2021-04-13 14:14:57','3e80d1762a324d5b0ff636e0bd16f1e3'); -INSERT INTO wvp_user_role VALUES (1, 'admin','0','2021-04-13 14:14:57','2021-04-13 14:14:57'); - - - diff --git a/数据库/JT1078-2.7.2/初始化-postgresql-kingbase-2.7.2.sql b/数据库/JT1078-2.7.2/初始化-postgresql-kingbase-2.7.2.sql deleted file mode 100644 index 35a201cd6..000000000 --- a/数据库/JT1078-2.7.2/初始化-postgresql-kingbase-2.7.2.sql +++ /dev/null @@ -1,373 +0,0 @@ -/*建表*/ -create table wvp_device ( - id serial primary key , - device_id character varying(50) not null , - name character varying(255), - manufacturer character varying(255), - model character varying(255), - firmware character varying(255), - transport character varying(50), - stream_mode character varying(50), - on_line bool default false, - register_time character varying(50), - keepalive_time character varying(50), - ip character varying(50), - create_time character varying(50), - update_time character varying(50), - port integer, - expires integer, - subscribe_cycle_for_catalog integer DEFAULT 0, - subscribe_cycle_for_mobile_position integer DEFAULT 0, - mobile_position_submission_interval integer DEFAULT 5, - subscribe_cycle_for_alarm integer DEFAULT 0, - host_address character varying(50), - charset character varying(50), - ssrc_check bool default false, - geo_coord_sys character varying(50), - media_server_id character varying(50), - custom_name character varying(255), - sdp_ip character varying(50), - local_ip character varying(50), - password character varying(255), - as_message_channel bool default false, - keepalive_interval_time integer, - broadcast_push_after_ack bool default false, - constraint uk_device_device unique (device_id) -); - -create table wvp_device_alarm ( - id serial primary key , - device_id character varying(50) not null, - channel_id character varying(50) not null, - alarm_priority character varying(50), - alarm_method character varying(50), - alarm_time character varying(50), - alarm_description character varying(255), - longitude double precision, - latitude double precision, - alarm_type character varying(50), - create_time character varying(50) not null -); - -create table wvp_device_channel ( - id serial primary key , - channel_id character varying(50) not null, - name character varying(255), - custom_name character varying(255), - manufacture character varying(50), - model character varying(50), - owner character varying(50), - civil_code character varying(50), - block character varying(50), - address character varying(50), - parent_id character varying(50), - safety_way integer, - register_way integer, - cert_num character varying(50), - certifiable integer, - err_code integer, - end_time character varying(50), - secrecy character varying(50), - ip_address character varying(50), - port integer, - password character varying(255), - ptz_type integer, - custom_ptz_type integer, - status bool default false, - longitude double precision, - custom_longitude double precision, - latitude double precision, - custom_latitude double precision, - stream_id character varying(255), - device_id character varying(50) not null, - parental character varying(50), - has_audio bool default false, - create_time character varying(50) not null, - update_time character varying(50) not null, - sub_count integer, - longitude_gcj02 double precision, - latitude_gcj02 double precision, - longitude_wgs84 double precision, - latitude_wgs84 double precision, - business_group_id character varying(50), - gps_time character varying(50), - stream_identification character varying(50), - constraint uk_wvp_device_channel_unique_device_channel unique (device_id, channel_id) -); - -create table wvp_device_mobile_position ( - id serial primary key, - device_id character varying(50) not null, - channel_id character varying(50) not null, - device_name character varying(255), - time character varying(50), - longitude double precision, - latitude double precision, - altitude double precision, - speed double precision, - direction double precision, - report_source character varying(50), - longitude_gcj02 double precision, - latitude_gcj02 double precision, - longitude_wgs84 double precision, - latitude_wgs84 double precision, - create_time character varying(50) -); - -create table wvp_gb_stream ( - gb_stream_id serial primary key, - app character varying(255) not null, - stream character varying(255) not null, - gb_id character varying(50) not null, - name character varying(255), - longitude double precision, - latitude double precision, - stream_type character varying(50), - media_server_id character varying(50), - create_time character varying(50), - constraint uk_gb_stream_unique_gb_id unique (gb_id), - constraint uk_gb_stream_unique_app_stream unique (app, stream) -); - -create table wvp_log ( - id serial primary key , - name character varying(50), - type character varying(50), - uri character varying(200), - address character varying(50), - result character varying(50), - timing bigint, - username character varying(50), - create_time character varying(50) -); - -create table wvp_media_server ( - id character varying(255) primary key , - ip character varying(50), - hook_ip character varying(50), - sdp_ip character varying(50), - stream_ip character varying(50), - http_port integer, - http_ssl_port integer, - rtmp_port integer, - rtmp_ssl_port integer, - rtp_proxy_port integer, - rtsp_port integer, - rtsp_ssl_port integer, - flv_port integer, - flv_ssl_port integer, - ws_flv_port integer, - ws_flv_ssl_port integer, - auto_config bool default false, - secret character varying(50), - type character varying(50) default 'zlm', - rtp_enable bool default false, - rtp_port_range character varying(50), - send_rtp_port_range character varying(50), - record_assist_port integer, - default_server bool default false, - create_time character varying(50), - update_time character varying(50), - hook_alive_interval integer, - record_path character varying(255), - record_day integer default 7, - transcode_suffix character varying(255), - constraint uk_media_server_unique_ip_http_port unique (ip, http_port) -); - -create table wvp_platform ( - id serial primary key , - enable bool default false, - name character varying(255), - server_gb_id character varying(50), - server_gb_domain character varying(50), - server_ip character varying(50), - server_port integer, - device_gb_id character varying(50), - device_ip character varying(50), - device_port character varying(50), - username character varying(255), - password character varying(50), - expires character varying(50), - keep_timeout character varying(50), - transport character varying(50), - character_set character varying(50), - catalog_id character varying(50), - ptz bool default false, - rtcp bool default false, - status bool default false, - start_offline_push bool default false, - administrative_division character varying(50), - catalog_group integer, - create_time character varying(50), - update_time character varying(50), - as_message_channel bool default false, - auto_push_channel bool default false, - send_stream_ip character varying(50), - constraint uk_platform_unique_server_gb_id unique (server_gb_id) -); - -create table wvp_platform_catalog ( - id character varying(50), - platform_id character varying(50), - name character varying(255), - parent_id character varying(50), - civil_code character varying(50), - business_group_id character varying(50), - constraint uk_platform_catalog_id_platform_id unique (id, platform_id) -); - -create table wvp_platform_gb_channel ( - id serial primary key , - platform_id character varying(50), - catalog_id character varying(50), - device_channel_id integer, - constraint uk_platform_gb_channel_platform_id_catalog_id_device_channel_id unique (platform_id, catalog_id, device_channel_id) -); - -create table wvp_platform_gb_stream ( - id serial primary key, - platform_id character varying(50), - catalog_id character varying(50), - gb_stream_id integer, - constraint uk_platform_gb_stream_platform_id_catalog_id_gb_stream_id unique (platform_id, catalog_id, gb_stream_id) -); - -create table wvp_stream_proxy ( - id serial primary key, - type character varying(50), - app character varying(255), - stream character varying(255), - url character varying(255), - src_url character varying(255), - dst_url character varying(255), - timeout_ms integer, - ffmpeg_cmd_key character varying(255), - rtp_type character varying(50), - media_server_id character varying(50), - enable_audio bool default false, - enable_mp4 bool default false, - enable bool default false, - status boolean, - enable_remove_none_reader bool default false, - create_time character varying(50), - name character varying(255), - update_time character varying(50), - stream_key character varying(255), - enable_disable_none_reader bool default false, - constraint uk_stream_proxy_app_stream unique (app, stream) -); - -create table wvp_stream_push ( - id serial primary key, - app character varying(255), - stream character varying(255), - total_reader_count character varying(50), - origin_type integer, - origin_type_str character varying(50), - create_time character varying(50), - alive_second integer, - media_server_id character varying(50), - server_id character varying(50), - push_time character varying(50), - status bool default false, - update_time character varying(50), - push_ing bool default false, - self bool default false, - constraint uk_stream_push_app_stream unique (app, stream) -); -create table wvp_cloud_record ( - id serial primary key, - app character varying(255), - stream character varying(255), - call_id character varying(255), - start_time int8, - end_time int8, - media_server_id character varying(50), - file_name character varying(255), - folder character varying(255), - file_path character varying(255), - collect bool default false, - file_size int8, - time_len int8, - constraint uk_stream_push_app_stream_path unique (app, stream, file_path) -); - -create table wvp_user ( - id serial primary key, - username character varying(255), - password character varying(255), - role_id integer, - create_time character varying(50), - update_time character varying(50), - push_key character varying(50), - constraint uk_user_username unique (username) -); - -create table wvp_user_role ( - id serial primary key, - name character varying(50), - authority character varying(50), - create_time character varying(50), - update_time character varying(50) -); -create table wvp_resources_tree ( - id serial primary key , - is_catalog bool default true, - device_channel_id integer , - gb_stream_id integer, - name character varying(255), - parentId integer, - path character varying(255) -); - -create table wvp_user_api_key ( - id serial primary key , - user_id bigint, - app character varying(255) , - api_key text, - expired_at bigint, - remark character varying(255), - enable bool default true, - create_time character varying(50), - update_time character varying(50) -); - -create table wvp_jt_terminal ( - id serial primary key, - phone_number character varying(50), - terminal_id character varying(50), - province_id character varying(50), - province_text character varying(100), - city_id character varying(50), - city_text character varying(100), - maker_id character varying(50), - model character varying(50), - plate_color character varying(50), - plate_no character varying(50), - authentication_code character varying(255), - longitude double precision, - latitude double precision, - status bool default false, - register_time character varying(50) default null, - update_time character varying(50) not null, - create_time character varying(50) not null, - constraint uk_jt_device_id_device_id unique (id, phone_number) -); - -create table wvp_jt_channel ( - id serial primary key, - terminal_db_id integer, - channel_id integer, - has_audio bool default false, - name character varying(255), - update_time character varying(50) not null, - create_time character varying(50) not null, - constraint uk_jt_device_id_device_id unique (terminal_db_id, channel_id) -); -/*初始数据*/ -INSERT INTO wvp_user VALUES (1, 'admin','21232f297a57a5a743894a0e4a801fc3',1,'2021-04-13 14:14:57','2021-04-13 14:14:57','3e80d1762a324d5b0ff636e0bd16f1e3'); -INSERT INTO wvp_user_role VALUES (1, 'admin','0','2021-04-13 14:14:57','2021-04-13 14:14:57'); - - - diff --git a/数据库/JT1078-2.7.3/更新-mysql-2.7.3.sql b/数据库/JT1078-2.7.3/更新-mysql-2.7.3.sql new file mode 100644 index 000000000..52a93648e --- /dev/null +++ b/数据库/JT1078-2.7.3/更新-mysql-2.7.3.sql @@ -0,0 +1,81 @@ +drop table IF EXISTS wvp_jt_terminal; +create table IF NOT EXISTS wvp_jt_terminal ( + id serial primary key, + phone_number character varying(50), + terminal_id character varying(50), + province_id character varying(50), + province_text character varying(100), + city_id character varying(50), + city_text character varying(100), + maker_id character varying(50), + model character varying(50), + plate_color character varying(50), + plate_no character varying(50), + authentication_code character varying(255), + longitude double precision, + latitude double precision, + status bool default false, + register_time character varying(50) default null, + update_time character varying(50) not null, + create_time character varying(50) not null, + constraint uk_jt_device_id_device_id unique (id, phone_number) +); + +drop table IF EXISTS wvp_jt_channel; +create table IF NOT EXISTS wvp_jt_channel ( + id serial primary key, + terminal_db_id integer, + channel_id integer, + has_audio bool default false, + name character varying(255), + update_time character varying(50) not null, + create_time character varying(50) not null, + gb_device_id character varying(255), + gb_name character varying(255), + gb_manufacturer character varying(255), + gb_model character varying(255), + gb_civil_code character varying(8), + gb_block character varying(255), + gb_address character varying(255), + gb_parental bool default false, + gb_parent_id character varying(255), + gb_register_way integer default 1, + gb_security_level_code character varying(255), + gb_secrecy integer default 0, + gb_ip_address character varying(255), + gb_port integer, + gb_password character varying(255), + gb_status bool default false, + gb_longitude double precision, + gb_latitude double precision, + gb_business_group_id character varying(255), + gb_ptz_type integer, + gb_photoelectric_imaging_type integer, + gb_capture_position_type integer, + gb_room_type integer, + gb_supply_light_type integer default 1, + gb_direction_type integer, + gb_resolution character varying(255), + gb_stream_number_list character varying(255), + gb_download_speed character varying(255), + gb_svc_space_support_mode integer, + gb_svc_time_support_mode integer, + gb_ssvc_ratio_support_list character varying(255), + gb_mobile_device_type integer, + gb_horizontal_field_angle double precision, + gb_vertical_field_angle double precision, + gb_max_view_distance double precision, + gb_grassroots_code character varying(255), + gb_point_type integer, + gb_point_common_name character varying(255), + gb_mac character varying(255), + gb_function_type character varying(255), + gb_encode_type character varying(255), + gb_install_time character varying(255), + gb_management_unit character varying(255), + gb_contact_info character varying(255), + gb_record_save_days character varying(255), + gb_industrial_classification character varying(255), + constraint uk_jt_device_id_device_id unique (terminal_db_id, channel_id) +); + diff --git a/数据库/JT1078-2.7.3/更新-postgresql-kingbase-2.7.3.sql b/数据库/JT1078-2.7.3/更新-postgresql-kingbase-2.7.3.sql new file mode 100644 index 000000000..74117f370 --- /dev/null +++ b/数据库/JT1078-2.7.3/更新-postgresql-kingbase-2.7.3.sql @@ -0,0 +1,33 @@ +drop table IF EXISTS wvp_jt_terminal; +create table IF NOT EXISTS wvp_jt_terminal ( + id serial primary key, + phone_number character varying(50), + terminal_id character varying(50), + province_id character varying(50), + province_text character varying(100), + city_id character varying(50), + city_text character varying(100), + maker_id character varying(50), + model character varying(50), + plate_color character varying(50), + plate_no character varying(50), + authentication_code character varying(255), + longitude double precision, + latitude double precision, + status bool default false, + register_time character varying(50) default null, + update_time character varying(50) not null, + create_time character varying(50) not null, + constraint uk_jt_device_id_device_id unique (id, phone_number) +); +drop table IF EXISTS wvp_jt_channel; +create table IF NOT EXISTS wvp_jt_channel ( + id serial primary key, + terminal_db_id integer, + channel_id integer, + has_audio bool default false, + name character varying(255), + update_time character varying(50) not null, + create_time character varying(50) not null, + constraint uk_jt_device_id_device_id unique (terminal_db_id, channel_id) +); \ No newline at end of file