Browse Source

feat(recommend): 新增推荐响应 VO RecommendCardVO/OrderSuggestionVO/RecommendResultVO

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
jintao.geng 1 tháng trước cách đây
mục cha
commit
aaa8dc7b71

+ 40 - 0
mango-common/src/main/java/com/mangoo/rating/recommend/response/recommend/OrderSuggestionVO.java

@@ -0,0 +1,40 @@
+package com.mangoo.rating.recommend.response.recommend;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 订单建议 VO(一个订单 = 一组同时效卡 + 一个统一推荐时效)
+ *
+ * @author gengjintao
+ * @date 2026/06/24
+ */
+@Data
+@ApiModel("订单建议")
+public class OrderSuggestionVO {
+
+    @ApiModelProperty(value = "分组号(1 起,档位升序)")
+    private Integer groupNo;
+
+    @ApiModelProperty(value = "订单推荐时效(EvaluateEfficiencyEnum.code)")
+    private Integer efficiency;
+
+    @ApiModelProperty(value = "订单推荐时效描述")
+    private String efficiencyDesc;
+
+    @ApiModelProperty(value = "该档单价(价格取不到时为 null=待计算)")
+    private BigDecimal unitPrice;
+
+    @ApiModelProperty(value = "订单中卡片数量")
+    private Integer cardCount;
+
+    @ApiModelProperty(value = "订单总计(=单价×数量;任一缺价则为 null)")
+    private BigDecimal totalAmount;
+
+    @ApiModelProperty(value = "订单内卡列表")
+    private List<RecommendCardVO> cards;
+}

+ 48 - 0
mango-common/src/main/java/com/mangoo/rating/recommend/response/recommend/RecommendCardVO.java

@@ -0,0 +1,48 @@
+package com.mangoo.rating.recommend.response.recommend;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 单卡推荐结果 VO
+ *
+ * @author gengjintao
+ * @date 2026/06/24
+ */
+@Data
+@ApiModel("单卡推荐结果")
+public class RecommendCardVO {
+
+    @ApiModelProperty(value = "前端临时卡标识(原样回传)")
+    private String clientCardId;
+
+    @ApiModelProperty(value = "球员")
+    private String player;
+
+    @ApiModelProperty(value = "年份")
+    private String year;
+
+    @ApiModelProperty(value = "系列")
+    private String series;
+
+    @ApiModelProperty(value = "卡种")
+    private String cardSet;
+
+    @ApiModelProperty(value = "推荐时效(EvaluateEfficiencyEnum.code)")
+    private Integer recommendEfficiency;
+
+    @ApiModelProperty(value = "命中层级(EXACT/L2/L3/DEFAULT)")
+    private String matchLevel;
+
+    @ApiModelProperty(value = "该卡单价(价格取不到时为 null=待计算)")
+    private BigDecimal unitPrice;
+
+    @ApiModelProperty(value = "正面图URL(透传)")
+    private String frontImageUrl;
+
+    @ApiModelProperty(value = "反面图URL(透传)")
+    private String backImageUrl;
+}

+ 31 - 0
mango-common/src/main/java/com/mangoo/rating/recommend/response/recommend/RecommendResultVO.java

@@ -0,0 +1,31 @@
+package com.mangoo.rating.recommend.response.recommend;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 评级时效推荐响应结果
+ *
+ * @author gengjintao
+ * @date 2026/06/24
+ */
+@Data
+@ApiModel("评级时效推荐响应")
+public class RecommendResultVO {
+
+    @ApiModelProperty(value = "总卡数")
+    private Integer totalCards;
+
+    @ApiModelProperty(value = "订单数")
+    private Integer orderCount;
+
+    @ApiModelProperty(value = "所有订单合计(任一订单缺价则为 null)")
+    private BigDecimal grandTotal;
+
+    @ApiModelProperty(value = "订单建议列表")
+    private List<OrderSuggestionVO> orders;
+}