Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        /// <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);
        }