添加后台客户管理 hook

This commit is contained in:
Edward Yang 2023-02-21 17:32:15 +08:00
parent 0b118df670
commit 1b1fbf3a4c
2 changed files with 26 additions and 10 deletions

View File

@ -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);
}

View File

@ -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'];
}
}