From 469a106cf617efd2e9fbe02937c355fa392ae7bc Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期二, 10 二月 2026 17:53:07 +0800
Subject: [PATCH] feat: 消息通知添加APP跳转路由

---
 src/main/java/com/ruoyi/project/system/service/impl/UnipushService.java |   26 ++++++++++++++------------
 1 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/src/main/java/com/ruoyi/project/system/service/impl/UnipushService.java b/src/main/java/com/ruoyi/project/system/service/impl/UnipushService.java
index 0a33b66..b40cbee 100644
--- a/src/main/java/com/ruoyi/project/system/service/impl/UnipushService.java
+++ b/src/main/java/com/ruoyi/project/system/service/impl/UnipushService.java
@@ -95,7 +95,7 @@
     /**
      * 灏� Web 绔垎灞傚叏璺緞杞崲涓� App 绔粍浠惰矾鐢�
      */
-    private String convertWebPathToAppPath(String webPath) {
+    public String convertWebPathToAppPath(String webPath) {
         if (StringUtils.isEmpty(webPath)) {
             return DEFAULT_APP_PAGE;
         }
@@ -108,13 +108,12 @@
             queryString = webPath.substring(index);
         }
 
-        String[] pathSegments = pathOnly.split("/");
-        String lastSegment = "";
-        for (int i = pathSegments.length - 1; i >= 0; i--) {
-            if (StringUtils.isNotEmpty(pathSegments[i])) {
-                lastSegment = pathSegments[i];
-                break;
-            }
+        String lastSegment;
+        int lastSlashIndex = pathOnly.lastIndexOf("/");
+        if (lastSlashIndex != -1) {
+            lastSegment = pathOnly.substring(lastSlashIndex + 1);
+        } else {
+            lastSegment = pathOnly;
         }
 
         if (StringUtils.isEmpty(lastSegment)) {
@@ -124,11 +123,14 @@
         SysMenu menu = sysMenuMapper.selectMenuByPath(lastSegment);
 
         if (menu != null && StringUtils.isNotEmpty(menu.getAppComponent())) {
-            String appComponent = menu.getAppComponent();
-            if (appComponent.startsWith("/")) {
-                appComponent = appComponent.substring(1);
+            String appPath = menu.getAppComponent();
+
+            if (appPath.startsWith("/")) {
+                appPath = appPath.substring(1);
             }
-            return appComponent + queryString;
+
+            //  鎷兼帴 Web 绔師濮嬪弬鏁板苟杩斿洖
+            return appPath + queryString;
         }
 
         return DEFAULT_APP_PAGE;

--
Gitblit v1.9.3