From 41c2a20fd0f824c03059d9d21351049a5bf6cb5d Mon Sep 17 00:00:00 2001 From: adonis Date: Thu, 16 Jul 2026 11:36:57 +0330 Subject: [PATCH] fix ehraz --- .../Customer/CustomerController.php | 25 +++++++++----- .../Single/SingleOrderController.php | 4 +++ app/Http/Kernel.php | 1 + .../Middleware/EnsureCustomerIsActive.php | 34 +++++++++++++++++++ app/Support/PersianDigits.php | 24 +++++++++++++ routes/api.php | 2 +- routes/customer.php | 2 +- 7 files changed, 82 insertions(+), 10 deletions(-) create mode 100644 app/Http/Middleware/EnsureCustomerIsActive.php create mode 100644 app/Support/PersianDigits.php diff --git a/app/Http/Controllers/Customer/CustomerController.php b/app/Http/Controllers/Customer/CustomerController.php index 4c691d0..1e5d9b8 100644 --- a/app/Http/Controllers/Customer/CustomerController.php +++ b/app/Http/Controllers/Customer/CustomerController.php @@ -20,13 +20,11 @@ use App\Http\Controllers\Admin\TahesabController; use App\Services\ConfigService; use App\Services\ReferralGiftService; use App\Services\WalletBalanceService; +use App\Support\PersianDigits; +use Carbon\Carbon; +use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Schema; - -//use App\Models\Price; -//use Carbon\Carbon; -//use Illuminate\Support\Facades\Http; - class CustomerController extends Controller { public function me() @@ -191,6 +189,14 @@ class CustomerController extends Controller $customer = Customer::findOrFail(auth('customer')->id()); $wasLegal = (int) $customer->is_legal; $updateData = $request->except(['referral_id', 'referral_to_id', 'is_legal']); + $updateData = PersianDigits::toEnglish($updateData); + if (!empty($updateData['birth_date'])) { + try { + $updateData['birth_date'] = Carbon::parse($updateData['birth_date'])->format('Y-m-d'); + } catch (\Exception $e) { + return response()->json(['message' => 'تاریخ تولد نامعتبر است.'], 422); + } + } if (isset($request->fname) && isset($request->lname)) { $updateData['name'] = "$request->fname $request->lname"; } @@ -238,9 +244,12 @@ class CustomerController extends Controller } return response()->json(true); } catch (\Exception $e) { - // نمایش 400 کاراکتر اول از پیام خطا - $errorMessage = substr($e->getMessage(), 0, 400); - return response()->json(['error' => $errorMessage], 500); + Log::error('customer updateMe failed', [ + 'customer_id' => auth('customer')->id(), + 'message' => $e->getMessage(), + ]); + + return response()->json(['message' => 'خطا در ذخیره اطلاعات. لطفاً دوباره تلاش کنید.'], 422); } } diff --git a/app/Http/Controllers/Single/SingleOrderController.php b/app/Http/Controllers/Single/SingleOrderController.php index 623bb06..adcabfb 100644 --- a/app/Http/Controllers/Single/SingleOrderController.php +++ b/app/Http/Controllers/Single/SingleOrderController.php @@ -55,6 +55,10 @@ class SingleOrderController extends Controller $data['first_buy'] = auth('customer')->id() && $customer && $customer->first_buy_order !== 1; if (auth('customer')->id()) { + if (!$customer || !$customer->trade_active) { + throw new UnprocessableEntityHttpException('امکان سفارش برای شما غیرفعال است.'); + } + $data['customer_id'] = auth('customer')->id(); $orderProductId = (int) ($data['abshode_id'] ?? $data['product_id'] ?? $config->mainProductId() ?? 0); diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 5d12408..5cb4dad 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -68,5 +68,6 @@ class Kernel extends HttpKernel 'request.validation' => \App\Http\Middleware\ValidateRequests::class, 'pargar.auth' => \App\Http\Middleware\PargarAuth::class, 'sms.panel.super' => \App\Http\Middleware\EnsureSmsPanelSuperAdmin::class, + 'customer.active' => \App\Http\Middleware\EnsureCustomerIsActive::class, ]; } diff --git a/app/Http/Middleware/EnsureCustomerIsActive.php b/app/Http/Middleware/EnsureCustomerIsActive.php new file mode 100644 index 0000000..f9d56a6 --- /dev/null +++ b/app/Http/Middleware/EnsureCustomerIsActive.php @@ -0,0 +1,34 @@ +user(); + + if (!$customer) { + return $next($request); + } + + if ($customer->is_archive) { + return response()->json([ + 'message' => 'شما اجازه ورود به سیستم را ندارید', + ], 401); + } + + if (!$customer->active) { + return response()->json([ + 'message' => trans('error.no_active') !== 'error.no_active' + ? trans('error.no_active') + : 'اکانت شما توسط کارشناس سیستم غیر فعال شد', + ], 401); + } + + return $next($request); + } +} diff --git a/app/Support/PersianDigits.php b/app/Support/PersianDigits.php new file mode 100644 index 0000000..f725a55 --- /dev/null +++ b/app/Support/PersianDigits.php @@ -0,0 +1,24 @@ +withoutMiddleware(['throttle:api']); if (! app(ConfigService::class)->isStore()) { - $priceStreamRoute->middleware('auth:customer'); + $priceStreamRoute->middleware(['auth:customer', 'customer.active']); } Route::get('/price/updatePrise',[ReportController::class, 'updatePrise']); diff --git a/routes/customer.php b/routes/customer.php index 627c5c1..bb9c970 100644 --- a/routes/customer.php +++ b/routes/customer.php @@ -41,7 +41,7 @@ if ($isStore) { }); } -Route::middleware('auth:customer')->group(function () use ($isStore) { +Route::middleware(['auth:customer', 'customer.active'])->group(function () use ($isStore) { Route::middleware('validation')->group(function () use ($isStore) { //-----------Address Route::post('/address/table', [AddressController::class, 'table']);