|
@@ -8,6 +8,7 @@ use app\model\GoodsDetail;
|
|
|
use app\model\GoodsLabel;
|
|
|
use app\model\GoodsRunning;
|
|
|
use app\model\GoodsSku;
|
|
|
+use app\model\SysCategory;
|
|
|
use app\model\SysSerial;
|
|
|
use support\Db;
|
|
|
use support\exception\BusinessException;
|
|
@@ -59,7 +60,7 @@ class GoodsService
|
|
|
|
|
|
foreach ($rows as &$row) {
|
|
|
$row['goods_cover'] = getenv('STORAGE_DOMAIN') . $row['goods_cover'];
|
|
|
- if (isset($row['running'])){
|
|
|
+ if (isset($row['running'])) {
|
|
|
$row['running']['goods_running_storage'] = intval($row['running']['goods_running_storage']);
|
|
|
}
|
|
|
}
|
|
@@ -145,14 +146,30 @@ class GoodsService
|
|
|
|
|
|
|
|
|
|
|
|
- $goods = Goods::where('goods_classify', $goodsClassify)
|
|
|
+ $categoryIds = SysCategory::whereIn('category_super_id', [31, 32, 42, 66, 70, 72])->pluck('category_id');
|
|
|
+
|
|
|
+ $goods = Goods::with('sku')
|
|
|
+ ->whereIn('join_goods_category_id', $categoryIds)
|
|
|
->when($keywords != '', function ($query) use ($keywords) {
|
|
|
$query->where('goods_name', 'like', "%" . $keywords . "%");
|
|
|
})
|
|
|
- ->select('goods_id', 'goods_name', 'goods_sales_price')
|
|
|
+ ->select('goods_id', 'goods_name', 'goods_sales_price', 'join_goods_category_id')
|
|
|
->get()
|
|
|
->toArray();
|
|
|
|
|
|
+ foreach ($goods as &$good) {
|
|
|
+ if (!empty($good['sku'])) {
|
|
|
+ foreach ($good['sku'] as $key => $sku) {
|
|
|
+ if (!empty($sku['goods_sku_specs_json'])) {
|
|
|
+ $good['sku'][$key]['goods_sku_specs_json'] = json_decode($sku['goods_sku_specs_json']);
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ $good['sku'] = [];
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
return json_success('', $goods);
|
|
|
|
|
|
}
|
|
@@ -261,8 +278,8 @@ class GoodsService
|
|
|
}
|
|
|
$data['goods_detail_slider_json'] = rtrim($slider, ',');
|
|
|
}
|
|
|
- $extendJson=[];
|
|
|
- if (!empty($data['goods_attribute_json'])){
|
|
|
+ $extendJson = [];
|
|
|
+ if (!empty($data['goods_attribute_json'])) {
|
|
|
$extendJson = json_decode($data['goods_attribute_json'], true);
|
|
|
}
|
|
|
$data['appointment_times'] = [];
|
|
@@ -349,13 +366,24 @@ class GoodsService
|
|
|
if (empty($item['join_component_goods_id'])) {
|
|
|
continue;
|
|
|
}
|
|
|
+ $skus = GoodsSku::where('join_sku_goods_id', $item['join_component_goods_id'])
|
|
|
+ ->select('goods_sku_id', 'join_sku_goods_id', 'goods_sku_specs_json', 'goods_sku_sales_price')
|
|
|
+ ->get()
|
|
|
+ ->toArray();
|
|
|
+ foreach ($skus as $key => $sku2){
|
|
|
+ if(!empty($sku2['goods_sku_specs_json'])){
|
|
|
+ $skus[$key]['goods_sku_specs_json'] = json_decode($sku2['goods_sku_specs_json']);
|
|
|
+ }
|
|
|
+ }
|
|
|
$ids[] = $item['join_component_goods_id'];
|
|
|
$configJson = json_decode($item['goods_component_json'], true);
|
|
|
$contentList[] = [
|
|
|
'goods_id' => $item['join_component_goods_id'],
|
|
|
'goods_name' => $configJson['goods_name'] ?? '',
|
|
|
'goods_sales_price' => $item['goods_component_price'],
|
|
|
- 'nbr' => $configJson['nbr'] ?? 0
|
|
|
+ 'nbr' => $configJson['nbr'] ?? 0,
|
|
|
+ 'sku_id' => $configJson['sku_id'] ?? '',
|
|
|
+ 'sku' => $skus
|
|
|
];
|
|
|
}
|
|
|
|
|
@@ -721,7 +749,7 @@ class GoodsService
|
|
|
'join_component_goods_id' => $item['goods_id'] ?? '',
|
|
|
'goods_component_price' => $item['goods_sales_price'] ?? '',
|
|
|
'goods_component_cover' => $goods->goods_cover,
|
|
|
- 'goods_component_json' => json_encode(['goods_name' => $item['goods_name'], 'nbr' => $item['nbr']]),
|
|
|
+ 'goods_component_json' => json_encode(['goods_name' => $item['goods_name'], 'nbr' => $item['nbr'], 'sku_id' => $item['sku'] ?? '']),
|
|
|
'goods_component_addtimes' => time()
|
|
|
];
|
|
|
|