跨境互联网 跨境互联网
首页
  • AI 工具

    • 绘图提示词工具 (opens new window)
    • ChatGPT 指令 (opens new window)
  • ChatGPT

    • ChatGP T介绍
    • ChatGPT API 中文开发手册
    • ChatGPT 中文调教指南
    • ChatGPT 开源项目
  • Midjourney

    • Midjourney 文档
  • Stable Diffusion

    • Stable Diffusion 文档
  • 其他

    • AIGC 热门文章
    • 账号合租 (opens new window)
    • 有趣的网站
  • Vue

    • Vue3前置
  • JAVA基础

    • Stream
    • Git
    • Maven
    • 常用第三方类库
    • 性能调优工具
    • UML系统建模
    • 领域驱动设计
    • 敏捷开发
    • Java 测试
    • 代码规范及工具
    • Groovy 编程
  • 并发编程&多线程

    • 并发编程
    • 高性能队列 Disruptor
    • 多线程并发在电商系统下的应用
  • 其他

    • 面试题
  • 消息中间中间件

    • Kafka
    • RabbitMQ
    • RocketMQ
  • 任务调度

    • Quartz
    • XXL-Job
    • Elastic-Job
  • 源码解析

    • Mybatis 高级使用
    • Mybatis 源码剖析
    • Mybatis-Plus
    • Spring Data JPA
    • Spring 高级使用
    • Spring 源码剖析
    • SpringBoot 高级使用
    • SpringBoot 源码剖析
    • Jdk 解析
    • Tomcat 架构设计&源码剖析
    • Tomcat Web应用服务器
    • Zookeeper 高级
    • Netty
  • 微服务框架

    • 分布式原理
    • 分布式集群架构场景化解决方案
    • Dubbo 高级使用
    • Dubbo 核心源码剖析
    • Spring Cloud Gateway
    • Nacos 实战应用
    • Sentinel 实战应用
    • Seata 分布式事务
  • 数据结构和算法的深入应用
  • 存储

    • 图和Neo4j
    • MongoDB
    • TiDB
    • MySQL 优化
    • MySQL 平滑扩容实战
    • MySQL 海量数据存储与优化
    • Elasticsearch
  • 缓存

    • Redis
    • Aerospike
    • Guava Cache
    • Tair
  • 文件存储

    • 阿里云 OSS 云存储
    • FastDF 文件存储
  • 基础

    • Linux 使用
    • Nginx 使用与配置
    • OpenResty 使用
    • LVS+Keepalived 高可用部署
    • Jekins
  • 容器技术

    • Docker
    • K8S
    • K8S
  • 01.全链路(APM)
  • 02.电商终极搜索解决方案
  • 03.电商亿级数据库设计
  • 04.大屏实时计算
  • 05.分库分表的深入实战
  • 06.多维系统下单点登录
  • 07.多服务之间分布式事务
  • 08.业务幂等性技术架构体系
  • 09.高并发下的12306优化
  • 10.每秒100W请求的秒杀架构体系
  • 11.集中化日志管理平台的应用
  • 12.数据中台配置中心
  • 13.每天千万级订单的生成背后痛点及技术突破
  • 14.红包雨的架构设计及源码实现
  • 人工智能

    • Python 笔记
    • Python 工具库
    • 人工智能(AI) 笔记
    • 人工智能(AI) 项目笔记
  • 大数据

    • Flink流处理框架
  • 加密区

    • 机器学习(ML) (opens new window)
    • 深度学习(DL) (opens new window)
    • 自然语言处理(NLP) (opens new window)
AI 导航 (opens new window)

Revin

