214 lines
7.0 KiB
PHP
214 lines
7.0 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\API\Delivery;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Http\Request;
|
|
use App\Models\Cliente;
|
|
use App\Models\EnderecoDelivery;
|
|
use App\Models\MarketPlaceConfig;
|
|
use App\Models\ConfiguracaoSuper;
|
|
use Illuminate\Support\Str;
|
|
use Comtele\Services\TextMessageService;
|
|
|
|
class ClienteController extends Controller
|
|
{
|
|
|
|
public function login(Request $request){
|
|
|
|
$cliente = Cliente::where('telefone', preg_replace('/[^0-9]/', '', $request->email_celular))
|
|
->where('senha', md5($request->senha))
|
|
->where('empresa_id', $request->empresa_id)
|
|
->first();
|
|
|
|
if($cliente != null){
|
|
return response()->json($cliente, 200);
|
|
}
|
|
|
|
$cliente = Cliente::where('email', $request->email_celular)
|
|
->where('senha', md5($request->senha))
|
|
->where('empresa_id', $request->empresa_id)
|
|
->first();
|
|
if($cliente != null){
|
|
return response()->json($cliente, 200);
|
|
}
|
|
|
|
return response()->json("credenciais incorretas!", 404);
|
|
|
|
}
|
|
|
|
public function enderecoSave(Request $request){
|
|
try{
|
|
|
|
$cliente = Cliente::where('uid', $request->uid)->first();
|
|
$config = MarketPlaceConfig::where('empresa_id', $request->empresa_id)->first();
|
|
|
|
$data = [
|
|
'rua' => $request->rua,
|
|
'numero'=> $request->numero,
|
|
'bairro'=> '',
|
|
'bairro_id'=> $request->bairro,
|
|
'referencia'=> $request->complemento ?? '',
|
|
'tipo' => $request->tipo,
|
|
'latitude' => $request->latitude,
|
|
'longitude' => $request->longitude,
|
|
'cliente_id' => $cliente->id,
|
|
'cidade_id' => $config->cidade_id,
|
|
'padrao' => sizeof($cliente->enderecos) == 0 ? 1 : 0
|
|
];
|
|
$endereco = EnderecoDelivery::create($data);
|
|
return response()->json($endereco, 200);
|
|
}catch(\Exception $e){
|
|
return response()->json("err: " . $e->getMessage(), 404);
|
|
}
|
|
}
|
|
|
|
public function enderecoUpdate(Request $request){
|
|
try{
|
|
|
|
$endereco = EnderecoDelivery::where('id', $request->id)->first();
|
|
|
|
$endereco->fill($request->all())->save();
|
|
return response()->json($endereco, 200);
|
|
}catch(\Exception $e){
|
|
return response()->json("err: " . $e->getMessage(), 404);
|
|
}
|
|
}
|
|
|
|
public function clienteSave(Request $request){
|
|
try{
|
|
|
|
$cli = Cliente::where('email', $request->email)
|
|
->where('empresa_id', $request->empresa_id)->first();
|
|
|
|
$config = MarketPlaceConfig::where('empresa_id', $request->empresa_id)->first();
|
|
|
|
if($cli != null){
|
|
return response()->json("email já cadastrado!", 402);
|
|
}
|
|
|
|
$celular = preg_replace('/[^0-9]/', '', $request->celular);
|
|
|
|
$cli = Cliente::where('telefone', $celular)
|
|
->where('empresa_id', $request->empresa_id)->first();
|
|
if($cli != null){
|
|
return response()->json("celular já cadastrado!", 402);
|
|
}
|
|
$code = rand() % 9000 + 999;
|
|
$request->merge([
|
|
'senha' => md5($request->senha),
|
|
'telefone' => $celular,
|
|
'uid' => Str::random(30),
|
|
'token' => $code,
|
|
'status' => !$config->autenticacao_sms,
|
|
'razao_social' => $request->nome
|
|
]);
|
|
if($config->autenticacao_sms){
|
|
$this->sendSms($celular, $code, $config);
|
|
}
|
|
$cli = Cliente::create($request->all());
|
|
return response()->json($cli, 200);
|
|
}catch(\Exception $e){
|
|
return response()->json("err: " . $e->getMessage(), 404);
|
|
}
|
|
}
|
|
|
|
private function sendSms($phone, $code, $config){
|
|
|
|
$config = ConfiguracaoSuper::first();
|
|
if($config != null && $config->sms_key != ''){
|
|
$nomeEmpresa = $config->nome;
|
|
$content = $nomeEmpresa. " Cóodigo de Autorização ". $code;
|
|
$textMessageService = new TextMessageService($config->sms_key);
|
|
$res = $textMessageService->send("Sender", $content, [$phone]);
|
|
return $res;
|
|
}
|
|
}
|
|
|
|
public function clienteUpdate(Request $request){
|
|
try{
|
|
$item = Cliente::where('uid', $request->uid)->first();
|
|
|
|
$item->razao_social = $request->nome;
|
|
// $item->sobre_nome = $request->sobre_nome;
|
|
$item->email = $request->email;
|
|
$item->telefone = $request->celular;
|
|
$item->save();
|
|
return response()->json($item, 200);
|
|
}catch(\Exception $e){
|
|
return response()->json("err: " . $e->getMessage(), 404);
|
|
}
|
|
}
|
|
|
|
public function clienteUpdateSenha(Request $request){
|
|
try{
|
|
$item = Cliente::where('uid', $request->uid)->first();
|
|
|
|
$item->senha = md5($request->senha);
|
|
$item->save();
|
|
return response()->json($item, 200);
|
|
}catch(\Exception $e){
|
|
return response()->json("err: " . $e->getMessage(), 404);
|
|
}
|
|
}
|
|
|
|
public function findCliente(Request $request){
|
|
try{
|
|
$cliente = Cliente::where('empresa_id', $request->empresa_id)
|
|
->with(['enderecos', 'pedidos'])
|
|
->where('uid', $request->uid)->first();
|
|
|
|
return response()->json($cliente, 200);
|
|
}catch(\Exception $e){
|
|
return response()->json("err: " . $e->getMessage(), 404);
|
|
}
|
|
}
|
|
|
|
public function updateEnderecoPadrao(Request $request){
|
|
$endereco = EnderecoDelivery::findOrFail($request->endereco_id);
|
|
try{
|
|
|
|
EnderecoDelivery::where('cliente_id', $endereco->cliente_id)
|
|
->update(['padrao' => 0]);
|
|
|
|
$endereco->padrao = 1;
|
|
$endereco->save();
|
|
return response()->json($endereco, 200);
|
|
|
|
}catch(\Exception $e){
|
|
return response()->json("err: " . $e->getMessage(), 404);
|
|
}
|
|
}
|
|
|
|
public function sendCode(Request $request){
|
|
$code = $request->code;
|
|
$cliente = Cliente::where('empresa_id', $request->empresa_id)
|
|
->where('token', $code)->first();
|
|
if($cliente != null){
|
|
$cliente->status = 1;
|
|
$cliente->save();
|
|
return response()->json($cliente, 200);
|
|
}else{
|
|
return response()->json("erro", 404);
|
|
}
|
|
}
|
|
|
|
public function refreshCode(Request $request){
|
|
$cliente = Cliente::where('uid', $request->uid)->first();
|
|
if($cliente != null){
|
|
|
|
$config = MarketPlaceConfig::where('empresa_id', $request->empresa_id)->first();
|
|
|
|
$code = rand() % 9000 + 999;
|
|
$cliente->token = $code;
|
|
$this->sendSms($cliente->celular, $code, $config);
|
|
|
|
$cliente->save();
|
|
return response()->json($cliente, 200);
|
|
}else{
|
|
return response()->json("erro", 404);
|
|
}
|
|
}
|
|
|
|
}
|