|
@@ -109,18 +109,10 @@ class SpecService extends BaseService
|
|
|
}
|
|
|
// TODO 这个第三方库有问题,如果只有一个规格的时候,格式不同要兼容一下
|
|
|
$cartesian = $cartesianProduct->compute();
|
|
|
- if ($specS->count() == 1) {
|
|
|
- $cartesian = [$cartesian];
|
|
|
- }
|
|
|
|
|
|
foreach ($cartesian as $c) {
|
|
|
-
|
|
|
- $return[] = [
|
|
|
- "id" => 0,
|
|
|
- "sn" => "",
|
|
|
- "url_3d" => "",
|
|
|
- "is_use" => 1,
|
|
|
- "spec_attr" => array_map(function ($cname) use ($attrS) {
|
|
|
+ if (is_array($c)) {
|
|
|
+ $specAttr = array_map(function ($cname) use ($attrS) {
|
|
|
/** @var SpecAttr $attr */
|
|
|
$attr = $attrS->where("name", $cname)->first();
|
|
|
return [
|
|
@@ -128,7 +120,23 @@ class SpecService extends BaseService
|
|
|
"name" => $cname,
|
|
|
"spec_name" => optional($attr->spec)->name,
|
|
|
];
|
|
|
- }, $c),
|
|
|
+ }, $c);
|
|
|
+ } else {
|
|
|
+ /** @var SpecAttr $attr */
|
|
|
+ $attr = $attrS->where("name", $c)->first();
|
|
|
+ $specAttr = [[
|
|
|
+ "id" => $attr->id,
|
|
|
+ "name" => $c,
|
|
|
+ "spec_name" => optional($attr->spec)->name,
|
|
|
+ ]];
|
|
|
+
|
|
|
+ }
|
|
|
+ $return[] = [
|
|
|
+ "id" => 0,
|
|
|
+ "sn" => "",
|
|
|
+ "url_3d" => "",
|
|
|
+ "is_use" => 1,
|
|
|
+ "spec_attr" => $specAttr,
|
|
|
];
|
|
|
}
|
|
|
return $return;
|