From 4c073c359d19ec31a0ddea29d69e63e2a7b7c7a6 Mon Sep 17 00:00:00 2001 From: litianxiang Date: Wed, 27 May 2026 10:49:06 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E8=AF=AD=E8=A8=80=E5=92=8C?= =?UTF-8?q?=E8=B5=84=E6=96=99=E6=8E=A5=E5=8F=A3=20=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ListingMallController.java | 8 +++++++ .../listing/service/ListingMallService.java | 8 +++++++ .../service/impl/ListingMallServiceImpl.java | 23 +++++++++++++++++++ .../module/order/entity/OrderInfoEntity.java | 2 +- 4 files changed, 40 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/aida/seller/module/listing/controller/ListingMallController.java b/src/main/java/com/aida/seller/module/listing/controller/ListingMallController.java index 51e02e0..6922d3c 100644 --- a/src/main/java/com/aida/seller/module/listing/controller/ListingMallController.java +++ b/src/main/java/com/aida/seller/module/listing/controller/ListingMallController.java @@ -49,4 +49,12 @@ public class ListingMallController { List result = listingMallService.getListingSummaries(listingIds); return Response.success(result); } + + @Operation(summary = "获取商品 listing 图片 URL 列表", description = "返回指定商品ID的 listing 分类图片 URL 列表") + @GetMapping("/mall/main-product/urls") + public Response> getListingUrls( + @Parameter(description = "商品ID") @RequestParam Long id) { + List urls = listingMallService.getListingUrls(id); + return Response.success(urls); + } } diff --git a/src/main/java/com/aida/seller/module/listing/service/ListingMallService.java b/src/main/java/com/aida/seller/module/listing/service/ListingMallService.java index b15411b..a85f3f9 100644 --- a/src/main/java/com/aida/seller/module/listing/service/ListingMallService.java +++ b/src/main/java/com/aida/seller/module/listing/service/ListingMallService.java @@ -35,4 +35,12 @@ public interface ListingMallService { * @return 商品简要信息列表 */ List getListingSummaries(List listingIds); + + /** + * 获取商品的 listing 图片 URL 列表 + * + * @param id 商品ID + * @return listing 图片 URL 列表 + */ + List getListingUrls(Long id); } diff --git a/src/main/java/com/aida/seller/module/listing/service/impl/ListingMallServiceImpl.java b/src/main/java/com/aida/seller/module/listing/service/impl/ListingMallServiceImpl.java index cf416c5..244ac24 100644 --- a/src/main/java/com/aida/seller/module/listing/service/impl/ListingMallServiceImpl.java +++ b/src/main/java/com/aida/seller/module/listing/service/impl/ListingMallServiceImpl.java @@ -170,6 +170,29 @@ public class ListingMallServiceImpl extends ServiceImpl getListingUrls(Long id) { + List images = listingImageMapper.selectList( + new LambdaQueryWrapper() + .eq(ListingImageEntity::getListingId, id) + .orderByAsc(ListingImageEntity::getSortOrder)); + + Map> imageMap = images.stream() + .filter(img -> StringUtils.hasText(img.getCategory())) + .sorted(Comparator.comparing(ListingImageEntity::getCategory) + .thenComparing(ListingImageEntity::getSortOrder, Comparator.nullsLast(Comparator.naturalOrder()))) + .collect(Collectors.groupingBy( + ListingImageEntity::getCategory, + Collectors.mapping(ListingImageEntity::getImageUrl, Collectors.toList()) + )); + + return imageMap.entrySet().stream() + .filter(entry -> !entry.getKey().equals("firstFrame") && !entry.getKey().equals("gif")) + .flatMap(entry -> entry.getValue().stream()) + .distinct() + .toList(); + } + @Override public List getListingSummaries(List listingIds) { if (listingIds == null || listingIds.isEmpty()) { diff --git a/src/main/java/com/aida/seller/module/order/entity/OrderInfoEntity.java b/src/main/java/com/aida/seller/module/order/entity/OrderInfoEntity.java index 8888298..1ec5daa 100644 --- a/src/main/java/com/aida/seller/module/order/entity/OrderInfoEntity.java +++ b/src/main/java/com/aida/seller/module/order/entity/OrderInfoEntity.java @@ -59,5 +59,5 @@ public class OrderInfoEntity implements Serializable { private Integer deleted; /** 交易流水号 */ - private String paymentId; + private Long paymentId; }