/// <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)); } }
/// <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)); } }