1
0

first commit

This commit is contained in:
2020-08-06 15:36:28 +08:00
commit fe5c11976c
12348 changed files with 1411979 additions and 0 deletions

View File

@@ -0,0 +1,143 @@
<?php
namespace App\Admin\Controllers;
use App\Admin\Exporters\OrderExporter;
use App\Admin\Extensions\Actions\OrderDeliver;
use App\Models\Order;
use Encore\Admin\Controllers\HasResourceActions;
use Encore\Admin\Facades\Admin;
use Encore\Admin\Grid;
use Encore\Admin\Layout\Content;
use Encore\Admin\Show;
class OrderController extends Controller
{
use HasResourceActions;
/**
* Index interface.
* @param Content $content
* @return Content
*/
public function index(Content $content)
{
return $content
->header('订单列表')
->body($this->grid());
}
/**
* Show interface.
* @param mixed $id
* @param Content $content
* @return Content
*/
public function show(Order $order, Content $content)
{
return Admin::content(function (Content $content) use ($order) {
$content->header('订单详情');
$content->body(view("admin.order.detail", compact('order')));
});
}
/**
* Make a grid builder.
* @return Grid
*/
protected function grid()
{
$grid = new Grid(new Order);
$grid->disableCreateButton();
$grid->model()->orderBy('id', 'desc')->with(['details.item', 'user.info', 'payment']);
$grid->paginate(10);
$grid->actions(function ($actions) {
$actions->disableDelete();
$actions->disableEdit();
$actions->disableView();
$actions->append('<p><a href="' . $this->getResource() . '/' . $this->getRouteKey() . '" class="btn btn-xs btn-default">订单详情</a></p>');
if ($actions->row->canDeliver() && $actions->row->state == Order::ORDER_DELIVER) {
$actions->append(new OrderDeliver($actions->row));
}
});
$grid->filter(function ($filter) {
$filter->disableIdFilter();
$filter->column(1 / 3, function ($filter) {
$filter->like('orderid', '订单编号');
$filter->equal('state', '订单状态')->select([
Order::ORDER_UNPAY => '待支付',
Order::ORDER_PAID => '已支付',
Order::ORDER_CANCEL => '已取消',
]);
});
$filter->column(1 / 3, function ($filter) {
$filter->where(function ($query) {
$query->whereHas('user', function ($query) {
$query->whereHas('info', function ($query) {
$query->where('nickname', 'like', "%{$this->input}%");
});
});
}, '下单用户');
});
$filter->column(1 / 3, function ($filter) {
$filter->between('created_at', '下单时间')->datetime();
$filter->between('paid_at', '付款时间')->datetime();
});
// $filter->expand();
});
$grid->orderid('订单编号')->display(function ($model) {
$ret = "<a href='orders/{$this->orderid}' style='font-size:18px'>{$this->orderid}</a>";
$ret .= '<br/><span style="color:#999">商品数量:' . $this->details()->sum('number') . '</span>';
return $ret;
});
$grid->column('商品信息')->display(function () {
$ret = '';
foreach ($this->details as $detail) {
$ret .= '<p style="font-size: 12px;line-height: 18px;margin: 0px;padding: 0px">' . $detail['item']['name'] . '&nbsp;<span style="color:red">' . number_format($detail['price'], 2) . '</span> * ' . $detail['number'] . '</p>';
}
return $ret;
});
$grid->column('下单用户')->display(function () {
$ret = '<img src="' . $this->user->info->avatar . '" alt="" class="img img-thumbnail" style="max-width:40px;max-height:40px;vertical-align:top">';
$ret .= '<div style="display:inline-block;margin-left:5px">' . $this->user->info->nickname;
$ret .= '<br/>' . $this->user->info->mobile . '</div>';
return $ret;
});
$grid->column('价格')->display(function () {
$ret = '商品小计:' . number_format($this->amount, 2);
$ret .= '<br/>应收总额:' . number_format($this->total, 2);
return $ret;
});
$grid->column('状态')->display(function () {
$ret = $this->state_text . '<br>';
// $ret .= $this->status . '<br>';
if ($this->payment) {
$ret .= $this->payment->type_text . '<br>';
$ret .= $this->payment->out_trade_no . '<br>';
$ret .= $this->payment->transaction_id;
}
return $ret;
});
$grid->column('下单时间/付款时间')->display(function ($gd) {
$ret = $this->created_at . '<br/>';
$ret .= $this->paid_at;
return $ret;
});
$grid->disableExport(false);
$grid->exporter(new OrderExporter());
return $grid->render();
}
}