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; } diff --git a/src/main/resources/db/schema.sql b/src/main/resources/db/schema.sql index 310565a..2cce900 100644 --- a/src/main/resources/db/schema.sql +++ b/src/main/resources/db/schema.sql @@ -40,7 +40,7 @@ CREATE TABLE seller_designer ( id BIGINT PRIMARY KEY COMMENT '设计师ID', user_id BIGINT NOT NULL COMMENT '用户ID', shop_name VARCHAR(100) NOT NULL COMMENT '店铺名称', - avatar VARCHAR(200) NOT NULL DEFAULT 'aida-users/87/avatar/default.png' COMMENT '店铺头像URL', + avatar VARCHAR(200) NOT NULL DEFAULT 'aida-user/388b23f770449d18078b5d54f38be52c.png' COMMENT '店铺头像URL', brand_banner VARCHAR(200) COMMENT '品牌Banner URL', owner_name VARCHAR(100) COMMENT '所有者全名', email VARCHAR(100) COMMENT '邮箱',