视频监控平台-国标28181目录资源树显示不全问题的解决

本文主要是介绍视频监控平台-国标28181目录资源树显示不全问题的解决,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目           录

一、问题描述

1、问题现象描述

2、问题现象描述二

二、问题初查

三、故障处理过程

1、初步估计问题诱因

2、 角色权限资源组不匹配的验证:

3、 资源组互相冲突的验证

三、故障解决

1、故障解决  

2、问题总结和反思 


一、问题描述

1、问题现象描述

        AS-V1000视频监控平台支持国标28181协议,支持GB/T28181-2016,GB/T28181-2022等版本,在GB/T28181中,业务分组目录和行政区划目录是两种不同的目录,具有不同的定义和使用方式。AS-V1000视频监控平台可以灵活选用不同的目录和本地目录,进行下级目录到本地目录的挂接。

        目录树可以通过web客户端、cs客户端进行显示,并且可以根据不同的用户权限不同,显示不同数量的资源(视频通道)。

        这次,用户在视频监控平台的管理端,配置好了角色的资源组。在使用的时候,发现有的账户(比如userA)登录web客户端后,能够看到这个资源组在目录树上正常显示,如下图示:

        可以看出,能够显示:上级资源章“北七家镇”和下级资源组“未来星科低碳产业园项目二期..”。

        但是,另一个账户(比如userB)登录web客户端后后,看不到这个资源组在目录树上正常显示,如下图示:

2、问题现象描述二

       同时客户说明,他发现这些用户有个特点,同一个角色下面,现象相同。也就是说,userA的角色如果是roleA,那么角色是releA的所有用户userA1,userA2….userAn,都可以看到这个资源组,角色是roleB的所有用户userB1,userB2….userBn都看不到这个资源组。

二、问题初查

        经过我们测试人员验证,现场确实有这个问题。

        同时,发现另外一个情况,就是在我们的CS客户端(专用客户端),发现userB能够看得到这个资源组的名字“未来星科低碳产业园项目二期….”,但是看不到这个资源组下的视频资源名称(即通道名称)。

        如下图所示:

三、故障处理过程

1、初步估计问题诱因

        根据上述所欲现象,研发人员进行分析、讨论,认为有两种可能的原因:

        第一,是角色权限和资源组有不匹配的地方。

        第二,可能是角色权限中的资源组互相冲突导致一些资源组不能显示。

2、 角色权限资源组不匹配的验证:

        针对第一种情况,我们需要查找数据库中与资源组和角色相关的表。对比数据库的数据和前端显示的数据看是否是该原因?

        资源组相关的表有resgroupxx和resgroupbindxx,角色相关的表有roleresgroupbindxx;另外已知未来星科这个资源组的ID号是1119141912216000xxx5。

(1)查询 ‘未来星....’资源组下的资源是否正常

        select * from resgroupbindxx where ResGroupID=‘1119141912216000xxx5’;

        结果如下:

        下面有5个通道,是正常情况,跟显示都能够显示出来。

(2)查询“未来星....”资源组是否正常?

        select * from resgroupxx where ResGroupID=‘1119141912216000xxx5’;

        

(3)查询角色绑定资源是否正常?

select * from roleresgroupbindxx where ResGroupID=‘1119141912216000xxx5’;

        查询这些语句提供的结果,证明在这个资源组id没有重复的,也没有不匹配的地方,因此问题发生的地方与角色权限和资源组不匹配没有关系。

3、 资源组互相冲突的验证

        针对这一点,我们有两种可行的思路,

        第一,是在数据库中查询数据是否有重复或不对的地方,

        第二,是新建一个角色,配置资源组,在客户端观看效果查找有冲突的资源组。

(1)查询数据是否有重复或者错误

        通过排查,系统中没有其他资源组跟’1119141912216000xxx5’重复使用。

(2)新建角色,配置资源组

        新建角色,把所有的的资源都选上,发现,问题依旧;

        然后只选择“北七星镇....”以及下面的资源,可以正常显示。因此基本可以断定,确实有数据出现冲突!需要一步步找出问题点。

        经过一项项对比测试,找到了一个资源组: “马池口地区”下的“昌平区马池口村定向安置房项目”,只要选择上这个资源组,显示就不正常。如下图示:

        若不选择这一项,能够正常显示,选上以后,这一项不能显示,同时"未来星...."这个资源组也显示不出来。

        经过查验,这个资源组的ID是:1111402122160000034。

        显然这个ID号是19为,而我们系统的资源组的ID号一般是20位的。

        经过跟客户沟通,客户说是他们自己在数据库中做了改动。

