Blame view

service-common/README.md 8.75 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
  # Service-Common 模块技术文档
  
  ## 模块概述
  Service-Common 是 MicroCommunity 微服务架构中的通用服务模块,提供社区管理系统中的通用功能服务。该模块采用命令驱动架构设计,通过35个核心命令接口为系统提供广告管理、区域管理、文件管理、工作流引擎、充电设备管理、门禁密钥管理等通用业务能力。
  
  ## 技术架构
  
  ### 核心架构
  - **框架**: Spring Boot + Spring Cloud
  - **架构模式**: 命令驱动架构 (Command-Driven Architecture)
  - **数据库**: MySQL + MyBatis
  - **工作流引擎**: Activiti 6.0.0
  - **文件存储**: 支持本地存储和OSS云存储
  
  ### 项目结构
  ```
  service-common/
  ├── src/main/java/com/java110/common/
  │   ├── cmd/                    # 命令接口层 (35个核心接口)
  │   ├── activity/               # 活动管理
  │   ├── api/                    # API接口
  │   ├── bmo/                    # 业务模型对象
  │   ├── dao/                    # 数据访问层
  │   ├── smo/                    # 服务管理对象
  │   ├── thread/                 # 线程管理
  │   └── CommonServiceApplicationStart.java
  ├── .bpmn/                     # 工作流定义文件
  └── pom.xml                    # Maven配置
  ```
  
  ### 依赖关系
  ```xml
  <dependencies>
      <dependency>
          <groupId>com.java110</groupId>
          <artifactId>java110-service</artifactId>
      </dependency>
      <dependency>
          <groupId>org.activiti</groupId>
          <artifactId>activiti-bpmn-layout</artifactId>
      </dependency>
      <dependency>
          <groupId>org.activiti</groupId>
          <artifactId>activiti-spring-boot-starter-basic</artifactId>
      </dependency>
      <!-- 其他依赖... -->
  </dependencies>
  ```
  
  ## 核心命令接口清单
  
  ### 1. 广告管理 (advert)
  - **SaveAdvertCmd**: 创建广告
    - 功能: 创建新的广告信息,支持图片和视频广告
    - 调用方式: POST /app/advert.saveAdvert
    - 业务场景: 物业管理人员创建社区广告
  
  - **ListAdvertsCmd**: 查询广告列表
    - 功能: 分页查询广告信息,支持按类型筛选
    - 调用方式: POST /app/advert.listAdverts
    - 业务场景: 前端展示广告列表
  
  - **UpdateAdvertCmd**: 更新广告
  - **DeleteAdvertCmd**: 删除广告
  - **ListAdvertItemsCmd**: 查询广告项
  - **ListAdvertPhotoCmd**: 查询广告图片
  - **ListAdvertPhotoAndVediosCmd**: 查询广告图片和视频
  
  ### 2. 应用密钥管理 (applicationKey)
  - **SaveApplicationKeyCmd**: 创建应用密钥
    - 功能: 生成门禁访问密钥,支持临时密码和长期密钥
    - 调用方式: POST /app/applicationKey.saveApplicationKey
    - 业务场景: 业主申请门禁访问权限
  
  - **ApplyApplicationKeyCmd**: 申请应用密钥
  - **ApplyVisitorApplicationKeyCmd**: 访客申请密钥
  - **AuditApplicationKeyCmd**: 审核应用密钥
  - **AuthApplicationKeyCmd**: 认证应用密钥
  - **ListApplicationKeysCmd**: 查询密钥列表
  - **UpdateApplicationKeyCmd**: 更新密钥信息
  - **DeleteApplicationKeyCmd**: 删除密钥
  
  ### 3. 区域管理 (area)
  - **ListAreas**: 查询区域列表
    - 功能: 获取行政区划信息
    - 调用方式: POST /app/area.listAreas
    - 业务场景: 地址选择、区域统计
  
  - **QueryAreaTreeCmd**: 查询区域树
  - **SaveCityAreaCmd**: 保存城市区域
  - **UpdateCityAreaCmd**: 更新城市区域
  - **DeleteCityAreaCmd**: 删除城市区域
  
  ### 4. 考勤管理 (attendanceClasses)
  - 提供考勤班次管理功能
  
  ### 5. 用户审核 (auditUser)
  - 提供用户信息审核功能
  
  ### 6. 车辆进出管理 (carInout)
  - 提供车辆进出记录管理
  
  ### 7. 充电设备管理 (chargeMachine)
  - **SaveChargeMachineCmd**: 创建充电设备
  - **ListChargeMachinePortCmd**: 查询充电端口
  - **ListChargeMachineOrderCmd**: 查询充电订单
  - **ListPhoneChargeMachineCmd**: 手机端查询充电设备
  - **SaveChargeMachineFactoryCmd**: 创建设备厂商
  - **SaveChargeMachinePortCmd**: 创建充电端口
  - **SaveChargeMachineSpecCmd**: 创建设备规格
  - 其他相关管理接口...
  
  ### 8. 充电卡管理 (chargeCard)
  - 提供充电卡管理功能
  
  ### 9. 充电规则管理 (chargeRule)
  - 提供充电计费规则管理
  
  ### 10. 订单管理 (corders)
  - 提供通用订单管理功能
  
  ### 11. 设备台账管理 (equipmentAccount)
  - 提供设备资产台账管理
  
  ### 12. 设备操作日志 (equipmentOperatingLog)
  - 记录设备操作日志
  
  ### 13. 文件管理 (file)
  - **SaveFileCmd**: 保存文件
    - 功能: 上传并保存文件,支持图片、文档等
    - 调用方式: POST /app/file.saveFile
    - 业务场景: 用户上传头像、证件照等
  
  - **GetFileCmd**: 获取文件
  - **GetFileByObjIdCmd**: 按对象ID获取文件
  
  ### 14. 物品发布管理 (itemRelease)
  - 提供物品发布管理功能
  
  ### 15. 日志管理 (log)
  - 提供系统日志管理
  
  ### 16. 设备管理 (machine)
  - 提供通用设备管理功能
  
  ### 17. 设备认证 (machineAuth)
  - 提供设备认证管理
  
  ### 18. 设备记录 (machineRecord)
  - 记录设备操作记录
  
  ### 19. 设备翻译 (machineTranslate)
  - 提供设备数据翻译功能
  
  ### 20. 设备类型 (machineType)
  - 管理设备类型信息
  
  ### 21. 商城管理 (mall)
  - 提供商城相关功能
  
  ### 22. 营销黑名单 (marketBlacklist)
  - 管理营销黑名单
  
  ### 23. 营销商品 (marketGoods)
  - 管理营销商品信息
  
  ### 24. 营销图片 (marketPic)
  - 管理营销相关图片
  
  ### 25. 营销规则 (marketRule)
  - 配置营销活动规则
  
  ### 26. 营销短信 (marketSms)
  - 管理营销短信发送
  
  ### 27. 营销文本 (marketText)
  - 管理营销文本内容
  
  ### 28. 计量设备 (meterMachine)
  - 管理计量设备信息
  
  ### 29. 消息管理 (msg)
  - 提供消息推送管理
  
  ### 30. 打印机管理 (printer)
  - 提供打印设备管理
  
  ### 31. 宣传管理 (publicity)
  - 提供宣传内容管理
  
  ### 32. 系统管理 (system)
  - 提供系统配置管理
  
  ### 33. 工作流管理 (workflow)
  - **SaveWorkflowCmd**: 创建工作流
    - 功能: 创建新的工作流定义
    - 调用方式: POST /app/workflow.saveWorkflow
    - 业务场景: 管理员配置业务流程
  
  - **ListWorkflowCmd**: 查询工作流
  - **ListWorkflowsCmd**: 查询工作流列表
  - **ListWorkflowStepsCmd**: 查询工作流步骤
  - **ListWorkflowStepStaffsCmd**: 查询步骤处理人员
  - **ListWorkflowAuditInfoCmd**: 查询审核信息
  - **ListWorkflowImageCmd**: 查询工作流图片
  - **ListRunWorkflowImageCmd**: 查询运行中工作流图片
  - **GetFirstStaffCmd**: 获取首节点处理人员
  - **ListWorkflowNextNodeCmd**: 查询下一节点
  - **UpdateWorkflowCmd**: 更新工作流
  - **DeleteWorkflowCmd**: 删除工作流
  
  ## 核心业务功能
  
  ### 1. 广告投放系统
  - 支持图片、视频广告
  - 多终端投放(业主端、员工端)
