|
|
|
@ -57,24 +57,24 @@ class AgentService |
|
|
|
|
$customerAgent = $this->modelCustomer->where('agent_id', $agentId)->where('phone', $dataInput['phone'])->latest()->first(); |
|
|
|
|
|
|
|
|
|
// tìm các dữ liệu từ ngày hiện tại trừ đi không được quá 15 ngày |
|
|
|
|
$customerAgentAll = $this->modelCustomer->where('phone', $dataInput['phone'])->where('agent_id', '<>',$agentId)->where('created_at', '>=', $dateNotToo)->latest()->first(); |
|
|
|
|
|
|
|
|
|
if(!empty($customerAgentAll)){ |
|
|
|
|
$customerAgentAll = $this->modelCustomer->where('phone', $dataInput['phone'])->where('agent_id', '<>', $agentId)->where('created_at', '>=', $dateNotToo)->latest()->first(); |
|
|
|
|
|
|
|
|
|
if (!empty($customerAgentAll)) { |
|
|
|
|
// chưa quá 15 ngày thì lấy cái agent_id cũ, đang trực thuộc |
|
|
|
|
$dataInsert['agent_id'] = $customerAgentAll->agent_id; |
|
|
|
|
$result = $this->modelCustomer->insert($dataInsert); |
|
|
|
|
}else{ |
|
|
|
|
} else { |
|
|
|
|
// quá 15 ngày thì lấy agent_id check ra từ mã đại lý |
|
|
|
|
$dataInsert['agent_id'] = $agentId; |
|
|
|
|
$result = $this->modelCustomer->insert($dataInsert); |
|
|
|
|
// nếu agent id cũ != cái hiện tại check |
|
|
|
|
$this->modelCustomer->where('phone', $dataInput['phone'])->where('agent_id', '<>',$agentId)->delete(); |
|
|
|
|
|
|
|
|
|
$this->modelCustomer->where('phone', $dataInput['phone'])->where('agent_id', '<>', $agentId)->delete(); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
\DB::commit(); |
|
|
|
|
return ['status' => true, 'msg' => $this->getMessageReturn('success_insert_customer')]; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} catch (\Exception $e) { |
|
|
|
|
\DB::rollBack(); |
|
|
|
|
} |
|
|
|
@ -85,37 +85,88 @@ class AgentService |
|
|
|
|
* @param array $input |
|
|
|
|
* @return array |
|
|
|
|
*/ |
|
|
|
|
public function myCustomer($input){ |
|
|
|
|
public function myCustomer($input) |
|
|
|
|
{ |
|
|
|
|
$listCustomer = []; |
|
|
|
|
$finalAgentData = []; |
|
|
|
|
$myAgent = $this->modelAgentUser->where('user_id', auth()->user()->id)->latest()->first(); |
|
|
|
|
if(empty($myAgent) || empty($myAgent->agent_id)){ |
|
|
|
|
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['start_date']) && !empty($input['end_date'])) { |
|
|
|
|
$startDate = Carbon::createFromFormat('Y-m-d', $input['start_date']); |
|
|
|
|
$endDate = Carbon::createFromFormat('Y-m-d', $input['end_date'])->addDay(); |
|
|
|
|
|
|
|
|
|
$queryAgent->whereBetween('created_at', [$startDate->toDateString(), $endDate->toDateString()]); |
|
|
|
|
} |
|
|
|
|
if(!empty($input['keyword'])){ |
|
|
|
|
if (!empty($input['keyword'])) { |
|
|
|
|
$queryAgent->where('name', 'LIKE', '%' . $input['keyword'] . '%'); |
|
|
|
|
} |
|
|
|
|
$listCustomer = $queryAgent->orderBy('name', 'asc')->get(); |
|
|
|
|
if(!empty($listCustomer)){ |
|
|
|
|
foreach($listCustomer as $listC){ |
|
|
|
|
if (!empty($listCustomer)) { |
|
|
|
|
foreach ($listCustomer as $listC) { |
|
|
|
|
$finalAgentData[] = [ |
|
|
|
|
'id' => $listC->id??'', |
|
|
|
|
'guest_name' => $listC->name??'', |
|
|
|
|
'phone' => $listC->phone??'', |
|
|
|
|
'email' => $listC->email??'', |
|
|
|
|
'grade' => $listC->grade??'', |
|
|
|
|
'date_receive' => $listC->created_at??'', |
|
|
|
|
'message' => $listC->msg??'' |
|
|
|
|
'id' => $listC->id ?? '', |
|
|
|
|
'guest_name' => $listC->name ?? '', |
|
|
|
|
'phone' => $listC->phone ?? '', |
|
|
|
|
'email' => $listC->email ?? '', |
|
|
|
|
'grade' => $listC->grade ?? '', |
|
|
|
|
'date_receive' => $listC->created_at ?? '', |
|
|
|
|
'message' => $listC->msg ?? '' |
|
|
|
|
]; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return ['status' => true, 'data' => $finalAgentData, 'msg' => $this->getMessageReturn('success')]; |
|
|
|
|
} |
|
|
|
|
/** |
|
|
|
|
* Summary of listAgentOfGeneral |
|
|
|
|
* @param mixed $input |
|
|
|
|
* @return array |
|
|
|
|
*/ |
|
|
|
|
public function listAgentOfGeneral($input) |
|
|
|
|
{ |
|
|
|
|
$data = []; |
|
|
|
|
$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')]; |
|
|
|
|
} else { |
|
|
|
|
$myAgentInfo = $this->modelAgent->find($myAgent->agent_id); |
|
|
|
|
if (empty($myAgentInfo)) { |
|
|
|
|
return ['status' => false, 'msg' => $this->getMessageReturn('no_agent')]; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
$agentId = $myAgentInfo->id; |
|
|
|
|
$myAgentDown = $this->modelAgentUser->byAgentRoot($agentId)->joinAgent(); |
|
|
|
|
|
|
|
|
|
if (!empty($input['start_date']) && !empty($input['end_date'])) { |
|
|
|
|
$myAgentDown->betweenDates($input['start_date'], $input['end_date']); |
|
|
|
|
} |
|
|
|
|
if (!empty($input['keyword'])) { |
|
|
|
|
$myAgentDown->searchAgentName($input['keyword']); |
|
|
|
|
} |
|
|
|
|
if (!empty($input['grant'])) { |
|
|
|
|
$myAgentDown->onlyGrant($input['grant']); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
dd($myAgentDown->get()); |
|
|
|
|
return ['status' => true, 'data' => $data, 'msg' => $this->getMessageReturn('success')]; |
|
|
|
|
} |
|
|
|
|
/** |
|
|
|
|
* Summary of myAgentList |
|
|
|
|
* @param mixed $input |
|
|
|
|
* @return array |
|
|
|
|
*/ |
|
|
|
|
public function myAgentList($input) |
|
|
|
|
{ |
|
|
|
|
$data = []; |
|
|
|
|
//get data general |
|
|
|
|
|
|
|
|
|
return ['status' => true, 'data' => $data, 'msg' => $this->getMessageReturn('success')]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Summary of formatCreateCustomer |
|
|
|
|
* @param array $data |
|
|
|
@ -158,7 +209,8 @@ 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.' |
|
|
|
|
'success' => 'Load data thành công.', |
|
|
|
|
'no_agent' => 'Không tìm thấy đại lý.', |
|
|
|
|
]; |
|
|
|
|
return $msgArr[$errorKey] ?? "Không có dữ liệu."; |
|
|
|
|
} |
|
|
|
|