# Kylin Parking - 法律合规文档

> **版本**: 1.1
> **最后更新**: 2026-06-20
> **适用范围**: 所有使用 kylin/parking 扩展包的系统

---

## 一、适用法律法规

### 1.1 《中华人民共和国价格法》(1998.5.1)

| 条款 | 要求 | 合规要点 |
|------|------|----------|
| 第十三条 | 经营者销售、收购商品和提供服务，应当按照政府价格主管部门的规定明码标价 | `ParkingService::calculateFee()` 计费规则公开透明，配置可公示 |
| 第十四条 | 经营者不得有不正当价格行为 | 计费规则无隐性收费，免费时长、首段、周期、封顶均明确 |

### 1.2 各地停车收费管理办法

| 要求 | 合规要点 |
|------|----------|
| 免费时长 >= 15 分钟 | `default_free_minutes = 15` |
| 日封顶收费 | `default_daily_cap = 5000` 分（50 元） |
| 收费需公示 | 收费标价牌需包含收费标准、计费方式、免费时长 |

### 1.3 《中华人民共和国个人信息保护法》(2021.11.1)

| 条款 | 要求 | 合规要点 |
|------|------|----------|
| 第六条 | 最小必要原则 | 仅收集车牌号等必要信息 |
| 第四十二条 | 车牌号属于个人信息 | `ParkingRecord` / `MonthlyCard` 车牌号使用 `encrypted` cast 加密存储 |
| 第四十七条 | 个人注销账户的，个人信息处理者应当删除其个人信息 | `ParkingService::purgeByPlate()` 按车牌清理停车记录和月卡 |

### 1.4 《中华人民共和国道路交通安全法》(2021.4.29 修订)

| 条款 | 要求 | 合规要点 |
|------|------|----------|
| 第三十三条 | 新建、改建、扩建的公共建筑、商业街区等应当配建停车场 | 停车场管理规范 |
| 第五十六条 | 机动车应当在规定地点停放 | 停车位管理 |

### 1.5 《中华人民共和国数据安全法》(2021.9.1)

| 条款 | 要求 | 合规要点 |
|------|------|----------|
| 第二十一条 | 数据分类分级保护 | 车牌、进出记录需分类管理 |
| 第二十七条 | 加强风险监测 | 设备运行状态监控（`device_heartbeat_timeout = 300`） |

### 1.6 《中华人民共和国网络安全法》(2017.6.1)

| 条款 | 要求 | 合规要点 |
|------|------|----------|
| 第二十一条 | 采取监测、记录网络运行状态、网络安全事件的技术措施，日志留存 >= 180 天 | 所有关键操作（入场/出场/月卡办理/续费/清理）写入 `kylin/audit-log` |

### 1.7 GA/T 1028.3-2022《机动车驾驶人考试系统通用技术条件 第3部分：道路驾驶技能考试系统》

| 条款 | 要求 | 合规要点 |
|------|------|----------|
| 车牌识别 | 车牌识别准确率 | `plate_confidence_threshold = 0.85`，`vehicleEntry()` 强制校验置信度 |

---

## 二、行业规范

### 2.1 停车管理规范

- 车牌识别置信度 >= 0.85（`plate_confidence_threshold = 0.85`），低于阈值拒绝入场并记录审计
- 设备心跳超时 300 秒（`device_heartbeat_timeout = 300`），异常及时告警
- 月卡到期前 7 天提醒（`monthly_card_renewal_remind_days = 7`），避免过期纠纷
- 免费时长 >= 15 分钟，符合行业通行标准

### 2.2 计费规范

- 计费规则公开透明（免费时长、首段、周期、日封顶）
- 日封顶收费 50 元（`default_daily_cap = 5000` 分），防止天价停车费
- 计费精度到分，不足最低计费单位的按最低计费单位收取
- 计费规则：
  1. 免费时长内（默认 15 分钟）免费
  2. 首段时长（默认 60 分钟）收首段费用（默认 6 元）
  3. 后续按周期（默认 30 分钟）收周期费用（默认 3 元）
  4. 日封顶（默认 50 元）

### 2.3 数据安全

