| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973 | 
							- <?php
 
- namespace App\Admin\Controllers\Company;
 
- use Aix\Sms\Contracts\Smser;
 
- use App\Admin\Exports\Company\JobsExport;
 
- use App\Admin\Extensions\Tools\DialogTool;
 
- use App\Http\Controllers\Controller;
 
- use App\Models\Admin\AdminRole;
 
- use App\Models\AuditReason;
 
- use App\Models\Category;
 
- use App\Models\CategoryDistrict;
 
- use App\Models\CategoryJobs;
 
- use App\Models\Company;
 
- use App\Models\Jobs;
 
- use App\Models\JobsContact;
 
- use App\Models\Subsite;
 
- use App\Models\SubsiteJob;
 
- use App\Models\ViewJob;
 
- use App\Repositories\JobsRepository;
 
- use App\Services\Common\EmailService;
 
- use App\Services\Common\PmsService;
 
- use App\Services\Common\SmsService;
 
- use App\Services\Common\WechatService;
 
- use App\Services\SubsiteService;
 
- 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\Grid\Filter\TimestampBetween;
 
- use Encore\Admin\Layout\Content;
 
- use Encore\Admin\Show;
 
- use Encore\Admin\Widgets\Table;
 
- use Illuminate\Http\Request;
 
- use Illuminate\Support\Facades\DB;
 
- use Illuminate\Support\Facades\Input;
 
- use Illuminate\Support\MessageBag;
 
- class JobsController extends Controller
 
