From 882ac7fb24d11d07a986016f9b998972c4501cf9 Mon Sep 17 00:00:00 2001 From: liapples Date: Thu, 16 Sep 2021 13:04:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=9E=E6=BB=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/OrderController.php | 8 ++++ .../Extensions/Grid/ChangeOrderStatus.php | 47 ------------------- .../Controllers/OrderController.php | 17 ++----- 3 files changed, 13 insertions(+), 59 deletions(-) delete mode 100644 app/AdminAgent/Extensions/Grid/ChangeOrderStatus.php diff --git a/app/AdminAgent/Controllers/OrderController.php b/app/AdminAgent/Controllers/OrderController.php index 01632e2..86a360a 100644 --- a/app/AdminAgent/Controllers/OrderController.php +++ b/app/AdminAgent/Controllers/OrderController.php @@ -3,6 +3,7 @@ namespace App\AdminAgent\Controllers; use App\AdminAgent\Extensions\Grid\AuditRefund; +use App\AdminAgent\Extensions\Grid\ChangeOrderStatus; use App\AdminAgent\Repositories\Order; use App\Common\OrderStatus; use App\Common\PayType; @@ -98,6 +99,10 @@ class OrderController extends AdminController } else if ($this->status == OrderStatus::REFUSED_REFUND) { $column->append('已拒绝退款'); } + }) + ->if(fn() => $this->status == OrderStatus::OFFLINE_UNPAID) + ->then(function (Grid\Column $column) { + return $column->action(new ChangeOrderStatus); }); $grid->column('pay_type')->using(PayType::array()); @@ -214,6 +219,9 @@ class OrderController extends AdminController if ($form->status !== null) { if (in_array($form->status, [OrderStatus::REFUNDED, OrderStatus::REFUSED_REFUND])) { return $form->response()->error('请通过订单列表的”通过“和”拒绝“按钮来审核退款'); + } else if ($form->status == OrderStatus::OFFLINE_PAID) { + $form->hidden('timeout'); + $form->timeout = null; //清空超时时间 } else { return $form->response()->error('操作禁止'); } diff --git a/app/AdminAgent/Extensions/Grid/ChangeOrderStatus.php b/app/AdminAgent/Extensions/Grid/ChangeOrderStatus.php deleted file mode 100644 index a26bd9c..0000000 --- a/app/AdminAgent/Extensions/Grid/ChangeOrderStatus.php +++ /dev/null @@ -1,47 +0,0 @@ -appendHtmlAttribute('class', 'btn btn-sm btn-success'); - $this->defaultHtmlAttribute('href', 'javascript:;'); - - return "formatHtmlAttributes()}>{$this->title}"; - } - - public function handle() - { - try { - $order = Order::firstWhere(['id' => $this->getKey(), 'agent_id' => Admin::user()->id, 'status' => OrderStatus::OFFLINE_UNPAID]); - if (!$order) { - return $this->response()->error("订单不存在或已处理过了")->refresh(); - } - $order->status = OrderStatus::OFFLINE_PAID; - $order->verify_code = uniqid(); //生成核销码 - $order->save(); - - return $this->response()->success("操作成功,已设置为“线下已付款”")->refresh(); - } catch (\Exception $e) { - return $this->response()->error($e->getMessage()); - } - } - - public function confirm() - { - return ['确定要设置为已付款吗?', '']; - } -} diff --git a/app/AdminSupplier/Controllers/OrderController.php b/app/AdminSupplier/Controllers/OrderController.php index 7d01749..611a1b6 100644 --- a/app/AdminSupplier/Controllers/OrderController.php +++ b/app/AdminSupplier/Controllers/OrderController.php @@ -2,12 +2,10 @@ namespace App\AdminSupplier\Controllers; -use App\AdminSupplier\Extensions\Grid\ChangeOrderStatus; use App\AdminSupplier\Repositories\Order; use App\Common\OrderStatus; use App\Common\PayType; use App\Models\Agent; -use App\Models\OrderProductItem; use App\Models\Supplier; use Dcat\Admin\Admin; use Dcat\Admin\Form; @@ -60,12 +58,7 @@ class OrderController extends AdminController $grid->column('price'); // $grid->column('refund_info'); $grid->column('pay_type')->using(PayType::array()); - $grid->column('status', '订单状态') - ->using(OrderStatus::array()) - ->if(fn() => $this->status == OrderStatus::OFFLINE_UNPAID) - ->then(function (Grid\Column $column) { - return $column->action(new ChangeOrderStatus); - }); + $grid->column('status', '订单状态')->using(OrderStatus::array()); $grid->column('paid_at'); $grid->column('created_at'); @@ -102,10 +95,10 @@ class OrderController extends AdminController $show->disableQuickEdit(); $show->disableEditButton(); - //不允许查看非自己的数据,$show->model()->whereHas()不起作用? - if (!OrderProductItem::where(['order_id' => $show->model()->id, 'supplier_id' => Admin::user()->id])->exists()) { - Admin::exit('数据不存在'); - } + //不允许查看非自己的数据 TODO 待筛选 + $show->model()->whereHas('orderProductItem', function ($query) { + return $query->where('supplier_id', Admin::user()->id); + }); $show->field('id'); $show->field('agent.name');