merge goldali with abshode_khanegi branch

This commit is contained in:
2026-06-04 12:18:53 +03:30
parent aea3cbbc6e
commit a9815fa717
28 changed files with 1359 additions and 379 deletions
+57 -22
View File
@@ -2,13 +2,12 @@
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Admin\TahesabController;
use App\Http\Controllers\Controller;
use App\Models\Cnt;
use App\Models\Customer;
use App\Models\Setting;
use App\Models\TahesabCustomer;
use App\Models\User;
use App\Services\ConfigService;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Symfony\Component\HttpKernel\Exception\UnprocessableEntityHttpException;
@@ -85,7 +84,6 @@ class AuthController extends Controller
$user->token_sms = $rand;
$user->save();
// $this->SendMessage($mobile, 'رمز عبور یکبار مصرف شما جهت ورود به اپلیکشن ' . $this->ConfigService('name_fa') . ' ' . $rand . ' می باشد' . PHP_EOL . "@$subDomain" . " #" . $r and,true ,"sms");
$this->SendMessage($mobile, 'رمز عبور یکبار مصرف شما جهت ورود به اپلیکشن ' . $this->Config('name_fa') . ' ' . $rand . ' می باشد' . PHP_EOL . "@$subDomain" . " #" . $rand,true ,"sms");
return $user->id;
@@ -120,17 +118,20 @@ class AuthController extends Controller
public function register(Request $request)
{
$cfg = app(ConfigService::class);
$register = Setting::where('key', 'open_register')->first();
if($register->is_active == 0){
if ($register && (int) $register->is_active === 0) {
throw new UnprocessableEntityHttpException('امکان ثبت نام وجود ندارد.');
}
$data = $request->all();
$data['type'] = 2;
if (isset($data['referral_id'])) {
$data['referral_to_id'] = $data['referral_id'];
}
$data['name'] = $data['fname'] . ' ' . $data['lname'];
$data['active'] = Setting::where('key', 'auto_active_customer')->first()->value === 'true';
$data['active'] = $cfg->getBool('auto_active_customer', false);
if (isset($data['type']) && $data['type'] == 2) {
$data['active'] = true;
}
@@ -138,40 +139,74 @@ class AuthController extends Controller
if (!is_null($cnt)) {
$data['gram'] = $cnt->value;
}
// Generate unique referral ID
do {
$uniqueId = substr(str_shuffle('0123456789abcdefghijklmnopqrstuvwxyz'), 0, 4);
} while (Customer::where('referral_id', $uniqueId)->exists());
$data['referral_id'] = $uniqueId;
// Handle referrer
if (isset($data['n_code']) && $cfg->getBool('register_jibit_verify', false)) {
$existing = Customer::where('n_code', $data['n_code'])->first();
if (!empty($existing)) {
return response()->json(['message' => 'کد ملی تکراری است'], 422);
}
$response = $this->jibitNcode($data['n_code'], $data['mobile']);
if (isset($response['matched']) && $response['matched'] == true) {
$data['is_legal'] = 1;
}
}
$referrer = null;
if (isset($data['referral_to_id'])) {
$referrer = Customer::where('referral_id', $data['referral_to_id'])->first();
if ($referrer) {
// $messageRef = "{$data['name']} با کد معرف شما ثبت نام کرد.\nدر صورت احراز او پاداش می‌گیرید.\n" . $this->ConfigService('name_fa');
// $this->Send($referrer->mobile, $messageRef);
$AdminMessage = "با معرفی {$referrer->name}، کاربر {$data['name']} در اپ {$this->Config('name_fa')} ثبت نام کرده و منتظر تایید شماست.";
User::where('send_sms', 1)->get()->each(function ($admin) use ($AdminMessage, $data,) {
$this->send($admin->mobile, $AdminMessage);
});
if ($cfg->getBool('register_referral_sms_to_referrer', false)) {
$messageRef = "{$data['name']} با کد معرف شما ثبت نام کرد.\nبا اولین خرید او پاداش دریافت میکنید.\n" . $this->Config('name_fa');
$this->Send($referrer->mobile, $messageRef);
} else {
$adminMessage = "با معرفی {$referrer->name}، کاربر {$data['name']} در اپ {$this->Config('name_fa')} ثبت نام کرده و منتظر تایید شماست.";
User::where('send_sms', 1)->get()->each(function ($admin) use ($adminMessage) {
$this->send($admin->mobile, $adminMessage);
});
}
} else {
return response()->json(["message" => "کد نامعتبره"], 422);
return response()->json(['message' => 'کد نامعتبره'], 422);
}
} else {
if ($this->Config('referral_id') == "required") {
return response()->json(["message" => "کد معرف اجباریست"], 422);
if (
$this->Config('referral_id') == 'required'
|| $cfg->getBool('is_requaire_referral', false)
) {
return response()->json(['message' => 'کد معرف اجباریست'], 422);
}
}
$data['active'] = true;
// Create customer
$customer = Customer::create($data);
// $tah = new TahesabController();
// return $tah->store([
// 'customer_id' => $customer->id,
// ]);
if ($referrer) {
$referrer->increment('total_referrals');
}
$message = "{$data['name']} عزیز، اکانت شما در پلتفرم {$this->Config('name_fa')} ایجاد شد.\nنام کاربری: {$data['mobile']}\n\nورود به نرم افزار:\n{$this->Config('app_url')}";
if ($cfg->getBool('register_jibit_verify', false) && isset($customer->is_legal)) {
$message = $customer->is_legal === 1
? 'احرازهویت برای ' . $customer->name . ' با کد ' . $customer->id . ' انجام شد.'
: 'احرازهویت برای ' . $customer->name . ' با کد ' . $customer->id . ' تأیید نشد لطفا از پنل ادمین اقدام فرمایید.';
User::where('send_sms', 1)->get()->each(function ($admin) use ($message) {
$this->SendMessage($admin->mobile, $message);
});
}
$message = "{$data['name']} عزیز، اکانت شما در پلتفرم {$this->Config('name_fa')} ایجاد شد.";
if ($cfg->getBool('register_referral_bonus_message', false)) {
$bonus = Setting::where('is_active', 1)->where('key', 'referral_bonus_amount')->first();
if ($bonus) {
$bonusValues = json_decode($bonus->value, true);
$message .= "\nپس از اولین خرید مقدار، " . number_format((int) ($bonusValues[0]['customer'] ?? 0)) . ' ریال پاداش دریافت خواهید کرد.';
}
}
$message .= "\nنام کاربری: {$data['mobile']}\nورود به نرم افزار: {$this->Config('app_url')}";
$this->Send($data['mobile'], $message);
return response()->json($customer);