Paradox 3 گزارش دادن ارسال شده در بهمن 1 سلام وقت بخیر من میخام هر کاربر موقع ثبت نام یک کد دعوت اختصاصی داشته باشه که اگه هر شخصی از کد دعوت استفاده کرد مثلا 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(); که کاربر موقع ثبت نام کد دعوت مورد نظر رو اینجا وارد کنه بر اساس این فیلد باید تعداد دفعات رو نمایش بدم ؟و درصد رو اعمال کنم؟ نقل قول Share this post Link to post Share on other sites
saber 143 گزارش دادن ارسال شده در بهمن 1 با همون ستونها میتونید کار کنید یکی برای معرفی افراد جدید هست دومی هم که برای این هست که مشخص بشه کاربر توسط چه کسی معرفی شده و طبق همون ستون reagent_code باید تعداد افرادی رو که معرفی کرده پیدا کنید 1 نقل قول Share this post Link to post Share on other sites
Paradox 3 گزارش دادن ارسال شده در بهمن 1 در 33 دقیقه قبل، saber گفته است : با همون ستونها میتونید کار کنید یکی برای معرفی افراد جدید هست دومی هم که برای این هست که مشخص بشه کاربر توسط چه کسی معرفی شده و طبق همون ستون reagent_code باید تعداد افرادی رو که معرفی کرده پیدا کنید ممنونم پس با همین دو فیلدی که دارم میتونم انجام بدم از تابع count باید استفاده کرد؟ برای نمایش تمام کاربران خب میگیم مدل رو count کنه برای یک ایتم چطوری میشه تعداد رو محاسبه کرد که چند نفر استفاده کردن؟ نقل قول Share this post Link to post Share on other sites
saber 143 گزارش دادن ارسال شده در بهمن 1 باید از where استفاده کنید و count رو بگیرید $count = User::where('reagent_code', $user->invite_code)->count(); 1 نقل قول Share this post Link to post Share on other sites
Paradox 3 گزارش دادن ارسال شده در بهمن 1 در 6 ساعت قبل، saber گفته است : باید از where استفاده کنید و count رو بگیرید $count = User::where('reagent_code', $user->invite_code)->count(); ممنون مهندس من اینکارو که کردم دفعه اول که از کد دعوت استفاده کردم عدد 2 رو نمایش داد تو خروجی سه بار دیگه ثبت نام کردم با کد دعوت باز همون 2 رو که دفعه اول نمایش میداد رو نشون میده نقل قول Share this post Link to post Share on other sites
Paradox 3 گزارش دادن ارسال شده در بهمن 1 اینکه تعداد 2 نوشته یکیش برای ثبت نام خودم یک تعداد ثبت شد یعنی وقتی هر کاربر تو سایت ثبت نام میکنه تعداد 1 رو براش در نظر میگیره؟ باید قبل اینکه کسی کد وارد کرد 0 بزنه ولی چرا یک میزنه ؟ نقل قول Share this post Link to post Share on other sites
saber 143 گزارش دادن ارسال شده در بهمن 1 دیتابیستون رو چک کنید ببینید اطلاعات چطوری ذخیره شدن احتمال داره اطلاعات درست توی دیتابیستون ذخیره نشده نقل قول Share this post Link to post Share on other sites
Paradox 3 گزارش دادن ارسال شده در بهمن 1 در 16 ساعت قبل، saber گفته است : دیتابیستون رو چک کنید ببینید اطلاعات چطوری ذخیره شدن احتمال داره اطلاعات درست توی دیتابیستون ذخیره نشده زمانی که هر کاربر ثبت نام میکنه یک invite_code براش ثبت میشه تو دیتابیس وقتی هم کاربر جدید invite_code کاربر دیگه رو وارد میکنه به درستی تو دیتابیس ذخیره میشه اتفاقی که داره میفته به ازای هر ثبت نامی که انجام میشه یک invite_code که ثبت میشه برای تمامی کاربران رو جمع میکنه و تو پروفایل همه کاربران همین جمع کل رو نمایش میده نقل قول Share this post Link to post Share on other sites
Paradox 3 گزارش دادن ارسال شده در بهمن 1 درست شد مهندس ممنون به این شکل نوشتم $count = User::where('reagent_code', Auth::user()->invite_code)->count(); نقل قول Share this post Link to post Share on other sites
Paradox 3 گزارش دادن ارسال شده در بهمن 1 میزان درصدی که بدست میاد بابت هر ثبت نامی که از کد معرف استفاده میکنه رو به چه شکل میشه محاسبه کرد ؟ مثلا من یک بار استفاده کردم بگه 20 درصد دوبار 40 و 5 بار استفاده کردم 100 درصد نقل قول Share this post Link to post Share on other sites
Paradox 3 گزارش دادن ارسال شده در بهمن 1 من با سوییچ برای اینکه تو ویو نشون بده چنبار کاربر از کد استفاده کرد میزان تخفیف رو نوشتم فقط یه سوال آیا این روشی که انجام میدم درسته ؟ نیازی نیست یه جدول جدا برای تخفیف ایجاد کنم درکل به جای اینکه تو جدول یوزر باشه؟ اگه یه جدول جداهم بزارم باز میشه کاری کرد موقع ثبت نام هر کاربر کد تخفیف رندوم براش ثبت بشه ؟ نقل قول Share this post Link to post Share on other sites
saber 143 گزارش دادن ارسال شده در بهمن 1 توی پست اول گفتید هر کاربر که از کد معرف استفاده کنه مثلا 30 درصد تخفیف به کاربر معرف تعلق بگیره اگر اینطوری باشه و میخواید برای هر ثبت نام معرفی شده یه کد تخفیف جنریت کنید میتونید یه جدول برای تخفیفها بسازید و وقتی کاربری با کد یه کاربر ثبت نام کرد تخفیف رو براش توی جدول تخفیفها ثبت کنید این جدول هم میتونه ستونهای زیر رو داشته باشه: discount_id discount_user_id شناسه کاربری که تخفیف بهش تعلق گرفته discount_code کد تخفیف ایجاد شده discount_percent درصد تخفیف discount_status وضعیت تخفیف که 0 یا 1 بگیره که پیشفرض 0 باشه و زمانی که از کد تخفیف استفاده شد به 1 تغییر بدید که مشخص باشه کدوم تخفیفها استفاده شده created_at updated_at کلا تخفیف حالتهای مختلفی میتونه داشته باشه ولی با این روش به نظرم چیزی رو که میخواید میتونید پیاده سازی کنید. نقل قول Share this post Link to post Share on other sites
Paradox 3 گزارش دادن ارسال شده در بهمن 1 اره اول به این شکل گفتن الان ولی تغییر کرد !! بابت هر کاربری که از کد تخفیف استفاده میکنه درصدها متفاوت باشه ... اگه 5 نفر استفاده کردن 50 درصد تخفیف اگه 10 نفر 100 درصد یا به این شکل یک بار استفاده شد بگه 20 درصد دوبار 40 و 5 بار استفاده کردم 100 درصد ... پس باید این شرایط باید جدول جدا درست کرد و اینکه درصدها رو بشه تغییر دادم باید کوئری زد فقط درسته ؟ نقل قول Share this post Link to post Share on other sites
Paradox 3 گزارش دادن ارسال شده در بهمن 1 جدول به این شکل میشه ؟ Schema::create('discounts', function (Blueprint $table) { $table->id(); $table->foreignId('user_id')->constrained()->onDelete('cascade'); $table->string('code'); $table->integer('percent'); $table->boolean('status')->default(0); $table->timestamps(); }); حالا من برای مثلا جدول محصول بخوام باید این جدول رو هم داشته باشم ؟ یا مثل یوزر فقط یه فیلد product_id بزارم ؟ Schema::create('discount_product', function (Blueprint $table) { $table->foreignId('product_id')->constrained()->onDelete('cascade'); $table->foreignId('discount_id')->constrained()->onDelete('cascade'); $table->primary(['discount_id' , 'product_id']); }); نقل قول Share this post Link to post Share on other sites
saber 143 گزارش دادن ارسال شده در اسفند 1 در در ۱۴۰۱/۱۱/۲۸ در 12:26، Paradox گفته است : اره اول به این شکل گفتن الان ولی تغییر کرد !! بابت هر کاربری که از کد تخفیف استفاده میکنه درصدها متفاوت باشه ... اگه 5 نفر استفاده کردن 50 درصد تخفیف اگه 10 نفر 100 درصد یا به این شکل یک بار استفاده شد بگه 20 درصد دوبار 40 و 5 بار استفاده کردم 100 درصد ... پس باید این شرایط باید جدول جدا درست کرد و اینکه درصدها رو بشه تغییر دادم باید کوئری زد فقط درسته ؟ باید یه بخش تنظیمات داشته باشید و از طریق اون همیشه طبق نیازی که دارید تخفیف رو تعیین کنید مثلا در تنظیمات مشخص کنید تعداد معرف: x و میزان تخفیف y بعد براساس تعداد معرفیهای کاربر و تنظیماتی که انجام دادید میتونید میزان تخفیف رو محاسبه کنید. نقل قول Share this post Link to post Share on other sites
saber 143 گزارش دادن ارسال شده در اسفند 1 در در ۱۴۰۱/۱۱/۲۸ در 12:48، Paradox گفته است : جدول به این شکل میشه ؟ Schema::create('discounts', function (Blueprint $table) { $table->id(); $table->foreignId('user_id')->constrained()->onDelete('cascade'); $table->string('code'); $table->integer('percent'); $table->boolean('status')->default(0); $table->timestamps(); }); حالا من برای مثلا جدول محصول بخوام باید این جدول رو هم داشته باشم ؟ یا مثل یوزر فقط یه فیلد product_id بزارم ؟ Schema::create('discount_product', function (Blueprint $table) { $table->foreignId('product_id')->constrained()->onDelete('cascade'); $table->foreignId('discount_id')->constrained()->onDelete('cascade'); $table->primary(['discount_id' , 'product_id']); }); اون جدولی که بهتون گفتم براساس اون سناریوی اولی بود که گفته بودید. الان میخواید بطور جداگانه برای هر محصولی تخفیف ایجاد کنید؟ یا میخواید کدهای تخفیف استفاده شده رو برای هر محصولی مشخص کنید؟ نقل قول Share this post Link to post Share on other sites
Paradox 3 گزارش دادن ارسال شده در اسفند 1 نه نمیخام جدول تخفیف برای هر محصول ایجاد کنم ، میخوام کدهای تخفیف رو برای محصول مشخص کنم میخام به ازای هر کاربرانی که معرفی میشه ازسمت یک شخص بهش کد تخفیف تعلق بگیره به این شکل اگه 5 نفر استفاده کردن 50 درصد تخفیف اگه 10 نفر 100 درصد اعمال بشه برای خرید مثلا من فقط یه بخش دارم تو سایت که کاربران باید اشتراک تهیه کنن تا بتونن استفاده کنن حالا میخام اگه کد تخفیف داشتن بتونن هزینه کمتر بدن با استفاده از کد تخفیف یا اگه مثلا 10 نفر رو معرفی کرد به ازای اون تخفیف بتونه رایگان از اون اشتراک استفاده کنه نقل قول Share this post Link to post Share on other sites