$item['id'], 'status' => $item['status'], 'sort' => $item['sort'], 'toppic' => $item['toppic'], 'descpic' => $item['descpic'], 'logo' => $item['logo'], 'is_hot' => $item['is_hot'], 'name' => isset($item['translation']) ? $item['translation']['name'] : '', 'desc' => isset($item['translation']) ? $item['translation']['desc'] : '', 'toppic_alt' => isset($item['translation']) ? $item['translation']['toppic_alt'] : '', 'descpic_alt' => isset($item['translation']) ? $item['translation']['descpic_alt'] : '', 'logo_alt' => isset($item['translation']) ? $item['translation']['logo_alt'] : '', 'created_at' => date('Y-m-d H:i:s', $item['created_at']), 'updated_at' => date('Y-m-d H:i:s', $item['updated_at']), ]; if ($item['toppic']) { $result['toppic_full'] = (new \app\mzl\modules\upload\service\OssService())->generatePrivateUrl($item['toppic']); } if ($item['descpic']) { $result['descpic_full'] = (new \app\mzl\modules\upload\service\OssService())->generatePrivateUrl($item['descpic']); } if ($item['logo']) { $result['logo_full'] = (new \app\mzl\modules\upload\service\OssService())->generatePrivateUrl($item['logo']); } $banners = BrandBannerModel::with('translation')->where(['brand_id' => $item['id']])->get(); foreach ($banners as $k => $v) { $v['alt'] = isset($v['translation']) ? $v['translation']['alt'] : ''; unset($v['translation']); if ($v['pic']) { $v['pic_full'] = (new \app\mzl\modules\upload\service\OssService())->generatePrivateUrl($v['pic']); } $result['banner'][$k] = $v; } $traits = BrandTraitModel::with('translation')->where(['brand_id' => $item['id']])->get(); foreach ($traits as $k => $v) { $v['title'] = isset($v['translation']) ? $v['translation']['title'] : ''; $v['content'] = isset($v['translation']) ? $v['translation']['content'] : ''; unset($v['translation']); $result['trait'][$k] = $v; } return $result; } return $item; } /** * 参数预处理 (根据场景处理) * @param Request $request * @param string $scene * @return array */ protected function prepareParams(Request $request, string $scene): array { $params = parent::prepareParams($request, $scene); if ($scene === 'default' || $scene === 'letter') { $params['filters'][] = ['field' => 'status', 'operator' => '=', 'value' => '1']; if(!empty($params['letter'])){ $params['filters'][] = ['field' => 'letter', 'operator' => '=', 'value' => $params['letter']]; } if(isset($params['is_hot']) && $params['is_hot'] == 1){ $params['filters'][] = ['field' => 'is_hot', 'operator' => '=', 'value' => 1]; } } return $params; } /** * 分页 * * @param Request $request 请求对象 * @return Response 响应对象 */ public function index(Request $request, string $scene = 'default'): Response { try { return parent::index($request, $scene); } catch (\Throwable $th) { return $this->errorResponse($th->getMessage()); } } /** * 分页 * * @param Request $request 请求对象 * @return Response 响应对象 */ public function letterAll(Request $request, string $scene = 'letter'): Response { try { return parent::all($request, $scene); } catch (\Throwable $th) { return $this->errorResponse($th->getMessage()); } } /** * 详情 * * @param Request $request 请求对象 * @return Response 响应对象 */ public function detail(Request $request, int $id, string $scene = 'show'): Response { try { $request->setGet(['id'=>$id]); return parent::one($request, $scene); } catch (\Throwable $th) { return $this->errorResponse($th->getMessage()); } } }