اذهب إلى المحتوى
  • 0

استخدام Schedule في لارافيل

Tamim Fahed

السؤال

السلام عليكم،
انني اقوم ببناء موقع الكتروني لمزاد بواسطة لارافيل.. بحيث يقوم البائع بإنشاء عرض البيع ويستطيع المستخدمين وضع اسعار شرائهم على هذا العرض.

الآلية هي كالتالي: 

يقوم البائع بإنشاء صفقته ووضع جدولة لها ( أي الوقت الذي سينتهي فيه استقبال طلبات الشراء أو الاسعار) وهي: يومياً، او اسبوعياً، او شهرياً.


المشكلة هي أن البائع عند إنشائه للعرض يجب أن يقوم بجدولته بحيث يتم إنهاء هذه الصفقة ضمن الموقع حسب الجدولة التي اختارها مثلاً (يومياً في وقت محدد، اسبوعياً في أيام وأوقات محددة، شهرياً في أيام و أوقات محددة) ومن ثم يجب إعادة فتح نفس العرض(نسخة جديدة منه) تلقائياً بعد الانتهاء. وأيضاً يجب أن تكون جميع العروض متاحة ضمن الموقع خلال الشهر الحالي، أي يجب ان يستطيع المستخدم وضع اسعاره على أي عرض مجدول خلال هذا الشهر وليس فقط أقرب عرض.

كيف يمكنني تنفيذ ذلك باستخدام لارافل schedule? وما هي أفضل بنية لقاعدة البيانات لذلك؟

شكراً لكم

 

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0
اقتباس

كيف يمكنني تنفيذ ذلك باستخدام لارافل schedule

الفكرة أنك تقوم بتخزين الوقت أو التاريخ لكل صفقة ويتم وضع عمود في الجدول  للحالة   تسميه حسب ما تريد  وبمجرد  أن يتم إنشاء الصفقة تضع القيمة 1 في العمود الخاص بالحالة وتضع بيانات نهاية الجدولة في  عمود  التاريخ , وفي الschedule  تقوم بفحص كل دقيقة أو كل يوم حسب ماتريد وطبعا من خلال أن تقوم بإنشاء جملة إستعلام للقيام بذالك , فإذا لم تتجاوز الصفقة التاريخ المحدد تبقي  القيمة في عمود الحالة 1  وإذا تجاوزت الصفقة التاريخ المحدد تقوم بعمل  تحديث على قيمة الحالة ل 0  وهنا تستطيع من خلال قيمة الحالة  التحكم في  إظهار الصفقة أي أنها لو كانت قيمتها واحد 1 تبقي ظاهرة ولو تغيرت ل 0 يتم إخفاءها . 

اقتباس

وما ي أفضل بنية لقاعدة البيانات لذلك

تقوم بإنشاء جدول لصفقات تضع فيه التاريخ  والوقت  لكل صفقة و عمود  لحالة الصفقة  وأيضا المعرف  الخاص بالمستخدم  أي  FOREIGN KEY  وةتضع أيضا بيانات الصفقة 

وبالنسبة للطلبات الأسعار ممكن تعمل جدول  تخزن فيه  id للمستخدم الذي أضاف السعر , وid  لصاحب الصفقة , وتخزن قيم الأسعار  

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

شكراً للرد،
ولكن المشكلة هي بجدولة الصفقات،
أي يجب على البائع إنشاء صفقة واحدة وجدولتها (اسبوعياً مثلاً).
ثم يجب على الصفقة أن تبدأ باستقبال طلبات الشراء مباشرة ولمدة اسبوع وعند انتهاء تاريخ الصفقة يجب تلقائياً إنشاء صفقة جديدة بنفس مواصفات هذه الصفقة للاسبوع المقبل وهكذا.

هل هنالك بنية أفضل لقاعدة البيانات أو كود بسيط كمثال لتحقيق ذلك؟


شكراً
 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
اقتباس

أي يجب على البائع إنشاء صفقة واحدة وجدولتها (اسبوعياً مثلاً).

تمام يتم ذلك من خلال  دالة store إن قام البائع  بالضغط على  أيقونة إنشاء صفقة  يقوم بإدخال التاريخ البدء وتاريخ الانتهاء  ثم يتم توجيهه إلى دالة store  وتخزين البيانات بشكل عادي 

اقتباس

ثم يجب على الصفقة أن تبدأ باستقبال طلبات الشراء مباشرة ولمدة اسبوع

  تمام عند كل طلب شراء تقوم بالتحقق من تاريخ طلب الشراء وتقارنه مع تاريخ انتهاء الصفقة  

اقتباس

وعند انتهاء تاريخ الصفقة يجب تلقائياً إنشاء صفقة جديدة بنفس مواصفات هذه الصفقة للاسبوع المقبل وهكذا.

هنا يبدا وظيفة الجدولة  من خلال  دالة ال handle   هنا  كود تقريبي لفكرتك , إن كانت الحالة أو ممكن تقوم بذلك من خلال التحقق من التاريخ لكل صفقة  من  خلال التاريخ الحالي  وتقوم بتغير ال حالة على أساسه   

public function handle()
    {
       $Deals =Deal::all();
        $Date_now=Carbon::now();
	
        foreach($Deals as $Deal){

    	 if($Date_now >= $user->end_date){

            $Deals->update(['status'=>1]);
            Deal::Create([
                'name' => ''
                'date'=> ' '
            ]);
			}
        } }

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...