Browse Source

内部使用oa后台

gogs 1 year ago
parent
commit
1a3fff2592
1 changed files with 66 additions and 37 deletions
  1. 66 37
      app/Http/Controllers/Api/DeviceController.php

+ 66 - 37
app/Http/Controllers/Api/DeviceController.php

@@ -6,6 +6,7 @@ use App\Http\Controllers\Controller;
 use App\Model\Depart;
 use App\Model\Employee;
 use App\Model\EmployeeDepartPermission;
+use App\Model\KqList;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Log;
 
@@ -20,47 +21,74 @@ class DeviceController extends Controller
     public function heartbeat(Request $request){
         $data = $request->all();
         Log::channel('apiLog')->info('smkq-heartbeat', ['data' => $data]);
-        $emloyee = new Employee();
-        $emloyee = $emloyee->where('is_device',0)->get()->toArray();
-
-        $depart = Depart::pluck('title','id')->toArray();
-        $depart_code = Depart::pluck('code','id')->toArray();
-
-        $employee_depart = EmployeeDepartPermission::pluck('depart_id','employee_id')->toArray();
-        $recodes = [];
-        if(!empty($emloyee)){
-            foreach ($emloyee as $v){
-                if(!isset($depart_code[$employee_depart[$v['id']]]) || !isset( $depart[$employee_depart[$v['id']]])) continue;
-                //{"url":"","sex":"男","emp_id":"001","groups":"11111111","valid_date":"2099-01-01","access_pwd":"1234","rec_id":"1","door_right":"","depart_name":"财务部","birth_date":"1996-01-01","level_id":15,"account_id":"00000001","twins":"","emp_fname":"测试人员","state":"0","card_sn":"12345"}
+        $return = json_decode('{"transaction_id":"20220829142124067","api":"heartbeat","records":[],"interval":"10000","result_code":0,"noncestr":"be39ff7eadc0450b91f0713c3382cd22","time":"1661754084","sign":"9ab968049901cd4e493baeec1dcf85fe","result_msg":"OK"}',true);
+        // //考勤数据记录
+        //        //{"build_time":"2024-09-23 18-49-04","customer":"23333","dev_id":"001","door_state":"0","door_status":0,"faceCount":"1","fireware":"XF108-Y-SV1.020240822","ip":"192.168.0.241","mac":"3e:b6:b9:ed:0d:8e","main_board":0,"model":"2","noncestr":"218e16df13cb45cf998644bed4a6a673","personCount":"1","records":[{"RestAccount":0,"UserAccount":0,"account_id":"23333","base64":null,"card_sn":"12345","data_type":0,"devid":"001","emp_fname":"诸杰伟","flag":0,"gauze_mask":false,"id":1,"mark":0,"mode":0,"period_id":0,"photo_upload":1,"rec_type":0,"sign_time":"1727174516003","up_rec":0,"ver":2},{"RestAccount":0,"UserAccount":0,"account_id":"23333","base64":null,"card_sn":"12345","data_type":0,"devid":"001","emp_fname":"诸杰伟","flag":0,"gauze_mask":false,"id":2,"mark":0,"mode":0,"period_id":0,"photo_upload":1,"rec_type":0,"sign_time":"1727174524281","up_rec":0,"ver":2},{"RestAccount":0,"UserAccount":0,"account_id":"23333","base64":null,"card_sn":"12345","data_type":0,"devid":"001","emp_fname":"诸杰伟","flag":0,"gauze_mask":false,"id":3,"mark":0,"mode":0,"period_id":0,"photo_upload":1,"rec_type":0,"sign_time":"1727174571143","up_rec":0,"ver":2},{"RestAccount":0,"UserAccount":0,"account_id":"23333","base64":null,"card_sn":"12345","data_type":0,"devid":"001","emp_fname":"诸杰伟","flag":0,"gauze_mask":false,"id":4,"mark":0,"mode":0,"period_id":0,"photo_upload":1,"rec_type":0,"sign_time":"1727174927021","up_rec":0,"ver":2},{"RestAccount":0,"UserAccount":0,"account_id":"23333","base64":null,"card_sn":"12345","data_type":0,"devid":"001","emp_fname":"诸杰伟","emp_id":"23333","flag":0,"gauze_mask":false,"id":5,"mark":0,"mode":0,"period_id":0,"photo_upload":1,"rec_type":0,"sign_time":"1727175564215","up_rec":0,"ver":2}],"serialno":"410204307430","sign":"a79a58b2089224bf2e44dc9d63242453","sub_model":"2","time":"1727243811265","total":"5","transaction_id":"100","version":"V3.0.4"}
+        if(isset($data['records'])&&!empty($data['records'])){
+            $kq_list = [];
+            $recodes = [];
+            //{"RestAccount":0,"UserAccount":0,"account_id":"23333","base64":null,"card_sn":"12345","data_type":0,"devid":"001","emp_fname":"诸杰伟","flag":0,"gauze_mask":false,"id":1,"mark":0,"mode":0,"period_id":0,"photo_upload":1,"rec_type":0,"sign_time":"1727174516003","up_rec":0,"ver":2}
+            foreach ($data['records'] as $v){
+                $kq_list[] = [
+                    'number' => $v['account_id'],
+                    'emp_fname' => $v['emp_fname'],
+                    'crt_time' => substr($v['sign_time'],-3),
+                ];
                 $recodes[] = [
-                    'url' => $v['pic'],
-                    'tel' => $v['mobile'],
-                    'sex' => $v['sex'],
-                    'emp_id' => $v['number'],
-                    'groups' => $depart_code[$employee_depart[$v['id']]],
-                    'visitor' => "0",
-                    'job_name' => "",
-                    'valid_date' => '9999-01-01',
-                    'access_pwd' => '1234',
-                    'rec_id' => $v['number'],
-                    'door_right' => '',
-                    'depart_name' => $depart[$employee_depart[$v['id']]],
-                    'birth_date' => $v['birth_date'],
-                    'level_id' => 1,
-                    'account_id' => $v['number'],
-                    'twins' => '',
-                    'emp_fname' => $v['emp_name'],
-                    'state' => '0',
-                    'card_sn' => '12345',
+                    'id' => $v['id']
                 ];
+
+            }
+            KqList::insert($kq_list);
+            $return['records'] = $recodes;
+        }else{
+            $emloyee = new Employee();
+            $emloyee = $emloyee->where('is_device',0)->get()->toArray();
+
+            $depart = Depart::pluck('title','id')->toArray();
+            $depart_code = Depart::pluck('code','id')->toArray();
+
+            $employee_depart = EmployeeDepartPermission::pluck('depart_id','employee_id')->toArray();
+            $recodes = [];
+            if(!empty($emloyee)){
+                foreach ($emloyee as $v){
+                    if(!isset($depart_code[$employee_depart[$v['id']]]) || !isset( $depart[$employee_depart[$v['id']]])) continue;
+                    //{"url":"","sex":"男","emp_id":"001","groups":"11111111","valid_date":"2099-01-01","access_pwd":"1234","rec_id":"1","door_right":"","depart_name":"财务部","birth_date":"1996-01-01","level_id":15,"account_id":"00000001","twins":"","emp_fname":"测试人员","state":"0","card_sn":"12345"}
+                    $recodes[] = [
+                        'url' => $v['pic'],
+                        'tel' => $v['mobile'],
+                        'sex' => $v['sex'],
+                        'emp_id' => $v['number'],
+                        'groups' => $depart_code[$employee_depart[$v['id']]],
+                        'visitor' => "0",
+                        'job_name' => "",
+                        'valid_date' => '9999-01-01',
+                        'access_pwd' => '1234',
+                        'rec_id' => $v['number'],
+                        'door_right' => '',
+                        'depart_name' => $depart[$employee_depart[$v['id']]],
+                        'birth_date' => $v['birth_date'],
+                        'level_id' => 1,
+                        'account_id' => $v['number'],
+                        'twins' => '',
+                        'emp_fname' => $v['emp_name'],
+                        'state' => '0',
+                        'card_sn' => '12345',
+                    ];
+                }
+            }
+
+            //{"transaction_id":"20220829153806182","api":"addperson","interval":"10000","result_code":"0","noncestr":"5ec6966c0e1b41e193d82b52b0c5668c","whitelist":[{"url":"http://192.168.0.20:5002/photo/134/00066434.jpg?devid=802&trans_id=20220829153806182","tel":"","sex":"","emp_id":"123456","groups":"1","visitor":"0","job_name":"","valid_date":"9999-01-01","access_pwd":"3456","rec_id":620218,"door_right":"","depart_name":"测试部","birth_date":"","level_id":1,"account_id":"00066434","twins":"","emp_fname":"测试456","state":"0","card_sn":""}],"time":"1661758686","sign":"4dab2d55c119f5d7ea93a80c14d1951a","result_msg":"OK"}
+            if(!empty($recodes)){
+                $return['api'] = 'addperson';
+                $return['whitelist'] = $recodes;
             }
         }
-        //{"transaction_id":"20220829153806182","api":"addperson","interval":"10000","result_code":"0","noncestr":"5ec6966c0e1b41e193d82b52b0c5668c","whitelist":[{"url":"http://192.168.0.20:5002/photo/134/00066434.jpg?devid=802&trans_id=20220829153806182","tel":"","sex":"","emp_id":"123456","groups":"1","visitor":"0","job_name":"","valid_date":"9999-01-01","access_pwd":"3456","rec_id":620218,"door_right":"","depart_name":"测试部","birth_date":"","level_id":1,"account_id":"00066434","twins":"","emp_fname":"测试456","state":"0","card_sn":""}],"time":"1661758686","sign":"4dab2d55c119f5d7ea93a80c14d1951a","result_msg":"OK"}
-        $return = json_decode('{"transaction_id":"20220829142124067","api":"heartbeat","records":[],"interval":"10000","result_code":0,"noncestr":"be39ff7eadc0450b91f0713c3382cd22","time":"1661754084","sign":"9ab968049901cd4e493baeec1dcf85fe","result_msg":"OK"}',true);
-        if(!empty($recodes)){
-            $return['api'] = 'addperson';
-            $return['whitelist'] = $recodes;
-        }
+
+
+
+
+
         $return['time'] = time();
         $return['transaction_id'] = date('YmdHis').rand(1000,9999);
 //        var_dump($return);die;
@@ -72,6 +100,7 @@ class DeviceController extends Controller
         $data = $request->all();
         Log::channel('apiLog')->info('smkq-addperson', ['data' => $data]);
         //{"build_time":"2024-09-23 18-49-04","customer":"23333","dev_id":"001","door_status":0,"faceCount":"1","fireware":"XF108-Y-SV1.020240822","ip":"192.168.0.241","mac":"3e:b6:b9:ed:0d:8e","main_board":0,"model":"2","noncestr":"b38ebc4de96c43d7aacb8225f3f46591","personCount":"1","serialno":"410204307430","sign":"fdbad4552caae32bd4ba7ebacca60cd8","sub_model":"2","time":"1727175016706","total":"4","transaction_id":"100","version":"V3.0.4","whitelist":[{"account_id":"23333","rec_id":"1","result_code":"407"}]}
+        $records = [];
         if(isset($data['whitelist'])){
             $data = $data['whitelist'];
             foreach ($data as $v){