# HC项目管理系统 - 系统架构图 ## 一、系统概述 HC项目管理系统是一套SaaS物业管理平台,包含房产管理、业主管理、费用收缴(支持线上缴费)、报修管理、投诉建议、采购、巡检、停车、门禁、道闸、监控、工作流、问卷、公告等功能。 **技术栈**:Spring Boot 2.0.4 + Spring Cloud + MyBatis + MySQL + Redis + Feign **核心设计理念**:命令驱动架构(Command-Driven Architecture) --- ## 二、系统整体架构图 ``` ┌─────────────────────────────────────────────────────────────────────────────┐ │ 客户端层 (Client Layer) │ ├──────────────┬──────────────┬──────────────┬──────────────┬──────────────────┤ │ PC物业后台 │ 业主手机端 │ 物业手机端 │ 第三方系统 │ IoT设备 │ │ (Vue/React) │ (微信小程序) │ (App) │ (API调用) │ (门禁/道闸/充电桩) │ └──────┬───────┴──────┬───────┴──────┬───────┴──────┬───────┴──────┬───────────┘ │ │ │ │ │ └──────────────┴──────────────┴──────────────┴──────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────────────┐ │ 网关层 (Gateway Layer) │ │ service-api (统一入口) │ │ ┌──────────────┬──────────────┬──────────────┬──────────────┬─────────────┐ │ │ │ JWT认证过滤 │ 请求路由分发 │ Swagger文档 │ WebSocket │ 负载均衡 │ │ │ │ JwtFilter │ RestApi │ API文档自动生成│ 实时消息推送 │ Ribbon │ │ │ └──────────────┴──────────────┴──────────────┴──────────────┴─────────────┘ │ └────────────────────────────────┬────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────────────┐ │ 服务注册中心 (Registry) │ │ service-eureka │ │ ┌──────────────────────────────┐ │ │ │ 服务注册 / 服务发现 / 健康检查 │ │ │ └──────────────────────────────┘ │ └────────────────────────────────┬────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────────────┐ │ 核心业务服务层 (Business Service Layer) │ ├────────┬─────────┬─────────┬─────────┬──────────┬─────────┬────────┬────────┤ │用户服务 │社区服务 │费用服务 │订单服务 │ 账户服务 │商户服务 │通用服务 │OA服务 │ │service- │service- │service- │service- │service- │service- │service-│service-│ │user │community│fee │order │acct │store │common │oa │ │26个模块 │651文件 │23个模块 │事件驱动 │20个模块 │186命令 │35命令 │工作流 │ ├─────────┼─────────┼─────────┼─────────┼──────────┼─────────┼────────┼────────┤ │报表服务 │任务调度 │开发服务 │供应链 │ │ │ │ │ │service- │service- │service- │service- │ │ │ │ │ │report │job │dev │scm │ │ │ │ │ │86命令 │34命令 │ │ │ │ │ │ │ └─────────┴─────────┴─────────┴─────────┴──────────┴─────────┴────────┴────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────────────┐ │ 核心基础框架层 (Core Framework Layer) │ ├──────────────┬──────────────┬──────────────┬──────────────┬──────────────────┤ │ java110-core │ java110-bean │java110- │ java110-db │ java110-utils │ │ 核心框架 │ 数据实体(DTO │interface │ 数据库操作层 │ 工具类库 │ │ • 注解系统 │ /PO/VO) │ Feign接口定义 │ MyBatis映射 │ 通用工具函数 │ │ • AOP切面 │ │ (584个接口) │ │ │ │ • 缓存管理 │ │ │ │ │ │ • 事件机制 │ │ │ │ │ │ • 代理模式 │ │ │ │ │ └──────────────┴──────────────┴──────────────┴──────────────┴──────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────────────┐ │ 基础设施层 (Infrastructure Layer) │ ├────────────────┬────────────────┬────────────────┬───────────────────────────┤ │ MySQL 8.0 │ Redis 缓存 │ FTP文件存储 │ 阿里云/腾讯云 OSS │ │ 主数据库 │ 会话/数据缓存 │ 图片/文件 │ 云端存储 │ └────────────────┴────────────────┴────────────────┴───────────────────────────┘ ``` --- ## 三、命令驱动架构流程 ``` ┌──────────────────────────────┐ │ 客户端发起请求 │ │ POST /app/{serviceCode} │ │ {reqData: ...} │ └──────────────┬───────────────┘ │ ▼ ┌──────────────────────────────┐ │ 请求接收阶段 │ │ AppController (service-api) │ │ - 解析 serviceCode │ │ - 参数校验 │ └──────────────┬───────────────┘ │ ▼ ┌──────────────────────────────┐ │ 权限验证阶段 │ │ IPrivilegeSMO │ │ - JWT Token校验 │ │ - 白名单放行 │ │ - 权限检查 │ └──────────────┬───────────────┘ │ ▼ ┌──────────────────────────────┐ │ 服务分发阶段 │ │ IApiSMO → ApiSMOImpl │ │ - serviceCode路由到目标服务 │ │ - Feign远程调用 │ └──────────────┬───────────────┘ │ ▼ ┌──────────────────────────────┐ │ 业务处理阶段 │ │ @Java110Cmd 命令类 │ │ validate() → 参数验证 │ │ doCmd() → 业务逻辑 │ │ @Java110Transactional 事务 │ └──────────────┬───────────────┘ │ ▼ ┌──────────────────────────────┐ │ 响应返回阶段 │ │ ResultVo 统一响应封装 │ │ {code, msg, data} │ └──────────────────────────────┘ ``` --- ## 四、模块分层架构 ``` ┌──────────────────────────────────────────────────────────┐ │ api/ (API接口层) │ │ 对外提供 RESTful 接口,接收HTTP请求 │ ├──────────────────────────────────────────────────────────┤ │ cmd/ (命令处理层) ★核心★ │ │ 每个 @Java110Cmd 注解的命令类对应一个业务操作 │ │ - validate(): 参数校验 │ │ - doCmd(): 业务逻辑执行 │ ├──────────────────────────────────────────────────────────┤ │ bmo/ (业务模型对象层) │ │ 封装复杂业务逻辑,可跨模块复用 │ ├──────────────────────────────────────────────────────────┤ │ smo/ (服务管理对象层) │ │ 服务编排、调度管理、第三方服务集成 │ ├──────────────────────────────────────────────────────────┤ │ dao/ (数据访问层) │ │ MyBatis Mapper,数据库CRUD操作 │ ├──────────────────────────────────────────────────────────┤ │ MySQL / Redis / FTP / OSS │ │ 数据存储层 │ └──────────────────────────────────────────────────────────┘ ``` --- ## 五、服务间通信架构 ``` ┌─────────────────────┐ │ service-eureka │ │ 服务注册中心 │ └─────┬───────┬───────┘ │ │ ┌───────────────┘ └───────────────┐ ▼ ▼ ┌──────────────────────┐ ┌──────────────────────┐ │ 服务消费者 │ Feign调用 │ 服务提供者 │ │ @EnableFeignClients │◄─────────────►│ @RestController │ │ │ │ │ │ IUserInnerServiceSMO│ HTTP/REST │ UserApi.java │ │ IFeeInnerServiceSMO │ │ FeeApi.java │ │ ... (584 interfaces)│ │ ... │ └──────────────────────┘ └──────────────────────┘ 接口定义模块: java110-interface (独立jar包) - 所有微服务共享的 Feign 客户端接口定义 - FeignConfiguration: 统一配置(编解码、日志级别) - UserErrorDecoder: 统一异常处理 ``` --- ## 六、双模式部署架构 ``` ┌─────────────────────────────────────────────┐ │ Spring Boot 单体模式 │ │ │ │ springboot 模块统一启动所有业务服务 │ │ ┌─────────────────────────────────────┐ │ │ │ BootApplicationStart │ │ │ │ @SpringBootApplication │ │ │ │ scanBasePackages = { │ │ │ │ service-user, service-community, │ │ │ │ service-fee, service-order, │ │ │ │ service-acct, service-store, │ │ │ │ service-common, service-report, │ │ │ │ service-oa, service-job, │ │ │ │ service-dev, service-scm │ │ │ │ } │ │ │ └─────────────────────────────────────┘ │ │ 适用: 开发环境 / 小型部署 │ └─────────────────────────────────────────────┘ ┌─────────────────────────────────────────────┐ │ Spring Cloud 微服务模式 │ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │service- │ │service- │ │service- │ │ │ │user:8001 │ │fee:8002 │ │community:│ │ │ │ │ │ │ │8003 │ │ │ └──────────┘ └──────────┘ └──────────┘ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │service- │ │service- │ │ ... │ │ │ │order:8004│ │acct:8005 │ │ │ │ │ └──────────┘ └──────────┘ └──────────┘ │ │ ↑ 服务注册 ↑ 服务发现 ↑ │ │ └─────────┬─────────┘ │ │ service-eureka │ │ │ │ 适用: 生产环境 / 大规模部署 │ └─────────────────────────────────────────────┘ ``` --- ## 七、数据流转架构(DTO/PO/VO) ``` ┌────────────────────────────────────────────────────────────────┐ │ 数据流转示意图 │ │ │ │ 数据库 ◄──► PO对象 ◄──► DAO层 ◄──► BMO/SMO层 ◄──► DTO对象 │ │ (MySQL) (持久化) (MyBatis) (业务逻辑) (数据传输) │ │ │ │ ┌──────────────┐ │ │ DTO对象 ──转换──► │ VO对象 │ │ │ │ (视图对象) │ │ │ │ ResultVo │ │ │ └──────┬───────┘ │ │ │ │ │ ▼ │ │ ┌──────────────┐ │ │ │ 前端展示 │ │ │ │ (过滤敏感字段) │ │ │ └──────────────┘ │ │ │ │ 数据对象职责: │ │ • PO (Persistent Object) - 与数据库表字段一一对应, 用于增删改 │ │ • DTO (Data Transfer Object) - 数据传输对象, 用于复杂查询 │ │ • VO (View Object) - 视图对象, 用于前端返回, 控制数据安全 │ └────────────────────────────────────────────────────────────────┘ ``` --- ## 八、核心模块依赖关系 ``` ┌─────────────┐ │ pom.xml │ │ (父POM) │ │ Spring Boot │ │ 2.0.4 │ └──────┬──────┘ │ ┌────────────────────┼────────────────────┐ │ │ │ ▼ ▼ ▼ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ java110-bean│ │ java110- │ │ java110- │ │ 数据实体模块 │ │ utils │ │ core │ └──────┬──────┘ │ 工具模块 │ │ 核心框架模块 │ │ └──────┬──────┘ └──────┬──────┘ │ │ │ └────────────────────┼────────────────────┘ │ ┌─────────────────┼─────────────────┐ │ │ │ ▼ ▼ ▼ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ java110- │ │ java110- │ │ java110-db │ │ service │ │ interface │ │ 数据库模块 │ │ 服务基类模块 │ │ Feign接口模块 │ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │ │ │ │ └─────────┬───────┘ │ │ │ ▼ ▼ ┌────────────────────────────────────────────────┐ │ 12个业务微服务模块 │ │ service-user / service-community / service-fee │ │ service-order / service-acct / service-store │ │ service-common / service-report / service-oa │ │ service-job / service-dev / service-scm │ └────────────────────┬───────────────────────────┘ │ ▼ ┌─────────────────────┐ │ springboot │ │ 统一启动模块(可选) │ └─────────────────────┘ ``` --- ## 九、技术组件一览 | 分类 | 技术组件 | 用途 | |-------------|---------------------------------|------------------------| | 核心框架 | Spring Boot 2.0.4 | 应用基础框架 | | 微服务 | Spring Cloud, Eureka, Feign | 服务治理、远程调用 | | 数据持久化 | MyBatis 3.5.6, Druid 1.1.10 | ORM、连接池 | | 数据库 | MySQL 8.0.16 | 主数据存储 | | 缓存 | Redis (Spring Cache) | 数据缓存、Session | | API文档 | Swagger 2.5.0 | 在线API文档 | | 工作流 | Activiti 6.0.0 | 流程引擎 | | 任务调度 | Quartz | 定时任务 | | 支付 | 微信支付、支付宝、银联 | 线上缴费 | | 云服务 | 阿里云OSS、腾讯云SDK | 文件存储、云服务 | | 物联网 | 自研IoT协议 | 门禁、道闸、充电桩 | | 日志 | SLF4J + Logback 1.2.9 | 日志框架 | | 序列化 | FastJSON (Alibaba) | JSON处理 | | 安全 | JWT Token | 认证授权 | | 构建工具 | Maven 3.6+ | 项目构建 | --- > **文档版本**: v1.0 > **生成日期**: 2026年 > **项目地址**: https://gitee.com/wuxw7/MicroCommunity