m
This commit is contained in:
@@ -22,4 +22,12 @@ interface UserServiceInterface
|
||||
public function updateProfile(User $user, array $data, ?\Illuminate\Http\UploadedFile $avatarFile = null): void;
|
||||
|
||||
public function getSentCardsToUserThisMonth(User $sender, string $receiverMsnv): int;
|
||||
|
||||
public function getReceivedPageData(User $user, string $selectedMonth, int $limit = 12, int $offset = 0): array;
|
||||
|
||||
public function getSentPageData(User $user, string $selectedMonth, int $limit = 12, int $offset = 0): array;
|
||||
|
||||
public function getReceivedFeed(User $user, string $selectedMonth, int $limit = 12, int $offset = 0): array;
|
||||
|
||||
public function getSentFeed(User $user, string $selectedMonth, int $limit = 12, int $offset = 0): array;
|
||||
}
|
||||
@@ -232,38 +232,18 @@ class UserService implements UserServiceInterface
|
||||
}
|
||||
|
||||
// Retrieve paginated list of received ThankCards for a user
|
||||
public function getReceivedPageData(User $user, string $selectedMonth): array
|
||||
public function getReceivedPageData(User $user, string $selectedMonth, int $limit = 12, int $offset = 0): array
|
||||
{
|
||||
$start = Carbon::parse($selectedMonth)->startOfMonth();
|
||||
$end = Carbon::parse($selectedMonth)->endOfMonth();
|
||||
$cards = Administration::with('senderUser')
|
||||
->where('msnv', $user->msnv)
|
||||
->whereBetween('date', [$start, $end])
|
||||
->where('received', '>', 0)
|
||||
->orderBy('date', 'desc')
|
||||
->get();
|
||||
return ['cards' => $cards];
|
||||
}
|
||||
|
||||
// Retrieve paginated list of sent ThankCards for a user
|
||||
public function getSentPageData(User $user, string $selectedMonth): array
|
||||
{
|
||||
$start = Carbon::parse($selectedMonth)->startOfMonth();
|
||||
$end = Carbon::parse($selectedMonth)->endOfMonth();
|
||||
$cards = Administration::with('receiverUser')
|
||||
->where('msnv', $user->msnv)
|
||||
$statsQuery = Administration::where('msnv', $user->msnv)
|
||||
->whereBetween('date', [$start, $end])
|
||||
->where('sent', '>', 0)
|
||||
->orderBy('date', 'desc')
|
||||
->get();
|
||||
return ['cards' => $cards];
|
||||
}
|
||||
->where('received', '>', 0);
|
||||
|
||||
$totalCards = (int) $statsQuery->sum('received');
|
||||
$totalSenders = (int) $statsQuery->whereNotNull('sender')->distinct('sender')->count('sender');
|
||||
|
||||
// Retrieve limited feed of received ThankCards for activity feed
|
||||
public function getReceivedFeed(User $user, string $selectedMonth, int $limit = 12, int $offset = 0): array
|
||||
{
|
||||
$start = Carbon::parse($selectedMonth)->startOfMonth();
|
||||
$end = Carbon::parse($selectedMonth)->endOfMonth();
|
||||
$cards = Administration::with('senderUser')
|
||||
->where('msnv', $user->msnv)
|
||||
->whereBetween('date', [$start, $end])
|
||||
@@ -272,33 +252,67 @@ class UserService implements UserServiceInterface
|
||||
->skip($offset)
|
||||
->take($limit)
|
||||
->get();
|
||||
|
||||
$hasMore = Administration::where('msnv', $user->msnv)
|
||||
->whereBetween('date', [$start, $end])
|
||||
->where('received', '>', 0)
|
||||
->skip($offset + $limit)
|
||||
->exists();
|
||||
return ['cards' => $cards, 'hasMore' => $hasMore];
|
||||
|
||||
return [
|
||||
'cards' => $cards,
|
||||
'hasMore' => $hasMore,
|
||||
'totalCards' => $totalCards,
|
||||
'totalSenders' => $totalSenders
|
||||
];
|
||||
}
|
||||
|
||||
// Retrieve paginated list of sent ThankCards for a user
|
||||
public function getSentPageData(User $user, string $selectedMonth, int $limit = 12, int $offset = 0): array
|
||||
{
|
||||
$start = Carbon::parse($selectedMonth)->startOfMonth();
|
||||
$end = Carbon::parse($selectedMonth)->endOfMonth();
|
||||
|
||||
$statsQuery = Administration::where('msnv', $user->msnv)
|
||||
->whereBetween('date', [$start, $end])
|
||||
->where('sent', '>', 0);
|
||||
|
||||
$totalCards = (int) $statsQuery->sum('sent');
|
||||
$totalReceivers = (int) $statsQuery->whereNotNull('receiver')->distinct('receiver')->count('receiver');
|
||||
|
||||
$cards = Administration::with('receiverUser')
|
||||
->where('msnv', $user->msnv)
|
||||
->whereBetween('date', [$start, $end])
|
||||
->where('sent', '>', 0)
|
||||
->orderBy('date', 'desc')
|
||||
->skip($offset)
|
||||
->take($limit)
|
||||
->get();
|
||||
|
||||
$hasMore = Administration::where('msnv', $user->msnv)
|
||||
->whereBetween('date', [$start, $end])
|
||||
->where('sent', '>', 0)
|
||||
->skip($offset + $limit)
|
||||
->exists();
|
||||
|
||||
return [
|
||||
'cards' => $cards,
|
||||
'hasMore' => $hasMore,
|
||||
'totalCards' => $totalCards,
|
||||
'totalReceivers' => $totalReceivers
|
||||
];
|
||||
}
|
||||
|
||||
// Retrieve limited feed of received ThankCards for activity feed
|
||||
public function getReceivedFeed(User $user, string $selectedMonth, int $limit = 12, int $offset = 0): array
|
||||
{
|
||||
return $this->getReceivedPageData($user, $selectedMonth, $limit, $offset);
|
||||
}
|
||||
|
||||
// Retrieve limited feed of sent ThankCards for activity feed
|
||||
public function getSentFeed(User $user, string $selectedMonth, int $limit = 12, int $offset = 0): array
|
||||
{
|
||||
$start = Carbon::parse($selectedMonth)->startOfMonth();
|
||||
$end = Carbon::parse($selectedMonth)->endOfMonth();
|
||||
$cards = Administration::with('receiverUser')
|
||||
->where('msnv', $user->msnv)
|
||||
->whereBetween('date', [$start, $end])
|
||||
->where('sent', '>', 0)
|
||||
->orderBy('date', 'desc')
|
||||
->skip($offset)
|
||||
->take($limit)
|
||||
->get();
|
||||
$hasMore = Administration::where('msnv', $user->msnv)
|
||||
->whereBetween('date', [$start, $end])
|
||||
->where('sent', '>', 0)
|
||||
->skip($offset + $limit)
|
||||
->exists();
|
||||
return ['cards' => $cards, 'hasMore' => $hasMore];
|
||||
return $this->getSentPageData($user, $selectedMonth, $limit, $offset);
|
||||
}
|
||||
|
||||
public function updateProfile(User $user, array $data, ?\Illuminate\Http\UploadedFile $avatarFile = null): void
|
||||
|
||||
Reference in New Issue
Block a user