Эх сурвалжийг харах

refactor(recommend): 卡片详情接口 /card/detail 改为 POST + 请求体

遵循「新增接口统一 POST」规范;新增 CardDetailRequest(cardId 必填校验,period 默认 30d)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
jintao.geng 1 сар өмнө
parent
commit
1a5518d40b

+ 8 - 6
mango-application/src/main/java/com/mangoo/rating/recommend/app/controller/CardController.java

@@ -3,12 +3,14 @@ package com.mangoo.rating.recommend.app.controller;
 import com.mangoo.rating.recommend.AjaxResult;
 import com.mangoo.rating.recommend.annotation.ApiLog;
 import com.mangoo.rating.recommend.enums.BusinessType;
+import com.mangoo.rating.recommend.request.recommend.CardDetailRequest;
 import com.mangoo.rating.recommend.service.CardDetailService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
@@ -28,10 +30,10 @@ public class CardController {
     private CardDetailService cardDetailService;
 
     @ApiOperation("查询卡片详情(身份+POP+行情+价格趋势)")
-    @GetMapping("/detail")
+    @PostMapping("/detail")
     @ApiLog(title = "卡片详情趋势查询", businessType = BusinessType.SEARCH)
-    public AjaxResult detail(@RequestParam("cardId") String cardId,
-                             @RequestParam(value = "period", defaultValue = "30d") String period) {
-        return cardDetailService.getDetail(cardId, period);
+    public AjaxResult detail(@Validated @RequestBody CardDetailRequest request) {
+        // 改为 POST + 请求体(遵循「新增接口统一 POST」规范),period 默认 30d
+        return cardDetailService.getDetail(request.getCardId(), request.getPeriod());
     }
 }

+ 25 - 0
mango-common/src/main/java/com/mangoo/rating/recommend/request/recommend/CardDetailRequest.java

@@ -0,0 +1,25 @@
+package com.mangoo.rating.recommend.request.recommend;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 卡片详情/趋势查询请求体
+ *
+ * @author gengjintao
+ * @date 2026/06/29
+ */
+@Data
+@ApiModel("卡片详情查询请求")
+public class CardDetailRequest {
+
+    @ApiModelProperty(value = "数仓卡片唯一ID", required = true)
+    @NotBlank(message = "cardId 不能为空")
+    private String cardId;
+
+    @ApiModelProperty(value = "趋势时间窗:7d/30d/90d/all(默认 30d)")
+    private String period = "30d";
+}