From 67ca4917bcfa79c15c79ed1f01a1f43d68b8bdd3 Mon Sep 17 00:00:00 2001 From: Muammer Top Date: Thu, 21 Jan 2021 13:36:34 +0300 Subject: [PATCH] #3126 alibaba-theme improvment "e.4" --- ...soft.module.advs__add_is-buying_fields.php | 25 ------------------- .../advs-module/src/Adv/AdvCriteria.php | 22 +++++++++++++--- 2 files changed, 19 insertions(+), 28 deletions(-) delete mode 100644 addons/default/visiosoft/advs-module/migrations/2021_01_20_082123_visiosoft.module.advs__add_is-buying_fields.php diff --git a/addons/default/visiosoft/advs-module/migrations/2021_01_20_082123_visiosoft.module.advs__add_is-buying_fields.php b/addons/default/visiosoft/advs-module/migrations/2021_01_20_082123_visiosoft.module.advs__add_is-buying_fields.php deleted file mode 100644 index 5764620c0..000000000 --- a/addons/default/visiosoft/advs-module/migrations/2021_01_20_082123_visiosoft.module.advs__add_is-buying_fields.php +++ /dev/null @@ -1,25 +0,0 @@ - 'advs', - ]; - - protected $fields = [ - 'is_buying' => [ - 'type' => 'anomaly.field_type.boolean', - 'config' => [ - 'default' => false, - ] - ], - ]; - - protected $assignments = [ - 'is_buying' - ]; -} diff --git a/addons/default/visiosoft/advs-module/src/Adv/AdvCriteria.php b/addons/default/visiosoft/advs-module/src/Adv/AdvCriteria.php index 6ebb52fe2..1e624df4d 100644 --- a/addons/default/visiosoft/advs-module/src/Adv/AdvCriteria.php +++ b/addons/default/visiosoft/advs-module/src/Adv/AdvCriteria.php @@ -6,24 +6,33 @@ use Anomaly\Streams\Platform\Entry\EntryCriteria; use Anomaly\Streams\Platform\Image\Image; use Illuminate\Support\Facades\Auth; use Visiosoft\AdvsModule\Adv\Contract\AdvRepositoryInterface; +use Visiosoft\CustomfieldsModule\Cfvalue\CfvalueModel; +use Visiosoft\CustomfieldsModule\Cfvalue\Contract\CfvalueRepositoryInterface; use Visiosoft\RecentlyviewedadsModule\Recently\RecentlyModel; use Visiosoft\SubscriptionsModule\User\UserModel; +use Visiosoft\CustomfieldsModule\CustomField\Contract\CustomFieldRepositoryInterface; class AdvCriteria extends EntryCriteria { private $image; private $advRepository; + private $customFieldRepository; + private $cfvalueModel; public function __construct( SettingRepositoryInterface $repository, Image $image, - AdvRepositoryInterface $advRepository + AdvRepositoryInterface $advRepository, + CustomFieldRepositoryInterface $customFieldRepository, + CfvalueModel $cfvalueModel ) { $this->settings = $repository; $this->image = $image; $this->advRepository = $advRepository; + $this->customFieldRepository = $customFieldRepository; + $this->cfvalueModel = $cfvalueModel; } public function getAdvsModel() @@ -69,15 +78,22 @@ class AdvCriteria extends EntryCriteria public function buyingLeads($status = null){ $advModel = new AdvModel(); + + $customfields = $this->customFieldRepository->findBySlug('is_buying'); + $cfvalue = $this->cfvalueModel->where('custom_field_id', $customfields->id)->first(); + $latest_advs = AdvModel::query() ->whereDate('finish_at', '>=', date("Y-m-d H:i:s")) ->where('status', '=', 'approved') ->where('slug', '!=', '') - ->where('is_buying', ($status == 'buying' ? true : false)) + ->where(function ($query) use ($status, $customfields, $cfvalue) { + if ($status != null and $cfvalue->custom_field_value == 'Yes') { + $query->whereRaw('JSON_CONTAINS(cf_json, \'"' . $cfvalue->id . '"\', \'$.cf' . $customfields->id . '\')'); + } + }) ->orderBy('publish_at', 'desc') ->paginate($this->settings->value('streams::per_page')); - $ads = $advModel->getLocationNames($latest_advs); foreach ($ads as $index => $ad) { $ads[$index]->detail_url = $advModel->getAdvDetailLinkByModel($ad, 'list');