service = new UsedCarDetailService(); } /** * 列表页数据格式化 * * @param array $data * @return array */ protected function indexFormat($data) { if (isset($data['created_at'])) { $data['created_at'] = date('Y-m-d H:i:s', $data['created_at']); } if (isset($data['updated_at'])) { $data['updated_at'] = date('Y-m-d H:i:s', $data['updated_at']); } // 处理图片 if (!empty($data['images'])) { $images = is_array($data['images']) ? $data['images'] : json_decode($data['images'], true); if ($images) { $ossService = new OssService(); $images_pull = []; foreach ($images as $image) { $images_pull[] = $ossService->generatePrivateUrl($image); } $data['images_pull'] = $images_pull; } else { $data['images_pull'] = []; } } return $data; } /** * 详情页数据格式化 * * @param array $data * @return array */ protected function showFormat($data) { if (isset($data['created_at'])) { $data['created_at'] = date('Y-m-d H:i:s', $data['created_at']); } if (isset($data['updated_at'])) { $data['updated_at'] = date('Y-m-d H:i:s', $data['updated_at']); } // 处理主图 if (!empty($data['images'])) { $images = is_array($data['images']) ? $data['images'] : json_decode($data['images'], true); if ($images) { $ossService = new OssService(); $images_pull = []; $process = 'image/resize,w_800/quality,Q_40/format,webp'; foreach ($images as $image) { $images_pull[] = $ossService->generatePrivateUrlResize($image, 3600, $process); } $data['images_pull'] = $images_pull; } else { $data['images_pull'] = []; } } else { $data['images_pull'] = []; } // 处理介绍图片 if (!empty($data['intro_images'])) { $introImages = is_array($data['intro_images']) ? $data['intro_images'] : json_decode($data['intro_images'], true); if ($introImages) { $ossService = new OssService(); $intro_images_pull = []; foreach ($introImages as $image) { $intro_images_pull[] = $ossService->generatePrivateUrl($image); } $data['intro_images_pull'] = $intro_images_pull; } else { $data['intro_images_pull'] = []; } } else { $data['intro_images_pull'] = []; } // 处理附件 if (!empty($data['attachment'])) { $attachments = is_array($data['attachment']) ? $data['attachment'] : json_decode($data['attachment'], true); if ($attachments) { $ossService = new OssService(); $attachment_pull = []; foreach ($attachments as $attachment) { $attachment_pull[] = [ 'name' => $attachment['name'] ?? '', 'src' => $attachment['src'] ?? '', 'src_pull' => $ossService->generatePrivateUrl($attachment['src'] ?? ''), ]; } $data['attachment_pull'] = $attachment_pull; } else { $data['attachment_pull'] = []; } } else { $data['attachment_pull'] = []; } return $data; } /** * 更新状态 * * @param Request $request * @return \support\Response */ public function status(Request $request) { try { $data = $request->post(); $res = $this->service->serviceUpdateStatus($request, $data); return $this->success([], '更新成功'); } catch (\Throwable $e) { return $this->error($e->getMessage()); } } /** * 保存FAQ * * @param Request $request * @return \support\Response */ public function saveFaqs(Request $request) { try { $carId = $request->post('id'); $faqs = $request->post('faqs', []); if (empty($carId)) { throw new BusinessException('车辆ID不能为空'); } $this->service->saveFaqs($carId, $faqs); return $this->success([], '保存成功'); } catch (\Throwable $e) { return $this->error($e->getMessage()); } } /** * 创建车辆(含FAQ) * * @param Request $request * @return \support\Response */ public function storeWithFaqs(Request $request) { try { $data = $request->post(); $faqs = $data['faqs'] ?? []; // 先创建车辆 $result = $this->service->serviceStore($request); // 再保存FAQ if (!empty($faqs) && isset($result['id'])) { $this->service->saveFaqs($result['id'], $faqs); } return $this->success($result, '创建成功'); } catch (\Throwable $e) { return $this->error($e->getMessage()); } } /** * 更新车辆(含FAQ) * * @param Request $request * @return \support\Response */ public function updateWithFaqs(Request $request) { try { $data = $request->post(); $faqs = $data['faqs'] ?? []; $carId = $data['id'] ?? null; // 先更新车辆 $result = $this->service->serviceUpdate($request); // 再更新FAQ if (!empty($faqs) && $carId) { $this->service->saveFaqs($carId, $faqs); } return $this->success($result, '更新成功'); } catch (\Throwable $e) { return $this->error($e->getMessage()); } } /** * 提交审核 * * @param Request $request * @return \support\Response */ public function submitAudit(Request $request) { try { $carId = $request->post('id'); if (empty($carId)) { throw new BusinessException('车辆ID不能为空'); } $this->service->submitAudit($request, $carId); return $this->success([], '提交审核成功'); } catch (\Throwable $e) { return $this->error($e->getMessage()); } } /** * 审核车辆 * * @param Request $request * @return \support\Response */ public function audit(Request $request) { try { $data = $request->post(); $this->service->audit($request, $data); $statusText = $data['audit_status'] == 1 ? '通过' : '拒绝'; return $this->success([], "审核{$statusText}成功"); } catch (\Throwable $e) { return $this->error($e->getMessage()); } } /** * 获取审核记录 * * @param Request $request * @return \support\Response */ public function auditRecords(Request $request) { try { $carId = $request->get('id'); if (empty($carId)) { throw new BusinessException('车辆ID不能为空'); } $records = $this->service->getAuditRecords($carId); return $this->success($records); } catch (\Throwable $e) { return $this->error($e->getMessage()); } } /** * 获取审核统计 * * @param Request $request * @return \support\Response */ public function auditStats(Request $request) { try { $stats = $this->service->getAuditStats($request); return $this->success($stats); } catch (\Throwable $e) { return $this->error($e->getMessage()); } } }