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/domain/SysNotice.java                  |    3 +++
 src/main/resources/mapper/system/SysNoticeMapper.xml                          |    3 +++
 src/main/java/com/ruoyi/project/system/service/impl/SysNoticeServiceImpl.java |   10 +++++++---
 src/main/java/com/ruoyi/project/system/service/impl/UnipushService.java       |    2 +-
 4 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/ruoyi/project/system/domain/SysNotice.java b/src/main/java/com/ruoyi/project/system/domain/SysNotice.java
index a7e696f..b199b72 100644
--- a/src/main/java/com/ruoyi/project/system/domain/SysNotice.java
+++ b/src/main/java/com/ruoyi/project/system/domain/SysNotice.java
@@ -48,6 +48,9 @@
     /** 璺宠浆璺緞 */
     private String jumpPath;
 
+    /** APP璺宠浆璺緞 */
+    private String appJumpPath;
+
     /** 鍒涘缓鑰� */
     @TableField(fill = FieldFill.INSERT)
     private String createBy;
diff --git a/src/main/java/com/ruoyi/project/system/service/impl/SysNoticeServiceImpl.java b/src/main/java/com/ruoyi/project/system/service/impl/SysNoticeServiceImpl.java
index aa7056c..2040850 100644
--- a/src/main/java/com/ruoyi/project/system/service/impl/SysNoticeServiceImpl.java
+++ b/src/main/java/com/ruoyi/project/system/service/impl/SysNoticeServiceImpl.java
@@ -144,10 +144,12 @@
     }
 
     @Override
-    public void simpleNoticeByUser(String title, String message,  List<Long> consigneeId, String jumpPath) {
+    public void simpleNoticeByUser(String title, String message, List<Long> consigneeId, String jumpPath) {
         Long userId = SecurityUtils.getLoginUser().getUserId();
         Long tenantId = SecurityUtils.getLoginUser().getTenantId();
-        List<SysNotice> sysNotices = consigneeId.stream().map(it -> convertSysNotice(title, message, it,tenantId, jumpPath, userId)).collect(Collectors.toList());
+        List<SysNotice> sysNotices = consigneeId.stream()
+                .map(it -> convertSysNotice(title, message, it, tenantId, jumpPath, unipushService.convertWebPathToAppPath(jumpPath), userId))
+                .collect(Collectors.toList());
         sysNoticeService.saveBatch(sysNotices);
         try {
             unipushService.sendClientMessage(sysNotices);
@@ -200,6 +202,7 @@
                         it.getUserId(),
                         it.getTenantId(),
                         jumpPath,
+                        unipushService.convertWebPathToAppPath(jumpPath),
                         userId
                 ))
                 .collect(Collectors.toList());
@@ -213,7 +216,7 @@
     }
 
 
-    private SysNotice convertSysNotice(String title,String message,Long consigneeId, Long tenantId,String jumpPath,Long currentUserId) {
+    private SysNotice convertSysNotice(String title,String message,Long consigneeId, Long tenantId,String jumpPath,String appJumpPath,Long currentUserId) {
         SysNotice sysNotice = new SysNotice();
         sysNotice.setNoticeType("1");
         sysNotice.setNoticeTitle(title);//鏍囬
@@ -222,6 +225,7 @@
         sysNotice.setConsigneeId(consigneeId);
         sysNotice.setSenderId(currentUserId);
         sysNotice.setJumpPath(jumpPath);
+        sysNotice.setAppJumpPath(appJumpPath);
         sysNotice.setTenantId(tenantId);
         return sysNotice;
     }
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 7284ace..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;
         }
diff --git a/src/main/resources/mapper/system/SysNoticeMapper.xml b/src/main/resources/mapper/system/SysNoticeMapper.xml
index f1aba88..3dd5735 100644
--- a/src/main/resources/mapper/system/SysNoticeMapper.xml
+++ b/src/main/resources/mapper/system/SysNoticeMapper.xml
@@ -31,6 +31,7 @@
                sender_id,
                consignee_id,
                jump_path,
+               app_jump_path,
                tenant_id
         from sys_notice
     </sql>
@@ -75,6 +76,7 @@
         <if test="senderId != null and senderId != ''">sender_id,</if>
         <if test="consigneeId != null and consigneeId != ''">consignee_id,</if>
         <if test="jumpPath != null and jumpPath != ''">jump_path,</if>
+        <if test="appJumpPath != null and appJumpPath != ''">app_jump_path,</if>
         <if test="createBy != null and createBy != ''">create_by,</if>
         <if test="tenantId != null and tenantId != ''">tenant_id,</if>
  			create_time
@@ -87,6 +89,7 @@
         <if test="senderId != null and senderId != ''">#{senderId},</if>
         <if test="consigneeId != null and consigneeId != ''">#{consigneeId},</if>
         <if test="jumpPath != null and jumpPath != ''">#{jumpPath},</if>
+        <if test="appJumpPath != null and appJumpPath != ''">#{appJumpPath},</if>
         <if test="pathParms != null and pathParms != ''">#{queryParms},</if>
         <if test="createBy != null and createBy != ''">#{createBy},</if>
         <if test="tenantId != null and tenantId != ''">#{tenantId},</if>

--
Gitblit v1.9.3