Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
mayuanfei 2023-01-18 13:48:32 +08:00
commit 70600dcc48
35 changed files with 103 additions and 74 deletions

View File

@ -2,7 +2,7 @@
<configuration default="false" name="ruoyi-monitor-admin" type="docker-deploy" factoryName="dockerfile" server-name="Docker">
<deployment type="dockerfile">
<settings>
<option name="imageTag" value="ruoyi/ruoyi-monitor-admin:4.4.0" />
<option name="imageTag" value="ruoyi/ruoyi-monitor-admin:4.5.0" />
<option name="buildOnly" value="true" />
<option name="sourceFilePath" value="ruoyi-extend/ruoyi-monitor-admin/Dockerfile" />
</settings>

View File

@ -2,7 +2,7 @@
<configuration default="false" name="ruoyi-server" type="docker-deploy" factoryName="dockerfile" server-name="Docker">
<deployment type="dockerfile">
<settings>
<option name="imageTag" value="ruoyi/ruoyi-server:4.4.0" />
<option name="imageTag" value="ruoyi/ruoyi-server:4.5.0" />
<option name="buildOnly" value="true" />
<option name="sourceFilePath" value="ruoyi-admin/Dockerfile" />
</settings>

View File

@ -2,7 +2,7 @@
<configuration default="false" name="ruoyi-xxl-job-admin" type="docker-deploy" factoryName="dockerfile" server-name="Docker">
<deployment type="dockerfile">
<settings>
<option name="imageTag" value="ruoyi/ruoyi-xxl-job-admin:4.4.0" />
<option name="imageTag" value="ruoyi/ruoyi-xxl-job-admin:4.5.0" />
<option name="buildOnly" value="true" />
<option name="sourceFilePath" value="ruoyi-extend/ruoyi-xxl-job-admin/Dockerfile" />
</settings>

View File

