Пример #1
0
        public ApiReponse <object> SetRolePermission(SetRolePermissionDto input)
        {
            var datas = _roleMenu.GetAllList(item => item.RoleId == input.RoleId);

            if (datas.Count > 0)
            {
                _roleMenu.Delete(item => item.RoleId == input.RoleId);
            }

            if (input.MenuIds.Count == 0)
            {
                return(new ApiReponse <object>("设置成功"));
            }

            var models = new List <RolePermissionDto>();
            var list   = new List <MkoRoleMenu>();

            RolePermissionDto model = null;

            input.MenuIds.ForEach(item =>
            {
                model            = new RolePermissionDto();
                var operateArray = item.Split('_');
                if (Convert.ToInt32(operateArray.LastOrDefault()) == 0)
                {
                    if (models.FirstOrDefault(m => m.MenuId == Convert.ToInt32(operateArray.FirstOrDefault())) != null)
                    {
                        return;
                    }
                    model.MenuId = Convert.ToInt32(operateArray.FirstOrDefault());
                    models.Add(model);
                }
                else
                {
                    var data = models.FirstOrDefault(m => m.MenuId == Convert.ToInt32(operateArray.FirstOrDefault()));
                    if (data == null)
                    {
                        model.MenuId = Convert.ToInt32(operateArray.FirstOrDefault());
                        model.Operates.Add(Convert.ToInt32(operateArray.LastOrDefault()));
                        models.Add(model);
                    }
                    else
                    {
                        data.Operates.Add(Convert.ToInt32(operateArray.LastOrDefault()));
                    }
                }
            });

            models.ForEach(dy =>
            {
                var menu = _menu.SingleOrDefault(item => item.Id == dy.MenuId);
                if (menu == null)
                {
                    return;
                }

                var roleMenu = new MkoRoleMenu
                {
                    MenuId   = dy.MenuId,
                    RoleId   = input.RoleId,
                    Operates = JsonConvert.SerializeObject(menu.ParentId == 0
                        ? new List <int>()
                        : dy.Operates)
                };

                list.Add(roleMenu);
            });

            var result = _roleMenu.BatchInsert(list);

            if (!result)
            {
                throw new MarukoException("设置失败");
            }

            return(new ApiReponse <object>("设置成功"));
        }
Пример #2
0
 public ApiReponse <object> SetRolePermission(SetRolePermissionDto model)
 {
     return(_crud.SetRolePermission(model));
 }