Exemplo n.º 1
0
        /// <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("操作成功。"));
        }
Exemplo n.º 2
0
        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));
            }
        }