From c5b16e058dd1d517abea9a475897d9333c6e2e2e Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期三, 19 十月 2022 10:04:04 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/wvp-28181-2.0' into wvp-28181-2.0 --- src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java | 27 +++++++++++-- sql/mysql.sql | 1 web_src/src/components/CloudRecord.vue | 22 ++++++++-- src/main/java/com/genersoft/iot/vmp/gb28181/conf/SipLoggerPass.java | 1 README.md | 3 - src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java | 8 ++- 6 files changed, 47 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 45b1964..050c138 100644 --- a/README.md +++ b/README.md @@ -156,7 +156,6 @@ # 鎺堟潈鍗忚 鏈」鐩嚜鏈変唬鐮佷娇鐢ㄥ鏉剧殑MIT鍗忚锛屽湪淇濈暀鐗堟潈淇℃伅鐨勬儏鍐典笅鍙互鑷敱搴旂敤浜庡悇鑷晢鐢ㄣ�侀潪鍟嗕笟鐨勯」鐩�� 浣嗘槸鏈」鐩篃闆剁鐨勪娇鐢ㄤ簡涓�浜涘叾浠栫殑寮�婧愪唬鐮侊紝鍦ㄥ晢鐢ㄧ殑鎯呭喌涓嬭鑷鏇夸唬鎴栧墧闄わ紱 鐢变簬浣跨敤鏈」鐩�屼骇鐢熺殑鍟嗕笟绾犵悍鎴栦镜鏉冭涓轰竴姒備笌鏈」鐩強寮�鍙戣�呮棤鍏筹紝璇疯嚜琛屾壙鎷呮硶寰嬮闄┿�� 鍦ㄤ娇鐢ㄦ湰椤圭洰浠g爜鏃讹紝涔熷簲璇ュ湪鎺堟潈鍗忚涓悓鏃惰〃鏄庢湰椤圭洰渚濊禆鐨勭涓夋柟搴撶殑鍗忚 - # 鑷磋阿 鎰熻阿浣滆�匸澶忔](https://github.com/xia-chu) 鎻愪緵杩欎箞妫掔殑寮�婧愭祦濯掍綋鏈嶅姟妗嗘灦,骞跺湪寮�鍙戣繃绋嬩腑缁欎簣鏀寔涓庡府鍔┿�� 鎰熻阿浣滆�匸dexter langhuihui](https://github.com/langhuihui) 寮�婧愯繖涔堝ソ鐢ㄧ殑WEB鎾斁鍣ㄣ�� @@ -166,7 +165,7 @@ [hotcoffie](https://github.com/hotcoffie) [xiaomu](https://github.com/nikmu) [TristingChen](https://github.com/TristingChen) [chenparty](https://github.com/chenparty) [Hotleave](https://github.com/hotleave) [ydwxb](https://github.com/ydwxb) [ydpd](https://github.com/ydpd) [szy833](https://github.com/szy833) [ydwxb](https://github.com/ydwxb) [Albertzhu666](https://github.com/Albertzhu666) -[mk1990](https://github.com/mk1990) +[mk1990](https://github.com/mk1990) [SaltFish001](https://github.com/SaltFish001) ps: 鍒氬鍔犱簡杩欎釜鍚嶅崟锛岃偗瀹氶仐婕忎簡涓�浜涘ぇ浣紝娆㈣繋澶т浆鑱旂郴鎴戞坊鍔犮�� diff --git a/sql/mysql.sql b/sql/mysql.sql index 6b937e5..e3e9e23 100644 --- a/sql/mysql.sql +++ b/sql/mysql.sql @@ -48,6 +48,7 @@ `ssrcCheck` int DEFAULT '0', `geoCoordSys` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `treeType` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `mediaServerId` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'auto', `custom_name` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL, `password` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL, PRIMARY KEY (`id`), diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/conf/SipLoggerPass.java b/src/main/java/com/genersoft/iot/vmp/gb28181/conf/SipLoggerPass.java index f8d6485..18dd151 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/conf/SipLoggerPass.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/conf/SipLoggerPass.java @@ -6,6 +6,7 @@ /** * sip鏃ュ織鏍煎紡鍖� + * 鏆備笉浣跨敤 */ public class SipLoggerPass implements StackLogger { 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 7ba2c4e..23a342b 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 @@ -118,6 +118,7 @@ } sync(device); }else { + if(device.getOnline() == 0){ device.setOnline(1); device.setCreateTime(now); @@ -132,6 +133,11 @@ sync(device); // TODO 濡傛灉璁惧涓嬬殑閫氶亾绾ц仈鍒颁簡鍏朵粬骞冲彴锛岄偅涔堥渶瑕佸彂閫佷簨浠舵垨鑰卬otify缁欎笂绾у钩鍙� }else { + if (deviceChannelMapper.queryAllChannels(device.getDeviceId()).size() == 0) { + logger.info("[璁惧涓婄嚎]: {}锛岄�氶亾鏁颁负0,鏌ヨ閫氶亾淇℃伅", device.getDeviceId()); + sync(device); + } + deviceMapper.update(device); redisCatchStorage.updateDevice(device); } @@ -362,10 +368,10 @@ return null; } // 浣跨敤琛屾斂鍖哄垝灞曠ず鏍� - if (parentId.length() > 10) { - // TODO 鍙兘鏄鏀垮尯鍒掍笌涓氬姟鍒嗙粍娣锋潅鐨勬儏褰� - return null; - } +// if (parentId.length() > 10) { +// // TODO 鍙兘鏄鏀垮尯鍒掍笌涓氬姟鍒嗙粍娣锋潅鐨勬儏褰� +// return null; +// } if (parentId.length() == 10 ) { if (onlyCatalog) { @@ -380,7 +386,18 @@ List<DeviceChannel> channelsForCivilCode = deviceChannelMapper.getChannelsWithCivilCodeAndLength(deviceId, parentId, parentId.length() + 2); if (!onlyCatalog) { List<DeviceChannel> channels = deviceChannelMapper.getChannelsByCivilCode(deviceId, parentId); - channelsForCivilCode.addAll(channels); + + for(DeviceChannel channel : channels) { + boolean flag = false; + for(DeviceChannel deviceChannel : channelsForCivilCode) { + if(channel.getChannelId().equals(deviceChannel.getChannelId())) { + flag = true; + } + } + if(!flag) { + channelsForCivilCode.add(channel); + } + } } List<BaseTree<DeviceChannel>> trees = transportChannelsToTree(channelsForCivilCode, parentId); return trees; diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java index 3ef412d..9b2a099 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java @@ -71,7 +71,7 @@ "WHERE " + "dc.deviceId = #{deviceId} " + " <if test='query != null'> AND (dc.channelId LIKE '%${query}%' OR dc.name LIKE '%${query}%' OR dc.name LIKE '%${query}%')</if> " + - " <if test='parentChannelId != null'> AND dc.parentId=#{parentChannelId} </if> " + + " <if test='parentChannelId != null'> AND (dc.parentId=#{parentChannelId} OR dc.civilCode = #{parentChannelId}) </if> " + " <if test='online == true' > AND dc.status=1</if>" + " <if test='online == false' > AND dc.status=0</if>" + " <if test='hasSubChannel == true' > AND dc.subCount > 0 </if>" + @@ -309,8 +309,10 @@ "select * " + "from device_channel " + "where deviceId=#{deviceId}" + - " <if test='parentId != null' > and left(channelId, ${parentId.length()}) = #{parentId}</if>" + - " <if test='length != null' > and length(channelId)=${length}</if>" + + " <if test='parentId != null and length != null' > and parentId = #{parentId} or left(channelId, ${parentId.length()}) = #{parentId} and length(channelId)=${length} </if>" + + " <if test='parentId == null and length != null' > and parentId = #{parentId} or length(channelId)=${length} </if>" + + " <if test='parentId == null and length == null' > and parentId = #{parentId} </if>" + + " <if test='parentId != null and length == null' > and parentId = #{parentId} or left(channelId, ${parentId.length()}) = #{parentId} </if>" + " </script>"}) List<DeviceChannel> getChannelsWithCivilCodeAndLength(String deviceId, String parentId, Integer length); diff --git a/web_src/src/components/CloudRecord.vue b/web_src/src/components/CloudRecord.vue index 4784e05..b046fc9 100644 --- a/web_src/src/components/CloudRecord.vue +++ b/web_src/src/components/CloudRecord.vue @@ -109,14 +109,25 @@ that.mediaServerList = data.data; if (that.mediaServerList.length > 0) { that.mediaServerId = that.mediaServerList[0].id - let port = that.mediaServerList[0].httpPort; - if (location.protocol === "https:" && that.mediaServerList[0].httpSSlPort) { - port = that.mediaServerList[0].httpSSlPort - } - that.mediaServerPath = location.protocol + "//" + that.mediaServerList[0].streamIp + ":" + port + that.setMediaServerPath(that.mediaServerId); that.getRecordList(); } }) + }, + setMediaServerPath: function (serverId) { + let that = this; + let i; + for (i = 0; i < that.mediaServerList.length; i++) { + if (serverId === that.mediaServerList[i].id) { + break; + } + } + let port = that.mediaServerList[i].httpPort; + if (location.protocol === "https:" && that.mediaServerList[i].httpSSlPort) { + port = that.mediaServerList[i].httpSSlPort + } + that.mediaServerPath = location.protocol + "//" + that.mediaServerList[i].streamIp + ":" + port + console.log(that.mediaServerPath) }, getRecordList: function (){ let that = this; @@ -146,6 +157,7 @@ console.log(val) this.total = 0; this.recordList = []; + this.setMediaServerPath(val); this.getRecordList(); }, showRecordDetail(row){ -- Gitblit v1.8.0