架构设计
总体架构
慧猫开源停车平台采用前后端分离、微服务拆分、多租户隔离的架构。
graph TB
UI[管理后台 Vue + Element] --> GW[Gateway 网关]
小程序[车主 小程序] --> GW
DEV[停车设备/设备模拟器] --> GW
GW --> AUTH[认证中心 witos-auth]
GW --> SYS[系统服务 witos-system]
GW --> PARK[停车服务 witos-parking]
GW --> FILE[文件服务 witos-file]
GW --> JOB[调度服务 witos-job]
AUTH --> NACOS[Nacos 注册配置]
SYS --> MYSQL[(MySQL)]
PARK --> MYSQL
PARK --> REDIS[(Redis)]
FILE --> STORAGE[本地/MinIO/FastDFS]
JOB --> MYSQL
服务职责
witos-gateway
统一入口,负责路由转发、鉴权协同、跨域处理、服务聚合和网关级控制。
witos-auth
认证中心,负责登录、令牌、用户认证和安全上下文。
witos-system
系统基础服务,负责租户、租户套餐、用户、角色、部门、岗位、菜单、字典、参数、通知、日志等能力。
witos-parking
停车业务主服务,负责车场、车道、设备、收费规则、进出场事件、停车会话、订单、支付、账户、提现、统计看板、小程序 和设备开放接口。
witos-parking-simulator
停车设备模拟服务,用于模拟设备在线、离线、心跳、入场、出场等行为。
witos-file
文件服务,负责停车场图片、附件、后续发票或凭证等文件存储扩展。
witos-job
调度服务,可用于日统计刷新、订单超时关闭、会员到期提醒、月租续费提醒、设备离线检测等任务。
数据隔离
停车数据以租户为边界隔离,停车场、车道、设备、会话、订单、账户、提现等核心表均围绕租户进行组织。结合系统服务的数据权限,可以实现:
- 平台管理员看全局。
- 租户管理员看本租户。
- 区域经理看负责区域。
- 车场管理员看指定停车场。
- 财务人员看账户与结算。
- 设备运维只看设备和通道。
设备接入架构
设备接入采用开放接口模式起步,后续可演进为多协议适配:
flowchart LR
A[设备厂商] --> B[协议适配器]
B --> C[统一设备开放接口]
C --> D[停车交易服务]
D --> E[会话/订单/指令]
E --> F[设备回调]
当前开放接口已覆盖:
- 入场事件。
- 出场事件。
- 心跳事件。
- 开闸结果回调。
未来可以扩展 TCP 长连接、MQTT、HTTP 回调、厂商 SDK、边缘网关等接入方式。
订单状态流
stateDiagram-v2
[*] --> IN_PARK: 入场识别
IN_PARK --> WAIT_PAY: 出场识别并计费
WAIT_PAY --> PAID_PENDING_EXIT: 支付成功
PAID_PENDING_EXIT --> COMPLETED: 宽限期内离场
PAID_PENDING_EXIT --> WAIT_PAY: 超时补费
IN_PARK --> ABNORMAL: 异常事件
WAIT_PAY --> ABNORMAL: 人工介入
COMPLETED --> [*]
扩展方向
- 接入真实支付通道。
- 增加会员中心。
- 增加商户优惠。
- 增加月租车管理。
- 增加设备协议插件。
- 增加监管平台上报。
- 增加电子发票。
- 增加大屏和地图。
- 增加分布式消息和异步事件总线。
