order-food-admin/app/Admin/Controllers/ActivityDayGoodController.php

107 lines
3.5 KiB
PHP

<?php
namespace App\Admin\Controllers;
use App\Admin\Repositories\ActivityDayGood;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Show;
use Dcat\Admin\Http\Controllers\AdminController;
class ActivityDayGoodController extends AdminController
{
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid()
{
$builder = ActivityDayGood::with('goods');
return Grid::make($builder, function (Grid $grid) {
$grid->column('id')->sortable();
$grid->column('title');
$grid->column('goods.goods_name', '商品名称');
$grid->column('start_time');
$grid->column('end_time');
$grid->column('goods_num')->help('库存修改,次日生效');
$grid->column('buy_times');
$grid->column('buy_num');
$grid->column('created_at');
$grid->column('updated_at')->sortable();
$grid->filter(function (Grid\Filter $filter) {
$filter->equal('id');
});
});
}
/**
* Make a show builder.
*
* @param mixed $id
*
* @return Show
*/
protected function detail($id)
{
$builder = ActivityDayGood::with('goods');
return Show::make($id, $builder, function (Show $show) {
$show->field('id');
$show->field('title');
$show->field('goods.goods_name', '商品名称');
$show->field('start_time');
$show->field('end_time');
$show->field('goods_num');
$show->field('buy_times');
$show->field('buy_num');
$show->field('created_at');
$show->field('updated_at');
});
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
$builder = ActivityDayGood::with('dayNum');
return Form::make($builder, function (Form $form) {
$form->display('id');
$form->text('title')->required();
$form->select('goods_id', '活动商品')->options(admin_route('goods.api', ['is_sell'=>0]))->required();
$form->editor('content', '活动详情')->required();
$form->dateRange('start_time', 'end_time', '活动时间范围')->required();
$form->number('buy_times')->default(1);
$form->number('buy_num')->default(1);
$form->number('goods_num')->default(1)->help('库存修改,次日生效');
$form->hasMany('day_num', function(Form\NestedForm $form) {
$form->column(2, function(Form\NestedForm $form){
});
$form->column(4, function(Form\NestedForm $form){
$form->date('time');
});
$form->column(4, function(Form\NestedForm $form){
$form->number('goods_num', '每日库存')->default(1);
});
});
$form->saving(function (Form $form) {
// 判断是否是新增操作
$form->start_time .= ' 00:00:00';
$form->end_time .= ' 23:59:59';
if ($form->start_time >= $form->end_time) {
// 中断后续逻辑
return $form->response()->error('开始时间不能大于结束时间。');
}
});
$form->display('created_at');
$form->display('updated_at');
});
}
}