if嵌套的问题

这个if是数据权限的问题,有三个角色校长、年级主任、班主任

当当前登录人为校长时:查全部数据,

当当前登录人为年级主任时:查年级数据,

当当前登录人为班主任时:查班级数据

image.png

请问一下这三个怎么用if嵌套在一起呢

${if(fineusername == 'admin',全校权限 != 0, "", "")}${if(fineusername != 'admin',全校权限 == 0,年级权限 != 0, " and 年级权限 in ('"+具体年级+"') ", "")}${if(fineusername != 'admin',全校权限 == 0,年级权限 == 0,班级权限 !=0 , " and 班级权限 in ('"+具体班级+"') ", "")}

FineReport 用户kWEye3931 发布于 2022-5-20 16:48
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
1
snrtuemcLv8专家互助
发布于2022-10-25 19:04

直接使用

fine_role可以获取角色

然后只要

where  1=1

${SWITCH(fine_role,"校长","","年级主任"," and 年级权限 in ('"+具体年级+"') ","班主任","  and 班级权限 in ('"+具体班级+"') ")}

最佳回答
1
yzm339714Lv6中级互助
发布于2022-5-20 16:55

没必要 嵌套的,分开写逻辑还清楚点,或者 你的权限表 直接细化到人和班级,  然后直接对应的人可以看哪些班级,简单多了

最佳回答
1
dongazheLv6初级互助
发布于2022-5-20 17:12

不要这么做

1、不好维护

2、啰嗦冗余

3、被同行见了会骂

  • 4关注人数
  • 581浏览人数
  • 最后回答于:2022-10-25 19:04
    请选择关闭问题的原因
    确定 取消
    返回顶部