feat: add store_id conditions (#43)
This commit is contained in:
@@ -0,0 +1,16 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Openguru\OpenCartFramework\Migrations\Migration;
|
||||||
|
|
||||||
|
return new class extends Migration {
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
$sql = <<<SQL
|
||||||
|
ALTER TABLE `telecart_customers`
|
||||||
|
ADD COLUMN `store_id` INT NOT NULL DEFAULT 0 AFTER `oc_customer_id`
|
||||||
|
SQL;
|
||||||
|
|
||||||
|
$this->database->statement($sql);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
@@ -10,6 +10,7 @@ use Openguru\OpenCartFramework\Http\Request;
|
|||||||
use Openguru\OpenCartFramework\ImageTool\ImageFactory;
|
use Openguru\OpenCartFramework\ImageTool\ImageFactory;
|
||||||
use Openguru\OpenCartFramework\QueryBuilder\Builder;
|
use Openguru\OpenCartFramework\QueryBuilder\Builder;
|
||||||
use Openguru\OpenCartFramework\QueryBuilder\JoinClause;
|
use Openguru\OpenCartFramework\QueryBuilder\JoinClause;
|
||||||
|
use Openguru\OpenCartFramework\QueryBuilder\Table;
|
||||||
use Openguru\OpenCartFramework\Support\Str;
|
use Openguru\OpenCartFramework\Support\Str;
|
||||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||||
|
|
||||||
@@ -31,6 +32,7 @@ class CategoriesHandler
|
|||||||
public function index(Request $request): JsonResponse
|
public function index(Request $request): JsonResponse
|
||||||
{
|
{
|
||||||
$languageId = $this->settings->config()->getApp()->getLanguageId();
|
$languageId = $this->settings->config()->getApp()->getLanguageId();
|
||||||
|
$storeId = $this->settings->get('store.oc_store_id', 0);
|
||||||
|
|
||||||
$perPage = $request->get('perPage', 100);
|
$perPage = $request->get('perPage', 100);
|
||||||
|
|
||||||
@@ -50,6 +52,13 @@ class CategoriesHandler
|
|||||||
->where('descriptions.language_id', '=', $languageId);
|
->where('descriptions.language_id', '=', $languageId);
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
->join(
|
||||||
|
new Table(db_table('category_to_store'), 'category_to_store'),
|
||||||
|
function (JoinClause $join) use ($storeId) {
|
||||||
|
$join->on('category_to_store.category_id', '=', 'categories.category_id')
|
||||||
|
->where('category_to_store.store_id', '=', $storeId);
|
||||||
|
}
|
||||||
|
)
|
||||||
->where('categories.status', '=', 1)
|
->where('categories.status', '=', 1)
|
||||||
->orderBy('parent_id')
|
->orderBy('parent_id')
|
||||||
->orderBy('sort_order')
|
->orderBy('sort_order')
|
||||||
|
|||||||
@@ -34,12 +34,13 @@ class ProductsHandler
|
|||||||
$maxPages = (int) $request->json('maxPages', 10);
|
$maxPages = (int) $request->json('maxPages', 10);
|
||||||
$search = trim($request->json('search', ''));
|
$search = trim($request->json('search', ''));
|
||||||
$filters = $request->json('filters');
|
$filters = $request->json('filters');
|
||||||
|
$storeId = $this->settings->get('store.oc_store_id', 0);
|
||||||
$languageId = $this->settings->config()->getApp()->getLanguageId();
|
$languageId = $this->settings->config()->getApp()->getLanguageId();
|
||||||
|
|
||||||
$response = $this->productsService->getProductsResponse(
|
$response = $this->productsService->getProductsResponse(
|
||||||
compact('page', 'perPage', 'search', 'filters', 'maxPages'),
|
compact('page', 'perPage', 'search', 'filters', 'maxPages'),
|
||||||
$languageId,
|
$languageId,
|
||||||
|
$storeId,
|
||||||
);
|
);
|
||||||
|
|
||||||
return new JsonResponse($response);
|
return new JsonResponse($response);
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ class ProductsService
|
|||||||
/**
|
/**
|
||||||
* @throws ImageNotFoundException
|
* @throws ImageNotFoundException
|
||||||
*/
|
*/
|
||||||
public function getProductsResponse(array $params, int $languageId): array
|
public function getProductsResponse(array $params, int $languageId, int $storeId): array
|
||||||
{
|
{
|
||||||
$page = $params['page'];
|
$page = $params['page'];
|
||||||
$perPage = $params['perPage'];
|
$perPage = $params['perPage'];
|
||||||
@@ -104,6 +104,13 @@ class ProductsService
|
|||||||
->where('product_description.language_id', '=', $languageId);
|
->where('product_description.language_id', '=', $languageId);
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
->join(
|
||||||
|
new Table(db_table('product_to_store'), 'product_to_store'),
|
||||||
|
function (JoinClause $join) use ($storeId) {
|
||||||
|
$join->on('product_to_store.product_id', '=', 'products.product_id')
|
||||||
|
->where('product_to_store.store_id', '=', $storeId);
|
||||||
|
}
|
||||||
|
)
|
||||||
->leftJoin(new Table(db_table('manufacturer'), 'manufacturer'), function (JoinClause $join) {
|
->leftJoin(new Table(db_table('manufacturer'), 'manufacturer'), function (JoinClause $join) {
|
||||||
$join->on('products.manufacturer_id', '=', 'manufacturer.manufacturer_id');
|
$join->on('products.manufacturer_id', '=', 'manufacturer.manufacturer_id');
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ namespace App\Services;
|
|||||||
|
|
||||||
use App\Models\TelegramCustomer;
|
use App\Models\TelegramCustomer;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
|
use Openguru\OpenCartFramework\Config\Settings;
|
||||||
use Openguru\OpenCartFramework\Support\Arr;
|
use Openguru\OpenCartFramework\Support\Arr;
|
||||||
use Openguru\OpenCartFramework\Support\Utils;
|
use Openguru\OpenCartFramework\Support\Utils;
|
||||||
use RuntimeException;
|
use RuntimeException;
|
||||||
@@ -13,10 +14,12 @@ use RuntimeException;
|
|||||||
class TelecartCustomerService
|
class TelecartCustomerService
|
||||||
{
|
{
|
||||||
private TelegramCustomer $telegramCustomer;
|
private TelegramCustomer $telegramCustomer;
|
||||||
|
private Settings $settings;
|
||||||
|
|
||||||
public function __construct(TelegramCustomer $telegramCustomer)
|
public function __construct(TelegramCustomer $telegramCustomer, Settings $settings)
|
||||||
{
|
{
|
||||||
$this->telegramCustomer = $telegramCustomer;
|
$this->telegramCustomer = $telegramCustomer;
|
||||||
|
$this->settings = $settings;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -79,6 +82,7 @@ class TelecartCustomerService
|
|||||||
'allows_write_to_pm' => Utils::boolToInt(Arr::get($telegramUserData, 'allows_write_to_pm', false)),
|
'allows_write_to_pm' => Utils::boolToInt(Arr::get($telegramUserData, 'allows_write_to_pm', false)),
|
||||||
'photo_url' => Arr::get($telegramUserData, 'photo_url'),
|
'photo_url' => Arr::get($telegramUserData, 'photo_url'),
|
||||||
'last_seen_at' => date('Y-m-d H:i:s'),
|
'last_seen_at' => date('Y-m-d H:i:s'),
|
||||||
|
'store_id' => $this->settings->get('store.oc_store_id', 0),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user