From 4b0de4d633a54b80ed7ede3e5b488f24d143870d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=9D=99?= Date: Mon, 21 Feb 2022 10:11:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86=E8=AE=A2=E5=8D=95=E6=A0=87=E8=AE=B02?= =?UTF-8?q?=E5=BE=85=E4=BB=98=E6=AC=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Actions/Grid/DealerOrderRefuse.php | 74 +++++++++++++++++++ .../Controllers/DealerOrderController.php | 6 ++ database/seeders/AdminPermissionSeeder.php | 1 + 3 files changed, 81 insertions(+) create mode 100644 app/Admin/Actions/Grid/DealerOrderRefuse.php diff --git a/app/Admin/Actions/Grid/DealerOrderRefuse.php b/app/Admin/Actions/Grid/DealerOrderRefuse.php new file mode 100644 index 00000000..f768c386 --- /dev/null +++ b/app/Admin/Actions/Grid/DealerOrderRefuse.php @@ -0,0 +1,74 @@ +title) { + return $this->title; + } + + return ' 拒绝收款   '; + } + + /** + * @param Model|Authenticatable|HasPermissions|null $user + * + * @return bool + */ + protected function authorize($user): bool + { + return $user->can('dcat.admin.dealer_orders.paid'); + } + + /** + * Handle the action request. + * + * @param Request $request + * + * @return Response + */ + public function handle(Request $request) + { + try { + DB::beginTransaction(); + + $order = DealerOrder::lockForUpdate()->findOrFail($this->getKey()); + + if (! $order->isPay()) { + throw new BizException('无法收款:订单状态异常,请刷新后再试'); + } + + $order->update([ + 'status' => DealerOrderStatus::Paying, + 'pay_time' => null, + ]); + + DB::commit(); + } catch (Throwable $th) { + DB::rollBack(); + report($th); + return $this->response()->error('操作失败,'.$th->getMessage())->refresh(); + } + + return $this->response()->success('操作成功')->refresh(); + } + + /** + * @return string|array|void + */ + public function confirm() + { + return ['确认未收到此订单货款?', '确认后将无法逆操作']; + } +} diff --git a/app/Admin/Controllers/DealerOrderController.php b/app/Admin/Controllers/DealerOrderController.php index 2f0d7b93..78886896 100644 --- a/app/Admin/Controllers/DealerOrderController.php +++ b/app/Admin/Controllers/DealerOrderController.php @@ -5,6 +5,7 @@ namespace App\Admin\Controllers; use App\Admin\Actions\Grid\DealerOrderAllocate; use App\Admin\Actions\Grid\DealerOrderCancel; use App\Admin\Actions\Grid\DealerOrderPaid; +use App\Admin\Actions\Grid\DealerOrderRefuse; use App\Admin\Actions\Grid\DealerOrderShipping; use App\Admin\Actions\Show\DealerOrderRemark; use App\Admin\Repositories\DealerOrder; @@ -90,6 +91,11 @@ class DealerOrderController extends AdminController if ($actions->row->isPay() && Admin::user()->can('dcat.admin.dealer_orders.paid')) { $actions->append(new DealerOrderPaid()); } + + if ($actions->row->isPay() && Admin::user()->can('dcat.admin.dealer_orders.refuse')) { + $actions->append(new DealerOrderRefuse()); + } + if ($actions->row->isPaid() && Admin::user()->can('dcat.admin.dealer_orders.shipping')) { $actions->append(new DealerOrderShipping()); } diff --git a/database/seeders/AdminPermissionSeeder.php b/database/seeders/AdminPermissionSeeder.php index 7d479f8e..54fdfa66 100644 --- a/database/seeders/AdminPermissionSeeder.php +++ b/database/seeders/AdminPermissionSeeder.php @@ -330,6 +330,7 @@ class AdminPermissionSeeder extends Seeder 'curd' => ['index', 'show'], 'children' =>[ 'paid'=>['name' =>'确认收款'], + 'refuse'=>['name' =>'拒绝收款'], 'shipping'=>['name' =>'确认发货'], 'allocate'=>['name' =>'自动分配'], 'manager'=>['name' =>'系统订单'],