通道增加自定义属性 是否支持云台控制和是否支持语音对讲

This commit is contained in:
lin
2025-09-24 17:47:12 +08:00
parent 554a11ead6
commit bee911fa09
9 changed files with 85 additions and 4 deletions

View File

@@ -153,6 +153,12 @@ public class CommonGBChannel {
@Schema(description = "流唯一编号,存在表示正在直播")
private String streamId;
@Schema(description = "是否支持云台控制 1支持,0不支持")
private Integer enablePtz;
@Schema(description = "是否支持对讲 1支持,0不支持")
private Integer enableBroadcast;
public String encode(String serverDeviceId) {
return encode(null, serverDeviceId);
}
@@ -340,6 +346,12 @@ public class CommonGBChannel {
if (this.getGbSvcTimeSupportMode() != null) {
content.append(" <SVCTimeSupportMode>" + this.getGbSvcTimeSupportMode() + "</SVCTimeSupportMode>\n");
}
if (this.getEnablePtz() != null) {
content.append(" <EnablePtz>" + this.getEnablePtz() + "</EnablePtz>\n");
}
if (this.getEnableBroadcast() != null) {
content.append(" <EnableBroadcast>" + this.getEnableBroadcast() + "</EnableBroadcast>\n");
}
content.append("</Info>\n");
}
}

View File

@@ -236,7 +236,18 @@ public class DeviceChannel extends CommonGBChannel {
GbCode gbCode = GbCode.decode(deviceChannel.getDeviceId());
if (gbCode != null && "138".equals(gbCode.getTypeCode())) {
deviceChannel.setHasAudio(true);
if (deviceChannel.getEnableBroadcast() == null && "138".equals(gbCode.getTypeCode())) {
deviceChannel.setEnableBroadcast(1);
}
if (deviceChannel.getEnablePtz() == null && (
deviceChannel.getPtzType() == 1
|| deviceChannel.getPtzType() == 4
|| deviceChannel.getPtzType() == 5
)) {
deviceChannel.setEnablePtz(1);
}
}
return deviceChannel;
}

View File

