companyImgRepository = $companyImgRepository;
$this->pmsService = $pmsService;
}
/**
* Index interface.
*
* @param Content $content
* @return Content
*/
public function index(Content $content)
{
Permission::check('companyImg_manager');
return $content
->header('企业风采')
->description('列表')
->body($this->grid());
}
/**
* 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)
{
Permission::check('companyImg_manager_edit');
return $content
->header('企业风采')
->description('编辑')
->body($this->editForm()->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 CompanyImg);
$grid->model()->when(get_subsite_id()>0, function ($query) {
$query->where('subsite_id', get_subsite_id());
})->whereHas('companys')->when(Admin::user()->isRole(AdminRole::$consultantSlug), function ($query) {
$query->whereHas('companyConsultant',function ($query){
$query->where('consultant_id', isset(Admin::user()->consultant->id) ? Admin::user()->consultant->id : -1);
});
})->orderByRaw('field(audit,0,2,1,3)')->orderBy('created_at', 'desc');
$grid->id('ID');
$grid->image()->image();
$grid->company_id('企业名称')->display(function ($company_id) {
$companyname = Company::where('id', $company_id)->select(['companyname'])->first();
return $companyname['companyname'];
})->width(200);
$grid->audit('审核状态')->display(function ($audit) {
switch ($audit) {
case 1:
return '审核通过';
break;
case 2:
return '审核中';
break;
case 3:
return '审核未通过';
break;
case 0:
return '未审核';
break;
}
});
$grid->subsite_id('所属分站')->display(function ($subsite_id) {
if ($subsite_id == 0) {
return "总站";
} else {
$subsite = Subsite::findOrFail($subsite_id);
return $subsite->sitename;
}
});
$grid->created_at('添加时间');
$grid->tools(function (Grid\Tools $tools) {
if (Admin::user()->can('companyImg_manager_audit')) {
$form = new \Encore\Admin\Widgets\Form();
$form->action(route('companyimg.audit'));
$form->radio('audit1', '审核状态')->options([1=>'审核通过', 2=>'审核中', 3=>'审核未通过'])->default(1);
$states = [
'on' => ['value' => 1, 'text' => '是', 'color' => 'success'],
'off' => ['value' => 0, 'text' => '否', 'color' => 'danger'],
];
$form->textarea('reason', '备注');
$form->html("站内信通知");
$config = array(
'button' => "审核",//添加的按钮文字
'title' => "将所选企业",//弹窗标题
'dialog_cancel' => "取消",//取消文字
'dialog_ok' => "确认",//确认文字
'is_batch' => true//是否批量操作,如果是批量操作则提交表单时会带上ids参数
);
$tools->append(new DialogTool($form, $config));
}
$tools->append(new GridView());
});
if (Request::get('view') !== 'table') {
$grid->setView('admin.grid.card');
}
$grid->actions(function (Grid\Displayers\Actions $actions) {
if(Request::get('view') !== 'table') {
if (Admin::user()->can('companyImg_manager_audit')) {
$actions->append("");
}
}
if (Admin::user()->can('companyImg_manager_edit')) {
$actions->disableEdit(false);
}
if (Admin::user()->can('companyImg_manager_delete')) {
$actions->disableDelete(false);
}
});
$grid->filter(function ($filter) {
$filter->where(function ($query) {
$query->whereHas('companys', function ($query) {
$query->where('companyname', 'like', "%{$this->input}%");
});
}, '公司名称');
$filter->equal('company_id', '企业ID');
$filter->column(1/2, function ($filter) {
$filter->equal('audit', '审核状态')->select([0=>'未审核',1=>'审核通过',2=>'审核中',3=>'审核未通过']);
});
$filter->column(1/2, function ($filter) {
$subsite = Subsite::where('effective', 1)->select('id', 'sitename')->get();
$subsiteArr=[];
if ($subsite) {
$subsiteArr = $subsite->toArray();
$subsiteArr = array_column($subsiteArr, 'sitename', 'id');
}
$subsiteArr[0] = "总站";
ksort($subsiteArr);
if (get_subsite_id()== 0) {
$filter->equal('subsite_id', '所属分站')->select($subsiteArr);
}
$filter->between('created_at', '添加时间')->datetime();
});
});
return $grid;
}
/**
* Make a show builder.
*
* @param mixed $id
* @return Show
*/
protected function detail($id)
{
$show = new Show(CompanyImg::findOrFail($id));
$show->id('ID');
$show->title('标题');
$show->image('图片')->image();
$show->audit('审核状态')->as(function ($audit) {
switch ($audit) {
case 0:
return '未审核';
break;
case 1:
return '审核通过';
break;
case 2:
return '审核中';
break;
case 3:
return '审核未通过';
break;
}
});
$show->created_at('创建时间');
return $show;
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
$form = new Form(new CompanyImg);
$form->display('id');
$form->text('title', '标题');
$form->image('image', '图片')->rules('required');
$form->radio('audit', '审核状态')->options([0=>'未审核',1=>'审核通过',2=>'审核中',3=>'审核未通过',]);
$form->display('created_at', '上传时间');
return $form;
}
public function editForm()
{
$form = new Form(new CompanyImg);
$form->display('id');
$form->text('title', '标题');
$form->image('image', '图片')->rules('required');
$form->radio('audit', '审核状态')->options([0=>'未审核',1=>'审核通过',2=>'审核中',3=>'审核未通过',]);
$form->display('created_at', '上传时间');
return $form;
}
public function update($id)
{
if (request()->has(Form\Field::FILE_DELETE_FLAG)) {
return $this->editForm($id)->update($id);
}
return $this->editForm($id)->update($id);
}
public function companyImgAudit(Req $request)
{
$ids = $request->ids;
if (!$ids) {
return admin_toastr('请选择要审核的企业', 'error');
}
$id = explode(',', $ids);
$img_com_ids =$this->companyImgRepository->findWhereIn('id', $id, ['company_id','id'])->toArray();
$reason = $request->reason;
$data = ['audit'=>$request->audit1];
if (CompanyImg::whereIn('id', $id)->update($data)) {
//审核日志$reason
$auditData= [];
$auditData['ids'] = $id;
$auditData['status'] = $request->audit1;
$auditData['type'] = 9;
$auditData['reason'] = $reason;
AuditReason::addData($auditData);
if ($request->is_send) {
//站内信
$insertData = [];
switch ($request->audit1) {
case 1:
$html = "通过审核";
break;
case 2:
$html = "审核中";
break;
case 3:
$html = "未通过审核";
break;
}
foreach ($img_com_ids as $key => $val) {
$insertData[$key] = array(
'utype' => 1,
'msgtype' => 1,
'msgfromuid' => admin::user()->id,
'msgfrom' => admin::user()->username,
'msgtoname' =>getComUserName($val['company_id']),
'msgtouid' => $val['company_id'],
'message' => '企业风采'.$val['id'].$html.'【备注】'.$reason,
'new' => 1,
'created_at' =>date('Y-m-d H:i:s', time()),
'updated_at' =>date('Y-m-d H:i:s', time()),
);
}
$this->pmsService->addBatchPms($insertData);
}
if($request->type) {
admin_toastr('企业风采审核成功', 'success');
return back();
} else{
return admin_toastr('企业风采审核成功', 'success');
}
} else {
if($request->type) {
admin_toastr('企业风采审核失败', 'error');
return back();
} else{
return admin_toastr('企业风采审核失败', 'error');
}
}
}
}