Browse Source

回滚

master
李可松 4 years ago
parent
commit
882ac7fb24
  1. 8
      app/AdminAgent/Controllers/OrderController.php
  2. 47
      app/AdminAgent/Extensions/Grid/ChangeOrderStatus.php
  3. 17
      app/AdminSupplier/Controllers/OrderController.php

8
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('<a style="cursor: pointer;" class="btn btn-sm btn-danger" href="javascript:;">已拒绝退款</a>');
}
})
->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('操作禁止');
}

47
app/AdminAgent/Extensions/Grid/ChangeOrderStatus.php

@ -1,47 +0,0 @@
<?php
namespace App\AdminAgent\Extensions\Grid;
use App\Common\OrderStatus;
use App\Models\Order;
use Dcat\Admin\Admin;
use Dcat\Admin\Grid\RowAction;
/**
* 改变订单状态
* Class ChangeOrderStatus
* @package App\AdminAgent\Extensions\Grid
*/
class ChangeOrderStatus extends RowAction
{
protected $title = '设为 [线下]已付款';
protected function html()
{
$this->appendHtmlAttribute('class', 'btn btn-sm btn-success');
$this->defaultHtmlAttribute('href', 'javascript:;');
return "<a {$this->formatHtmlAttributes()}>{$this->title}</a>";
}
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 ['确定要设置为已付款吗?', ''];
}
}

17
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');

Loading…
Cancel
Save