系统架构
上门服务系统采用分层架构设计,将系统划分为核心层、业务层和扩展层,实现高内聚、低耦合的系统结构。
架构概述
┌─────────────────────────────────────────────────────────────┐
│ 前端层 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 客户端 │ │ 技师端 │ │ 管理后台 │ │ 门店管理 │ │
│ │ (UniApp) │ │ (UniApp) │ │ (Vue3) │ │ (Vue3) │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 接口层 │
│ RESTful API (Spring Boot 3.5) │
│ /api/client/* | /api/worker/* | /api/admin/* │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 业务层 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 核心层 (core) - 基础设施和核心业务 │ │
│ │ ├─ common: 通用配置、工具、异常处理 │ │
│ │ ├─ security: 安全认证、IP控制、限流、审计 │ │
│ │ ├─ infrastructure: 存储、支付、短信、消息、微信 │ │
│ │ ├─ system: 系统管理、用户、角色、菜单 │ │
│ │ ├─ member: 会员中心、用户、地址、收藏 │ │
│ │ ├─ store: 门店中心 │ │
│ │ ├─ settlement: 统一结算引擎 │ │
│ │ └─ decorate: 页面装修系统 │ │
│ └─────────────────────────────────────────────────────┘ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 业务层 (modules) - 核心业务模块 │ │
│ │ ├─ service: 家政服务管理 │ │
│ │ ├─ order: 订单中心 │ │
│ │ ├─ worker: 技师中心(培训、保险) │ │
│ │ └─ review: 评价中心 │ │
│ └─────────────────────────────────────────────────────┘ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 扩展层 (extensions) - 可插拔扩展模块 │ │
│ │ ├─ marketing: 营销中心(优惠券、签到、积分等) │ │
│ │ ├─ mall: 商城模块 │ │
│ │ ├─ enterprise: B2B企业客户 │ │
│ │ └─ statistics: 统计报表 │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 数据层 │
│ ├─ MySQL 8.0: 业务数据存储 │
│ ├─ Redis 6.0: 缓存、会话、锁 │
│ └─ 文件存储: 本地/阿里云OSS/腾讯云COS/MinIO等 │
└─────────────────────────────────────────────────────────────┘
核心层 (core)
common - 通用基础
- config: 各类配置类(MyBatis、Redis、Security等)
- result: 统一响应封装
Result<T>、PageResult<T> - exception: 全局异常处理、
BusinessException - base: 基类
BaseEntity(包含审计字段) - utils: 工具类集合
- annotation: 自定义注解
- aspect: AOP切面(操作日志、功能授权等)
security - 安全认证与防护
- JwtAuthenticationFilter: JWT认证过滤器
- SecurityUtils/LoginUser: 安全工具类和用户上下文
- IpBlacklist/IpWhitelist: IP黑白名单管理
- LoginSecurity: 登录安全审计
- SecurityLog: 安全日志记录
- RateLimitFilter: 接口限流
- SqlInjectionFilter: SQL注入防护
- EnterpriseContext: B2B企业上下文
infrastructure - 基础设施
- storage: 文件存储抽象(支持多种存储策略)
- sms: 短信服务(阿里云、腾讯云、Mock)
- pay: 支付抽象(微信支付、支付宝)
- message: 消息推送、WebSocket实时通信
- wechat: 微信生态(公众号、小程序)
- license: 授权管理、功能开关
- task: 定时任务
settlement - 统一结算引擎
- UnifiedSettlementService: 结算计算核心
- SettlementConfigResolver: 结算配置解析
- OrderSettlement: 结算记录实体
decorate - 页面装修
- 可视化页面编辑器
- 模板/主题管理
- TabBar配置
业务层 (modules)
service - 服务模块
- 服务分类管理
- 服务项目管理
- 服务规格管理
- 服务包管理
- 增值服务管理
order - 订单中心
- 订单生命周期管理
- 订单流程控制
- 退款处理
- 订单日志
worker - 技师中心
- worker: 技师管理、认证、排班
- training: 培训系统(课程、考试、证书)
- insurance: 保险管理(上传、审核、到期提醒)
review - 评价中心
- 服务评价
- 评价回复
- 评价统计
扩展层 (extensions)
marketing - 营销中心
- coupon: 优惠券系统
- banner: 轮播图/广告位
- activity: 营销活动(秒杀、拼团、满减)
- points: 积分系统
- signin: 签到系统(增强版,含补签、任务)
- recharge: 充值系统
- sms: 短信营销
- distribution: 分销系统(分销商、佣金、提现、团队)
mall - 商城模块
- 商品管理
- 分类管理
- SKU管理
- 购物车
- 商城订单
- 退款售后
enterprise - B2B企业客户
- 企业管理
- 员工管理
- 企业定价
- 账单结算
- 发票管理
statistics - 统计报表
- 数据看板
- 多维度报表
- 数据导出
数据库表命名规范
| 前缀 | 说明 | 示例 |
|---|---|---|
sys_ | 系统管理 | sys_user, sys_role, sys_menu |
c_ | 客户端用户 | c_user, c_user_address |
m_ | 会员中心 | m_coupon, m_coupon_record |
st_ | 门店中心 | st_store_worker_settle |
store_ | 门店 | store_store, store_settlement |
s_ | 服务模块 | s_category, s_service |
o_ | 订单模块 | o_order, o_order_log |
w_ | 技师模块 | w_worker, w_training_course |
r_ | 评价模块 | r_review |
mk_ | 营销中心 | mk_sms_template, mk_sign_in_record |
mall_ | 商城模块 | mall_product, mall_order |
b_ | B2B企业 | b_enterprise, b_enterprise_employee |
stat_ | 统计报表 | stat_daily, stat_category_daily |
wx_ | 微信服务 | wx_mp_menu, wx_mp_user |
distributor_ | 分销系统 | distributor_distributor, distributor_commission |
技术栈
后端
- 框架: Spring Boot 3.5
- ORM: MyBatis-Plus
- 安全: Spring Security + JWT
- 缓存: Redis
- 数据库: MySQL 8.0
- 任务调度: Spring @Scheduled
前端
- 管理后台: Vue 3 + Element Plus + Vite
- 移动端: UniApp + Vue 3 + Pinia
- 用户手册: VuePress 2
基础设施
- 容器化: Docker + Docker Compose
- 监控: Prometheus + Grafana
- 日志: Logback
