Ejemplo n.º 1
0
        public IActionResult Delete(string id)
        {
            var model = _roleServices.QueryableToEntity(c => c.RoleId == SqlFunc.ToInt64(id));

            if (model.RoleType == "admin")
            {
                return(BootJsonH((false, PubConst.Role1)));
            }
            var user = _userServices.IsAny(c => c.RoleId == SqlFunc.ToInt64(id));

            if (user)
            {
                return(BootJsonH((false, PubConst.Role3)));
            }
            var flag = _roleServices.Update(new Sys_role {
                RoleId = SqlFunc.ToInt64(id), IsDel = 0, ModifiedBy = UserDtoCache.UserId, ModifiedDate = DateTimeExt.DateTime
            }, c => new { c.IsDel, c.ModifiedBy, c.ModifiedDate });

            if (flag)
            {
                _rolemenuServices.Delete(c => c.RoleId == SqlFunc.ToInt64(id));
                return(BootJsonH((flag, PubConst.Delete1)));
            }
            else
            {
                return(BootJsonH((flag, PubConst.Delete2)));
            }
        }
Ejemplo n.º 2
0
        public DbResult <bool> Update(Sys_role role, long userId, string[] menuId)
        {
            var    list = _rolemenuServices.QueryableToList(c => c.RoleId == role.RoleId);
            string idsu = "";  //数据库中的Id;

            list.ForEach((m) =>
            {
                idsu += m.MenuId + ",";
            });
            var arr = idsu.TrimEnd(',').ToSplit(',');

            //menuId 页面上的菜单Id;
            role.ModifiedBy   = userId;
            role.ModifiedDate = DateTimeExt.DateTime;
            //role.RoleType = "#";
            string[] pageId = arr.Union(menuId).Except(menuId).ToArray(); //delete
            string[] dataId = menuId.Union(arr).Except(arr).ToArray();    //insert
            return(_repository.UseTran(() =>
            {
                _repository.Update(role);
                List <long> array = new List <long>();
                if (pageId.Any())
                {
                    foreach (var item in pageId)
                    {
                        array.Add(list.Where(c => c.RoleId == role.RoleId && c.MenuId == item.ToInt64()).SingleOrDefault().RoleMenuId);
                    }
                    _rolemenuServices.Delete(array.ToArray());
                }
                if (dataId.Any())
                {
                    var roleList = new List <Sys_rolemenu>();
                    foreach (var item in dataId)
                    {
                        roleList.Add(new Sys_rolemenu
                        {
                            CreateBy = userId,
                            MenuId = item.ToInt64(),
                            RoleId = role.RoleId,
                            RoleMenuId = PubId.SnowflakeId
                        });
                    }
                    _rolemenuServices.Insert(roleList);
                }
            }));

            //if (arr.Count() > menuId.Count())
            //{
            //    //数据库中的数量大于页面传过来的数量就删除
            //    string[] except;
            //    if (menuId.Count() > arr.Count())
            //    {
            //        except = menuId.Except(arr).ToArray();
            //    }
            //    else
            //    {
            //        except = arr.Except(menuId).ToArray();
            //    }
            //    List<long> array = new List<long>();
            //    if (except.Any())
            //    {
            //        foreach (var item in except)
            //        {
            //            array.Add(list.Where(c => c.RoleId == role.RoleId && c.MenuId == item.ToInt64()).SingleOrDefault().RoleMenuId);
            //        }
            //    }
            //    return _repository.UseTran(() =>
            //     {
            //         _repository.Update(role);
            //         _rolemenuServices.Delete(array.ToArray());
            //     });
            //}
            //else
            //{
            //    //update/add
            //    return _repository.UseTran(() =>
            //    {
            //        _repository.Update(role);
            //        foreach (var item in menuId)
            //        {
            //            var model = _rolemenuServices.QueryableToEntity(c => c.RoleId == role.RoleId && c.MenuId == item.ToInt64());
            //            if (model.IsNullT())
            //            {
            //                //add
            //                _rolemenuServices.Insert(new Sys_rolemenu
            //                {
            //                    CreateBy = userId,
            //                    MenuId = item.ToInt64(),
            //                    RoleId = role.RoleId,
            //                    RoleMenuId = PubId.SnowflakeId
            //                });
            //            }
            //            else
            //            {
            //                //update
            //                model.ModifiedBy = userId;
            //                model.ModifiedDate = DateTimeExt.DateTime;
            //                _rolemenuServices.UpdateEntity(model);
            //            }
            //        }
            //    });
            //}
        }