车驾管服务系统概要设计说明书
1. 系统概述
1.1 系统简介
车驾管服务系统是一套集成化、智能化的车驾管业务管理平台,旨在为车主提供车辆上牌、过户、年检、违章处理等代办服务,支持多角色协作、流程自动化、数据统计分析,提升服务效率和管理水平。
1.2 设计目标
业务目标:
- 实现业务流程数字化,提升服务效率
- 实现信息透明化,提升客户体验
- 实现服务智能化,支持自动化分配和处理
- 支持多渠道订单接入(客户直接下单、渠道API下单)
技术目标:
- 系统高可用性:系统可用性 ≥ 99.5%
- 系统高性能:页面响应时间 ≤ 2秒,API接口响应时间 ≤ 1秒
- 系统高安全性:数据加密传输和存储,完善的权限控制
- 系统可扩展性:支持业务扩展和功能扩展
- 系统可维护性:代码规范、文档完善、易于维护
1.3 设计原则
- 模块化设计:系统采用模块化设计,各模块相对独立,便于开发和维护
- 分层架构:采用分层架构,前后端分离,接口标准化
- 高内聚低耦合:模块内部高内聚,模块之间低耦合
- 可扩展性:系统设计考虑未来扩展需求,支持功能扩展和性能扩展
- 安全性优先:系统设计优先考虑安全性,包括数据安全、接口安全、权限安全
- 用户体验:注重用户体验,界面友好,操作简便
- 标准化:遵循行业标准和最佳实践,代码规范统一
1.4 系统边界
系统范围:
- 后台管理系统:支持管理员、财务人员、运营人员、客服人员、检测站人员、渠道等角色使用
- 客户端:支持客户注册、下单、支付、查询、评价等功能
- 代驾师傅端:支持代驾人员注册、接单、服务、结算等功能
- 渠道API接口:支持渠道通过API接口对接,发送订单、查询订单状态等
系统不包含:
- 第三方支付平台(通过接口对接)
- 第三方短信服务(通过接口对接)
- 第三方OCR服务(通过接口对接)
- 第三方地图服务(通过接口对接)
- 车辆检测设备(由检测站自行管理)
1.5 用户角色
| 角色 | 描述 | 使用系统 |
|---|---|---|
| 超级管理员 | 系统最高权限,负责系统配置、权限分配、全局管理、数据维护 | 后台管理系统 |
| 管理员 | 系统管理、用户管理、权限分配、业务审核、数据统计 | 后台管理系统 |
| 渠道 | 通过API接口对接,向系统发送订单,可登录后台管理系统查看订单状态和结算信息 | 后台管理系统、API接口 |
| 客户 | 登录客户端提交代办需求、上传资料、订单查询、进度跟踪、服务评价 | 客户端 |
| 财务人员 | 资金结算、财务报表管理、收支审核、对账管理、发票管理 | 后台管理系统 |
| 运营人员 | 业务数据分析、公告发布、活动管理、客户服务、业务监控 | 后台管理系统 |
| 代驾人员 | 登录司机端接收代驾订单、提供代驾服务、上传服务凭证、查看收入结算 | 代驾师傅端 |
| 检测站人员 | 可登录后台管理系统、查询订单、上传检测报告、查看业务统计 | 后台管理系统 |
| 客服人员 | 处理客户咨询、投诉处理、订单跟进、客户回访、问题反馈 | 后台管理系统 |
2. 系统架构设计
2.1 总体架构
系统采用前后端分离的微服务架构,总体架构如下:
┌─────────────────────────────────────────────────────────────┐
│ 前端层 │
├──────────────┬──────────────┬──────────────┬──────────────┤
│ 后台管理系统 │ 客户端 │ 代驾师傅端 │ 渠道API调用 │
│ (Web端) │ (移动端/Web) │ (移动端) │ (HTTP) │
└──────────────┴──────────────┴──────────────┴──────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ API网关层 │
│ (统一入口、路由、限流、认证、日志) │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 业务服务层 │
├──────────┬──────────┬──────────┬──────────┬──────────┤
│ 用户服务 │ 订单服务 │ 支付服务 │ 分配服务 │ 结算服务 │
│ 权限服务 │ 渠道服务 │ 代驾服务 │ 评价服务 │ 客服服务 │
│ 通知服务 │ 统计服务 │ 文件服务 │ ... │ │
└──────────┴──────────┴──────────┴──────────┴──────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 数据层 │
├──────────────┬──────────────┬──────────────┬──────────────┤
│ MySQL │ Redis │ 文件存储 │ 消息队列 │
│ (主数据库) │ (缓存) │ (OSS/COS) │ (RabbitMQ) │
└──────────────┴──────────────┴──────────────┴──────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 第三方服务 │
├──────────────┬──────────────┬──────────────┬──────────────┤
│ 支付服务 │ 短信服务 │ OCR服务 │ 地图服务 │
│ (微信/支付宝) │ (阿里云/腾讯) │ (阿里云/腾讯) │ (高德/百度) │
└──────────────┴──────────────┴──────────────┴──────────────┘
2.2 技术架构
2.2.1 前端技术架构
后台管理系统:
- 框架:Vue 3 + TypeScript
- UI组件库:Element Plus
- 状态管理:Pinia
- 路由:Vue Router
- HTTP客户端:Axios
- 构建工具:Vite
客户端:
- 移动端:Vue 3 + Vant + TypeScript
- Web端:Vue 3 + Element Plus + TypeScript
- 状态管理:Pinia
- 路由:Vue Router
- HTTP客户端:Axios
- 构建工具:Vite
代驾师傅端:
- 框架:Vue 3 + Vant + TypeScript
- 状态管理:Pinia
- 路由:Vue Router
- HTTP客户端:Axios
- 构建工具:Vite
2.2.2 后端技术架构
核心框架:
- Spring Boot 2.7+
- Spring Cloud(可选,用于微服务治理)
- Spring Security(安全框架)
- MyBatis Plus(ORM框架)
数据存储:
- MySQL 8.0+(主数据库)
- Redis 6.0+(缓存、分布式锁、消息队列)
消息队列:
- RabbitMQ(异步任务、消息通知)
文件存储:
- 阿里云OSS / 腾讯云COS(文件存储)
API文档:
- Swagger / Knife4j(API文档生成)
2.2.3 第三方服务集成
支付服务:
- 微信支付
- 支付宝支付
短信服务:
- 阿里云短信
- 腾讯云短信
OCR服务:
- 阿里云OCR
- 腾讯云OCR
地图服务:
- 高德地图
- 百度地图
2.3 系统分层架构
系统采用经典的分层架构,分为以下层次:
┌─────────────────────────────────────────┐
│ 表现层 (Presentation Layer) │
│ - 后台管理系统前端 │
│ - 客户端前端 │
│ - 代驾师傅端前端 │
│ - API接口 │
└─────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ API网关层 (Gateway Layer) │
│ - 统一入口 │
│ - 路由转发 │
│ - 认证授权 │
│ - 限流控制 │
│ - 日志记录 │
└─────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ 业务服务层 (Service Layer) │
│ - 用户服务 │
│ - 订单服务 │
│ - 支付服务 │
│ - 分配服务 │
│ - 结算服务 │
│ - 其他业务服务 │
└─────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ 数据访问层 (Data Access Layer) │
│ - MyBatis Plus │
│ - Redis客户端 │
│ - 消息队列客户端 │
│ - 文件存储客户端 │
└─────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ 数据层 (Data Layer) │
│ - MySQL数据库 │
│ - Redis缓存 │
│ - 文件存储 │
│ - 消息队列 │
└─────────────────────────────────────────┘
2.4 部署架构
2.4.1 部署环境
- 开发环境:用于开发人员开发和调试
- 测试环境:用于功能测试、集成测试、性能测试
- 预发布环境:用于上线前的最后验证
- 生产环境:正式运行环境
2.4.2 部署方案
┌─────────────────────────────────────────────────────────┐
│ 负载均衡器 (Nginx) │
└─────────────────────────────────────────────────────────┘
│
┌───────────┼───────────┐
▼ ▼ ▼
┌───────────┐ ┌───────────┐ ┌───────────┐
│ Web服务器1 │ │ Web服务器2 │ │ Web服务器3 │
│ (应用服务) │ │ (应用服务) │ │ (应用服务) │
└───────────┘ └───────────┘ └───────────┘
│ │ │
└───────────┼───────────┘
▼
┌───────────────────┐
│ 数据库集群 │
│ (MySQL主从) │
└───────────────────┘
│
┌───────────────────┐
│ Redis集群 │
│ (主从+哨兵) │
└───────────────────┘
2.4.3 服务器配置建议
应用服务器:
- CPU:4核以上
- 内存:8GB以上
- 硬盘:100GB以上(SSD)
- 操作系统:Linux(CentOS 7+ / Ubuntu 20.04+)
数据库服务器:
- CPU:8核以上
- 内存:16GB以上
- 硬盘:500GB以上(SSD)
- 操作系统:Linux
缓存服务器:
- CPU:4核以上
- 内存:8GB以上
- 硬盘:50GB以上(SSD)
- 操作系统:Linux
3. 功能模块设计
3.1 模块划分
系统功能模块划分为以下层次:
车驾管服务系统
├── 基础支撑模块
│ ├── 用户认证与权限管理
│ ├── 基础数据管理
│ ├── 系统管理
│ └── 日志管理
├── 核心业务模块
│ ├── 服务管理
│ ├── 客户管理
│ ├── 车辆管理
│ ├── 订单管理(核心)
│ ├── 检测站管理
│ ├── 渠道管理
│ └── 代驾管理
├── 业务支撑模块
│ ├── 支付管理
│ ├── 结算管理
│ ├── 评价管理
│ ├── 回访管理
│ ├── 客服管理
│ └── 通知管理
└── 前端应用
├── 后台管理系统
├── 客户端
└── 代驾师傅端
3.2 核心模块设计
3.2.1 订单管理模块(核心)
模块职责:
- 订单全生命周期管理
- 订单状态流转控制
- 订单分配管理
- 订单支付管理
- 订单进度跟踪
核心功能:
- 订单创建(客户下单、渠道API下单、手动创建)
- 订单状态流转(状态机模式)
- 订单分配(代驾、接待员、检测站自动/手动分配)
- 订单支付(支付、退款)
- 订单进度管理
- 订单材料管理
- 订单异常处理
技术要点:
- 使用状态机模式管理订单状态流转
- 使用分布式锁保证订单创建和分配的并发安全
- 使用消息队列实现订单分配、通知等异步处理
- 使用Redis缓存订单分配规则和代驾人员状态
3.2.2 渠道管理模块
模块职责:
- 渠道信息管理
- 渠道API对接
- 渠道订单接收和处理
- 渠道数据统计
核心功能:
- 渠道基础信息管理
- API密钥管理
- API接口文档管理
- 订单接收和验证
- 订单状态回调
- 渠道数据统计
技术要点:
- API签名验证(HMAC-SHA256)
- API限流(令牌桶算法)
- IP白名单验证
- 订单状态回调重试机制
- API调用日志记录
3.2.3 订单分配模块
模块职责:
- 代驾人员分配
- 接待员分配
- 检测站分配
核心功能:
- 自动分配规则配置
- 自动分配算法实现
- 手动分配
- 分配记录查询
技术要点:
- 分配算法:距离计算、负载均衡、评价权重
- 使用Redis缓存代驾人员状态和位置信息
- 使用消息队列实现异步分配
- 分配超时处理和重新分配机制
3.2.4 支付管理模块
模块职责:
- 支付处理
- 退款处理
- 支付记录管理
核心功能:
- 支付方式管理
- 支付接口调用
- 支付回调处理
- 退款申请和处理
- 支付记录查询
技术要点:
- 支付接口封装(微信支付、支付宝支付)
- 支付回调验证和幂等性处理
- 支付超时自动取消
- 退款流程和状态跟踪
3.2.5 结算管理模块
模块职责:
- 结算规则配置
- 结算单生成
- 结算审核
- 结算支付
核心功能:
- 结算规则管理(按订单、按比例、按固定金额)
- 结算单自动生成
- 结算单审核
- 结算支付
- 结算统计
技术要点:
- 定时任务生成结算单
- 结算金额计算和校验
- 结算审核流程
- 结算支付状态跟踪
3.3 模块间交互
3.3.1 订单创建流程
客户端/渠道API → API网关 → 订单服务
│
├→ 验证服务(验证订单数据)
├→ 价格服务(计算订单金额)
├→ 客户服务(验证客户信息)
├→ 车辆服务(验证车辆信息)
└→ 订单服务(创建订单)
3.3.2 订单分配流程
订单服务 → 分配服务
│
├→ 代驾服务(筛选代驾人员)
├→ 接待员服务(筛选接待员)
├→ 检测站服务(筛选检测站)
├→ 通知服务(发送分配通知)
└→ 订单服务(更新订单状态)
3.3.3 支付流程
客户端 → API网关 → 支付服务
│
├→ 订单服务(验证订单)
├→ 第三方支付(发起支付)
├→ 支付回调处理
├→ 订单服务(更新订单状态)
└→ 通知服务(发送支付通知)
4. 数据库设计概述
4.1 数据库设计原则
- 规范化设计:遵循数据库设计范式,减少数据冗余
- 性能优化:合理设计索引,优化查询性能
- 数据安全:敏感数据加密存储,重要数据备份
- 可扩展性:表结构设计考虑未来扩展需求
- 数据一致性:使用事务保证数据一致性
4.2 核心数据模型
4.2.1 用户相关表
- 管理员表 (sys_admin):存储管理员基本信息
- 角色表 (sys_role):存储角色信息
- 菜单表 (sys_menu):存储菜单信息
- 权限表 (sys_permission):存储权限信息
- 客户表 (customer):存储客户基本信息
- 代驾人员表 (driver):存储代驾人员信息
4.2.2 业务相关表
- 订单表 (order):存储订单基本信息
- 订单状态流转表 (order_status_log):记录订单状态变更历史
- 订单材料表 (order_material):存储订单材料信息
- 订单分配表 (order_assign):记录订单分配信息
- 支付记录表 (payment_record):存储支付记录
- 退款记录表 (refund_record):存储退款记录
4.2.3 基础数据表
- 服务分类表 (service_category):存储服务分类信息
- 服务表 (service):存储服务信息
- 车辆表 (vehicle):存储车辆信息
- 检测站表 (inspection_station):存储检测站信息
- 渠道表 (channel):存储渠道信息
- 地区表 (region):存储地区信息
4.2.4 业务支撑表
- 评价表 (evaluation):存储评价信息
- 回访表 (visit):存储回访记录
- 结算单表 (settlement):存储结算单信息
- 通知表 (notice):存储通知信息
- 日志表 (log):存储操作日志
4.3 数据库表关系
- 订单与客户:多对一关系(一个客户可以有多个订单)
- 订单与车辆:多对一关系(一个车辆可以有多个订单)
- 订单与渠道:多对一关系(一个渠道可以有多个订单,可选)
- 订单与代驾人员:多对一关系(一个代驾人员可以有多个订单,可选)
- 订单与接待员:多对一关系(一个接待员可以有多个订单)
- 订单与检测站:多对一关系(一个检测站可以有多个订单,可选)
- 订单与支付记录:一对多关系(一个订单可以有多个支付记录,如退款)
- 订单与评价:一对一关系(一个订单可以有一个评价)
4.4 索引设计
- 主键索引:所有表都有主键索引
- 唯一索引:订单号、手机号、身份证号等唯一字段
- 普通索引:外键字段、常用查询字段、排序字段
- 组合索引:多字段组合查询场景
4.5 数据分区策略
- 订单表:按时间分区(按月分区),便于历史数据查询和维护
- 日志表:按时间分区(按月分区),定期清理历史日志
- 支付记录表:按时间分区(按月分区)
5. 接口设计
5.1 接口设计原则
- RESTful风格:遵循RESTful API设计规范
- 统一响应格式:所有接口返回统一的响应格式
- 版本控制:支持API版本管理
- 接口文档:使用Swagger自动生成API文档
- 接口安全:接口需要认证和授权,敏感接口需要签名验证
5.2 接口分类
5.2.1 内部接口(后台管理系统、客户端、代驾师傅端)
- 认证接口:登录、登出、刷新token
- 用户接口:用户信息查询、修改
- 订单接口:订单创建、查询、更新、取消
- 支付接口:支付、退款
- 其他业务接口:各业务模块的CRUD接口
5.2.2 外部接口(渠道API)
- 订单创建接口:渠道通过此接口创建订单
- 订单查询接口:渠道查询订单状态和详情
- 订单状态回调接口:系统回调渠道,通知订单状态变更
5.3 接口规范
5.3.1 请求格式
- 请求方法:GET、POST、PUT、DELETE
- 请求头:
- Content-Type: application/json
- Authorization: Bearer {token}
- X-API-Version: v1.0
- 请求参数:
- GET请求:URL参数
- POST/PUT请求:JSON格式请求体
5.3.2 响应格式
{
"code": 200,
"message": "success",
"data": {},
"timestamp": 1234567890
}
- code:响应码(200成功,其他为错误码)
- message:响应消息
- data:响应数据
- timestamp:时间戳
5.3.3 错误码定义
- 200:成功
- 400:请求参数错误
- 401:未授权(token无效或过期)
- 403:无权限
- 404:资源不存在
- 429:请求频率超限
- 500:服务器内部错误
5.4 渠道API接口设计
5.4.1 订单创建接口
- 接口地址:POST /api/v1/channel/order/create
- 认证方式:API Key + Secret签名
- 请求参数:
- 客户信息(姓名、手机号、身份证号等)
- 车辆信息(车牌号、品牌、型号等)
- 服务信息(服务类型、服务地址、服务时间等)
- 订单信息(订单类型、订单金额等)
- 响应参数:
- 订单号
- 订单状态
- 创建时间
5.4.2 订单查询接口
- 接口地址:GET /api/v1/channel/order/query
- 认证方式:API Key + Secret签名
- 请求参数:
- 订单号(必填)
- 响应参数:
- 订单基本信息
- 订单状态
- 订单进度
- 订单金额
5.4.3 订单状态回调接口
- 接口类型:系统主动回调渠道
- 回调地址:渠道提供
- 回调参数:
- 订单号
- 订单状态
- 状态变更时间
- 状态变更原因
- 回调重试:失败后自动重试,最多3次
6. 安全设计
6.1 认证与授权
6.1.1 用户认证
认证方式:
- JWT Token认证(后台管理系统、客户端、代驾师傅端)
- API Key + Secret签名认证(渠道API)
Token管理:
- Token有效期:24小时
- Refresh Token:7天
- Token刷新机制:自动刷新或手动刷新
登录安全:
- 登录失败次数限制(5次)
- 账号锁定机制(失败5次后锁定30分钟)
- 验证码验证(登录、敏感操作)
- 异地登录提醒
6.1.2 权限控制
- RBAC模型:基于角色的访问控制
- 权限层级:
- 菜单权限:控制菜单显示
- 按钮权限:控制按钮操作
- 数据权限:控制数据访问范围
- 权限继承:部门权限、岗位权限继承
6.1.3 API安全
签名验证:
- 算法:HMAC-SHA256
- 签名参数:时间戳、随机数、请求参数
- 签名验证:系统验证请求签名,确保请求未被篡改
限流控制:
- 限流算法:令牌桶算法
- 限流策略:按渠道、按IP、按用户限流
- 限流阈值:可配置(如每分钟100次)
IP白名单:
- 支持IP白名单配置
- 白名单验证:接口调用时验证IP是否在白名单内
6.2 数据安全
6.2.1 数据加密
传输加密:
- HTTPS协议:所有接口使用HTTPS
- TLS 1.2+:使用TLS 1.2及以上版本
存储加密:
- 敏感数据加密:身份证号、银行卡号等敏感数据加密存储
- 加密算法:AES-256
- 密钥管理:密钥单独存储,定期轮换
6.2.2 数据脱敏
- 日志脱敏:日志中敏感数据脱敏显示
- 接口返回脱敏:接口返回数据中敏感字段脱敏
- 脱敏规则:手机号、身份证号、银行卡号等按规则脱敏
6.2.3 数据备份
备份策略:
- 全量备份:每天一次
- 增量备份:每小时一次
- 备份保留:保留30天
备份验证:定期验证备份数据的完整性和可恢复性
6.3 系统安全
6.3.1 防攻击
- SQL注入防护:使用参数化查询,防止SQL注入
- XSS防护:输入输出过滤,防止XSS攻击
- CSRF防护:使用CSRF Token,防止CSRF攻击
- DDoS防护:使用限流和IP黑名单,防止DDoS攻击
6.3.2 安全审计
- 操作日志:记录所有重要操作(创建、修改、删除)
- 登录日志:记录所有登录尝试(成功、失败)
- 异常日志:记录系统异常和安全事件
- 日志分析:定期分析日志,发现安全威胁
7. 性能设计
7.1 性能指标
响应时间:
- 页面响应时间 ≤ 2秒
- API接口响应时间 ≤ 1秒
- 数据库查询响应时间 ≤ 500ms
并发能力:
- 支持不少于500人同时在线
- 支持每秒100+订单创建
- 支持每秒1000+接口调用
吞吐量:
- 订单处理能力:1000单/小时
- 支付处理能力:500笔/小时
7.2 性能优化策略
7.2.1 数据库优化
索引优化:
- 合理设计索引,避免过多索引
- 使用组合索引优化多字段查询
- 定期分析慢查询,优化索引
查询优化:
- 避免全表扫描
- 使用分页查询,避免一次性查询大量数据
- 使用连接查询替代子查询(适当场景)
- 使用EXPLAIN分析查询计划
7.2.2 缓存策略
Redis缓存:
- 热点数据缓存:服务列表、地区数据、字典数据等
- 用户信息缓存:登录用户信息、权限信息
- 订单状态缓存:订单状态、订单进度
- 代驾人员状态缓存:在线状态、位置信息
缓存更新策略:
- 缓存失效:数据更新时删除缓存
- 缓存预热:系统启动时预加载热点数据
- 缓存穿透防护:使用布隆过滤器或空值缓存
7.2.3 异步处理
消息队列:
- 订单分配:异步分配订单,提升响应速度
- 短信发送:异步发送短信,避免阻塞
- 订单状态回调:异步回调渠道,提升性能
- 统计计算:异步计算统计数据
定时任务:
- 结算单生成:定时生成结算单
- 数据统计:定时计算统计数据
- 数据清理:定时清理历史数据
7.2.4 前端优化
资源优化:
- 代码压缩:JavaScript、CSS代码压缩
- 图片优化:图片压缩、懒加载
- CDN加速:静态资源使用CDN
加载优化:
- 路由懒加载:按需加载路由组件
- 组件懒加载:按需加载组件
- 预加载:预加载关键资源
7.3 性能监控
监控指标:
接口响应时间
- 接口调用次数
- 接口错误率
- 数据库查询时间
- 缓存命中率
- 系统资源使用率(CPU、内存、磁盘、网络)
监控工具:
- Prometheus + Grafana(系统监控)
- ELK(日志分析)
- APM工具(应用性能监控)
8. 非功能设计
8.1 可靠性设计
8.1.1 高可用性
服务高可用:
- 多实例部署:应用服务多实例部署,负载均衡
- 健康检查:定期健康检查,自动剔除异常实例
- 故障转移:主从切换,自动故障转移
数据库高可用:
- 主从复制:MySQL主从复制
- 读写分离:读操作走从库,写操作走主库
- 自动故障转移:主库故障时自动切换到从库
8.1.2 容错处理
异常处理:
- 统一异常处理:全局异常处理器
- 异常分类:业务异常、系统异常、第三方服务异常
- 异常恢复:自动重试、降级处理
服务降级:
- 非核心功能降级:非核心功能异常时降级处理
- 第三方服务降级:第三方服务异常时使用备用方案
8.2 可扩展性设计
8.2.1 水平扩展
应用扩展:
- 无状态设计:应用服务无状态,便于水平扩展
- 负载均衡:使用负载均衡器分发请求
数据库扩展:
- 分库分表:数据量大时进行分库分表
- 读写分离:通过读写分离提升性能
8.2.2 功能扩展
- 模块化设计:模块相对独立,便于功能扩展
- 插件化设计:支持插件化扩展(如支付方式、通知方式)
- 配置化:业务规则配置化,便于调整
8.3 可维护性设计
8.3.1 代码规范
- 编码规范:制定并严格执行编码规范
- 代码审查:所有代码必须经过Code Review
- 代码注释:关键代码添加注释
8.3.2 文档完善
- 技术文档:架构设计、数据库设计、API文档
- 用户文档:用户操作手册、管理员手册
- 运维文档:部署文档、运维手册、故障处理手册
8.3.3 日志管理
- 日志级别:DEBUG、INFO、WARN、ERROR
- 日志格式:统一日志格式,便于分析
- 日志存储:日志集中存储,定期清理
9. 技术选型说明
9.1 后端技术选型
9.1.1 Spring Boot
- 选型理由:
- 成熟稳定,社区活跃
- 快速开发,约定优于配置
- 丰富的生态,集成方便
- 性能优秀,适合企业级应用
9.1.2 MySQL
- 选型理由:
- 成熟稳定,使用广泛
- 性能优秀,支持高并发
- 功能完善,支持事务、索引等
- 社区活跃,文档完善
9.1.3 Redis
- 选型理由:
- 高性能,支持高并发
- 数据结构丰富,支持多种场景
- 支持持久化,数据安全
- 支持集群,可扩展
9.2 前端技术选型
9.2.1 Vue 3
- 选型理由:
- 性能优秀,响应式系统优化
- 生态丰富,组件库完善
- 学习成本低,开发效率高
- TypeScript支持好
9.2.2 Element Plus / Vant
- 选型理由:
- 组件丰富,满足业务需求
- 文档完善,易于使用
- 社区活跃,问题解决快
- 定制化支持好
9.3 第三方服务选型
9.3.1 支付服务
- 微信支付:用户使用广泛,支付成功率高
- 支付宝支付:用户使用广泛,支付成功率高
9.3.2 短信服务
- 阿里云短信:稳定可靠,价格合理
- 腾讯云短信:稳定可靠,价格合理
9.3.3 OCR服务
- 阿里云OCR:识别准确率高,支持多种证件
- 腾讯云OCR:识别准确率高,支持多种证件
10. 开发规范
10.1 代码规范
命名规范:
- 类名:大驼峰(PascalCase)
- 方法名、变量名:小驼峰(camelCase)
- 常量:大写下划线(UPPER_SNAKE_CASE)
- 包名:小写,点分隔
注释规范:
- 类注释:说明类的作用、作者、创建时间
- 方法注释:说明方法的作用、参数、返回值
- 复杂逻辑注释:说明业务逻辑
10.2 接口规范
URL规范:
- 使用RESTful风格
- 使用名词,不使用动词
- 使用小写,单词间使用连字符
参数规范:
- 参数命名:小驼峰
- 必填参数:明确标注
- 参数验证:接口层验证参数
10.3 数据库规范
表命名:
- 使用小写,单词间使用下划线
- 表名要有意义,能表达表的用途
字段命名:
- 使用小写,单词间使用下划线
- 字段名要有意义,能表达字段的用途
索引命名:
- 主键索引:pk_{table_name}
- 唯一索引:uk_{table_name}_{field_name}
- 普通索引:idx_{table_name}_{field_name}
11. 附录
11.1 术语表
| 术语 | 定义 |
|---|---|
| RBAC | Role-Based Access Control,基于角色的访问控制 |
| JWT | JSON Web Token,用于身份认证的令牌 |
| API Gateway | API网关,统一入口,路由转发 |
| OSS | Object Storage Service,对象存储服务 |
| OCR | Optical Character Recognition,光学字符识别 |
| CDN | Content Delivery Network,内容分发网络 |
| DDoS | Distributed Denial of Service,分布式拒绝服务攻击 |
| XSS | Cross-Site Scripting,跨站脚本攻击 |
| CSRF | Cross-Site Request Forgery,跨站请求伪造 |
11.2 参考文档
- 需求文档:docs/car_project/3-demand.md
- 开发计划:docs/car_project/2-development-plan.md
- 数据库设计:docs/car_project/sql/README.md
备注: 本概要设计说明书基于需求文档制定,后续可根据实际情况进行调整和优化。