- 车牌号属于个人信息，需加密存储（`encrypted` cast）
- 车主手机号加密存储（`MonthlyCard.owner_phone`）
- 车辆进出记录需保留，便于纠纷处理
- 设备运行状态需实时监控，异常自动告警
- 用户注销时按车牌清理数据（`purgeByPlate()`）

---

## 三、合规检查清单

### 3.1 计费管理

- [x] 免费时长 >= 15 分钟（`default_free_minutes = 15`）
- [x] 日封顶收费（`default_daily_cap = 5000` 分）
- [x] 计费规则公开透明（`calculateFee()` 明确规则）
- [x] 计费精度到分

### 3.2 车牌识别

- [x] 车牌识别置信度 >= 0.85（`plate_confidence_threshold = 0.85`）
- [x] 低于阈值拒绝入场并记录审计（`vehicleEntry()`）
- [x] 进出记录完整

### 3.3 设备管理

- [x] 设备心跳超时 300 秒（`device_heartbeat_timeout = 300`）
- [x] 设备异常告警

### 3.4 月卡管理

- [x] 月卡到期前 7 天提醒（`monthly_card_renewal_remind_days = 7`）
- [x] 月卡续费支持过期后补办
- [x] 月卡办理/续费记录审计日志

### 3.5 数据安全

- [x] 车牌数据加密存储（`encrypted` cast）
- [x] 车主手机号加密存储
- [x] 用户注销清理（`purgeByPlate()`）
- [x] 操作日志保留（审计日志）

### 3.6 审计日志

- [x] 车辆入场/出场审计
- [x] 月卡办理/续费审计
- [x] 车牌识别低置信度审计
- [x] 用户注销清理审计

---

## 四、代码检测报告

### 4.1 检测结果

| 检测项 | 状态 | 说明 |
|------|------|------|
| 免费时长 | ✅ 已通过 | 15 分钟，符合行业标准 |
| 日封顶 | ✅ 已通过 | 50 元 |
| 计费规则 | ✅ 已通过 | `calculateFee()` 公开透明 |
| 车牌识别 | ✅ 已通过 | 置信度 0.85，`vehicleEntry()` 强制校验 |
| 设备监控 | ✅ 已通过 | 300 秒心跳超时 |
| 月卡提醒 | ✅ 已通过 | 提前 7 天，`getExpiringSoonCards()` |
| 计费精度 | ✅ 已通过 | 精确到分 |
| 车牌加密 | ✅ 已通过 | `encrypted` cast |
| 手机号加密 | ✅ 已通过 | `MonthlyCard.owner_phone` `encrypted` cast |
| 用户注销清理 | ✅ 已通过 | `purgeByPlate()` |
| 审计日志 | ✅ 已通过 | 所有关键操作写入 `kylin/audit-log` |
| 并发控制 | ✅ 已通过 | `lockForUpdate()` 防止车位超卖 |
| 数据库迁移 | ✅ 已通过 | 3 张表（parking_lots/parking_records/monthly_cards） |
| 模型关联 | ✅ 已通过 | ParkingLot/ParkingRecord/MonthlyCard 完整关联 |

### 4.2 审计事件清单

| 事件 | 说明 | 法律依据 |
|------|------|------|
| `vehicle_entry` | 车辆入场 | 《网络安全法》第二十一条 |
| `vehicle_exit` | 车辆出场 | 《网络安全法》第二十一条 |
| `plate_recognition_low_confidence` | 车牌识别低置信度 | GA/T 1028.3-2022 |
| `monthly_card_created` | 月卡办理 | 《网络安全法》第二十一条 |
| `monthly_card_renewed` | 月卡续费 | 《网络安全法》第二十一条 |
| `parking_data_purged` | 用户注销清理 | 《个人信息保护法》第四十七条 |

### 4.3 审查结论

**本包所有合规功能已实现。** 计费引擎、车牌识别校验、月卡管理、数据加密、用户注销清理、审计日志核心功能完整。

---

## 五、免责声明

本扩展包在代码层面实现了停车管理的合规基础能力，但不构成法律建议。使用方应：

1. 根据当地停车收费管理办法调整收费标准
2. 确保收费标价牌清晰公示，符合当地主管部门要求
3. 车牌数据需加密存储，不得泄露
4. 用户注销时及时调用 `purgeByPlate()` 清理数据
5. 咨询专业法律顾问，确保系统整体合规
