mirror of
https://github.com/lkddi/Xboard.git
synced 2026-04-05 12:40:52 +08:00
feat(hook): add order.create.after, order.open.before, order.open.after, and protocol.servers.filtered hooks
This commit is contained in:
@@ -53,6 +53,7 @@ class OrderService
|
||||
$planService = new PlanService($plan);
|
||||
|
||||
$planService->validatePurchase($user, $period);
|
||||
HookManager::call('order.create.before', [$user, $plan, $period, $couponCode]);
|
||||
|
||||
return DB::transaction(function () use ($user, $plan, $period, $couponCode, $userService) {
|
||||
$newPeriod = PlanService::getPeriodKey($period);
|
||||
@@ -82,6 +83,9 @@ class OrderService
|
||||
if (!$order->save()) {
|
||||
throw new ApiException(__('Failed to create order'));
|
||||
}
|
||||
|
||||
HookManager::call('order.create.after', $order);
|
||||
// 兼容旧钩子
|
||||
HookManager::call('order.after_create', $order);
|
||||
|
||||
return $order;
|
||||
@@ -94,7 +98,8 @@ class OrderService
|
||||
$this->user = User::find($order->user_id);
|
||||
$plan = Plan::find($order->plan_id);
|
||||
|
||||
HookManager::call('order.before_open', $order);
|
||||
HookManager::call('order.open.before', $order);
|
||||
|
||||
|
||||
DB::transaction(function () use ($order, $plan) {
|
||||
if ($order->refund_amount) {
|
||||
@@ -136,7 +141,7 @@ class OrderService
|
||||
$this->openEvent($eventId);
|
||||
}
|
||||
|
||||
HookManager::call('order.after_open', $order);
|
||||
HookManager::call('order.open.after', $order);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
namespace App\Support;
|
||||
|
||||
use App\Services\Plugin\HookManager;
|
||||
|
||||
abstract class AbstractProtocol
|
||||
{
|
||||
/**
|
||||
@@ -48,9 +50,7 @@ abstract class AbstractProtocol
|
||||
$this->servers = $servers;
|
||||
$this->clientName = $clientName;
|
||||
$this->clientVersion = $clientVersion;
|
||||
|
||||
// 服务器过滤逻辑
|
||||
$this->servers = $this->filterServersByVersion();
|
||||
$this->servers = HookManager::filter('protocol.servers.filtered', $this->filterServersByVersion());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user