jingcai-php/app/Admin/Forms/OrderCancelForm.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);
}
}