@@ -57,7 +57,9 @@ public interface CommonGBChannelMapper {
"gb_business_group_id," +
"gb_download_speed," +
"gb_svc_space_support_mod," +
"gb_svc_time_support_mode ) " +
"gb_svc_time_support_mode," +
"enable_ptz," +
"enable_broadcast ) " +
"VALUES (" +
"#{gbDeviceId}, " +
"#{dataType}, " +
@@ -96,7 +98,9 @@ public interface CommonGBChannelMapper {
"#{gbBusinessGroupId},"+
"#{gbDownloadSpeed},"+
"#{gbSvcSpaceSupportMod},"+
"#{gbSvcTimeSupportMode}"+
"#{gbSvcTimeSupportMode},"+
"#{enablePtz},"+
"#{enableBroadcast}"+
")" +
" </script>")
@Options(useGeneratedKeys = true, keyProperty = "gbId", keyColumn = "id")
@@ -144,6 +148,8 @@ public interface CommonGBChannelMapper {
", gb_download_speed = #{gbDownloadSpeed}" +
", gb_svc_space_support_mod = #{gbSvcSpaceSupportMod}" +
", gb_svc_time_support_mode = #{gbSvcTimeSupportMode}" +
", enable_ptz = #{enablePtz}" +
", enable_broadcast = #{enableBroadcast}" +
" WHERE id = #{gbId}"+
" </script>"})
int update(CommonGBChannel commonGBChannel);
@@ -205,7 +211,9 @@ public interface CommonGBChannelMapper {
"gb_business_group_id," +
"gb_download_speed," +
"gb_svc_space_support_mod," +
"gb_svc_time_support_mode ) " +
"gb_svc_time_support_mode," +
"enable_ptz," +
"enable_broadcast ) " +
"VALUES" +
"<foreach collection='commonGBChannels' index='index' item='item' separator=','> " +
"(#{item.gbDeviceId}, #{item.dataType}, #{item.dataDeviceId},#{item.createTime},#{item.updateTime}," +
@@ -214,7 +222,7 @@ public interface CommonGBChannelMapper {
"#{item.gbRegisterWay},#{item.gbCertNum},#{item.gbCertifiable},#{item.gbErrCode},#{item.gbEndTime}, #{item.gbSecrecy},#{item.gbIpAddress}," +
"#{item.gbPort},#{item.gbPassword},#{item.gbStatus},#{item.gbLongitude}, #{item.gbLatitude},#{item.gbPtzType},#{item.gbPositionType},#{item.gbRoomType}," +
"#{item.gbUseType},#{item.gbSupplyLightType},#{item.gbDirectionType},#{item.gbResolution},#{item.gbBusinessGroupId},#{item.gbDownloadSpeed}," +
"#{item.gbSvcSpaceSupportMod},#{item.gbSvcTimeSupportMode})" +
"#{item.gbSvcSpaceSupportMod},#{item.gbSvcTimeSupportMode},#{item.enablePtz},#{item.enableBroadcast})" +
"</foreach> " +
" </script>")
int batchAdd(List<CommonGBChannel> commonGBChannels);
@@ -424,6 +432,8 @@ public interface CommonGBChannelMapper {
", gb_download_speed=#{item.gbDownloadSpeed}" +
", gb_svc_space_support_mod=#{item.gbSvcSpaceSupportMod}" +
", gb_svc_time_support_mode=#{item.gbSvcTimeSupportMode}" +
", enable_ptz = #{enablePtz}" +
", enable_broadcast = #{enableBroadcast}" +
" WHERE id=#{item.gbId}" +
"</foreach>" +
"</script>"})
@@ -505,6 +515,8 @@ public interface CommonGBChannelMapper {
" wdc.create_time,\n" +
" wdc.update_time,\n" +
" wdc.record_plan_id,\n" +
" wdc.enable_ptz,\n" +
" wdc.enable_broadcast,\n" +
" coalesce( wdc.gb_device_id, wdc.device_id) as gb_device_id,\n" +
" coalesce( wdc.gb_name, wdc.name) as gb_name,\n" +
" coalesce( wdc.gb_manufacturer, wdc.manufacturer) as gb_manufacturer,\n" +

View File

@@ -18,6 +18,8 @@ public class ChannelProvider {
" update_time,\n" +
" stream_id,\n" +
" record_plan_id,\n" +
" enable_ptz,\n" +
" enable_broadcast,\n" +
" coalesce(gb_device_id, device_id) as gb_device_id,\n" +
" coalesce(gb_name, name) as gb_name,\n" +
" coalesce(gb_manufacturer, manufacturer) as gb_manufacturer,\n" +
@@ -63,6 +65,8 @@ public class ChannelProvider {
" wdc.update_time,\n" +
" wdc.stream_id,\n" +
" wdc.record_plan_id,\n" +
" wdc.enable_ptz,\n" +
" wdc.enable_broadcast,\n" +
" coalesce(wdc.gb_device_id, wdc.device_id) as gb_device_id,\n" +
" coalesce(wdc.gb_name, wdc.name) as gb_name,\n" +
" coalesce(wdc.gb_manufacturer, wdc.manufacturer) as gb_manufacturer,\n" +
@@ -107,6 +111,8 @@ public class ChannelProvider {
" wdc.data_device_id,\n" +
" wdc.create_time,\n" +
" wdc.update_time,\n" +
" wdc.enable_ptz,\n" +
" wdc.enable_broadcast,\n" +
" coalesce(wpgc.custom_device_id, wdc.gb_device_id, wdc.device_id) as gb_device_id,\n" +
" coalesce(wpgc.custom_name, wdc.gb_name, wdc.name) as gb_name,\n" +
" coalesce(wpgc.custom_manufacturer, wdc.gb_manufacturer, wdc.manufacturer) as gb_manufacturer,\n" +

View File

@@ -203,6 +203,11 @@
<el-option label="3级增强" value="3" />
</el-select>
</el-form-item>
<el-form-item >
<el-checkbox v-model="form.enablePtzForBool" >云台控制(非标属性)</el-checkbox>
<el-checkbox v-model="form.enableBroadcastForBool" >语音对讲(非标属性)</el-checkbox>
</el-form-item>
<div style="float: right;">
<el-button type="primary" @click="onSubmit">保存</el-button>
<el-button v-if="cancel" @click="cancelSubmit">取消</el-button>
@@ -254,6 +259,8 @@ export default {
if (this.form.gbDownloadSpeedArray) {
this.form.gbDownloadSpeed = this.form.gbDownloadSpeedArray.join('/')
}
this.form.enablePtz = this.form.enablePtzForBool ? 1 : 0
this.form.enableBroadcast = this.form.enableBroadcastForBool ? 1 : 0
if (this.form.gbId) {
this.$store.dispatch('commonChanel/update', this.form)
.then(data => {
@@ -321,6 +328,8 @@ export default {
data.gbDownloadSpeedArray = data.gbDownloadSpeed.split('/')
}
this.form = data
this.$set(this.form, 'enablePtzForBool', this.form.enablePtz === 1)
this.$set(this.form, 'enableBroadcastForBool', this.form.enableBroadcast === 1)
})
.finally(() => {
this.loading = false

View File

@@ -159,6 +159,8 @@ create table IF NOT EXISTS wvp_device_channel
gps_speed double precision,
gps_altitude double precision,
gps_direction double precision,
enable_ptz integer default 0,
enable_broadcast integer default 0,
index (data_type),
index (data_device_id),
constraint uk_wvp_unique_channel unique (gb_device_id)

View File

@@ -159,6 +159,8 @@ create table IF NOT EXISTS wvp_device_channel
gps_speed double precision,
gps_altitude double precision,
gps_direction double precision,
enable_ptz integer default 0,
enable_broadcast integer default 0,
constraint uk_wvp_unique_channel unique (gb_device_id)
);

View File

@@ -73,6 +73,30 @@ call wvp_20250917();
DROP PROCEDURE wvp_20250917;
DELIMITER ;
/*
* 20250924
*/
DELIMITER // -- 重定义分隔符避免分号冲突
CREATE PROCEDURE `wvp_20250924`()
BEGIN
IF NOT EXISTS (SELECT column_name FROM information_schema.columns
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_device_channel' and column_name = 'enable_ptz')
THEN
ALTER TABLE wvp_device_channel ADD enable_ptz integer default 0;
END IF;
IF NOT EXISTS (SELECT column_name FROM information_schema.columns
WHERE TABLE_SCHEMA = (SELECT DATABASE()) and table_name = 'wvp_device_channel' and column_name = 'enable_broadcast')
THEN
ALTER TABLE wvp_device_channel ADD enable_broadcast integer default 0;
END IF;
END; //
call wvp_20250924();
DROP PROCEDURE wvp_20250924;
DELIMITER ;

View File

@@ -37,3 +37,6 @@ create table IF NOT EXISTS wvp_jt_channel (
ALTER table wvp_media_server ADD COLUMN IF NOT EXISTS jtt_proxy_port integer;
ALTER table wvp_media_server ADD COLUMN IF NOT EXISTS mp4_port integer;
ALTER table wvp_media_server ADD COLUMN IF NOT EXISTS mp4_ssl_port integer;
ALTER table wvp_device_channel ADD COLUMN IF NOT EXISTS enable_broadcast integer default 0;
ALTER table wvp_device_channel ADD COLUMN IF NOT EXISTS enable_broadcast integer default 0;