header('投诉顾问')
->description('列表')
->body(view('admin.content.complaint_adviser')->with(['gird'=>$this->grid()->render()]));
}
/**
* Show interface.
*
* @param mixed $id
* @param Content $content
* @return Content
*/
public function show($id, Content $content)
{
return $content
->header('投诉顾问')
->description('详情')
->body($this->detail($id));
}
/**
* Edit interface.
*
* @param mixed $id
* @param Content $content
* @return Content
*/
public function edit($id, Content $content)
{
return $content
->header('投诉顾问')
->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 ComplaintConsultant);
$grid->model()->whereHas('consultant')->whereHas('company')->orderByRaw('status asc,created_at desc');
$grid->column('consultant.name','被投诉顾问')->width(100);
$grid->status('处理情况')->display(function ($status) {
if($status==0){
return '未处理';
}elseif ($status==1){
return '属实';
}else{
return '不属实';
}
});
$grid->notes('投诉内容')->display(function ($notes){
return ''.$notes.'';
})->width(200);
$grid->column('company.username','投诉者')->width(100);
$grid->created_at('投诉时间');
$grid->actions(function ($actions) {
$actions->disableView();
if (Admin::user()->can('company_consultant_complaint_adviser')) {
$actions->append("");
}
if (Admin::user()->can('company_consultant_complaint_delete')) {
$actions->disableDelete(false);
}
});
$grid->tools(function ($tools) {
if (Admin::user()->can('company_consultant_complaint_adviser')) {
$but = <<
EOT;
$tools->append($but);
}
});
//批量删除
if (Admin::user()->can('company_consultant_complaint_delete')) {
$grid->tools(function ($tools) {
$tools->batch(function ($batch) {
$batch->disableDelete(false);
});
});
} else {
$grid->disableRowSelector();
}
$grid->filter(function ($filter) {
$filter->column(1/2, function ($filter) {
$filter->like('consultant.name','被投诉顾问');
$filter->equal('status', '处理情况')->select([
0=>'未处理',
1=>'属实',
2=>'不属实',
]);
});
$filter->column(1/2, function ($filter) {
$filter->like('company.username', '投诉者');
$filter->where(function ($query) {
switch ($this->input) {
case 3:
$query->whereRaw("created_at>='".date('Y-m-d H:i:s', strtotime('-3 day'))."'");
break;
case 7:
$query->whereRaw("created_at>='".date('Y-m-d H:i:s', strtotime('-7 day'))."'");
break;
case 30:
$query->whereRaw("created_at>='".date('Y-m-d H:i:s', strtotime('-30 day'))."'");
break;
}
}, '投诉时间', 'created_at')->select([
3=>'三天内',
7=>'一周内',
30=>'一月内',
]);
});
});
return $grid;
}
/**
* Make a show builder.
*
* @param mixed $id
* @return Show
*/
protected function detail($id)
{
$show = new Show(ComplaintConsultant::findOrFail($id));
return $show;
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
$form = new Form(new ComplaintConsultant);
return $form;
}
public function auditAdviser(Request $request)
{
$id = $request->id;
$form = new \Encore\Admin\Widgets\Form();
$form->action(route('admin.complaint.auditAdviserR'));
$form->disableReset();
$form->hidden('id', 'ID')->default($id);
$form->radio('status', '处理情况')->options([1=>'属实',2=>'不属实'])->default(1);
return json_encode(['html'=>$form->render(),'detail'=>'审核投诉']);
}
public function auditAdviserR(Request $request)
{
$id = $request->id;
$status = $request->status;
$arr = array_filter(explode(',', $id));
if (empty($arr)) {
admin_toastr('请选择投诉对象', 'error');
return back();
}
$result = ComplaintConsultant::whereIn('id', $arr)->update(['status'=>$status]);
if($result){
admin_toastr('处理成功!', 'success');
}else{
admin_toastr('处理失败!', 'error');
}
return back();
}
}