前言

在常见的管理系统中,通常都有这样的需求,管理员可以看到所有数据,部门可以看到本部门的数据,组长可以看到自己组的数据,组员只能看到自己相关的数据。

一般人的做法是,根据不同的角色通过if...else嵌套实现。这样做会显得代码过于臃肿。下面分享我的解决方案:

实现方案

通过sql语句,配合存储过程一段代码就搞定了,下面附上实现代码:
sql += " AND (" + adminStr + " OR (" + saleStr + " AND SalesGroupId IN('" + string.Join("','", mgroupList) + "')) OR (" + gmgStr + " AND SalesGroupId = '" + sg.Key + "') OR SalesUserId = '" + user.Id + "')";

return sql;
adminStr:是判断是否是管理员

saleStr:判断是否是部门

mgroupList:部门的组列表

gmgStr:是否是组长(组管理者)

使用EF+Linq语句实现方案:

也是一段代码就搞定了,代码简洁而美观。

标签: none

相关阅读

  • 测试信息
  • 拼多多2023年度财报分析
  • 2023年最后一个工作日
  • 2023山东社会责任企业(企业家)” 推选活动结果
  • 测试信息
  • 测试信息
  • 测试信息