Blame view

service-acct/readme.md 9.54 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
  # Service-Acct 账户服务模块
  
  ## 模块概述
  
  Service-Acct 是微社区系统中的核心账户服务模块,采用命令驱动架构设计,专注于账户管理、支付处理、优惠券管理、积分系统和发票管理等核心财务功能。该模块通过20个核心命令接口目录,为系统提供完整的账户和财务处理能力。
  
  ## 技术架构
  
  ### 命令驱动架构
  - **架构模式**: 基于命令模式的设计,每个业务操作对应一个具体的命令类
  - **服务标识**: 使用 `@Java110Cmd(serviceCode = "xxx")` 注解标识服务接口
  - **统一处理**: 所有命令继承自 `Cmd` 基类,实现统一的参数验证和执行流程
  
  ### 核心组件
  - **Cmd**: 命令基类,提供统一的验证和执行框架
  - **BMO**: 业务模型对象,处理具体业务逻辑
  - **SMO**: 服务模型对象,提供数据访问服务
  - **DTO/PO**: 数据传输对象和持久化对象
  
  ## 核心命令接口说明
  
  ### 1. 账户管理模块 (account)
  **功能**: 负责业主账户的创建、预存、查询和管理
  **核心接口**:
  - `OwnerPrestoreAccountCmd`: 业主账户预存,支持账户创建和金额预存
  - `QueryOwnerAccountCmd`: 业主账户查询
  - `QueryAdminOwnerAccountCmd`: 管理员账户查询
  - `QueryAdminAccountDetailCmd`: 管理员账户明细查询
  - `QueryCommunityOwnerAccountCmd`: 社区业主账户查询
  - `CancelAccountDetailCmd`: 账户明细取消
  - `CustomSendAcctCmd`: 自定义发送账户操作
  - `DeleteAccountCmd`: 账户删除
  
  ### 2. 支付处理模块 (payment)
  **功能**: 统一支付处理,支持多种支付方式和支付场景
  **核心接口**:
  - `UnifiedPaymentCmd`: 统一支付接口,支持微信支付等多种支付方式
  - `CashierCmd`: 收银台支付
  - `QrCodePaymentCmd`: 二维码支付
  - `NativeQrcodePaymentCmd`: 原生二维码支付
  - `GetNativeQrcodePaymentCmd`: 获取原生二维码支付
  - `CheckPayFinishCmd`: 支付完成检查
  - `ListPaymentPoolCmd`: 支付池列表查询
  - `ListAdminPaymentCmd`: 管理员支付查询
  - `ListPaymentAdaptCmd`: 支付适配器列表
  - `ListPaymentKeyCmd`: 支付密钥列表
  - `ListPaymentPoolConfigCmd`: 支付池配置列表
  - `ListPaymentPoolValueCmd`: 支付池值列表
  - `SavePaymentPoolCmd`: 保存支付池
  - `SaveAdminPaymentPoolCmd`: 保存管理员支付池
  - `UpdatePaymentPoolCmd`: 更新支付池
  - `UpdateAdminPaymentPoolCmd`: 更新管理员支付池
  - `DeletePaymentPoolCmd`: 删除支付池
  - `DeleteAdminPaymentPoolCmd`: 删除管理员支付池
  
  ### 3. 积分管理模块 (integral)
  **功能**: 积分规则配置、积分计算、积分使用和积分礼品管理
  **核心接口**:
  - `UseIntegralCmd`: 积分使用
  - `ComputePayFeeIntegralCmd`: 费用支付积分计算
  - `SaveIntegralRuleCmd`: 积分规则保存
  - `SaveIntegralConfigCmd`: 积分配置保存
  - `SaveIntegralRuleConfigCmd`: 积分规则配置保存
  - `SaveIntegralRuleFeeCmd`: 积分规则费用保存
  - `SaveIntegralSettingCmd`: 积分设置保存
  - `UpdateIntegralRuleCmd`: 积分规则更新
  - `UpdateIntegralConfigCmd`: 积分配置更新
  - `UpdateIntegralRuleFeeCmd`: 积分规则费用更新
  - `UpdateIntegralSettingCmd`: 积分设置更新
  - `DeleteIntegralRuleCmd`: 积分规则删除
  - `DeleteIntegralConfigCmd`: 积分配置删除
  - `DeleteIntegralRuleConfigCmd`: 积分规则配置删除
  - `DeleteIntegralRuleFeeCmd`: 积分规则费用删除
  - `DeleteIntegralSettingCmd`: 积分设置删除
  - `ListIntegralRuleCmd`: 积分规则列表查询
  - `ListIntegralConfigCmd`: 积分配置列表查询
  - `ListIntegralRuleConfigCmd`: 积分规则配置列表查询
  - `ListIntegralRuleFeeCmd`: 积分规则费用列表查询
  - `ListIntegralSettingCmd`: 积分设置列表查询
  - `ListIntegralUserDetailCmd`: 用户积分明细查询
  - `ListIntegralGiftDetailCmd`: 积分礼品明细查询
  - `QueryAppUserIntegralCmd`: 应用用户积分查询
  
  ### 4. 优惠券管理模块 (coupon相关)
  **功能**: 优惠券全生命周期管理,包括创建、发放、使用和统计
  
  #### 4.1 优惠券池管理 (couponPool)
  - `SaveCouponPoolCmd`: 创建优惠券池
  - `ListCouponPoolCmd`: 优惠券池列表查询
  - `UpdateCouponPoolCmd`: 优惠券池更新
  - `DeleteCouponPoolCmd`: 优惠券池删除
  
  #### 4.2 优惠券规则管理 (couponRule)
  - 优惠券使用规则配置和管理
  
  #### 4.3 用户优惠券管理 (couponUser)
  - `SaveCouponUserCmd`: 用户优惠券发放
  - `ListCouponUserCmd`: 用户优惠券列表查询
  - `UpdateCouponUserCmd`: 用户优惠券更新
  - `DeleteCouponUserCmd`: 用户优惠券删除
  
  #### 4.4 优惠券计算 (coupon)
  - `ComputePayFeeCouponCmd`: 费用支付优惠券计算
  
  ### 5. 发票管理模块 (invoice)
  **功能**: 发票申请、审核、上传和管理
  **核心接口**:
  - `SaveInvoiceApplyCmd`: 发票申请保存
  - `SaveInvoiceApplyItemCmd`: 发票申请项保存
  - `SaveOwnerInvoiceCmd`: 业主发票保存
  - `AuditInvoiceApplyCmd`: 发票申请审核
  - `UploadInvoicePhotoCmd`: 发票照片上传
  - `WriteInvoiceApplyCmd`: 发票申请写入
  - `UpdateInvoiceApplyItemCmd`: 发票申请项更新
  - `UpdateOwnerInvoiceCmd`: 业主发票更新
  - `DeleteInvoiceApplyCmd`: 发票申请删除
  - `DeleteInvoiceApplyItemCmd`: 发票申请项删除
  - `DeleteOwnerInvoiceCmd`: 业主发票删除
  - `ListInvoiceApplyCmd`: 发票申请列表查询
  - `ListInvoiceApplyItemCmd`: 发票申请项列表查询
  - `ListOwnerInvoiceCmd`: 业主发票列表查询
  - `ListInvoiceEventCmd`: 发票事件列表查询
  
  ### 6. 支付宝支付模块 (alipay)
  **功能**: 支付宝支付接口集成
  **核心接口**: 支付宝支付相关命令接口
  
  ### 7. 在线支付模块 (onlinePay)
  **功能**: 在线支付处理
  **核心接口**: 在线支付相关命令接口
  
  ### 8. 停车优惠券模块 (parkingCoupon)
  **功能**: 停车优惠券管理
  **核心接口**: 停车优惠券的创建、发放和使用
  
  ### 9. 供应商优惠券模块 (supplierCoupon)
  **功能**: 供应商优惠券管理
  **核心接口**: 供应商优惠券的相关操作
  
  ## 业务领域分类
  
  ### 账户与支付领域
  - **账户管理**: 业主账户创建、预存、查询
  - **支付处理**: 统一支付、多种支付方式支持
  - **支付池管理**: 支付配置和策略管理
  
  ### 营销与促销领域
  - **积分系统**: 积分规则、积分使用、积分礼品
  - **优惠券系统**: 优惠券池、优惠券规则、用户优惠券
  - **停车优惠**: 停车场景优惠券管理
  
  ### 财务与票据领域
  - **发票管理**: 发票申请、审核、上传
  - **账户明细**: 交易记录和明细管理
  
  ## 使用示例
  
  ### 账户预存示例
  ```java
  // 请求参数
  {
    "communityId": "123456",
    "ownerId": "user001", 
    "amount": "100.00",
    "acctType": "property_fee",
    "primeRate": "wechat",
    "remark": "业主账户预存",
    "roomId": "room001"  // 当账户类型为property_fee或meter时需要房屋ID
  }
  
  // 调用服务
  serviceCode: "account.ownerPrestoreAccount"
  ```
  
  ### 统一支付示例
  ```java
  // 请求参数(以费用支付为例)
  {
    "business": "payFee",           // 支付场景:费用支付
9750b443   王彪总   fix(config): 更新配置...
180
    "communityId": "123456",        // 项目ID
88e030b7   王彪总   init project
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
    "tradeType": "JSAPI",           // 支付类型:JSAPI(小程序支付)
    "feeId": "fee001",              // 费用ID
    "payAdapt": "wechatPaymentFactory"  // 支付适配器(可选,默认微信支付)
  }
  
  // 调用服务  
  serviceCode: "payment.unifiedPayment"
  
  // 注意:不同业务类型需要传递不同的参数,具体参考各业务接口文档
  ```
  
  ### 积分使用示例
  ```java
  // 请求参数
  {
    "communityId": "123456",
    "userId": "user001",
    "integralAmount": "100",
    "businessType": "shopping"
  }
  
  // 调用服务
  serviceCode: "integral.useIntegral"
  ```
  
  ## 部署配置
  
  ### 依赖配置
  ```xml
  <!-- 核心依赖 -->
  <dependency>
    <groupId>com.java110</groupId>
    <artifactId>service-acct</artifactId>
    <version>1.0.0</version>
  </dependency>
  
  <!-- 支付相关依赖 -->
  <!-- 微信支付SDK -->
  <!-- 支付宝支付SDK -->
  ```
  
  ### 环境配置
  ```properties
  # 支付配置
  payment.wechat.appid=your_appid
  payment.wechat.mchid=your_mchid
  payment.wechat.key=your_key
  
  # 积分配置
  integral.enabled=true
  integral.ratio=1.0
  ```
  
  ## 核心特性
  
  ### 1. 命令驱动设计
  - 每个业务操作对应一个独立的命令类
  - 统一的参数验证和执行流程
  - 易于扩展和维护
  
  ### 2. 多支付方式支持
  - 微信支付、支付宝支付等主流支付方式
  - 统一的支付接口,简化接入流程
  - 支付池配置,支持不同业务场景
  
  ### 3. 完整的账户体系
  - 业主账户管理
  - 交易明细记录
  - 账户余额管理
  
  ### 4. 灵活的营销工具
  - 积分系统配置
  - 优惠券管理
  - 多种促销场景支持
  
  ## 开发指南
  
  ### 新增命令接口
  1. 在对应业务目录下创建命令类
  2. 继承 `Cmd` 基类并实现 `validate` 和 `doCmd` 方法
  3. 使用 `@Java110Cmd` 注解注册服务
  4. 在对应的 BMO 中实现业务逻辑
  
  ### 支付业务扩展
  1. 实现 `IPaymentBusiness` 接口
  2.`payment` 目录下添加支付命令
  3. 配置支付适配器工厂
  
  ### 积分规则配置
  1. 使用 `SaveIntegralRuleCmd` 创建积分规则
  2. 配置积分计算规则
  3. 设置积分使用条件
  
  ## 注意事项
  
  1. **支付安全**: 所有支付操作必须经过严格的参数验证
  2. **事务管理**: 账户操作需要保证事务一致性
  3. **性能优化**: 高频交易场景需要考虑性能优化
  4. **日志记录**: 重要财务操作需要完整的日志记录
  
  ## 版本历史
  
  - v1.0.0: 初始版本,包含基础账户和支付功能
  - v1.1.0: 新增积分系统和优惠券管理
  - v1.2.0: 完善发票管理和支付池配置
  - v1.3.0: 文档审核通过,修正接口清单准确性,完善命令驱动架构说明
  
  ---