/// <summary> /// 获得角色中的用户主键 /// </summary> /// <param name="userInfo">用户</param> /// <param name="roleId">角色主键</param> /// <returns>用户主键</returns> public string[] GetRoleUserIds(BaseUserInfo userInfo, string roleId) { string[] result = null; var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod()); ServiceUtil.ProcessUserCenterReadDb(userInfo, parameter, (dbHelper) => { var manager = new BaseUserManager(dbHelper, userInfo); result = manager.GetUserIdsInRoleId(userInfo.SystemCode, roleId); }); return(result); }
/// <summary> /// 按组织机构获取角色列表 /// </summary> /// <param name="userInfo">用户</param> /// <param name="organizeId">组织机构主键</param> /// <param name="showUser">显示用户</param> /// <returns>数据表</returns> public DataTable GetDataTableByOrganize(BaseUserInfo userInfo, string organizeId, bool showUser = true) { var dt = new DataTable(BaseRoleEntity.TableName); var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod()); ServiceUtil.ProcessUserCenterReadDb(userInfo, parameter, (dbHelper) => { string tableName = userInfo.SystemCode + "Role"; // 获得角色列表 var manager = new BaseRoleManager(dbHelper, userInfo, tableName); dt = manager.GetDataTableByOrganize(organizeId); BaseUserManager userManager = new BaseUserManager(dbHelper, userInfo, tableName); if (showUser) { DataTable dataTableUser = userManager.GetDataTable(); if (!dt.Columns.Contains("Users")) { dt.Columns.Add("Users"); } // 友善的显示属于多个角色的功能 string userName = string.Empty; foreach (DataRow dr in dt.Rows) { userName = string.Empty; // 获取所在用户 string[] userIds = userManager.GetUserIdsInRoleId(userInfo.SystemCode, dr[BaseRoleEntity.FieldId].ToString()); if (userIds != null) { for (int i = 0; i < userIds.Length; i++) { userName = userName + BaseBusinessLogic.GetProperty(dataTableUser, userIds[i], BaseUserEntity.FieldRealName) + ", "; } } if (!string.IsNullOrEmpty(userName)) { userName = userName.Substring(0, userName.Length - 2); // 设置用户的名称 dr["Users"] = userName; } } dt.AcceptChanges(); } dt.TableName = BaseRoleEntity.TableName; }); return(dt); }