三、故障解决

1、故障解决  

        发现客户在数据库中直接操作,那就基本上定位问题。这种情况,我们就叫误操作导致的脏数据,必须重新建这些数据。解决方法有两种:
        (1)彻底解决,把数据恢复到修改数据库以前,然后再通过软件添加

        (2)把可能得数据找出来,然后对这些数据进行处理

        目前数据库中有上万条数据,恢复到修改之前的方式,只能往后放。于是逐项排查系统中是否还有其他数据,又找到3条数据,位数都是19位。于是,让客户把这几项数据处理掉。

        然后,通过userA和userB登录,查看目录资源树,正常了;

        再用其他用户登录,也显示正常了。

        问题解决!

2、问题总结和反思 

        这个问题完全是由于客户直接操作数据库引起的。因此,维护人员在给客户培训的时候,一定不要让客户直接更改数据库。数据库正常情况下尽量不要开发给客户的,但是,若由于特殊情况,客户需要知道,那么强烈建议客户只是查看数据库,而不要修改数据库。

若想了解更多,可以“点击” 下面的 “威迪斯特 微信名片”,就会出现我的二维码

这篇关于视频监控平台-国标28181目录资源树显示不全问题的解决的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/832535

相关文章

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

Linux使用nload监控网络流量的方法

《Linux使用nload监控网络流量的方法》Linux中的nload命令是一个用于实时监控网络流量的工具,它提供了传入和传出流量的可视化表示,帮助用户一目了然地了解网络活动,本文给大家介绍了Linu... 目录简介安装示例用法基础用法指定网络接口限制显示特定流量类型指定刷新率设置流量速率的显示单位监控多个

mybatis和mybatis-plus设置值为null不起作用问题及解决

《mybatis和mybatis-plus设置值为null不起作用问题及解决》Mybatis-Plus的FieldStrategy主要用于控制新增、更新和查询时对空值的处理策略,通过配置不同的策略类型... 目录MyBATis-plusFieldStrategy作用FieldStrategy类型每种策略的作

linux下多个硬盘划分到同一挂载点问题

《linux下多个硬盘划分到同一挂载点问题》在Linux系统中,将多个硬盘划分到同一挂载点需要通过逻辑卷管理(LVM)来实现,首先,需要将物理存储设备(如硬盘分区)创建为物理卷,然后,将这些物理卷组成... 目录linux下多个硬盘划分到同一挂载点需要明确的几个概念硬盘插上默认的是非lvm总结Linux下多

Python Jupyter Notebook导包报错问题及解决

《PythonJupyterNotebook导包报错问题及解决》在conda环境中安装包后,JupyterNotebook导入时出现ImportError,可能是由于包版本不对应或版本太高,解决方... 目录问题解决方法重新安装Jupyter NoteBook 更改Kernel总结问题在conda上安装了

pip install jupyterlab失败的原因问题及探索

《pipinstalljupyterlab失败的原因问题及探索》在学习Yolo模型时,尝试安装JupyterLab但遇到错误,错误提示缺少Rust和Cargo编译环境,因为pywinpty包需要它... 目录背景问题解决方案总结背景最近在学习Yolo模型,然后其中要下载jupyter(有点LSVmu像一个

Goland debug失效详细解决步骤(合集)

《Golanddebug失效详细解决步骤(合集)》今天用Goland开发时,打断点,以debug方式运行,发现程序并没有断住,程序跳过了断点,直接运行结束,网上搜寻了大量文章,最后得以解决,特此在这... 目录Bug:Goland debug失效详细解决步骤【合集】情况一:Go或Goland架构不对情况二:

解决jupyterLab打开后出现Config option `template_path`not recognized by `ExporterCollapsibleHeadings`问题

《解决jupyterLab打开后出现Configoption`template_path`notrecognizedby`ExporterCollapsibleHeadings`问题》在Ju... 目录jupyterLab打开后出现“templandroidate_path”相关问题这是 tensorflo

如何解决Pycharm编辑内容时有光标的问题

《如何解决Pycharm编辑内容时有光标的问题》文章介绍了如何在PyCharm中配置VimEmulator插件,包括检查插件是否已安装、下载插件以及安装IdeaVim插件的步骤... 目录Pycharm编辑内容时有光标1.如果Vim Emulator前面有对勾2.www.chinasem.cn如果tools工

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动