|
|
@@ -152,10 +152,22 @@ public class CartService {
|
|
|
if (cart.getSkuId() != null) {
|
|
|
ProductSku sku = productSkuService.getById(cart.getSkuId());
|
|
|
if (sku != null) {
|
|
|
- if (sku.getPrice() != null) {
|
|
|
- dto.setUnitPrice(sku.getPrice());
|
|
|
- }
|
|
|
- if (sku.getSpecs() != null) {
|
|
|
+ // Linked SKU: 转发到关联商品
|
|
|
+ if (sku.getLinkedProductId() != null) {
|
|
|
+ Product linkedProduct = productMapper.selectById(sku.getLinkedProductId());
|
|
|
+ if (linkedProduct != null) {
|
|
|
+ dto.setProductId(linkedProduct.getId());
|
|
|
+ dto.setProductName(linkedProduct.getName());
|
|
|
+ dto.setCoverImage(linkedProduct.getCoverImage());
|
|
|
+ dto.setUnitPrice(linkedProduct.getPrice() != null ? linkedProduct.getPrice() : 0);
|
|
|
+ dto.setSupplierName(linkedProduct.getVendorName());
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // Legacy SKU: 用 SKU 价格覆盖
|
|
|
+ if (sku.getPrice() != null) {
|
|
|
+ dto.setUnitPrice(sku.getPrice());
|
|
|
+ }
|
|
|
+ if (sku.getSpecs() != null) {
|
|
|
try {
|
|
|
String specsStr = sku.getSpecs().toString().trim();
|
|
|
StringBuilder specDesc = new StringBuilder();
|
|
|
@@ -188,6 +200,7 @@ public class CartService {
|
|
|
log.warn("解析SKU specs失败: skuId={}", cart.getSkuId(), e);
|
|
|
}
|
|
|
}
|
|
|
+ } // end else (Legacy SKU)
|
|
|
}
|
|
|
}
|
|
|
return dto;
|