Exemplo n.º 1
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));
            }
        }
Exemplo 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));
            }
        }