市区综合运营商评估「代驾系统开发」时,技术评审应先看到可部署的模块边界,而不是先争论抽成比例。下文用目录树、技术栈列表、部署片段与验收清单说明代驾四端(平台后台 / 分站 / 司机端 / 用户端)如何落在同一套私有化交付里。示例配置为教学示意。

模块目录树(教学示意)
代驾单模块在中台解耦后,仓库可按服务边界拆分(名称以当期交付为准):
text
daijia-platform/
├── gateway-service # API 网关:鉴权、限流、路由
├── auth-service # 登录与 Token
├── user-app-service # 用户端:叫单、支付回调、行程查询
├── driver-app-service # 司机端:接单、行程状态上报
├── dispatch-service # 调度:派单/抢单、改派
├── trip-order-service # 订单/行程聚合与状态机
├── settlement-service # 结算字段与导出任务
├── admin-api # 平台后台 API
├── station-api # 分站 API(数据范围过滤)
└── deploy/
├── docker-compose.yml
└── env.example
抽成顾虑在架构评审里应改写为:settlement-service 是否按角色导出、异常是否回写应结字段。系统侧不抽成客户平台订单------这是交付边界。
技术栈列表(示意)
- 后端:Java + Spring Boot / Spring Cloud Gateway
- 前端:Vue 管理端;用户端与司机端按当期方案(App/小程序)
- 数据:MySQL 8(订单与权限);Redis(会话、短期锁、热点配置)
- 消息:RabbitMQ 或等价组件(状态变更异步通知)
- 部署:Docker + Nginx;私有化源码/制品交付到客户环境
配置与部署片段(示意)
yaml
# deploy/env.example(示意,勿直接用于生产)
MYSQL_HOST: 127.0.0.1
MYSQL_DB: daijia_trip
REDIS_HOST: 127.0.0.1
MQ_HOST: 127.0.0.1
JWT_ISSUER: daijia-local
STATION_SCOPE_ENFORCE: "true"
bash
# 教学示意:拉起依赖与应用(以交付脚本为准)
docker compose -f deploy/docker-compose.yml up -d mysql redis mq
docker compose -f deploy/docker-compose.yml up -d gateway trip-order-service dispatch-service
客户侧需自备域名证书、支付/短信/地图密钥。环境差异表应进入验收附件。
订单链路:架构层怎么验
架构验收关注「谁触发、谁持久化、谁广播」:
- user-app-service 创建行程订单 → trip-order-service 落库
- dispatch-service 进入待派/待抢
- driver-app-service 接单并回写节点
- settlement-service 在完成或取消后生成可导出明细
- admin-api / station-api 按权限读取同一状态枚举 非法跳转应由 trip-order-service 拒绝。分站读模型必须带 station_id 过滤。
权限组织与验收清单
- 总后台:角色模板、跨区策略、审计日志查询
- 分站:仅本区订单/司机;写权限可单独关闭
- 司机端/用户端:最小权限
- 导出:司机侧、分站侧、总账侧字段分列
- 私有化:客户环境一次独立部署或构建演练 低成本试水时,先冻结目录内核心服务,再谈界面定制。捆绑其它业态模块不应进入本专题必验目录。
小结
「代驾系统开发」的架构交付,应能指着目录树说明四端入口、状态落库点与结算导出点,并用 compose/配置模板证明可私有化拉起。验收清单比功能宣传页更接近工程事实。
调度与结算在架构上的切分理由
把 dispatch-service 与 settlement-service 拆开,是为了让「派单失败」与「算钱失败」可以分别扩容与分别审计。
试水期流量不高,拆服务的收益主要在边界清晰:调度团队改超时策略时,不必碰结算导出代码。
若交付形态是模块化单体,也应用包级边界模拟同样切分,避免所有逻辑堆在一个 God Service。 订单主链路的消息建议至少三类:
trip.created、trip.status_changed、trip.settlement_ready。
消费方写明幂等键(order_no + event_id),防止重复推送造成重复结算行。架构评审时把幂等策略写进附件,比只写「用了 MQ」更有用。
平台后台与分站 API 的只读模型
admin-api 面向全局配置与审计;station-api 面向区域操作。二者可以共用领域服务,但控制器层必须强制注入 station 范围。
缓存若使用 Redis,键名应带 station_id,避免分站 A 打到分站 B 的热点配置。
导出任务建议落库:任务状态、申请人、过滤条件、文件地址、失败原因。这样「导出失败」可重试可追责。
私有化交付的架构验收口述稿 评审会上可用三句话对齐预期:第一,客户环境能按 compose 或脚本拉起核心服务;第二,四端读到同一状态枚举;第三,结算导出按角色分列且有审计。
抽成类商务规则(向用户加价、司机分账比例)不进架构必验项;时序图只保留行程状态与结算字段,不画毛利模型。 低成本试水不要把全部中间件一次上到生产高可用形态。先保证可观测:健康检查、结构化日志、状态变迁表。等高可用需求出现再扩。
试水期观察指标(架构侧)
建议只观察四类指标:创建成功率、接单时延、状态不一致工单数、导出任务失败率。
指标用于决定是否扩面,不用于对外承诺单量。架构是否合格,看指标能否从系统取出,而不是看大屏是否炫。 对市区综合运营商,抽成顾虑应落在结算样例能否支持财务抽查。若样例字段缺失,记为架构缺口。
把缺口列入下一批定制前,先确认是否成品配置可解决,避免什么都开发。
从架构图回到可运行事实 架构图再完整,也要落到「今晚能否在客户虚拟机跑通一单」。建议架构师在评审结尾预留三十分钟做烟测口述:先起哪些容器、先导哪些种子数据、先用哪个账号叫单、期望在哪些日志出现 order_no。
口述能暴露文档里的假设,例如默认以为 Redis 已存在、或默认以为分站种子已导入。 对「代驾系统开发」而言,四端不是四个 App 图标,而是四类权限域与四类失败模式。用户端失败多在支付与定位;司机端失败多在抢单冲突与弱网回写;分站失败多在范围误解;总后台失败多在误操作无审计。架构把失败模式写清楚,运维才知道告警往哪导。 私有化源码交付后,客户会改配置。架构上要预留配置中心或至少 env 分层:演示、试水、生产。禁止三套环境共用一个库。共用库会让试水账号污染正式结算,也会让财务对账失去可信数据。
技术小结
- 代驾四端对应权限域与失败模式,而不是四个图标
- 结算导出按角色分列;时序图只保留行程状态与结算字段
- 试水先可观测,再谈高可用;环境分层,禁止共用库
- 光合同城代驾按国内单模块成品私有化交付。