终版
This commit is contained in:
@@ -19,9 +19,9 @@ Qt 管理端用于连接考勤服务端,完成以下工作:
|
||||
6. 导出统计 CSV。
|
||||
7. 配置服务端地址和 API Token。
|
||||
8. 新增、编辑、删除、清空签到时间段。
|
||||
9. 配置学号到姓名、学号到班级编号、班级编号到班级名称的显示映射。
|
||||
9. 维护班级信息。
|
||||
10. 查看 K210 上传的人脸照片。
|
||||
11. 为 K210 face_id 绑定真实学号。
|
||||
11. 为 K210 face_id 编辑真实学号、姓名和班级。
|
||||
12. 删除人脸信息,并可选择删除关联考勤记录。
|
||||
|
||||
## 2. 当前重要行为
|
||||
@@ -60,11 +60,9 @@ API Token 不写入源码。可以通过“配置中心”保存,也可以通
|
||||
$env:ATTENDANCE_API_TOKEN="你的Token"
|
||||
```
|
||||
|
||||
### 2.4 响应加密
|
||||
### 2.4 加密传输
|
||||
|
||||
服务端支持通过请求头 `X-Encrypted-Response: true` 返回 AES 加密响应,Qt 代码中保留了解密能力。
|
||||
|
||||
当前普通记录和统计请求没有默认开启这个请求头,实际按 JSON 明文解析。
|
||||
除照片 JPEG 下载外,Qt 的业务 JSON 请求和响应统一使用 AES-128-CBC + PKCS#7 + Base64。GET/DELETE 请求会要求服务端返回加密响应,POST JSON 会先加密请求体并携带 `X-Encrypted: AES128-CBC`。
|
||||
|
||||
## 3. 技术栈
|
||||
|
||||
@@ -88,7 +86,7 @@ QT/
|
||||
│ ├── ApiClient.* # HTTP API 客户端
|
||||
│ ├── AppController.* # 业务逻辑中枢
|
||||
│ ├── AttendanceTypes.h # 数据结构
|
||||
│ ├── CryptoUtils.* # AES 解密工具
|
||||
│ ├── CryptoUtils.* # AES 加解密工具
|
||||
│ └── *ListModel.* # QML 列表模型
|
||||
├── CMakeLists.txt
|
||||
├── clear_qt_cache.ps1 # 清理 Qt Creator/CMake 本地缓存
|
||||
@@ -156,6 +154,8 @@ powershell -ExecutionPolicy Bypass -File .\clear_qt_cache.ps1
|
||||
| 保存 | 同时保存服务器地址和 API Token 到 `QSettings`,并切换 `ApiClient` 配置 |
|
||||
| 测试连接 | 使用当前配置请求 `/api/v1/system/health` |
|
||||
|
||||
配置中心还包含签到时间段配置和班级管理。班级区域只负责从服务器加载班级、保存班级、新增班级和删除班级;学生学号、姓名和班级归属在人脸管理页点击“编辑”后维护。
|
||||
|
||||
## 10. 本地数据
|
||||
|
||||
Qt 会保存这些本地数据:
|
||||
@@ -165,7 +165,7 @@ Qt 会保存这些本地数据:
|
||||
| 服务端地址 | `QSettings`,键名 `server/url` |
|
||||
| API Token | `QSettings`,键名 `server/apiToken` |
|
||||
| 时间段配置 | `QStandardPaths::AppDataLocation/timeslot_config.json` |
|
||||
| 学生/班级映射 | `QStandardPaths::AppDataLocation/mapping_config.json` |
|
||||
| 学生、班级与人脸档案缓存 | `QStandardPaths::AppDataLocation/profiles_cache.json` |
|
||||
| 人脸照片缓存 | `QStandardPaths::AppDataLocation/face_photos/*.jpg` |
|
||||
|
||||
## 11. 常见问题
|
||||
|
||||
Reference in New Issue
Block a user