$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; } $result['creater'] = $item['creater']; return $result; } if ($scene === 'preset') { return [ 'id' => $item['id'], 'name' => isset($item['translation']) ? $item['translation']['name'] : '' ]; } 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') { $params['filters'] = []; if(isset($params['status']) && $params['status'] != ''){ $params['filters'][] = ['field' => 'status', 'operator' => '=', 'value' => $params['status']]; } if(!empty($params['name'])){ $id = BrandTranslationModel::where('name', 'like', '%'.$params['name'].'%')->pluck('brand_id')->toArray(); $params['filters'][] = ['field' => 'id', 'operator' => 'in', 'value' => $id]; } } 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()); } } /** * 预设 */ public function presets(Request $request, string $scene = 'preset'): Response { try { return parent::all($request, $scene); } catch (\Throwable $th) { return $this->errorResponse($th->getMessage()); } } public function add(Request $request): Response { try { $request->setPost('creater', $request->user['id']); $id = $this->getService()->add($request->all()); return $id ? $this->successResponse(['id' => $id]) : $this->errorResponse(); } catch (\Throwable $th) { return $this->errorResponse($th->getMessage()); } } public function edit(Request $request, int $id): Response { try { $request->setPost('id',$id); $request->setPost('creater', $request->user['id']); return $this->getService()->edit($request->all(), $id) ? $this->successResponse() : $this->errorResponse(); } catch (\Throwable $th) { return $this->errorResponse($th->getMessage().$th->getFile().$th->getLine()); } } }