| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731 | <?phpnamespace App\Http\Controllers\Web\Recruit;use App\Http\Controllers\Web\WebBaseController;use Illuminate\Support\Facades\Validator;use Illuminate\Support\Facades\DB;use Illuminate\Http\Request;use Illuminate\Support\Facades\Storage;use App\Repositories\PmsRepository;use PhpOffice\PhpWord\TemplateProcessor;use App\Services\Common\SmsService;use PhpOffice\PhpSpreadsheet\Spreadsheet;use PhpOffice\PhpSpreadsheet\IOFactory;use App\Exceptions\ResponseException;use PhpOffice\PhpSpreadsheet\Cell\DataType;class ApiController extends WebBaseController{    protected $pmsRepository;    private $smsService;    public function __construct(PmsRepository $pmsRepository, SmsService $smsService)    {        $this->pmsRepository = $pmsRepository;        $this->smsService    = $smsService;        header('Access-Control-Allow-Origin:*');        header('Access-Control-Allow-Methods:GET,POST,PUT,DELETE');        header('Access-Control-Allow-Headers:Origin, Content-Type, Cookie, Accept, X-CSRF-TOKEN');        header('Access-Control-Allow-Credentials:true');    }    /**     * 获得当前登录 的用户对象     * @return false|mixed|string     */    public function getUser()    {//        $res['isLogin'] = 1;//        $res['status'] = 1;//        $res['user'] = [//            'name'  => 'test',//            'pmsNum'    => 1//        ];////        return response()->json($res);        $user = parent::getLoginUser();        $res  = [];        if (!$user) {            $res['isLogin'] = 0;            $res['status']  = 1;            $res['user']    = null;        } else {            $condition4 = [                'msgtouid' => $user->id,                'utype'    => $user->utype,                'new'      => 1,            ];            $pms        = $this->pmsRepository->getPmsCount($condition4);            switch ($user->utype) {                case '1':                    $name = $user->companyname;                    break;                case '2':                    $memberService = app('App\Services\Person\MemberService');                    $name          = $memberService->getName();                    break;            }            $res['isLogin'] = 1;            $res['status']  = 1;            $res['user']    = [                'name'   => $name,                'pmsNum' => $pms,            ];        }        return json_encode($res);    }    public function getSignupUser()    {        $user = parent::getLoginUser();//        $user = new \StdClass();//        $user->id = 59041;        if (!$user) {            return response()->json(['isLogin' => 0, 'status' => 0, 'user' => null, 'msg' => '您尚未登录']);        }        return $user;    }    public function userCheck()    {        $user = parent::getLoginUser();        if (!$user) {            $res = ['isLogin' => 0, 'status' => 0, 'user' => $user, 'msg' => '您尚未登录', 'ret' => false];            return $res;        }        $admin = ['59041', '161303', '159761', '148935', '150282'];        if (!in_array($user->id, $admin)) {            $res = ['isLogin' => 1, 'status' => 0, 'user' => null, 'msg' => '您没有权限', 'url' => 'http://www.jucai.gov.cn', 'ret' => false];            return $res;        }        return ['ret' => true, 'user' => $user];    }    /**     * 上传文件的方法     * @param Request $request     * @return \Illuminate\Http\JsonResponse     */    public function upload(Request $request)    {        $file = $request->file('file');        if ($file->isValid()) { //判断文件是否存在            //获取文件的扩展名            $ext = $file->getClientOriginalExtension();            if (!in_array(strtolower($ext), ['jpg', 'jpeg', 'png', 'doc', 'docx', 'pdf'])) {                $res['status'] = 0;                $res['msg']    = '文件格式不正确';            } else {                //获取文件的绝对路径                $path = $file->getRealPath();                $oldname = $file->getClientOriginalName();                //定义文件名                $filename = 'storage/recruit/' . uniqid() . mt_rand(10000, 99999) . '.' . $ext;                //存储文件。disk里面的public。总的来说,就是调用disk模块里的public配置                Storage::disk('public')->put($filename, file_get_contents($path));                $res['status']   = 1;                $res['filename'] = $oldname;                $res['path']     = "/storage/" . $filename;                $res['msg']      = '上传成功';            }        } else {            $res['status'] = 0;            $res['msg']    = '上传失败';        }        return response()->json($res);    }    /**     * 专用型招考报名保存     * @param Request $request     * @return \Illuminate\Http\JsonResponse     */    public function save(Request $request)    {        $user     = $this->getSignupUser();        $uid      = $user->id;        $rules    = [            'realname'            => 'required',            'sex'                 => 'required',            'birthday'            => 'required',            'native_place'        => 'required',            'post_id'             => 'required',            'political_attitudes' => 'required',            'edu_type'            => 'required',            'education'           => 'required',            'school'              => 'required',            'degree'              => 'required',            'pro'                 => 'required',            'address'             => 'required',            'mobile'              => 'required',            'email'               => 'required',            'nation'              => 'required',            'card'                => 'required',            'house_register'      => 'required',            'resume'              => 'required',            //'family' => 'required',            'avatar'              => 'required',            'front_card'          => 'required',            'back_card'           => 'required',            'concat_name'         => 'required',            'concat_mobile'       => 'required',            //'diploma_img' => 'required',            //'degree_img' => 'required',            //'xuexin_img' => 'required'        ];        $messages = [            'realname.required'            => '请填写姓名',            'sex.required'                 => '请填写性别',            'birthday.required'            => '请填写出生日期',            'native_place.required'        => '请填写籍贯',            'political_attitudes.required' => '请填写政治面貌',            'edu_type.required'            => '请选择教育类型',            'education.required'           => '请输入学历',            'school.required'              => '请输入毕业院校',            'degree.required'              => '请输入学位',            'pro.required'                 => '请输入专业',            'address.required'             => '请填写通信地址',            'mobile.required'              => '请填写手机号码',            'email.required'               => '请填写电子邮箱',            'post_id.required'             => '请选择报名岗位',            'nation.required'              => '请填写民族',            'card.required'                => '请填写身份证号码',            'house_register.required'      => '请填写户籍所在地',            'resume.required'              => '请填写个人简历',            //'family.required' => '请填写家庭成员及主要社会关系',            'avatar.required'              => '请上传彩色免冠照',            'front_card.required'          => '请上传身份证正面照',            'back_card.required'           => '请上传身份证反面照',            'concat_name.required'         => '请填写联系人姓名',            'concat_mobile.required'       => '请填写联系人手机号码',            //'diploma_img.required' => '请上传毕业证书照',            //'degree_img.required' => '请上传学位证书',            //'xuexin_img.required' => '请上传学信网证书'        ];        //根据招聘场次不同验证所需要的材料        $rid = $request->input('rid');        switch (intval($rid)) {            case 6:                //根据报名岗位判断                $post = $request->input('post_id');                if (in_array($post, [14, 15, 16, 17, 18, 20, 21, 23, 24])) {                    $rules['work_approve']             = 'required';                    $messages['work_approve.required'] = '您所报名的岗位需要上传工作经历证明';                }                if (in_array($post, [14, 18, 20, 21, 25, 29, 30])) {                    $rules['work_pro_img']             = 'required';                    $messages['work_pro_img.required'] = '您所报名的岗位需要上传职(执)业资格证书、专业技术资格(职务)证书';                }                if ($post == 28) {                    $rules['join_time']                = 'required';                    $messages['join_time.required']    = '您所报名的岗位需要填写入党时间,格式为年月';                    $rules['work_approve']             = 'required';                    $messages['work_approve.required'] = '您所报名的岗位需要党员证明';                }                if (in_array($post, [19, 20, 27])) {                    $rules['sex']             = 'required|accepted';                    $messages['sex.accepted'] = '您所报名的岗位限制男性报名';                }                break;        }        $res         = [            'status' => 0,            'data'   => '',            'msg'    => '',        ];        $create_data = $request->all();        $validator   = Validator::make($create_data, $rules, $messages);        if ($validator->fails()) {            $msg        = $validator->errors()->all();            $res['msg'] = $msg[0];            echo json_encode($res);        } else {            $data   = $request->only('realname', 'sex', 'birthday', 'avatar', 'post_id', 'nation', 'native_place', 'political_attitudes', 'titles', 'work', 'house_register', 'join_time', 'edu_type', 'education', 'school', 'degree', 'pro', 'address', 'card', 'mobile', 'email', 'concat_name', 'concat_mobile', 'resume', 'training', 'rewards_and_punishments', 'introduce', 'front_card', 'back_card', 'diploma_img', 'degree_img', 'xuexin_img', 'work_pro_img', 'work_approve', 'operation', 'rid', 'id');            $family = $request->input('family');            //对入库数据处理            $data['birthday'] = strtotime($data['birthday']);            switch ($data['edu_type']) {                case '1':                case 1:                case '全日制教育':                    $data['edu_type'] = 1;                    break;                case '2':                case 2:                case '在职教育':                    $data['edu_type'] = 2;                    break;            }            if ($data['operation'] == 2) {                $data['status'] = 1;                $data['check']  = 0;                $msg            = '报名成功,请等待审核';            } else {                $data['status'] = 0;                $data['check']  = 0;                $msg            = '保存成功';            }            unset($data['operation']);            //处理工作证明            if (is_array($data['work_approve'])) {                $imgs = [];                foreach ($data['work_approve'] as $k => $v) {                    if (is_array($v)) {                        array_push($imgs, $v['url']);                    } else {                        array_push($imgs, $v);                    }                }                $data['work_approve'] = implode(',', $imgs);            }            //处理职业资格或职称证明            if (is_array($data['work_pro_img'])) {                $imgs = [];                foreach ($data['work_pro_img'] as $k => $v) {                    if (is_array($v)) {                        array_push($imgs, $v['url']);                    } else {                        array_push($imgs, $v);                    }                }                $data['work_pro_img'] = implode(',', $imgs);            }            //判断是否已经有存在的报名记录            if (array_key_exists('id', $data) && $data['id'] > 0) {                //如果已经存在记录                $id   = $data['id'];                $info = DB::table('recruit_entry')->where('id', $id)->where('uid', $uid)->first();                if (!$info) {                    return response()->json(['status' => 0, 'msg' => '没有权限修改']);                }                unset($data['id']);                DB::table('recruit_entry')->where('id', $id)->update($data);                if ($family) {                    foreach ($family as $v) {                        if (array_key_exists('id', $v)) {                            $item = DB::table('recruit_family')->find($v['id']);                            if ($item) {                                if ($item->uid == $uid) {                                    $data = [                                        'appellation'         => $v['appellation'],                                        'realname'            => $v['realname'],                                        'birthday'            => strtotime($v['birthday']),                                        'political_attitudes' => $v['political_attitudes'],                                        'work'                => $v['work'],                                    ];                                    DB::table('recruit_family')->where('id', $v['id'])->update($data);                                }                            }                        } else {                            $item                        = [];                            $item['appellation']         = $v['appellation'];                            $item['realname']            = $v['realname'];                            $item['birthday']            = strtotime($v['birthday']);                            $item['political_attitudes'] = $v['political_attitudes'];                            $item['work']                = $v['work'];                            $item['eid']                 = $info->id;                            $item['uid']                 = $uid;                            DB::table('recruit_family')->insert($item);                        }                    }                }            } else {                //以证件号码进行二次判断                $info = DB::table('recruit_entry')->where('card', $data['card'])->first();                if ($info) {                    if ($info->uid != $uid) {                        return response()->json(['status' => 0, 'msg' => '该证件已通过其他账号报名,请检查']);                    }                    $id = $info->id;                    DB::table('recruit_entry')->where('id', $info->id)->update($data);                    if ($family) {                        foreach ($family as $v) {                            if (array_key_exists('id', $v)) {                                $item = DB::table('recruit_family')->find($v['id']);                                if ($item) {                                    if ($item->uid == $uid) {                                        $data = [                                            'appellation'         => $v['appellation'],                                            'realname'            => $v['realname'],                                            'birthday'            => strtotime($v['birthday']),                                            'political_attitudes' => $v['political_attitudes'],                                            'work'                => $v['work'],                                        ];                                        DB::table('recruit_family')->where('id', $v['id'])->update($data);                                    }                                }                            } else {                                $item                        = [];                                $item['appellation']         = $v['appellation'];                                $item['realname']            = $v['realname'];                                $item['birthday']            = strtotime($v['birthday']);                                $item['political_attitudes'] = $v['political_attitudes'];                                $item['work']                = $v['work'];                                $item['eid']                 = $info->id;                                $item['uid']                 = $uid;                                DB::table('recruit_family')->insert($item);                            }                        }                    }                } else {                    $data['uid']        = $uid;                    $data['createtime'] = time();                    $id                 = DB::table('recruit_entry')->insertGetId($data);                    if ($family) {                        foreach ($family as $v) {                            $item                        = [];                            $item['appellation']         = $v['appellation'];                            $item['realname']            = $v['realname'];                            $item['birthday']            = strtotime($v['birthday']);                            $item['political_attitudes'] = $v['political_attitudes'];                            $item['work']                = $v['work'];                            $item['eid']                 = $id;                            $item['uid']                 = $uid;                            DB::table('recruit_family')->insert($item);                        }                    }                }            }            return response()->json($res = ['status' => 1, 'data' => $id, 'msg' => $msg]);        }    }    /**     * 查看可以报名的场次     * @param Request $request     */    public function signup_list(Request $request)    {        $page  = $request->input('page');        $title = $request->input('title');        if ($title) {            $where[] = ['name', 'like', '%' . $title . '%'];        }        $where[] = ['status', '=', 1];        $where[] = ['step', '=', 1];//仅可查看可以报名的        $total   = DB::table('recruit')->where($where)->count();        $result  = DB::table('recruit')->where($where)->offset(10 * ($page - 1))->limit(10 * $page)->get()->toArray();        $list    = [];        if ($result) {            foreach ($result as $k => $v) {                switch ($v->step) {                    case '1':                        $step = '报名';                        break;                    case '2':                        $step = '审核';                        break;                    case '3':                        $step = '笔试';                        break;                    case '4':                        $step = '上机测试';                        break;                    case '5':                        $step = '面试';                        break;                    case '6':                        $step = '复试';                        break;                    case '7':                        $step = '体检';                        break;                    case '8':                        $step = '公示';                        break;                    case '9':                        $step = '结束';                        break;                    default:                        $step = '准备中';                        break;                }                $item = [                    'id'    => $v->id,                    'name'  => $v->name,                    'start' => date("Y-m-d", $v->start),                    'end'   => date("Y-m-d", $v->end),                    'step'  => $step,                ];                array_push($list, $item);            }            $res = [                'status' => 1,                'data'   => [                    'list'  => $list,                    'total' => $total,                ],                'msg'    => '暂无数据',            ];            echo json_encode($res);        } else {            $res = [                'status' => 1,                'data'   => [                    'list'  => [],                    'total' => 0,                ],                'msg'    => '暂无数据',            ];            echo json_encode($res);        }    }    /**     * 获取招考报名的详细信息     * @param Request $request     * @return \Illuminate\Http\JsonResponse     */    public function signup_detail(Request $request)    {        $user = $this->getSignupUser();        $uid  = $user->id;        $id = $request->input('id');        if (!$id) {            $res = [                'status' => 0,                'data'   => '',                'msg'    => '请指定招考场次',            ];            return response()->json($res);        } else {            $info = DB::table('recruit')->find($id);            if (!$info) {                $res = [                    'status' => 0,                    'data'   => '',                    'msg'    => '找不到对应的招考场次',                ];                return response()->json($res);            } else {                switch ($info->type) {                    case '2':                        $enterprise      = [];                        $enterprise_list = DB::table('recruit_enterprise')->where('rid', $info->id)->get()->toArray();                        foreach ($enterprise_list as $k => $v) {                            $sub_opt = [];                            $sub     = DB::table('recruit_enterprise_post')->where('eid', $v->id)->where('rid', $info->id)->get()->toArray();                            foreach ($sub as $key => $val) {                                $item = [                                    'value' => $val->id,                                    'label' => $val->code . " " . $val->name,                                ];                                array_push($sub_opt, $item);                            }                            $item = [                                'value' => $v->id,                                'label' => $v->label,                                'post'  => $sub_opt,                            ];                            array_push($enterprise, $item);                        }                        $info->post = $enterprise;                        $entry      = DB::table('recruit_internship')->where('rid', $info->id)->where('uid', $uid)->first();                        if ($entry) {                            $entry->birthday   = date("Y-m-d", $entry->birthday);                            $entry->check_time = date("Y-m-d", $entry->check_time);                            $entry->sex        = (string)$entry->sex;                            $entry->class      = (string)$entry->class;                            if ($info->step >= 3) {                                //TODO  笔试                            }                            if ($info->step >= 4) {                                $interview        = DB::table('recruit_exam_interview')->where('recruit_id', $info->id)->where('entry_id', $entry->id)->first();                                $entry->interview = $interview;                            }                            $info->entry = $entry;                        } else {                            if (time() > $info->end) {                                return response()->json(['status' => 0, 'msg' => '报名已截止']);                            }                        }                        break;                    default:                        $post       = DB::table('recruit_post1')->where('rid', $info->id)->get()->toArray();                        $info->post = $post;                        $entry      = DB::table('recruit_entry')->where('rid', $info->id)->where('uid', $uid)->first();                        if (!$entry && time() > $info->end) {                            return response()->json(['status' => 0, 'msg' => '报名已截止']);                        }                        if ($entry) {                            $entry->birthday   = date("Y-m-d", $entry->birthday);                            $entry->check_time = date("Y-m-d", $entry->check_time);                            switch ($entry->edu_type) {                                case 1:                                    $entry->edu_type = '全日制教育';                                    break;                                case 2:                                    $entry->edu_type = '在职教育';                                    break;                                default:                                    break;                            }                            //处理工作证明                            if (!empty($entry->work_approve)) {                                $imgs                = explode(',', $entry->work_approve);                                $entry->work_approve = [];                                foreach ($imgs as $v) {                                    $item['url'] = $v;                                    array_push($entry->work_approve, $item);                                }                            }                            //处理职业资格和职称                            if (!empty($entry->work_pro_img)) {                                $imgs                = explode(',', $entry->work_pro_img);                                $entry->work_pro_img = [];                                foreach ($imgs as $v) {                                    $item['url'] = $v;                                    array_push($entry->work_pro_img, $item);                                }                            }                            $family = DB::table('recruit_family')->where('eid', $entry->id)->get()->toArray();                            foreach ($family as $k => $v) {                                $family[$k]->birthday = date("Y-m-d", $v->birthday);                            }                            $entry->family = $family;                            $entry->sex    = (string)$entry->sex;                            $info->entry   = $entry;                        }                        break;                }                $res = [                    'status' => 1,                    'data'   => $info,                    'msg'    => '获取招考信息成功',                ];                return response()->json($res);            }        }    }    /**     * 报名记录查询     * @param Request $request     * @return \Illuminate\Http\JsonResponse     */    public function recruit_list(Request $request)    {        $res = $this->userCheck();        if (!$res['ret']) {            return response()->json($res);        }        $page  = $request->input('page');        $title = $request->input('title');        $where = [];        if ($title) {            $where[] = ['name', '=', $title];        }        $where[] = ['status', '>=', 0];        $total   = DB::table('recruit')->where($where)->count();        $result  = DB::table('recruit')->where($where)->offset(10 * ($page - 1))->limit(10)->get()->toArray();        $list    = [];        if ($result) {            foreach ($result as $k => $v) {                $item = [                    'id'       => $v->id,                    'name'     => $v->name,                    'start'    => date("Y-m-d H:i:s", $v->start),                    'end'      => date("Y-m-d H:i:s", $v->end),                    'status'   => $v->status,                    'post_sum' => DB::table('recruit_post1')->where('rid', $v->id)->count(),                    'type'     => $v->type,                ];                array_push($list, $item);            }            $res = [                'status' => 1,                'data'   => [                    'list'  => $list,                    'total' => $total,                ],                'msg'    => '暂无数据',            ];            echo json_encode($res);        } else {            $res = [                'status' => 1,                'data'   => [                    'list'  => [],                    'total' => 0,                ],                'msg'    => '暂无数据',            ];            echo json_encode($res);        }    }    /**     * 添加招考报名场次     * @param Request $request     */    public function add_recruit(Request $request)    {        $type = $request->input('type');        switch ($type) {            case '1':                $rules    = [                    'name'      => 'required',                    'start'     => 'required',                    'end'       => 'required',                    'status'    => 'required',                    'post_data' => 'required',                ];                $messages = [                    'name.required'      => '请填写招考名称',                    'start.required'     => '请填写招考开始时间',                    'end.required'       => '请填写招考结束时间',                    'status.required'    => '请填写招考状态',                    'post_data.required' => '请填写招聘岗位',                ];                break;            case '2':                $rules    = [                    'name'            => 'required',                    'start'           => 'required',                    'end'             => 'required',                    'status'          => 'required',                    'enterprise_post' => 'required',                ];                $messages = [                    'name.required'            => '请填写招考名称',                    'start.required'           => '请填写招考开始时间',                    'end.required'             => '请填写招考结束时间',                    'status.required'          => '请填写招考状态',                    'enterprise_post.required' => '请填写招聘岗位',                ];                break;            default:                $rules    = [];                $messages = [];                break;        }        $res         = [            'status' => 0,            'data'   => '',            'msg'    => '',        ];        $create_data = $request->all();        $validator   = Validator::make($create_data, $rules, $messages);        if ($validator->fails()) {            $msg        = $validator->errors()->all();            $res['msg'] = $msg[0];            echo json_encode($res);        } else {            $data['name']   = $request->input('name');            $data['start']  = strtotime($request->input('start'));            $data['end']    = strtotime($request->input('end'));            $data['status'] = $request->input('status');            $data['type']   = $type;            if ($data['name']) {                $id = DB::table('recruit')->insertGetId($data);                switch ($type) {                    case '1':                        $post_data = $request->input('post_data');                        $post      = [];                        foreach ($post_data as $k => $v) {                            $item = [                                'name' => $v['name'],                                'code' => $v['code'],                                'rid'  => $id,                            ];                            array_push($post, $item);                        }                        DB::table('recruit_post1')->insert($post);                        break;                    case '2':                        $enterprise = $request->input('enterprise_post');                        foreach ($enterprise as $k => $v) {                            $enterprise_data      = [];                            $enterprise_data      = [                                'rid'   => $id,                                'label' => $v['label'],                            ];                            $eid                  = DB::table('recruit_enterprise')->insertGetId($enterprise_data);                            $enterprise_post_data = [];                            foreach ($v['children'] as $key => $value) {                                $item = [];                                $item = [                                    'eid'  => $eid,                                    'rid'  => $id,                                    'code' => $value['code'],                                    'name' => $value['name'],                                ];                                array_push($enterprise_post_data, $item);                            }                            DB::table('recruit_enterprise_post')->insert($enterprise_post_data);                        }                        break;                }                if ($id) {                    $res['status'] = 1;                    $res['msg']    = '新增成功';                    $res['data']   = $id;                    echo json_encode($res);                } else {                    $res['msg'] = '新增失败!';                    echo json_encode($res);                }            }        }    }    /**修改招考报名场次     * @param Request $request     */    public function edit_recruit(Request $request)    {        if ($request->method() == "POST") {            $input = $request->all();            if (!array_key_exists('id', $input)) {                $res['status'] = 0;                $res['msg']    = '请指定要修改的招考数据';                $res['data']   = '';                echo json_encode($res);            } else {                $rules    = [                    'name'      => 'required',                    'start'     => 'required',                    'end'       => 'required',                    'status'    => 'required',                    'post_data' => 'required',                ];                $messages = [                    'name.required'      => '请填写招考名称',                    'start.required'     => '请填写招考开始时间',                    'end.required'       => '请填写招考结束时间',                    'status.required'    => '请填写招考状态',                    'post_data.required' => '请填写招聘岗位',                ];                $res       = [                    'status' => 0,                    'data'   => '',                    'msg'    => '',                ];                $validator = Validator::make($input, $rules, $messages);                if ($validator->fails()) {                    $msg        = $validator->errors()->all();                    $res['msg'] = $msg[0];                    echo json_encode($res);                } else {                    $id   = $input['id'];                    $data = [                        'name'   => $input['name'],                        'start'  => strtotime($input['start']),                        'end'    => strtotime($input['end']),                        'status' => $input['status'],                    ];                    DB::table('recruit')->where('id', $id)->update($data);                    $post_data = $input['post_data'];                    foreach ($post_data as $item) {                        if (array_key_exists('id', $item)) {                            DB::table('recruit_post1')->where('id', $item['id'])->update(['name' => $item['name'], 'code' => $item['code']]);                        } else {                            $item['rid'] = $id;                            DB::table('recruit_post1')->insert($item);                        }                    }                    $res = [                        'status' => 1,                        'data'   => '',                        'msg'    => '更新招考数据成功',                    ];                    echo json_encode($res);                }            }        } else {            $id   = $request->input('id');            $info = DB::table('recruit')->find($id);            if (!$info) {                $res = [                    'status' => 0,                    'data'   => '',                    'msg'    => '找不到该记录,请刷新页面',                ];                echo json_encode($res);            } else {                $post = DB::table('recruit_post1')->where('rid', '=', $info->id)->get()->toArray();                $item = [                    'id'        => $info->id,                    'name'      => $info->name,                    'type'      => (string)$info->type,                    'start'     => date("Y-m-d H:i:s", $info->start),                    'end'       => date("Y-m-d H:i:s", $info->end),                    'status'    => (string)$info->status,                    'post_data' => $post,                ];                $res  = [                    'status' => 1,                    'data'   => $item,                    'msg'    => '',                ];                echo json_encode($res);            }        }    }    /**     * 获取招考的详细信息     * @param Request $request     * @return \Illuminate\Http\JsonResponse     */    public function get_recruit_detail(Request $request)    {        $res = $this->userCheck();        if (!$res['ret']) {            return response()->json($res);        }        $id     = $request->input('id');        $title  = $request->input('title');        $status = $request->input('status', 99);        $page   = $request->input('page', 1);        if (!$id) {            $res = [                'status' => 0,                'data'   => [],                'msg'    => '参数错误',            ];            return response()->json($res);        }        $where = [            ['rid', $id],        ];        if (!empty($title)) {            $where[] = ['realname', 'like', "%{$title}%"];        }        switch ($status) {            case '0':                $where[] = ['status', '=', 1];                $where[] = ['check', '=', 0];                break;            case '1':            case '2':                $where[] = ['status', '=', 1];                $where[] = ['check', '=', 1];                break;            default:                $where[] = ['status', '=', 1];                break;        }        $total = DB::table('recruit_entry')->where($where)->count();        $list  = DB::table('recruit_entry')->where($where)->offset(10 * ($page - 1))->limit(10)->get()->toArray();        $data  = [];        if ($list) {            foreach ($list as $k => $v) {                $post = DB::table('recruit_post1')->find($v->post_id);                $item = [                    'id'       => $v->id,                    'avatar'   => $v->avatar,                    'realname' => $v->realname,                    'sex'      => $v->sex == 1 ? '男' : '女',                    'birthday' => date("Y-m-d", $v->birthday),                    'phone'    => $v->mobile,                    'email'    => $v->email,                    'post'     => $post->code . ' ' . $post->name,                    'word_url' => $v->word_url,                ];                array_push($data, $item);            }        }        $res = [            'status' => 1,            'data'   => [                'list'  => $data,                'total' => $total,            ],            'msg'    => '',        ];        return response()->json($res);    }    /**     * 查看某个报名的详细信息     * @param Request $request     * @return \Illuminate\Http\JsonResponse     */    public function get_user_recruit(Request $request)    {        $res = $this->userCheck();        if (!$res['ret']) {            return response()->json($res);        }        $id = $request->input('id');        if (!$id) {            $res = [                'status' => 0,                'data'   => '',                'msg'    => '请指定报名数据',            ];            return response()->json($res);        } else {            $entry = DB::table('recruit_entry')->find($id);            if (!$entry) {                $res = [                    'status' => 0,                    'data'   => '',                    'msg'    => '找不到对应的报名数据',                ];                return response()->json($res);            } else {                $entry->birthday   = date("Y-m-d", $entry->birthday);                $entry->check_time = date("Y-m-d", $entry->check_time);                switch ($entry->edu_type) {                    case 1:                        $entry->edu_type = '全日制教育';                        break;                    case 2:                        $entry->edu_type = '在职教育';                        break;                    default:                        break;                }                if (!empty($entry->work_approve)) {                    $entry->work_approve = explode(',', $entry->work_approve);                }                if (!empty($entry->work_pro_img)) {                    $entry->work_pro_img = explode(',', $entry->work_pro_img);                }                $family = DB::table('recruit_family')->where('eid', $entry->id)->get()->toArray();                foreach ($family as $k => $v) {                    $family[$k]->birthday = date("Y-m-d", $v->birthday);                }                $entry->family = $family;                $entry->sex    = $entry->sex == 1 ? '男' : '女';                $post          = DB::table('recruit_post1')->where('rid', $entry->rid)->selectRaw('id, CONCAT(code," ",name) as post')->pluck('post', 'id');                $entry->post   = $post[$entry->post_id];                $res = [                    'status' => 1,                    'data'   => $entry,                    'msg'    => '获取招考信息成功',                ];                return response()->json($res);            }        }    }    /**     * 查看某个报名的详细信息(大学生实习专场)     * @param Request $request     * @return \Illuminate\Http\JsonResponse     */    public function get_user_internship(Request $request)    {        $user = parent::getLoginUser();        if (!$user) {            return response()->json(['isLogin' => 0, 'status' => 0, 'user' => null, 'msg' => '您尚未登录']);        }        $admin = ['59041', '164809', '164189', '164601'];        if (!in_array($user->id, $admin)) {            return response()->json(['isLogin' => 1, 'status' => 0, 'user' => null, 'msg' => '您没有权限', 'url' => 'http://www.jucai.gov.cn']);        }        $id = $request->input('id');        if (!$id) {            $res = [                'status' => 0,                'data'   => '',                'msg'    => '请指定报名数据',            ];            return response()->json($res);        } else {            $entry = DB::table('recruit_internship')->find($id);            if (!$entry) {                $res = [                    'status' => 0,                    'data'   => '',                    'msg'    => '找不到对应的报名数据',                ];                return response()->json($res);            } else {                $entry->birthday   = date("Y-m-d", $entry->birthday);                $entry->check_time = date("Y-m-d", $entry->check_time);                $entry->sex        = $entry->sex == 1 ? '男' : '女';                $entry->adjust     = $entry->adjust == 1 ? '接受' : '不接受';                switch ($entry->class) {                    case '1':                        $entry->class = '大三在校生';                        break;                    case '2':                        $entry->class = '大四在校生';                        break;                    case '3':                        $entry->class = '硕士在校生';                        break;                    case '4':                        $entry->class = '博士在校生';                        break;                    default:                        $entry->class = '';                        break;                }//                $enterprise = DB::table('recruit_enterprise')->pluck('label','id');//                $enterprise_post = DB::table('recruit_enterprise_post')->where('rid',$entry->rid)->selectRaw('id, CONCAT(code," ",name) as post')->pluck('post', 'id');//                $entry->enterprise = $enterprise[$entry->enterprise];//                $entry->post = $enterprise_post[$entry->post];                //$post = DB::table('recruit_post1')->where('rid',$entry->rid)->selectRaw('id, CONCAT(code," ",name) as post')->pluck('post', 'id');                //$entry->post = $post[$entry->post];                $res = [                    'status' => 1,                    'data'   => $entry,                    'msg'    => '获取招考信息成功',                ];                return response()->json($res);            }        }    }    /**     * 报名信息的审核     * @param Request $request     * @return \Illuminate\Http\JsonResponse     */    public function check_user_recruit(Request $request)    {        $res = $this->userCheck();        if (!$res['ret']) {            return response()->json($res);        }        $id = $request->input('id');        if (!$id) {            $res = [                'status' => 0,                'data'   => '',                'msg'    => '请指定审核数据',            ];            return response()->json($res);        }        $info = DB::table('recruit_entry')->where('id', $id)->first();        if (!$info) {            $res = [                'status' => 0,                'data'   => '',                'msg'    => '指定审核的数据不存在',            ];            return response()->json($res);        }        $status = $request->input('status');        if ($status) {            //审核通过,生成word版简历            $post    = DB::table('recruit_post1')->where('rid', $info->rid)->selectRaw('id, CONCAT(code," ",name) as post')->pluck('post', 'id');            $post    = $post[$info->post_id];            $word    = [                'data' => [                    'realname'                => $info->realname,                    'sex'                     => $info->sex == 1 ? '男' : '女',                    'birthday'                => date("Y-m-d", $info->birthday),                    'nation'                  => $info->nation,                    'native_place'            => $info->native_place,                    'post'                    => $post,                    'political_attitudes'     => $info->political_attitudes,                    'join_time'               => $info->join_time,                    'titles'                  => $info->titles,                    'work'                    => $info->work,                    'house_register'          => $info->house_register,                    'edu_type'                => $info->edu_type == 1 ? '全日制教育' : '在职教育',                    'education'               => $info->education,                    'school'                  => $info->school,                    'degree'                  => $info->degree,                    'pro'                     => $info->pro,                    'address'                 => $info->address,                    'card'                    => $info->card,                    'mobile'                  => $info->mobile,                    'email'                   => $info->email,                    'concat_name'             => $info->concat_name,                    'concat_mobile'           => $info->concat_mobile,                    'resume'                  => $info->resume,                    'training'                => $info->training,                    'rewards_and_punishments' => $info->rewards_and_punishments,                    'introduce'               => $info->introduce,                ],                'id'   => $info->id,            ];            $recruit = DB::table('recruit')->where('id', $info->rid)->first();            $this->fetch_word($word, $info->avatar, $recruit->name);            $data['status'] = 1;            $data['check']  = 2;            $this->smsService->sendSms($info->mobile, 'sms_register_success', []);        } else {            $data['status'] = 0;            $data['check']  = 1;            $this->smsService->sendSms($info->mobile, 'sms_register_fail', ['msg' => $request->input('remark')]);        }        $data['check_time'] = time();        $data['remark']     = $request->input('remark');        $data['ticket']     = $request->input('ticket', '');        $data['seat']       = $request->input('seat', '');        $data['ex_area']    = $request->input('ex_area', '');        $data['ex_name']    = $request->input('ex_name', '');        $data['ex_address'] = $request->input('ex_address', '');        $data['ex_time']    = $request->input('ex_time', '');        $data['ex_subject'] = $request->input('ex_subject', '');        DB::table('recruit_entry')->where('id', $id)->update($data);        $res = [            'status' => 1,            'data'   => [                'id' => $info->rid,            ],            'msg'    => '审核成功',        ];        return response()->json($res);    }    /**     * 大学生专用报名保存     * @param Request $request     * @return \Illuminate\Http\JsonResponse     */    public function internship_save(Request $request)    {        $user = parent::getLoginUser();        if (!$user) {            return response()->json(['isLogin' => 0, 'status' => 0, 'user' => null]);        } else {            $uid = $user->id;        }        if (time() > 1592904600) {            return response()->json(['status' => 0, 'msg' => '报名已截止']);        }        //$uid = 1;        $rules    = [            'realname'            => 'required',            'sex'                 => 'required',            'birthday'            => 'required',            'nation'              => 'required',            'native_place'        => 'required',            'political_attitudes' => 'required',            'healthy'             => 'required',            'mobile'              => 'required',            'card'                => 'required',            'school'              => 'required',            'department'          => 'required',            'pro'                 => 'required',            'class'               => 'required',            'concat_name'         => 'required',            'concat_relationship' => 'required',            'concat_mobile'       => 'required',            'enterprise'          => 'required',            'post'                => 'required',            'code'                => 'required',            'adjust'              => 'required',            'edu'                 => 'required',            'resume'              => 'required',            'self_evaluation'     => 'required',            'avatar'              => 'required',            'front_card'          => 'required',            'back_card'           => 'required',            'student_img'         => 'required',        ];        $messages = [            'realname.required'            => '请填写姓名',            'sex.required'                 => '请填写性别',            'birthday.required'            => '请填写出生日期',            'nation.required'              => '请填写民族',            'native_place.required'        => '请填写籍贯',            'political_attitudes.required' => '请填写政治面貌',            'healthy.required'             => '请输入健康状况',            'mobile.required'              => '请填写手机号码',            'card.required'                => '请填写身份证号码',            'school.required'              => '请输入毕业院校',            'department.required'          => '请输入院系',            'pro.required'                 => '请输入专业',            'class.required'               => '请选择年级',            'concat_name.required'         => '请填写联系人姓名',            'concat_relationship.required' => '请填写联系人关系',            'concat_mobile.required'       => '请填写联系人手机号码',            'enterprise'                   => '请填写报名单位',            'post.required'                => '请填写报名岗位',            'code'                         => '请填写岗位编号',            'adjust.required'              => '请选择是否接受调剂',            'edu.required'                 => '请填写学习经历',            'resume.required'              => '请填写个人简历',            'self_evaluation.required'     => '请简单做下自我评价',            'avatar.required'              => '请上传1寸彩色免冠照',            'front_card.required'          => '请上传身份证正面照',            'back_card.required'           => '请上传身份证反面照',            'student_img'                  => '请上传学生证',        ];        $res         = [            'status' => 0,            'data'   => '',            'msg'    => '',        ];        $create_data = $request->all();        $validator   = Validator::make($create_data, $rules, $messages);        if ($validator->fails()) {            $msg        = $validator->errors()->all();            $res['msg'] = $msg[0];            echo json_encode($res);        } else {            $data = $request->only('realname', 'sex', 'birthday', 'avatar', 'nation', 'native_place', 'political_attitudes', 'titles', 'healthy', 'school', 'department', 'pro', 'class', 'card', 'mobile', 'concat_name', 'concat_relationship', 'concat_mobile', 'adjust', 'resume', 'edu', 'self_evaluation', 'front_card', 'back_card', 'student_img', 'operation', 'rid', 'id', 'enterprise', 'post', 'code');            //对入库数据处理            $data['birthday'] = strtotime($data['birthday']);            if ($data['operation'] == 2) {                $data['status'] = 1;                $data['check']  = 0;                $msg            = '报名成功,请等待审核';            } else {                $data['status'] = 0;                $msg            = '保存成功';            }            unset($data['operation']);            if (array_key_exists('id', $data) && $data['id'] > 0) {                //如果已经存在记录                $id   = $data['id'];                $info = DB::table('recruit_internship')->where('id', $id)->where('uid', $uid)->first();                if (!$info) {                    return response()->json(['status' => 0, 'msg' => '没有权限修改']);                }                unset($data['id']);                DB::table('recruit_internship')->where('id', $id)->update($data);            } else {                $data['uid'] = $uid;                $id          = DB::table('recruit_internship')->insertGetId($data);            }            $res = [                'status' => 1,                'data'   => $id,                'msg'    => $msg,            ];            echo json_encode($res);        }    }    /**     * 报名信息的审核(大学生实习)     * @param Request $request     * @return \Illuminate\Http\JsonResponse     */    public function check_user_internship(Request $request)    {        $user = parent::getLoginUser();        if (!$user) {            return response()->json(['isLogin' => 0, 'status' => 0, 'user' => null, 'msg' => '您尚未登录']);        }        $admin = ['59041', '164809', '164189', '164601'];        if (!in_array($user->id, $admin)) {            return response()->json(['isLogin' => 1, 'status' => 0, 'user' => null, 'msg' => '您没有权限', 'url' => 'http://www.jucai.gov.cn']);        }        $id = $request->input('id');        if (!$id) {            $res = [                'status' => 0,                'data'   => '',                'msg'    => '请指定审核数据',            ];            return response()->json($res);        }        $info = DB::table('recruit_internship')->where('id', $id)->first();        if (!$info) {            $res = [                'status' => 0,                'data'   => '',                'msg'    => '指定审核的数据不存在',            ];            return response()->json($res);        }        $status = $request->input('status');        if ($status) {            $data['status'] = 1;            $data['check']  = 2;        } else {            $data['status'] = 0;            $data['check']  = 1;        }        $data['check_time'] = time();        $data['remark']     = $request->input('remark', '');        $data['ticket']     = $request->input('ticket', '');        $data['seat']       = $request->input('seat', '');        $data['ex_area']    = $request->input('ex_area', '');        $data['ex_name']    = $request->input('ex_name', '');        $data['ex_address'] = $request->input('ex_address', '');        $data['ex_time']    = $request->input('ex_time', '');        $data['ex_subject'] = $request->input('ex_subject', '');        DB::table('recruit_internship')->where('id', $id)->update($data);        $res = [            'status' => 1,            'data'   => [                'id' => $info->rid,            ],            'msg'    => '审核成功',        ];        return response()->json($res);    }    /**     * 大学生实习专场的详情     * @param Request $request     * @return \Illuminate\Http\JsonResponse     */    public function get_internship_detail(Request $request)    {        $user = parent::getLoginUser();        if (!$user) {            return response()->json(['isLogin' => 0, 'status' => 0, 'user' => null, 'msg' => '您尚未登录']);        }        $admin = ['59041', '164809', '164189', '164601'];        if (!in_array($user->id, $admin)) {            return response()->json(['isLogin' => 1, 'status' => 0, 'user' => null, 'msg' => '您没有权限', 'url' => 'http://www.jucai.gov.cn']);        }        $id     = $request->input('id');        $title  = $request->input('title');        $status = $request->input('status', 99);        $page   = $request->input('page', 1);        if (!$id) {            $res = [                'status' => 0,                'data'   => [],                'msg'    => '参数错误',            ];            return response()->json($res);        }        $where = [            ['rid', $id],        ];        if (!empty($title)) {            $where[] = ['realname', 'like', "%{$title}%"];        }        if ($status != "99") {            if ($status) {                $where[] = ['check', '>', 0];            } else {                $where[] = ['check', '=', 0];            }        }        $total = DB::table('recruit_internship')->where($where)->count();        $list  = DB::table('recruit_internship')->where($where)->offset(10 * ($page - 1))->limit(10)->get()->toArray();        $data  = [];        if ($list) {//            $enterprise = DB::table('recruit_enterprise')->pluck('label', 'id');//            $enterprise_post = DB::table('recruit_enterprise_post')->where('rid',$id)->selectRaw('id, CONCAT(code," ",name) as post')->pluck('post', 'id');            foreach ($list as $k => $v) {                $item = [                    'id'         => $v->id,                    'avatar'     => $v->avatar,                    'realname'   => $v->realname,                    'sex'        => $v->sex == 1 ? '男' : '女',                    'birthday'   => date("Y-m-d", $v->birthday),                    'phone'      => $v->mobile,                    'school'     => $v->school,                    'department' => $v->department,                    'pro'        => $v->pro,                    'enterprise' => $v->enterprise,                    'post'       => $v->post,                ];                switch ($v->class) {                    case '1':                        $item['class'] = '大三在校生';                        break;                    case '2':                        $item['class'] = '大四在校生';                        break;                    case '3':                        $item['class'] = '硕士在校生';                        break;                    case '4':                        $item['class'] = '博士在校生';                        break;                    default:                        $item['class'] = '';                        break;                }//                $item['enterprise'] = $enterprise[$v->enterprise];//                $item['post'] = $enterprise_post[$v->post];                array_push($data, $item);            }        }        $res = [            'status' => 1,            'data'   => [                'list'  => $data,                'total' => $total,            ],            'msg'    => '',        ];        exit(json_encode($res));    }    public function get_sign_form(Request $request)    {        $id = $request->input('id');        if (!$id) {            $res = [                'status' => 0,                'data'   => '',                'msg'    => '请指定考场',            ];            return response()->json($res);        }        $info = DB::table('recruit')->find($id);        if (!$info) {            $res = [                'status' => 0,                'data'   => '',                'msg'    => '找不到该记录,请刷新页面',            ];            return response()->json($res);        } else {            $alias = $info->alias;            $list  = DB::table('recruit_' . $alias)->where('rid', $id)->where('ticket', '!=', '')->orderByRaw('seat+0 asc')->get();            $res = [                'status' => 1,                'data'   => $list,                'msg'    => '查询成功',            ];            return response()->json($res);        }    }    public function fetch_word($data = null, $avatar = '', $title = '')    {        if ($data != null) {            //指定模板文件            $templateProcessor = new TemplateProcessor(base_path() . '/public/word/example.docx');            //通过setValue 方法给模板赋值            $templateProcessor->setValue('title', $title);            $data['data']['resume']                  = str_replace("\r\n", '<w:br/>', $data['data']['resume']);            $data['data']['training']                = str_replace("\r\n", '<w:br/>', $data['data']['training']);            $data['data']['rewards_and_punishments'] = str_replace("\r\n", '<w:br/>', $data['data']['rewards_and_punishments']);            $data['data']['introduce']               = str_replace("\r\n", '<w:br/>', $data['data']['introduce']);            foreach ($data['data'] as $k => $v) {                $templateProcessor->setValue($k, $v);            }            $family = DB::table('recruit_family')->where('eid', $data['id'])->get()->toArray();            if ($family) {                $count = count($family);                $templateProcessor->cloneRow('family_appellation', $count);                $i = 1;                foreach ($family as $k => &$v) {                    $templateProcessor->setValue('family_appellation#' . $i, $v->appellation);                    $templateProcessor->setValue('family_realname#' . $i, $v->realname);                    $templateProcessor->setValue('family_birthday#' . $i, date("Y-m-d", $v->birthday));                    $templateProcessor->setValue('family_political_attitudes#' . $i, $v->political_attitudes);                    $templateProcessor->setValue('family_work#' . $i, $v->work);                    $i++;                }            }            $templateProcessor->setImageValue('avatar', ['src' => $avatar]);            $filename = uniqid();            $word_url = "/word/{$filename}.docx";            DB::table('recruit_entry')->where('id', $data['id'])->update(['word_url' => $word_url]);            $templateProcessor->saveAs(base_path() . '/public' . $word_url);//另存为        }    }    public function word_to_zip()    {    }    public function strtotime($time)    {        $result = strtotime($time);        if (empty($result)) {            $date   = new \DateTime($time);            $result = $date->format('U');        }        return $result;    }    public function date($utc_time)    {        $mydate2 = new \DateTime('@' . $utc_time);        return $mydate2->format('Y-m-d');    }    public function export(Request $request)    {        $res = $this->userCheck();        if (!$res['ret']) {            return response()->json($res);        }        $rid     = $request->input('rid');        $recruit = DB::table('recruit')->find($rid);        if (!$recruit) {            throw new ResponseException('指定的招聘场次不存在!', [], 404);        }        $post = DB::table('recruit_post1')->where('rid', $rid)->selectRaw('id, CONCAT(code," ",name) as post')->pluck('post', 'id');        if (!$post) {            throw new ResponseException('招聘岗位丢失,请检查!', [], 404);        }        $list = DB::table('recruit_entry')->where('rid', $rid)->orderBy('id', 'desc')->get()->toArray();        if (!$list) {            throw new ResponseException('太遗憾了,还没有人报名!', [], 404);        }        foreach ($list as &$item) {            $item->post = $post[$item->post_id];            $family     = DB::table('recruit_family')->where('eid', $item->id)->get()->toArray();            $family_arr = [];            foreach ($family as $k => $v) {                $birthday = date("Y-m-d", $v->birthday);                $str      = "{$v->appellation} {$v->realname} {$birthday} {$v->political_attitudes} {$v->work}";                array_push($family_arr, $str);            }            $item->family = implode("\r\n", $family_arr);        }        $spreadsheet = new Spreadsheet();        $sheet       = $spreadsheet->getActiveSheet();        $header      = ['姓名', '性别', '生日', '头像', '民族', '籍贯', '参加工作时间', '政治面貌', '入党时间', '职称或职业资格', '现工作单位及职务', '户籍所在地', '教育类型', '学历', '学校', '学位', '所学专业', '通信地址', '身份证号码', '联系电话', '电子邮箱', '紧急联系人', '紧急联系电话', '个人简历', '培训学习经历', '奖惩情况', '个人介绍', '家庭成员及其社会关系', '身份证正面', '身份证反面', '毕业证书', '学位证书', '学信网《教育部学历证书电子注册备案表》', '职(执)业资格证书、专业技术资格(职务)证书扫描件', '工作经历证明', '状态', '审核意见', 'word简历的下载地址', '准考证是否打印'];        foreach ($header as $key => $value) {            $sheet->setCellValueByColumnAndRow($key + 1, 1, $value);        }        $row = 2;        $sheet->getStyle('S')->getNumberFormat()->setFormatCode('0');        $length = count($list);//算出该数组的长度        $last   = $list[$length - 1];//取出最后一个数组的值,复制给新变量,-1是因为第一个数组元素下表为0        unset($list[$length - 1]);//将最后一个数组注销        $list[] = $last;//再将新变量加入到数组里        foreach ($list as $item) {            $sheet->setCellValueByColumnAndRow(1, $row, $item->realname);            $sheet->setCellValueByColumnAndRow(2, $row, $item->sex == 0 ? '女' : '男');            $sheet->setCellValueByColumnAndRow(3, $row, date("Y-m-d", $item->birthday));            $sheet->setCellValueByColumnAndRow(4, $row, $item->avatar);            $sheet->setCellValueByColumnAndRow(5, $row, $item->nation);            $sheet->setCellValueByColumnAndRow(6, $row, $item->native_place);            $sheet->setCellValueByColumnAndRow(7, $row, $item->post);            $sheet->setCellValueByColumnAndRow(8, $row, $item->political_attitudes);            $sheet->setCellValueByColumnAndRow(9, $row, $item->join_time);            $sheet->setCellValueByColumnAndRow(10, $row, $item->titles);            $sheet->setCellValueByColumnAndRow(11, $row, $item->work);            $sheet->setCellValueByColumnAndRow(12, $row, $item->house_register);            $sheet->setCellValueByColumnAndRow(13, $row, $item->edu_type == 1 ? '全日制教育' : '在职教育');            $sheet->setCellValueByColumnAndRow(14, $row, $item->education);            $sheet->setCellValueByColumnAndRow(15, $row, $item->school);            $sheet->setCellValueByColumnAndRow(16, $row, $item->degree);            $sheet->setCellValueByColumnAndRow(17, $row, $item->pro);            $sheet->setCellValueByColumnAndRow(18, $row, $item->address);            $sheet->setCellValueExplicitByColumnAndRow(19, $row, $item->card, DataType::TYPE_STRING);            $sheet->setCellValueExplicitByColumnAndRow(20, $row, $item->mobile, DataType::TYPE_STRING);            $sheet->setCellValueByColumnAndRow(21, $row, $item->email);            $sheet->setCellValueByColumnAndRow(22, $row, $item->concat_name);            $sheet->setCellValueExplicitByColumnAndRow(23, $row, $item->concat_mobile, DataType::TYPE_STRING);            $sheet->setCellValueByColumnAndRow(24, $row, $item->resume);            $sheet->setCellValueByColumnAndRow(25, $row, $item->training);            $sheet->setCellValueByColumnAndRow(26, $row, $item->rewards_and_punishments);            $sheet->setCellValueByColumnAndRow(27, $row, $item->introduce);            $sheet->setCellValueByColumnAndRow(28, $row, $item->family);            $sheet->setCellValueByColumnAndRow(29, $row, $item->front_card);            $sheet->setCellValueByColumnAndRow(30, $row, $item->back_card);            $sheet->setCellValueByColumnAndRow(31, $row, $item->diploma_img);            $sheet->setCellValueByColumnAndRow(32, $row, $item->degree_img);            $sheet->setCellValueByColumnAndRow(33, $row, $item->xuexin_img);            $sheet->setCellValueByColumnAndRow(34, $row, $item->work_pro_img);            $sheet->setCellValueByColumnAndRow(35, $row, $item->work_approve);            if ($item->status == 0) {                if ($item->check == 0) {                    $status = '只是暂存,尚未提交';                } else {                    $status = '审核未通过';                }            } else {                if ($item->check == 0) {                    $status = '待审核';                } else {                    $status = '审核通过';                }            }            $sheet->setCellValueByColumnAndRow(36, $row, $status);            $sheet->setCellValueByColumnAndRow(37, $row, $item->remark);            $sheet->setCellValueByColumnAndRow(38, $row, empty($item->word_url) ? '' : "http://www.jucai.gov.cn/" . $item->word_url);            $sheet->setCellValueByColumnAndRow(38, $row, $item->ticket_status == 0 ? '未打印' : "已打印");            $row++;        }        $file_name = $recruit->name . date("Y-m-d", time());        header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');        header('Content-Disposition: attachment;filename="' . $file_name . '.xlsx"');        header('Cache-Control: max-age=0');        // If you're serving to IE 9, then the following may be needed        header('Cache-Control: max-age=1');        // If you're serving to IE over SSL, then the following may be needed        header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past        header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified        header('Cache-Control: cache, must-revalidate'); // HTTP/1.1        header('Pragma: public'); // HTTP/1.0        $writer = IOFactory::createWriter($spreadsheet, 'Xlsx');        $writer->save('php://output');    }    public function look_ticket(Request $request)    {        $user = $this->getSignupUser();        $uid  = $user->id;        DB::table('recruit_entry')->where('uid', $uid)->update(['ticket_status' => 1]);    }    public function ticket_download(Request $request)    {        $user = $this->getSignupUser();        $uid  = $user->id;        $info = DB::table('recruit_entry')->where('uid',$uid)->where('rid',6)->first();        $ticket = DB::table('wy_face')->where('card',$info->card)->first();        if($ticket){            $res = [                'status' => 1,                'data'   => '/pdf/wyticket_' . $ticket->realname . '_' . $ticket->card.'_' . $ticket->post . '.pdf',                'msg'    => '查询成功',            ];            return response()->json($res);        }else{            $res = [                'status' => 0,                'data'   => '',                'msg'    => '暂无面试准考证需打印',            ];            return response()->json($res);        }    }}
 |