又来了一个需求之前是在接口增加数据权限,涉及到四张表,登录的用户获取对应的projecId,根据projectId获取到该用户有的项目集合,根据项目获取到对应的syscode
用户只能看到自己已经分配的syscode数据。
首先先获取登录用户,根据登录用户获取Userid,根据userId去project_user表里面找对应的project集合,在通过集合里面的每一条确定syscode是什么,这样数据权限就完成了。
但是我发现页面的模糊查询也调用的这个接口,这就导致用户只能看到自己分配的数据,但是查询的话就能查询到不属于自己的数据,我一检查代码发现忘记增加查询条件了,这样增加一条查询条件,就可以了,但是后面还有两个根据版本号和校验状态查询,如果根据这个查询会出现展示相同版本号但是syscode不同的情况,也是会发生看到不属于自己的数据的情况,我先是按照之前的方法构造了查询条件但是不行,查到的还是所有的,最后我想到,为什么不可以把所有的数据都查到,然后遍历这个集合,取出每一个对象获取他们的syscode,最后在构造查询条件的时候只需要让syscode在这个集合里面就可以了后面的方法和这个一样,下面是代码,后面的方法和这个类似我就不放多余的图片了,为了记录一下自己遇到的问题以及解决方式,后面我想每次加数据权限都用到的代码可以用切面复用一下,等深度优化的时候再统一!记录自己的每一次进步,继续加油!有其他见解的朋友可以一起讨论下学习方法!