all(); if (!empty($param['status'])) $param['status'] = intval($param['status']+1); $productType = $this->service->productType(); $data = $this->service->setModel()->getList($param,['poi' => function($query){ $query->field("poi_id,poi_name,poi_address,nick_name"); }],true,['types'],['types' => function($query,$resp) use($productType){ $productTypeArr = []; foreach ($productType as $val) { $productTypeArr[$val['key']] = $val['name']; } return $productTypeArr[$resp['product_type']]??''; }]); return successTrans(100010,pageFormat($data),200); } catch (\Throwable $th) { return error($th->getMessage()); } } /** * 获取商品二维码 * @param Request $request * @return Response */ #[GetMapping("qrcode")] public function getQrcode(Request $request): Response { try { $param = $this->_valid([ "id.require" => trans("empty.require") ],$request->method()); if (!is_array($param)) return error($param); $data = $this->model->where("id",$param['id'])->findOrEmpty(); if ($data->isEmpty()) return errorTrans("error.data"); $qrcode = (new Qrcode)->config($this->getDyConfig())->token()->getQrcodeV2("pages/goods/detail?goods={$data['product_id']}&spm={$data['id']}","douyin"); if (!isset($qrcode['img'])) return error("生成二维码失败"); return successTrans("success.data",compact('qrcode')); } catch (\Throwable $throwable) { return error($throwable->getMessage()); } } /** * 商品详情 * @param Request $request * @return Response */ #[GetMapping('detail')] public function getGoodDetail(Request $request): Response { try { $param = $this->_valid([ "id.require" => trans("empty.require"), "product_id.require" => trans("empty.require"), ],$request->method()); if (!is_array($param)) return error($param); $detail = $this->model->where("id",$param["id"])->with(['skuSpecs'])->findOrEmpty(); if ($detail->isEmpty()) return errorTrans("empty.data"); if ($detail['poi_id'] <> $request->user['store_id']) return errorTrans("error.param"); $detail['sold_start_times'] = [(string)$detail['sold_start_time'],(string)$detail['sold_end_time']]; $detail['use_times'] = [(string)$detail['use_time_start'],(string)$detail['use_time_end']]; return successTrans('success.data',$detail->toArray()); } catch (\Throwable $throwable) { return error($throwable->getMessage()); } } }