/// <summary>
        /// 按组织机构获取角色列表
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="organizeId">组织机构主键</param>
        /// <param name="showUser">显示用户</param>
        /// <returns>角色列表</returns>
        public DataTable GetDTByOrganize(UserInfo userInfo, string organizeId, bool showUser = true)
        {
            var parameter = ParameterUtil.CreateWithMessage(userInfo, MethodBase.GetCurrentMethod(), this.serviceName, RDIFrameworkMessage.RoleService_GetDTByOrganize);
            var dtRole    = new DataTable(PiRoleTable.TableName);

            ServiceUtil.ProcessRDIReadDb(userInfo, parameter, (dbProvider) =>
            {
                // 获得角色列表
                var manager = new PiRoleManager(dbProvider, userInfo);
                dtRole      = manager.GetDTByOrganize(organizeId);
                PiUserManager userManager = new PiUserManager(dbProvider, userInfo);
                if (showUser)
                {
                    DataTable dataTableUser = userManager.GetDT();
                    if (!dtRole.Columns.Contains("Users"))
                    {
                        dtRole.Columns.Add("Users");
                    }
                    // 友善的显示属于多个角色的功能
                    string userName = string.Empty;
                    foreach (DataRow dr in dtRole.Rows)
                    {
                        userName = string.Empty;
                        // 获取所在用户
                        string[] userIds = userManager.GetUserIdsInRole(dr[PiRoleTable.FieldId].ToString());
                        if (userIds != null)
                        {
                            userName = userIds.Aggregate(userName, (current, t) => current + BusinessLogic.GetProperty(dataTableUser, t, PiRoleTable.FieldRealName) + ", ");
                        }
                        if (!string.IsNullOrEmpty(userName))
                        {
                            userName = userName.Substring(0, userName.Length - 2);
                            // 设置用户的名称
                            dr["Users"] = userName;
                        }
                    }
                    dtRole.AcceptChanges();
                }
                dtRole.TableName = PiRoleTable.TableName;
            });
            return(dtRole);
        }