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; }