51 lines
1.5 KiB
PHP
51 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Admin\Forms;
|
|
|
|
use App\Console\Commands\Order\CancelRefund;
|
|
use App\Enums\LottState;
|
|
use App\Model\Order;
|
|
use App\Model\Seller\ShopPayChannel;
|
|
use Dcat\Admin\Contracts\LazyRenderable;
|
|
use Dcat\Admin\Traits\LazyWidget;
|
|
use Dcat\Admin\Widgets\Form;
|
|
use Illuminate\Support\Arr;
|
|
use Log;
|
|
|
|
class OrderCancelForm extends Form implements LazyRenderable
|
|
{
|
|
use LazyWidget;
|
|
|
|
public function handle(array $input)
|
|
{
|
|
$id = Arr::get($input, 'id');
|
|
if (!$id) {
|
|
return $this->response()->alert()->error('参数有误');
|
|
}
|
|
$order = Order::find($id);
|
|
if (!$order) {
|
|
return $this->response()->alert()->error('数据不存在!');
|
|
}
|
|
if (in_array($order->lottery_state, [LottState::WIN,LottState::LOSS, LottState::SEND]) ) {
|
|
return $this->response()->alert()->error('状态不对,无法退款!');
|
|
}
|
|
$cancel = new CancelRefund();
|
|
$cancel->cancelAndRefund($order);
|
|
return $this->response()->success("退款成功")->refresh();
|
|
}
|
|
|
|
public function form()
|
|
{
|
|
$id = $this->payload['id'];
|
|
|
|
$order = Order::find($id);
|
|
if (!$order) {
|
|
return $this->response()->alert()->error('数据不存在!');
|
|
}
|
|
$this->display('order_sn','订单编号')->value($order->order_sn)->readOnly();
|
|
$this->display('lottery_state', '订单状态')->value(LottState::getDescription($order->lottery_state))->readOnly();
|
|
$this->hidden('id')->value($id);
|
|
}
|
|
|
|
}
|