From 5e11b8ebdfe495d3dd9d33d00c56295ff122d9c4 Mon Sep 17 00:00:00 2001 From: glovetleong Date: Thu, 16 Dec 2021 21:46:33 +0800 Subject: [PATCH 1/2] job connect YD portal --- .../Services/FetchesDataFromYDPortal.php | 32 +++++++++++++ .../FetchOrderListsFromYdPortalProcessor.php | 40 ++++++++++++++++ .../Commands/CurlYdOrderListCommand.php | 48 +++++++++++++++++++ app/Job/CurlYdOrderListJob.php | 37 ++++++++++++++ 4 files changed, 157 insertions(+) create mode 100644 app/Classes/Modules/Orders/Services/FetchesDataFromYDPortal.php create mode 100644 app/Classes/Modules/PackingLists/Processors/FetchOrderListsFromYdPortalProcessor.php create mode 100644 app/Console/Commands/CurlYdOrderListCommand.php create mode 100644 app/Job/CurlYdOrderListJob.php diff --git a/app/Classes/Modules/Orders/Services/FetchesDataFromYDPortal.php b/app/Classes/Modules/Orders/Services/FetchesDataFromYDPortal.php new file mode 100644 index 00000000..37b1c295 --- /dev/null +++ b/app/Classes/Modules/Orders/Services/FetchesDataFromYDPortal.php @@ -0,0 +1,32 @@ +requestAsync($method, $url, ['query' => $body]); + + return $request->wait(); + } + + public function getResponseBody(ResponseInterface $request){ + $content = $request->getBody()->getContents(); + $content = str_replace("\r",'', $content); + return json_decode($content); + } +} \ No newline at end of file diff --git a/app/Classes/Modules/PackingLists/Processors/FetchOrderListsFromYdPortalProcessor.php b/app/Classes/Modules/PackingLists/Processors/FetchOrderListsFromYdPortalProcessor.php new file mode 100644 index 00000000..c65b8ee9 --- /dev/null +++ b/app/Classes/Modules/PackingLists/Processors/FetchOrderListsFromYdPortalProcessor.php @@ -0,0 +1,40 @@ +fetchesDataFRomYDPortal = $fetchesDataFRomYDPortal; + } + + /** + * @param Carbon|null $start + * @param Carbon|null $end + * @return array + * @throws GuzzleException + */ + public function execute(?Carbon $start = null, ?Carbon $end = null) { + + + $orderRequest = $this->fetchesDataFRomYDPortal->clientRequest('http://www.yd-wl.com/api/GetOrderList.ashx', 'GET', [ + 'apicode' => '393b1cb4b8b37d09', + 'begintime' => '1633968000', + 'endtime' => '1639308222', + ]); + + $order = $this->fetchesDataFRomYDPortal->getResponseBody($orderRequest); + + dd($order); + } +} diff --git a/app/Console/Commands/CurlYdOrderListCommand.php b/app/Console/Commands/CurlYdOrderListCommand.php new file mode 100644 index 00000000..b68f6cd1 --- /dev/null +++ b/app/Console/Commands/CurlYdOrderListCommand.php @@ -0,0 +1,48 @@ +make(FetchOrderListsFromYdPortalProcessor::class))->execute(); + } +} From 64a4e4b45ff76a1fda69706220535b024a8585af Mon Sep 17 00:00:00 2001 From: glovetleong Date: Tue, 28 Dec 2021 17:35:16 +0800 Subject: [PATCH 2/2] customer order latest date export --- .../ExportsCustomersOrderLatestDate.php | 60 +++++++++++++++++++ .../ExportCustomersToExcelController.php | 19 ++++++ routes/web.php | 2 + 3 files changed, 81 insertions(+) create mode 100644 app/Classes/Modules/Exports/Services/ExportsCustomersOrderLatestDate.php create mode 100644 app/Http/Controllers/Exports/ExportCustomersToExcelController.php diff --git a/app/Classes/Modules/Exports/Services/ExportsCustomersOrderLatestDate.php b/app/Classes/Modules/Exports/Services/ExportsCustomersOrderLatestDate.php new file mode 100644 index 00000000..3d57991e --- /dev/null +++ b/app/Classes/Modules/Exports/Services/ExportsCustomersOrderLatestDate.php @@ -0,0 +1,60 @@ +inviters()->withPivot('invitee_reference')->first(); + $marking = $connection ? $connection->pivot->invitee_reference:''; + + $employees = $company->employees()->first(); + + $order = $company->orders() + ->join('packing_lists', 'packing_lists.owner_id', '=', 'orders.id') + ->join('transport_arrangements', 'transport_arrangements.owner_id', '=', 'packing_lists.id') + ->orderBy('drop_date', 'desc') + ->first(); + + return [ + $marking, + $employees ? $employees->name : '', + $employees ? $employees->email : '', + $order ? $order->drop_date : '' + ]; + } +} \ No newline at end of file diff --git a/app/Http/Controllers/Exports/ExportCustomersToExcelController.php b/app/Http/Controllers/Exports/ExportCustomersToExcelController.php new file mode 100644 index 00000000..80701563 --- /dev/null +++ b/app/Http/Controllers/Exports/ExportCustomersToExcelController.php @@ -0,0 +1,19 @@ +headers->set('Authorization', 'Bearer '.$token); + return $exportsCustomers->download('customer-latest-order-date.csv', Excel::CSV, ['Content-Type' => 'text/csv']); + } +} \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 8234457f..0eca4f51 100644 --- a/routes/web.php +++ b/routes/web.php @@ -182,3 +182,5 @@ Route::get('/debug', function (){ Route::get('/yd', function (){ (App()->make(FetchOrderListsFromYdPortalProcessor::class))->execute();; }); + +Route::get('/export/customer-latest-order-date/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@export'); \ No newline at end of file