Blame view

docs/系统架构图.md 26.1 KB
88e030b7   王彪总   init project
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
  # 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