其他分享
首页 > 其他分享> > Jeesite框架实用 如何实现本公司内数据权限功能使用

Jeesite框架实用 如何实现本公司内数据权限功能使用

作者:互联网

文章目录


前言

做到这一块的时候,看了看视频,也找了一些相关的文章,但是自己动起手布置的时候,还是会出现很多问题,导致功能实现不了。这是为什么???这是因为好多文章漏了一个很关键的点!!!


一、数据库中创建一张视图表!!!(非常重要)

1.在视图层创建一张新表!!!
表名:自己起
表的SQL语句如下:

select `a`.`user_code` AS `user_code`,
       `a`.`login_code` AS `login_code`,
       `a`.`user_name` AS `user_name`,
       `e`.`office_code` AS `office_code`,
       `e`.`company_code` AS `company_code` 
from (`js_sys_user` `a` left join `js_sys_employee` `e` on(((`e`.`emp_code` = `a`.`ref_code`) and (`a`.`user_type` = 'employee'))))

这张表关联了,user,机构,部门,就像从user的id再去查你关联的机构,再去你关联的部门。

2.使用jeesite框架,生成此表。这个表没必要展示,可可以选择仅生成entity,service表,或其他,可以吧这个表命名为UserEmployee

二、创建自己的表

自己创建一张单表,但必须包含以下字段:
在这里插入图片描述
这些字段,可以试试哪些是不需要的,我是没敢试,就直接用了
这些字段的由来:看过jeesite的设计表视频可知,ERmaster上如果创建了这个组(此指DataEntity),示可以保留供选择的,你再建表添加组,选择这张表即可。

三、使用jeesite导入表,生成代码


四、在此表生成的,service层中,加上过滤

/**
	 * 添加数据权限过滤条件
	 */
	 //这里CmsSite 可替换成你这个表单生成的entity层名字
	public void addDataScopeFilter(CmsSite entity){

// 举例4:用户、员工(自己创建的)数据权限根据部门过滤,实体类@Table注解extWhereKeys="dsfOffice"
entity.getSqlMap().getDataScope().addFilter("dsfOffice", "Office","e.office_code", "a.create_by", DataScope.CTRL_PERMI_HAVE);
	}

这里过滤的条件可从官方文档查看 https://www.jeesite.com/docs/service-datascope/


五、在此表生成的,controller层中查看数据处,加上过滤

/**
	 * 查询列表数据
	 */
	@RequiresPermissions("cms:cmsSite:view")
	@RequestMapping(value = "listData")
	@ResponseBody
	public Page<CmsSite> listData(CmsSite cmsSite, HttpServletRequest request, HttpServletResponse response) {
		cmsSite.setPage(new Page<>(request, response));
		// 在这里添加即可: cmsSiteService可替换成你自己生成的service名字
		cmsSiteService.addDataScopeFilter(cmsSite);
		Page<CmsSite> page = cmsSiteService.findPage(cmsSite);
		return page;
	}



六、在此表生成的,Entity层中,加上过滤

在这里插入图片描述
其中 entity = 要查询的,咱第一步创建的表UserEmployee
dsfoffice 就是 第四步中那个过滤,我们可以把它看成是这个过滤条件的名字


六、完成,去jeesite中分配权限

1.先去用户管理中,给自己的人员分配角色。
2.去角色管理中,给不同角色分配能看到的页面和数据权限。


总结

如果想要会用的话,这样就可以了。

标签:code,此表,Jeesite,生成,实用,过滤,user,权限,jeesite
来源: https://blog.csdn.net/weixin_47756184/article/details/118895850