Ejemplo n.º 1
0
        public ListResult <MenuSettingData> GetAnonymousMenus(ParameterModel <MenuFilterModel> parameterModel)
        {
            var baseurl = new DataItemDetailBLL().GetItemValue("imgUrl");
            AppMenuSettingBLL                  settingBLL                 = new AppMenuSettingBLL();
            AppSettingAssociationBLL           settingAssociationBLL      = new AppSettingAssociationBLL();
            List <AppMenuSettingEntity>        appMenuSettingEntities     = settingBLL.GetList(parameterModel.Data.DeptId, int.Parse(parameterModel.Data.ThemeType), int.Parse(parameterModel.Data.Platform));
            List <AppSettingAssociationEntity> settingAssociationEntities = settingAssociationBLL.GetList(parameterModel.UserId);
            MenuConfigBLL           menuConfigBLL    = new MenuConfigBLL();
            List <MenuConfigEntity> menusAll         = menuConfigBLL.GetList("", int.Parse(parameterModel.Data.Platform), null).Distinct().ToList();
            List <MenuSettingData>  menuSettingDatas = new List <MenuSettingData>();

            foreach (var item in appMenuSettingEntities)
            {
                MenuSettingData menuSettingData = new MenuSettingData()
                {
                    Id     = item.Id,
                    Name   = item.Name,
                    Remark = item.Remark,
                    Sort   = item.Sort,
                    Icon   = string.IsNullOrWhiteSpace(item.Icon) ? null : baseurl + item.Icon,
                };
                var menusIds = settingAssociationEntities.Where(p => p.ColumnId == item.Id).Select(x => x.ModuleId).ToList();
                if (menusIds != null && menusIds.Count > 0)
                {
                    var appMenu = menusAll.Where(x => menusIds.Contains(x.ModuleId)).ToList();
                    menuSettingData.AddChild(appMenu, settingAssociationEntities.Where(p => p.ColumnId == item.Id).ToList());
                }
                menuSettingDatas.Add(menuSettingData);
            }
            var data = menuSettingDatas.OrderBy(x => x.Sort).ToList();

            return(new ListResult <MenuSettingData> {
                Success = true, Data = data
            });
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 删除栏目与菜单之间的关联关系
        /// </summary>
        /// <param name="keyValue">菜单Id</param>
        /// <param name="ColumnId">栏目ID</param>
        /// <returns></returns>
        public ActionResult RemoveAssociation(string ModuleId, string ColumnId)
        {
            try
            {
                AppSettingAssociationBLL    associationBLL = new AppSettingAssociationBLL();
                AppSettingAssociationEntity association    = associationBLL.GetEntity(ModuleId, ColumnId);
                //========因页面上的授权都改为了级联添加,删除也要做成级联删除===hm====//
                //1、先找查询出所有的菜单,然后递归找出所有的子级菜单
                List <MenuConfigEntity> menuConfigEntities = new MenuConfigBLL().GetAllList();
                List <MenuConfigEntity> childMenus         = new List <MenuConfigEntity>();
                childMenus.Add(menuConfigEntities.FirstOrDefault(p => p.ModuleId == ModuleId)); //当前项也要删除
                MenuTreeHelper.FindAllChild(menuConfigEntities, childMenus, ModuleId);          //找出所有的下级菜单

                //====================END==============================//
                associationBLL.Remove(childMenus.Select(x => x.ModuleId).ToList(), ColumnId);
                //判断该菜单是不是安卓终端的,是的话就更新版本
                var module = new MenuConfigBLL().GetEntity(ModuleId);
                if (module.PaltformType == 1)
                {
                    MenuAuthorizeEntity menuAuthorize = authorizeBLL.GetEntityByDeptId(association.DeptId);
                    if (menuAuthorize != null)
                    {
                        authorizeBLL.SaveForm(menuAuthorize.Id, menuAuthorize);//此处单纯的改变一下版本号
                    }
                }
                return(Success("操作成功。"));
            }
            catch (Exception ex)
            {
                return(Error("操作失败:" + ex.Message));
            }
        }
Ejemplo n.º 3
0
        public object GetMenuConfigList([FromBody] JObject json)
        {
            try
            {
                string  res          = json.Value <string>("json");
                dynamic dy           = JsonConvert.DeserializeObject <ExpandoObject>(res);
                string  userId       = dy.userid;
                string  deptId       = dy.data.DeptId;       //电厂ID
                long    paltformType = dy.data.PaltformType; //平台类型

                var           data    = new MenuConfigBLL().GetList(deptId, Convert.ToInt32(paltformType));
                List <object> objlist = new List <object>();
                foreach (var item in data)
                {
                    var obj = new
                    {
                        id    = item.ModuleId,
                        name  = item.ModuleName,
                        key   = item.ModuleCode,
                        index = item.Sort
                    };
                    objlist.Add(obj);
                }
                return(new { Code = 0, objlist.Count, Info = "获取数据成功", objlist });
            }
            catch (Exception ex)
            {
                return(new { Code = -1, Info = "获取数据失败", ex.Message });
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 批量保存栏目与菜单的关系
        /// </summary>
        /// <param name="postData"></param>
        /// <returns></returns>
        public ActionResult BatchSaveAssociationSetting(BatchAssociationRequestModel postData)
        {
            try
            {
                AppSettingAssociationBLL associationBLL     = new AppSettingAssociationBLL();
                MenuConfigBLL            menuConfigBLL      = new MenuConfigBLL();
                List <MenuConfigEntity>  menuConfigEntities = MenuConfigBLL.GetList(null, postData.PaltformType).ToList();//所有的菜单,获取排序用
                //先找出该栏目数据库里已存在的关联关系
                List <AppSettingAssociationEntity> associationEntities = associationBLL.GetListByColumnId(postData.ColumnId);
                List <string> associationModuleIds = associationEntities.Select(x => x.ModuleId).ToList();
                if (postData.ModuleIds != null && postData.ModuleIds.Count > 0)
                {
                    //找出要新增的Id
                    List <string> addIds = postData.ModuleIds.Where(x => !associationModuleIds.Contains(x)).ToList(); //数据库里面没有的,则是要新增的
                                                                                                                      //找出要删除的Id
                    List <string> delIds = associationModuleIds.Where(p => !postData.ModuleIds.Contains(p)).ToList(); //数据库有 ,但是前台传入的ID集合里没有的,则是要删除的
                                                                                                                      //构建新增的实体
                    List <AppSettingAssociationEntity> inserEntities = new List <AppSettingAssociationEntity>();
                    addIds.ForEach(moduleId =>
                    {
                        var module = menuConfigEntities.FirstOrDefault(x => x.ModuleId == moduleId);
                        inserEntities.Add(new AppSettingAssociationEntity()
                        {
                            Id         = Guid.NewGuid().ToString(),
                            ColumnId   = postData.ColumnId,
                            ColumnName = postData.ColumnName,
                            DeptId     = postData.DeptId,
                            ModuleId   = moduleId,
                            Sort       = module == null ? null : module.Sort
                        });
                    });

                    associationBLL.InsertList(inserEntities);
                    associationBLL.Remove(postData.DeptId, delIds);
                }
                else
                {
                    associationBLL.Remove(postData.DeptId, associationModuleIds);
                }

                //判断该菜单是不是安卓终端的,是的话就更新版本
                if (postData.PaltformType == 1)
                {
                    MenuAuthorizeEntity menuAuthorize = authorizeBLL.GetEntityByDeptId(postData.DeptId);
                    if (menuAuthorize != null)
                    {
                        authorizeBLL.SaveForm(menuAuthorize.Id, menuAuthorize);//此处单纯的改变一下版本号
                    }
                }
                return(Success("保存成功"));
            }
            catch (Exception ex)
            {
                return(Error("保存失败:" + ex.Message));
            }
        }
Ejemplo n.º 5
0
 /// <summary>
 /// 返回某一个平台下所有的模块
 /// </summary>
 /// <param name="platform">0 windows 1 安卓终端 2手机app</param>
 /// <returns></returns>
 public object GetMenuList(int?platform)
 {
     try
     {
         MenuConfigBLL configBLL = new MenuConfigBLL();
         var           menuList  = configBLL.GetAllList().Where(p => p.PaltformType == platform).ToList();
         return(new { Code = 0, Info = "请求成功", Data = menuList, Count = menuList.Count });
     }
     catch (Exception ex)
     {
         return(new { Code = -1, Info = "获取数据失败", ex.Message });
     }
 }
Ejemplo n.º 6
0
        public object GetTerminalMenuList([FromBody] JObject json)
        {
            try
            {
                string  res            = json.Value <string>("json");
                dynamic dy             = JsonConvert.DeserializeObject <ExpandoObject>(res);
                string  id             = dy.id;        //单位注册ID
                long    themeTypeParam = dy.themetype; //0 第一套工作栏  1 第二套
                int     themeType      = int.Parse(themeTypeParam.ToString());
                //取出单位的注册信息
                MenuAuthorizeEntity menuAuthorize = new MenuAuthorizeBLL().GetEntity(id);

                //1、先取出所有的栏目
                AppMenuSettingBLL           settingBLL             = new AppMenuSettingBLL();
                List <AppMenuSettingEntity> appMenuSettingEntities = settingBLL.GetList(menuAuthorize.DepartId, themeType, 1).OrderBy(p => p.Sort).ToList();
                //2、取当前用户所有的授权的菜单
                MenuConfigBLL           menuConfigBLL = new MenuConfigBLL();
                List <MenuConfigEntity> menus         = menuConfigBLL.GetList(null, null, null).Distinct().ToList();
                //3、根据栏目与菜单的关系配置取菜单
                AppSettingAssociationBLL           settingAssociationBLL      = new AppSettingAssociationBLL();
                List <AppSettingAssociationEntity> settingAssociationEntities = settingAssociationBLL.GetList(menuAuthorize.DepartId, menus.Select(p => p.ModuleId).ToList());
                //4、组装数据
                List <MenuSettingData> menuSettingDatas = new List <MenuSettingData>();
                foreach (var item in appMenuSettingEntities)
                {
                    MenuSettingData menuSettingData = new MenuSettingData()
                    {
                        Id     = item.Id,
                        Name   = item.Name,
                        Remark = item.Remark,
                        Sort   = item.Sort,
                        Icon   = string.IsNullOrWhiteSpace(item.Icon) ? null : new DataItemDetailBLL().GetItemValue("imgUrl") + item.Icon,
                    };
                    var menusSearch = settingAssociationEntities.Where(p => p.ColumnId == item.Id).OrderBy(p => p.Sort).ToList();
                    if (menusSearch != null && menusSearch.Count > 0)
                    {
                        var menusIds = menusSearch.Select(p => p.ModuleId).ToList();
                        var appMenu  = menus.Where(x => menusIds.Contains(x.ModuleId)).ToList();
                        menuSettingData.AddChild(appMenu, menusSearch);
                    }
                    menuSettingData.Child = menuSettingData.Child.OrderBy(p => p.Sort).ToList();
                    menuSettingDatas.Add(menuSettingData);
                }
                var data = menuSettingDatas.OrderBy(x => x.Sort).ToList();
                return(new { Code = 0, data.Count, Info = "获取数据成功", data });
            }
            catch (Exception ex)
            {
                return(new { Code = -1, Count = 0, Info = "获取数据失败", ex.Message });
            }
        }
Ejemplo n.º 7
0
 public object GetMenuConfigList([FromBody] JObject json)
 {
     try
     {
         string  res    = json.Value <string>("json");
         dynamic dy     = JsonConvert.DeserializeObject <ExpandoObject>(res);
         string  userId = dy.userid;
         //string deptId = dy.data.DeptId;//电厂ID
         long       paltformType = dy.data.PaltformType;//平台类型
         UserEntity user         = new UserBLL().GetEntity(userId);
         //OperatorProvider.AppUserId = userId;  //设置当前用户
         //Operator user = OperatorProvider.Provider.Current();
         if (user == null)
         {
             LogEntity logEntity = new LogEntity();
             logEntity.CategoryId    = 4;
             logEntity.OperateTypeId = ((int)OperationType.Exception).ToString();
             logEntity.OperateType   = EnumAttribute.GetDescription(OperationType.Exception);
             if (null != OperatorProvider.Provider.Current())
             {
                 logEntity.OperateUserId = OperatorProvider.Provider.Current().UserId;
             }
             logEntity.ExecuteResult     = -1;
             logEntity.ExecuteResultJson = "用户或用户的角色为空";
             logEntity.Module            = "api:GetMenuConfigList 获取用户可获取的已授权菜单";
             logEntity.ModuleId          = SystemInfo.CurrentModuleId;
             logEntity.WriteLog();
             return(new { Code = -1, Info = "获取数据失败", Message = "用户或用户的角色为空" });
         }
         List <string> roleIds = user.RoleId.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList();
         var           data    = new MenuConfigBLL().GetList(user.OrganizeId, Convert.ToInt32(paltformType), roleIds);
         //List<object> objlist = new List<object>();
         //foreach (var item in data)
         //{
         //    var obj = new
         //    {
         //        id = item.ModuleId,
         //        name = item.ModuleName,
         //        key = item.ModuleCode,
         //        index = item.Sort
         //    };
         //    objlist.Add(obj);
         //}
         return(new { Code = 0, Count = data.Count(), Info = "获取数据成功", data });
     }
     catch (Exception ex)
     {
         return(new { Code = -1, Info = "获取数据失败", ex.Message });
     }
 }
Ejemplo n.º 8
0
        public object ModuleShow([FromBody] JObject json)
        {
            try
            {
                string  res            = json.Value <string>("json");
                dynamic dy             = JsonConvert.DeserializeObject <ExpandoObject>(res);
                string  id             = dy.id;        //单位注册ID
                long    themeTypeParam = dy.themetype; //0 第一套工作栏  1 第二套
                int     themeType      = int.Parse(themeTypeParam.ToString());
                //取出单位的注册信息
                MenuAuthorizeEntity menuAuthorize = new MenuAuthorizeBLL().GetEntity(id);

                //1、先取出所有的栏目
                AppMenuSettingBLL           settingBLL             = new AppMenuSettingBLL();
                List <AppMenuSettingEntity> appMenuSettingEntities = settingBLL.GetList(menuAuthorize.DepartId, themeType, 1);
                //2、取当前用户所有的授权的菜单
                MenuConfigBLL           menuConfigBLL = new MenuConfigBLL();
                List <MenuConfigEntity> menus         = menuConfigBLL.GetList(null, null, null).Distinct().ToList();
                //3、根据栏目与菜单的关系配置取菜单
                AppSettingAssociationBLL           settingAssociationBLL      = new AppSettingAssociationBLL();
                List <AppSettingAssociationEntity> settingAssociationEntities = settingAssociationBLL.GetList(menuAuthorize.DepartId, menus.Select(p => p.ModuleId).ToList());
                //4、组装数据
                List <MenuConfigEntity> authMenu = new List <MenuConfigEntity>();
                foreach (var item in appMenuSettingEntities)
                {
                    var menusIds = settingAssociationEntities.Where(p => p.ColumnId == item.Id).Select(x => x.ModuleId).ToList();
                    if (menusIds != null && menusIds.Count > 0)
                    {
                        var appMenu = menus.Where(x => menusIds.Contains(x.ModuleId)).ToList();
                        authMenu.AddRange(appMenu);
                    }
                }
                //根据名字判断班务公开显示的tab页
                var data = new
                {
                    kqb   = authMenu.Count(p => p.ModuleName.Contains("考勤管理")) > 0 ? 1 : 0,
                    zbb   = authMenu.Count(p => p.ModuleName.Contains("考勤管理")) > 0 ? 1 : 0,
                    jxkhb = authMenu.Count(p => p.ModuleName.Contains("绩效管理")) > 0 ? 1 : 0,
                };

                return(new { Code = 0, Info = "获取数据成功", Data = data });
            }
            catch (Exception ex)
            {
                return(new { Code = -1, Count = 0, Info = "获取数据失败", ex.Message });
            }
        }
Ejemplo n.º 9
0
        public ActionResult EditAssociationFrom(string keyValue, string ColumnId, int platform)
        {
            AppSettingAssociationBLL    associationBLL = new AppSettingAssociationBLL();
            AppSettingAssociationEntity entity         = associationBLL.GetEntity(keyValue, ColumnId);
            MenuConfigEntity            menuConfig     = new MenuConfigBLL().GetEntity(keyValue);

            ViewBag.ModuleName = menuConfig.ModuleName;
            if (menuConfig.ParentId == "0" || menuConfig.ParentId == "1" || menuConfig.ParentId == "2")
            {
                ViewBag.ParentName = entity.ColumnName;
            }
            else
            {
                ViewBag.ParentName = menuConfig.ParentName;
            }

            return(View(entity));
        }
Ejemplo n.º 10
0
        /// <summary>
        /// 保存菜单与栏目的关系
        /// </summary>
        /// <param name="keyValue"></param>
        /// <param name="entity"></param>
        /// <returns></returns>
        public ActionResult SaveMenuAssociationSetting(string keyValue, AppSettingAssociationEntity entity)
        {
            AppSettingAssociationBLL associationBLL = new AppSettingAssociationBLL();

            associationBLL.SaveForm(keyValue, entity);
            //判断该菜单是不是安卓终端的,是的话就更新版本
            var module = new MenuConfigBLL().GetEntity(entity.ModuleId);

            if (module.PaltformType == 1)
            {
                MenuAuthorizeEntity menuAuthorize = authorizeBLL.GetEntityByDeptId(entity.DeptId);
                if (menuAuthorize != null)
                {
                    authorizeBLL.SaveForm(menuAuthorize.Id, menuAuthorize);//此处单纯的改变一下版本号
                }
            }
            return(Success("操作成功。"));
        }
Ejemplo n.º 11
0
        public object GetMenuList([FromBody] JObject json)
        {
            try
            {
                string  res            = json.Value <string>("json");
                dynamic dy             = JsonConvert.DeserializeObject <ExpandoObject>(res);
                string  userId         = dy.userid;         //用户名
                long    themeTypeParam = dy.data.themetype; //0 第一套工作栏  1 第二套
                long    platformParam  = dy.data.platform;  //2 手机APP 1 安卓终端
                int     themeType      = int.Parse(themeTypeParam.ToString());
                int     platform       = int.Parse(platformParam.ToString());
                //获取用户基本信息
                OperatorProvider.AppUserId = userId;  //设置当前用户
                Operator user = OperatorProvider.Provider.Current();
                if (user == null || user.RoleId == null)
                {
                    //logMessage.ExceptionSource = Error.Source;
                    //logMessage.ExceptionRemark = Error.StackTrace;

                    LogEntity logEntity = new LogEntity();
                    logEntity.CategoryId    = 4;
                    logEntity.OperateTypeId = ((int)OperationType.Exception).ToString();
                    logEntity.OperateType   = EnumAttribute.GetDescription(OperationType.Exception);
                    if (null != OperatorProvider.Provider.Current())
                    {
                        logEntity.OperateUserId = OperatorProvider.Provider.Current().UserId;
                    }
                    logEntity.ExecuteResult     = -1;
                    logEntity.ExecuteResultJson = "用户或用户的角色为空";
                    logEntity.Module            = "菜单配置";
                    logEntity.ModuleId          = SystemInfo.CurrentModuleId;
                    logEntity.WriteLog();
                    return(new { Code = -1, Info = "获取数据失败", Message = "用户或用户的角色为空" });
                }
                List <string> roleId = user.RoleId.Replace(" ", "").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList();
                if (user.IsTrainAdmin == 1)
                {
                    roleId.Add("15006a63-94d8-479f-8478-575e567671bc");
                }
                else
                {
                    roleId.Add("f405d85b-4f92-4e0d-8030-2f4e7a280f41");
                }
                DepartmentBLL departmentBLL = new DepartmentBLL();
                //先判断当前用户的部门是不是在厂级及以上
                var depart =
                    departmentBLL.GetList()
                    .Where(x => x.Nature.Contains("集团") || x.Nature.Contains("省级") || x.Nature.Contains("厂级"));
                bool   ishave = depart.Any(entity => entity.DepartmentId == user.DeptId);
                string deptId = user.DeptId;
                if (!ishave)
                {
                    deptId = user.OrganizeId;
                }
                //1、先取出所有的栏目
                AppMenuSettingBLL           settingBLL             = new AppMenuSettingBLL();
                List <AppMenuSettingEntity> appMenuSettingEntities = settingBLL.GetList(deptId, themeType, platform);
                //2、取当前用户所有的授权的菜单
                MenuConfigBLL           menuConfigBLL = new MenuConfigBLL();
                List <MenuConfigEntity> menusAll      = menuConfigBLL.GetList("", platform, null).Distinct().ToList();
                List <MenuConfigEntity> menus         = new List <MenuConfigEntity>();
                roleId.ForEach(role =>
                {
                    menus.AddRange(menusAll.Where(p => !string.IsNullOrWhiteSpace(p.AuthorizeId) && p.AuthorizeId.Contains(role)));
                });
                menus = menus.Distinct().ToList();
                DeptMenuAuthBLL deptMenuAuthBll = new DeptMenuAuthBLL();
                var             deptauthList    = deptMenuAuthBll.GetList(deptId).Select(x => x.ModuleId);
                menus = menus.Where(x => deptauthList.Contains(x.ModuleId)).ToList();
                //3、根据栏目与菜单的关系配置取菜单
                AppSettingAssociationBLL           settingAssociationBLL      = new AppSettingAssociationBLL();
                List <AppSettingAssociationEntity> settingAssociationEntities = settingAssociationBLL.GetList(deptId, menus.Select(p => p.ModuleId).ToList());
                //4、组装数据
                List <MenuSettingData> menuSettingDatas = new List <MenuSettingData>();
                foreach (var item in appMenuSettingEntities)
                {
                    MenuSettingData menuSettingData = new MenuSettingData()
                    {
                        Id     = item.Id,
                        Name   = item.Name,
                        Remark = item.Remark,
                        Sort   = item.Sort,
                        Icon   = string.IsNullOrWhiteSpace(item.Icon) ? null : new DataItemDetailBLL().GetItemValue("imgUrl") + item.Icon,
                    };
                    var menusIds = settingAssociationEntities.Where(p => p.ColumnId == item.Id).Select(x => x.ModuleId).ToList();
                    if (menusIds != null && menusIds.Count > 0)
                    {
                        var appMenu = menus.Where(x => menusIds.Contains(x.ModuleId)).ToList();
                        menuSettingData.AddChild(appMenu, settingAssociationEntities.Where(p => p.ColumnId == item.Id).ToList());
                    }
                    menuSettingDatas.Add(menuSettingData);
                }
                var data = menuSettingDatas.OrderBy(x => x.Sort).ToList();
                return(new { Code = 0, data.Count, Info = "获取数据成功", data });
            }
            catch (Exception ex)
            {
                LogMessage logMessage = new LogMessage();
                logMessage.OperationTime = DateTime.Now;
                logMessage.Url           = HttpContext.Current.Request.RawUrl;
                logMessage.Class         = "MenuConfig";
                logMessage.Ip            = Net.Ip;
                logMessage.Host          = Net.Host;
                logMessage.Browser       = Net.Browser;
                if (null != OperatorProvider.Provider.Current())
                {
                    logMessage.UserName = OperatorProvider.Provider.Current().Account + "(" + OperatorProvider.Provider.Current().UserName + ")";
                }

                logMessage.ExceptionInfo = Newtonsoft.Json.JsonConvert.SerializeObject(ex);
                //logMessage.ExceptionSource = Error.Source;
                //logMessage.ExceptionRemark = Error.StackTrace;
                string strMessage = new LogFormat().ExceptionFormat(logMessage);

                LogEntity logEntity = new LogEntity();
                logEntity.CategoryId     = 4;
                logEntity.OperateTypeId  = ((int)OperationType.Exception).ToString();
                logEntity.OperateType    = EnumAttribute.GetDescription(OperationType.Exception);
                logEntity.OperateAccount = logMessage.UserName;
                if (null != OperatorProvider.Provider.Current())
                {
                    logEntity.OperateUserId = OperatorProvider.Provider.Current().UserId;
                }
                logEntity.ExecuteResult     = -1;
                logEntity.ExecuteResultJson = strMessage;
                logEntity.Module            = "菜单配置";
                logEntity.ModuleId          = SystemInfo.CurrentModuleId;
                logEntity.WriteLog();
                return(new { Code = -1, Info = "获取数据失败", ex.Message });
            }
        }
Ejemplo n.º 12
0
        public object GetMenuList([FromBody] JObject json)
        {
            try
            {
                string  res            = json.Value <string>("json");
                dynamic dy             = JsonConvert.DeserializeObject <ExpandoObject>(res);
                string  userId         = dy.userid;         //用户名
                long    themeTypeParam = dy.data.themetype; //0 第一套工作栏  1 第二套
                long    platformParam  = dy.data.platform;  //2 手机APP 1 安卓终端
                int     themeType      = int.Parse(themeTypeParam.ToString());
                int     platform       = int.Parse(platformParam.ToString());
                //获取用户基本信息
                OperatorProvider.AppUserId = userId;  //设置当前用户
                Operator user = OperatorProvider.Provider.Current();
                if (user.RoleId == null)
                {
                    return(new { Code = -1, Info = "获取数据失败", Message = "用户的角色为空" });
                }
                List <string> roleId = user.RoleId.Replace(" ", "").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList();

                DepartmentBLL departmentBLL = new DepartmentBLL();
                //先判断当前用户的部门是不是在厂级及以上
                var depart =
                    departmentBLL.GetList()
                    .Where(x => x.Nature.Contains("集团") || x.Nature.Contains("省级") || x.Nature.Contains("厂级"));
                bool   ishave = depart.Any(entity => entity.DepartmentId == user.DeptId);
                string deptId = user.DeptId;
                if (!ishave)
                {
                    deptId = user.OrganizeId;
                }
                //1、先取出所有的栏目
                AppMenuSettingBLL           settingBLL             = new AppMenuSettingBLL();
                List <AppMenuSettingEntity> appMenuSettingEntities = settingBLL.GetList(deptId, themeType, platform);
                //2、取当前用户所有的授权的菜单
                MenuConfigBLL           menuConfigBLL   = new MenuConfigBLL();
                List <MenuConfigEntity> menus           = menuConfigBLL.GetList("", platform, roleId).Distinct().ToList();
                DeptMenuAuthBLL         deptMenuAuthBll = new DeptMenuAuthBLL();
                var deptauthList = deptMenuAuthBll.GetList(deptId).Select(x => x.ModuleId);
                menus = menus.Where(x => deptauthList.Contains(x.ModuleId)).ToList();
                //3、根据栏目与菜单的关系配置取菜单
                AppSettingAssociationBLL           settingAssociationBLL      = new AppSettingAssociationBLL();
                List <AppSettingAssociationEntity> settingAssociationEntities = settingAssociationBLL.GetList(deptId, menus.Select(p => p.ModuleId).ToList());
                //4、组装数据
                List <MenuSettingData> menuSettingDatas = new List <MenuSettingData>();
                foreach (var item in appMenuSettingEntities)
                {
                    MenuSettingData menuSettingData = new MenuSettingData()
                    {
                        Id     = item.Id,
                        Name   = item.Name,
                        Remark = item.Remark,
                        Sort   = item.Sort,
                    };
                    var menusIds = settingAssociationEntities.Where(p => p.ColumnId == item.Id).Select(x => x.ModuleId).ToList();
                    if (menusIds != null && menusIds.Count > 0)
                    {
                        var appMenu = menus.Where(x => menusIds.Contains(x.ModuleId)).ToList();
                        menuSettingData.AddChild(appMenu, settingAssociationEntities.Where(p => p.ColumnId == item.Id).ToList());
                    }
                    menuSettingDatas.Add(menuSettingData);
                }
                var data = menuSettingDatas.OrderBy(x => x.Sort).ToList();
                return(new { Code = 0, data.Count, Info = "获取数据成功", data });
            }
            catch (Exception ex)
            {
                return(new { Code = -1, Info = "获取数据失败", ex.Message });
            }
        }