浏览代码

更新确认笔试功能

sandm 2 年之前
父节点
当前提交
bd25244cb7

+ 8 - 0
app/Admin/Controllers/Recruit/RecruitController.php

@@ -252,6 +252,8 @@ class RecruitController extends Controller
             $form->radio('special_condition_type', '加分条件样式')->options([0 => '手输', 1 => '下拉选择'])->default(0);
             $form->text('special_condition_value', '加分条件值')->default("")->help('下拉选择项请用英文,隔开');
         })->tab('笔试', function ($form) {
+            $form->switch('pen_comfirm', '笔试确认')->help("打开后将会在设置时间段内开启笔试确认功能,有且仅当确认了才能打印准考证参加笔试")->default(0)->setMustMark();
+            $form->datetimeRange('pen_comfirm_start', 'pen_comfirm_end', '确认笔试时间')->help("设置该时间后,仅在该时间段内才可以确认参加笔试");
             $form->radio('pen_ticket_type', '准考证类型')->options([-1 => '不需要',1 => '纸质', 2 => '短信', 3 => '模板'])->default(-1);
             $form->text('pen_ticket_content', '准考证内容')->help('当类型为纸质时,此处填入准考证模板的路径,当类型为短信时,此处填入短信标识,当类型为模板时,输入模板ID');
             $form->listbox('pen_ticket_field', '模板字段')->options(RecruitTicketField::ticketFieldData('pen'))->attribute('hight', '200px')->help('仅纸质准考证需要,非ex开头的字段将自动渲染');
@@ -343,6 +345,9 @@ class RecruitController extends Controller
         $data['pen_ticket_type'] = $verify['pen_ticket_type'];
         $data['pen_ticket_content'] = $verify['pen_ticket_content'];
         $data['pen_ticket_status'] = 0;
+        $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;
@@ -481,6 +486,9 @@ class RecruitController extends Controller
         $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;

+ 73 - 0
app/Http/Controllers/Web/Recruit/IndexController.php

@@ -83,6 +83,26 @@ class IndexController extends WebBaseController
             }
         }
         if($appoint_info){
+            //20221115增加确认笔试功能
+            if($recruit->pen_comfirm){
+                if($appoint_info->audit != 3){//审核未通过,无需确认
+                    $appoint_info->pen_comfirm = 0;
+                }else{
+                    $time = time();
+                    if(strtotime($recruit->pen_comfirm_start) > $time || strtotime($recruit->pen_comfirm_end) < $time){
+                        $appoint_info->pen_comfirm = -1; //确认未开始
+                    }else{
+                        if($appoint_info->pen_audit != -2){
+                            $appoint_info->pen_comfirm = -2;//已确认无需再次确认
+                        }else{
+                            $appoint_info->pen_comfirm = 1;
+                        }
+                    }
+                }
+            }else{
+                $appoint_info->pen_comfirm = 0;//无需确认
+            }
+
             //笔试
             $pen_ticket = RecruitTicket::where('appoint_id',$appoint_info->id)->where('ex_type',1)->first();
             if($pen_ticket){
@@ -142,6 +162,7 @@ class IndexController extends WebBaseController
             }
         }else{
             $appoint_info = new \stdClass();
+            $appoint_info->pen_comfirm = 0;
             $appoint_info->pen_audit = 0;
             $appoint_info->post_id = 0;
             $appoint_info->pen_ticket = 0;
@@ -2500,4 +2521,56 @@ class IndexController extends WebBaseController
     }
 
 
+    public function comfirm_pen(Request $request){
+        $user = $this->getUser();
+        if (!empty($user)) {
+            $uid = $user->id;
+        } else {
+            return redirect(route('login'));
+        }
+
+        //招考id
+        $id = $request->input('recruit_id', 0);
+        if (!$id) {
+            return ['status' => 0, 'msg' => '请选择报名项目!', 'data' => ''];
+        }
+
+        $recruit = Recruit::find($id);
+        if(!$recruit['status']){
+            return ['status' => 0, 'msg' => '抱歉,该项目状态不正确,请联系客服!', 'data' => ''];
+        }
+
+        if(!$recruit->pen_comfirm){
+            return ['status' => 0, 'msg' => '该项目无须确认笔试考试!', 'data' => ''];
+        }
+
+        $appoint_info = RecruitAppointInfo::where('recruit_id',$id)->where('uid',$uid)->first();
+        if(!$appoint_info){
+            return ['status' => 0, 'msg' => '找不到您的报名记录,请检查!', 'data' => ''];
+        }
+
+        if($appoint_info->audit != 3){
+            return ['status' => 0, 'msg' => '您的报名未审核通过,无需确认!', 'data' => ''];
+        }
+
+        $time = time();
+        if(strtotime($recruit->pen_comfirm_start) > $time || strtotime($recruit->pen_comfirm_end) < $time){
+            return ['status' => 0, 'msg' => '未在笔试确认时间段!', 'data' => ''];
+        }
+
+        if($appoint_info->pen_audit != -2){
+            return ['status' => 0, 'msg' => '您已确认参加笔试,无需再次确认!', 'data' => ''];
+        }
+
+        $appoint_info->update(['pen_audit' => -1]);
+        $log = [
+            'type'      =>  3,
+            'appoint_id'=>  $appoint_info->id,
+            'uid'       =>  $uid,
+            'log'       =>  '用户确认参加笔试'
+        ];
+        RecruitAppointLog::create($log);
+        return ['status' => 1, 'msg' => '确认成功', 'data' => $appoint_info->id];
+
+    }
 }