首页
  • AI 工具

    • 绘图提示词工具 (opens new window)
    • ChatGPT 指令 (opens new window)
  • ChatGPT

    • ChatGP T介绍
    • ChatGPT API 中文开发手册
    • ChatGPT 中文调教指南
    • ChatGPT 开源项目
  • Midjourney

    • Midjourney 文档
  • Stable Diffusion

    • Stable Diffusion 文档
  • 其他

    • AIGC 热门文章
    • 账号合租 (opens new window)
    • 有趣的网站
  • Vue

    • Vue3前置
  • JAVA基础

    • Stream
    • Git
    • Maven
    • 常用第三方类库
    • 性能调优工具
    • UML系统建模
    • 领域驱动设计
    • 敏捷开发
    • Java 测试
    • 代码规范及工具
    • Groovy 编程
  • 并发编程&多线程

    • 并发编程
    • 高性能队列 Disruptor
    • 多线程并发在电商系统下的应用
  • 其他

    • 面试题
  • 消息中间中间件

    • Kafka
    • RabbitMQ
    • RocketMQ
  • 任务调度

    • Quartz
    • XXL-Job
    • Elastic-Job
  • 源码解析

    • Mybatis 高级使用
    • Mybatis 源码剖析
    • Mybatis-Plus
    • Spring Data JPA
    • Spring 高级使用
    • Spring 源码剖析
    • SpringBoot 高级使用
    • SpringBoot 源码剖析
    • Jdk 解析
    • Tomcat 架构设计&源码剖析
    • Tomcat Web应用服务器
    • Zookeeper 高级
    • Netty
  • 微服务框架

    • 分布式原理
    • 分布式集群架构场景化解决方案
    • Dubbo 高级使用
    • Dubbo 核心源码剖析
    • Spring Cloud Gateway
    • Nacos 实战应用
    • Sentinel 实战应用
    • Seata 分布式事务
  • 数据结构和算法的深入应用
  • 存储

    • 图和Neo4j
    • MongoDB
    • TiDB
    • MySQL 优化
    • MySQL 平滑扩容实战
    • MySQL 海量数据存储与优化
    • Elasticsearch
  • 缓存

    • Redis
    • Aerospike
    • Guava Cache
    • Tair
  • 文件存储

    • 阿里云 OSS 云存储
    • FastDF 文件存储
  • 基础

    • Linux 使用
    • Nginx 使用与配置
    • OpenResty 使用
    • LVS+Keepalived 高可用部署
    • Jekins
  • 容器技术

    • Docker
    • K8S
    • K8S
  • 01.全链路(APM)
  • 02.电商终极搜索解决方案
  • 03.电商亿级数据库设计
  • 04.大屏实时计算
  • 05.分库分表的深入实战
  • 06.多维系统下单点登录
  • 07.多服务之间分布式事务
  • 08.业务幂等性技术架构体系
  • 09.高并发下的12306优化
  • 10.每秒100W请求的秒杀架构体系
  • 11.集中化日志管理平台的应用
  • 12.数据中台配置中心
  • 13.每天千万级订单的生成背后痛点及技术突破
  • 14.红包雨的架构设计及源码实现
  • 人工智能

    • Python 笔记
    • Python 工具库
    • 人工智能(AI) 笔记
    • 人工智能(AI) 项目笔记
  • 大数据

    • Flink流处理框架
  • 加密区

    • 机器学习(ML) (opens new window)
    • 深度学习(DL) (opens new window)
    • 自然语言处理(NLP) (opens new window)
