jeesite实战(五)——数据过滤

系列文章目录



前言

本系列文章主要记录项目过程中重点的项目技术


一、官方文档参考主要代码

/**
 * 添加数据权限过滤条件
 */
public void addDataScopeFilter(T entity){

	// 举例1:公司数据权限过滤,实体类@Table注解extWhereKeys="dsf"
	entity.getSqlMap().getDataScope().addFilter("dsf", "Company",
			"a.company_code", DataScope.CTRL_PERMI_HAVE);

	// 举例2:部门数据权限过滤,实体类@Table注解extWhereKeys="dsf"
	entity.getSqlMap().getDataScope().addFilter("dsf", "Office",
			"a.office_code", DataScope.CTRL_PERMI_HAVE);

	// 举例3:角色数据权限过滤,实体类@Table注解extWhereKeys="dsf"
	entity.getSqlMap().getDataScope().addFilter("dsf", "Role",
			"a.role_code", DataScope.CTRL_PERMI_HAVE);

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

	// 举例5:用户、员工(自己创建的)数据权限根据公司过滤,实体类@Table注解extWhereKeys="dsfCompany"
	entity.getSqlMap().getDataScope().addFilter("dsfCompany", "Company", 
			"e.company_code", "a.create_by", DataScope.CTRL_PERMI_HAVE);
}

二、实现数据过滤

1.在service层编写过滤方法

代码如下(示例):

/**
	 * 添加数据权限过滤条件
	 */
	public void addDataScopeFilter(Tracker entity){
		// 举例2:部门数据权限过滤,实体类@Table注解extWhereKeys="dsf"
		entity.getSqlMap().getDataScope().addFilter("dsf", "Office",
				"a.office_code", DataScope.CTRL_PERMI_HAVE);

	}

2.control层调用过滤方法

注意在查询的时候进行过滤,代码如下(示例):

/**
	 * 查询列表数据
	 */
	@RequiresPermissions("lbst:tracker:view")
	@RequestMapping(value = "listData")
	@ResponseBody
	public Page<Tracker> listData(Tracker tracker, HttpServletRequest request, HttpServletResponse response) {
		tracker.setPage(new Page<>(request, response));
		//调用过滤方法
		trackerService.addDataScopeFilter(tracker);
		Page<Tracker> page = trackerService.findPage(tracker);
		return page;
	}

3.实体中添加过滤属性

1.在属性当中添加如下图红色标记的内容,注意extWhereKeys的值必须与addDataScopeFilter方法中addFilter方法的第一个参数的值相同
在这里插入图片描述


三、左连接数据过滤

前面两步与一般数据过滤相同,但是第三部不同,具体见下图红色标记处
在这里插入图片描述


总结

至此,本文章结束

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值