all(); $param['poi_id'] = $request->user['store_id']; $productType = $this->goodsService->productType(); $data = $this->service->setModel()->getList($param,['product' => function($query) use($productType){ $query->field("product_id,product_name,product_type")->append(['types'])->withAttr(['types' => function($query,$resp) use($productType){ $productTypeArr = []; foreach ($productType as $val) { $productTypeArr[$val['key']] = $val['name']; } return $productTypeArr[$resp['product_type']]??''; }]); }],true,['end_time'],["end_time" => function ($resp,$next) { return timeDiff(strtotime("+30 minutes",strtotime($next['create_at'])),time()); }]); return successTrans("success.data",pageFormat($data),200); } catch (\Throwable $throwable) { return error($throwable->getMessage()); } } #[GetMapping('detail')] public function getOrderDetail(Request $request): Response { try { $param = $this->_valid([ "order.require" => trans("empty.require"), ],$request->method()); if (!is_array($param)) return error($param); $order = $this->model->where("out_order_no",$param['order'])->with(['product','poi','user'])->findOrEmpty(); if ($order['poi_id'] <> $request->user['store_id']) return errorTrans("empty.data"); if ($order->isEmpty()) return errorTrans("empty.data"); $order['end_time'] = timeDiff(strtotime("+30 minutes",strtotime($order['create_at'])),time()); return successTrans("success.data",$order->toArray()); } catch (\Throwable $throwable) { return error($throwable->getMessage()); } } }