راکت

پیشنهاد راه حل برای قسمت تیکت های سایت

12 پاسخ

سلام دوستان من میخوام تو قسمت تیکت های سایت وقتی یه کارشناس در حال پاسخ دادن هست الباقی کارشناس ها نتونن پاسخ بدن به اون تیکت و نشون بده که مثلا کاربر فلان در حال پاسخگویی هست .

ثبت پرسش جدید

پاسخ‌ها

12
mkt
mkt
@mkt

سلام
میشه Id تیکت و Id کارشناس را در سشن قرار داد موقعی که کارشناس تیکت را باز میکنه و از اون استفاده کرد. یا توی جدول هایی که طراحی کردی فیلدی در نظر گرفت. کارهای متفاوتی میشه انجام داد.

jaber
jaber
@jabersabzali

تخصص: برنامه‌نویس

تو جدول اگه فیلدی اضافه کنم اگه یه نفر مرورگر رو ببنده مشکل بر میخوره
حالا راحت ترین راه حل رو بگین

شاید پاسخ شما همین‌جا باشد

mahdi khanzadi
mahdi khanzadi
@khanzadimahdi

تخصص: Software engineer

رکورد جدول رو به مدت 5 دقیقه لاک کنید و بعدش از حالت لاک خارج کنید.
یه فیلد به جدول اظافه کنید اگه 1 بود یعنی لاک شده و اگه 0 بود یعنی بازه. به هر کارشناس 5 دقیقه (یا بیشتر) فرصت بدید تا جواب بده و بعد از اون (یا بعد از ثبت جواب) رکورد جدول رو به حالت قبل برگردونید.

jaber
jaber
@jabersabzali

تخصص: برنامه‌نویس

خب بازم شما فک کن کارشناسی که داره پاسخ میده به هر دلیلی صفحش رفرش بشه بعدش باید ۵ دقیقه صبر کنه تا بتونه خودش دوباره جواب بده یا هر زمانی که ما در نظر گرفتیم
به نظرم راه حلی حتما برای این موضوع هست البته استفاده از سوکت ها هم هست ولی خب برا همچین موضوع کوچیکی فک کنم نیاز نباشه
@hesammousavi ممنون میشم اگه کمک کنین

نوید
نوید
@navids

تخصص: برنامه نویس Go / Django

تیکت رو با تایم و user کاربر لاک کن ، در اینصورت مشکلی نخواهی داشت
هر وقت یه کاربر یه تیکتی رو باز کرد تا 5 دقیقه فقط توسط خودش قابل پاسخ خواهد بود
وقتی هم رفرش کرد، اون 5 دقیقه اش تمدید میشه

jaber
jaber
@jabersabzali

تخصص: برنامه‌نویس

دوستان ممنون از جواباتون ولی پیام های قبل رو بخونین آخه بازم نمیشه

علی فرمانی
علی فرمانی
@farmani

تخصص: فرانت اند

@jabersabzali
بیاین با جاوا اسکریبت یه روت رو وقتی پشتیبان تو تکست اکسترای پاسخگویی keyup کرد چک کنید .
حالا تو اون روت بیاین یوزر پشتیبان و تیکت رو بگیرین و تو یه جدول تو دیتابیس ذخیره کنید.
حالا هر پشتیبان دیگه ای بیاد اون تیکتو باز کنه بالاش میتونید تنظیم کنید اگر تو جدول مورد نظر لاگی بود که کمتر از 1 یا 5 دقیقه یا هرچقدر گذشته بود آلارم میزنه که پشتیبان x داره پاسخ میده . بعد این پشتیبانم اگه بیاد به اون الارم نادیده بگیره و پاسخ بفرسته اون پشتیبانی قبلی بعد بیاد ارسال پاسخ رو بزنه میتونید بیاید چک کنید اگر از تاریخی که این پشتیبان اولین keyup رو انجام داد به بعدش پاسخی ارسال شده باشه به این پشتیبان الرت بده یک پاسخ توسط پشتیبان x ارسال شده اگه میخاهید پاسخ شما هم ارسال بشه بله رو بزن ...
این میتونه یه روشش باشه .
روش های زیادی داره .
در نهایت هم میتونید بعد گذشت مثلا 1 ساعت از اخرین پاسخ لاگهای اون تیکتو با یه کرون پاک کنید دیتابیس حجیم نشه . فقط یه لاک که چه کسی پاسخ داده رو تو جدول لاگ اصلی بزارید .
برای ریکوئست هایی که جاوا اسکریپت هی میفرسته نگران نباشید تعداد پشتیبانا زیاد نیست . فشار نمیاد .

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

درود
میتونید از یه رابطه چند به چند در لاراول استفاده کنید. هنگامی که کارشناس داره پاسخ میده id کارشناس رو در جدولی attach و پس از پایان کارش detach کنید
موفق باشید

jaber
jaber
@jabersabzali

تخصص: برنامه‌نویس

ممنون اقای براتی اما شما فک کن در حین پاسخ مرورگر رو بست
@ali.bayat

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

اصلا مهم نیست.. مرورگر رو ببنده ..

وقتی شما از attach استفاده کنی، در Pivot Table یه رکورد ذخیره میشه و تا هنگامی هم که این رکورد detach نشده.. در واقع کارشناس در حال پاسخ هست

jaber
jaber
@jabersabzali

تخصص: برنامه‌نویس

خب علی اقا دقیقا مشکل من همینه نباید اینجوری باشه شما فک کن atach بشه ولی دیگه deatach نشه اونوقت هیچکس قابل پاسخ نخواهد بود !
باید جوری باشه که وقتی طرف در حال پاسخ باشه کسی نتونه اما اگه از اون صفحه رفت به حالت اول برگرده مثل سوکت که توچت انلاین استفاده میشه باید کار کنه ولی خب نمیخوام از سوکت استفاده کنم
@ali.bayat

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

در جاوااسکریپت رویدادهایی هستند که قبل از بسته شدن صفحه اتفاق می‌افتند.
رویدادهای onbeforeunload و onunload در شئ window جاوااسکریپت قابل استفاده هستند:

window.onbeforeunload = function(){
   // Do something
}

و

window.addEventListener("beforeunload", function(e){
   // Do something
}, false);

نسخه jquery هم به این شکل:

$(window).unload(function(){
    // Do Something
});

و jquery نسخه ۳ به بالا:

$(window).on("unload", function(e) {
    // Do Something
});

حال میشه چک کرد... اگر کارشناس به این کاربر attach شده و داره مرورگر رو می‌بنده ==> ما این کارشناس رو detach می‌کنیم...
تنها کاری که لازمه اینه که متغیر ها رو از PHP به محیط جاوااسکریپت انتقال بدید و شرط‌ها رو چک کنید

موفق باشید

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

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