From cabe49f00d3eb397def7d09a97c52a3b60865bbb Mon Sep 17 00:00:00 2001 From: Diatrex Date: Wed, 28 Oct 2020 15:40:39 +0300 Subject: [PATCH] #2474 e-madencilik ads number bug --- .../advs-module/src/Adv/AdvCriteria.php | 9 ++++++-- .../advs-module/src/Adv/AdvRepository.php | 23 +++++++++++++++---- .../Adv/Contract/AdvRepositoryInterface.php | 4 +++- 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/addons/default/visiosoft/advs-module/src/Adv/AdvCriteria.php b/addons/default/visiosoft/advs-module/src/Adv/AdvCriteria.php index b6808eb48..6c62c79ae 100644 --- a/addons/default/visiosoft/advs-module/src/Adv/AdvCriteria.php +++ b/addons/default/visiosoft/advs-module/src/Adv/AdvCriteria.php @@ -84,9 +84,14 @@ class AdvCriteria extends EntryCriteria return $ads; } - public function findAdsByCategoryId($catId, $level = 1) + public function findAdsByCategoryId($catId, $level = 1, $limit = 20) { - return $this->advRepository->getByCat($catId, $level); + return $this->advRepository->getByCat($catId, $level, $limit); + } + + public function countAdsByCategoryId($catId, $level = 1) + { + return $this->advRepository->countByCat($catId, $level); } public function getCurrentLocale() diff --git a/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php b/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php index f61347c48..eb1b70eb9 100644 --- a/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php +++ b/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php @@ -4,6 +4,7 @@ use Anomaly\FilesModule\File\Contract\FileRepositoryInterface; use Anomaly\FilesModule\Folder\Contract\FolderRepositoryInterface; use Anomaly\Streams\Platform\Model\Advs\AdvsAdvsEntryModel; use Illuminate\Support\Carbon; +use Illuminate\Support\Facades\DB; use Intervention\Image\Facades\Image; use Visiosoft\AdvsModule\Adv\Contract\AdvRepositoryInterface; use Anomaly\Streams\Platform\Entry\EntryRepository; @@ -377,15 +378,19 @@ class AdvRepository extends EntryRepository implements AdvRepositoryInterface return $ads; } - public function getByCat($catID, $level = 1) + public function getByCat($catID, $level = 1, $limit = 20) { $advs = $this->model ->whereDate('finish_at', '>=', date("Y-m-d H:i:s")) ->where('status', 'approved') ->where('slug', '!=', '') - ->where('cat' . $level, $catID) - ->limit(20) - ->get(); + ->where('cat' . $level, $catID); + + if ($limit) { + $advs = $advs->limit($limit); + } + + $advs = $advs->get(); $ads = $this->model->getLocationNames($advs); @@ -397,6 +402,16 @@ class AdvRepository extends EntryRepository implements AdvRepositoryInterface return $ads; } + public function countByCat($catID, $level = 1) + { + return DB::table('advs_advs') + ->whereDate('finish_at', '>=', date("Y-m-d H:i:s")) + ->where('status', 'approved') + ->where('slug', '!=', '') + ->where('cat' . $level, $catID) + ->count(); + } + public function getCategoriesWithAdID($id) { $adv = $this->model->find($id); diff --git a/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvRepositoryInterface.php b/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvRepositoryInterface.php index 589404ee8..abea0bc85 100644 --- a/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvRepositoryInterface.php +++ b/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvRepositoryInterface.php @@ -35,7 +35,9 @@ interface AdvRepositoryInterface extends EntryRepositoryInterface public function latestAds(); - public function getByCat($catID, $level = 1); + public function getByCat($catID, $level = 1, $limit = 20); + + public function countByCat($catID, $level = 1); public function getCategoriesWithAdID($id);