- {
 
-     use HasResourceActions;
 
-     protected $jobsRepository;
 
-     protected $pmsService;
 
-     protected $subsiteService;
 
-     protected $smsService;
 
-     protected $wechatService;
 
-     protected $emailService;
 
-     /**
 
-      * JobsController constructor.
 
-      * @param JobsRepository $jobsRepository.
 
-      * @param SubsiteService $subsiteService.
 
-      * @param PmsService $pmsService.
 
-      */
 
-     public function __construct(JobsRepository $jobsRepository, PmsService $pmsService, SubsiteService $subsiteService, SmsService $smsService, WechatService $wechatService,EmailService $emailService)
 
-     {
 
-         $this->jobsRepository = $jobsRepository;
 
-         $this->pmsService = $pmsService;
 
-         $this->subsiteService = $subsiteService;
 
-         $this->smsService = $smsService;
 
-         $this->wechatService = $wechatService;
 
-         $this->emailService = $emailService;
 
-     }
 
-     /**
 
-      * Index interface.
 
-      *
 
-      * @param Content $content
 
-      * @return Content
 
-      */
 
-     public function index(Content  $content)
 
-     {
 
-         $grid=$this->grid()->render();
 
-         return $content
 
-             ->header('职位管理')
 
-             ->description('列表')
 
-             ->body(view('admin.jobs.index')->with('grid', $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)
 
-     {
 
-         $js = <<<ETO
 
-         $(document).ready(function() {
 
-              $('.radio-inline,.iCheck-helper').click(function() {
 
-                 var val = $(this).closest(".radio-inline").find("input:radio").val();
 
-                  if (val == '0') {
 
-                     $("input[name=wage]").parents('.form-group').hide();
 
-                  }
 
-                  else if (val == '1') {
 
-                     $("input[name=wage]").parents('.form-group').show();
 
-                  }
 
-             });
 
-             if($("input:radio[name='negotiable']:checked").val() == '0')
 
-             {    
 
-                 
 
-                 $("input[name=wage]").parents('.form-group').hide();
 
-             } else {
 
-                 $("input[name=wage]").parents('.form-group').show();
 
-             }
 
-         });
 
- ETO;
 
-         Admin::script($js);
 
-         return $content
 
-             ->header('职位管理')
 
-             ->description('编辑')
 
-             ->body($this->editForm($id)->edit($id));
 
-     }
 
-     /**
 
-      * Create interface.
 
-      *
 
-      * @param Content $content
 
-      * @return Content
 
-      */
 
-     public function create(Content $content)
 
-     {
 
-         return $content
 
-             ->header('职位管理')
 
-             ->description('新增')
 
-             ->body($this->form($id = 0));
 
-     }
 
-     /**
 
-      * Make a grid builder.
 
-      *
 
-      * @return Grid
 
-      */
 
-     protected function grid()
 
-     {
 
-         Permission::check('jobs_manager');
 
-         $grid = new Grid(new Jobs);
 
-         $grid->model()->with(['jobsContact','company'])->when(get_subsite_id()>0, function ($query) {
 
-            $query->where('subsite_id', get_subsite_id());
 
-         })->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->jobs_name('职位名称')->display(function ($jobs_name) {
 
-             return "<a href=".route(url_rewrite('AIX_jobsshow'), ['id'=>$this->id])." target='_blank' title='".$jobs_name."' style='display:inline-block;overflow:hidden;white-space: nowrap;text-overflow: ellipsis;max-width:180px'>".$jobs_name."</a>";
 
-         })->width(200);
 
-         $grid->column('promition', '推广类型')->display(function ($promition) {
 
-             $stick = '';
 
-             $emergency = '';
 
-             if ($this->stick == 0 && $this->emergency == 0) {
 
-                 return "<span>无推广</span>";
 
-             } else {
 
-                 if ($this->stick == 1) {
 
-                     $stick = "<span>已置顶</span>";
 
-                 }
 
-                 if ($this->emergency == 1) {
 
-                     $emergency ='<span>已紧急</span>';
 
-                 }
 
-                 return $stick.$emergency;
 
-             }
 
-         });
 
-         $grid->company_name('公司名称')->display(function ($company_name) {
 
-             return "<a href=". route(url_rewrite('AIX_companyshow'), ['id'=>$this->company_id])." title='".$company_name."' target='_blank' style='display:inline-block;overflow:hidden;white-space: nowrap;text-overflow: ellipsis;max-width:200px'>".$company_name."</a>";
 
-         })->width(200);
 
-         $grid->audit('审核状态')->display(function ($audit) {
 
-             switch ($audit) {
 
-                 case 0:
 
- //                    return '未审核<a class="logview" data-id='.$this->id.'><i class="fa fa-eye"></i></a>';
 
-                     break;
 
-                 case 1:
 
-                     return '<span style="color: green">审核通过</span><a class="logview" data-id='.$this->id.'><i class="fa fa-eye"></i></a>';
 
-                     break;
 
-                 case 2:
 
-                     return '<span style="color: red">审核中<a class="logview" data-id='.$this->id.'><i class="fa fa-eye"></i></a></span>';
 
-                     break;
 
-                 case 3:
 
-                     return '<span style="color: black">审核未通过</span><a class="logview" data-id='.$this->id.'><i class="fa fa-eye"></i></a>';
 
-                     break;
 
-             }
 
-         });
 
-         if(get_subsite_open()) {
 
-             $grid->subsite_id('所属分站')->display(function ($subsite_id) {
 
-                 if ($subsite_id == 0) {
 
-                     return "总站";
 
-                 } else {
 
-                     try{
 
-                         $subsite = Subsite::findOrFail($subsite_id);
 
-                         return $subsite->sitename;
 
-                     }catch (\Exception $exception){
 
-                         return "--";
 
-                     }
 
-                 }
 
-             });
 
-         }
 
-         $grid->refresh_time('刷新时间')->display(function ($refresh_time) {
 
-             return date('Y-m-d H:i:s', $refresh_time);
 
-         });
 
-         $grid->created_at('发布时间');
 
-         $grid->tools(function ($tools) {
 
-             if (Admin::user()->can('jobs_manager_refresh')) {
 
-                 $tools->append("<a class='btn btn-sm btn-primary btn-refresh'><i class='fa fa-refresh'></i>职位刷新</a>");
 
-             }
 
-         });
 
-         $grid->click('点击量');
 
-         $grid->actions(function ($actions) {
 
-             if (Admin::user()->can('jobs_manager_edit')) {
 
-                 $actions->disableEdit(false);
 
-             }
 
-             if (Admin::user()->can('company_manager_bussiness')) {
 
-                 $actions->append("<button class='btn btn-primary btn-xs business' id=".$actions->row['company_id'].">业务</button>");
 
-             }
 
-             if (Admin::user()->can('jobs_manager_delete')) {
 
-                 $actions->disableDelete(false);
 
-             }
 
-             if (Admin::user()->can('jobs_manager_audit')) {
 
-                 $actions->append("<button class='btn btn-primary btn-xs jobaudit' data-code=".$actions->row['id'].">审核</button>");
 
-             }
 
-         });
 
-         if (Admin::user()->can('jobs_export')) {
 
-             $grid->disableExport(false); //显示导出按钮
 
-             $grid->exporter(new JobsExport()); //传入自己在第1步创建的导出类
 
-         }
 
-         $grid->filter(function ($filter) {
 
-             // 在这里添加字段过滤器
 
-             $filter->column(1/2, function ($filter) {
 
-                 $filter->like('jobs_name', '职位名称');
 
-                 $filter->equal('company_id', '企业id');
 
-                 $filter->equal('audit', '职位审核')->select(['1' => '审核通过', '2' => '审核中', '3' => '审核未通过']);
 
-                 $filter->where(function ($query) {
 
-                     if ($this->input == '1') {
 
-                         $query->where(['stick'=>0,'emergency'=>0]);
 
-                     } elseif ($this->input==2) {
 
-                         $query->where(['stick'=>1]);
 
-                     } elseif ($this->input==3) {
 
-                         $query->where(['emergency'=>1]);
 
-                     }
 
-                 }, '推广类型', 'promotion')->select([0 => '不限', 1 => '未推广', 2 => '置顶', 3 => '紧急'])->default('0');
 
-                 $filter->equal('valid', '有效状态')->select(['0'=>'无效职位', '1'=>'有效职位']);
 
-             });
 
-             $filter->column(1/2, function ($filter) {
 
-                 $filter->equal('id', '职位ID');
 
-                 $filter->like('company_name', '企业名称');
 
-                if(get_subsite_open()) {
 
-                    $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();
 
-                 $filter->use(new TimestampBetween('refresh_time', '刷新时间'))->datetime();
 
-             });
 
-         });
 
-         //审核模态框
 
-         $grid->tools(function ($tools) {
 
-             if (Admin::user()->can('jobs_manager_delete')) {
 
-                 $tools->batch(function (Grid\Tools\BatchActions $batch) {
 
-                     $batch->disableDelete(false);
 
-                 });
 
-             }
 
-             if (Admin::user()->can('jobs_manager_audit')) {
 
-                 $form = new \Encore\Admin\Widgets\Form();
 
-                 $form->action(route('jobs.audit'));
 
-                 $form->radio('audit1', '审核状态')->options([1=>'审核通过', 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));
 
-             }
 
-         });
 
-         return $grid;
 
-     }
 
-     /**
 
-      * Make a show builder.
 
-      *
 
-      * @param mixed $id
 
-      * @return Show
 
-      */
 
-     protected function detail($id)
 
-     {
 
-         $show = new Show(Jobs::findOrFail($id));
 
-         $jobs = Jobs::findOrFail($id);
 
-         $show->id('ID');
 
-         $show->jobs_name('职位名称');
 
-         $show->valid('在招状态')->as(function ($valid) {
 
-             switch ($valid) {
 
-                 case 1:
 
-                     return "在招";
 
-                     break;
 
-                 case 0:
 
-                     return '关闭';
 
-                     break;
 
-             }
 
-         });
 
-         $show->audit('审核状态')->as(function ($audit) {
 
-             switch ($audit) {
 
-                 case 1:
 
-                     return "审核通过";
 
-                     break;
 
-                 case 2:
 
-                     return "审核中";
 
-                     break;
 
-                 case 3:
 
-                     return "审核未通过";
 
-                     break;
 
-                 case 0:
 
-                     break;
 
-             }
 
-         });
 
-         $show->nature('职位性质')->as(function ($nature) {
 
-             if (!$nature) {
 
-                 return '不限';
 
-             } else {
 
-                 return get_category($nature);
 
-             }
 
-         });
 
-         $show->ygxs('用工形式')->as(function ($ygxs){
 
-             if (isset(Category::categoryType('AIX_ygxs')[$ygxs])){
 
-                 return Category::categoryType('AIX_ygxs')[$ygxs];
 
-             }else{
 
-                 return "";
 
-             }
 
-         });
 
-         $show->techlevel('技能等级')->as(function ($techlevel){
 
-             if (isset(Category::categoryType('AIX_techlevel')[$techlevel])){
 
-                 return Category::categoryType('AIX_techlevel')[$techlevel];
 
-             }else{
 
-                 return "";
 
-             }
 
-         });
 
-         if ($jobs->ygxs!=363){ //不等于小时工显示
 
-             $show->syq('试用期时间')->as(function ($syq){
 
-                 if (isset(Category::categoryType('zs_syq')[$syq])){
 
-                     return Category::categoryType('zs_syq')[$syq];
 
-                 }else{
 
-                     return "";
 
-                 }
 
-             });
 
-             if ($jobs->syq!=367){ //试用期无不显示
 
-                 $show->syqxz_min('试用期薪资');
 
-             }
 
-         }else{
 
-             $show->wage_min('小时工薪资')->as(function ($wage_min){
 
-                     return $wage_min."元/小时";
 
-             });
 
-         }
 
-         /**
 
-          * 比较坑的Show 关联,必须要全小写,如果你关联的和你获取名字一样那直接不显示....
 
-          **/
 
-         $show->jobscontact()->contact('联系人')->as(function ($contact) {
 
-             return $contact->contact;
 
-         });
 
-         $show->jobscontact()->contact_show('联系人是否公开')->as(function ($contact) {
 
-             return $contact->contact_show ? "公开" : "不公开";
 
-         });
 
-         $show->jobscontact()->telephone('电话')->as(function ($contact) {
 
-             return $contact->telephone;
 
-         });
 
-         $show->jobscontact()->telephone_show('电话是否公开')->as(function ($contact) {
 
-             return $contact->telephone_show ? "公开" : "不公开";
 
-         });
 
-         $show->jobscontact()->email('邮箱')->as(function ($contact) {
 
-             return $contact->email;
 
-         });
 
-         $show->jobscontact()->email_show('邮箱是否公开')->as(function ($contact) {
 
-             return $contact->email_show ? "公开" : "不公开";
 
-         });
 
-         $show->category('职位分类')->as(function ($category) {
 
-             return get_job_category_cn($this->topclass.'.'.$category.'.'.$this->subclass);
 
-         });
 
-         $show->subsite_id('所属分站')->as(function ($subsite_id) {
 
-             if ($subsite_id == 0) {
 
-                 return "总站";
 
-             } else {
 
-                 $subsite = Subsite::findOrFail($subsite_id);
 
-                 return $subsite->sitename;
 
-             }
 
-         });
 
-         $show->district('工作地区')->as(function ($district) {
 
-             return get_district_cn($district);
 
-         });
 
-         $show->negotiable('是否面议')->as(function ($negotiable) {
 
-             if ($negotiable) {
 
-                 return '是';
 
-             } else {
 
-                 return '否';
 
-             }
 
-         });
 
-         if ($jobs->wage == -1) {
 
-             $show->wage_cn('薪资待遇')->as(function () {
 
-                 return $this->wage_min.'~'.$this->wage_max.'/月';
 
-             });
 
-         } elseif ($jobs->wage == 0) {
 
-             $show->wage_cn('薪资待遇')->as(function () {
 
-                 return "面议";
 
-             });
 
-         } else {
 
-             $show->wage_cn('薪资待遇')->as(function () {
 
-                 return get_category($this->wage);
 
-             });
 
-         }
 
-         $show->department('所属部门');
 
-         $show->education('学历要求')->as(function ($education) {
 
-             if ($education) {
 
-                 return get_category($education);
 
-             } else {
 
-                 return '不限';
 
-             }
 
-         });
 
-         $show->experience('工作经验')->as(function ($experience) {
 
-             if ($experience) {
 
-                  return get_category($experience);
 
-             } else {
 
-                 return '不限';
 
-             }
 
-         });
 
-         $show->sex('性别要求')->as(function ($sex) {
 
-             if (!$sex) {
 
-                 return '不限';
 
-             } else {
 
-                 return $sex==1?"男":"女";
 
-             }
 
-         });
 
-         $show->amount('招聘人数');
 
-         $show->tag('职位亮点')->as(function ($tag) {
 
-             $tagid = implode(',', $tag);
 
-             if ($tagid) {
 
-                 return get_tag_cn($tagid);
 
-             } else {
 
-                 return '';
 
-             }
 
-         });
 
-         $show->jobs_content('职位描述');
 
-         $show->created_at('创建时间');
 
-         $show->updated_at('更新时间');
 
-         return $show;
 
-     }
 
-     /**
 
-      * Make a form builder.
 
-      *
 
-      * @return Form
 
-      */
 
-     protected function editForm($id)
 
-     {
 
-         Permission::check('jobs_manager_edit');
 
-         $form = new Form(new Jobs);
 
-             $form->tab('职位信息', function (Form $form) use ($id) {
 
-                 $jobsData = Jobs::where('id', $id)->select('audit','negotiable', 'age', 'topclass', 'category', 'subclass', 'district', 'wage', 'wage_min', 'wage_max')->first()->toArray();
 
-                 session(["jobsData"=>$jobsData]);
 
-                 if ($jobsData['district']) {
 
-                     $district = string_to_array('.', $jobsData['district']);
 
-                 }
 
-                 $form->display('id');
 
-                 $form->text('jobs_name', '职位名称')->rules(['required'], ['required'=>'请填写职位名称'])->setMustMark();
 
-                 $form->display('company_name', '公司名称');
 
-                 $form->radio('display', '在招状态')->options([1=>'在招',2=>'关闭']);
 
-                 $form->radio('audit', '审核状态')->options([1=>'审核通过',2=>'审核中',3=>'审核未通过']);
 
-                 $jobsNature = Category::categoryType('AIX_jobs_nature');
 
-                 $jobsNature[0] ='不限';
 
-                 $form->radio('nature', '职位性质')->options($jobsNature);
 
- //                if (get_subsite_id()==0 && get_subsite_open()) {
 
- //                    $subsites = Subsite::where(array('effective'=>1))->orderBy('order', 'asc')->get()->pluck('sitename', 'id');
 
- //                    if ($subsites) {
 
- //                        $relations = SubsiteJob::where(['jobs_id'=>$id])->get()->pluck('subsite_id')->toArray();
 
- //                        $form->multipleSelect('relate_subsites', '同步分站')->options($subsites)->default($relations);
 
- //
 
- //                    }
 
- //                } else {
 
- //                    $form->hidden('relate_subsites');
 
- //                }
 
- //                $form->hidden('subsite_id')->value(get_subsite_id());
 
- //                $form->select('ygxs', '用工形式')->options(Category::categoryType('AIX_ygxs'))->setMustMark();
 
- //                $form->select('techlevel', '技能等级')->options(Category::categoryType('AIX_techlevel'))->setMustMark();
 
-                 $form->select('topclass', '职位大类')->options(CategoryJobs::List()->pluck('name', 'id'))->load('category',admin_base_path('/sys/categoryJobs/category'))->rules('required', array('required'=>'请选择职位大类'))->setMustMark();
 
-                 $form->select('category', '职位中类')->options(CategoryJobs::category($jobsData['topclass']))->load('subclass',admin_base_path('/sys/categoryJobs/category'))->rules('required', array('required'=>'请选择职位中类'))->setMustMark();
 
-                 $form->select('subclass', '职位小类')->options(CategoryJobs::category($jobsData['category']))->rules('required', array('required'=>'请选择职位小类'))->setMustMark();
 
-                 if (!empty($district)) {
 
-                     if (!isset($district[1])){$district[1]=""; $district[2]="";}//没有的话给默认值
 
-                     $form->select('province', '所属省份')->options(CategoryDistrict::List()->pluck('name', 'id'))->setWidth(3)->load('city', admin_base_path('sys/category/categoryDis'))->rules('required', ['required'=>'请选择相应的企业所属省份'])->default($district[0])->setMustMark();
 
-                     $form->select('city', '所属城市')->options(CategoryDistrict::categoryDis($district[0]))->setWidth(3)->load('area', admin_base_path('sys/category/categoryDis'))->rules('required', ['required'=>'请选择相应的企业所属城市'])->default($district[1])->setMustMark();
 
-                     //$form->select('area', '所属县区')->default(0)->setWidth(3)->setMustMark();
 
-                 } else {
 
-                     $form->select('province', '所属省份')->options(CategoryDistrict::List()->pluck('name', 'id'))->setWidth(3)->load('city', admin_base_path('sys/category/categoryDis'))->rules('required', ['required'=>'请选择相应的企业所属省份'])->default(0)->setMustMark();
 
-                     $form->select('city', '所属城市')->setWidth(3)->load('area', admin_base_path('sys/category/categoryDis'))->rules('required', ['required'=>'请选择相应的企业所属城市'])->default(0)->setMustMark();
 
-                     //$form->select('area', '所属县区')->setWidth(3)->default(0)->setMustMark();
 
-                 }
 
- //                $form->select('syq', '试用期时间')->options(Category::categoryType('zs_syq'))->rules('required', array('required'=>'请选择试用期时间'))->setMustMark();
 
- //                $form->number('syqxz_min', '试用期薪资')->min(config('aix.companyset.comset.com_set.wage_min'));
 
-                 if ($jobsData['wage'] == 0) {
 
-                     $form->hidden('wage');
 
-                     $form->number('wage_min', '最低薪资')->min(config('aix.companyset.comset.com_set.wage_min'))->help("请填写大于".config('aix.companyset.comset.com_set.wage_min')."的10的倍数");
 
-                     $form->number('wage_max', '最高薪资')->help("请填写大于最低薪资的10的倍数");
 
-                 } else {
 
-                     $option = Category::categoryType('AIX_wage');
 
-                     $option[-1] ='面议';
 
-                     $form->select('wage', '薪资待遇')->options($option)->default($jobsData['wage']);
 
-                     $form->hidden('wage_min');
 
-                     $form->hidden('wage_max');
 
-                 }
 
-                 $education = Category::categoryType('AIX_education');
 
-                 $education['0']='不限';
 
-                 $form->radio('education', '学历要求')->options($education);
 
-                 $experience = Category::categoryType('AIX_experience');
 
-                 $experience['0']="不限";
 
-                 $form->radio('experience', '工作经验')->options($experience);
 
-                 $form->radio('sex', '性别要求')->options([0=>'不限',1=>'男',2=>'女']);
 
-                 $form->radio('is_deformity', '是否接受残疾人')->options([1=>'是',2=>'否']);
 
-                 $form->number('min_age', '最低年龄')->default(isset($jobsData['age'][0])?$jobsData['age'][0]:'')->min(16)->max(65)->help('最低年龄不能低于国家规定用工年龄');
 
-                 $form->number('max_age', '最高年龄')->default(isset($jobsData['age'][1])?$jobsData['age'][1]:'')->min(16)->max(65)->help('最高年龄不能高于65周岁');
 
-                 $form->number('amount', '招聘人数')->min(1)->max(99)->rules(['required'], ['required'=>'请输入招聘人数'])->help('请填写招聘人数1~99')->setMustMark();
 
-                 $form->multipleSelect('tag', '职位亮点')->options(Category::categoryType('AIX_jobtag'));
 
-                 $form->textarea('jobs_content', '职位描述')->attribute(['maxlength'=>2000])->rules(['required'], ['required'=>"请填写职位描述"])->setMustMark();
 
-             })->tab('联系人', function (Form $form) {
 
-                 $form->text("contact.contact", '联系人')->setWidth(3);
 
-                 $form->radio('contact.contact_show', '联系人是否公开')->options([0=>'不公开',1=>'公开']);
 
-                 $form->text('contact.telephone', '联系电话')->setWidth(3);
 
-                 $form->radio('contact.telephone_show', '联系电话是否公开')->options([0=>'不公开',1=>'公开']);
 
- //                $form->text('contact.landline_tel', '固定电话')->setWidth(3)->help('区号-号码-分机号(以“-”分隔)');  //这个字段引起问题
 
- //                $form->radio('contact.landline_tel_show', '固定电话是否公开')->options([0=>'不公开',1=>'公开']);
 
-                 $form->text('contact.email', 'Email')->setWidth(3);
 
-                 $form->radio('contact.email_show', 'Email是否公开')->options([0=>'不公开',1=>'公开']);
 
-                 $form->text('contact.address', '联系地址')->setWidth(3);
 
-             });
 
-                 $form->disableEditingCheck();
 
-                 $form->disableCreatingCheck();
 
-                 $form->disableViewCheck();
 
-                 $form->disableReset();
 
-                 $form->tools(function ($tools) {
 
-                     $tools->disableView();
 
-                     $tools->disableDelete();
 
-                 });
 
-                 $form->ignore('province');
 
-                 $form->ignore('city');
 
-                 $form->ignore('area');
 
-                 $form->ignore('min_age');
 
-                 $form->ignore('max_age');
 
-                 $form->ignore(['relate_subsites']);
 
-                 $form->saving(function (Form $form) {
 
-                     $minage = Input::get('min_age');
 
-                     $maxage = Input::get('max_age');
 
-                     if ($maxage && $minage) {
 
-                         if ($maxage <=$minage) {
 
-                             $error = new MessageBag([
 
-                                 'title' => '提示',
 
-                                 'message' => '最高年龄不能小最低年龄',
 
-                             ]);
 
-                             return back()->with(compact('error'));
 
-                         }
 
-                     }
 
-                     if ($form->wage == -1) {
 
-                         $form->wage_min = 0;
 
-                         $form->wage_max = 0;
 
-                     } else {
 
-                         if ($form->wage!=0) {
 
-                             $wage = explode('~', format_wage(get_category($form->wage)));
 
-                             if (isset($wage[1])) {
 
-                                 $form->wage_max = $wage[1];
 
-                             }
 
-                             $form->wage_min = $wage[0];
 
-                         } else {
 
-                             if ($form->wage_min < config('aix.companyset.comset.com_set.wage_min')) {
 
-                                 $error = new MessageBag([
 
-                                     'title'   => '提示',
 
-                                     'message' => '最低薪资请填写大于'.config('aix.companyset.comset.com_set.wage_min'),
 
-                                 ]);
 
-                                 return back()->with(compact('error'));
 
-                             }
 
-                             if ($form->wage_min%10 != 0) {
 
-                                 $error = new MessageBag([
 
-                                     'title'   => '提示',
 
-                                     'message' => '薪资请填写10的倍数',
 
-                                 ]);
 
-                                 return back()->with(compact('error'));
 
-                             }
 
-                             if ($form->wage_max%10 != 0) {
 
-                                 $error = new MessageBag([
 
-                                     'title'   => '提示',
 
-                                     'message' => '薪资请填写10的倍数',
 
-                                 ]);
 
-                                 return back()->with(compact('error'));
 
-                             }
 
-                             if (isset($form->wage_max) && $form->wage_max && $form->wage_max < $form->wage_min) {
 
-                                 $error = new MessageBag([
 
-                                     'title' => '提示',
 
-                                     'message' => '最高薪资不能低于最低薪资',
 
-                                 ]);
 
-                                 return back()->with(compact('error'));
 
-                             }
 
-                         }
 
-                     }
 
-                     if (($form->min_age && !$form->max_age) || ($form->max_age && !$form->min_age)) {
 
-                         $error = new MessageBag([
 
-                             'title'   => '提示',
 
-                             'message' => '请同时填写最高和最低年龄',
 
-                         ]);
 
-                         return back()->with(compact('error'));
 
-                     }
 
-                     if ($form->min_age && $form->min_age < 16) {
 
-                         $error = new MessageBag([
 
-                             'title'   => '提示',
 
-                             'message' => '最低年龄不能小于16岁',
 
-                         ]);
 
-                         return back()->with(compact('error'));
 
-                     }
 
-                     if ($form->max_age && $form->min_age > 65) {
 
-                         $error = new MessageBag([
 
-                             'title'   => '提示',
 
-                             'message' => '最高年龄不能大于65岁',
 
-                         ]);
 
-                         return back()->with(compact('error'));
 
-                     }
 
-                   if ($form->syqxz_min && $form->syqxz_min < $form->wage_min*0.8 ) {
 
-                       $error = new MessageBag([
 
-                           'title'   => '提示',
 
-                           'message' => '试用期薪资不得低于正式工资的80%',
 
-                       ]);
 
-                       return back()->with(compact('error'));
 
-                   }
 
-                   if($form->syq==367){//无试用期 就把工资清0
 
-                       $form->syqxz_min=null;
 
-                   }
 
-                 });
 
-                 $form->saved(function (Form $form) use ($id) {
 
-                     $province = \Illuminate\Support\Facades\Request::input('province');
 
-                     $city = \Illuminate\Support\Facades\Request::input('city');
 
-                     $area = \Illuminate\Support\Facades\Request::input('area');
 
-                     $district = $province.'.'.$city.'.'.$area;
 
-                     $age[] = \Illuminate\Support\Facades\Request::input('min_age');
 
-                     $age[] = \Illuminate\Support\Facades\Request::input('max_age');
 
-                     $age = implode('-', $age);
 
-                     $jobsData=session('jobsData');//记录修改前的数据
 
-                     if (!empty($jobsData)){
 
-                         if ($jobsData['audit'] != $form->model()->audit){//修改了审核状态
 
-                             //审核日志$reason
 
-                             $auditData= [];
 
-                             $auditData['ids'] = $id;
 
-                             $auditData['status'] = $form->model()->audit;
 
-                             $auditData['type'] = 3;
 
-                             $auditData['reason'] = "";
 
-                             AuditReason::addData($auditData);
 
-                         }
 
-                     }
 
-                     Jobs::where('id', $id)->update(['district'=>$district,'age'=>$age]);
 
-                     $subsites = \Illuminate\Support\Facades\Request::input('relate_subsites');
 
-                     if ($subsites) {
 
-                         $subsites = array_merge(array(get_subsite_id()), $subsites);
 
-                         SubsiteJob::where('jobs_id', $form->model()->id)->delete();
 
-                         $set_data = array();
 
-                         foreach ($subsites as $k => $v) {
 
-                             if ($v !== null) {
 
-                                 $set_data[] = array(
 
-                                     'jobs_id' => $form->model()->id,
 
-                                     'subsite_id'=> $v,
 
-                                     'created_at'=> date('Y-m-d H:i:s'),
 
-                                     'updated_at'=> date('Y-m-d H:i:s'),
 
-                                 );
 
-                             }
 
-                         }
 
-                         SubsiteJob::insert($set_data);
 
-                     }
 
-                 });
 
-         return $form;
 
-     }
 
-     public function update($id)
 
-     {
 
-         $result = $this->editForm($id)->update($id);
 
-         event_search_update(Jobs::class, (string)$id, 'update');
 
-         $cids = Jobs::where('id', $id)->pluck('company_id')->toArray();
 
-         $company_condition = [['whereIn','id', $cids]];
 
-         event_search_update(Company::class, $company_condition, 'update');
 
-         return $result;
 
-     }
 
-     public function jobsAudit(Request $request)
 
-     {
 
-         $ids = $request->ids;
 
-         if (!$ids) {
 
-             return admin_toastr('请选择要审核的职位', 'error');
 
-         }
 
-         $id = explode(',', $ids);
 
-         $job_com_ids =$this->jobsRepository->findWhereIn('id', $id, ['company_id','id','jobs_name'])->toArray();
 
-         $reason = $request->reason;
 
-         $audit = $request->audit1;
 
-         $data = ['audit'=>$audit];
 
-         if (Jobs::jobsUpdate($id, $data)) {
 
-             event_search_update(Jobs::class, implode(',', $id), 'update');
 
-             if ($job_com_ids) {
 
-                 $company_ids = [];
 
-                 foreach ($company_ids as $k => $c) {
 
-                     $company_ids[] = $c['company_id'];
 
-                 }
 
-                 $company_condition = [['whereIn','id', $company_ids]];
 
-                 event_search_update(Company::class, $company_condition, 'update');
 
-             }
 
-             switch ($request->audit1) {
 
-                 case 1:
 
-                     $html = "通过审核";
 
-                     $alias=Smser::TEMPLATE_SMS_JOBSALLOW;
 
-                     break;
 
-                 case 3:
 
-                     $html = "未通过审核";
 
-                     $alias=Smser::TEMPLATE_SMS_JOBSNOTALLOW;
 
-                     break;
 
-             }
 
- //            if ($job_com_ids) {
 
- //                $company_ids = [];
 
- //                foreach ($job_com_ids as $k => $c) {
 
- //                    $company_ids[] = $c['company_id'];
 
- //                    $company = Company::find($c['company_id']);
 
- //                    $this->wechatService->sendTemplateMessage($company, 'set_jobsallow',[
 
- //                        'keyword1'=>[$c['jobs_name'],'#0000ff'],
 
- //                        'keyword2'=>[$html,$css],
 
- //                        'keyword3'=>[$reason,'#0000ff'],
 
- //                    ],route('mobile.firm.jobs.list'));
 
- //
 
- //                    if($company->email){
 
- //                        $this->emailService->sendMail($company->email, $email, ['jobsname'=>$c['jobs_name']], ['jobsname'=>$c['jobs_name'],'sitedomain'=>route('com.index')]);
 
- //                    }
 
- //
 
- //                }
 
- //                $company_condition = [['whereIn','id', $company_ids]];
 
- //                event_search_update(Company::class, $company_condition, 'update');
 
- //            }
 
-             $mobile = [];
 
-             foreach ($id as $key => $val) {
 
-                 $jobsInfo = Jobs::with('jobsContact')->find($val);
 
-                 if ($jobsInfo->jobsContact && $jobsInfo->jobsContact->telephone) {
 
-                     if(!in_array($jobsInfo->jobsContact->telephone, $mobile)){
 
-                         $mobile[] = $jobsInfo->jobsContact->telephone;
 
-                         $this->smsService->sendSms($jobsInfo->jobsContact->telephone, $alias, ['sitename'=>config('aix.system.site.site.site_name'),'jobsname'=>$jobsInfo->jobs_name,'sitedomain'=>config('aix.system.site.site.site_domain')]);
 
-                     }
 
-                 }
 
-             }
 
-             //审核日志$reason
 
-             $auditData= [];
 
-             $auditData['ids'] = $id;
 
-             $auditData['status'] = $audit;
 
-             $auditData['type'] = 3;
 
-             $auditData['reason'] = $reason;
 
-             AuditReason::addData($auditData);
 
-             if ($request->is_send) {
 
-                 // 站内信
 
-                 $insertData = [];
 
-                 foreach ($job_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'     => '职位ID:'.$val['id'].',职位名称:'.$val['jobs_name'].','.$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');
 
-             }
 
-         }
 
-     }
 
-     public function jobsbusiness(Content $content)
 
-     {
 
-         return $content->body(view(admin_base_path().'/jobsbusiness/jobs_business'));
 
-     }
 
-     public function jobsrefresh(Request $request)
 
-     {
 
-         $ids = $request->ids;
 
-         if (!$ids) {
 
-             return admin_toastr('请选择要刷新的职位', 'error');
 
-         }
 
-         $id = explode(',', $ids);
 
-         $data = ['refresh_time' => time()];
 
-         if (Jobs::jobsUpdate($id, $data)) {
 
-             event_search_update(Jobs::class, implode(',', $id), 'update');
 
-             $com_ids =$this->jobsRepository->findWhereIn('id', $id, ['company_id'])->toArray();
 
-             $company_condition = [['whereIn','id', $com_ids]];
 
-             event_search_update(Company::class, $company_condition, 'update');
 
-             return admin_toastr('职位刷新成功', 'success');
 
-         } else {
 
-             return admin_toastr('职位刷新失败', 'error!');
 
-         }
 
-     }
 
-     //删除职位
 
-     public function destroy($id)
 
-     {
 
-         $ids = explode(',', $id);
 
-         $company_id = Jobs::select('company_id')->whereIn('id', $ids)->get()->toArray();
 
-         $cids = array();
 
-         if ($company_id) {
 
-             foreach ($company_id as $k => $v) {
 
-                 $cids[] = $v['company_id'];
 
-             }
 
-         }
 
-         DB::beginTransaction();//检查数据库事务
 
-         try {
 
-             if (false === Jobs::destroy($ids)) {
 
-                 throw  new \Exception('删除职位失败!');
 
-             }
 
-             if (false === JobsContact::whereIn('job_id', $ids)->delete()) {
 
-                 throw  new \Exception('职位联系人删除失败,删除职位失败!');
 
-             }
 
-             if (false === ViewJob::whereIn('job_id', $ids)->delete()) {
 
-                 throw  new \Exception('职位被浏览信息删除失败,删除职位失败!');
 
-             }
 
-             $condition = [['whereIn','id',$ids]];
 
-             event_search_update(Jobs::class, $condition, 'delete');
 
-             $company_condition = [['whereIn','id', $cids]];
 
-             event_search_update(Company::class, $company_condition, 'update');
 
-             DB::commit();
 
-         } catch (\Exception $e) {
 
-             DB::rollback();
 
-             return admin_toastr($e->getMessage(), 'error');
 
-         }
 
-         return admin_toastr('职位删除成功', 'success');
 
-     }
 
-     public function auditLog(Request $request)
 
-     {
 
-         $id = $request->id;
 
-         $type = $request->type;
 
-         $headers = ['status'=>'审核状态', 'tim'=>'审核时间', 'sec'=>'描述'];
 
-         $data = [];
 
-         $res = AuditReason::where(['type_id'=>$id,'type'=>$type])->orderBy('id', 'desc')->get();
 
-         if (!$res) {
 
-             $rows = $data;
 
-         } else {
 
-             foreach ($res as $k => $v) {
 
-                 if ($v['status']==3) {
 
-                     $data[$k]['status'] = '审核失败';
 
-                 } elseif ($v['status']==1) {
 
-                     $data[$k]['status'] = '审核通过';
 
-                 } else {
 
-                     $data[$k]['status'] = '待审核';
 
-                 }
 
-                 $data[$k]['tim'] = $v['created_at'];
 
-                 $data[$k]['sec'] = $v['audit_man'].'--'.$v['reason'];
 
-             }
 
-             $rows = $data;
 
-         }
 
-         $table = new Table($headers, $rows);
 
-         return ['html'=>$table->render(),'detail'=>'审核日志'];
 
-     }
 
- }
 
 
  |