商品筛选排序
This commit is contained in:
parent
a3d2236df8
commit
1eb219cc0e
|
|
@ -77,6 +77,12 @@ class ProductRepo
|
||||||
{
|
{
|
||||||
$builder = Product::query()->with('description', 'skus', 'master_sku', 'attributes');
|
$builder = Product::query()->with('description', 'skus', 'master_sku', 'attributes');
|
||||||
|
|
||||||
|
$builder->leftJoin('product_descriptions as pd', function ($build) {
|
||||||
|
$build->whereColumn('pd.product_id', 'products.id')
|
||||||
|
->where('locale', locale());
|
||||||
|
});
|
||||||
|
$builder->select(['products.*', 'pd.name', 'pd.content', 'pd.meta_title', 'pd.meta_description', 'pd.meta_keywords', 'pd.name']);
|
||||||
|
|
||||||
if (isset($data['category_id'])) {
|
if (isset($data['category_id'])) {
|
||||||
$builder->whereHas('categories', function ($query) use ($data) {
|
$builder->whereHas('categories', function ($query) use ($data) {
|
||||||
if (is_array($data['category_id'])) {
|
if (is_array($data['category_id'])) {
|
||||||
|
|
@ -89,7 +95,7 @@ class ProductRepo
|
||||||
|
|
||||||
$productIds = $data['product_ids'] ?? [];
|
$productIds = $data['product_ids'] ?? [];
|
||||||
if ($productIds) {
|
if ($productIds) {
|
||||||
$builder->whereIn('id', $productIds);
|
$builder->whereIn('products.id', $productIds);
|
||||||
$productIds = implode(',', $productIds);
|
$productIds = implode(',', $productIds);
|
||||||
$builder->orderByRaw("FIELD(products.id, {$productIds})");
|
$builder->orderByRaw("FIELD(products.id, {$productIds})");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ namespace Beike\Services;
|
||||||
use Beike\Models\Order;
|
use Beike\Models\Order;
|
||||||
use Beike\Models\OrderHistory;
|
use Beike\Models\OrderHistory;
|
||||||
use Beike\Models\OrderShipment;
|
use Beike\Models\OrderShipment;
|
||||||
|
use Beike\Models\Product;
|
||||||
use Throwable;
|
use Throwable;
|
||||||
|
|
||||||
class StateMachineService
|
class StateMachineService
|
||||||
|
|
@ -54,7 +55,7 @@ class StateMachineService
|
||||||
self::UNPAID => ['updateStatus', 'addHistory', 'notifyNewOrder'],
|
self::UNPAID => ['updateStatus', 'addHistory', 'notifyNewOrder'],
|
||||||
],
|
],
|
||||||
self::UNPAID => [
|
self::UNPAID => [
|
||||||
self::PAID => ['updateStatus', 'addHistory', 'subStock', 'notifyUpdateOrder'],
|
self::PAID => ['updateStatus', 'addHistory', 'updateSales', 'subStock', 'notifyUpdateOrder'],
|
||||||
self::CANCELLED => ['updateStatus', 'addHistory', 'notifyUpdateOrder'],
|
self::CANCELLED => ['updateStatus', 'addHistory', 'notifyUpdateOrder'],
|
||||||
],
|
],
|
||||||
self::PAID => [
|
self::PAID => [
|
||||||
|
|
@ -239,6 +240,21 @@ class StateMachineService
|
||||||
$this->order->saveOrFail();
|
$this->order->saveOrFail();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新订单商品销量
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
private function updateSales()
|
||||||
|
{
|
||||||
|
$this->order->loadMissing([
|
||||||
|
'orderProducts'
|
||||||
|
]);
|
||||||
|
$orderProducts = $this->order->orderProducts;
|
||||||
|
foreach ($orderProducts as $orderProduct) {
|
||||||
|
Product::query()->where('id', $orderProduct->product_id)->increment('sales', $orderProduct->quantity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 添加更改记录
|
* 添加更改记录
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
if (Schema::hasColumn('products', 'sales')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Schema::table('products', function (Blueprint $table) {
|
||||||
|
$table->integer('sales')->default(0)->after('tax_class_id');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
if (!Schema::hasColumn('products', 'sales')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Schema::table('products', function (Blueprint $table) {
|
||||||
|
$table->dropColumn('sales');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
Loading…
Reference in New Issue