diff --git a/beike/Admin/Http/Controllers/CustomerController.php b/beike/Admin/Http/Controllers/CustomerController.php index ae25e3d6..8177d07d 100644 --- a/beike/Admin/Http/Controllers/CustomerController.php +++ b/beike/Admin/Http/Controllers/CustomerController.php @@ -62,8 +62,13 @@ class CustomerController extends Controller public function store(CustomerRequest $request) { - $data = $request->only(['email', 'name', 'password', 'status', 'customer_group_id']); - $customer = CustomerService::create($data); + $requestData = $request->all(); + + hook_action('admin.customer.store.before', ['request_data' => $requestData]); + + $customer = CustomerService::create($requestData); + + hook_action('admin.customer.store.after', ['customer_id' => $customer->id, 'request_data' => $requestData]); return json_success(trans('common.success'), new CustomerResource($customer)); } @@ -87,13 +92,17 @@ class CustomerController extends Controller public function update(CustomerRequest $request, int $customerId) { - $data = $request->only(['email', 'name', 'status', 'customer_group_id']); - if ($request->get('password')) { - $data['password'] = $request->get('password'); + $requestData = $request->all(); + $password = $requestData['password'] ?? ''; + if (empty($password)) { + unset($requestData['password']); } - $customer = CustomerRepo::update($customerId, $data); - hook_action('admin.customer.update.after', $customer); + hook_action('admin.customer.update.before', ['customer_id' => $customerId, 'request_data' => $requestData]); + + $customer = CustomerRepo::update($customerId, $requestData); + + hook_action('admin.customer.update.after', ['customer_id' => $customerId, 'request_data' => $requestData]); return json_success(trans('common.updated_success'), $customer); } diff --git a/beike/Admin/Http/Resources/CustomerResource.php b/beike/Admin/Http/Resources/CustomerResource.php index 3e8cf3c3..08777bc4 100644 --- a/beike/Admin/Http/Resources/CustomerResource.php +++ b/beike/Admin/Http/Resources/CustomerResource.php @@ -2,6 +2,7 @@ namespace Beike\Admin\Http\Resources; +use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\JsonResource; class CustomerResource extends JsonResource @@ -9,8 +10,9 @@ class CustomerResource extends JsonResource /** * Transform the resource into an array. * - * @param \Illuminate\Http\Request $request - * @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable + * @param Request $request + * @return mixed + * @throws \Exception */ public function toArray($request) { @@ -27,6 +29,11 @@ class CustomerResource extends JsonResource 'delete' => admin_route('customers.destroy', $this->id), ]; - return $data; + $params = [ + 'object' => $this, + 'data' => $data, + ]; + + return hook_filter('resource.customer', $params)['data']; } }