DukeDuke
主页
文档转换
关于我们
主页
文档转换
关于我们
  • 代办项目

    • 风险评估文档
    • 开发计划文档
    • 项目需求文档
    • 概要设计文档
    • 详细设计文档
    • 数据库设计文档

车驾管服务系统概要设计说明书

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 术语表

术语定义
RBACRole-Based Access Control,基于角色的访问控制
JWTJSON Web Token,用于身份认证的令牌
API GatewayAPI网关,统一入口,路由转发
OSSObject Storage Service,对象存储服务
OCROptical Character Recognition,光学字符识别
CDNContent Delivery Network,内容分发网络
DDoSDistributed Denial of Service,分布式拒绝服务攻击
XSSCross-Site Scripting,跨站脚本攻击
CSRFCross-Site Request Forgery,跨站请求伪造

11.2 参考文档

  • 需求文档:docs/car_project/3-demand.md
  • 开发计划:docs/car_project/2-development-plan.md
  • 数据库设计:docs/car_project/sql/README.md

备注: 本概要设计说明书基于需求文档制定,后续可根据实际情况进行调整和优化。

最近更新:: 2026/1/20 13:02
Contributors: Duke
Prev
项目需求文档
Next
详细设计文档