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] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=E7=94=9F=E6=88=90?= =?UTF-8?q?=E7=9F=AD=E9=93=BE=E6=8E=A5=E7=A7=9F=E6=88=B7=E5=9F=9F=E5=90=8D?= =?UTF-8?q?=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);