1 章節介紹
2 簽到業務流程
3 開通騰訊位置服務
- 開通騰訊位置服務
- 特點
- 免費注冊
- 每天提供1萬次的API調用
- 可以把GPS坐標轉換成地址
- 提供了JavaScript接口
- 創建密鑰
- 在小程序中添加騰訊位置服務為合法域名
- 特點
- 獲取GPS坐標
- 把坐標轉換成地址
4 把定位坐標轉換成真實地址
5 在Docker中安裝人臉識別鏡像
[root@localhost ~]# cd /etc/sysconfig/
[root@localhost sysconfig]# cat selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
SELINUX=enforcing 改為 disabled
修改完重啟 reboot
安裝docker並啟動
yum install docker -y
systemctl start docker
上傳影像
docker load < face.tar.gz
解壓配置文件
tar -xvf demo.tar
創建容器
docker run -itd -p 3000:3000 -v ~/demo:/demo --name st_face face
docker rm st_face
docker start st_face
docker stop st_face
進入容器后,進入demo文件夾,運行python命令
docker exec -it st_face /bin/sh
cd demo
nohup python3 -c "from app import app;" > log.out 2>&1 &
查看進程
ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.6 169072 13236 pts/0 Ssl+ 02:07 0:00 /usr/bin/qemu-x
root 10 0.0 0.3 152532 6684 pts/1 Ssl 02:07 0:00 /usr/bin/qemu-x
root 37 0.0 0.4 187200 9684 ? Rl+ Oct30 0:00 /bin/ps -aux
[1] + Illegal instruction nohup python3 -c "from app import app;" 1>log.out 2>&1
查看網絡端口
ip addr
6 運行人臉識別程序
7 實現人臉簽到(持久層)
- 先判斷簽到用戶是否存在人臉模型?
- 用簽到照片比對人臉模型,識別簽到人
- 根據簽到地址判斷新冠疫情風險等級
- 向本地寶H5頁面傳入URL參數查詢疫情風險等級
- 理由jsoup解析HTML頁面中的數據
- 高風險則發出告警郵件
- 異步多線程發送郵件
- 不會阻塞簽到業務
- 多線程發送郵件,速度更快
- 導入Email庫
- 配置SMTP服務器
- 定義常用企業郵箱
- 發送郵件
- 創建線程池
- 創建線程任務
- 異步多線程發送郵件
- 存儲簽到結果
- 每天只能簽到1次
- 測試的時候要刪除當天已有的簽到記錄
8 實現人臉簽到(業務層)
9 查詢簽到所在地區新冠疫情風險等級
10 發送疫情高風險地區告警郵件
11 實現人臉簽到(Web層)
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.14.3</version>
</dependency>
12 創建新員工人臉模型數據(業務層)
13 創建新員工人臉模型數據(Web層)
14-1 實現人臉簽到(移動端)
設計簽到成功頁面
- 內容
- 用戶信息
- 簽到信息
- 考勤統計
- 總考勤天數
- 本周考勤統計
- 先查詢出本周考勤記錄、特殊工作日和節假日
- 用DateUtil.range()生成本周的七天日期對象
- 用本周每天日期查詢當天的考勤情況
- 先斷定當天是工作日還是節假日
- 未來的日子考勤結果為空字符串
- 當天考勤結束前,沒考勤的結果為空字符串
- 工作日沒有考勤記錄就算曠工
- 展示頁面內容
15-2 實現人臉簽到(移動端)
月考勤頁面
- 用戶可以到月考勤頁面查看自己的考勤
- 用戶頁面
- 進入到月考勤頁面的鏈接
- 移動端權限驗證
- 用戶登陸后權限列表保存在Storage里面
- 用Storage中的權限和目標權限做比較
- 設計頁面,加載數據