|
|
@@ -5,7 +5,6 @@ import com.alibaba.fastjson.TypeReference;
|
|
|
import com.etotem.cfc.entity.ProductSku;
|
|
|
import lombok.Data;
|
|
|
import java.math.BigDecimal;
|
|
|
-import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
@Data
|
|
|
@@ -13,7 +12,7 @@ public class ProductSkuDTO {
|
|
|
private Long id;
|
|
|
private Long productId;
|
|
|
private String skuCode;
|
|
|
- private List<Map<String, String>> specs;
|
|
|
+ private Map<String, String> specs;
|
|
|
private BigDecimal price;
|
|
|
private BigDecimal originalPrice;
|
|
|
private Integer stock;
|
|
|
@@ -31,12 +30,18 @@ public class ProductSkuDTO {
|
|
|
dto.setStock(sku.getStock());
|
|
|
dto.setImage(sku.getImage());
|
|
|
dto.setEnabled(sku.getEnabled() != null && sku.getEnabled() == 1);
|
|
|
- // Parse specs JSON to List<Map>
|
|
|
+ // Parse specs JSON to Map (stored as JSON object in DB)
|
|
|
if (sku.getSpecs() != null) {
|
|
|
try {
|
|
|
- List<Map<String, String>> specsList = JSON.parseObject(sku.getSpecs().toString(),
|
|
|
- new TypeReference<List<Map<String, String>>>() {});
|
|
|
- dto.setSpecs(specsList);
|
|
|
+ String specsStr;
|
|
|
+ if (sku.getSpecs() instanceof String) {
|
|
|
+ specsStr = (String) sku.getSpecs();
|
|
|
+ } else {
|
|
|
+ specsStr = JSON.toJSONString(sku.getSpecs());
|
|
|
+ }
|
|
|
+ Map<String, String> specsMap = JSON.parseObject(specsStr,
|
|
|
+ new TypeReference<Map<String, String>>() {});
|
|
|
+ dto.setSpecs(specsMap);
|
|
|
} catch (Exception e) {
|
|
|
dto.setSpecs(null);
|
|
|
}
|