resumeController = $resumeController; } /** * Index interface. * * @param Content $content * @return Content */ public function index(Content $content, Request $request) { return $content ->header('简历照片') ->description('') ->body(view('admin.resumePhoto.photo')->with(['grid'=>$this->grid($request)])); } /** * 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($request) { $grid = new Grid(new MemberInfo); $grid->model() /*->when(get_subsite_id()>0, function ($query) { $query->whereHas('members', function ($query) { $query->where('subsite_id', get_subsite_id()); }); })*/ ->where('photo', 1)->orderByRaw("FIELD(photo_audit, 1,2,0)")->orderBy('updated_at', 'desc'); $grid->images('姓名')->display(function ($images) { if ($images) { return '    '.$this->realname; } else { return '   '. $this->realname; } })->width(200); $grid->sex_cn('性别')->width(100); $grid->birthday('出生日期')->width(100); $grid->photo_audit('照片审核')->display(function ($photo_audit) { if ($photo_audit==0) { return'审核未通过'; } elseif ($photo_audit==2) { return'审核通过'; } else { return'等待审核'; } }); $grid->education_cn('最高学历')->width(150); $grid->experience_cn('工作经验')->width(150); $grid->phone('手机')->width(150); $grid->email('邮箱')->width(150); if(get_subsite_open()){ $grid->column('members.subsite_id', '所属分站')->display(function ($subsite_id) { if ($subsite_id) { $Subsite = Subsite::find($subsite_id); return isset($Subsite->sitename) ? $Subsite->sitename : '未知'; } return '总站'; })->width(150); } $grid->created_at('添加时间')->sortable(); $grid->updated_at('更新时间')->sortable(); $grid->disableCreateButton(); $grid->disableExport(); $grid->actions(function ($actions) use ($grid) { if (Admin::user()->can('perosn_business')) { $actions->append(''); } if (Admin::user()->can('person_resume_photo_audit')) { $actions->append(""); } /* if (Admin::user()->can('person_resume_photo_delete')) { $actions->disableDelete(false); }*/ }); /* if (Admin::user()->can('person_resume_photo_delete')) { $grid->tools(function ($tools) { $tools->batch(function ($batch) { $batch->disableDelete(false); }); }); $grid->disableRowSelector(false); }*/ $grid->tools(function ($tools) { if (Admin::user()->can('person_resume_photo_audit')) { $but = << EOT; $tools->append($but); } if (Admin::user()->can('person_resume_image_delete')) { $but = << EOT; $tools->append($but); } }); $grid->filter(function ($filter) { // 去掉默认的id过滤器 $filter->disableIdFilter(); $filter->column(1/2, function ($filter) { $filter->like('phone', '手机'); $filter->like('email', '邮箱'); $filter->equal('photo_audit', '审核状态')->select([ 0=>'审核未通过', 1=>'等待审核', 2=>'审核通过', ]); if(get_subsite_id()==0 && get_subsite_open()){ $filter->equal('members.subsite_id', '所属分站')->select(array_column(get_all_subsite(), 'sitename', 'id')); } }); $filter->column(1/2, function ($filter) { // 关联关系查询 $filter->like('realname', '姓名'); $filter->equal('sex_cn', '性别'); $filter->equal('birthday', '出生日期'); $filter->equal('education_cn', '最高学历'); }); }); return $grid; } /** * Make a show builder. * * @param mixed $id * @return Show */ protected function detail($id) { $show = new Show(MemberInfo::findOrFail($id)); $show->id('Id'); $show->realname('姓名'); $show->sex_cn('性别'); $show->birthday('出生日期'); $show->photo_audit('照片审核')->as(function ($photo_audit) { if ($photo_audit==0) { return '审核未通过'; } elseif ($photo_audit==2) { return '审核通过'; } else { return '等待审核'; } }); $show->education_cn('最高学历'); $show->experience_cn('工作经验'); $show->phone('手机'); $show->email('邮箱'); $show->members()->subsite_id('所属分站')->as(function ($subsite_id) { if ($subsite_id->subsite_id) { $Subsite = Subsite::find($subsite_id->subsite_id); return isset($Subsite->sitename) ? $Subsite->sitename : '未知'; } return '总站'; }); $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 Resume); $form->text('name', 'Name'); $form->email('email', 'Email'); $form->password('password', 'Password'); $form->text('remember_token', 'Remember token'); return $form; } /** * 审核图片 * return json */ public function auditPhoto(Request $request) { $id = $request->id; $form = new \Encore\Admin\Widgets\Form(); $form->action(route('admin.personal.auditP')); $form->disableReset(); $form->hidden('id', 'ID')->default($id); $form->radio('audit', '头像')->options([2=>'审核通过',0=>'审核未通过'])->default(2); $form->textarea('remark', '备注'); $form->html(''); return json_encode(['html'=>$form->render(),'detail'=>'审核头像']); } public function auditP(Request $request) { $id = $request->id; $audit = $request->audit; $remark = $request->remark; $pms_notice = $request->pms_notice; $arr = array_filter(explode(',', $id)); if (empty($arr)) { admin_toastr('数据异常', 'error'); return back(); } $result = MemberInfo::whereIn('id', $arr)->update(['photo_audit'=>$audit]); foreach ($arr as $k => $v) { $data[$k]['type'] = 2; $data[$k]['type_id'] = $v; $data[$k]['status'] = $audit; $data[$k]['reason'] = $remark; $data[$k]['audit_man'] = Admin::user()->username; $data[$k]['created_at'] = date('Y-m-d H:i:s', time()); $data[$k]['updated_at'] = date('Y-m-d H:i:s', time()); } $this->auditReason($data); $reus = MemberInfo::with(['members'])->whereIn('id', $arr)->get(); $resume_uid = []; if ($audit==0) { $stat='审核未通过'; } elseif ($audit==2) { $stat = '审核通过'; } else { $stat='等待审核'; } $mobile = []; foreach ($reus as $res) { if (isset($res->members->mobile)) { if (validator_check($res->members->mobile, new MobileRule())) { $mobile[] = $res->members->mobile; } } } $mobile = array_unique($mobile); $sms_id = $audit ? 'sms_resume_photoallow' : 'sms_resume_photonotallow'; foreach ($reus as $key => $val) { $ds[$key]['msgtype'] = 1; $ds[$key]['msgfromuid'] = Admin::user()->id; $ds[$key]['msgfrom'] = Admin::user()->username; $ds[$key]['msgtoname'] = $val->members->username; $ds[$key]['msgtouid'] = $val->uid; $resume_uid[] = $val->uid; if ($val->members->username) { $username_title = '('.$val->members->username.')'; } else { $username_title = ''; } $ds[$key]['message'] = $remark ? '简历头像'.$username_title.$stat.'<备注:'.$remark.'>' : '简历头像'.$username_title.$stat; $ds[$key]['created_at'] = date('Y-m-d H:i:s', time()); $ds[$key]['updated_at'] = date('Y-m-d H:i:s', time()); } if ($pms_notice) { Pms::insert($ds); } if ($result) { $this->resumeController->resumeSms($sms_id, $mobile); if ($resume_uid) { event_search_update(Resume::class, [['whereIn','uid', $resume_uid]], 'update'); } admin_toastr('审核成功', 'success'); } else { admin_toastr('审核失败', 'error'); } return back(); } /** * CREAT 审核日志. * @param $type * @param $status * @param $reason * @param $audit_man * return arr */ public function auditReason($data) { AuditReason::insert($data); } public function deleteIma(Request $request) { $id = $request->id; $form = new \Encore\Admin\Widgets\Form(); $form->action(route('admin.personal.deleteImage')); $form->disableReset(); $form->hidden('id', 'ID')->default($id); $form->html('
删除头像会使简历完整度下降,是否删除?
'); return json_encode(['html'=>$form->render(),'detail'=>'删除头像']); } public function deleteImage(Request $request) { $id = $request->id; $arr = array_filter(explode(',', $id)); if (empty($arr)) { admin_toastr('数据异常', 'error'); return back(); } \DB::beginTransaction(); try { MemberInfo::whereIn('id',$arr)->update(['images'=>'','photo'=>0,'photo_audit'=>1]); $resume_uid = MemberInfo::whereIn('id', $arr)->pluck('uid')->toArray(); if ($resume_uid) { $resume = Resume::whereIn('uid',$resume_uid)->get(); if(!$resume->isEmpty()){ foreach ($resume as $resumes){ if ($resumes->complete_percent-5>0) { if ($resumes->complete_percent-5>=70 && $resumes->complete_percent-5<90) { Resume::where(['id'=>$resumes->id]) ->update(['complete_percent'=>$resumes->complete_percent-5,'level'=>2]); } elseif ($resumes->complete_percent-5>=90 && $resumes->complete_percent-15<=100) { Resume::where(['id'=>$resumes->id]) ->update(['complete_percent'=>$resumes->complete_percent-5,'level'=>1]); } else { Resume::where(['id'=>$resumes->id]) ->update(['complete_percent'=>$resumes->complete_percent-5,'level'=>0]); } } } } event_search_update(Resume::class, [['whereIn','uid', $resume_uid]], 'update'); } \DB::commit(); admin_toastr('删除成功', 'success'); } catch (\Exception $e) { \DB::rollback(); admin_toastr('删除失败', 'error'); } return back(); } }