添加后台客户管理 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) public function store(CustomerRequest $request)
{ {
$data = $request->only(['email', 'name', 'password', 'status', 'customer_group_id']); $requestData = $request->all();
$customer = CustomerService::create($data);
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)); return json_success(trans('common.success'), new CustomerResource($customer));
} }
@ -87,13 +92,17 @@ class CustomerController extends Controller
public function update(CustomerRequest $request, int $customerId) public function update(CustomerRequest $request, int $customerId)
{ {
$data = $request->only(['email', 'name', 'status', 'customer_group_id']); $requestData = $request->all();
if ($request->get('password')) { $password = $requestData['password'] ?? '';
$data['password'] = $request->get('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); return json_success(trans('common.updated_success'), $customer);
} }

View File

@ -2,6 +2,7 @@
namespace Beike\Admin\Http\Resources; namespace Beike\Admin\Http\Resources;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Http\Resources\Json\JsonResource;
class CustomerResource extends JsonResource class CustomerResource extends JsonResource
@ -9,8 +10,9 @@ class CustomerResource extends JsonResource
/** /**
* Transform the resource into an array. * Transform the resource into an array.
* *
* @param \Illuminate\Http\Request $request * @param Request $request
* @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable * @return mixed
* @throws \Exception
*/ */
public function toArray($request) public function toArray($request)
{ {
@ -27,6 +29,11 @@ class CustomerResource extends JsonResource
'delete' => admin_route('customers.destroy', $this->id), 'delete' => admin_route('customers.destroy', $this->id),
]; ];
return $data; $params = [
'object' => $this,
'data' => $data,
];
return hook_filter('resource.customer', $params)['data'];
} }
} }