Merge remote-tracking branch 'origin/master'

This commit is contained in:
2026-05-27 13:24:13 +08:00
5 changed files with 41 additions and 2 deletions

View File

@@ -49,4 +49,12 @@ public class ListingMallController {
List<ListingMallVO> result = listingMallService.getListingSummaries(listingIds);
return Response.success(result);
}
@Operation(summary = "获取商品 listing 图片 URL 列表", description = "返回指定商品ID的 listing 分类图片 URL 列表")
@GetMapping("/mall/main-product/urls")
public Response<List<String>> getListingUrls(
@Parameter(description = "商品ID") @RequestParam Long id) {
List<String> urls = listingMallService.getListingUrls(id);
return Response.success(urls);
}
}

View File

@@ -35,4 +35,12 @@ public interface ListingMallService {
* @return 商品简要信息列表
*/
List<ListingMallVO> getListingSummaries(List<Long> listingIds);
/**
* 获取商品的 listing 图片 URL 列表
*
* @param id 商品ID
* @return listing 图片 URL 列表
*/
List<String> getListingUrls(Long id);
}

View File

@@ -170,6 +170,29 @@ public class ListingMallServiceImpl extends ServiceImpl<ListingMallMapper, Listi
return vo;
}
@Override
public List<String> getListingUrls(Long id) {
List<ListingImageEntity> images = listingImageMapper.selectList(
new LambdaQueryWrapper<ListingImageEntity>()
.eq(ListingImageEntity::getListingId, id)
.orderByAsc(ListingImageEntity::getSortOrder));
Map<String, List<String>> 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<ListingMallVO> getListingSummaries(List<Long> listingIds) {
if (listingIds == null || listingIds.isEmpty()) {

View File

@@ -59,5 +59,5 @@ public class OrderInfoEntity implements Serializable {
private Integer deleted;
/** 交易流水号 */
private String paymentId;
private Long paymentId;
}

View File

@@ -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 '邮箱',