Forráskód Böngészése

增加专项考试

sandm 1 éve
szülő
commit
1fd99c1ad6
1 módosított fájl, 174 hozzáadás és 0 törlés
  1. 174 0
      app/Admin/Controllers/Recruit/SpecialController.php

+ 174 - 0
app/Admin/Controllers/Recruit/SpecialController.php

@@ -146,6 +146,180 @@ class SpecialController extends Controller
             ->body(view('admin.special.index')->with(['grid' => $this->form()->render(), 'id' => '0']));
     }
 
+    /**
+     * 更新报名场次信息
+     * @param $id
+     * @param Request $request
+     */
+    public function update($id, Request $request)
+    {
+        $verify = $this->Form()->getValidateInput();//这个方法会调用Form自带的验证和表单处理(文件上传等)验证错误会直接返回错误.不需要判断;
+        $postCode = $request->input('postcode', []);
+        $postName = $request->input('postname', []);
+        if (count($postCode) == 0 or (count($postCode) >= 1 and $postCode[0] == null)) {
+            return admin_toastr('请填写招考岗位', 'error');
+        }
+        if (count($postName) == 0 or (count($postName) >= 1 and $postName[0] == null)) {
+            return admin_toastr('请填写招考岗位名称', 'error');
+        }
+        $recruit_id = $id;
+        $recruit = Recruit::find($id);
+        if(!$recruit->special){
+            $this->show();
+        }
+        $data = [];
+        $data['name'] = $verify['name'];
+        $data['company'] = $verify['company'];
+        $data['name_en'] = (array_key_exists('name_en',$verify) && !empty($verify['name_en'])) ? $verify['name_en'] : uniqid();
+        if(array_key_exists('small_img',$verify)){
+            $data['small_img'] = $verify['small_img'];
+        }else{
+            $data['small_img'] = theme_asset('app/images/index/recruit_index.jpg');
+        }
+        $data['status'] = $verify['status'];
+        $data['show_report'] = $verify['show_report'];
+        $data['current'] = $verify['current'];
+        $data['step'] = implode(',',array_filter($verify['step']));
+        $data['apply_start'] = $verify['apply_start'] ? $verify['apply_start'] : null;//报名时间
+        $data['apply_end'] = $verify['apply_end'] ? $verify['apply_end'] : null;
+        $data['audit_start'] = $verify['audit_start'] ? $verify['audit_start'] : null;//审核时间
+        $data['audit_end'] = $verify['audit_end'] ? $verify['audit_end'] : null;
+        $data['preliminary_start'] = $verify['preliminary_start'] ? $verify['preliminary_start'] : null;//笔试时间
+        $data['preliminary_end'] = $verify['preliminary_end'] ? $verify['preliminary_end'] : null;
+        $data['computer_start'] = $verify['computer_start'] ? $verify['computer_start'] : null;//上机时间
+        $data['computer_end'] = $verify['computer_end'] ? $verify['computer_end'] : null;
+        $data['interview_start'] = $verify['interview_start'] ? $verify['interview_start'] : null;//面试时间
+        $data['interview_end'] = $verify['interview_end'] ? $verify['interview_end'] : null;
+        $data['reexamine_start'] = $verify['reexamine_start'] ? $verify['reexamine_start'] : null;//复试时间
+        $data['reexamine_end'] = $verify['reexamine_end'] ? $verify['reexamine_end'] : null;
+        $data['health_start'] = $verify['health_start'] ? $verify['health_start'] : null;//体检时间
+        $data['health_end'] = $verify['health_end'] ? $verify['health_end'] : null;
+        $data['political_start'] = $verify['political_start'] ? $verify['political_start'] : null;//政审时间
+        $data['political_end'] = $verify['political_end'] ? $verify['political_end'] : null;
+        $data['publicity_start'] = $verify['publicity_start'] ? $verify['publicity_start'] : null;//公示时间
+        $data['publicity_end'] = $verify['publicity_end'] ? $verify['publicity_end'] : null;
+        $data['supplement_start'] = $verify['supplement_start'] ? $verify['supplement_start'] : null;
+        $data['supplement_end'] = $verify['supplement_end'] ? $verify['supplement_end'] : null;
+        $data['introduction'] = $verify['introduction'];
+        $data['host_address'] = $verify['host_address'];
+        $data['contact'] = $verify['contact'];
+        $data['phone'] = $verify['phone'];
+        $data['ordid'] = $verify['ordid'];
+        $data['limit_times'] = $verify['limit_times'];
+        $data['post_times'] = $verify['post_times'];
+        $data['pay_switch'] = $verify['pay_switch'];
+        $data['forms'] = implode(',',array_filter($verify['forms']));
+        $data['pen_ticket_type'] = $verify['pen_ticket_type'];
+        $data['pen_ticket_content'] = $verify['pen_ticket_content'];
+        $data['pen_ticket_status'] = 0;
+        $data['pen_ticket_field'] = implode(',',$verify['pen_ticket_field']);
+        $data['pen_comfirm'] = $verify['pen_comfirm'];
+        $data['pen_comfirm_start'] = $verify['pen_comfirm_start'] ? $verify['pen_comfirm_start'] : null;
+        $data['pen_comfirm_end'] = $verify['pen_comfirm_end'] ? $verify['pen_comfirm_end'] : null;
+        $data['pen_epidemic'] = $verify['pen_epidemic'];
+        $data['pen_health'] = $verify['pen_health'];
+        $data['pen_health_start'] = $verify['pen_health_start'] ? $verify['pen_health_start'] : null;
+        $data['pen_health_end'] = $verify['pen_health_end'] ? $verify['pen_health_end'] : null;
+        $data['computer_ticket_type'] = $verify['computer_ticket_type'];
+        $data['computer_ticket_content'] = $verify['computer_ticket_content'];
+        $data['computer_ticket_status'] = 0;
+        $data['computer_ticket_field'] = implode(',',$verify['computer_ticket_field']);
+        $data['face_ticket_type'] = $verify['face_ticket_type'];
+        $data['face_ticket_content'] = $verify['face_ticket_content'];
+        $data['face_ticket_status'] = 0;
+        $data['face_ticket_field'] = implode(',',$verify['face_ticket_field']);
+        $data['face_epidemic'] = $verify['face_epidemic'];
+        $data['face_health'] = $verify['face_health'];
+        $data['face_health_start'] = $verify['face_health_start'] ? $verify['face_health_start'] : null;
+        $data['face_health_end'] = $verify['face_health_end'] ? $verify['face_health_end'] : null;
+        $data['reexamine_ticket_type'] = $verify['reexamine_ticket_type'];
+        $data['reexamine_ticket_content'] = $verify['reexamine_ticket_content'];
+        $data['reexamine_ticket_status'] = 0;
+        $data['reexamine_field'] = implode(',',$verify['reexamine_field']);
+        $ids = RecruitPost::where('recruit_id', $recruit_id)->pluck('id');
+        $fileCharater = $request->input('addFile');
+        $data['special'] = 0;
+
+        DB::beginTransaction();//检查数据库事务
+        try {
+            $res = Recruit::where('id', $recruit_id)->update($data);
+            $postcode_array = $request->postcode;
+            $postname_array = $request->postname;
+            $postnumber_array = $request->postnumber;
+            $limit_array = $request->postlimit;
+            $postid_arr = $request->postid_arr;
+            $countnum = count($postcode_array);
+            if ($countnum > 0) {
+                $ids = RecruitPost::where('recruit_id', $recruit_id)->pluck('id');
+                if (count($postid_arr) == 0) {//没有提交岗位代表删除岗位
+                    RecruitPost::where('recruit_id', $recruit_id)->delete();
+                } else {
+                    foreach ($ids as $key => $value) {
+                        if (!in_array($value, $postid_arr)) {
+                            $post_is_create = RecruitAppointInfo::where('post_id', $value)->first();
+                            if (empty($post_is_create)) {
+                                //有报名信息的岗位不能删除
+                                RecruitPost::destroy($value);
+                            }
+                        }
+                    }
+                }
+                for ($i = 0; $i < $countnum; $i++) {
+                    $data = array();
+                    if ($postcode_array[$i] !== '' and $postname_array[$i] !== '') {
+                        if (isset($postid_arr[$i])) {
+                            $post_id = $postid_arr[$i];
+                            $data['code'] = $postcode_array[$i];
+                            $data['name'] = $postname_array[$i];
+                            $data['number'] = $postnumber_array[$i];
+                            $data['limit'] = $limit_array[$i];
+                            $data['recruit_id'] = $recruit_id;
+                            RecruitPost::where('id', $post_id)->update($data);
+                        } else {
+                            $data['code'] = $postcode_array[$i];
+                            $data['name'] = $postname_array[$i];
+                            $data['number'] = $postnumber_array[$i];
+                            $data['limit'] = $limit_array[$i];
+                            $data['recruit_id'] = $recruit_id;
+                            RecruitPost::create($data);
+                        }
+                    }
+                }
+            } else {
+                RecruitPost::where('recruit_id', $recruit_id)->delete();
+            }
+            $fileCharater = $request->file('addFile');
+            if (!empty($fileCharater)) {
+                RecruitSubjoin::where('recruit_id', $recruit_id)->delete();
+                foreach ($fileCharater as $f => $fv) {
+                    $picpath = 'zhaokaopic/' . date('Ymd', time()) . '/';
+                    //获取文件的扩展名
+                    $ext = $fv->getClientOriginalExtension();
+                    //获取文件的绝对路径
+                    $path = $fv->getRealPath();
+                    //定义文件名
+                    $filename = time() . rand(100, 999) . '.' . $ext;
+                    //存储文件。disk里面的public。总的来说,就是调用disk模块里的public配置
+                    Storage::disk('public')->put($picpath . $filename, file_get_contents($path));
+                    $data = $picpath . $filename;
+                    $create_arr = [
+                        'recruit_id' => $recruit_id,
+                        'subjoin_name' => $fv->getClientOriginalName(),
+                        'subjoin_path' => $data,
+                        'subjoin_addtime' => time()
+                    ];
+                    RecruitSubjoin::create($create_arr);
+                }
+            }
+            DB::commit();
+            return admin_toastr('操作成功!', 'success');
+
+        } catch (\Exception $e) {
+            DB::rollback();
+            return admin_toastr($e->getMessage(), 'error');
+        }
+    }
+
     /**
      * 新增/修改招考场次的表单
      *