Compare commits

..

6 Commits

Author SHA1 Message Date
liaoyk b67a61be9a Merge branch 'main' of http://47.92.79.122:3000/liaoyk/yzms 2024-08-16 16:43:29 +08:00
liaoyk 8a93123166 docs: q 2024-08-16 16:43:24 +08:00
liaoyk a4596fd009 Merge branch 'main' of http://47.92.79.122:3000/liaoyk/yzms 2024-08-14 17:37:38 +08:00
廖勇坤 12199bf8fb docs: 新增部分注释 2024-08-14 17:36:18 +08:00
廖勇坤 5fa58adfeb docs: y 2024-08-13 17:39:55 +08:00
廖勇坤 4c0d3f89d2 docs: x 2024-08-13 09:26:34 +08:00
1 changed files with 13 additions and 1 deletions

View File

@ -61,6 +61,8 @@ function response_pos($api, $data)
global $deviceInfo, $post, $log_id, $db;
$noncestr = md5(microtime() . '_' . rand());
$time = time();
// 签名计算
$sign = md5($time.$noncestr.$deviceInfo['cardpwd']);
$sign = md5($time . $noncestr . $deviceInfo['cardpwd']);
$data['sign'] = $sign;
@ -187,8 +189,11 @@ if ($qs == 'heartbeat' || $qs == 'addperson' || $qs == 'delperson') { //心跳
$faceInfo[$item['user_id']] = $item;
}
}
// tb_face -> faceInfo -> userList_s
// tb_pos_device -> userList_d
// 关联用户表和用户id卡表获取信息
// 获取对应租户下的所有用户卡信息
$data = $db->get_all("select a.* from tb_user_idcard a, tb_user b where a.user_id=b.id and b.company_id = '{$company_id}' and a.state=1 order by a.id");
$cardInfo = array();
// 提取上一步获取的信息并将数据循环加入到卡信息数组中类似List[Dict]key是user_idvalue是item
@ -259,6 +264,7 @@ if ($qs == 'heartbeat' || $qs == 'addperson' || $qs == 'delperson') { //心跳
}
// 设备表的用户信息
$item2 = $dUserInfo[$uid];
// 本质上其实是比较pos_device_user表中的数据和user user_face表联合查询的结果是否匹配
// 如果设备用户表的记录和用户表的记录不一致
if (
($item2['facecode'] . '') !== ($item['facecode'] . '')
@ -352,6 +358,12 @@ if ($qs == 'heartbeat' || $qs == 'addperson' || $qs == 'delperson') { //心跳
$delList = array(); //删除列表
$maxcount = 100;
// 遍历设备用户表的记录
/*
删除有两种情况:
1. 距上次下发删除5分钟后还没收到确认
2. 设备用户表中的用户记录不在用户表中
*/
foreach ($userList_d as $item) {
$uid = $item['uid'];
@ -374,7 +386,7 @@ if ($qs == 'heartbeat' || $qs == 'addperson' || $qs == 'delperson') { //心跳
continue;
}
// 不在用户表中添加item到删除列表
// 设备用户表中的用户记录不在用户表中添加item到删除列表
if (!$sUserInfo[$uid]) {
$delList[] = $item;
if (count($delList) >= $maxcount)