@ -4,7 +4,7 @@
[![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/blob/master/LICENSE)
[![使用IntelliJ IDEA开发维护](https://img.shields.io/badge/IntelliJ%20IDEA-提供支持-blue.svg)](https://www.jetbrains.com/?from=RuoYi-Vue-Plus)
<br>
[![RuoYi-Vue-Plus](https://img.shields.io/badge/RuoYi_Vue_Plus-4.4.0-success.svg)](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus)
[![RuoYi-Vue-Plus](https://img.shields.io/badge/RuoYi_Vue_Plus-4.5.0-success.svg)](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus)
[![Spring Boot](https://img.shields.io/badge/Spring%20Boot-2.7-blue.svg)]()
[![JDK-8+](https://img.shields.io/badge/JDK-8-green.svg)]()
[![JDK-11](https://img.shields.io/badge/JDK-11-green.svg)]()

24
pom.xml
View File

@ -6,14 +6,14 @@
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-vue-plus</artifactId>
<version>4.4.0</version>
<version>4.5.0</version>
<name>RuoYi-Vue-Plus</name>
<url>https://gitee.com/JavaLionLi/RuoYi-Vue-Plus</url>
<description>RuoYi-Vue-Plus后台管理系统</description>
<properties>
<ruoyi-vue-plus.version>4.4.0</ruoyi-vue-plus.version>
<ruoyi-vue-plus.version>4.5.0</ruoyi-vue-plus.version>
<spring-boot.version>2.7.7</spring-boot.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
@ -22,15 +22,15 @@
<spring-boot.mybatis>2.2.2</spring-boot.mybatis>
<springdoc.version>1.6.14</springdoc.version>
<poi.version>5.2.3</poi.version>
<easyexcel.version>3.1.4</easyexcel.version>
<easyexcel.version>3.1.5</easyexcel.version>
<velocity.version>2.3</velocity.version>
<satoken.version>1.33.0</satoken.version>
<satoken.version>1.34.0</satoken.version>
<mybatis-plus.version>3.5.3.1</mybatis-plus.version>
<p6spy.version>3.9.1</p6spy.version>
<hutool.version>5.8.11</hutool.version>
<okhttp.version>4.10.0</okhttp.version>
<spring-boot-admin.version>2.7.9</spring-boot-admin.version>
<redisson.version>3.19.0</redisson.version>
<spring-boot-admin.version>2.7.10</spring-boot-admin.version>
<redisson.version>3.19.1</redisson.version>
<lock4j.version>2.2.3</lock4j.version>
<dynamic-ds.version>3.5.2</dynamic-ds.version>
<alibaba-ttl.version>2.14.2</alibaba-ttl.version>
@ -226,7 +226,19 @@
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-boot-starter</artifactId>
<version>${redisson.version}</version>
<exclusions>
<exclusion>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-data-30</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-data-27</artifactId>
<version>${redisson.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>lock4j-redisson-spring-boot-starter</artifactId>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>ruoyi-vue-plus</artifactId>
<groupId>com.ruoyi</groupId>
<version>4.4.0</version>
<version>4.5.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>

View File

@ -132,10 +132,6 @@ security:
- /favicon.ico
- /*/api-docs
- /*/api-docs/**
- /swagger-ui/**
- /webjars/**
- /swagger-ui.html
- /doc.html
# actuator 监控配置
- /actuator
- /actuator/**

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>ruoyi-vue-plus</artifactId>
<groupId>com.ruoyi</groupId>
<version>4.4.0</version>
<version>4.5.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@ -143,6 +143,11 @@
<artifactId>redisson-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-data-27</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>lock4j-redisson-spring-boot-starter</artifactId>

View File

@ -34,7 +34,7 @@ public class SysDept extends TreeEntity<SysDept> {
* 部门名称
*/
@NotBlank(message = "部门名称不能为空")
@Size(min = 0, max = 30, message = "部门名称长度不能超过30个字符")
@Size(min = 0, max = 30, message = "部门名称长度不能超过{max}个字符")
private String deptName;
/**
@ -51,14 +51,14 @@ public class SysDept extends TreeEntity<SysDept> {
/**
* 联系电话
*/
@Size(min = 0, max = 11, message = "联系电话长度不能超过11个字符")
@Size(min = 0, max = 11, message = "联系电话长度不能超过{max}个字符")
private String phone;
/**
* 邮箱
*/
@Email(message = "邮箱格式不正确")
@Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符")
@Size(min = 0, max = 50, message = "邮箱长度不能超过{max}个字符")
private String email;
/**

View File

@ -44,7 +44,7 @@ public class SysDictData extends BaseEntity {
*/
@ExcelProperty(value = "字典标签")
@NotBlank(message = "字典标签不能为空")
@Size(min = 0, max = 100, message = "字典标签长度不能超过100个字符")
@Size(min = 0, max = 100, message = "字典标签长度不能超过{max}个字符")
private String dictLabel;
/**
@ -52,7 +52,7 @@ public class SysDictData extends BaseEntity {
*/
@ExcelProperty(value = "字典键值")
@NotBlank(message = "字典键值不能为空")
@Size(min = 0, max = 100, message = "字典键值长度不能超过100个字符")
@Size(min = 0, max = 100, message = "字典键值长度不能超过{max}个字符")
private String dictValue;
/**
@ -60,13 +60,13 @@ public class SysDictData extends BaseEntity {
*/
@ExcelProperty(value = "字典类型")
@NotBlank(message = "字典类型不能为空")
@Size(min = 0, max = 100, message = "字典类型长度不能超过100个字符")
@Size(min = 0, max = 100, message = "字典类型长度不能超过{max}个字符")
private String dictType;
/**
* 样式属性其他样式扩展
*/
@Size(min = 0, max = 100, message = "样式属性长度不能超过100个字符")
@Size(min = 0, max = 100, message = "样式属性长度不能超过{max}个字符")
private String cssClass;
/**

View File

@ -38,7 +38,7 @@ public class SysDictType extends BaseEntity {
*/
@ExcelProperty(value = "字典名称")
@NotBlank(message = "字典名称不能为空")
@Size(min = 0, max = 100, message = "字典类型名称长度不能超过100个字符")
@Size(min = 0, max = 100, message = "字典类型名称长度不能超过{max}个字符")
private String dictName;
/**
@ -46,7 +46,7 @@ public class SysDictType extends BaseEntity {
*/
@ExcelProperty(value = "字典类型")
@NotBlank(message = "字典类型不能为空")
@Size(min = 0, max = 100, message = "字典类型类型长度不能超过100个字符")
@Size(min = 0, max = 100, message = "字典类型类型长度不能超过{max}个字符")
@Pattern(regexp = "^[a-z][a-z0-9_]*$", message = "字典类型必须以字母开头,且只能为(小写字母,数字,下滑线)")
private String dictType;

View File

@ -32,7 +32,7 @@ public class SysMenu extends TreeEntity<SysMenu> {
* 菜单名称
*/
@NotBlank(message = "菜单名称不能为空")
@Size(min = 0, max = 50, message = "菜单名称长度不能超过50个字符")
@Size(min = 0, max = 50, message = "菜单名称长度不能超过{max}个字符")
private String menuName;
/**
@ -44,13 +44,13 @@ public class SysMenu extends TreeEntity<SysMenu> {
/**
* 路由地址
*/
@Size(min = 0, max = 200, message = "路由地址不能超过200个字符")
@Size(min = 0, max = 200, message = "路由地址不能超过{max}个字符")
private String path;
/**
* 组件路径
*/
@Size(min = 0, max = 200, message = "组件路径不能超过255个字符")
@Size(min = 0, max = 200, message = "组件路径不能超过{max}个字符")
private String component;
/**
@ -88,7 +88,7 @@ public class SysMenu extends TreeEntity<SysMenu> {
* 权限字符串
*/
@JsonInclude(JsonInclude.Include.NON_NULL)
@Size(min = 0, max = 100, message = "权限标识长度不能超过100个字符")
@Size(min = 0, max = 100, message = "权限标识长度不能超过{max}个字符")
private String perms;
/**

View File

@ -44,7 +44,7 @@ public class SysRole extends BaseEntity {
*/
@ExcelProperty(value = "角色名称")
@NotBlank(message = "角色名称不能为空")
@Size(min = 0, max = 30, message = "角色名称长度不能超过30个字符")
@Size(min = 0, max = 30, message = "角色名称长度不能超过{max}个字符")
private String roleName;
/**
@ -52,7 +52,7 @@ public class SysRole extends BaseEntity {
*/
@ExcelProperty(value = "角色权限")
@NotBlank(message = "权限字符不能为空")
@Size(min = 0, max = 100, message = "权限字符长度不能超过100个字符")
@Size(min = 0, max = 100, message = "权限字符长度不能超过{max}个字符")
private String roleKey;
/**

View File

@ -44,14 +44,14 @@ public class SysUser extends BaseEntity {
*/
@Xss(message = "用户账号不能包含脚本字符")
@NotBlank(message = "用户账号不能为空")
@Size(min = 0, max = 30, message = "用户账号长度不能超过30个字符")
@Size(min = 0, max = 30, message = "用户账号长度不能超过{max}个字符")
private String userName;
/**
* 用户昵称
*/
@Xss(message = "用户昵称不能包含脚本字符")
@Size(min = 0, max = 30, message = "用户昵称长度不能超过30个字符")
@Size(min = 0, max = 30, message = "用户昵称长度不能超过{max}个字符")
private String nickName;
/**
@ -64,7 +64,7 @@ public class SysUser extends BaseEntity {
*/
@Sensitive(strategy = SensitiveStrategy.EMAIL)
@Email(message = "邮箱格式不正确")
@Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符")
@Size(min = 0, max = 50, message = "邮箱长度不能超过{max}个字符")
private String email;
/**

View File

@ -12,6 +12,7 @@ import org.springframework.cglib.beans.BeanCopier;
import org.springframework.cglib.beans.BeanMap;
import org.springframework.cglib.core.Converter;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@ -135,6 +136,25 @@ public class BeanCopyUtils {
return bean;
}
/**
* map拷贝到map
*
* @param map 数据来源
* @param clazz 返回的对象类型
* @return map对象
*/
public static <T, V> Map<String, V> mapToMap(Map<String, T> map, Class<V> clazz) {
if (MapUtil.isEmpty(map)) {
return null;
}
if (ObjectUtil.isNull(clazz)) {
return null;
}
Map<String, V> copyMap = new LinkedHashMap<>(map.size());
map.forEach((k, v) -> copyMap.put(k, copy(v, clazz)));
return copyMap;
}
/**
* BeanCopier属性缓存<br>
* 缓存用于防止多次反射造成的性能问题

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>ruoyi-vue-plus</artifactId>
<groupId>com.ruoyi</groupId>
<version>4.4.0</version>
<version>4.5.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>ruoyi-vue-plus</artifactId>
<groupId>com.ruoyi</groupId>
<version>4.4.0</version>
<version>4.5.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>ruoyi-extend</artifactId>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>ruoyi-extend</artifactId>
<groupId>com.ruoyi</groupId>
<version>4.4.0</version>
<version>4.5.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>

View File

@ -4,7 +4,7 @@
<parent>
<artifactId>ruoyi-extend</artifactId>
<groupId>com.ruoyi</groupId>
<version>4.4.0</version>
<version>4.5.0</version>
</parent>
<artifactId>ruoyi-xxl-job-admin</artifactId>
<packaging>jar</packaging>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>ruoyi-vue-plus</artifactId>
<groupId>com.ruoyi</groupId>
<version>4.4.0</version>
<version>4.5.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>ruoyi-vue-plus</artifactId>
<groupId>com.ruoyi</groupId>
<version>4.4.0</version>
<version>4.5.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>ruoyi-vue-plus</artifactId>
<groupId>com.ruoyi</groupId>
<version>4.4.0</version>
<version>4.5.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>ruoyi-vue-plus</artifactId>
<groupId>com.ruoyi</groupId>
<version>4.4.0</version>
<version>4.5.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>ruoyi-vue-plus</artifactId>
<groupId>com.ruoyi</groupId>
<version>4.4.0</version>
<version>4.5.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>ruoyi-vue-plus</artifactId>
<groupId>com.ruoyi</groupId>
<version>4.4.0</version>
<version>4.5.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -37,7 +37,7 @@ public class SysConfig extends BaseEntity {
*/
@ExcelProperty(value = "参数名称")
@NotBlank(message = "参数名称不能为空")
@Size(min = 0, max = 100, message = "参数名称不能超过100个字符")
@Size(min = 0, max = 100, message = "参数名称不能超过{max}个字符")
private String configName;
/**
@ -45,7 +45,7 @@ public class SysConfig extends BaseEntity {
*/
@ExcelProperty(value = "参数键名")
@NotBlank(message = "参数键名长度不能为空")
@Size(min = 0, max = 100, message = "参数键名长度不能超过100个字符")
@Size(min = 0, max = 100, message = "参数键名长度不能超过{max}个字符")
private String configKey;
/**
@ -53,7 +53,7 @@ public class SysConfig extends BaseEntity {
*/
@ExcelProperty(value = "参数键值")
@NotBlank(message = "参数键值不能为空")
@Size(min = 0, max = 500, message = "参数键值长度不能超过500个字符")
@Size(min = 0, max = 500, message = "参数键值长度不能超过{max}个字符")
private String configValue;
/**

View File

@ -32,7 +32,7 @@ public class SysNotice extends BaseEntity {
*/
@Xss(message = "公告标题不能包含脚本字符")
@NotBlank(message = "公告标题不能为空")
@Size(min = 0, max = 50, message = "公告标题不能超过50个字符")
@Size(min = 0, max = 50, message = "公告标题不能超过{max}个字符")
private String noticeTitle;
/**

View File

@ -68,7 +68,7 @@ public class SysOssConfig extends BaseEntity {
private String region;
/**
* 状态(0正常 1停用)
* 是否默认0=,1=
*/
private String status;

View File

@ -39,7 +39,7 @@ public class SysPost extends BaseEntity {
*/
@ExcelProperty(value = "岗位编码")
@NotBlank(message = "岗位编码不能为空")
@Size(min = 0, max = 64, message = "岗位编码长度不能超过64个字符")
@Size(min = 0, max = 64, message = "岗位编码长度不能超过{max}个字符")
private String postCode;
/**
@ -47,7 +47,7 @@ public class SysPost extends BaseEntity {
*/
@ExcelProperty(value = "岗位名称")
@NotBlank(message = "岗位名称不能为空")
@Size(min = 0, max = 50, message = "岗位名称长度不能超过50个字符")
@Size(min = 0, max = 50, message = "岗位名称长度不能超过{max}个字符")
private String postName;
/**

View File

@ -32,28 +32,28 @@ public class SysOssConfigBo extends BaseEntity {
* 配置key
*/
@NotBlank(message = "配置key不能为空", groups = {AddGroup.class, EditGroup.class})
@Size(min = 2, max = 100, message = "configKey长度必须介于2和20 之间")
@Size(min = 2, max = 100, message = "configKey长度必须介于{min}和{max} 之间")
private String configKey;
/**
* accessKey
*/
@NotBlank(message = "accessKey不能为空", groups = {AddGroup.class, EditGroup.class})
@Size(min = 2, max = 100, message = "accessKey长度必须介于2和100 之间")
@Size(min = 2, max = 100, message = "accessKey长度必须介于{min}和{max} 之间")
private String accessKey;
/**
* 秘钥
*/
@NotBlank(message = "secretKey不能为空", groups = {AddGroup.class, EditGroup.class})
@Size(min = 2, max = 100, message = "secretKey长度必须介于2和100 之间")
@Size(min = 2, max = 100, message = "secretKey长度必须介于{min}和{max} 之间")
private String secretKey;
/**
* 桶名称
*/
@NotBlank(message = "桶名称不能为空", groups = {AddGroup.class, EditGroup.class})
@Size(min = 2, max = 100, message = "bucketName长度必须介于2和100之间")
@Size(min = 2, max = 100, message = "bucketName长度必须介于{min}和{max}之间")
private String bucketName;
/**
@ -65,7 +65,7 @@ public class SysOssConfigBo extends BaseEntity {
* 访问站点
*/
@NotBlank(message = "访问站点不能为空", groups = {AddGroup.class, EditGroup.class})
@Size(min = 2, max = 100, message = "endpoint长度必须介于2和100之间")
@Size(min = 2, max = 100, message = "endpoint长度必须介于{min}和{max}之间")
private String endpoint;
/**
@ -79,7 +79,7 @@ public class SysOssConfigBo extends BaseEntity {
private String isHttps;
/**
* 状态0=正常,1=停用
* 是否默认0=,1=
*/
private String status;

View File

@ -68,7 +68,7 @@ public class SysOssConfigVo {
private String region;
/**
* 状态0=正常,1=停用
* 是否默认0=,1=
*/
private String status;

View File

@ -1,6 +1,6 @@
{
"name": "ruoyi-vue-plus",
"version": "4.4.0",
"version": "4.5.0",
"description": "RuoYi-Vue-Plus后台管理系统",
"author": "LionLi",
"license": "MIT",

View File

@ -114,7 +114,7 @@ export default {
data() {
return {
//
version: "4.4.0",
version: "4.5.0",
};
},
methods: {

View File

@ -19,14 +19,10 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-form-item label="是否默认" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择状态" clearable size="small">
<el-option
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
<el-option key="0" label="是" value="0"/>
<el-option key="1" label="否" value="1"/>
</el-select>
</el-form-item>
<el-form-item>
@ -87,7 +83,7 @@
<el-tag type="info" v-if="scope.row.accessPolicy === '2'">custom</el-tag>
</template>
</el-table-column>
<el-table-column label="状态" align="center" prop="status">
<el-table-column label="是否默认" align="center" prop="status">
<template slot-scope="scope">
<el-switch
v-model="scope.row.status"
@ -193,7 +189,7 @@ import {
export default {
name: "OssConfig",
dicts: ['sys_yes_no', 'sys_normal_disable'],
dicts: ['sys_yes_no'],
data() {
return {
// loading

View File

@ -100,7 +100,7 @@ services:
network_mode: "host"
ruoyi-server1:
image: ruoyi/ruoyi-server:4.4.0
image: ruoyi/ruoyi-server:4.5.0
container_name: ruoyi-server1
environment:
# 时区上海
@ -115,7 +115,7 @@ services:
network_mode: "host"
ruoyi-server2:
image: "ruoyi/ruoyi-server:4.4.0"
image: "ruoyi/ruoyi-server:4.5.0"
container_name: ruoyi-server2
environment:
# 时区上海
@ -130,7 +130,7 @@ services:
network_mode: "host"
ruoyi-monitor-admin:
image: ruoyi/ruoyi-monitor-admin:4.4.0
image: ruoyi/ruoyi-monitor-admin:4.5.0
container_name: ruoyi-monitor-admin
environment:
# 时区上海
@ -142,7 +142,7 @@ services:
network_mode: "host"
ruoyi-xxl-job-admin:
image: ruoyi/ruoyi-xxl-job-admin:4.4.0
image: ruoyi/ruoyi-xxl-job-admin:4.5.0
container_name: ruoyi-xxl-job-admin
environment:
# 时区上海