C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 大数据分页功能改进、数据权限改进
2023-09-27 14:21:16 时间
代码生成器大数据分页
下面参考代码是简易的数据权限的实现,大多情况下下面的数据权限的功能可以满足很多企业的需要了
#region public DataTable GetDataTableByPage(BaseUserInfo userInfo, out int recordCount, int pageIndex = 0, int pageSize = 20, string sortExpression = null, string sortDire = null) 分页查询 /// <summary> /// 分页查询 /// </summary> /// <param name="userInfo">用户</param> /// <param name="recordCount">记录数</param> /// <param name="pageIndex">当前页</param> /// <param name="pageSize">每页显示记录条数</param> /// <param name="sortExpression">排序字段</param> /// <param name="sortDire">排序方向</param> /// <returns>数据表</returns> public DataTable GetDataTableByPage(BaseUserInfo userInfo, out int recordCount, int pageIndex = 0, int pageSize = 20, string sortExpression = null, string sortDire = null) { // 写入调试信息 #if (DEBUG) int milliStart = BaseBusinessLogic.StartDebug(userInfo, MethodBase.GetCurrentMethod()); #endif // 加強安全验证防止未登录用户调用 #if (!DEBUG) LogOnService.UserIsLogOn(userInfo); #endif var dt = new DataTable(LanNiaoKeJiEntity.TableName); using (IDbHelper ucDbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.UserCenterDbType)) { try { ucDbHelper.Open(UserCenterDbConnection); BaseLogManager.Instance.Add(userInfo, this.serviceName, "取得列表", MethodBase.GetCurrentMethod()); using (IDbHelper dbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.BusinessDbType)) { try { dbHelper.Open(BusinessDbConnection); // 取得列表 LanNiaoKeJiManager manager = new LanNiaoKeJiManager(dbHelper, userInfo); string order = sortExpression + " " + sortDire; string whereConditional = string.Empty; List<IDbDataParameter> dbParameters = new List<IDbDataParameter>(); BaseUserManager userManager = new BaseUserManager(); if (userManager.IsInRoleByCode(userInfo, "User")) { // 普通用户,只能看自己的 whereConditional = BaseBusinessLogic.FieldUserId + "=" + dbHelper.GetParameter(BaseBusinessLogic.FieldUserId); dbParameters.Add(dbHelper.MakeParameter(BaseBusinessLogic.FieldUserId, userInfo.Id)); } else if (userManager.IsInRoleByCode(userInfo, "DepartmentManager")) { // 部门主管,只能看自己部门的 whereConditional = BaseBusinessLogic.FieldDepartmentId + "=" + dbHelper.GetParameter(BaseBusinessLogic.FieldDepartmentId); dbParameters.Add(dbHelper.MakeParameter(BaseBusinessLogic.FieldDepartmentId, userInfo.DepartmentId)); } else if (userManager.IsInRoleByCode(userInfo, "CompanyManager")) { // 公司主管,只能看自己公司的 whereConditional = BaseBusinessLogic.FieldCompanyId + "=" + dbHelper.GetParameter(BaseBusinessLogic.FieldCompanyId); dbParameters.Add(dbHelper.MakeParameter(BaseBusinessLogic.FieldCompanyId, userInfo.CompanyId)); } else if (userManager.IsInRoleByCode(userInfo, "Manager")) { // 管理者,可以看所有的,不限制条件 } dt.TableName = LanNiaoKeJiEntity.TableName; } catch (Exception ex) { BaseExceptionManager.LogException(ucDbHelper, userInfo, ex); throw; } finally { dbHelper.Close(); } } } catch (Exception ex) { BaseExceptionManager.LogException(ucDbHelper, userInfo, ex); throw; } finally { ucDbHelper.Close(); } } // 写入调试信息 #if (DEBUG) BaseBusinessLogic.EndDebug(userInfo, MethodBase.GetCurrentMethod(), milliStart); #endif return dt; } #endregion
相关文章
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 访问频率限制功能实现、防止黑客扫描、防止恶意刷屏
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 服务器之间的接口通讯功、信息交换
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 实现缓存预热
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 大型软件系统客户端数据同步的问题解决
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 适合大型企业信息化应用使用的角色权限管理体系
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 增加安全性增加内网的电脑才可以调用的限制
- C#.NET 大型企业信息化系统集成快速开发平台 4.1 版本 - 面向数据库SQL语句的应用开发一
- C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 大数据支持分表优化
- C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 网络订单提醒功能,网点区域功能增强
- C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 密码强化、网络安全强化
- c#网络通信框架networkcomms内核解析之九 自定义处理方法的运行机制
- C# 基于密码的身份验证报错问题System.Net.NetworkCredential
- 【分享】C#中执行lua代码,以及将c#注册进lua的全局方法
- Unity3d C#实现将场景中摄像头画面进行采集、录制并上传视频流(推流rtmp)直播的功能(含源码)
- Visual Studio 2022 c#中很实用的VS默认快捷键和原生功能
- .NET(C#) Linq Join和GroupJoin的使用
- .NET Core(C#) Emit的使用
- .NET Core(C#) EPPlus读取Excel(.xlsx)文件的方法及示例代码
- .NET(C#)将可空(null)日期时间类型(DateTime?)转成字符串方法及示例代码
- .NET Core(C#)通过SharpCifs访问操作Windows(smb)共享目录方法代码
- C# .NET Core FFmpeg 视频转成图片代码分享
- [.NET] 《Effective C#》快速笔记 - C# 中的动态编程
- 1 加到 100 的 时间复杂度 C#.