+ 71 - 1
public/themes/default/views/app/recruit/show.blade.php

@@ -62,6 +62,11 @@
                         报名/查看报名
                     </li>
                 </a>
+                @if($recruit->pen_comfirm)
+                    <a href="javascript:void(0)" id="pen_comfirm" data-id="{{$info->id}}" >
+                        <li style="background:#ff9900;float: left;margin-bottom:10px;">确认参加笔试</li>
+                    </a>
+                @endif
                 @if(in_array(3,explode(',',$recruit->step)))
                     <a href="javascript:void(0)" id="pen_ticket" data-id="{{$info->id}}" >
                         <li style="background:#ff9900;float: left;margin-bottom:10px;">笔试准考证打印</li>
@@ -465,7 +470,72 @@
                     });
                 }
 
-            })
+            });
+
+            $("#pen_comfirm").click(function (){
+                var isVisitor = "{{$uid}}";
+                var pen_comfirm = "{{ $appoint_info->pen_comfirm }}";
+                var isVisitorutype = "{{$utype}}"; //判断是企业还是个人
+                if ((isVisitor > 0)) {
+                    if (pen_comfirm == 0) {
+                        disapperTooltip("remind", "您无需参与此次确认笔试的操作!");
+                        return false;
+                    }
+                    if (pen_comfirm == -1) {
+                        disapperTooltip("remind", "未在操作时间段内!");
+                        return false;
+                    }
+                    if (pen_comfirm == -2) {
+                        disapperTooltip("remind", "您已确认,无需再次确认!");
+                        return false;
+                    }
+                    if (isVisitorutype == '1') {
+                        disapperTooltip("remind", "只有登录个人会员才可确认!");
+                        return false;
+                    } else {
+                        var qsDialog = $(this).dialog({
+                            loading: true,
+                            header: false,
+                            border: false,
+                            btns: ['确认参加笔试','取消'],
+                            yes: function(){
+                                $.post("{{route('comfirm_pen')}}", {recruit_id:"{{ $recruit }}"},function(result){
+                                    if(result.status == 1){
+                                        alert('确认参加笔试成功,请在指定时间段内打印准考证!');
+                                    }else{
+                                        alert('确认失败,请联系工作人员!');
+                                    }
+                                });
+                            }
+                        });
+                        qsDialog.setContent("您正在进行确认参加笔试的操作,请确认您能按时参加笔试!");
+                    }
+                }else{
+                    var qsDialog = $(this).dialog({
+                        loading: true,
+                        footer: false,
+                        header: false,
+                        border: false,
+                        backdrop: false
+                    });
+                    var loginUrl = "{{route('loginDig')}}";
+                    $.post(loginUrl, {_token:"{{csrf_token()}}",type:'per','redirect_url':"{{ route('recruit.index.show',['id'=>$recruit->id]) }}"},function(result){
+                        if(result.status==1){
+                            qsDialog.hide();
+                            var qsDialogSon = $(this).dialog({
+                                title: '会员登录',
+                                content: result.html,
+                                footer: false,
+                                border: false
+                            });
+                            qsDialogSon.setInnerPadding(false);
+                        } else {
+                            qsDialog.hide();
+                            disapperTooltip('remind','操作失败');
+                        }
+                    });
+                }
+            });
 
             //笔试准考证
             $("#pen_ticket").click(function (){

+ 4 - 2
resources/views/admin/recruit/appoint_list.blade.php

@@ -259,8 +259,10 @@
                                                 @endif
                                                 @if(in_array('3',explode(',',$recruit->step)) && $v->current >= 2)
                                                     <p>笔试:
-                                                        @if($v->pen_audit == -1)
-                                                            <span style="color: #909399;">未开始</span>
+                                                        @if($v->pen_audit == -2)
+                                                            <span style="color: #909399;">未确认</span>
+                                                        @elseif($v->pen_audit == -1)
+                                                            <span style="color: #f56c6c;">未开始</span>
                                                         @elseif($v->pen_audit == 0)
                                                             <span style="color: #f56c6c;">未通过</span>
                                                         @elseif($v->pen_audit == 1)

+ 2 - 0
routes/web.php

@@ -123,6 +123,8 @@ Route::group([
     $router->get('supplement_info','Web\Recruit\IndexController@supplement_info')->name('recruit.supplement_info');
     $router->post('save_supplement_info','Web\Recruit\IndexController@save_supplement_info')->name('recruit.save_supplement_info');
 
+    $router->post('pen_comfirm','Web\Recruit\IndexController@comfirm_pen')->name('recruit,comfirm_pen');
+
     $router->any('/{route?}', function () {
         return view('recruit');
     })->where(['route' => '.*']);