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
|
# Service-Order 订单服务模块
## 模块概述
`service-order` 是微社区系统的核心订单处理模块,负责整个系统的订单受理、处理流程管理和事务协调。该模块采用Spring Boot + Spring Cloud架构,支持分布式部署和微服务治理。
## 技术架构
### 核心依赖
- **Spring Boot 2.x**: 应用框架
- **Spring Cloud**: 微服务治理
- **Zookeeper**: 分布式协调服务
- **java110-service**: 基础服务框架
- **java110-interface**: 接口定义
### 架构特点
- 基于事件驱动的订单处理机制
- 支持分布式事务协调
- 集成数据总线(DataBus)进行业务数据交换
- 支持异步处理和监听器模式
## 模块结构
```
service-order/
├── src/main/java/com/java110/order/
│ ├── api/ # API接口层
│ │ ├── CenterApi.java # 中心服务API(已废弃)
│ │ ├── HttpApi.java # HTTP服务API
│ │ ├── OIdApi.java # 订单ID服务API
│ │ ├── OrderApi.java # 订单主服务API
│ │ └── PrivilegeApi.java # 权限服务API
│ ├── dao/ # 数据访问层
│ │ ├── ICenterServiceDAO.java # 中心服务数据访问接口
│ │ ├── ICorderServiceDao.java # 订单服务数据访问接口
│ │ ├── IPrivilegeDAO.java # 权限数据访问接口
│ │ ├── ISnowflakeldWorker.java # 雪花算法ID生成器
│ │ └── impl/ # 数据访问实现
│ ├── listener/ # 事件监听器
│ │ ├── ConfirmTransactionOrderInfoToDataBusListener.java # 确认事务订单数据总线监听器
│ │ ├── DealUserIdListener.java # 用户ID处理监听器
│ │ ├── ReceiveRequestListener.java # 请求接收监听器
│ │ ├── RefreshStaffStoreIdFromSaveStoreInfoListener.java # 刷新员工店铺ID监听器
│ │ ├── ResponseStoreIdFromSaveStoreInfoListener.java # 响应店铺ID监听器
│ │ └── TransactionOrderInfoToDataBusListener.java # 事务订单数据总线监听器
│ ├── smo/ # 服务管理对象层
│ │ ├── IAsynNotifySubService.java # 异步通知订阅服务接口
│ │ ├── ICenterServiceSMO.java # 中心服务SMO接口
│ │ ├── IOIdServiceSMO.java # 订单ID服务SMO接口
│ │ ├── IOrderProcessServiceSMO.java # 订单处理服务SMO接口
│ │ ├── IOrderServiceSMO.java # 订单服务SMO接口
│ │ ├── IPrivilegeSMO.java # 权限服务SMO接口
│ │ └── impl/ # SMO实现类
│ ├── OrderServiceApplicationStart.java # 应用启动类
│ └── package-info.java # 包说明
├── src/main/resources/ # 资源配置文件
├── doc/ # 文档目录
├── target/ # 编译输出目录
├── pom.xml # Maven主配置
├── pom-boot.xml # Spring Boot配置
└── pom-cloud.xml # Spring Cloud配置
```
## 核心功能
### 1. 订单受理服务
- **OrderApi**: 提供统一的订单受理接口,支持订单预处理、确认提交等流程
- 支持多种订单处理状态:预提交、确认提交、正常处理
### 2. 中心服务协调
- **CenterApi**: 中心服务统一入口(已废弃,推荐使用OrderApi)
- 提供业务系统间的服务协调和透传机制
### 3. 事务管理
- 支持分布式事务协调
- 集成数据总线进行业务数据交换
- 提供事务订单到数据总线的监听处理
### 4. 权限控制
- **PrivilegeApi**: 权限验证服务
- 支持服务级别和应用级别的权限控制
### 5. 异步处理
- 支持异步通知订阅
- 基于监听器模式的事件处理机制
## API接口说明
### 1. 订单主服务接口
**Endpoint**: `/orderApi/service`
- **方法**: POST
- **功能**: 订单统一受理服务
- **参数**:
- `orderInfo`: 订单信息JSON
- `serviceCode`: 服务编码(请求头)
- `appId`: 应用ID(请求头)
### 2. 订单处理流程
- **预提交处理**: `orderProcess = ORDER_PROCESS_ORDER_PRE_SUBMIT`
- **确认提交处理**: `orderProcess = ORDER_PROCESS_ORDER_CONFIRM_SUBMIT`
- **正常处理**: 默认处理流程
### 3. 权限验证接口
**Endpoint**: `/privilegeApi/**`
- 提供权限验证和访问控制功能
## 事件监听器
### 1. 事务订单数据总线监听器
- **TransactionOrderInfoToDataBusListener**: 将事务订单信息传输到数据总线
- **ConfirmTransactionOrderInfoToDataBusListener**: 确认事务订单信息传输
### 2. 用户ID处理监听器
- **DealUserIdListener**: 处理用户ID相关业务逻辑
### 3. 店铺信息监听器
- **RefreshStaffStoreIdFromSaveStoreInfoListener**: 刷新员工店铺ID
- **ResponseStoreIdFromSaveStoreInfoListener**: 响应店铺ID信息
## 部署配置
### 1. 环境要求
- JDK 1.8+
- Maven 3.6+
- Zookeeper 3.4+
### 2. 启动配置
```bash
# Spring Boot 方式启动
mvn spring-boot:run -f pom-boot.xml
# Spring Cloud 方式启动
mvn spring-boot:run -f pom-cloud.xml
```
### 3. 关键配置项
- `zookeeper.connectString`: Zookeeper连接地址
- `databus.switch`: 数据总线开关(ON/OFF)
- `need.invoke.generate.id`: ID生成开关
## 依赖关系
### 内部依赖
- `java110-service`: 基础服务框架
- `java110-interface`: 接口定义
- `java110-core`: 核心组件
### 外部服务依赖
- `service-user`: 用户服务
- `service-community`: 社区服务
- `service-fee`: 费用服务
- `service-common`: 公共服务
- `service-job`: 任务服务
## 开发规范
### 1. 代码结构
- API层负责请求接收和参数验证
- SMO层负责业务逻辑处理
- DAO层负责数据访问
- Listener层负责事件处理
### 2. 异常处理
- 使用统一的异常处理机制
- 业务异常使用`BusinessException`
- 系统异常使用`SMOException`
### 3. 日志规范
- 使用SLF4J日志框架
- 关键业务流程记录详细日志
- 异常情况记录错误堆栈
## 注意事项
1. **CenterApi已废弃**: 推荐使用OrderApi进行订单处理
2. **数据总线开关**: 需要配置`databus.switch`开启数据总线功能
3. **ID生成**: 需要配置Zookeeper支持分布式ID生成
4. **权限验证**: 所有请求必须包含有效的`serviceCode`和`appId`
## 版本历史
- **v1.0**: 初始版本,提供基础订单处理功能
- **当前版本**: 支持分布式事务和数据总线集成
---
*最后更新: 2024年*
|