type; }else{ $url=url("personnel/checking-in/userDutyCheck/importAndExportClock"); $url=$url."?importAndExportQRCodeType=".$importAndExportQRCode->type; } $qrCode=new QrCode($url); if ($importAndExportQRCode->type){ $fileURL=base_path('public/images/QRCodeIMG/'.$importAndExportQRCode->type.'.png'); if (file_exists($fileURL)){ $importAndExportQRCode->url=url('images/QRCodeIMG/'.$importAndExportQRCode->type.'.png'); continue; } $qrCode->writeFile($fileURL); $importAndExportQRCode->url=url('images/QRCodeIMG/'.$importAndExportQRCode->type.'.png'); } } return $importAndExportQRCodes; } //第一次进入进出场二维码显示页面 public function importAndExportQRCode(){ $importAndExportQRCodes=[]; $userDutyCheckOne=new UserDutyCheck([ 'source'=>'进场', 'type'=>'import', ]); $userDutyCheck=new UserDutyCheck([ 'source'=>'出场', 'type'=>'export', ]); array_push($importAndExportQRCodes,$userDutyCheckOne,$userDutyCheck); $beforeTime=date('Y-m-d H:i:s'); $importAndExportQRCodes=$this->qrCode_refresh_time($importAndExportQRCodes,$beforeTime); Cache::forget('last_refresh_date'); return view('personnel/checking-in/importAndExportQRCode',['importAndExportQRCodes'=>$importAndExportQRCodes,'last_refresh_date'=>Cache::get('last_refresh_date'),]); } //进出场二维码刷新时间 public function qrCode_refresh_time($importAndExportQRCodes,$beforeTime){ $qrCode_refresh=config('hr.qrCode_refresh'); if (!Cache::has('last_refresh_date') || Cache::get('last_refresh_date')flushQRCode($importAndExportQRCodes); } if ($beforeTime==Cache::get('last_refresh_date')){ $time=strtotime($beforeTime); //刷新 更新cache $last_refresh_date=date('Y-m-d H:i:s', strtotime('+'.$qrCode_refresh.'second', $time)); Cache::put('last_refresh_date',$last_refresh_date); return $this->flushQRCode($importAndExportQRCodes); } return $this->getImportAndExportQRCode($importAndExportQRCodes); } //刷新进出场二维码方法 public function flushQRCode($importAndExportQRCodes){ foreach ($importAndExportQRCodes as $importAndExportQRCode){ $time=strtotime(Cache::get('last_refresh_date')); $qrCode_refresh=config('hr.qrCode_refresh'); if ($qrCode_refresh){ $date=date('Y-m-d H:i:s', strtotime('+30second',$time)); $url=url("personnel/checking-in/userDutyCheck/importAndExportClock?key=").$date; $url=$url."&&importAndExportQRCodeType=".$importAndExportQRCode->type; }else{ $url=url("personnel/checking-in/userDutyCheck/importAndExportClock"); $url=$url."?importAndExportQRCodeType=".$importAndExportQRCode->type; } $qrCode=new QrCode($url); if ($importAndExportQRCode->type){ $fileURL=base_path('public/images/QRCodeIMG/'.$importAndExportQRCode->type.'.png'); $qrCode->writeFile($fileURL); $importAndExportQRCode->url=url('images/QRCodeIMG/'.$importAndExportQRCode->type.'.png').'?da='.Uuid::uuid1(); } } return $importAndExportQRCodes; } //刷新进出场二维码页面 public function refreshQRCode(Request $request){ $beforeTime=$request->input('beforeTime'); $importAndExportQRCodes=[]; $userDutyCheckOne=new UserDutyCheck([ 'type'=>'import', 'source'=>'进场', ]); $userDutyCheck=new UserDutyCheck([ 'type'=>'export', 'source'=>'出场', ]); array_push($importAndExportQRCodes,$userDutyCheckOne,$userDutyCheck); $importAndExportQRCodes=$this->qrCode_refresh_time($importAndExportQRCodes,$beforeTime); $csrfToken=csrf_token(); return ['importAndExportQRCodes'=>$importAndExportQRCodes,'last_refresh_date'=>Cache::get('last_refresh_date'),'csrf_Token'=>$csrfToken]; } //点击仓获取仓下所有工作组页面 public function getUserWorkGroups(Request $request){ $warehouseId=$request->input('warehouseId'); $userWorkgroups=UserWorkgroup::where('warehouse_id',$warehouseId)->get(); if (!$userWorkgroups)return view('exception.404',['error'=>'未找到工作组!']); return view('personnel/checking-in/getUserWorkGroups',['userWorkgroups'=>$userWorkgroups]); } //进入工作组二维码显示页面 public function QRCode(Request $request){ $userWorkgroupId=$request->input('userWorkgroupId'); $userWorkgroup=UserWorkgroup::find($userWorkgroupId); $userWorkgroup=$this->getQRCode($userWorkgroup); if (!$userWorkgroup)return view('exception.404',['error'=>'未找到工作组!']); return view('personnel/checking-in/QRcode',['userWorkgroup'=>$userWorkgroup]); } //获取工作组二维码 public function getQRCode($userWorkgroup){ $url=url("personnel/checking-in/userDutyCheck/clock"); $url=$url."?userWorkgroupID=".$userWorkgroup->id; $qrCode=new QrCode($url); if ($userWorkgroup->id){ $fileURL=base_path('public/images/QRCodeIMG/'.$userWorkgroup->id.'.png'); if (file_exists($fileURL)){ $userWorkgroup->url=url('images/QRCodeIMG/'.$userWorkgroup->id.'.png'); } $qrCode->writeFile($fileURL); $userWorkgroup->url=url('images/QRCodeIMG/'.$userWorkgroup->id.'.png'); } return $userWorkgroup; } // //进入刷新二维码页面 // public function refreshQRCode(Request $request){ // $beforeTime=$request->input('beforeTime'); // $warehouseId=$request->input('warehouseId'); // $userWorkgroups=UserWorkgroup::where('warehouse_id',$warehouseId)->get(); // $userWorkgroups=$this->qrCode_refresh_time($userWorkgroups,$beforeTime); // $csrfToken=csrf_token(); // if (!$userWorkgroups)return view('exception.404',['error'=>'未找到工作组!']); // return ['userWorkgroups'=>$userWorkgroups,'last_refresh_date'=>Cache::get('last_refresh_date'),'csrf_Token'=>$csrfToken]; // } // //二维码刷新时间 // public function qrCode_refresh_time($userWorkgroups,$beforeTime){ // $qrCode_refresh=config('hr.qrCode_refresh'); // if (!Cache::has('last_refresh_date') || Cache::get('last_refresh_date')flushQRCode($userWorkgroups); // } // if ($beforeTime==Cache::get('last_refresh_date')){ // $time=strtotime($beforeTime); // //刷新 更新cache // $last_refresh_date=date('Y-m-d H:i:s', strtotime('+'.$qrCode_refresh.'second', $time)); // Cache::put('last_refresh_date',$last_refresh_date); // return $this->flushQRCode($userWorkgroups); // } // //每次刷新都标记一个cache 新建 每次刷新前判断这个标记时间 // //直接去本地获取二维码 // return $this->getQRCode($userWorkgroups); // } // //刷新二维码 // public function flushQRCode($userWorkgroups){ // foreach ($userWorkgroups as $userWorkgroup){ // $time=strtotime(Cache::get('last_refresh_date')); // $qrCode_refresh=config('hr.qrCode_refresh'); // if ($qrCode_refresh){ // $date=date('Y-m-d H:i:s', strtotime('+30second',$time)); // $url=url("personnel/checking-in/userDutyCheck/clock?key=").$date; // $url=$url."&&userWorkgroupID=".$userWorkgroup->id; // }else{ // $url=url("personnel/checking-in/userDutyCheck/clock"); // $url=$url."?userWorkgroupID=".$userWorkgroup->id; // } // $qrCode=new QrCode($url); // if ($userWorkgroup->id){ // $fileURL=base_path('public/images/QRCodeIMG/'.$userWorkgroup->id.'.png'); // $qrCode->writeFile($fileURL); // $userWorkgroup->url=url('images/QRCodeIMG/'.$userWorkgroup->id.'.png').'?da='.Uuid::uuid1(); // } // } // return $userWorkgroups; // } //获取工作组二维码 // public function getQRCode($userWorkgroups){ // foreach ($userWorkgroups as $userWorkgroup){ // $qrCode_refresh_everyday=config('hr.qrCode_refresh_everyday'); // if ($qrCode_refresh_everyday){ // $date=md5(date('Y-m-d')); // $url=url("personnel/checking-in/userDutyCheck/clock?key=").$date; // $url=$url."&&userWorkgroupID=".$userWorkgroup->id; // }else{ // $url=url("personnel/checking-in/userDutyCheck/clock"); // $url=$url."?userWorkgroupID=".$userWorkgroup->id; // } // $qrCode=new QrCode($url); // if ($userWorkgroup->id){ // $fileURL=base_path('public/images/QRCodeIMG/'.$userWorkgroup->id.'.png'); // if (file_exists($fileURL)){ // $userWorkgroup->url=url('images/QRCodeIMG/'.$userWorkgroup->id.'.png'); // continue; // } // $qrCode->writeFile($fileURL); // $userWorkgroup->url=url('images/QRCodeIMG/'.$userWorkgroup->id.'.png'); // } // } // return $userWorkgroups; // } }