fix some bugs from chart
This commit is contained in:
@@ -78,6 +78,53 @@ class CustomerController extends SuperController
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* حضور سبک برای چت پشتیبانی: chat_room_id / chat_user_id → last_seen_at
|
||||||
|
* (همان منبع آنلاین بودن صفحهی کاربران آنلاین).
|
||||||
|
*/
|
||||||
|
public function chatPresence()
|
||||||
|
{
|
||||||
|
$hasRoom = \Schema::hasColumn('customers', 'chat_room_id');
|
||||||
|
$hasUser = \Schema::hasColumn('customers', 'chat_user_id');
|
||||||
|
|
||||||
|
if (! $hasRoom && ! $hasUser) {
|
||||||
|
return response()->json([
|
||||||
|
'online_within_seconds' => CustomerPresenceService::ONLINE_THRESHOLD_SECONDS,
|
||||||
|
'rows' => [],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$columns = ['id', 'last_seen_at'];
|
||||||
|
if ($hasRoom) {
|
||||||
|
$columns[] = 'chat_room_id';
|
||||||
|
}
|
||||||
|
if ($hasUser) {
|
||||||
|
$columns[] = 'chat_user_id';
|
||||||
|
}
|
||||||
|
|
||||||
|
$query = Customer::query()
|
||||||
|
->where('is_archive', false)
|
||||||
|
->select($columns);
|
||||||
|
|
||||||
|
$query->where(function ($q) use ($hasRoom, $hasUser) {
|
||||||
|
if ($hasRoom) {
|
||||||
|
$q->orWhere(function ($inner) {
|
||||||
|
$inner->whereNotNull('chat_room_id')->where('chat_room_id', '!=', '');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if ($hasUser) {
|
||||||
|
$q->orWhere(function ($inner) {
|
||||||
|
$inner->whereNotNull('chat_user_id')->where('chat_user_id', '!=', '');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return response()->json([
|
||||||
|
'online_within_seconds' => CustomerPresenceService::ONLINE_THRESHOLD_SECONDS,
|
||||||
|
'rows' => $query->get(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
public function updateAdmin(Request $request , $id)
|
public function updateAdmin(Request $request , $id)
|
||||||
{
|
{
|
||||||
$data = $request->all();
|
$data = $request->all();
|
||||||
|
|||||||
@@ -106,6 +106,7 @@ Route::middleware('auth:user')->group(function (){
|
|||||||
//--------customer
|
//--------customer
|
||||||
Route::post('/customer/table',[CustomerController::class,'tableWallets']);
|
Route::post('/customer/table',[CustomerController::class,'tableWallets']);
|
||||||
Route::get('/customer/online',[CustomerController::class,'onlineList']);
|
Route::get('/customer/online',[CustomerController::class,'onlineList']);
|
||||||
|
Route::get('/customer/chat-presence',[CustomerController::class,'chatPresence']);
|
||||||
Route::get('/customer/{id}/assets',[CustomerController::class,'assetsSummary']);
|
Route::get('/customer/{id}/assets',[CustomerController::class,'assetsSummary']);
|
||||||
Route::get('/customer/active/{id}',[CustomerController::class,'active']);
|
Route::get('/customer/active/{id}',[CustomerController::class,'active']);
|
||||||
Route::get('/customer/archive/{id}',[CustomerController::class,'archive']);
|
Route::get('/customer/archive/{id}',[CustomerController::class,'archive']);
|
||||||
|
|||||||
Reference in New Issue
Block a user