order events
parent
d609c83dc5
commit
8a2f2fb3e6
21
README.md
21
README.md
|
|
@ -20,27 +20,6 @@
|
|||
|
||||
## 配置
|
||||
|
||||
### app\Providers\EventServiceProvider.php
|
||||
|
||||
```php
|
||||
use Peidikeji\Order\Listeners\UpdateGoodsSoldCount;
|
||||
use Peidikeji\Order\Listeners\UpdateGoodsStock;
|
||||
use Peidikeji\Order\Listeners\OrderUseScore;
|
||||
|
||||
protected $listen = [
|
||||
\Peidikeji\Order\Events\OrderCreated::class => [
|
||||
UpdateGoodsStock::class,
|
||||
UpdateGoodsSoldCount::class,
|
||||
OrderUseScore::class,
|
||||
],
|
||||
\Peidikeji\Order\Events\OrderCanceled::class => [
|
||||
UpdateGoodsStock::class,
|
||||
UpdateGoodsSoldCount::class,
|
||||
OrderUseScore::class
|
||||
],
|
||||
];
|
||||
```
|
||||
|
||||
### dcat-admin-user\src\Models\User.php
|
||||
|
||||
```php
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ use Dcat\Admin\Admin;
|
|||
use Dcat\Admin\Show\AbstractTool;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Peidikeji\Order\Enums\PayStatus;
|
||||
use Peidikeji\Order\Events\OrderCanceled;
|
||||
use Peidikeji\Order\Models\Order;
|
||||
use Peidikeji\Order\OrderService;
|
||||
|
||||
|
|
@ -32,6 +33,7 @@ class ShowCancel extends AbstractTool
|
|||
],
|
||||
]);
|
||||
DB::commit();
|
||||
event(new OrderCanceled($order));
|
||||
return $this->response()->success('操作成功')->refresh();
|
||||
} catch (\Exception $e) {
|
||||
DB::rollBack();
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ use Dcat\Admin\Admin;
|
|||
use Dcat\Admin\Show\AbstractTool;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Peidikeji\Order\Enums\ShipStatus;
|
||||
use Peidikeji\Order\Events\OrderReceived;
|
||||
use Peidikeji\Order\Models\Order;
|
||||
use Peidikeji\Order\OrderService;
|
||||
|
||||
|
|
@ -32,6 +33,7 @@ class ShowReceive extends AbstractTool
|
|||
],
|
||||
]);
|
||||
DB::commit();
|
||||
event(new OrderReceived($order));
|
||||
return $this->response()->success('操作成功')->refresh();
|
||||
} catch (\Exception $e) {
|
||||
DB::rollBack();
|
||||
|
|
|
|||
|
|
@ -1,24 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace Peidikeji\Order\Events;
|
||||
|
||||
use Illuminate\Broadcasting\InteractsWithSockets;
|
||||
use Illuminate\Foundation\Events\Dispatchable;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
use Peidikeji\Order\Models\Order;
|
||||
|
||||
/**
|
||||
* 订单删除
|
||||
*
|
||||
*/
|
||||
class OrderDeleted
|
||||
{
|
||||
use Dispatchable, InteractsWithSockets, SerializesModels;
|
||||
|
||||
public $order;
|
||||
|
||||
public function __construct(Order $order)
|
||||
{
|
||||
$this->order = $order;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace Peidikeji\Order\Events;
|
||||
|
||||
use Illuminate\Broadcasting\InteractsWithSockets;
|
||||
use Illuminate\Foundation\Events\Dispatchable;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
use Peidikeji\Order\Models\Order;
|
||||
|
||||
/**
|
||||
* 订单发货
|
||||
* 每次发货触发一次
|
||||
*/
|
||||
class OrderShipped
|
||||
{
|
||||
use Dispatchable, InteractsWithSockets, SerializesModels;
|
||||
|
||||
// 订单
|
||||
public $order;
|
||||
|
||||
// 发货单
|
||||
public $ship;
|
||||
|
||||
public function __construct(Order $order, $ship)
|
||||
{
|
||||
$this->order = $order;
|
||||
$this->ship = $ship;
|
||||
}
|
||||
}
|
||||
|
|
@ -8,7 +8,9 @@ use Dcat\Admin\Models\Administrator;
|
|||
use Dcat\Admin\Traits\LazyWidget;
|
||||
use Dcat\Admin\Widgets\Form;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Peidikeji\Order\Enums\PayStatus;
|
||||
use Peidikeji\Order\Enums\PayWay;
|
||||
use Peidikeji\Order\Events\OrderPaid;
|
||||
use Peidikeji\Order\Exceptions\OrderException;
|
||||
use Peidikeji\Order\Models\Order;
|
||||
use Peidikeji\Order\OrderService;
|
||||
|
|
@ -42,6 +44,9 @@ class PayForm extends Form implements LazyRenderable
|
|||
'attribute' => $input,
|
||||
]);
|
||||
DB::commit();
|
||||
if ($order->pay_status === PayStatus::Success) {
|
||||
event(new OrderPaid($order));
|
||||
}
|
||||
return $this->response()->success('操作成功')->refresh();
|
||||
} catch (\Exception $e) {
|
||||
DB::rollBack();
|
||||
|
|
|
|||
|
|
@ -7,9 +7,14 @@ use Illuminate\Http\Request;
|
|||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Validation\Rule;
|
||||
use Illuminate\Validation\Rules\Enum;
|
||||
use Peidikeji\Order\Enums\PayStatus;
|
||||
use Peidikeji\Order\Enums\PayWay;
|
||||
use Peidikeji\Order\Enums\ShipStatus;
|
||||
use Peidikeji\Order\Enums\ShipWay;
|
||||
use Peidikeji\Order\Events\OrderCanceled;
|
||||
use Peidikeji\Order\Events\OrderCreated;
|
||||
use Peidikeji\Order\Events\OrderPaid;
|
||||
use Peidikeji\Order\Events\OrderReceived;
|
||||
use Peidikeji\Order\Http\Resources\OrderResource;
|
||||
use Peidikeji\Order\Http\Resources\OrderShipResouce;
|
||||
use Peidikeji\Order\OrderService;
|
||||
|
|
@ -94,7 +99,6 @@ class OrderController extends Controller
|
|||
'goods' => [Rule::requiredIf(!$request->filled('cart_id')), 'array'],
|
||||
'cart_id' => ['array'],
|
||||
'address' => [Rule::requiredIf(!$request->filled('address_id')), 'array'],
|
||||
'pay_way' => [Rule::in([PayWay::WxMini->value])]
|
||||
]);
|
||||
$store = OrderStore::init()->user($user)->remarks($request->input('remarks'));
|
||||
|
||||
|
|
@ -128,12 +132,7 @@ class OrderController extends Controller
|
|||
}
|
||||
$result = OrderResource::make($order);
|
||||
DB::commit();
|
||||
if ($request->filled('pay_way')) {
|
||||
$result = [];
|
||||
$payData = OrderService::make()->pay($order, $request->input('pay_way'));
|
||||
$result['order'] = OrderResource::make($order);
|
||||
$result['payment'] = $payData;
|
||||
}
|
||||
event(new OrderCreated($order));
|
||||
return $this->json($result);
|
||||
} catch (\Exception $e) {
|
||||
return $this->error($e->getMessage());
|
||||
|
|
@ -160,8 +159,11 @@ class OrderController extends Controller
|
|||
|
||||
try {
|
||||
DB::beginTransaction();
|
||||
$result = OrderService::make()->pay($order, PayWay::WxMini->value);
|
||||
$result = OrderService::make()->pay($order, $request->input('pay_way'));
|
||||
DB::commit();
|
||||
if ($order->pay_status === PayStatus::Success) {
|
||||
event(new OrderPaid($order));
|
||||
}
|
||||
return $this->json($result);
|
||||
} catch (\Exception $e) {
|
||||
return $this->error($e->getMessage());
|
||||
|
|
@ -186,6 +188,7 @@ class OrderController extends Controller
|
|||
]
|
||||
]);
|
||||
DB::commit();
|
||||
event(new OrderCanceled($order));
|
||||
return $this->success('订单成功取消');
|
||||
} catch (\Exception $e) {
|
||||
return $this->error($e->getMessage());
|
||||
|
|
@ -210,6 +213,7 @@ class OrderController extends Controller
|
|||
]
|
||||
]);
|
||||
DB::commit();
|
||||
event(new OrderReceived($order));
|
||||
return $this->success('收货成功');
|
||||
} catch (\Exception $e) {
|
||||
return $this->error($e->getMessage());
|
||||
|
|
|
|||
|
|
@ -4,18 +4,12 @@ namespace Peidikeji\Order;
|
|||
|
||||
use Illuminate\Support\Arr;
|
||||
use Overtrue\LaravelWeChat\EasyWeChat;
|
||||
use Peidikeji\Order\Enums\OrderScene;
|
||||
use Peidikeji\Order\Enums\OrderShipStatus;
|
||||
use Peidikeji\Order\Enums\OrderStatus;
|
||||
use Peidikeji\Order\Enums\PayStatus;
|
||||
use Peidikeji\Order\Enums\PayWay;
|
||||
use Peidikeji\Order\Enums\RefundStatus;
|
||||
use Peidikeji\Order\Enums\ShipStatus;
|
||||
use Peidikeji\Order\Events\OrderCanceled;
|
||||
use Peidikeji\Order\Events\OrderDeleted;
|
||||
use Peidikeji\Order\Events\OrderPaid;
|
||||
use Peidikeji\Order\Events\OrderReceived;
|
||||
use Peidikeji\Order\Events\OrderShipped;
|
||||
use Peidikeji\Order\Exceptions\OrderException;
|
||||
use Peidikeji\Order\Models\Order;
|
||||
use Peidikeji\Order\Models\OrderShip;
|
||||
|
|
@ -172,8 +166,6 @@ class OrderService
|
|||
$order->pay_way = data_get($data, 'pay_way');
|
||||
}
|
||||
$order->save();
|
||||
|
||||
event(new OrderPaid($order));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -227,8 +219,6 @@ class OrderService
|
|||
]);
|
||||
|
||||
$ship->goods()->createMany($params);
|
||||
|
||||
event(new OrderShipped($order, $ship));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -253,8 +243,6 @@ class OrderService
|
|||
'ship_status' => OrderShipStatus::Autocheck,
|
||||
]);
|
||||
}
|
||||
|
||||
event(new OrderReceived($order));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -306,7 +294,6 @@ class OrderService
|
|||
$order->is_closed = 1;
|
||||
$order->save();
|
||||
|
||||
event(new OrderCanceled($order));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -324,8 +311,6 @@ class OrderService
|
|||
$order->ships()->delete();
|
||||
|
||||
$order->delete();
|
||||
|
||||
event(new OrderDeleted($order));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -5,12 +5,24 @@ namespace Peidikeji\Order;
|
|||
use Illuminate\Support\ServiceProvider;
|
||||
use Peidikeji\Order\Console\OrderCancel;
|
||||
use Peidikeji\Order\Console\OrdeReceive;
|
||||
use Illuminate\Support\Facades\Event;
|
||||
use Peidikeji\Order\Events\OrderCanceled;
|
||||
use Peidikeji\Order\Events\OrderCreated;
|
||||
use Peidikeji\Order\Listeners\OrderUseScore;
|
||||
use Peidikeji\Order\Listeners\UpdateGoodsSoldCount;
|
||||
use Peidikeji\Order\Listeners\UpdateGoodsStock;
|
||||
|
||||
class OrderServiceProvider extends ServiceProvider
|
||||
{
|
||||
public function register()
|
||||
{
|
||||
Event::listen(OrderCreated::class, [UpdateGoodsStock::class, 'handle']);
|
||||
Event::listen(OrderCreated::class, [UpdateGoodsSoldCount::class, 'handle']);
|
||||
Event::listen(OrderCreated::class, [OrderUseScore::class, 'handle']);
|
||||
|
||||
Event::listen(OrderCanceled::class, [UpdateGoodsStock::class, 'handle']);
|
||||
Event::listen(OrderCanceled::class, [UpdateGoodsSoldCount::class, 'handle']);
|
||||
Event::listen(OrderCanceled::class, [OrderUseScore::class, 'handle']);
|
||||
}
|
||||
|
||||
public function boot()
|
||||
|
|
@ -24,9 +36,9 @@ class OrderServiceProvider extends ServiceProvider
|
|||
$this->loadRoutesFrom(__DIR__.'/../routes/admin.php');
|
||||
$this->loadRoutesFrom(__DIR__.'/../routes/api.php');
|
||||
|
||||
$this->publishes([
|
||||
__DIR__.'/../database/' => database_path('migrations')
|
||||
], 'dcat-admin-order-migrations');
|
||||
// $this->publishes([
|
||||
// __DIR__.'/../database/' => database_path('migrations')
|
||||
// ], 'dcat-admin-order-migrations');
|
||||
|
||||
$this->loadMigrationsFrom(__DIR__.'/../database/');
|
||||
|
||||
|
|
|
|||
|
|
@ -209,8 +209,6 @@ class OrderStore
|
|||
$order->save();
|
||||
$order->goods()->createMany($this->orderGoodsList);
|
||||
|
||||
event(new OrderCreated($order));
|
||||
|
||||
return $order;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue