From 2e96a24ce3e1f9108ae387ee95feaace34237b8c Mon Sep 17 00:00:00 2001 From: nocode Date: Mon, 15 Jul 2024 16:57:37 +0700 Subject: [PATCH] Update API add Customer --- .../Http/Controllers/AgentActionApi.php | 21 ++++++++++++++++ Modules/Agents/Routes/api.php | 2 +- Modules/Agents/Services/AgentService.php | 24 ++++++++++++++++++- 3 files changed, 45 insertions(+), 2 deletions(-) diff --git a/Modules/Agents/Http/Controllers/AgentActionApi.php b/Modules/Agents/Http/Controllers/AgentActionApi.php index 1e5bbd0..456e682 100755 --- a/Modules/Agents/Http/Controllers/AgentActionApi.php +++ b/Modules/Agents/Http/Controllers/AgentActionApi.php @@ -13,10 +13,19 @@ use Modules\Agents\Services\AgentService; class AgentActionApi extends BaseController { protected $agentService; + /** + * Summary of __construct + * @param \Modules\Agents\Services\AgentService $agentService + */ public function __construct(AgentService $agentService) { $this->agentService = $agentService; } + /** + * Summary of createCustomer + * @param \Modules\Agents\Http\Requests\CreateCustomerRequest $request + * @return mixed|\Illuminate\Http\JsonResponse + */ public function createCustomer(CreateCustomerRequest $request) { $result = $this->agentService->createCustomer($request->all()); @@ -25,4 +34,16 @@ class AgentActionApi extends BaseController } return response()->json(['status' => $result['status'], 'msg' => $result['msg']]); } + /** + * Summary of addCustomer + * @param \Illuminate\Http\Request $request + * @return mixed|\Illuminate\Http\JsonResponse + */ + public function myCustomer(Request $request){ + $result = $this->agentService->myCustomer($request->all()); + if (!$result['status']) { + return response()->json(['status' => $result['status'], 'msg' => $result['msg']]); + } + return response()->json(['status' => $result['status'], 'msg' => $result['msg'], 'data' => $result['data']]); + } } diff --git a/Modules/Agents/Routes/api.php b/Modules/Agents/Routes/api.php index ecc1f05..71cac75 100755 --- a/Modules/Agents/Routes/api.php +++ b/Modules/Agents/Routes/api.php @@ -14,6 +14,6 @@ use Modules\Agents\Http\Controllers\AgentActionApi; */ Route::group(['prefix' => 'agent','middleware' => ['auth:api']], function() { - // Route::post('/add_customer', [AgentActionApi::class, 'addCustomer'])->name('agent_add_customer'); + Route::get('/get_customer', [AgentActionApi::class, 'myCustomer'])->name('agent_get_customer'); }); Route::post('/agent/add_customer', [AgentActionApi::class, 'createCustomer'])->name('agent_add_customer'); diff --git a/Modules/Agents/Services/AgentService.php b/Modules/Agents/Services/AgentService.php index ac56afe..140da8d 100644 --- a/Modules/Agents/Services/AgentService.php +++ b/Modules/Agents/Services/AgentService.php @@ -80,7 +80,28 @@ class AgentService } return ['status' => false, 'msg' => $this->getMessageReturn('failed_insert')]; } - + /** + * Summary of myCustomer + * @param array $input + * @return array + */ + public function myCustomer($input){ + $listCustomer = []; + $myAgent = $this->modelAgentUser->where('user_id', auth()->user()->id)->latest()->first(); + if(empty($myAgent) || empty($myAgent->agent_id)){ + return ['status' => false, 'msg' => $this->getMessageReturn('no_data_agent')]; + } + $agentId = $myAgent->agent_id; + $queryAgent = $this->modelCustomer->where('agent_id', $agentId); + if(!empty($input['start_date']) && !empty($input['end_date'])){ + $queryAgent->whereBetween('created_at', [$input['start_date'], $input['end_date']]); + } + if(!empty($input['keyword'])){ + $queryAgent->where('name', 'LIKE', '%' . $input['keyword'] . '%'); + } + $listCustomer = $queryAgent->orderBy('name', 'asc')->get(); + return ['status' => true, 'data' => $listCustomer, 'msg' => $this->getMessageReturn('success')]; + } /** * Summary of formatCreateCustomer * @param array $data @@ -123,6 +144,7 @@ class AgentService 'no_data_agent' => 'Đại lý không tồn tại.', 'success_insert_customer' => 'Thêm khách hàng thành công.', 'failed_insert' => 'Thêm khách hàng thành công.', + 'success' => 'Load data thành công.' ]; return $msgArr[$errorKey] ?? "Không có dữ liệu."; }