all(); Log::channel('apiLog')->info('smkq-heartbeat', ['data' => $data]); $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'],0,10), 'flow_id' => $v['id'], 'devid' => $v['devid'], ]; $recodes[] = [ '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; } } $return['time'] = time(); $return['transaction_id'] = date('YmdHis').rand(1000,9999); // var_dump($return);die; echo json_encode($return,JSON_UNESCAPED_UNICODE); } public function addperson(Request $request){ //{"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":"d28a5c104fad4cb1a5091d70db573530","personCount":"1","serialno":"410204307430","sign":"da8cec6fd9bf0831f15c31440d66b612","sub_model":"2","time":"1727175496486","total":"4","transaction_id":"100","version":"V3.0.4","whitelist":[{"account_id":"23333","emp_id":"23333","rec_id":"23333","result_code":"400"}]} $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){ if($v['result_code'] == "400"){ Employee::where('number',$v['account_id'])->update([ 'is_device' => 1 ]); } } } $json = json_decode('{"transaction_id":"20220829142124067","api":"heartbeat","records":[],"interval":"10000","result_code":0,"noncestr":"be39ff7eadc0450b91f0713c3382cd22","time":"1661754084","sign":"9ab968049901cd4e493baeec1dcf85fe","result_msg":"OK"}',true); $json['transaction_id'] = date('YmdHis').rand(1000,9999); $json['time'] = time(); echo json_encode($json); } public function capture(Request $request) { //{"json":"{"account_id":"23333","card_sn":"12345","devid":"001","emp_fname":"诸杰伟","emp_id":"23333","id":8,"rec_type":0,"start_time":"1727248857342","ver":2}","picture":{"Illuminate\\Http\\UploadedFile":"/tmp/phpqJxfNO"}} $data = $request->all(); Log::channel('apiLog')->info('smkq-capture', ['data' => $data]); $data = json_decode($data['json'],true); if ($request->hasFile('picture')) { // 获取上传的文件对象 $file = $request->file('picture'); // 检查文件是否有效 if ($file->isValid()) { // 设置保存路径和文件名(可以根据需要修改) $date = date('Ymd'); $destinationPath = 'app/kq/' . $date; // 文件保存路径 $filename = time() . '_' . $file->getClientOriginalName(); // 生成文件名 // 移动文件到指定目录 $file->move(storage_path($destinationPath), $filename); // 保存图片路径(可以存储到数据库等) $imagePath = $destinationPath . '/' . $filename; KqList::where('devid',$data['devid'])->where('flow_id',$data['id'])->update([ 'pic' => $imagePath ]); $return = [ 'devid' => $data['devid'], 'emp_id' => $data['emp_id'], 'id' => $data['id'], ]; echo json_encode($return); } } } }