Bläddra i källkod

人事--进出场二维码

haozi 5 år sedan
förälder
incheckning
3d66943bae

+ 50 - 129
app/Http/Controllers/QRCodeController.php

@@ -21,33 +21,7 @@ class QRCodeController extends Controller
         return view("personnel/checking-in/getQRcode",compact('warehouses'));
         return view("personnel/checking-in/getQRcode",compact('warehouses'));
     }
     }
 
 
-    //获取进出场二维码
-    public function getImportAndExportQRCode($importAndExportQRCodes){
-            foreach ($importAndExportQRCodes as $importAndExportQRCode){
-                $qrCode_refresh_everyday=config('hr.qrCode_refresh_everyday');
-                if ($qrCode_refresh_everyday){
-                    $date=md5(date('Y-m-d'));
-                    $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');
-                    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(){
     public function importAndExportQRCode(){
         $importAndExportQRCodes=[];
         $importAndExportQRCodes=[];
         $userDutyCheckOne=new UserDutyCheck([
         $userDutyCheckOne=new UserDutyCheck([
@@ -59,33 +33,22 @@ class QRCodeController extends Controller
             'type'=>'export',
             'type'=>'export',
         ]);
         ]);
         array_push($importAndExportQRCodes,$userDutyCheckOne,$userDutyCheck);
         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'),]);
+        $importAndExportQRCodes=$this->qrCode_refresh_time($importAndExportQRCodes);
+        Cache::forget('next_refresh_time');
+        return view('personnel/checking-in/importAndExportQRCode',['importAndExportQRCodes'=>$importAndExportQRCodes,'next_refresh_time'=>Cache::get('next_refresh_time'),]);
 
 
     }
     }
     //进出场二维码刷新时间
     //进出场二维码刷新时间
-    public function qrCode_refresh_time($importAndExportQRCodes,$beforeTime){
+    public function qrCode_refresh_time($importAndExportQRCodes){
         $qrCode_refresh=config('hr.qrCode_refresh');
         $qrCode_refresh=config('hr.qrCode_refresh');
-        if (!Cache::has('last_refresh_date') || Cache::get('last_refresh_date')<date('Y-m-d H:i:s')){
-            $last_refresh_date=date('Y-m-d H:i:s',strtotime('+'.$qrCode_refresh.'second'));
-            Cache::put('last_refresh_date',$last_refresh_date);
-            return $this->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);
+        $next_refresh_time=date('Y-m-d H:i:s',strtotime('+'.$qrCode_refresh.'second'));
+        Cache::put('next_refresh_time',$next_refresh_time);
+        return $this->flushQRCode($importAndExportQRCodes);
     }
     }
     //刷新进出场二维码方法
     //刷新进出场二维码方法
     public function flushQRCode($importAndExportQRCodes){
     public function flushQRCode($importAndExportQRCodes){
         foreach ($importAndExportQRCodes as $importAndExportQRCode){
         foreach ($importAndExportQRCodes as $importAndExportQRCode){
-            $time=strtotime(Cache::get('last_refresh_date'));
+            $time=strtotime(Cache::get('next_refresh_time'));
             $qrCode_refresh=config('hr.qrCode_refresh');
             $qrCode_refresh=config('hr.qrCode_refresh');
             if ($qrCode_refresh){
             if ($qrCode_refresh){
                 $date=date('Y-m-d H:i:s', strtotime('+30second',$time));
                 $date=date('Y-m-d H:i:s', strtotime('+30second',$time));
@@ -97,16 +60,16 @@ class QRCodeController extends Controller
             }
             }
             $qrCode=new QrCode($url);
             $qrCode=new QrCode($url);
             if ($importAndExportQRCode->type){
             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();
+//                $fileURL=base_path('public/images/QRCodeIMG/'.$importAndExportQRCode->type.'.png');
+//                $qrCode->writeFile($fileURL);
+                $importAndExportQRCode->src=base64_encode($qrCode->writeString());
+//                $importAndExportQRCode->url=url('images/QRCodeIMG/'.$importAndExportQRCode->type.'.png').'?da='.Uuid::uuid1();
             }
             }
         }
         }
         return $importAndExportQRCodes;
         return $importAndExportQRCodes;
     }
     }
     //刷新进出场二维码页面
     //刷新进出场二维码页面
     public function refreshQRCode(Request $request){
     public function refreshQRCode(Request $request){
-        $beforeTime=$request->input('beforeTime');
         $importAndExportQRCodes=[];
         $importAndExportQRCodes=[];
         $userDutyCheckOne=new UserDutyCheck([
         $userDutyCheckOne=new UserDutyCheck([
             'type'=>'import',
             'type'=>'import',
@@ -117,9 +80,9 @@ class QRCodeController extends Controller
             'source'=>'出场',
             'source'=>'出场',
         ]);
         ]);
         array_push($importAndExportQRCodes,$userDutyCheckOne,$userDutyCheck);
         array_push($importAndExportQRCodes,$userDutyCheckOne,$userDutyCheck);
-        $importAndExportQRCodes=$this->qrCode_refresh_time($importAndExportQRCodes,$beforeTime);
+        $importAndExportQRCodes=$this->qrCode_refresh_time($importAndExportQRCodes);
         $csrfToken=csrf_token();
         $csrfToken=csrf_token();
-        return ['importAndExportQRCodes'=>$importAndExportQRCodes,'last_refresh_date'=>Cache::get('last_refresh_date'),'csrf_Token'=>$csrfToken];
+        return ['importAndExportQRCodes'=>$importAndExportQRCodes,'next_refresh_time'=>Cache::get('next_refresh_time'),'csrf_Token'=>$csrfToken];
     }
     }
 
 
     //进入工作组二维码显示页面
     //进入工作组二维码显示页面
@@ -148,89 +111,47 @@ class QRCodeController extends Controller
     }
     }
 
 
 
 
