本文主要是介绍视频监控平台-国标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目录资源树显示不全问题的解决的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!