Browse Source

Merge branch 'master' of ssh://8.134.10.79:222/Leadfyy.co/hainan

master
shuixiang 4 years ago
parent
commit
6c29878eed
  1. 10
      app/AdminAgent/Controllers/OrderController.php
  2. 8
      app/AdminSupplier/Controllers/OrderController.php
  3. 50
      app/AdminSupplier/Extensions/Grid/ChangeOrderStatus.php

10
app/AdminAgent/Controllers/OrderController.php

@ -3,19 +3,16 @@
namespace App\AdminAgent\Controllers; namespace App\AdminAgent\Controllers;
use App\AdminAgent\Extensions\Grid\AuditRefund; use App\AdminAgent\Extensions\Grid\AuditRefund;
use App\AdminAgent\Extensions\Grid\ChangeOrderStatus;
use App\AdminAgent\Repositories\Order; use App\AdminAgent\Repositories\Order;
use App\Common\OrderStatus; use App\Common\OrderStatus;
use App\Common\PayType; use App\Common\PayType;
use App\Models\OrderProductItem; use App\Models\OrderProductItem;
use App\Models\Supplier;
use Dcat\Admin\Admin; use Dcat\Admin\Admin;
use Dcat\Admin\Form; use Dcat\Admin\Form;
use Dcat\Admin\Grid; use Dcat\Admin\Grid;
use Dcat\Admin\Grid\Filter\AbstractFilter; use Dcat\Admin\Grid\Filter\AbstractFilter;
use Dcat\Admin\Show; use Dcat\Admin\Show;
use Dcat\Admin\Http\Controllers\AdminController; use Dcat\Admin\Http\Controllers\AdminController;
use Dcat\Admin\Widgets\Dropdown;
use Dcat\Admin\Widgets\Table; use Dcat\Admin\Widgets\Table;
use Illuminate\Support\Arr; use Illuminate\Support\Arr;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
@ -101,10 +98,6 @@ class OrderController extends AdminController
} else if ($this->status == OrderStatus::REFUSED_REFUND) { } else if ($this->status == OrderStatus::REFUSED_REFUND) {
$column->append('<a style="cursor: pointer;" class="btn btn-sm btn-danger" href="javascript:;">已拒绝退款</a>'); $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()); $grid->column('pay_type')->using(PayType::array());
@ -221,9 +214,6 @@ class OrderController extends AdminController
if ($form->status !== null) { if ($form->status !== null) {
if (in_array($form->status, [OrderStatus::REFUNDED, OrderStatus::REFUSED_REFUND])) { if (in_array($form->status, [OrderStatus::REFUNDED, OrderStatus::REFUSED_REFUND])) {
return $form->response()->error('请通过订单列表的”通过“和”拒绝“按钮来审核退款'); return $form->response()->error('请通过订单列表的”通过“和”拒绝“按钮来审核退款');
} else if ($form->status == OrderStatus::OFFLINE_PAID) {
$form->hidden('timeout');
$form->timeout = null; //清空超时时间
} else { } else {
return $form->response()->error('操作禁止'); return $form->response()->error('操作禁止');
} }

8
app/AdminSupplier/Controllers/OrderController.php

@ -2,6 +2,7 @@
namespace App\AdminSupplier\Controllers; namespace App\AdminSupplier\Controllers;
use App\AdminSupplier\Extensions\Grid\ChangeOrderStatus;
use App\AdminSupplier\Repositories\Order; use App\AdminSupplier\Repositories\Order;
use App\Common\OrderStatus; use App\Common\OrderStatus;
use App\Common\PayType; use App\Common\PayType;
@ -59,7 +60,12 @@ class OrderController extends AdminController
$grid->column('price'); $grid->column('price');
// $grid->column('refund_info'); // $grid->column('refund_info');
$grid->column('pay_type')->using(PayType::array()); $grid->column('pay_type')->using(PayType::array());
$grid->column('status', '订单状态')->using(OrderStatus::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('paid_at'); $grid->column('paid_at');
$grid->column('created_at'); $grid->column('created_at');

50
app/AdminSupplier/Extensions/Grid/ChangeOrderStatus.php

@ -0,0 +1,50 @@
<?php
namespace App\AdminSupplier\Extensions\Grid;
use App\Common\OrderStatus;
use App\Models\Order;
use Dcat\Admin\Admin;
use Dcat\Admin\Grid\RowAction;
use Illuminate\Support\Facades\DB;
/**
* 改变订单状态
* 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::query()->whereHas('orderProductItem', function ($query) {
$query->where(['supplier_id' => Admin::user()->id, 'order_id' => $this->getKey()]);
})->firstWhere(['id' => $this->getKey(), '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 ['确定要设置为已付款吗?', ''];
}
}
Loading…
Cancel
Save