header('短信推送')
->description('列表')
->body($this->grid());
}
/**
* Show interface.
*
* @param mixed $id
* @param Content $content
* @return Content
*/
public function show($id, Content $content)
{
return $content
->header('Detail')
->description('description')
->body($this->detail($id));
}
/**
* Edit interface.
*
* @param mixed $id
* @param Content $content
* @return Content
*/
public function edit($id, Content $content)
{
return $content
->header('Edit')
->description('description')
->body($this->form()->edit($id));
}
/**
* Create interface.
*
* @param Content $content
* @return Content
*/
public function create(Content $content)
{
return $content
->header('短信推送')
->description('创建')
->body($this->form());
}
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid()
{
$grid = new Grid(new SmsBatch);
$grid->id('ID');
$grid->name('批次名称')->width(150);
$grid->mobiles('指定号码')->width(300);
$grid->column('template.name', "短信模板")->width(200);
$grid->accept_member('指定会员')->display(function ($m_status) {
switch ($m_status) {
case 1:
$m_status = '企业';
break;
case 2:
$m_status = '个人';
break;
default:
$m_status = '不限';
break;
}
return $m_status;
});
$grid->accept_type('指定验证类型')->display(function ($m_status) {
switch ($m_status) {
case 1:
$m_status = '邮箱已验证';
break;
case 2:
$m_status = '邮箱未验证';
break;
case 3:
$m_status = '手机已验证';
break;
case 4:
$m_status = '手机未验证';
break;
default:
$m_status = '不限';
break;
}
return $m_status;
});
$grid->accept_time('指定登录时间')->display(function ($m_status) {
switch ($m_status) {
case 1:
$m_status = '一周未登录';
break;
case 2:
$m_status = '一月未登录';
break;
default:
$m_status = '不限';
break;
}
return $m_status;
});
$grid->target_num('目标发送数量')->width(150);
$grid->send_num('实际发送数量')->width(150);
$grid->status('状态')->display(function ($m_status) {
switch ($m_status) {
case 1:
$m_status = '发送完成';
break;
default:
$m_status = '发送中...';
break;
}
return $m_status;
});
$grid->created_at('添加时间');
$grid->actions(function ($actions) use ($grid) {
if (Admin::user()->can('system_sms_batch_delete')) {
$actions->disableDelete(false);
}
});
if (Admin::user()->can('system_sms_batch_delete')) {
$grid->tools(function ($tools) {
$tools->batch(function ($batch) {
$batch->disableDelete(false);
});
});
$grid->disableRowSelector(false);
}
$grid->filter(function ($filter) {
$filter->equal('status', '状态')->select([
0 => '发送中',
1 => '发送完成',
]);
$filter->like('mobiles', '手机号码');
});
if (Admin::user()->can('system_sms_batch_create')) {
$grid->disableCreateButton(false);
}
return $grid;
}
/**
* Make a show builder.
*
* @param mixed $id
* @return Show
*/
protected function detail($id)
{
$show = new Show(SmsBatch::findOrFail($id));
$show->id('ID');
$res = SmsBatch::findOrFail($id);
$show->name('批次名称');
$show->mobiles('指定号码')->limit(35);
$show->template('短信模板')->as(function () use ($res) {
return SmsTemplate::findOrFail($res->sms_id)->name;
});
$show->accept_member('指定会员')->unescape()->as(function ($m_status) {
switch ($m_status) {
case 1:
$m_status = '企业';
break;
case 2:
$m_status = '个人';
break;
default:
$m_status = '不限';
break;
}
return $m_status;
});
$show->accept_type('指定验证类型')->unescape()->as(function ($m_status) {
switch ($m_status) {
case 1:
$m_status = '邮箱已验证';
break;
case 2:
$m_status = '邮箱未验证';
break;
case 3:
$m_status = '手机已验证';
break;
case 4:
$m_status = '手机未验证';
break;
default:
$m_status = '不限';
break;
}
return $m_status;
});
$show->accept_time('指定登录时间')->unescape()->as(function ($m_status) {
switch ($m_status) {
case 1:
$m_status = '一周未登录';
break;
case 2:
$m_status = '一月未登录';
break;
default:
$m_status = '不限';
break;
}
return $m_status;
});
$show->target_num('目标发送数量');
$show->send_num('实际发送数量');
$show->status('状态')->unescape()->as(function ($m_status) {
switch ($m_status) {
case 1:
$m_status = '发送完成';
break;
default:
$m_status = '发送中...';
break;
}
return $m_status;
});
$show->created_at('Created at');
$show->updated_at('Updated at');
return $show;
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
$form = new Form(new SmsBatch);
$form->text('name', '批次名称')->rules('required', ['required'=>'请输入批次名称'])->setWidth(3)->setMustMark();
$form->textarea('mobiles', '指定电话')
->help('指定电话后将忽略下面的筛选条件,每个电话号码以英文逗号","分隔')->setWidth(8);
$form->radio('accept_member', '收件会员')->options([0=>'不限',1=>'企业会员',2=>'个人会员'])->default(0);
$form->radio('accept_type', '验证类型')->options([0=>'不限',1=>'邮箱已验证',2=>'邮箱未验证',3=>'手机已验证',4=>'手机未验证'])->default(0);
$form->radio('accept_time', '登录时间')->options([0=>'不限',1=>'一周未登录',2=>'一月未登录'])->default(0);
$form->select('sms_id', '短信模板')->options(
SmsTemplate::List()->pluck('name', 'id')
)->rules('required', ['required'=>'请选择短信模板'])->setWidth(3)->setMustMark();
//保存后回调
$form->saved(function (Form $form) {
//dd($form->model());
$batchJob=new SmsBatchJob($form->model());
dispatch($batchJob);
});
return $form;
}
}