/// <summary> /// 保存菜单设置 /// </summary> /// <param name="keyValue"></param> /// <param name="entity"></param> /// <returns></returns> public ActionResult SaveMenuSetting(string keyValue, AppMenuSettingEntity entity) { AppMenuSettingBLL settingBLL = new AppMenuSettingBLL(); settingBLL.SaveForm(keyValue, entity); //判断该菜单是不是安卓终端的,是的话就更新版本 MenuAuthorizeEntity menuAuthorize = authorizeBLL.GetEntityByDeptId(entity.DeptId); if (menuAuthorize != null) { authorizeBLL.SaveForm(menuAuthorize.Id, menuAuthorize); //此处单纯的改变一下版本号 } return(Success("操作成功。")); }
public ActionResult SaveMenuAuth(MenuAuthRquestModel param) { try { //先从数据库提取出所有的该单位下的菜单。已经有的就不管,没有的就添加,多的就删除 var oldData = deptMenuAuthBLL.GetList(param.departId); //旧的数据 var delData = oldData.Where(x => !param.ModuleIds.Contains(x.ModuleId)).ToList(); //要删除逇数据; var oldmoduleIdsList = oldData.Select(x => x.ModuleId).ToList(); var newdataIds = param.ModuleIds.Where(x => !oldmoduleIdsList.Contains(x)).ToList();//要新增进去的数据Id的集合 var newData = new List <DeptMenuAuthEntity>(); newdataIds.ForEach(p => { newData.Add(new DeptMenuAuthEntity() { Id = Guid.NewGuid().ToString(), DeptCode = param.departCode, DeptId = param.departId, DeptName = param.departName, ModuleId = p }); }); //执行删除操作之前,判断是否有菜单已经被使用了,被适用的菜单,不允许取消授权。防止误操作 bool validData = new AppSettingAssociationBLL().CheckData(delData); if (!validData) { return(Error("操作失败:" + "存在正在被使用的菜单模块,请先删除“APP(安卓终端)界面设置”中工作栏里的菜单后再操作")); } deptMenuAuthBLL.Remove(delData); deptMenuAuthBLL.Add(newData); //取消了菜单授权之后 ,要删除对应的单位的栏目菜单关联关系 new AppSettingAssociationBLL().Remove(param.departId, delData.Select(p => p.ModuleId).ToList()); // 如果新增的数据里面有安卓终端的数据 ,则把这些菜单添加到默认栏目里面, 没有栏目的则默认新建一个栏目 //1、找出新增的菜单里面是安卓菜单的数据 List <MenuConfigEntity> newMenuEntityList = MenuConfigBLL.GetListByModuleIds(newdataIds, 1); if (newMenuEntityList != null && newMenuEntityList.Count > 0) { //2、先找栏目,栏目没有就新建一个 AppMenuSettingBLL settingBLL = new AppMenuSettingBLL(); AppMenuSettingEntity menusetting = settingBLL.GetList(param.departId, 0, 1).FirstOrDefault(); string menusettingId = Guid.NewGuid().ToString(); string menusettingName = string.Empty; if (menusetting == null) { menusetting = new AppMenuSettingEntity(); menusetting.DeptCode = param.departCode; menusetting.DeptId = param.departId; menusetting.DeptName = param.departName; menusetting.PlatformType = 1; menusetting.Name = "总栏目"; menusetting.Sort = 1; menusetting.ThemeCode = 0; menusetting.Id = menusettingId; menusettingName = menusetting.Name; settingBLL.SaveForm(null, menusetting); } else { menusettingId = menusetting.Id; menusettingName = menusetting.Name; } //建立栏目与菜单的关联关系 List <AppSettingAssociationEntity> associationEntities = new List <AppSettingAssociationEntity>(); newMenuEntityList.ForEach(x => { associationEntities.Add(new AppSettingAssociationEntity() { ColumnId = menusettingId, ColumnName = menusettingName, DeptId = param.departId, Id = Guid.NewGuid().ToString(), ModuleId = x.ModuleId, Sort = x.Sort, }); }); new AppSettingAssociationBLL().SaveList(associationEntities); } MenuAuthorizeEntity menuAuthorize = authorizeBLL.GetEntityByDeptId(param.departId); if (menuAuthorize != null) { authorizeBLL.SaveForm(menuAuthorize.Id, menuAuthorize);//此处单纯的改变一下版本号 } return(Success("操作成功。")); } catch (Exception ex) { return(Error("操作失败:" + ex.Message)); } }