-
-
-
-
-
-
-
-//    //进入刷新二维码页面
-//    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 getImportAndExportQRCode($importAndExportQRCodes){
+//            foreach ($importAndExportQRCodes as $importAndExportQRCode){
+//                $qrCode_refresh_everyday=config('hr.qrCode_refresh_everyday');
+//                if ($qrCode_refresh_everyday){
+//                    $date=md5(date('Y-m-d'));
+//                    $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');
+//                    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 qrCode_refresh_time($userWorkgroups,$beforeTime){
+//    //进出场二维码刷新时间
+//    public function qrCode_refresh_time($importAndExportQRCodes,$beforeTime){
 //        $qrCode_refresh=config('hr.qrCode_refresh');
 //        $qrCode_refresh=config('hr.qrCode_refresh');
-//        if (!Cache::has('last_refresh_date') || Cache::get('last_refresh_date')<date('Y-m-d H:i:s')){
-//            $last_refresh_date=date('Y-m-d H:i:s',strtotime('+'.$qrCode_refresh.'second'));
-//            Cache::put('last_refresh_date',$last_refresh_date);
-//            return $this->flushQRCode($userWorkgroups);
+//        if (!Cache::has('next_refresh_time') || Cache::get('next_refresh_time')<date('Y-m-d H:i:s')){
+//            $next_refresh_time=date('Y-m-d H:i:s',strtotime('+'.$qrCode_refresh.'second'));
+//            Cache::put('next_refresh_time',$next_refresh_time);
+//            return $this->flushQRCode($importAndExportQRCodes);
 //        }
 //        }
-//        if ($beforeTime==Cache::get('last_refresh_date')){
+//        if ($beforeTime==Cache::get('next_refresh_time')){
 //            $time=strtotime($beforeTime);
 //            $time=strtotime($beforeTime);
 //            //刷新 更新cache
 //            //刷新 更新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();
-//            }
+//            $next_refresh_time=date('Y-m-d H:i:s', strtotime('+'.$qrCode_refresh.'second', $time));
+//            Cache::put('next_refresh_time',$next_refresh_time);
+//            return $this->flushQRCode($importAndExportQRCodes);
 //        }
 //        }
-//        return $userWorkgroups;
+//        return $this->getImportAndExportQRCode($importAndExportQRCodes);
 //    }
 //    }
-    //获取工作组二维码
-//    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;
-//    }
-
 }
 }

+ 6 - 7
resources/views/personnel/checking-in/importAndExportQRCode.blade.php

@@ -21,7 +21,7 @@
 
 
                 <div class="row">
                 <div class="row">
                     <div class="col-6 text-center" v-for="importAndExportQRCode in importAndExportQRCodes" >
                     <div class="col-6 text-center" v-for="importAndExportQRCode in importAndExportQRCodes" >
-                            <img id="img" class="img-thumbnail img-fluid"  :src="importAndExportQRCode.url" width="75%"/>
+                            <img id="img" class="img-thumbnail img-fluid"  :src="'data:image/png;base64,'+importAndExportQRCode.src" width="75%"/>
                         <p class="font-weight-bold m-2 h1 text-center" style="color: red">@{{ importAndExportQRCode.source }}</p>
                         <p class="font-weight-bold m-2 h1 text-center" style="color: red">@{{ importAndExportQRCode.source }}</p>
                     </div>
                     </div>
                 </div>
                 </div>
@@ -50,20 +50,19 @@
                     {url:'{{$importAndExportQRCode->url}}', type:'{{$importAndExportQRCode->type}}',source:'{{$importAndExportQRCode->source}}'},
                     {url:'{{$importAndExportQRCode->url}}', type:'{{$importAndExportQRCode->type}}',source:'{{$importAndExportQRCode->source}}'},
                     @endforeach
                     @endforeach
                 ],
                 ],
-                last_refresh_date:'{{$last_refresh_date}}',
+                next_refresh_time:'{{$next_refresh_time}}',
             },
             },
             mounted(){
             mounted(){
                 let _this=this;
                 let _this=this;
                 let refreshQRCode=function(){
                 let refreshQRCode=function(){
-                    axios.post('{{url('personnel/checking-in/refreshQRCode')}}',{beforeTime:_this.last_refresh_date})
+                    axios.post('{{url('personnel/checking-in/refreshQRCode')}}')
                         .then(function (response) {
                         .then(function (response) {
                             _this.importAndExportQRCodes=response.data.importAndExportQRCodes;
                             _this.importAndExportQRCodes=response.data.importAndExportQRCodes;
-                            _this.last_refresh_date=response.data.last_refresh_date;
+                            _this.next_refresh_time=response.data.next_refresh_time;
                             document.querySelector("meta[name='csrf-token']").setAttribute('content',response.data.csrf_Token);
                             document.querySelector("meta[name='csrf-token']").setAttribute('content',response.data.csrf_Token);
-                             //$("meta[name='csrf-token']").attr('content', response.data.csrf_Token);
-                            setTimeout(refreshQRCode,computeDiffMicroTime_fromNow(_this.last_refresh_date));
+                            setTimeout(refreshQRCode,computeDiffMicroTime_fromNow(_this.next_refresh_time));
                         }).catch(function (err) {
                         }).catch(function (err) {
-                        setTimeout(refreshQRCode,computeDiffMicroTime_fromNow(_this.last_refresh_date));
+                        setTimeout(refreshQRCode,computeDiffMicroTime_fromNow(_this.next_refresh_time));
                         tempTip.setDuration(4000);
                         tempTip.setDuration(4000);
                         tempTip.show(err);
                         tempTip.show(err);
                     });
                     });