AI 导航 (opens new window)
  • Spring Data JPA
  • MyBatis

  • Spring

  • SpringBoot

  • Jdk

  • Tomcat

  • Netty

  • 若依

    • 源码分析

      • 项目概述
      • 项目运行
      • 构建发布到Linux
      • 系统菜单介绍
      • 开发环境运行
      • 表结构介绍
      • 目录文件介绍
      • 主配置文件介绍
      • SpringBoot简介
      • SpringSecurity简介
      • SpringSecurity配置介绍
      • SpringSecurity密码加密
      • SpringSecurity退出配置
      • SpringSecurity登录配置
      • SpringSecurity权限讲解
      • SpringSecurity权限注解
      • JWT介绍
      • JWT实现
      • JWT过滤器
      • Mybatis配置详解
      • Mybatis使用方式
      • 分页配置详解
      • 分页插件使用
      • 分页代码详解
      • 数据源配置详解
      • 数据源代码详解
      • 多数据源使用
      • 28 新增多数据源(相同数据库)
      • 新增多数据源(不同数据库)
      • 多数据源代码详解
      • 事务简介
      • 事务使用
      • 登录日志
      • 操作日志详解
      • 操作日志实现
      • 数据权限使用详解
      • 数据权限代码详解
      • 数据权限业务实现
      • 代码生成使用(单表)
      • 40 代码生成使用(树表)
      • 代码生成实现详解
      • 定时任务使用详解
      • 定时任务代码详解
      • 服务监控讲解
      • Swagger系统接口使用详解
      • 系统接口实现详解
      • XSS脚本过滤详解
      • 防止重复提交过滤详解
      • 全局异常处理器
      • 框架验证详解
      • 日志配置详解
      • 上传详解
      • 下载详解
      • 前端-前端框架介绍
      • 前端-package.json详解
      • 前端-vue.config.js详解
      • main.js详解
      • 前端-布局设置
      • 导航栏
      • 前端-侧边栏
      • 前端-顶部栏
      • scoped作用域
      • 前端-scoped样式穿透
      • 前端-路由跳转的两种方式
      • 前端-动态路由的跳转方式
      • 前端-开发规范&流程
      • 前端-请求流程
      • 前端-组件使用-引入外部依赖
      • 前端-组件使用-注册组件
      • 前端-组件使用-组件通信
      • 前端-页面权限
      • 前端-多级目录
      • 前端-页签缓存
      • 前端-使用图标
      • 前端-使用字典(dicts方式)
      • 前端-使用参数
      • Postman测试接口
      • 代码单元测试
      • 开发文档介绍和部署
      • 集成Oauth2.0
      • 构建发布到Tomcat
      • 新建业务模块(多模块)
      • 开发自己的业务(多模块)
      • 前端-文件上传
      • 前端-文件下载
      • 前端-配置后端接口地址或域名
      • 前端-部署应用到子路径
      • 禁止多终端同时登录实现
      • 静态资源整合到后端访问
      • 使用加密方式传输登录密码
      • 多数据源事务的一致性
      • 主子表代码生成详解
      • 3.4.0版本更新介绍
      • 使用undertow容器
      • 集成actuator实现优雅关闭应用
      • 集成knife4j实现swagger文档增强
      • 集成easyexcel实现excel表格增强
      • 集成mybatis-plus实现mybatis增强
      • 集成ip2region实现离线IP地址定位
      • 集成druid实现数据库密码加密
      • 集成aj-captcha实现滑块验证码
      • 集成sharding-jdbc实现分库分表
      • v3.5.0版本更新介绍
      • 使用docker实现一键部署
      • v3.6.0版本更新介绍
      • 限流控制详解
      • v3.7.0版本更新介绍
        • v3.8.0版本更新介绍
        • v3.8.1版本更新介绍
        • SSO
        • 绑定使用二级域名
        • 验证码源码解析
        • 资料
      • 源码分析
      • Ruoyi-Flowable
    • Traefik

    • Openresty

    • 开源框架
    • 若依
    • 源码分析
    Revin
    2023-10-29
    目录

    v3.7.0版本更新介绍

    # 参数管理支持配置验证码开关

    路径:系统管理=》参数设置=》验证码开关 =》默认开启

    # 新增是否开启用户注册功能

    路径:系统管理=》参数设置=》是否开启用户注册功能 =》默认关闭

    # 菜单管理支持配置路由参数

    路径:系统管理=》菜单管理=》菜单设置 =》路由参数(json格式)

    # Excel注解支持Image图片导入

    示例:com/ruoyi/common/core/domain/entity/SysUser.java:53

    /** 用户头像 */
    @Excel(name = "用户头像", cellType = ColumnType.IMAGE)
    private String avatar;
    
    1
    2
    3

    # 自定义弹层溢出滚动样式

    示例:ruoyi-ui/src/views/tool/gen/index.vue

    比如代码生成器页面:加入了class="scrollbar",自定义设置了一个class样式,弹出框就可以滚动样式

    .el-dialog__wrapper.scrollbar .el-dialog .el-dialog__body {
        overflow: auto;
    	overflow-x: hidden;
    	max-height: 70vh;
    	padding: 10px 20px 0;
    }
    
    1
    2
    3
    4
    5
    6

    # 自定义可拖动弹窗宽度指令

    # 自定义可拖动弹窗高度指令

    ruoyi-ui/src/directive/index.js

      Vue.directive('dialogDragWidth', dialogDragWidth)
      Vue.directive('dialogDragHeight', dialogDragHeight)
    
    1
    2

    使用时el-dialog 带上v-dialogDragWidth 和 v-dialogDragHeight属性即可,弹窗就可以拖拽 高度 和宽度了。

    # 修复任意账户越权问题

    user.setUserId(sysUser.getUserId()); // 这一行
    user.setPassword(null);
    user.setAvatar(null);
    user.setDeptId(null);
    
    1
    2
    3
    4

    将用户登录的userid设置上。这样只能修改自己的用户信息。

    # 修改时检查用户数据权限范围

    userService.checkUserDataScope(userId);
    
    1

    ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java

        /**
         * 校验用户是否有数据权限
         * 
         * @param userId 用户id
         */
        @Override
        public void checkUserDataScope(Long userId)
        {
            if (!SysUser.isAdmin(SecurityUtils.getUserId()))
            {
                SysUser user = new SysUser();
                user.setUserId(userId);
                List<SysUser> users = SpringUtils.getAopProxy(this).selectUserList(user);
                if (StringUtils.isEmpty(users))
                {
                    throw new ServiceException("没有权限访问用户数据!");
                }
            }
        }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19

    这里只是简单判断了登录的用户不是管理员。简单查询一下是否有这个用户。

    若依框架数据权限校验 (opens new window)

    # 跳转路由高亮相对应的菜单栏

    ruoyi-ui/src/router/index.js

    meta: { title: '分配角色', activeMenu: '/system/user' }
    
    1

    比如点击分配角色,默认高亮的路由是/system/user对应的路由。用户管理高亮。

    # 日期范围支持添加多组

    ruoyi-ui/src/utils/ruoyi.js

    // 添加日期范围
    export function addDateRange(params, dateRange, propName) {
      let search = params;
      search.params = typeof (search.params) === 'object' && search.params !== null && !Array.isArray(search.params) ? search.params : {};
      dateRange = Array.isArray(dateRange) ? dateRange : [];
      if (typeof (propName) === 'undefined') {
        search.params['beginTime'] = dateRange[0];
        search.params['endTime'] = dateRange[1];
      } else {
        search.params['begin' + propName] = dateRange[0];
        search.params['end' + propName] = dateRange[1];
      }
      return search;
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

    # 定时任务屏蔽ldap远程调用

    # 定时任务屏蔽http(s)远程调用

    历史漏洞 (opens new window)

    # 补充定时任务表字段注释

    QRTZ_开头的表进行了字段注释

    # 富文本新增上传文件大小限制

    ruoyi-ui/src/components/Editor/index.vue

    fileSize 上传文件大小限制(MB)

    // 上传文件大小限制(MB)
    fileSize: {
      type: Number,
      default: 5,
    },
    
    
    // 上传前校检格式和大小
    handleBeforeUpload(file) {
      // 校检文件大小
      if (this.fileSize) {
        const isLt = file.size / 1024 / 1024 < this.fileSize;
        if (!isLt) {
          this.$message.error(`上传文件大小不能超过 ${this.fileSize} MB!`);
          return false;
        }
      }
      return true;
    },
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19

    # 默认首页使用keep-alive缓存

    ruoyi-ui/src/router/index.js

    noCache: true                   // 如果设置为true,则不会被 <keep-alive> 缓存(默认 false)
    
    1

    # 自定义分页合理化传入参数

    ruoyi-common/src/main/java/com/ruoyi/common/utils/PageUtils.java

    Boolean reasonable = pageDomain.getReasonable();
    PageHelper.startPage(pageNum, pageSize, orderBy).setReasonable(reasonable);
    
    1
    2

    setReasonable属性为true

    当第二页只有一条数据,删除之后,他会自动跳为第一页。(否则出现的问题是:页码是第一页但是没有数据)

    当比如说手机端时,下拉下拉他找不到数据就找不到数据了。不需要跳转到上一页。那么可以单独在查询后端的列表传入参数

     // 查询参数
      queryParams: {
        reasonable:false,
        pageNum: 1,
        pageSize: 10,
        name: null,
        classes: null,
        school: null,
        num: null,
        email: null
      },
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

    # 优化异常处理信息

    全局异常处理器
    ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java
    
    1
    2

    # 提取通用方法到基类控制器

    ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java

    # 优化XSS跨站脚本过滤

    ruoyi-framework/src/main/java/com/ruoyi/framework/config/FilterConfig.java

    Xss过滤器:ruoyi-common/src/main/java/com/ruoyi/common/filter/XssFilter.java

    # 验证码默认20s超时

    ruoyi-ui/src/api/login.js

    timeout 目前设置20s

    // 获取验证码
    export function getCodeImg() {
      return request({
        url: '/captchaImage',
        headers: {
          isToken: false
        },
        method: 'get',
        timeout: 20000
      })
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

    # 修复代码生成页面数据编辑保存之后总是跳转第一页的问题

    主要就是编辑的时候把pageNum参数传递过去,再传递回来

    上次更新: 2025/04/03, 11:07:08
    限流控制详解
    v3.8.0版本更新介绍

    ← 限流控制详解 v3.8.0版本更新介绍→

    最近更新
    01
    tailwindcss
    03-26
    02
    PaddleSpeech
    02-18
    03
    whisper
    02-18
    更多文章>
    Theme by Vdoing | Copyright © 2019-2025 跨境互联网 | 豫ICP备14016603号-5 | 豫公网安备41090002410995号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式