public ActionResult AuthorizeForm(string DepartId, string DepartName, string DepartCode) { ViewBag.DepartId = DepartId; ViewBag.DepartName = DepartName; ViewBag.DepartCode = DepartCode; var data = MenuConfigBLL.GetAllList().OrderBy(x => x.Sort).ToList(); //所有的菜单 List <string> menuAuthList = deptMenuAuthBLL.GetList(DepartId).Select(x => x.ModuleId).ToList(); //授权了的菜单ID ViewBag.MenuAuthList = menuAuthList; var treeModel = MenuTreeHelper.InitData(); foreach (var firstLevel in treeModel) { MenuTreeHelper.FomateTree(firstLevel, data, menuAuthList, false, true); } ViewBag.MenuTree = treeModel; var authTreeModel = MenuTreeHelper.InitData(); foreach (var firstLevel in authTreeModel) { MenuTreeHelper.FomateTree(firstLevel, data, false, false, true); } ViewBag.AuthTreeModel = authTreeModel; return(View(data)); }
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 }); } }
public ActionResult CopyInfo(CopyRequestModel model) { if (!string.IsNullOrWhiteSpace(model.DeptId) && !string.IsNullOrWhiteSpace(model.Id)) { //先查询出授权信息 MenuAuthorizeEntity entity = authorizeBLL.GetEntity(model.Id); if (entity != null) { DepartmentBLL departmentBll = new DepartmentBLL(); var deptIdArry = model.DeptId.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); var deptCodeArry = model.DeptCode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); var deptNameArry = model.DeptName.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); //菜单授权信息 DeptMenuAuthBLL deptMenuAuthBll = new DeptMenuAuthBLL(); List <DeptMenuAuthEntity> deptMenuAuthList = deptMenuAuthBll.GetList(entity.DepartId); //界面设置 List <AppMenuSettingEntity> appMenuSettingEntities = new AppMenuSettingBLL().GetListByDeptId(entity.DepartId); //栏目与菜单的关联关系 List <AppSettingAssociationEntity> appSettingAssociationList = new AppSettingAssociationBLL().GetList(entity.DepartId); List <DeptMenuAuthEntity> insetDeptMenuAuthList = new List <DeptMenuAuthEntity>(); List <MenuAuthorizeEntity> authorizeEntities = new List <MenuAuthorizeEntity>(); //复制之后要保存到数据库中的单位授权数据 List <AppMenuSettingEntity> insertMenuSettingEntities = new List <AppMenuSettingEntity>(); //界面设置 List <AppSettingAssociationEntity> insertAssociationEntities = new List <AppSettingAssociationEntity>(); //关联关系 for (int i = 0; i < deptIdArry.Length; i++) { //1、先复制单位的授权信息 DepartmentEntity deptEntity = departmentBll.GetEntity(deptIdArry[i]); MenuAuthorizeEntity insertEntity = new MenuAuthorizeEntity() { Id = Guid.NewGuid().ToString(), DepartId = deptIdArry[i], DepartCode = deptCodeArry[i], DepartName = deptNameArry[i], DisplayName = deptNameArry[i], BZApiUrl = entity.BZApiUrl, CreateDate = entity.CreateDate, CreateUserId = entity.CreateUserId, CreateUserName = entity.CreateUserName, CulturalUrl = entity.CulturalUrl, ModifyDate = entity.ModifyDate, ModifyUserId = entity.ModifyUserId, ModifyUserName = entity.ModifyUserName, PXApiUrl = entity.PXApiUrl, RegistCode = entity.RegistCode, SKApiUrl = entity.SKApiUrl, TerminalCode = entity.TerminalCode, ThemeType = entity.ThemeType, VersionCode = entity.VersionCode, ParentId = deptEntity != null? deptEntity.ParentId : "", ParentName = deptEntity != null && deptEntity.ParentId == "0" ? "" : departmentBll.GetEntity(deptEntity.ParentId).FullName }; authorizeEntities.Add(insertEntity); //2、复制界面设置 appMenuSettingEntities.ForEach(setting => { AppMenuSettingEntity appMenu = setting.Clone(deptIdArry[i], deptNameArry[i], deptCodeArry[i], appSettingAssociationList, insertAssociationEntities); insertMenuSettingEntities.Add(appMenu); }); //3、 复制关联关系 //appSettingAssociationList.ForEach(e => //{ // AppSettingAssociationEntity association = e.Clone(deptIdArry[i], ,insetDeptMenuAuthList); // insertAssociationEntities.Add(association); //}); //4、复制菜单授权信息 deptMenuAuthList.ForEach(p => { DeptMenuAuthEntity deptMenu = p.Clone(deptIdArry[i], deptCodeArry[i], deptNameArry[i]); insetDeptMenuAuthList.Add(deptMenu); }); } authorizeBLL.InsertEntity(authorizeEntities.ToArray()); new AppMenuSettingBLL().InsertList(insertMenuSettingEntities); new AppSettingAssociationBLL().InsertList(insertAssociationEntities); new DeptMenuAuthBLL().InsertList(insetDeptMenuAuthList); } } return(Success("操作成功")); }
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 }); } }