سلام من میخام هر کاربر موقع ثبت نام یک کد دعوت اختصاصی داشته باشه که اگه هر شخصی از کد دعوت استفاده کرد مثلا 30 درصد تخفیف موقع خرید بهش اضافه بشه
و همینطور تو پروفایلش تعداد افرادی که کد دعوت استفاده کردن و تخفیفی که تعلق گرفت رو بشه نمایش داد
تو جدول users یه فیلد اضافه کردم به این اسم
$table->unsignedInteger('invite_code')->unique();
و به این شکل نوشتم
$user = User::create([
'phone' => $data['phone'],
'password' => Hash::make($data['password']),
'reagent_code' => ['nullable' , 'max:255' , 'min:3'],
'invite_code' => mt_rand(100000, 999999),
]);
کد ایجاد شد ایا این کار اشتباهه ؟
آیا نیازه یه جدول دیگه ایجاد کرد ؟
من یه فیلد هم دارم به این اسم
$table->string('reagent_code')->nullable();
که کاربر موقع ثبت نام کد دعوت مورد نظر رو اینجا وارد کنه
بر اساس این فیلد باید تعداد دفعات رو نمایش بدم ؟و درصد رو اعمال کنم؟
این ساختار رو میتونی به چندین روش متفاوت بنویسی.
ولی چیزی که نوشتی ی چیز کم داره.
باید ی فیلد دیگه هم بذاری که بدونی از 30 درصد استفاده کرده یا نه.وگرنه چون معرف داشته همیشه باید بهش 30 درصد تخفیف بدی.ی فیلد برای تعداد بذار.که بدونی چند بار 30 درصد تخفیف گرفته.
ولی میگم راهای دیگه ای هم وجود داره برای پیاده سازی این مورد
نمیتونم بگم لزوما کار اشتباهیه، چون خب هر یوزر این موضوع براش یونیکه و میتونید توی همون جدول user تعریف کنیدش
ولی من معمولا یک جدول دیگه برای این جور چیز ها میسازم و اسمش رو مثلا میذارم meta و حالا ااون حالا 2 تا چیز نیازه . اول از همه یک فیلد به اسم همون که اینوایت کد که برای هر یوزر یونیک هست . دوم این که این یوزر توسط کی معرفی شده ( از جنس کلید خارجی به یوزر)
این که کد معرف اون یوزر اینجا بیاد داده اضافی هست و لازم نیست .
در مورد درصد حساب کردن هم، توصیه ام اینه که وقتی چیزی میتونه تو لحظه حساب بشه ، حساب بکنید و ذخیره نکنید .
مثلا یک کوئری ساده بزنید ببینید چند تا یوزر مثلا از این یوزر اومده و متناسب با اون توی کنترلرتون ، تخفیف بدید .
میزان درصدی که بدست میاد بابت هر ثبت نامی که از کد معرف استفاده میکنه رو به چه شکل میشه محاسبه کرد ؟
مثلا من یک بار استفاده کردم بگه 20 درصد دوبار 40 و 5 بار استفاده کردم 100 درصد
به نظرم یه table جدید بساز
با فیلد هایid, namd , %
در ایدی که اتواینکریمنت هست
name هم نام کد معرفت
% هم میزان تخفیف
حال در محل پرداخت جدول را استخراج کن
و شرط بزار که به میزان درصد از قیمت کل کم شه
موفق باشید
@amirmalakotie
ممنونم ازتون
یه سوال فقط من میخام موقعی که کاربر ثبت نام میکنه این کد تخفیف برای هر شخص اعمال بشه
با ساخت جدول جدید میشه اینکارو کرد ؟
ن خب ببین
برا خرید ها شرط وجود اکانت بزار
در غیر این صورت کاربر نمیتونه خرید کنه چه برسه به استفاده از کد معرفت
@amirmalakotie
متوجه منظورتون نشدم
سوال من اینه من میخام هر شخصی که تو سایت ثبت نام میکنه تو پروفایل خودش یه کد تخفیف رندوم براش ثبت بشه
هر شخص به ازای ثبت نام
که بعدا به ازای افردای که توسط کد دعوت مثلا کاربر شماره یک ثبت نام کردن کد تخفیف برای کاربر شماره یک برای خریدهاش اعمال بشه
الان این روشی که رفتم یعنی درست نیست ؟
و باید یک جدول دیگه ای براش در نظر بگیرم؟
ببین داداش
باید وقتی کاربر ثبت نام کرد توی یه جدول جدید بسازید و خودکار یه کد در انجا ثبت شه
بقیه اش را هم بالا گفتم
@amirmalakotie
مشکلم اینه نمیدونم چطوری موقع ثبت نام بگم این کد رندوم رو برای هر کاربر تو دیتابیس ثبت کنه
@amirmalakotie
بله تابع رند رو میدونم در حالت عادی تو جدول کاربران برای هر کاربر یه عدد رندوم ایجاد کردم و بدرستی کار میکنه
ولی برای جدول جدا گانه مشکل تو پیاده سازیش دارم
اینکه چطور به کاربری که ثبت نام کرد متصل کنم این جدول رو تا براش عدد رندوم رو ایجاد کنه
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