9750b443   王彪总   fix(config): 更新配置...
217
  - 精准投放(按项目、楼栋、单元、房间)
88e030b7   王彪总   init project
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
  - 时间控制(开始时间、结束时间)
  
  ### 2. 门禁密钥管理
  - 长期密钥和临时密码
  - 密钥审核机制
  - 设备绑定管理
  - 访客权限管理
  
  ### 3. 工作流引擎
  - 基于Activiti的工作流引擎
  - 可视化流程设计
  - 多级审核流程
  - 动态节点配置
  
  ### 4. 充电设备管理
  - 充电设备注册管理
  - 充电端口配置
  - 充电订单处理
  - 设备厂商管理
  
  ### 5. 文件管理系统
  - 多格式文件支持
  - 文件关联管理
  - 存储方式灵活(本地/云存储)
  - 文件权限控制
  
  ## 部署配置
  
  ### 启动配置
  ```bash
  # Spring Boot 方式启动
  mvn spring-boot:run -f pom-boot.xml
  
  # Spring Cloud 方式启动  
  mvn spring-boot:run -f pom-cloud.xml
  ```
  
  ### 环境配置
  - 开发环境: application-dev.properties
  - 测试环境: application-test.properties  
  - 生产环境: application-prod.properties
  
  ## 接口调用示例
  
  ### 创建广告接口调用
  ```json
  POST /app/advert.saveAdvert
  {
    "adName": "社区活动通知",
    "adTypeCd": "2000",
    "classify": "9001",
    "locationTypeCd": "1000",
    "locationObjId": "-1",
    "seq": "1",
    "startTime": "2023-09-01 00:00:00",
    "endTime": "2023-12-31 23:59:59",
    "photos": [
      {
        "url": "https://example.com/image.jpg",
        "fileId": "img/20230901/abc123.jpg"
      }
    ]
  }
  ```
  
  ### 创建工作流接口调用
  ```json
  POST /app/workflow.saveWorkflow
  {
    "flowId": "WF001",
    "flowName": "费用报销流程",
    "skipLevel": "1",
    "communityId": "9999",
    "storeId": "1001",
    "statusCd": "0",
    "flowType": "EXPENSE"
  }
  ```
  
  ## 注意事项
  
  1. **事务管理**: 关键业务操作使用@Java110Transactional注解确保数据一致性
  2. **参数校验**: 所有接口都包含完整的参数校验逻辑
  3. **异常处理**: 统一的异常处理机制,返回标准化的错误信息
  4. **权限控制**: 接口调用需要相应的权限认证
  5. **日志记录**: 关键操作都有详细的日志记录
  
  ## 版本信息
  - 当前版本: 1.0-SNAPSHOT
  - 最后更新: 2024年1月
  - 维护团队: Java110 Team
  
  ---