From 2abd585e8955c75ce8297d85d8aa03c4ca70ab7e Mon Sep 17 00:00:00 2001 From: yahaozhang Date: Sat, 11 Oct 2025 16:41:53 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=9C=A8=E5=85=AC=E5=91=8A=E8=AF=B7?= =?UTF-8?q?=E6=B1=82=E4=B8=AD=E6=B7=BB=E5=8A=A0=E5=8F=82=E6=95=B0=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=EF=BC=8C=E7=A1=AE=E4=BF=9D=E8=B7=B3=E8=BD=AC=E9=93=BE?= =?UTF-8?q?=E6=8E=A5=E9=95=BF=E5=BA=A6=E4=B8=8D=E8=B6=85=E8=BF=875000?= =?UTF-8?q?=E5=AD=97=E7=AC=A6=EF=BC=8C=E5=B9=B6=E5=9C=A8=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E5=92=8C=E6=9B=B4=E6=96=B0=E5=85=AC=E5=91=8A=E6=97=B6=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E6=9C=89=E6=95=88=E6=80=A7=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/controller/admin/AnnouncementController.java | 5 +++-- .../server/model/dto/admin/AnnouncementRequest.java | 4 +++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/gameplatform/server/controller/admin/AnnouncementController.java b/src/main/java/com/gameplatform/server/controller/admin/AnnouncementController.java index 988c402..b7cbc22 100644 --- a/src/main/java/com/gameplatform/server/controller/admin/AnnouncementController.java +++ b/src/main/java/com/gameplatform/server/controller/admin/AnnouncementController.java @@ -11,6 +11,7 @@ import io.jsonwebtoken.Claims; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; +import javax.validation.Valid; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -35,7 +36,7 @@ public class AnnouncementController { @PostMapping @Operation(summary = "创建公告", description = "创建新的系统公告,belongId会自动从JWT token中获取") - public ResponseEntity createAnnouncement(@RequestBody AnnouncementRequest request, Authentication authentication) { + public ResponseEntity createAnnouncement(@Valid @RequestBody AnnouncementRequest request, Authentication authentication) { if (request.getTitle() == null || request.getTitle().trim().isEmpty()) { return ResponseEntity.badRequest().body(new Object() { public final boolean success = false; @@ -161,7 +162,7 @@ public class AnnouncementController { @Operation(summary = "更新公告", description = "更新指定ID的公告信息,belongId会自动从JWT token中获取") public ResponseEntity updateAnnouncement( @Parameter(description = "公告ID", example = "1") @PathVariable Long id, - @RequestBody AnnouncementRequest request, + @Valid @RequestBody AnnouncementRequest request, Authentication authentication) { // 检查公告是否存在 diff --git a/src/main/java/com/gameplatform/server/model/dto/admin/AnnouncementRequest.java b/src/main/java/com/gameplatform/server/model/dto/admin/AnnouncementRequest.java index 4e9d2e2..8e5ba8d 100644 --- a/src/main/java/com/gameplatform/server/model/dto/admin/AnnouncementRequest.java +++ b/src/main/java/com/gameplatform/server/model/dto/admin/AnnouncementRequest.java @@ -1,6 +1,7 @@ package com.gameplatform.server.model.dto.admin; import io.swagger.v3.oas.annotations.media.Schema; +import javax.validation.constraints.Size; @Schema(description = "公告请求DTO") public class AnnouncementRequest { @@ -14,7 +15,8 @@ public class AnnouncementRequest { @Schema(description = "是否启用", required = true, example = "true") private Boolean enabled; - @Schema(description = "跳转链接", example = "https://example.com") + @Schema(description = "跳转链接(最大5000字符)", example = "https://example.com") + @Size(max = 5000, message = "跳转链接长度不能超过5000个字符") private String jumpUrl; // belongId字段保留用于内部设置,但不在API文档中暴露