diff --git a/src/main/java/com/aida/lanecarford/controller/TryOnEffectController.java b/src/main/java/com/aida/lanecarford/controller/TryOnEffectController.java index 5abdbd1..6b6b17e 100644 --- a/src/main/java/com/aida/lanecarford/controller/TryOnEffectController.java +++ b/src/main/java/com/aida/lanecarford/controller/TryOnEffectController.java @@ -1,6 +1,7 @@ package com.aida.lanecarford.controller; import com.aida.lanecarford.common.ApiResponse; +import com.aida.lanecarford.common.PageResult; import com.aida.lanecarford.common.constant.CommonConstants; import com.aida.lanecarford.dto.HistoricalDTO; import com.aida.lanecarford.entity.Suggestion; @@ -43,16 +44,16 @@ public class TryOnEffectController { return ApiResponse.success(tryOnResultVo); } - @Operation(summary = "获取历史生成记录", description = "根据type,进店记录id,是否收藏来决定返回的数据") + @Operation(summary = "获取历史生成记录", description = "根据type,进店记录id,是否收藏来决定返回的数据,支持分页") @GetMapping("/getHistoricals") - public ApiResponse> getHistoricals( - @Parameter(description = "服装ID", required = true) + public ApiResponse> getHistoricals( + @Parameter(description = "历史记录查询参数", required = true) @ModelAttribute HistoricalDTO historicalDTO) { - if (CommonConstants.OUTFIT.equals(historicalDTO.getType())){ - List outfitHisVOS = tryOnEffectService.getOutfitHistoricals(historicalDTO); + if (CommonConstants.OUTFIT.equals(historicalDTO.getType())) { + PageResult outfitHisVOS = tryOnEffectService.getOutfitHistoricals(historicalDTO); return ApiResponse.success(outfitHisVOS); - }else { - List tryOnResultVos = tryOnEffectService.getTryOnHistoricals(historicalDTO); + } else { + PageResult 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 index 0dc9490..8ad3a55 100644 --- a/src/main/java/com/aida/lanecarford/dto/HistoricalDTO.java +++ b/src/main/java/com/aida/lanecarford/dto/HistoricalDTO.java @@ -6,16 +6,22 @@ import lombok.Data; @Data public class HistoricalDTO { - @Schema(description = "顾客ID",example = "1") + @Schema(description = "顾客ID", example = "1") private Long customerId; - @Schema(description = "进店记录ID",example = "1") + @Schema(description = "进店记录ID", example = "1") private Long visitRecordId; - @Schema(description = "类型",example = "Outfit , Try-on , Gen-AI") + @Schema(description = "类型", example = "Outfit , Try-on , Gen-AI") private String type; - @Schema(description = "是否是收藏",example = "true") + @Schema(description = "是否是收藏", example = "true") private Boolean isLibrary; + @Schema(description = "当前页码,从1开始", example = "1") + private Integer pageNum; + + @Schema(description = "每页大小", example = "10") + private Integer pageSize; + } diff --git a/src/main/java/com/aida/lanecarford/service/TryOnEffectService.java b/src/main/java/com/aida/lanecarford/service/TryOnEffectService.java index a4bd463..9b609ed 100644 --- a/src/main/java/com/aida/lanecarford/service/TryOnEffectService.java +++ b/src/main/java/com/aida/lanecarford/service/TryOnEffectService.java @@ -1,5 +1,6 @@ package com.aida.lanecarford.service; +import com.aida.lanecarford.common.PageResult; import com.aida.lanecarford.dto.HistoricalDTO; import com.aida.lanecarford.entity.Suggestion; import com.aida.lanecarford.entity.TryOnEffect; @@ -47,7 +48,7 @@ public interface TryOnEffectService extends IService { String generateUrl(String prompt, String tryonUrl); - List getTryOnHistoricals(HistoricalDTO historicalDTO); + PageResult getTryOnHistoricals(HistoricalDTO historicalDTO); - List getOutfitHistoricals(HistoricalDTO historicalDTO); + PageResult getOutfitHistoricals(HistoricalDTO historicalDTO); } \ No newline at end of file diff --git a/src/main/java/com/aida/lanecarford/service/impl/TryOnEffectServiceImpl.java b/src/main/java/com/aida/lanecarford/service/impl/TryOnEffectServiceImpl.java index a5ff088..2e5b711 100644 --- a/src/main/java/com/aida/lanecarford/service/impl/TryOnEffectServiceImpl.java +++ b/src/main/java/com/aida/lanecarford/service/impl/TryOnEffectServiceImpl.java @@ -1,6 +1,7 @@ package com.aida.lanecarford.service.impl; import cn.hutool.json.JSONObject; +import com.aida.lanecarford.common.PageResult; import com.aida.lanecarford.common.constant.CommonConstants; import com.aida.lanecarford.config.MinioConfig; import com.aida.lanecarford.config.FaceSwapConfig; @@ -22,6 +23,8 @@ import com.aida.lanecarford.vo.TryOnResultVO; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.auth.oauth2.GoogleCredentials; import lombok.RequiredArgsConstructor; @@ -48,12 +51,7 @@ import java.util.concurrent.TimeUnit; public class TryOnEffectServiceImpl extends ServiceImpl implements TryOnEffectService { private static final Logger log = LoggerFactory.getLogger(TryOnEffectServiceImpl.class); private final StyleService styleService; - private final ModelPhotoService modelPhotoService; private final CustomerPhotoService customerPhotoService; - private final ImageCompositionService imageCompositionService; - - private final CustomerMapper customerMapper; - private final MinioUtil minioUtil; private final MinioConfig minioConfig; private final FaceSwapConfig faceSwapConfig; @@ -80,6 +78,9 @@ public class TryOnEffectServiceImpl extends ServiceImpl getTryOnHistoricals(HistoricalDTO historicalDTO) { + public PageResult getTryOnHistoricals(HistoricalDTO historicalDTO) { LambdaQueryWrapper tryOnEffectLambdaQueryWrapper = new LambdaQueryWrapper() .eq(TryOnEffect::getCustomerId, historicalDTO.getCustomerId()) .orderByDesc(TryOnEffect::getCreatedTime); @@ -277,9 +278,14 @@ public class TryOnEffectServiceImpl extends ServiceImpl tryOnEffects = this.list(tryOnEffectLambdaQueryWrapper); + + long current = historicalDTO.getPageNum() == null || historicalDTO.getPageNum() <= 0 ? 1L : historicalDTO.getPageNum(); + long size = historicalDTO.getPageSize() == null || historicalDTO.getPageSize() <= 0 ? 10L : historicalDTO.getPageSize(); + + IPage page = this.page(new Page<>(current, size), tryOnEffectLambdaQueryWrapper); + List tryOnResultVos = new ArrayList<>(); - for (TryOnEffect tryOnEffect : tryOnEffects) { + for (TryOnEffect tryOnEffect : page.getRecords()) { TryOnResultVO tryOnResultVo = new TryOnResultVO(); tryOnResultVo.setId(tryOnEffect.getId()); tryOnResultVo.setTryOnUrl(minioUtil.convertToPresignedUrl( @@ -301,11 +307,11 @@ public class TryOnEffectServiceImpl extends ServiceImpl(tryOnResultVos, page.getTotal(), page.getCurrent(), page.getSize()); } @Override - public List getOutfitHistoricals(HistoricalDTO historicalDTO) { + public PageResult getOutfitHistoricals(HistoricalDTO historicalDTO) { LambdaQueryWrapper