From 83905db7170ea5981949e0f4b56695fb4ee02c83 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期二, 13 七月 2021 13:50:21 +0800 Subject: [PATCH] !69 同步dev分支 Merge pull request !69 from 疯狂的狮子Li/dev --- ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/CaptchaProperties.java | 5 - ruoyi-ui/src/components/Editor/index.vue | 16 +- ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MetaVo.java | 4 ruoyi-ui/src/views/index.vue | 12 ++ pom.xml | 4 ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java | 36 ++++-- ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java | 7 + docker/docker-compose.yml | 8 + ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java | 47 ++++++--- ruoyi-quartz/pom.xml | 2 ruoyi-ui/package.json | 2 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java | 4 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java | 13 ++ ruoyi-extend/ruoyi-monitor-admin/pom.xml | 2 ruoyi-framework/pom.xml | 2 ruoyi-admin/pom.xml | 2 ruoyi-system/pom.xml | 2 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java | 6 ruoyi-generator/src/main/resources/vm/vue/index.vue.vm | 6 ruoyi-ui/src/components/ImageUpload/index.vue | 2 ruoyi-admin/Dockerfile | 1 ruoyi-generator/pom.xml | 2 ruoyi-admin/src/main/resources/application.yml | 2 ruoyi-common/pom.xml | 2 README.md | 2 ruoyi-ui/src/views/login.vue | 14 +- /dev/null | 28 ----- ruoyi-extend/pom.xml | 2 ruoyi-demo/pom.xml | 2 ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm | 6 ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java | 12 + sql/ry_20210713.sql | 7 32 files changed, 146 insertions(+), 116 deletions(-) diff --git a/README.md b/README.md index a56dc6c..6fb00c1 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ [](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/blob/master/LICENSE) [ <br> -[](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus) +[](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus) []() []() []() diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index d40ae29..63c46a4 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -76,12 +76,13 @@ ipv4_address: 172.30.0.48 ruoyi-server1: - image: "ruoyi/ruoyi-server:2.5.0" + image: "ruoyi/ruoyi-server:2.5.1" environment: - TZ=Asia/Shanghai volumes: # 閰嶇疆鏂囦欢 - /docker/server1/logs/:/ruoyi/server/logs/ + - /docker/ruoyi/uploadPath/:/ruoyi/server/ruoyi/uploadPath/ privileged: true restart: always networks: @@ -89,12 +90,13 @@ ipv4_address: 172.30.0.60 ruoyi-server2: - image: "ruoyi/ruoyi-server:2.5.0" + image: "ruoyi/ruoyi-server:2.5.1" environment: - TZ=Asia/Shanghai volumes: # 閰嶇疆鏂囦欢 - /docker/server2/logs/:/ruoyi/server/logs/ + - /docker/ruoyi/uploadPath/:/ruoyi/server/ruoyi/uploadPath/ privileged: true restart: always networks: @@ -102,7 +104,7 @@ ipv4_address: 172.30.0.61 ruoyi-monitor-admin: - image: "ruoyi/ruoyi-monitor-admin:2.5.0" + image: "ruoyi/ruoyi-monitor-admin:2.5.1" environment: - TZ=Asia/Shanghai privileged: true diff --git a/pom.xml b/pom.xml index d56898b..00becec 100644 --- a/pom.xml +++ b/pom.xml @@ -6,14 +6,14 @@ <groupId>com.ruoyi</groupId> <artifactId>ruoyi-vue-plus</artifactId> - <version>2.5.0</version> + <version>2.5.1</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>2.5.0</ruoyi-vue-plus.version> + <ruoyi-vue-plus.version>2.5.1</ruoyi-vue-plus.version> <spring-boot.version>2.4.8</spring-boot.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> diff --git a/ruoyi-admin/Dockerfile b/ruoyi-admin/Dockerfile index 88f4932..dc484c5 100644 --- a/ruoyi-admin/Dockerfile +++ b/ruoyi-admin/Dockerfile @@ -4,6 +4,7 @@ RUN mkdir -p /ruoyi/server RUN mkdir -p /ruoyi/server/logs +RUN mkdir -p /ruoyi/server/ruoyi/uploadPath WORKDIR /ruoyi/server diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml index 7450213..7ff67be 100644 --- a/ruoyi-admin/pom.xml +++ b/ruoyi-admin/pom.xml @@ -5,7 +5,7 @@ <parent> <artifactId>ruoyi-vue-plus</artifactId> <groupId>com.ruoyi</groupId> - <version>2.5.0</version> + <version>2.5.1</version> </parent> <modelVersion>4.0.0</modelVersion> <packaging>jar</packaging> diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java index 2f303ba..4654516 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java @@ -14,6 +14,7 @@ import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.framework.captcha.UnsignedMathGenerator; import com.ruoyi.framework.config.properties.CaptchaProperties; +import com.ruoyi.system.service.ISysConfigService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @@ -26,7 +27,7 @@ /** * 楠岃瘉鐮佹搷浣滃鐞� * - * @author Lion Li + * @author ruoyi */ @RestController public class CaptchaController { @@ -47,15 +48,18 @@ @Autowired private CaptchaProperties captchaProperties; + @Autowired + private ISysConfigService configService; + /** * 鐢熸垚楠岃瘉鐮� */ @GetMapping("/captchaImage") public AjaxResult getCode() { Map<String, Object> ajax = new HashMap<>(); - Boolean enabled = captchaProperties.getEnabled(); - ajax.put("enabled", enabled); - if (!enabled) { + boolean captchaOnOff = configService.selectCaptchaOnOff(); + ajax.put("captchaOnOff", captchaOnOff); + if (!captchaOnOff) { return AjaxResult.success(ajax); } // 淇濆瓨楠岃瘉鐮佷俊鎭� diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java index f418541..246abf4 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java @@ -1,5 +1,6 @@ package com.ruoyi.web.controller.system; +import cn.hutool.core.lang.Validator; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.controller.BaseController; @@ -9,7 +10,6 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.ServletUtils; -import com.ruoyi.common.utils.StringUtils; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.service.ISysMenuService; import org.springframework.beans.factory.annotation.Autowired; @@ -97,7 +97,7 @@ { return AjaxResult.error("鏂板鑿滃崟'" + menu.getMenuName() + "'澶辫触锛岃彍鍗曞悕绉板凡瀛樺湪"); } - else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())) + else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !Validator.isUrl(menu.getPath())) { return AjaxResult.error("鏂板鑿滃崟'" + menu.getMenuName() + "'澶辫触锛屽湴鍧�蹇呴』浠ttp(s)://寮�澶�"); } @@ -117,7 +117,7 @@ { return AjaxResult.error("淇敼鑿滃崟'" + menu.getMenuName() + "'澶辫触锛岃彍鍗曞悕绉板凡瀛樺湪"); } - else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())) + else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !Validator.isUrl(menu.getPath())) { return AjaxResult.error("淇敼鑿滃崟'" + menu.getMenuName() + "'澶辫触锛屽湴鍧�蹇呴』浠ttp(s)://寮�澶�"); } diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index b88929d..4a52958 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -14,8 +14,6 @@ addressEnabled: true captcha: - # 楠岃瘉鐮佸紑鍏� - enabled: true # 楠岃瘉鐮佺被鍨� math 鏁扮粍璁$畻 char 瀛楃楠岃瘉 type: math # line 绾挎骞叉壈 circle 鍦嗗湀骞叉壈 shear 鎵洸骞叉壈 diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml index 28af304..1c2eb3c 100644 --- a/ruoyi-common/pom.xml +++ b/ruoyi-common/pom.xml @@ -5,7 +5,7 @@ <parent> <artifactId>ruoyi-vue-plus</artifactId> <groupId>com.ruoyi</groupId> - <version>2.5.0</version> + <version>2.5.1</version> </parent> <modelVersion>4.0.0</modelVersion> diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java deleted file mode 100644 index f3f29f4..0000000 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.ruoyi.common.utils; - -import cn.hutool.core.util.StrUtil; -import com.ruoyi.common.constant.Constants; - -/** - * 瀛楃涓插伐鍏风被 - * - * @author ruoyi - */ -public class StringUtils extends org.apache.commons.lang3.StringUtils { - /** 绌哄瓧绗︿覆 */ - private static final String NULLSTR = ""; - - /** 涓嬪垝绾� */ - private static final char SEPARATOR = '_'; - - /** - * 鏄惁涓篽ttp(s)://寮�澶� - * - * @param link 閾炬帴 - * @return 缁撴灉 - */ - public static boolean ishttp(String link) { - return StrUtil.startWithAny(link, Constants.HTTP, Constants.HTTPS); - } - -} diff --git a/ruoyi-demo/pom.xml b/ruoyi-demo/pom.xml index d3909a2..99d40dd 100644 --- a/ruoyi-demo/pom.xml +++ b/ruoyi-demo/pom.xml @@ -5,7 +5,7 @@ <parent> <artifactId>ruoyi-vue-plus</artifactId> <groupId>com.ruoyi</groupId> - <version>2.5.0</version> + <version>2.5.1</version> </parent> <modelVersion>4.0.0</modelVersion> diff --git a/ruoyi-extend/pom.xml b/ruoyi-extend/pom.xml index e71a426..dc04bc6 100644 --- a/ruoyi-extend/pom.xml +++ b/ruoyi-extend/pom.xml @@ -5,7 +5,7 @@ <parent> <artifactId>ruoyi-vue-plus</artifactId> <groupId>com.ruoyi</groupId> - <version>2.5.0</version> + <version>2.5.1</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>ruoyi-extend</artifactId> diff --git a/ruoyi-extend/ruoyi-monitor-admin/pom.xml b/ruoyi-extend/ruoyi-monitor-admin/pom.xml index e9d48d6..7c45549 100644 --- a/ruoyi-extend/ruoyi-monitor-admin/pom.xml +++ b/ruoyi-extend/ruoyi-monitor-admin/pom.xml @@ -5,7 +5,7 @@ <parent> <artifactId>ruoyi-extend</artifactId> <groupId>com.ruoyi</groupId> - <version>2.5.0</version> + <version>2.5.1</version> </parent> <modelVersion>4.0.0</modelVersion> <packaging>jar</packaging> diff --git a/ruoyi-framework/pom.xml b/ruoyi-framework/pom.xml index e7ed991..d3c2739 100644 --- a/ruoyi-framework/pom.xml +++ b/ruoyi-framework/pom.xml @@ -5,7 +5,7 @@ <parent> <artifactId>ruoyi-vue-plus</artifactId> <groupId>com.ruoyi</groupId> - <version>2.5.0</version> + <version>2.5.1</version> </parent> <modelVersion>4.0.0</modelVersion> diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/CaptchaProperties.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/CaptchaProperties.java index 86ac706..cf9ad8b 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/CaptchaProperties.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/CaptchaProperties.java @@ -15,11 +15,6 @@ public class CaptchaProperties { /** - * 楠岃瘉鐮佸紑鍏� - */ - private Boolean enabled; - - /** * 楠岃瘉鐮佺被鍨� */ private String type; diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java index d0b9511..239825f 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java @@ -11,7 +11,7 @@ import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.MessageUtils; import com.ruoyi.common.utils.ServletUtils; -import com.ruoyi.framework.config.properties.CaptchaProperties; +import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.service.ISysUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.authentication.AuthenticationManager; @@ -41,10 +41,10 @@ private RedisCache redisCache; @Autowired - private CaptchaProperties captchaProperties; + private ISysUserService userService; @Autowired - private ISysUserService userService; + private ISysConfigService configService; @Autowired private AsyncService asyncService; @@ -61,19 +61,12 @@ public String login(String username, String password, String code, String uuid) { HttpServletRequest request = ServletUtils.getRequest(); - if(captchaProperties.getEnabled()) { - String verifyKey = Constants.CAPTCHA_CODE_KEY + uuid; - String captcha = redisCache.getCacheObject(verifyKey); - redisCache.deleteObject(verifyKey); - if (captcha == null) { - asyncService.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire"), request); - throw new CaptchaExpireException(); - } - if (!code.equalsIgnoreCase(captcha)) { - asyncService.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.error"), request); - throw new CaptchaException(); - } - } + boolean captchaOnOff = configService.selectCaptchaOnOff(); + // 楠岃瘉鐮佸紑鍏� + if (captchaOnOff) + { + validateCapcha(username, code, uuid, request); + } // 鐢ㄦ埛楠岃瘉 Authentication authentication = null; try @@ -103,6 +96,28 @@ } /** + * 鏍¢獙楠岃瘉鐮� + * + * @param username 鐢ㄦ埛鍚� + * @param code 楠岃瘉鐮� + * @param uuid 鍞竴鏍囪瘑 + * @return 缁撴灉 + */ + public void validateCapcha(String username, String code, String uuid, HttpServletRequest request) { + String verifyKey = Constants.CAPTCHA_CODE_KEY + uuid; + String captcha = redisCache.getCacheObject(verifyKey); + redisCache.deleteObject(verifyKey); + if (captcha == null) { + asyncService.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire"), request); + throw new CaptchaExpireException(); + } + if (!code.equalsIgnoreCase(captcha)) { + asyncService.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.error"), request); + throw new CaptchaException(); + } + } + + /** * 璁板綍鐧诲綍淇℃伅 */ public void recordLoginInfo(SysUser user) diff --git a/ruoyi-generator/pom.xml b/ruoyi-generator/pom.xml index 642dfec..693a8dc 100644 --- a/ruoyi-generator/pom.xml +++ b/ruoyi-generator/pom.xml @@ -5,7 +5,7 @@ <parent> <artifactId>ruoyi-vue-plus</artifactId> <groupId>com.ruoyi</groupId> - <version>2.5.0</version> + <version>2.5.1</version> </parent> <modelVersion>4.0.0</modelVersion> diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java index 5fcdd3b..1778910 100644 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java @@ -35,10 +35,7 @@ import java.io.File; import java.io.IOException; import java.io.StringWriter; -import java.util.Arrays; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -137,14 +134,17 @@ for (GenTableColumn cenTableColumn : genTable.getColumns()) { genTableColumnMapper.update(cenTableColumn, new LambdaUpdateWrapper<GenTableColumn>() - .set(cenTableColumn.getIsPk() == null, GenTableColumn::getIsPk, null) - .set(cenTableColumn.getIsIncrement() == null, GenTableColumn::getIsIncrement, null) - .set(cenTableColumn.getIsInsert() == null, GenTableColumn::getIsInsert, null) - .set(cenTableColumn.getIsEdit() == null, GenTableColumn::getIsEdit, null) - .set(cenTableColumn.getIsList() == null, GenTableColumn::getIsList, null) - .set(cenTableColumn.getIsQuery() == null, GenTableColumn::getIsQuery, null) - .set(cenTableColumn.getIsRequired() == null, GenTableColumn::getIsRequired, null) - .eq(GenTableColumn::getColumnId,cenTableColumn.getColumnId())); + .set(StrUtil.isBlank(cenTableColumn.getColumnComment()), GenTableColumn::getColumnComment, null) + .set(StrUtil.isBlank(cenTableColumn.getIsPk()), GenTableColumn::getIsPk, null) + .set(StrUtil.isBlank(cenTableColumn.getIsIncrement()), GenTableColumn::getIsIncrement, null) + .set(StrUtil.isBlank(cenTableColumn.getIsInsert()), GenTableColumn::getIsInsert, null) + .set(StrUtil.isBlank(cenTableColumn.getIsEdit()), GenTableColumn::getIsEdit, null) + .set(StrUtil.isBlank(cenTableColumn.getIsList()), GenTableColumn::getIsList, null) + .set(StrUtil.isBlank(cenTableColumn.getIsQuery()), GenTableColumn::getIsQuery, null) + .set(StrUtil.isBlank(cenTableColumn.getIsRequired()), GenTableColumn::getIsRequired, null) + .set(StrUtil.isBlank(cenTableColumn.getQueryType()), GenTableColumn::getQueryType, null) + .set(StrUtil.isBlank(cenTableColumn.getDictType()), GenTableColumn::getDictType, null) + .eq(GenTableColumn::getColumnId,cenTableColumn.getColumnId())); } } } @@ -180,10 +180,14 @@ if (row > 0) { // 淇濆瓨鍒椾俊鎭� List<GenTableColumn> genTableColumns = genTableColumnMapper.selectDbTableColumnsByName(tableName); + List<GenTableColumn> saveColumns = new ArrayList<>(); for (GenTableColumn column : genTableColumns) { GenUtils.initColumnField(column, table); + saveColumns.add(column); } - genTableColumnMapper.insertAll(genTableColumns); + if (CollUtil.isNotEmpty(saveColumns)) { + genTableColumnMapper.insertAll(saveColumns); + } } } } catch (Exception e) { @@ -287,12 +291,16 @@ } List<String> dbTableColumnNames = dbTableColumns.stream().map(GenTableColumn::getColumnName).collect(Collectors.toList()); + List<GenTableColumn> saveColumns = new ArrayList<>(); dbTableColumns.forEach(column -> { if (!tableColumnNames.contains(column.getColumnName())) { GenUtils.initColumnField(column, table); + saveColumns.add(column); } }); - genTableColumnMapper.insertAll(tableColumns); + if (CollUtil.isNotEmpty(saveColumns)) { + genTableColumnMapper.insertAll(saveColumns); + } List<GenTableColumn> delColumns = tableColumns.stream().filter(column -> !dbTableColumnNames.contains(column.getColumnName())).collect(Collectors.toList()); if (CollUtil.isNotEmpty(delColumns)) { diff --git a/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm b/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm index cedab30..30489e0 100644 --- a/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm +++ b/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm @@ -285,7 +285,7 @@ #else #set($comment=$column.columnComment) #end -#if(${column.dictType} != '') +#if(${column.dictType} && ${column.dictType} != '') // $comment瀛楀吀 ${column.javaField}Options: [], #elseif($column.htmlType == "datetime" && $column.queryType == "BETWEEN") @@ -327,7 +327,7 @@ created() { this.getList(); #foreach ($column in $columns) -#if(${column.dictType} != '') +#if(${column.dictType} && ${column.dictType} != '') this.getDicts("${column.dictType}").then(response => { this.${column.javaField}Options = response.data; }); @@ -379,7 +379,7 @@ }); }, #foreach ($column in $columns) -#if(${column.dictType} != '') +#if(${column.dictType} && ${column.dictType} != '') #set($parentheseIndex=$column.columnComment.indexOf("锛�")) #if($parentheseIndex != -1) #set($comment=$column.columnComment.substring(0, $parentheseIndex)) diff --git a/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm b/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm index 12a9a63..6667c1e 100644 --- a/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm +++ b/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm @@ -350,7 +350,7 @@ #else #set($comment=$column.columnComment) #end -#if(${column.dictType} != '') +#if(${column.dictType} && ${column.dictType} != '') // $comment瀛楀吀 ${column.javaField}Options: [], #elseif($column.htmlType == "datetime" && $column.queryType == "BETWEEN") @@ -394,7 +394,7 @@ created() { this.getList(); #foreach ($column in $columns) -#if(${column.dictType} != '') +#if(${column.dictType} && ${column.dictType} != '') this.getDicts("${column.dictType}").then(response => { this.${column.javaField}Options = response.data; }); @@ -427,7 +427,7 @@ }); }, #foreach ($column in $columns) -#if(${column.dictType} != '') +#if(${column.dictType} && ${column.dictType} != '') #set($parentheseIndex=$column.columnComment.indexOf("锛�")) #if($parentheseIndex != -1) #set($comment=$column.columnComment.substring(0, $parentheseIndex)) diff --git a/ruoyi-quartz/pom.xml b/ruoyi-quartz/pom.xml index 522a84e..8d74198 100644 --- a/ruoyi-quartz/pom.xml +++ b/ruoyi-quartz/pom.xml @@ -5,7 +5,7 @@ <parent> <artifactId>ruoyi-vue-plus</artifactId> <groupId>com.ruoyi</groupId> - <version>2.5.0</version> + <version>2.5.1</version> </parent> <modelVersion>4.0.0</modelVersion> diff --git a/ruoyi-system/pom.xml b/ruoyi-system/pom.xml index 85576db..3f99565 100644 --- a/ruoyi-system/pom.xml +++ b/ruoyi-system/pom.xml @@ -5,7 +5,7 @@ <parent> <artifactId>ruoyi-vue-plus</artifactId> <groupId>com.ruoyi</groupId> - <version>2.5.0</version> + <version>2.5.1</version> </parent> <modelVersion>4.0.0</modelVersion> diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MetaVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MetaVo.java index 495db54..dbe7a6e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MetaVo.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MetaVo.java @@ -1,6 +1,6 @@ package com.ruoyi.system.domain.vo; -import com.ruoyi.common.utils.StringUtils; +import cn.hutool.core.lang.Validator; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; @@ -56,7 +56,7 @@ this.title = title; this.icon = icon; this.noCache = noCache; - if (StringUtils.ishttp(link)) { + if (Validator.isUrl(link)) { this.link = link; } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java index 429559b..b649c7f 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java @@ -33,6 +33,13 @@ public String selectConfigByKey(String configKey); /** + * 鑾峰彇楠岃瘉鐮佸紑鍏� + * + * @return true寮�鍚紝false鍏抽棴 + */ + public boolean selectCaptchaOnOff(); + + /** * 鏌ヨ鍙傛暟閰嶇疆鍒楄〃 * * @param config 鍙傛暟閰嶇疆淇℃伅 diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java index dd7321a..41be807 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java @@ -94,6 +94,19 @@ } /** + * 鑾峰彇楠岃瘉鐮佸紑鍏� + * + * @return true寮�鍚紝false鍏抽棴 + */ + public boolean selectCaptchaOnOff() { + String captchaOnOff = selectConfigByKey("sys.account.captchaOnOff"); + if (StrUtil.isEmpty(captchaOnOff)) { + return true; + } + return Convert.toBool(captchaOnOff); + } + + /** * 鏌ヨ鍙傛暟閰嶇疆鍒楄〃 * * @param config 鍙傛暟閰嶇疆淇℃伅 diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java index f23e661..e1b4314 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java @@ -11,7 +11,6 @@ import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl; import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.domain.SysRoleMenu; import com.ruoyi.system.domain.vo.MetaVo; import com.ruoyi.system.domain.vo.RouterVo; @@ -19,6 +18,7 @@ import com.ruoyi.system.mapper.SysRoleMapper; import com.ruoyi.system.mapper.SysRoleMenuMapper; import com.ruoyi.system.service.ISysMenuService; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -371,7 +371,7 @@ * @return 缁撴灉 */ public boolean isInnerLink(SysMenu menu) { - return menu.getIsFrame().equals(UserConstants.NO_FRAME) && StringUtils.ishttp(menu.getPath()); + return menu.getIsFrame().equals(UserConstants.NO_FRAME) && Validator.isUrl(menu.getPath()); } /** diff --git a/ruoyi-ui/package.json b/ruoyi-ui/package.json index 648b172..bdd09f4 100644 --- a/ruoyi-ui/package.json +++ b/ruoyi-ui/package.json @@ -1,6 +1,6 @@ { "name": "ruoyi-vue-plus", - "version": "2.5.0", + "version": "2.5.1", "description": "RuoYi-Vue-Plus鍚庡彴绠$悊绯荤粺", "author": "LionLi", "license": "MIT", diff --git a/ruoyi-ui/src/components/Editor/index.vue b/ruoyi-ui/src/components/Editor/index.vue index 98b9fa7..f78dfcc 100644 --- a/ruoyi-ui/src/components/Editor/index.vue +++ b/ruoyi-ui/src/components/Editor/index.vue @@ -130,14 +130,14 @@ this.quill.format("image", false); } }); - toolbar.addHandler("video", (value) => { - this.uploadType = "video"; - if (value) { - this.$refs.upload.$children[0].$refs.input.click(); - } else { - this.quill.format("video", false); - } - }); + // toolbar.addHandler("video", (value) => { + // this.uploadType = "video"; + // if (value) { + // this.$refs.upload.$children[0].$refs.input.click(); + // } else { + // this.quill.format("video", false); + // } + // }); } this.Quill.pasteHTML(this.currentValue); this.Quill.on("text-change", (delta, oldDelta, source) => { diff --git a/ruoyi-ui/src/components/ImageUpload/index.vue b/ruoyi-ui/src/components/ImageUpload/index.vue index f2a7402..31940af 100644 --- a/ruoyi-ui/src/components/ImageUpload/index.vue +++ b/ruoyi-ui/src/components/ImageUpload/index.vue @@ -116,7 +116,7 @@ methods: { // 鍒犻櫎鍥剧墖 handleRemove(file, fileList) { - const findex = this.fileList.indexOf(file.name); + const findex = this.fileList.map(f => f.name).indexOf(file.name); this.fileList.splice(findex, 1); this.$emit("input", this.listToString(this.fileList)); }, diff --git a/ruoyi-ui/src/views/index.vue b/ruoyi-ui/src/views/index.vue index 671dcde..9f8e79f 100644 --- a/ruoyi-ui/src/views/index.vue +++ b/ruoyi-ui/src/views/index.vue @@ -91,6 +91,18 @@ <span>鏇存柊鏃ュ織</span> </div> <el-collapse accordion> + <el-collapse-item title="v2.5.1 - 2021-7-13"> + <ol> + <li>update 楠岃瘉鐮佸紑鍏� 杞Щ鍒拌〃 鍙傛暟绠$悊 鍐�</li> + <li>update 浣跨敤hutool閲嶆瀯 鍒ゆ柇鏄惁url</li> + <li>fix 淇 docker涓氬姟闆嗙兢閮ㄧ讲涓庢枃浠朵笂浼犵殑闂</li> + <li>fix 淇浠g爜鐢熸垚鍚屾琛ㄧ粨鏋刬d鍐茬獊闂</li> + <li>fix 淇浠g爜鐢熸垚閫夋嫨瀛楀吀 鏃犳硶鍙栨秷闂</li> + <li>fix 淇浠g爜鐢熸垚瀛楀吀涓簄ull闂</li> + <li>fix 鍥剧墖涓婁紶 澶氬浘鏃舵棤娉曞垹闄ょ浉搴斿浘鐗囦慨澶�</li> + <li>remove 鍒犻櫎瀵屾枃鏈瑅ideo浜嬩欢</li> + </ol> + </el-collapse-item> <el-collapse-item title="v2.5.0 - 2021-7-12"> <ol> <li>update springboot 2.4.7 => 2.4.8</li> diff --git a/ruoyi-ui/src/views/login.vue b/ruoyi-ui/src/views/login.vue index e8da56b..a87cb9d 100644 --- a/ruoyi-ui/src/views/login.vue +++ b/ruoyi-ui/src/views/login.vue @@ -18,7 +18,7 @@ <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" /> </el-input> </el-form-item> - <el-form-item prop="code" v-if="captchaEnabled"> + <el-form-item prop="code" v-if="captchaOnOff"> <el-input v-model="loginForm.code" auto-complete="off" @@ -81,8 +81,8 @@ code: [{ required: true, trigger: "change", message: "楠岃瘉鐮佷笉鑳戒负绌�" }] }, loading: false, - redirect: undefined, - captchaEnabled:false + captchaOnOff: true, + redirect: undefined }; }, watch: { @@ -100,8 +100,8 @@ methods: { getCode() { getCodeImg().then(res => { - this.captchaEnabled = res.data.enabled; - if(res.data.enabled){ + this.captchaOnOff = res.data.captchaOnOff === undefined ? true : res.data.captchaOnOff; + if (this.captchaOnOff) { this.codeUrl = "data:image/gif;base64," + res.data.img; this.loginForm.uuid = res.data.uuid; } @@ -134,7 +134,9 @@ this.$router.push({ path: this.redirect || "/" }).catch(()=>{}); }).catch(() => { this.loading = false; - this.getCode(); + if (this.captchaOnOff) { + this.getCode(); + } }); } }); diff --git a/sql/ry_20210210.sql b/sql/ry_20210713.sql similarity index 98% rename from sql/ry_20210210.sql rename to sql/ry_20210713.sql index 59a55f1..088960e 100644 --- a/sql/ry_20210210.sql +++ b/sql/ry_20210713.sql @@ -537,9 +537,10 @@ primary key (config_id) ) engine=innodb auto_increment=100 comment = '鍙傛暟閰嶇疆琛�'; -insert into sys_config values(1, '涓绘鏋堕〉-榛樿鐨偆鏍峰紡鍚嶇О', 'sys.index.skinName', 'skin-blue', 'Y', 'admin', sysdate(), '', null, '钃濊壊 skin-blue銆佺豢鑹� skin-green銆佺传鑹� skin-purple銆佺孩鑹� skin-red銆侀粍鑹� skin-yellow' ); -insert into sys_config values(2, '鐢ㄦ埛绠$悊-璐﹀彿鍒濆瀵嗙爜', 'sys.user.initPassword', '123456', 'Y', 'admin', sysdate(), '', null, '鍒濆鍖栧瘑鐮� 123456' ); -insert into sys_config values(3, '涓绘鏋堕〉-渚ц竟鏍忎富棰�', 'sys.index.sideTheme', 'theme-dark', 'Y', 'admin', sysdate(), '', null, '娣辫壊涓婚theme-dark锛屾祬鑹蹭富棰榯heme-light' ); +insert into sys_config values(1, '涓绘鏋堕〉-榛樿鐨偆鏍峰紡鍚嶇О', 'sys.index.skinName', 'skin-blue', 'Y', 'admin', sysdate(), '', null, '钃濊壊 skin-blue銆佺豢鑹� skin-green銆佺传鑹� skin-purple銆佺孩鑹� skin-red銆侀粍鑹� skin-yellow' ); +insert into sys_config values(2, '鐢ㄦ埛绠$悊-璐﹀彿鍒濆瀵嗙爜', 'sys.user.initPassword', '123456', 'Y', 'admin', sysdate(), '', null, '鍒濆鍖栧瘑鐮� 123456' ); +insert into sys_config values(3, '涓绘鏋堕〉-渚ц竟鏍忎富棰�', 'sys.index.sideTheme', 'theme-dark', 'Y', 'admin', sysdate(), '', null, '娣辫壊涓婚theme-dark锛屾祬鑹蹭富棰榯heme-light' ); +insert into sys_config values(4, '璐﹀彿鑷姪-楠岃瘉鐮佸紑鍏�', 'sys.account.captchaOnOff', 'true', 'Y', 'admin', sysdate(), '', null, '鏄惁寮�鍚櫥褰曢獙璇佺爜鍔熻兘锛坱rue寮�鍚紝false鍏抽棴锛�'); -- ---------------------------- -- Gitblit v1.9.3