From 6a26b1d539576a556d0f8682af7ae4317de78c7a Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期二, 02 四月 2024 13:35:35 +0800 Subject: [PATCH] 修复相机密码脱敏导致的bug --- ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml | 144 ++++++++++++++++++++++++++++++++++++----------- 1 files changed, 109 insertions(+), 35 deletions(-) diff --git a/ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml b/ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml index cb74bd9..e7a7999 100644 --- a/ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml +++ b/ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml @@ -104,6 +104,7 @@ WHERE cast(#{deptId} as varchar) = any(string_to_array(ancestors,',')) )) </if> <if test="towerId != null ">and c.tower_id = #{towerId}</if> + <if test="state != null ">and c.state = #{state}</if> <!-- 鏁版嵁鑼冨洿杩囨护 --> ${params.dataScope} </where> @@ -140,6 +141,7 @@ <if test="camMaxVisibleDistance != null ">and c.cam_max_visible_distance = #{camMaxVisibleDistance}</if> <if test="camAlarmGuideEnable != null ">and c.cam_alarm_guide_enable = #{camAlarmGuideEnable}</if> <if test="loginId != null ">and c.login_id = #{loginId}</if> + <if test="state != null ">and c.state = #{state}</if> </where> </select> <select id="selectArdCamerasById" parameterType="String" resultMap="ArdCamerasResult"> @@ -181,6 +183,7 @@ <if test="createTime != null">create_time,</if> <if test="updateBy != null">update_by,</if> <if test="updateTime != null">update_time,</if> + <if test="state != null">state,</if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="id != null">#{id},</if> @@ -214,6 +217,7 @@ <if test="createTime != null">#{createTime},</if> <if test="updateBy != null">#{updateBy},</if> <if test="updateTime != null">#{updateTime},</if> + <if test="state != null">#{state},</if> </trim> </insert> @@ -288,40 +292,110 @@ where ip = #{ip} and port = #{port} limit 1 </select> - <select id="getCamerasByDeptId" resultType="java.util.Map" parameterType="java.lang.Long"> - with recursive rsd as ( - select ac.id,ac.name,ac.ip,ac.port,ac.username,ac.password,ac.longitude,ac.latitude,ac.altitude,ac.channel,ac.dept_id as "deptId", - ac.gdtype,ac.state,sdd.dict_label as "dictLabel",sdd0.dict_label as factory, - case sdd0.dict_label - when '娴峰悍' then concat('rtsp://',ac.username,':',ac.password,'@',ac.ip,':',ac.rtsp_port,'/h264/ch1/main/av_stream') - when '澶у崕' then concat('rtsp://',ac.username,':',ac.password,'@',ac.ip,':',ac.rtsp_port,'/cam/realmonitor?channel=1&subtype=1') - end as rtsp - from sys_dept sd - inner join ard_cameras ac on sd.dept_id = ac.dept_id - inner join sys_dict_data sdd on ac.gdtype = sdd.dict_value - inner join sys_dict_type sdt on sdd.dict_type = sdt.dict_type - inner join sys_dict_data sdd0 on ac.factory = sdd0.dict_value - inner join sys_dict_type sdt0 on sdd0.dict_type = sdt0.dict_type - where sd.dept_id = #{deptId} - and sdt.dict_type = 'camera_type' and (sdd.dict_label = '灏忓厜鐢�' or sdd.dict_label = '澶у厜鐢�') - and sdt0.dict_type = 'factory' - union - select ac.id,ac.name,ac.ip,ac.port,ac.username,ac.password,ac.longitude,ac.latitude,ac.altitude,ac.channel,ac.dept_id as "deptId", - ac.gdtype,ac.state,sdd.dict_label as "dictLabel",sdd0.dict_label as factory, - case sdd0.dict_label - when '娴峰悍' then concat('rtsp://',ac.username,':',ac.password,'@',ac.ip,':',ac.rtsp_port,'/h264/ch1/main/av_stream') - when '澶у崕' then concat('rtsp://',ac.username,':',ac.password,'@',ac.ip,':',ac.rtsp_port,'/cam/realmonitor?channel=1&subtype=1') - end as rtsp - from sys_dept csd - inner join rsd on rsd."deptId" = csd.parent_id - inner join ard_cameras ac on csd.dept_id = ac.dept_id - inner join sys_dict_data sdd on ac.gdtype = sdd.dict_value - inner join sys_dict_type sdt on sdd.dict_type = sdt.dict_type - inner join sys_dict_data sdd0 on ac.factory = sdd0.dict_value - inner join sys_dict_type sdt0 on sdd0.dict_type = sdt0.dict_type - and sdt.dict_type = 'camera_type' and (sdd.dict_label = '灏忓厜鐢�' or sdd.dict_label = '澶у厜鐢�') - and sdt0.dict_type = 'factory' - ) - select distinct * from rsd order by "dictLabel" + <!--<select id="getCamerasByDeptId" resultType="java.util.Map" > + select distinct * from ( + with recursive rsd as ( + select ac.id,ac.name,ac.ip,ac.port,ac.username,ac.password,ac.longitude,ac.latitude,ac.altitude,ac.channel,ac.dept_id as "deptId", + ac.gdtype,ac.state,sdd.dict_label as "dictLabel",sdd0.dict_label as factory, + case sdd0.dict_label + when '娴峰悍' then concat('rtsp://',ac.username,':',ac.password,'@',ac.ip,':',ac.rtsp_port,'/h264/ch1/main/av_stream') + when '澶у崕' then concat('rtsp://',ac.username,':',ac.password,'@',ac.ip,':',ac.rtsp_port,'/cam/realmonitor?channel=1&subtype=1') + end as rtsp + from sys_dept sd + inner join ard_cameras ac on sd.dept_id = ac.dept_id + inner join sys_dict_data sdd on ac.gdtype = sdd.dict_value + inner join sys_dict_type sdt on sdd.dict_type = sdt.dict_type + inner join sys_dict_data sdd0 on ac.factory = sdd0.dict_value + inner join sys_dict_type sdt0 on sdd0.dict_type = sdt0.dict_type + where sd.dept_id = #{deptId} + and sdt.dict_type = 'camera_type' and (sdd.dict_label = '灏忓厜鐢�' or sdd.dict_label = '澶у厜鐢�') + and sdt0.dict_type = 'factory' + union + select ac.id,ac.name,ac.ip,ac.port,ac.username,ac.password,ac.longitude,ac.latitude,ac.altitude,ac.channel,ac.dept_id as "deptId", + ac.gdtype,ac.state,sdd.dict_label as "dictLabel",sdd0.dict_label as factory, + case sdd0.dict_label + when '娴峰悍' then concat('rtsp://',ac.username,':',ac.password,'@',ac.ip,':',ac.rtsp_port,'/h264/ch1/main/av_stream') + when '澶у崕' then concat('rtsp://',ac.username,':',ac.password,'@',ac.ip,':',ac.rtsp_port,'/cam/realmonitor?channel=1&subtype=1') + end as rtsp + from sys_dept csd + inner join rsd on rsd."deptId" = csd.parent_id + inner join ard_cameras ac on csd.dept_id = ac.dept_id + inner join sys_dict_data sdd on ac.gdtype = sdd.dict_value + inner join sys_dict_type sdt on sdd.dict_type = sdt.dict_type + inner join sys_dict_data sdd0 on ac.factory = sdd0.dict_value + inner join sys_dict_type sdt0 on sdd0.dict_type = sdt0.dict_type + and sdt.dict_type = 'camera_type' and (sdd.dict_label = '灏忓厜鐢�' or sdd.dict_label = '澶у厜鐢�') + and sdt0.dict_type = 'factory') + select * from rsd + union + select ac.id,ac.name,ac.ip,ac.port,ac.username,ac.password,ac.longitude,ac.latitude,ac.altitude,ac.channel,ac.dept_id as "deptId", + ac.gdtype,ac.state,sdd.dict_label as "dictLabel",sdd0.dict_label as factory, + case sdd0.dict_label + when '娴峰悍' then concat('rtsp://',ac.username,':',ac.password,'@',ac.ip,':',ac.rtsp_port,'/h264/ch1/main/av_stream') + when '澶у崕' then concat('rtsp://',ac.username,':',ac.password,'@',ac.ip,':',ac.rtsp_port,'/cam/realmonitor?channel=1&subtype=1') + end as rtsp from sys_user_role sur + inner join sys_role_dept srd on sur.role_id = srd.role_id + inner join ard_cameras ac on srd.dept_id = ac.dept_id + inner join sys_dict_data sdd on ac.gdtype = sdd.dict_value + inner join sys_dict_type sdt on sdd.dict_type = sdt.dict_type + inner join sys_dict_data sdd0 on ac.factory = sdd0.dict_value + inner join sys_dict_type sdt0 on sdd0.dict_type = sdt0.dict_type + where sur.user_id = #{userId} and sdt.dict_type = 'camera_type' and (sdd.dict_label = '灏忓厜鐢�' or sdd.dict_label = '澶у厜鐢�') and sdt0.dict_type = 'factory' + )t order by "dictLabel" + </select>--> + <select id="getCamerasByDeptId" resultType="java.util.Map" > + select distinct * from ( + select ac.id,ac.name,ac.ip,ac.port,ac.username,ac.password,ac.longitude,ac.latitude,ac.altitude,ac.channel,ac.dept_id as "deptId", + ac.gdtype,ac.state,sdd.dict_label as "dictLabel",sdd0.dict_label as factory, + case sdd0.dict_label + when '娴峰悍' then concat('rtsp://',ac.username,':',ac.password,'@',ac.ip,':',ac.rtsp_port,'/h264/ch1/main/av_stream') + when '澶у崕' then concat('rtsp://',ac.username,':',ac.password,'@',ac.ip,':',ac.rtsp_port,'/cam/realmonitor?channel=1&subtype=1') + end as rtsp + from ard_cameras ac + inner join sys_dict_data sdd on ac.gdtype = sdd.dict_value + inner join sys_dict_type sdt on sdd.dict_type = sdt.dict_type + inner join sys_dict_data sdd0 on ac.factory = sdd0.dict_value + inner join sys_dict_type sdt0 on sdd0.dict_type = sdt0.dict_type + where ac.dept_id in + <foreach collection="deptIdList" open="(" close=")" separator="," item="deptId"> + #{deptId} + </foreach> + and sdt.dict_type = 'camera_type' and (sdd.dict_label = '灏忓厜鐢�' or sdd.dict_label = '澶у厜鐢�') + and sdt0.dict_type = 'factory' + union + select ac.id,ac.name,ac.ip,ac.port,ac.username,ac.password,ac.longitude,ac.latitude,ac.altitude,ac.channel,ac.dept_id as "deptId", + ac.gdtype,ac.state,sdd.dict_label as "dictLabel",sdd0.dict_label as factory, + case sdd0.dict_label + when '娴峰悍' then concat('rtsp://',ac.username,':',ac.password,'@',ac.ip,':',ac.rtsp_port,'/h264/ch1/main/av_stream') + when '澶у崕' then concat('rtsp://',ac.username,':',ac.password,'@',ac.ip,':',ac.rtsp_port,'/cam/realmonitor?channel=1&subtype=1') + end as rtsp from sys_user_role sur + inner join sys_role_dept srd on sur.role_id = srd.role_id + inner join ard_cameras ac on srd.dept_id = ac.dept_id + inner join sys_dict_data sdd on ac.gdtype = sdd.dict_value + inner join sys_dict_type sdt on sdd.dict_type = sdt.dict_type + inner join sys_dict_data sdd0 on ac.factory = sdd0.dict_value + inner join sys_dict_type sdt0 on sdd0.dict_type = sdt0.dict_type + where sur.user_id = #{userId} and sdt.dict_type = 'camera_type' and (sdd.dict_label = '灏忓厜鐢�' or sdd.dict_label = '澶у厜鐢�') and sdt0.dict_type = 'factory' + )t order by "dictLabel" + </select> + <select id="getCameraOperationByCameraId" resultType="java.lang.Boolean" parameterType="java.lang.String"> + select + case now() > ac.operator_expired or ac.operator_expired is null + when true then true + when ( + case ((select cast(su.camera_priority as integer) from sys_user su + where su.user_id = #{userId}) > (select cast(su.camera_priority as integer) from sys_user su + inner join ard_cameras ac on su.user_id = ac.operator_id + where ac.id = #{id} )) + when true then true + when false then false end) then false + end + from ard_cameras ac + where ac.id = #{id} + </select> + <select id="getChannelByCameraId" resultType="java.util.Map" parameterType="java.lang.String"> + select * from ard_channel ac + inner join sys_config sc on sc.config_key = 'dayNightTime' + where ac.device_id = #{id} </select> </mapper> -- Gitblit v1.9.3