123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351 |
- <?php
- namespace App\Admin\Controllers\Company;
- use App\Admin\Extensions\Tools\DialogTool;
- use App\Admin\Extensions\Tools\GridView;
- use App\Http\Controllers\Controller;
- use App\Models\Admin\AdminRole;
- use App\Models\AuditReason;
- use App\Models\Company;
- use App\Models\CompanyImg;
- use App\Models\Subsite;
- use App\Repositories\CompanyImgRepository;
- use App\Services\Common\PmsService;
- use Encore\Admin\Auth\Permission;
- use Encore\Admin\Controllers\HasResourceActions;
- use Encore\Admin\Facades\Admin;
- use Encore\Admin\Form;
- use Encore\Admin\Grid;
- use Encore\Admin\Layout\Content;
- use Encore\Admin\Show;
- use Illuminate\Http\Request as Req;
- use Illuminate\Support\Facades\Request;
- class CompanyImgController extends Controller
- {
- use HasResourceActions;
- protected $companyImgRepository;
- protected $pmsService;
- /**
- * CompanyImgController constructor.
- * @param $companyImgRepository
- * @param $pmsService
- */
- public function __construct(CompanyImgRepository $companyImgRepository, PmsService $pmsService)
- {
- $this->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 '<span style="color:#009900">审核通过</span>';
- break;
- case 2:
- return '<span style="color:#FF6600">审核中</span>';
- break;
- case 3:
- return '<span style="color:#FF0000">审核未通过</span>';
- break;
- case 0:
- return '<span style="color:#FF6600">未审核</span>';
- 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("<input type='checkbox' name='is_send' checked value='1'/>站内信通知");
- $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("<button class='btn btn-primary btn-xs jobaudit' data-code=".$actions->row['id'].">审核</button>");
- }
- }
- 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');
- }
- }
- }
- }
|