本帖最后由 Tate_Young 于 2016-12-28 11:00 编辑
需求分解:信息技术部研发工程师能看到本部门的信息。
解决方案:在sql中运用$fr_userposition进行筛选,以下两种语句有错吗,应该怎么写,我尝试用研发工程师账号登陆但是无效:
1、
select * from a where 1=1
${
if(find("{'departments':'信息技术部','jobTitle':'研发工程师'}",$fr_userposition)!=0,"and dept_name = '信息技术部'","")}
修改,直接把$fr_userposition当做字符串判断来用:$(if{ find('研发工程师',$fr_userposition) <> 0,"and dept_name = '信息技术部'","" })
2、select * from a where 1=1
${if(GETUSERDEPARTMENTS()='信息技术部' && GETUSERJOBTITLES()='研发工程师',"and dept_name = '信息技术部'","")}
欢迎解答,谢谢了。
可以了,第一种方法应该是因为对象无法通过字符串的方法来比较,所以find无效。
第二种方法是可以的,可能是之前测试时候传入的部门和职位字段有问题,谢谢大家了。
不,第二种还有问题,根本就没有筛选,所有部门筛选出来都是信息技术部,sql上应该怎么使用这个函数呢。