From 23cb45062f760ec7a8289824ac8c9685e2da8ce3 Mon Sep 17 00:00:00 2001 From: litianxiang Date: Mon, 22 Dec 2025 14:28:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9F=A5=E8=AF=A2=E5=8E=86?= =?UTF-8?q?=E5=8F=B2=E7=94=9F=E6=88=90=E8=AE=B0=E5=BD=95=E7=9A=84=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=EF=BC=8C=E6=96=B0=E5=A2=9Eoutfit=E7=82=B9=E8=B5=9E?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/constant/CommonConstants.java | 4 + .../controller/StyleController.java | 24 +++++ .../controller/TryOnEffectController.java | 36 +++---- .../aida/lanecarford/dto/HistoricalDTO.java | 17 ++++ .../com/aida/lanecarford/entity/Style.java | 8 ++ .../lanecarford/service/StyleService.java | 12 +++ .../service/TryOnEffectService.java | 14 ++- .../service/impl/StyleServiceImpl.java | 35 +++++++ .../service/impl/TryOnEffectServiceImpl.java | 96 ++++++++++++++++--- .../java/com/aida/lanecarford/vo/BaseVO.java | 15 +++ .../com/aida/lanecarford/vo/OutfitHisVO.java | 11 +++ ...{TryOnResultVo.java => TryOnResultVO.java} | 4 +- 12 files changed, 237 insertions(+), 39 deletions(-) create mode 100644 src/main/java/com/aida/lanecarford/dto/HistoricalDTO.java create mode 100644 src/main/java/com/aida/lanecarford/vo/BaseVO.java create mode 100644 src/main/java/com/aida/lanecarford/vo/OutfitHisVO.java rename src/main/java/com/aida/lanecarford/vo/{TryOnResultVo.java => TryOnResultVO.java} (77%) diff --git a/src/main/java/com/aida/lanecarford/common/constant/CommonConstants.java b/src/main/java/com/aida/lanecarford/common/constant/CommonConstants.java index ad084ad..137f1f1 100644 --- a/src/main/java/com/aida/lanecarford/common/constant/CommonConstants.java +++ b/src/main/java/com/aida/lanecarford/common/constant/CommonConstants.java @@ -10,5 +10,9 @@ public class CommonConstants { public static final int CONN_TIMEOUT = 30000; // (milliseconds) + public static final String OUTFIT = "Outfit"; + public static final String TRYON = "Try-on"; + public static final String GENAI = "Gen-AI"; + } diff --git a/src/main/java/com/aida/lanecarford/controller/StyleController.java b/src/main/java/com/aida/lanecarford/controller/StyleController.java index d11a982..3fdc538 100644 --- a/src/main/java/com/aida/lanecarford/controller/StyleController.java +++ b/src/main/java/com/aida/lanecarford/controller/StyleController.java @@ -78,4 +78,28 @@ public class StyleController { return ApiResponse.success(styleService.getOutfitResult(requestIDs)); } + /** + * 设置喜欢的风格 + */ + @Operation(summary = "设置喜欢的outfit", description = "将指定风格设置为收藏") + @PostMapping("/set-favorite/{styleId}") + public ApiResponse setFavoriteStyle( + @Parameter(description = "风格ID", required = true) + @PathVariable Long styleId) { + styleService.setFavoriteStyle(styleId); + return ApiResponse.success(); + } + + /** + * 取消喜欢的风格 + */ + @Operation(summary = "取消喜欢的outfit", description = "取消指定风格的收藏") + @PostMapping("/cancel-favorite/{styleId}") + public ApiResponse cancelFavoriteStyle( + @Parameter(description = "风格ID", required = true) + @PathVariable Long styleId) { + styleService.cancelFavoriteStyle(styleId); + return ApiResponse.success(); + } + } \ No newline at end of file diff --git a/src/main/java/com/aida/lanecarford/controller/TryOnEffectController.java b/src/main/java/com/aida/lanecarford/controller/TryOnEffectController.java index 9e86f39..ba1e079 100644 --- a/src/main/java/com/aida/lanecarford/controller/TryOnEffectController.java +++ b/src/main/java/com/aida/lanecarford/controller/TryOnEffectController.java @@ -1,10 +1,14 @@ package com.aida.lanecarford.controller; import com.aida.lanecarford.common.ApiResponse; +import com.aida.lanecarford.common.constant.CommonConstants; +import com.aida.lanecarford.dto.HistoricalDTO; import com.aida.lanecarford.entity.Suggestion; import com.aida.lanecarford.entity.TryOnEffect; import com.aida.lanecarford.service.TryOnEffectService; -import com.aida.lanecarford.vo.TryOnResultVo; +import com.aida.lanecarford.vo.BaseVO; +import com.aida.lanecarford.vo.OutfitHisVO; +import com.aida.lanecarford.vo.TryOnResultVO; import io.netty.util.internal.StringUtil; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -32,29 +36,25 @@ public class TryOnEffectController { @Operation(summary = "生成试穿效果", description = "根据服装,模特照片生成试穿效果,其中styleId是必选,当二次生成时,要带上相关参数,比如顾客照片") @PostMapping("/generate") - public ApiResponse generateTryOnEffect( + public ApiResponse generateTryOnEffect( @Parameter(description = "试穿效果请求参数", required = true) @Valid @RequestBody TryOnEffect tryOnEffectDto) { - TryOnResultVo tryOnResultVo = tryOnEffectService.generateTryOnEffect(tryOnEffectDto); + TryOnResultVO tryOnResultVo = tryOnEffectService.generateTryOnEffect(tryOnEffectDto); return ApiResponse.success(tryOnResultVo); } - @Operation(summary = "获取收藏的试穿效果", description = "对应library页面点击details后的显示,参数为进店记录id") - @GetMapping("/favorites/{visitRecordId}") - public ApiResponse> getFavoriteTryOnEffects( - @Parameter(description = "进店记录ID", required = true) - @PathVariable Long visitRecordId) { - List tryOnResultVos = tryOnEffectService.getFavoriteTryOnEffects(visitRecordId); - return ApiResponse.success(tryOnResultVos); - } - - @GetMapping("/style/{styleId}") - @Operation(summary = "获取某套服装的所有生成结果", description = "对应customize your look页面点击finish后的显示") - public ApiResponse> getTryOnEffectsByStyleId( + @Operation(summary = "获取历史生成记录", description = "根据type,进店记录id,是否收藏来决定返回的数据") + @GetMapping("/getHistoricals") + public ApiResponse> getHistoricals( @Parameter(description = "服装ID", required = true) - @PathVariable Long styleId) { - List tryOnResultVos = tryOnEffectService.getTryOnEffectsByStyleId(styleId); - return ApiResponse.success(tryOnResultVos); + @RequestBody HistoricalDTO historicalDTO) { + if (CommonConstants.OUTFIT.equals(historicalDTO.getType())){ + List outfitHisVOS = tryOnEffectService.getOutfitHistoricals(historicalDTO); + return ApiResponse.success(outfitHisVOS); + }else { + List tryOnResultVos = tryOnEffectService.getTryOnHistoricals(historicalDTO); + return ApiResponse.success(tryOnResultVos); + } } /** diff --git a/src/main/java/com/aida/lanecarford/dto/HistoricalDTO.java b/src/main/java/com/aida/lanecarford/dto/HistoricalDTO.java new file mode 100644 index 0000000..731dad3 --- /dev/null +++ b/src/main/java/com/aida/lanecarford/dto/HistoricalDTO.java @@ -0,0 +1,17 @@ +package com.aida.lanecarford.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class HistoricalDTO { + @Schema(description = "进店记录ID",example = "1") + private Long visitRecordId; + + @Schema(description = "类型",example = "Outfit , Try-on , Gen-AI") + private String type; + + @Schema(description = "是否是收藏",example = "true") + private Boolean isLibrary; + +} diff --git a/src/main/java/com/aida/lanecarford/entity/Style.java b/src/main/java/com/aida/lanecarford/entity/Style.java index 3f170c8..4687adf 100644 --- a/src/main/java/com/aida/lanecarford/entity/Style.java +++ b/src/main/java/com/aida/lanecarford/entity/Style.java @@ -1,6 +1,7 @@ package com.aida.lanecarford.entity; import com.baomidou.mybatisplus.annotation.*; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; @@ -76,4 +77,11 @@ public class Style extends BaseEntity { private String errorMessage; // 注意:createdTime、updatedTime 字段已在 BaseEntity 中定义 + + /** + * 是否喜欢(0-否,1-是) + */ + @Schema(description = "是否喜欢(0-否,1-是)", example = "1", required = false) + @TableField("is_favorite") + private Integer isFavorite; } \ No newline at end of file diff --git a/src/main/java/com/aida/lanecarford/service/StyleService.java b/src/main/java/com/aida/lanecarford/service/StyleService.java index 780e462..ab05812 100644 --- a/src/main/java/com/aida/lanecarford/service/StyleService.java +++ b/src/main/java/com/aida/lanecarford/service/StyleService.java @@ -19,4 +19,16 @@ public interface StyleService extends IService