From dd04aa4e7f4c83e884c9faa3c27efe074b5d37ba Mon Sep 17 00:00:00 2001
From: AprilWind <2100166581@qq.com>
Date: Thu, 11 Apr 2024 18:14:06 +0800
Subject: [PATCH 1/9] =?UTF-8?q?add=20=E6=96=B0=E5=A2=9E=E7=9F=AD=E9=93=BE?=
=?UTF-8?q?=E6=8E=A5=E9=87=8D=E5=AE=9A=E5=90=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/main/resources/application-dev.yml | 2 +
.../src/main/resources/application.yml | 1 +
.../common/core/constant/GlobalConstants.java | 6 ++
.../system/SysShortLinkController.java | 65 +++++++++++++++++++
4 files changed, 74 insertions(+)
create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysShortLinkController.java
diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml
index 1cb3ea684..5b88a71ad 100644
--- a/ruoyi-admin/src/main/resources/application-dev.yml
+++ b/ruoyi-admin/src/main/resources/application-dev.yml
@@ -194,6 +194,8 @@ sms:
signature: 您的短信签名
sdk-app-id: 您的sdkAppId
+short:
+ host: http://localhost/dev-api/resource/short/link?shortUrl=
--- # 三方授权
justauth:
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index ad50248bc..5c3ecffbd 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -126,6 +126,7 @@ security:
# EasyRetry Job 分派 @see com.aizuda.easy.retry.client.job.core.client.JobEndPoint
- /job/dispatch/v1
- /job/stop/v1
+ - /resource/short/link
# 多租户配置
tenant:
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/GlobalConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/GlobalConstants.java
index ae9bc2e62..10fe478be 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/GlobalConstants.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/GlobalConstants.java
@@ -36,4 +36,10 @@ public interface GlobalConstants {
* 三方认证 redis key
*/
String SOCIAL_AUTH_CODE_KEY = GLOBAL_REDIS_KEY + "social_auth_codes:";
+
+ /**
+ * 短链接 redis key
+ */
+ String SHORT_LINK_KEY = GLOBAL_REDIS_KEY + "short_link:";
+
}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysShortLinkController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysShortLinkController.java
new file mode 100644
index 000000000..d1c1ab3d7
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysShortLinkController.java
@@ -0,0 +1,65 @@
+package org.dromara.system.controller.system;
+
+import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
+import jakarta.validation.constraints.NotBlank;
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.constant.GlobalConstants;
+import org.dromara.common.core.utils.SpringUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.redis.utils.RedisUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.servlet.view.RedirectView;
+
+import java.time.Duration;
+
+/**
+ * 短链接 控制层
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/resource/short")
+public class SysShortLinkController {
+ private final IdentifierGenerator identifierGenerator;
+
+ /**
+ * 根据短链接获取长链接并重定向
+ *
+ * @param shortUrl 短链接
+ * @return 重定向视图
+ */
+ @GetMapping("/link")
+ public RedirectView getLongLink(@NotBlank(message = "参数不能为空") String shortUrl) {
+ // 从 Redis 获取长链接
+ String longLink = RedisUtils.getCacheObject(GlobalConstants.SHORT_LINK_KEY + shortUrl);
+ if (StringUtils.isNotEmpty(longLink)) {
+ // 如果长链接存在,则重定向到长链接
+ return new RedirectView(longLink);
+ }
+ // 如果长链接不存在,则重定向到错误页面
+ return new RedirectView("/error");
+ }
+
+ /**
+ * 生成短链接并返回
+ *
+ * @param longUrl 长链接
+ * @return 完整的短链接
+ */
+ @PostMapping("/shorturl")
+ public String generateShortUrl(@NotBlank(message = "参数不能为空") String longUrl) {
+ // 使用标识符生成器生成短链接
+ String shortUrl = identifierGenerator.nextId(null).toString();
+ // 将短链接与长链接的映射关系存储到 Redis 中,并设置过期时间为 3 分钟
+ RedisUtils.setCacheObject(GlobalConstants.SHORT_LINK_KEY + shortUrl, longUrl, Duration.ofMinutes(3));
+ // 获取短链接的域名部分
+ String host = SpringUtils.getProperty("short.host");
+ // 拼接完整的短链接并返回
+ return host + shortUrl;
+ }
+
+}
From 6acc6587c10fd9784ab99978bb98fe48ddbc1619 Mon Sep 17 00:00:00 2001
From: AprilWind <2100166581@qq.com>
Date: Fri, 12 Apr 2024 11:06:12 +0800
Subject: [PATCH 2/9] =?UTF-8?q?add=20=E6=96=B0=E5=A2=9E=E7=9F=AD=E9=93=BE?=
=?UTF-8?q?=E6=8E=A5=E6=A8=A1=E5=9D=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
ruoyi-common/pom.xml | 1 +
ruoyi-common/ruoyi-common-bom/pom.xml | 7 ++
ruoyi-common/ruoyi-common-shortlink/pom.xml | 37 ++++++++
.../common/shortlink/enums/ValidityType.java | 50 +++++++++++
.../properties/ShortLinkProperties.java | 25 ++++++
.../shortlink/utils/ShortLinkUtils.java | 88 +++++++++++++++++++
...ot.autoconfigure.AutoConfiguration.imports | 1 +
7 files changed, 209 insertions(+)
create mode 100644 ruoyi-common/ruoyi-common-shortlink/pom.xml
create mode 100644 ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/enums/ValidityType.java
create mode 100644 ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/properties/ShortLinkProperties.java
create mode 100644 ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/utils/ShortLinkUtils.java
create mode 100644 ruoyi-common/ruoyi-common-shortlink/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml
index 45493d3e9..3e49ee6c9 100644
--- a/ruoyi-common/pom.xml
+++ b/ruoyi-common/pom.xml
@@ -23,6 +23,7 @@
ruoyi-common-oss
ruoyi-common-ratelimiter
ruoyi-common-redis
+ ruoyi-common-shortlink
ruoyi-common-satoken
ruoyi-common-security
ruoyi-common-sms
diff --git a/ruoyi-common/ruoyi-common-bom/pom.xml b/ruoyi-common/ruoyi-common-bom/pom.xml
index 4a2dc1ceb..35514f768 100644
--- a/ruoyi-common/ruoyi-common-bom/pom.xml
+++ b/ruoyi-common/ruoyi-common-bom/pom.xml
@@ -96,6 +96,13 @@
${revision}
+
+
+ org.dromara
+ ruoyi-common-shortlink
+ ${revision}
+
+
org.dromara
diff --git a/ruoyi-common/ruoyi-common-shortlink/pom.xml b/ruoyi-common/ruoyi-common-shortlink/pom.xml
new file mode 100644
index 000000000..0cfac4e94
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-shortlink/pom.xml
@@ -0,0 +1,37 @@
+
+
+
+ org.dromara
+ ruoyi-common
+ ${revision}
+
+ 4.0.0
+
+ ruoyi-common-shortlink
+
+
+ ruoyi-common-shortlink 短链接模块
+
+
+
+
+
+ org.dromara
+ ruoyi-common-core
+
+
+
+ org.dromara
+ ruoyi-common-redis
+
+
+
+ org.dromara
+ ruoyi-common-mybatis
+
+
+
+
+
diff --git a/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/enums/ValidityType.java b/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/enums/ValidityType.java
new file mode 100644
index 000000000..35eb45845
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/enums/ValidityType.java
@@ -0,0 +1,50 @@
+package org.dromara.common.shortlink.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 有效期
+ *
+ * @author AprilWind
+ */
+@Getter
+@AllArgsConstructor
+public enum ValidityType {
+
+ /**
+ * 三分钟
+ */
+ THREE_MINUTES(3 * 60L),
+
+ /**
+ * 一个小时
+ */
+ ONE_HOUR(60 * 60L),
+
+ /**
+ * 表示一天(24小时)
+ */
+ ONE_DAY(24 * 60 * 60L),
+
+ /**
+ * 表示三天
+ */
+ THREE_DAYS(3 * 24 * 60 * 60L),
+
+ /**
+ * 表示七天(一周)
+ */
+ SEVEN_DAYS(7 * 24 * 60 * 60L),
+
+ /**
+ * 表示三十天(一个月)
+ */
+ THIRTY_DAYS(30 * 24 * 60 * 60L);
+
+ /**
+ * 有效期(单位:秒)
+ */
+ private final Long validityType;
+
+}
diff --git a/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/properties/ShortLinkProperties.java b/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/properties/ShortLinkProperties.java
new file mode 100644
index 000000000..0d96f886a
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/properties/ShortLinkProperties.java
@@ -0,0 +1,25 @@
+package org.dromara.common.shortlink.properties;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * 短链接 配置属性
+ *
+ * @author AprilWind
+ */
+@Data
+@ConfigurationProperties(prefix = "shortlink")
+public class ShortLinkProperties {
+
+ /**
+ * 短链接主机名或域名
+ */
+ private String host;
+
+ /**
+ * 错误页面的主机名或域名
+ */
+ private String erroHost;
+
+}
diff --git a/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/utils/ShortLinkUtils.java b/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/utils/ShortLinkUtils.java
new file mode 100644
index 000000000..dd1e0a289
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/utils/ShortLinkUtils.java
@@ -0,0 +1,88 @@
+package org.dromara.common.shortlink.utils;
+
+import cn.hutool.core.lang.Validator;
+import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import org.dromara.common.core.constant.GlobalConstants;
+import org.dromara.common.core.utils.SpringUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.redis.utils.RedisUtils;
+import org.dromara.common.shortlink.enums.ValidityType;
+import org.dromara.common.shortlink.properties.ShortLinkProperties;
+
+import java.time.Duration;
+
+/**
+ * 短链接生成工具类
+ *
+ * @author AprilWind
+ */
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public class ShortLinkUtils {
+
+ private static final IdentifierGenerator IDENTIFIER_GENERATOR = SpringUtils.getBean(IdentifierGenerator.class);
+ private static final ShortLinkProperties shortLinkProperties = SpringUtils.getBean(ShortLinkProperties.class);
+
+ /**
+ * 生成带有短链接主机名或域名的完整短链接
+ *
+ * @param longUrl 完整的长链接
+ * @param validityType 有效期类型枚举
+ * @return 带有短链接主机名或域名的完整短链接
+ */
+ public static String generateShortUrlHost(String longUrl, ValidityType validityType) {
+ String url = generateShortUrl(longUrl, validityType);
+ return shortLinkProperties.getHost() + url;
+ }
+
+ /**
+ * 生成短链接并将长链接存储到缓存中
+ *
+ * @param longUrl 完整的长链接
+ * @param validityType 有效期类型枚举
+ * @return 生成的短链接标识符
+ */
+ public static String generateShortUrl(String longUrl, ValidityType validityType) {
+ // 使用标识符生成器生成短链接
+ String shortUrl = IDENTIFIER_GENERATOR.nextId(null).toString();
+ return generateShortUrl(shortUrl, longUrl, validityType);
+ }
+
+ /**
+ * 生成指定短链接并将长链接存储到缓存中
+ *
+ * @param shortUrl 指定的短链接标识符
+ * @param longUrl 完整的长链接
+ * @param validityType 有效期类型枚举
+ * @return 生成的指定短链接标识符
+ */
+ public static String generateShortUrl(String shortUrl, String longUrl, ValidityType validityType) {
+ Validator.validateUrl(longUrl, "请输入有效的url");
+ RedisUtils.setCacheObject(GlobalConstants.SHORT_LINK_KEY + shortUrl, longUrl, Duration.ofSeconds(validityType.getValidityType()));
+ return shortUrl;
+ }
+
+ /**
+ * 根据短链接获取对应的完整长链接,如果找不到长链接则返回错误链接
+ *
+ * @param shortUrl 短链接标识符
+ * @return 对应的完整长链接,如果未找到则返回错误链接
+ */
+ public static String getLongLink(String shortUrl) {
+ return getLongLink(shortUrl, shortLinkProperties.getErroHost());
+ }
+
+ /**
+ * 根据短链接获取对应的完整长链接,如果找不到长链接则返回指定的错误链接
+ *
+ * @param shortUrl 短链接标识符
+ * @param errUrl 错误链接
+ * @return 对应的完整长链接,如果未找到则返回错误链接
+ */
+ public static String getLongLink(String shortUrl, String errUrl) {
+ String longLink = RedisUtils.getCacheObject(GlobalConstants.SHORT_LINK_KEY + shortUrl);
+ return StringUtils.isNotEmpty(longLink) ? longLink : errUrl;
+ }
+
+}
diff --git a/ruoyi-common/ruoyi-common-shortlink/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-common/ruoyi-common-shortlink/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 000000000..aa57e7f93
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-shortlink/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+org.dromara.common.shortlink.properties.ShortLinkProperties
From ddc78eb548d47d82f99dccb862be7fea4227c4ec Mon Sep 17 00:00:00 2001
From: AprilWind <2100166581@qq.com>
Date: Fri, 12 Apr 2024 11:23:28 +0800
Subject: [PATCH 3/9] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=E7=9F=AD?=
=?UTF-8?q?=E8=BF=9E=E6=8E=A5=E9=87=8D=E5=AE=9A=E5=90=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../shortlink/utils/ShortLinkUtils.java | 50 ++++++++++++-------
ruoyi-modules/ruoyi-system/pom.xml | 6 +++
.../system/SysShortLinkController.java | 29 ++---------
3 files changed, 42 insertions(+), 43 deletions(-)
diff --git a/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/utils/ShortLinkUtils.java b/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/utils/ShortLinkUtils.java
index dd1e0a289..7c31a5fd4 100644
--- a/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/utils/ShortLinkUtils.java
+++ b/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/utils/ShortLinkUtils.java
@@ -22,45 +22,57 @@ import java.time.Duration;
public class ShortLinkUtils {
private static final IdentifierGenerator IDENTIFIER_GENERATOR = SpringUtils.getBean(IdentifierGenerator.class);
- private static final ShortLinkProperties shortLinkProperties = SpringUtils.getBean(ShortLinkProperties.class);
+ private static final ShortLinkProperties SHORT_LINK_PROPERTIES = SpringUtils.getBean(ShortLinkProperties.class);
/**
- * 生成带有短链接主机名或域名的完整短链接
+ * 根据默认主机名(或域名)生成完整短链接
*
* @param longUrl 完整的长链接
* @param validityType 有效期类型枚举
- * @return 带有短链接主机名或域名的完整短链接
+ * @return 带有默认主机名(或域名)的完整短链接
*/
- public static String generateShortUrlHost(String longUrl, ValidityType validityType) {
- String url = generateShortUrl(longUrl, validityType);
- return shortLinkProperties.getHost() + url;
+ public static String generateShortUrl(String longUrl, ValidityType validityType) {
+ return generateShortUrl(SHORT_LINK_PROPERTIES.getHost(), longUrl, validityType);
}
/**
- * 生成短链接并将长链接存储到缓存中
+ * 根据指定主机名(或域名)生成完整短链接
*
+ * @param host 主机名(或域名)
* @param longUrl 完整的长链接
* @param validityType 有效期类型枚举
+ * @return 带有指定主机名(或域名)的完整短链接
+ */
+ public static String generateShortUrl(String host, String longUrl, ValidityType validityType) {
+ String url = generateShortLinkIdentifier(longUrl, validityType);
+ return host + url;
+ }
+
+ /**
+ * 生成短链接标识符并将长链接存储到缓存中
+ *
+ * @param longUrl 完整的长链接
+ * @param validityType 有效期类型枚举
* @return 生成的短链接标识符
*/
- public static String generateShortUrl(String longUrl, ValidityType validityType) {
- // 使用标识符生成器生成短链接
- String shortUrl = IDENTIFIER_GENERATOR.nextId(null).toString();
- return generateShortUrl(shortUrl, longUrl, validityType);
+ public static String generateShortLinkIdentifier(String longUrl, ValidityType validityType) {
+ // 使用标识符生成器生成短链接标识符
+ String shortLinkIdentifier = IDENTIFIER_GENERATOR.nextId(null).toString();
+ return generateShortLinkIdentifier(shortLinkIdentifier, longUrl, validityType);
}
/**
- * 生成指定短链接并将长链接存储到缓存中
+ * 生成指定短链接标识符并将长链接存储到缓存中
*
- * @param shortUrl 指定的短链接标识符
- * @param longUrl 完整的长链接
- * @param validityType 有效期类型枚举
+ * @param shortLinkIdentifier 指定的短链接标识符
+ * @param longUrl 完整的长链接
+ * @param validityType 有效期类型枚举
* @return 生成的指定短链接标识符
*/
- public static String generateShortUrl(String shortUrl, String longUrl, ValidityType validityType) {
+ public static String generateShortLinkIdentifier(String shortLinkIdentifier, String longUrl, ValidityType validityType) {
Validator.validateUrl(longUrl, "请输入有效的url");
- RedisUtils.setCacheObject(GlobalConstants.SHORT_LINK_KEY + shortUrl, longUrl, Duration.ofSeconds(validityType.getValidityType()));
- return shortUrl;
+ RedisUtils.setCacheObject(GlobalConstants.SHORT_LINK_KEY + shortLinkIdentifier, longUrl, Duration.ofSeconds(validityType.getValidityType()));
+ return shortLinkIdentifier;
}
/**
@@ -70,7 +82,7 @@ public class ShortLinkUtils {
* @return 对应的完整长链接,如果未找到则返回错误链接
*/
public static String getLongLink(String shortUrl) {
- return getLongLink(shortUrl, shortLinkProperties.getErroHost());
+ return getLongLink(shortUrl, SHORT_LINK_PROPERTIES.getErroHost());
}
/**
diff --git a/ruoyi-modules/ruoyi-system/pom.xml b/ruoyi-modules/ruoyi-system/pom.xml
index acf33ceb3..536ee63a6 100644
--- a/ruoyi-modules/ruoyi-system/pom.xml
+++ b/ruoyi-modules/ruoyi-system/pom.xml
@@ -43,6 +43,12 @@
ruoyi-common-oss
+
+
+ org.dromara
+ ruoyi-common-shortlink
+
+
org.dromara
ruoyi-common-log
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysShortLinkController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysShortLinkController.java
index d1c1ab3d7..59edcd28f 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysShortLinkController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysShortLinkController.java
@@ -1,12 +1,9 @@
package org.dromara.system.controller.system;
-import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
import jakarta.validation.constraints.NotBlank;
import lombok.RequiredArgsConstructor;
-import org.dromara.common.core.constant.GlobalConstants;
-import org.dromara.common.core.utils.SpringUtils;
-import org.dromara.common.core.utils.StringUtils;
-import org.dromara.common.redis.utils.RedisUtils;
+import org.dromara.common.shortlink.enums.ValidityType;
+import org.dromara.common.shortlink.utils.ShortLinkUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@@ -14,8 +11,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.view.RedirectView;
-import java.time.Duration;
-
/**
* 短链接 控制层
*/
@@ -24,7 +19,6 @@ import java.time.Duration;
@RestController
@RequestMapping("/resource/short")
public class SysShortLinkController {
- private final IdentifierGenerator identifierGenerator;
/**
* 根据短链接获取长链接并重定向
@@ -34,14 +28,8 @@ public class SysShortLinkController {
*/
@GetMapping("/link")
public RedirectView getLongLink(@NotBlank(message = "参数不能为空") String shortUrl) {
- // 从 Redis 获取长链接
- String longLink = RedisUtils.getCacheObject(GlobalConstants.SHORT_LINK_KEY + shortUrl);
- if (StringUtils.isNotEmpty(longLink)) {
- // 如果长链接存在,则重定向到长链接
- return new RedirectView(longLink);
- }
- // 如果长链接不存在,则重定向到错误页面
- return new RedirectView("/error");
+ String longLink = ShortLinkUtils.getLongLink(shortUrl, "/error");
+ return new RedirectView(longLink);
}
/**
@@ -52,14 +40,7 @@ public class SysShortLinkController {
*/
@PostMapping("/shorturl")
public String generateShortUrl(@NotBlank(message = "参数不能为空") String longUrl) {
- // 使用标识符生成器生成短链接
- String shortUrl = identifierGenerator.nextId(null).toString();
- // 将短链接与长链接的映射关系存储到 Redis 中,并设置过期时间为 3 分钟
- RedisUtils.setCacheObject(GlobalConstants.SHORT_LINK_KEY + shortUrl, longUrl, Duration.ofMinutes(3));
- // 获取短链接的域名部分
- String host = SpringUtils.getProperty("short.host");
- // 拼接完整的短链接并返回
- return host + shortUrl;
+ return ShortLinkUtils.generateShortUrl(longUrl, ValidityType.THREE_DAYS);
}
}
From 1e8264a30f59dae65016392d8252e0c87bb2effb Mon Sep 17 00:00:00 2001
From: AprilWind <2100166581@qq.com>
Date: Fri, 12 Apr 2024 13:42:17 +0800
Subject: [PATCH 4/9] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=E7=9F=AD?=
=?UTF-8?q?=E9=93=BE=E6=8E=A5=E7=94=9F=E6=88=90=E5=B7=A5=E5=85=B7=E7=B1=BB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
ruoyi-admin/src/main/resources/application-dev.yml | 6 ++++--
.../shortlink/properties/ShortLinkProperties.java | 9 +++++++--
.../dromara/common/shortlink/utils/ShortLinkUtils.java | 10 +++++-----
3 files changed, 16 insertions(+), 9 deletions(-)
diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml
index 5b88a71ad..4d50f61c5 100644
--- a/ruoyi-admin/src/main/resources/application-dev.yml
+++ b/ruoyi-admin/src/main/resources/application-dev.yml
@@ -194,8 +194,10 @@ sms:
signature: 您的短信签名
sdk-app-id: 您的sdkAppId
-short:
- host: http://localhost/dev-api/resource/short/link?shortUrl=
+shortlink:
+ enabled: false
+ address: http://localhost/dev-api/resource/short/link?shortUrl=
+ errorAddress: http://localhost/error
--- # 三方授权
justauth:
diff --git a/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/properties/ShortLinkProperties.java b/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/properties/ShortLinkProperties.java
index 0d96f886a..de618b337 100644
--- a/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/properties/ShortLinkProperties.java
+++ b/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/properties/ShortLinkProperties.java
@@ -12,14 +12,19 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
@ConfigurationProperties(prefix = "shortlink")
public class ShortLinkProperties {
+ /**
+ * 客户端使用租户域名生成链接
+ */
+ private Boolean enabled = false;
+
/**
* 短链接主机名或域名
*/
- private String host;
+ private String address;
/**
* 错误页面的主机名或域名
*/
- private String erroHost;
+ private String errorAddress="/error";
}
diff --git a/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/utils/ShortLinkUtils.java b/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/utils/ShortLinkUtils.java
index 7c31a5fd4..d3850939d 100644
--- a/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/utils/ShortLinkUtils.java
+++ b/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/utils/ShortLinkUtils.java
@@ -32,20 +32,20 @@ public class ShortLinkUtils {
* @return 带有默认主机名(或域名)的完整短链接
*/
public static String generateShortUrl(String longUrl, ValidityType validityType) {
- return generateShortUrl(SHORT_LINK_PROPERTIES.getHost(), longUrl, validityType);
+ return generateShortUrl(SHORT_LINK_PROPERTIES.getAddress(), longUrl, validityType);
}
/**
* 根据指定主机名(或域名)生成完整短链接
*
- * @param host 主机名(或域名)
+ * @param address 主机名(或域名)
* @param longUrl 完整的长链接
* @param validityType 有效期类型枚举
* @return 带有指定主机名(或域名)的完整短链接
*/
- public static String generateShortUrl(String host, String longUrl, ValidityType validityType) {
+ public static String generateShortUrl(String address, String longUrl, ValidityType validityType) {
String url = generateShortLinkIdentifier(longUrl, validityType);
- return host + url;
+ return address + url;
}
/**
@@ -82,7 +82,7 @@ public class ShortLinkUtils {
* @return 对应的完整长链接,如果未找到则返回错误链接
*/
public static String getLongLink(String shortUrl) {
- return getLongLink(shortUrl, SHORT_LINK_PROPERTIES.getErroHost());
+ return getLongLink(shortUrl, SHORT_LINK_PROPERTIES.getErrorAddress());
}
/**
From a06570f39c6ea6d98cf950f5a00234ae89a9c761 Mon Sep 17 00:00:00 2001
From: AprilWind <2100166581@qq.com>
Date: Fri, 12 Apr 2024 13:44:10 +0800
Subject: [PATCH 5/9] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=E7=9F=AD?=
=?UTF-8?q?=E9=93=BE=E6=8E=A5=E9=9D=9E=E7=A7=9F=E6=88=B7=E5=9F=9F=E5=90=8D?=
=?UTF-8?q?=E7=94=9F=E6=88=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../system/SysShortLinkController.java | 19 ++++++++++++++++---
1 file changed, 16 insertions(+), 3 deletions(-)
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysShortLinkController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysShortLinkController.java
index 59edcd28f..a7a88b4b2 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysShortLinkController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysShortLinkController.java
@@ -1,8 +1,11 @@
package org.dromara.system.controller.system;
+import jakarta.servlet.http.HttpServletRequest;
import jakarta.validation.constraints.NotBlank;
import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.domain.R;
import org.dromara.common.shortlink.enums.ValidityType;
+import org.dromara.common.shortlink.properties.ShortLinkProperties;
import org.dromara.common.shortlink.utils.ShortLinkUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
@@ -20,6 +23,8 @@ import org.springframework.web.servlet.view.RedirectView;
@RequestMapping("/resource/short")
public class SysShortLinkController {
+ private final ShortLinkProperties shortLinkProperties;
+
/**
* 根据短链接获取长链接并重定向
*
@@ -28,7 +33,7 @@ public class SysShortLinkController {
*/
@GetMapping("/link")
public RedirectView getLongLink(@NotBlank(message = "参数不能为空") String shortUrl) {
- String longLink = ShortLinkUtils.getLongLink(shortUrl, "/error");
+ String longLink = ShortLinkUtils.getLongLink(shortUrl, shortLinkProperties.getErrorAddress());
return new RedirectView(longLink);
}
@@ -39,8 +44,16 @@ public class SysShortLinkController {
* @return 完整的短链接
*/
@PostMapping("/shorturl")
- public String generateShortUrl(@NotBlank(message = "参数不能为空") String longUrl) {
- return ShortLinkUtils.generateShortUrl(longUrl, ValidityType.THREE_DAYS);
+ public R generateShortUrl(HttpServletRequest request, @NotBlank(message = "参数不能为空") String longUrl) {
+ String shorturl;
+ if (Boolean.FALSE.equals(shortLinkProperties.getEnabled())) {
+ shorturl = ShortLinkUtils.generateShortUrl(shortLinkProperties.getAddress(), longUrl, ValidityType.THREE_DAYS);
+ } else {
+ StringBuffer requestURL = request.getRequestURL();
+ String address = requestURL.substring(0, requestURL.indexOf("shorturl")) + "link?shortUrl=";
+ shorturl = ShortLinkUtils.generateShortUrl(address, longUrl, ValidityType.THREE_DAYS);
+ }
+ return R.ok(shorturl);
}
}
From 1bc60fbc4bca71cd3fcce92e3450eba84dc26ece Mon Sep 17 00:00:00 2001
From: AprilWind <2100166581@qq.com>
Date: Fri, 12 Apr 2024 13:45:04 +0800
Subject: [PATCH 6/9] =?UTF-8?q?update=20OSS=E4=B8=B4=E6=97=B6URL=E8=BF=87?=
=?UTF-8?q?=E9=95=BF=EF=BC=8C=E7=94=9F=E6=88=90=E7=9F=AD=E9=93=BE=E6=8E=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../dromara/system/service/impl/SysOssServiceImpl.java | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java
index 1df221c32..415cbc4e8 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java
@@ -22,6 +22,8 @@ import org.dromara.common.oss.core.OssClient;
import org.dromara.common.oss.entity.UploadResult;
import org.dromara.common.oss.enumd.AccessPolicyType;
import org.dromara.common.oss.factory.OssFactory;
+import org.dromara.common.shortlink.enums.ValidityType;
+import org.dromara.common.shortlink.utils.ShortLinkUtils;
import org.dromara.system.domain.SysOss;
import org.dromara.system.domain.bo.SysOssBo;
import org.dromara.system.domain.vo.SysOssVo;
@@ -238,16 +240,17 @@ public class SysOssServiceImpl implements ISysOssService, OssService {
}
/**
- * 桶类型为 private 的URL 修改为临时URL时长为120s
+ * 桶类型为 private 的URL 修改为临时URL时长为180s
*
* @param oss OSS对象
* @return oss 匹配Url的OSS对象
*/
private SysOssVo matchingUrl(SysOssVo oss) {
OssClient storage = OssFactory.instance(oss.getService());
- // 仅修改桶类型为 private 的URL,临时URL时长为120s
+ // 仅修改桶类型为 private 的URL,临时URL时长为180s
if (AccessPolicyType.PRIVATE == storage.getAccessPolicy()) {
- oss.setUrl(storage.getPrivateUrl(oss.getFileName(), 120));
+ String privateUrl = storage.getPrivateUrl(oss.getFileName(), 180);
+ oss.setUrl(ShortLinkUtils.generateShortUrl(privateUrl, ValidityType.THREE_MINUTES));
}
return oss;
}
From bf6102cf64c161877e5a71ea9241048ad81f0332 Mon Sep 17 00:00:00 2001
From: AprilWind <2100166581@qq.com>
Date: Fri, 12 Apr 2024 14:16:28 +0800
Subject: [PATCH 7/9] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=E7=94=9F?=
=?UTF-8?q?=E6=88=90=E7=9F=AD=E9=93=BE=E6=8E=A5=E7=A7=9F=E6=88=B7=E5=9F=9F?=
=?UTF-8?q?=E5=90=8D=E8=8E=B7=E5=8F=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
ruoyi-admin/src/main/resources/application-dev.yml | 3 ++-
.../shortlink/properties/ShortLinkProperties.java | 5 +++++
.../controller/system/SysShortLinkController.java | 12 +++++++++---
3 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml
index 4d50f61c5..e0c3e2013 100644
--- a/ruoyi-admin/src/main/resources/application-dev.yml
+++ b/ruoyi-admin/src/main/resources/application-dev.yml
@@ -195,7 +195,8 @@ sms:
sdk-app-id: 您的sdkAppId
shortlink:
- enabled: false
+ enabled: true
+ api: /dev-api
address: http://localhost/dev-api/resource/short/link?shortUrl=
errorAddress: http://localhost/error
diff --git a/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/properties/ShortLinkProperties.java b/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/properties/ShortLinkProperties.java
index de618b337..bb6cc5c47 100644
--- a/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/properties/ShortLinkProperties.java
+++ b/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/properties/ShortLinkProperties.java
@@ -17,6 +17,11 @@ public class ShortLinkProperties {
*/
private Boolean enabled = false;
+ /**
+ * 访问前缀 (开启时启用,可不填写,能访问到后端即可)
+ */
+ private String api;
+
/**
* 短链接主机名或域名
*/
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysShortLinkController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysShortLinkController.java
index a7a88b4b2..37af72876 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysShortLinkController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysShortLinkController.java
@@ -14,6 +14,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.view.RedirectView;
+import java.net.MalformedURLException;
+import java.net.URL;
+
/**
* 短链接 控制层
*/
@@ -44,13 +47,16 @@ public class SysShortLinkController {
* @return 完整的短链接
*/
@PostMapping("/shorturl")
- public R generateShortUrl(HttpServletRequest request, @NotBlank(message = "参数不能为空") String longUrl) {
+ public R generateShortUrl(HttpServletRequest request, @NotBlank(message = "参数不能为空") String longUrl) throws MalformedURLException {
String shorturl;
if (Boolean.FALSE.equals(shortLinkProperties.getEnabled())) {
shorturl = ShortLinkUtils.generateShortUrl(shortLinkProperties.getAddress(), longUrl, ValidityType.THREE_DAYS);
} else {
- StringBuffer requestURL = request.getRequestURL();
- String address = requestURL.substring(0, requestURL.indexOf("shorturl")) + "link?shortUrl=";
+ String requestUrl = request.getRequestURL().toString();
+ String host = new URL(requestUrl).getHost();
+ String address = requestUrl
+ .replace(host, host + shortLinkProperties.getApi())
+ .replace("shorturl", "link?shortUrl=");
shorturl = ShortLinkUtils.generateShortUrl(address, longUrl, ValidityType.THREE_DAYS);
}
return R.ok(shorturl);
From df6641a659f3c1b501a648e31cd9ea7a549e28fd Mon Sep 17 00:00:00 2001
From: AprilWind <2100166581@qq.com>
Date: Fri, 12 Apr 2024 14:44:08 +0800
Subject: [PATCH 8/9] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=E7=94=9F?=
=?UTF-8?q?=E6=88=90=E7=9F=AD=E9=93=BE=E6=8E=A5=E6=A0=87=E8=AF=86=E7=AC=A6?=
=?UTF-8?q?=E8=AF=86=E5=88=AB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/main/resources/application-dev.yml | 2 +-
.../src/main/resources/application.yml | 2 +-
.../properties/ShortLinkProperties.java | 2 +-
.../shortlink/utils/ShortLinkUtils.java | 12 ++++++------
.../system/SysShortLinkController.java | 19 +++++++------------
5 files changed, 16 insertions(+), 21 deletions(-)
diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml
index e0c3e2013..350557f9c 100644
--- a/ruoyi-admin/src/main/resources/application-dev.yml
+++ b/ruoyi-admin/src/main/resources/application-dev.yml
@@ -195,7 +195,7 @@ sms:
sdk-app-id: 您的sdkAppId
shortlink:
- enabled: true
+ enabled: false
api: /dev-api
address: http://localhost/dev-api/resource/short/link?shortUrl=
errorAddress: http://localhost/error
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index 5c3ecffbd..076434e69 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -126,7 +126,7 @@ security:
# EasyRetry Job 分派 @see com.aizuda.easy.retry.client.job.core.client.JobEndPoint
- /job/dispatch/v1
- /job/stop/v1
- - /resource/short/link
+ - /resource/short/link/*
# 多租户配置
tenant:
diff --git a/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/properties/ShortLinkProperties.java b/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/properties/ShortLinkProperties.java
index bb6cc5c47..12eae1576 100644
--- a/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/properties/ShortLinkProperties.java
+++ b/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/properties/ShortLinkProperties.java
@@ -30,6 +30,6 @@ public class ShortLinkProperties {
/**
* 错误页面的主机名或域名
*/
- private String errorAddress="/error";
+ private String errorAddress = "/error";
}
diff --git a/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/utils/ShortLinkUtils.java b/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/utils/ShortLinkUtils.java
index d3850939d..a2ed362c4 100644
--- a/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/utils/ShortLinkUtils.java
+++ b/ruoyi-common/ruoyi-common-shortlink/src/main/java/org/dromara/common/shortlink/utils/ShortLinkUtils.java
@@ -78,22 +78,22 @@ public class ShortLinkUtils {
/**
* 根据短链接获取对应的完整长链接,如果找不到长链接则返回错误链接
*
- * @param shortUrl 短链接标识符
+ * @param shortLinkIdentifier 短链接标识符
* @return 对应的完整长链接,如果未找到则返回错误链接
*/
- public static String getLongLink(String shortUrl) {
- return getLongLink(shortUrl, SHORT_LINK_PROPERTIES.getErrorAddress());
+ public static String getLongLink(String shortLinkIdentifier) {
+ return getLongLink(shortLinkIdentifier, SHORT_LINK_PROPERTIES.getErrorAddress());
}
/**
* 根据短链接获取对应的完整长链接,如果找不到长链接则返回指定的错误链接
*
- * @param shortUrl 短链接标识符
+ * @param shortLinkIdentifier 短链接标识符
* @param errUrl 错误链接
* @return 对应的完整长链接,如果未找到则返回错误链接
*/
- public static String getLongLink(String shortUrl, String errUrl) {
- String longLink = RedisUtils.getCacheObject(GlobalConstants.SHORT_LINK_KEY + shortUrl);
+ public static String getLongLink(String shortLinkIdentifier, String errUrl) {
+ String longLink = RedisUtils.getCacheObject(GlobalConstants.SHORT_LINK_KEY + shortLinkIdentifier);
return StringUtils.isNotEmpty(longLink) ? longLink : errUrl;
}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysShortLinkController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysShortLinkController.java
index 37af72876..3e16125d2 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysShortLinkController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysShortLinkController.java
@@ -8,10 +8,7 @@ import org.dromara.common.shortlink.enums.ValidityType;
import org.dromara.common.shortlink.properties.ShortLinkProperties;
import org.dromara.common.shortlink.utils.ShortLinkUtils;
import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.view.RedirectView;
import java.net.MalformedURLException;
@@ -31,12 +28,12 @@ public class SysShortLinkController {
/**
* 根据短链接获取长链接并重定向
*
- * @param shortUrl 短链接
+ * @param shortLinkIdentifier 短链接标识符
* @return 重定向视图
*/
- @GetMapping("/link")
- public RedirectView getLongLink(@NotBlank(message = "参数不能为空") String shortUrl) {
- String longLink = ShortLinkUtils.getLongLink(shortUrl, shortLinkProperties.getErrorAddress());
+ @GetMapping("/link/{shortLinkIdentifier}")
+ public RedirectView getLongLink(@PathVariable("shortLinkIdentifier") String shortLinkIdentifier) {
+ String longLink = ShortLinkUtils.getLongLink(shortLinkIdentifier, shortLinkProperties.getErrorAddress());
return new RedirectView(longLink);
}
@@ -52,11 +49,9 @@ public class SysShortLinkController {
if (Boolean.FALSE.equals(shortLinkProperties.getEnabled())) {
shorturl = ShortLinkUtils.generateShortUrl(shortLinkProperties.getAddress(), longUrl, ValidityType.THREE_DAYS);
} else {
- String requestUrl = request.getRequestURL().toString();
+ String requestUrl = request.getRequestURL().toString().replace("shorturl", "link/");
String host = new URL(requestUrl).getHost();
- String address = requestUrl
- .replace(host, host + shortLinkProperties.getApi())
- .replace("shorturl", "link?shortUrl=");
+ String address = requestUrl.replace(host, host + shortLinkProperties.getApi());
shorturl = ShortLinkUtils.generateShortUrl(address, longUrl, ValidityType.THREE_DAYS);
}
return R.ok(shorturl);
From ec6f28296f039be465c57227cd8256cc0f1418bc Mon Sep 17 00:00:00 2001
From: AprilWind <2100166581@qq.com>
Date: Fri, 12 Apr 2024 15:46:49 +0800
Subject: [PATCH 9/9] =?UTF-8?q?update=20yaml=E7=9F=AD=E9=93=BE=E6=8E=A5?=
=?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B3=A8=E9=87=8A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
ruoyi-admin/src/main/resources/application-dev.yml | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml
index 350557f9c..ca7e7a116 100644
--- a/ruoyi-admin/src/main/resources/application-dev.yml
+++ b/ruoyi-admin/src/main/resources/application-dev.yml
@@ -194,11 +194,16 @@ sms:
signature: 您的短信签名
sdk-app-id: 您的sdkAppId
+--- # 短链接
shortlink:
+ # 是否启用租户域名生成
enabled: false
+ # 访问前缀
api: /dev-api
- address: http://localhost/dev-api/resource/short/link?shortUrl=
- errorAddress: http://localhost/error
+ # 域名或主机名
+ address: http://localhost/dev-api/resource/short/link/
+ # 错误页面
+ errorAddress: /error
--- # 三方授权
justauth: