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/vo/WxCpNoticeSaveReqVO.java |   53 +++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 51 insertions(+), 2 deletions(-)

diff --git a/yudao-module-wxcp/src/main/java/cn/iocoder/yudao/module/wxcp/controller/admin/notice/vo/WxCpNoticeSaveReqVO.java b/yudao-module-wxcp/src/main/java/cn/iocoder/yudao/module/wxcp/controller/admin/notice/vo/WxCpNoticeSaveReqVO.java
index 9c45df2..6028dcd 100644
--- a/yudao-module-wxcp/src/main/java/cn/iocoder/yudao/module/wxcp/controller/admin/notice/vo/WxCpNoticeSaveReqVO.java
+++ b/yudao-module-wxcp/src/main/java/cn/iocoder/yudao/module/wxcp/controller/admin/notice/vo/WxCpNoticeSaveReqVO.java
@@ -2,10 +2,14 @@
 
 import cn.iocoder.yudao.framework.common.validation.InEnum;
 import cn.iocoder.yudao.module.wxcp.enums.activity.WxCpPushScopeEnum;
+import cn.iocoder.yudao.module.wxcp.enums.notice.WxCpNoticeTypeEnum;
 import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.Valid;
 import jakarta.validation.constraints.NotEmpty;
 import jakarta.validation.constraints.Size;
 import lombok.Data;
+
+import java.util.List;
 
 @Schema(description = "绠$悊鍚庡彴 - 浼佷笟寰俊閫氱煡 鍒涘缓/淇敼 Request VO")
 @Data
@@ -19,10 +23,55 @@
     @Size(max = 128, message = "閫氱煡鏍囬闀垮害涓嶈兘瓒呰繃 128 涓瓧绗�")
     private String title;
 
-    @Schema(description = "閫氱煡姝f枃", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotEmpty(message = "閫氱煡姝f枃涓嶈兘涓虹┖")
+    @Schema(description = "閫氱煡姝f枃锛涚函鏂囨湰閫氱煡蹇呭~锛屽叾瀹冪被鍨嬩綔涓鸿ˉ鍏呰鏄�")
+    @Size(max = 10000, message = "閫氱煡姝f枃闀垮害涓嶈兘瓒呰繃 10000 涓瓧绗�")
     private String content;
 
+    @Schema(description = "閫氱煡妯℃澘绫诲瀷锛�1绾枃鏈� 2鍥炬枃鍗$墖(濉姤/閾炬帴) 3鏂囦欢閫氱煡 4鍥炬枃娑堟伅 5鍥剧墖閫氱煡 6瑙嗛閫氱煡 7Markdown 8澶氬浘鏂囨秷鎭�",
+            example = "1")
+    @InEnum(WxCpNoticeTypeEnum.class)
+    private Integer noticeType;
+
+    @Schema(description = "鎽樿锛堝浘鏂囧崱鐗�/鍥炬枃娑堟伅浣跨敤锛�", example = "璇蜂簬鏈懆浜斿墠瀹屾垚濉姤")
+    @Size(max = 512, message = "鎽樿闀垮害涓嶈兘瓒呰繃 512 涓瓧绗�")
+    private String summary;
+
+    @Schema(description = "璺宠浆閾炬帴锛堝~鎶ャ�佹煡鐪嬭鎯呯瓑锛�", example = "https://example.com/form/1")
+    @Size(max = 1024, message = "璺宠浆閾炬帴闀垮害涓嶈兘瓒呰繃 1024 涓瓧绗�")
+    private String linkUrl;
+
+    @Schema(description = "閾炬帴鎸夐挳鏂囨", example = "鍘诲~鎶�")
+    @Size(max = 32, message = "鎸夐挳鏂囨闀垮害涓嶈兘瓒呰繃 32 涓瓧绗�")
+    private String linkBtnText;
+
+    @Schema(description = "鍥炬枃娑堟伅灏侀潰鍥惧湴鍧�", example = "https://example.com/cover.png")
+    @Size(max = 1024, message = "灏侀潰鍥惧湴鍧�闀垮害涓嶈兘瓒呰繃 1024 涓瓧绗�")
+    private String coverUrl;
+
+    @Schema(description = "鏂囦欢閫氱煡鐨勯檮浠� Blob ID锛堟棫鐗堝崟闄勪欢瀛楁锛屽缓璁敼鐢� fileBlobIds锛�", example = "1024")
+    private Long fileBlobId;
+
+    @Schema(description = "鏂囦欢閫氱煡鐨勯檮浠舵枃浠跺悕锛堟棫鐗堝崟闄勪欢瀛楁锛�", example = "鍏充簬寮�灞昘X宸ヤ綔鐨勯�氱煡.pdf")
+    @Size(max = 255, message = "鏂囦欢鍚嶉暱搴︿笉鑳借秴杩� 255 涓瓧绗�")
+    private String fileName;
+
+    @Schema(description = "鍥剧墖閫氱煡鐨勫浘鐗� Blob ID 鍒楄〃锛堟渶澶� 9 寮狅級锛沶ull = 涓嶆敼鍔紝[] = 娓呯┖", example = "[1024,1025]")
+    @Size(max = 9, message = "鍥剧墖鏈�澶氫笂浼� 9 寮�")
+    private List<Long> imageBlobIds;
+
+    @Schema(description = "闄勪欢閫氱煡鐨勯檮浠� Blob ID 鍒楄〃锛堟渶澶� 5 涓級锛沶ull = 涓嶆敼鍔紝[] = 娓呯┖", example = "[1024,1025]")
+    @Size(max = 5, message = "闄勪欢鏈�澶氫笂浼� 5 涓�")
+    private List<Long> fileBlobIds;
+
+    @Schema(description = "瑙嗛閫氱煡鐨勮棰� Blob ID 鍒楄〃锛堟渶澶� 1 涓級锛沶ull = 涓嶆敼鍔紝[] = 娓呯┖", example = "[1024]")
+    @Size(max = 1, message = "瑙嗛鏈�澶氫笂浼� 1 涓�")
+    private List<Long> videoBlobIds;
+
+    @Schema(description = "澶氬浘鏂囨秷鎭殑鍥炬枃鍒楄〃锛沶ull = 涓嶆敼鍔紝[] = 娓呯┖", example = "[]")
+    @Valid
+    @Size(max = 8, message = "澶氬浘鏂囨秷鎭渶澶� 8 绡�")
+    private List<WxCpNoticeArticleSaveReqVO> articleList;
+
     @Schema(description = "鎺ㄩ�佽寖鍥达紙閫夊~锛屼笉浼犻粯璁ゅ叏鍛橈級锛涙帹閫佹椂浠嶅彲鍦ㄦ帹閫佸脊绐楅噷閲嶆柊閫夋嫨", example = "0")
     @InEnum(WxCpPushScopeEnum.class)
     private Integer pushScope;

--
Gitblit v1.9.3