thevil
3 سال پیش توسط thevil مطرح شد
4 پاسخ

طراحی بک اند خرید پلن کاربری

سلام ، من یه سایت دارم و میخواهم توش پلن کاربری بفروشم ، یه جدول user درست کردم که توش ( به جز موارد معمول ) ، نام پلن و expire date ، وجود داره ، بعد یه جدول Payments هم مربوط به انجام خرید و وضعیت اون ها درست کردم ، بعد سوال من اینکه بر فرض کسی دو تا پلن 1 ساله رو به سبد خرید اضافه کرد چطوری بعد اینکه خرید موفقیت آمیز بود ، اینکه چند تا پلن خریده رو واکشی کنم و هم اینکه به طور مثال یه پلن نقره یه ساله اضافه کرد و یه پلن طلایی یه ساله اونوقت چطوری میشه ؟ اگه کسی قبلا مشابهی انجام داده خوشحال میشم بتونم از تجربیاتش استفاده کنمو


ثبت پرسش جدید
حسن حکمتی
تخصص : برنامه نویس وب و بلاکچین
@hekmati 3 سال پیش مطرح شد
0

سلام
ببینید شما نمیتونید برای یک پلن خاص هم نقره ای هم طلایی رو همزمان به کسی اختصاص بدید، پلن ها به یک سروی ویژگی محدود شدن امکان نداره یک کاربر همزمان هم بتواند یک ویژگی را داشته باشد هم نداشته باشد! پس توی کارت باید این قسمت رو لحاظ کنید اگر یک پلن انتخاب شده بود هر گاه یک پلن دیگه انتخب بشه پلنهای دیگه کنسل بشن. برای زمانی که دو ساله بخواد پلن دریافت کنه می تونید فیلد ظریب دو رو براش در نظر بگیرید.
برای جدول orders هم بستگی به نحوه ارایه سفارش داره، اطلاعاتی که تا حالا دادید همون plans کفایت میکنه، جزییات کار شما برای ما شفاف نیست مثلا ما نمیدونیم پروسه شما درگیر زنجیره تامین کالاست یا اینکه فقط چند پلن محدود ارایه میدید.


مهدی
تخصص : برنامه نویس
@mahdiam200 3 سال پیش مطرح شد
0

با سلام برای انجام اینکار باید به جای ساخت فیلدهای پلن در جدول user،یه جدول به نام plans بسازید و با استفاده از رابطه‌ی یک به چند هر کاربر را به یک یا چند طرح متصل کنید


حسن حکمتی
تخصص : برنامه نویس وب و بلاکچین
@hekmati 3 سال پیش مطرح شد
0

سلام
برای تعامل بهتر با سیستم بهتره نامگذاری ها رو مرتبط انجام بدید مثلا Payments برای پرداخت ها مناسبه نه خریدها.
plans هم برای لیست پنل های موجود سیستم بهتره و می تونید credit رو هم برای اعتبار کاربر در نظر بگیرید یعنی وقتی کاربر از لیست پنل ها انتخاب و خرید رو انجام میده در تیبل credit اعتبارش اضافه بشه.
حالا اگر منظور شما از واکشی پلن های خریداری شده بررسی اعتبار کاربر هست می تونید middleware برای پلن ها تعریف کنید و بر اساس پلن خریداری شده سطح دسترسی کاربر مشخص بشه. اگر هم منظور اینه که صورتحساب خرید رو واکشی کنید که بین مدل user و credit باید ارتباط one-to-many ایجاد کنید.
در مورد سوال بعدی شما یک کاربر همزمان نمیتونه هم پلن نقره ای داشته باشه هم پلن طلایی اما می تونید این فرایند رو پیاده سازی کنید که اگر یک کاربر ابتدا یک پلن نقره ای خریداری کرد و پس از مدتی تصمیم گرفت پلن اون رو به پلن طلایی ارتقا بده این روند رو اجرا کنید.
چون پلن شما دارای تاریخ انقضا هست مثلا یک ساله قیمت یکساله پلن نقره ای رو بر حسب روز به دست بیارید بعد تعداد روز سپری شده رو از کل مبلغ پردختی کسر کنید و باقی مانده رو به عنوان اعتبار ریالی فعلی کاربر در نظر بگیرید حالا این مبلغ رو از کل مبلغ پلن طلایی کسر کنید تا کاربر با پرداخت قیمت جدید به پلن طلایی ارتقا پیدا کنه. در این روش نیاز نیست زمان رو دستکاری کنید.
روش های دیگری هم میشه پیاده کرد. اما در همه اونها باید مانده اعتبار فعلی کاربر رو به حساب بعدیش انتقال بدید.


thevil
تخصص : برنامه نویس خسته
@thevilgh 3 سال پیش مطرح شد
0

@hekmati سلام ، خیلی ممنون از پاسخ خوبتون ، بیشتر مشکل من سر پرداخت اولیه هست ، که اگه طرف تو سبدش یه ساله نقره ای و یه ساله طلایی اضافه کرد ( که خب قاعدتا هیچکس انجام نمیده ولیکن بهتره جلوگیری بشه ) ، چطوری این هندل بشه ، یکی از ایده های خودم اینکه بعد از اضافه کردم ایتم جدید ، ایتم قبلی از cart پاک بشه ولی مشکل اینکه کسی بخواد 2 ساله اضافه کنه چیکار کنم ؟ فیلد تعداد تو خرید اضافه کنم مثلا میشه ولی دنبال راه ساده تری بودم ولی اگار نیست ، یه سوال دیگه هم داشتم اونم اینکه نیاز به جدول Orders در کنار Payments نیاز دارم ؟


حسن حکمتی
تخصص : برنامه نویس وب و بلاکچین
@hekmati 3 سال پیش مطرح شد
0

سلام
ببینید شما نمیتونید برای یک پلن خاص هم نقره ای هم طلایی رو همزمان به کسی اختصاص بدید، پلن ها به یک سروی ویژگی محدود شدن امکان نداره یک کاربر همزمان هم بتواند یک ویژگی را داشته باشد هم نداشته باشد! پس توی کارت باید این قسمت رو لحاظ کنید اگر یک پلن انتخاب شده بود هر گاه یک پلن دیگه انتخب بشه پلنهای دیگه کنسل بشن. برای زمانی که دو ساله بخواد پلن دریافت کنه می تونید فیلد ظریب دو رو براش در نظر بگیرید.
برای جدول orders هم بستگی به نحوه ارایه سفارش داره، اطلاعاتی که تا حالا دادید همون plans کفایت میکنه، جزییات کار شما برای ما شفاف نیست مثلا ما نمیدونیم پروسه شما درگیر زنجیره تامین کالاست یا اینکه فقط چند پلن محدود ارایه میدید.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام