public async Task <JsonResponse> SaveRolePermission([FromBody] SaveRolePermissionViewModel vm)
        {
            var roleInfo = (await _roleServices.Query(p => p.Id == vm.RoleId)).SingleOrDefault();

            if (roleInfo == null)
            {
                throw new UserOperationException("角色不存在");
            }
            var permissionIds = await _rolePermissionServices.GetPermissionIds(roleInfo.Id);

            var removeIds = permissionIds.Where(id => !vm.PermissionIds.Contains(id)).ToList();

            _unitOfWork.Begin();
            var resultCount = 0;

            foreach (var id in removeIds)
            {
                resultCount += await _rolePermissionServices.Delete(p => p.RoleId == roleInfo.Id && p.PermissionId == id);
            }
            var addIds = vm.PermissionIds.Where(id => !permissionIds.Contains(id)).ToList();

            foreach (var id in addIds)
            {
                var rolePermisId = _rolePermissionServices.Add(new SysRolePermission {
                    RoleId = roleInfo.Id, PermissionId = id
                });
                resultCount += rolePermisId > 0 ? 1 : 0;
            }
            if (resultCount != removeIds.Count + addIds.Count)
            {
                _unitOfWork.Rollback();
                throw new UserOperationException("操作失败");
            }
            _unitOfWork.Commit();
            return(new JsonResponse(true));
        }