From 47dd1ecaf0aafa66b9c39fff9c91abc1c611b02c Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期二, 27 十月 2026 17:59:46 +0800
Subject: [PATCH] feat(wxcp): 通知支持图片/视频/Markdown/多图文模板与成员预览

---
 yudao-module-wxcp/src/main/java/cn/iocoder/yudao/module/wxcp/controller/admin/notice/WxCpNoticeController.java |   23 +++++++++++++++++++++++
 1 files changed, 23 insertions(+), 0 deletions(-)

diff --git a/yudao-module-wxcp/src/main/java/cn/iocoder/yudao/module/wxcp/controller/admin/notice/WxCpNoticeController.java b/yudao-module-wxcp/src/main/java/cn/iocoder/yudao/module/wxcp/controller/admin/notice/WxCpNoticeController.java
index 7e71f27..fb1ea6c 100644
--- a/yudao-module-wxcp/src/main/java/cn/iocoder/yudao/module/wxcp/controller/admin/notice/WxCpNoticeController.java
+++ b/yudao-module-wxcp/src/main/java/cn/iocoder/yudao/module/wxcp/controller/admin/notice/WxCpNoticeController.java
@@ -3,6 +3,8 @@
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.module.system.controller.admin.storage.vo.SystemStorageBlobRespVO;
+import cn.iocoder.yudao.module.wxcp.controller.admin.notice.vo.WxCpNoticeArticleRespVO;
 import cn.iocoder.yudao.module.wxcp.controller.admin.notice.vo.WxCpNoticePageReqVO;
 import cn.iocoder.yudao.module.wxcp.controller.admin.notice.vo.WxCpNoticeRespVO;
 import cn.iocoder.yudao.module.wxcp.controller.admin.notice.vo.WxCpNoticeSaveReqVO;
@@ -21,6 +23,8 @@
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
 
 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
 
@@ -112,6 +116,23 @@
         }
         WxCpNoticeRespVO vo = BeanUtils.toBean(notice, WxCpNoticeRespVO.class);
         fillNames(vo);
+        // 绱犳潗璇︽儏闇�瑕佸洖鏄撅紝鍒楄〃椤典笉鍥炴樉浠ュ厤澶氭煡闄勪欢琛�
+        vo.setImageAttachmentList(noticeService.getNoticeImageAttachments(notice.getId()));
+        vo.setFileAttachmentList(noticeService.getNoticeFileAttachments(notice.getId()));
+        vo.setVideoAttachmentList(noticeService.getNoticeVideoAttachments(notice.getId()));
+        vo.setImageBlobIds(vo.getImageAttachmentList().stream()
+                .map(SystemStorageBlobRespVO::getId).toList());
+        vo.setFileBlobIds(vo.getFileAttachmentList().stream()
+                .map(SystemStorageBlobRespVO::getId).toList());
+        vo.setVideoBlobIds(vo.getVideoAttachmentList().stream()
+                .map(SystemStorageBlobRespVO::getId).toList());
+        vo.setArticleList(noticeService.getNoticeArticles(notice.getId()).stream().map(article -> {
+            WxCpNoticeArticleRespVO item = BeanUtils.toBean(article, WxCpNoticeArticleRespVO.class);
+            List<SystemStorageBlobRespVO> covers =
+                    noticeService.getNoticeArticleCoverAttachments(article.getId());
+            item.setCoverAttachment(covers.isEmpty() ? null : covers.get(0));
+            return item;
+        }).toList());
         return vo;
     }
 
@@ -122,6 +143,8 @@
         vo.setNoticeTypeName(type != null ? type.getName() : null);
         WxCpPushScopeEnum scope = WxCpPushScopeEnum.valueOf(vo.getPushScope());
         vo.setPushScopeName(scope != null ? scope.getName() : null);
+        // 棰勮閾炬帴鍙緷璧栭厤缃紝鍒楄〃椤典篃鑳界洿鎺ョ粰鍑猴紝鏂逛究绠$悊鍛樺鍒跺彂缁欐垚鍛�
+        vo.setPreviewUrl(noticeService.buildPreviewUrl(vo.getId()));
     }
 
 }

--
Gitblit v1.9.3