response() ->error('请选择要导入的产品'); } try { //RPC读取相册 $rpcAlbum = new RpcAlbum(); $albumResult = $rpcAlbum->getByids($albumIds); if ($albumResult['status']= false) { return $this ->response() ->error('RPC获取相册失败:'. $albumResult['msg']); } foreach ($albumResult['data'] as $item) { $title = isset($item['title']) ? $item['title'] : $item['model']; // 创建新的 DistProduct 记录 $distProduct = BaseProduct::create([ 'category_id' => $categoryId, 'title' => $title, 'sku' => $item['model'], // 假设 $baseProduct 也有 sku 字段 'issuance_date' => null, // 假设 $baseProduct 也有 issuance_date 字段 'order' => 0, // 假设 $baseProduct 也有 order 字段 'enabled' => 1, // 假设 $baseProduct 也有 enabled 字段 'content' => $this->changeToimagesHTML($item['en_detail']), // 假设 $baseProduct 也有 content 字段 'parameters' => $item['parameters'], // 假设 $baseProduct 也有 parameters 字段 'seo_title'=> $title, 'seo_keywords' => '', 'seo_description' => '', 'created_at' => now(), // 自动填充创建时间 'updated_at' => now(), // 自动填充更新时间 ]); //DistProduct::where('id', $distProduct->id)->update(['slug' => $distProduct->id]); // 遍历 base_product_image 表中的记录,并插入到 dist_product_image 表中 $cover = json_decode($item['cover'], true); foreach ($cover as $baseImage) { $i = 1; BaseProductImage::create([ 'image_url' => $baseImage, 'product_id' => $distProduct->id, // 使用新创建的 DistProduct 的 ID 'order' => $i, 'created_at' => now(), // 自动填充创建时间 'updated_at' => now(), // 自动填充更新时间 ]); $i++; } } return $this ->response() ->success('导入成功') ->refresh(); } catch (\Exception $e) { throw $e; return $this ->response() ->error('导入失败: ' . $e->getMessage()); } } public function changeToimagesHTML($content) { $content = json_decode($content, true); $html = ''; foreach ($content as $item) { $item = CommonHelper::ossUrl($item); $html.= ''; } return $html; } /** * Build a form here. */ public function form() { // 设置隐藏表单,传递用户id $this->select('category_id', admin_trans_label('category_name')) ->options(BaseProductCategory::selectOptions()) ->required(); $this->hidden('album_ids')->attribute('id', 'album_ids'); } /** * The data of the form. * * @return array */ public function default() { return []; } }