README.md
Service-Fee 费用管理微服务模块
模块概述
service-fee 是社区管理系统中的核心费用管理微服务模块,采用命令驱动架构设计理念,负责处理社区内所有费用相关的业务逻辑。该模块包含23个命令子模块,覆盖费用管理、停车计费、抄表管理、收据管理等核心功能。
技术架构
命令驱动架构设计
本模块采用命令驱动架构,所有业务操作都通过具体的命令类实现,每个命令类对应一个特定的业务场景,通过 @Java110Cmd 注解声明服务代码,实现业务逻辑的解耦和复用。
核心架构特点
- 命令模式实现:每个业务操作封装为独立的命令类
- 事务管理:使用
@Java110Transactional注解确保数据一致性 - 参数验证:统一的参数验证机制,确保输入数据的有效性
- 服务编排:通过服务接口调用实现业务逻辑的组合
模块结构
service-fee/
├── src/main/java/com/java110/fee/
│ ├── cmd/ # 命令处理层(核心)
│ │ ├── carMonth/ # 月租车月卡管理
│ │ ├── fee/ # 费用核心管理
│ │ ├── feeCombo/ # 费用套餐管理
│ │ ├── feeComboMember/ # 费用套餐成员管理
│ │ ├── feeConfig/ # 费用配置管理
│ │ ├── feePrintPage/ # 费用打印页面管理
│ │ ├── feePrintPageTemplate/ # 费用打印模板管理
│ │ ├── feeSub/ # 费用子项管理
│ │ ├── meter/ # 抄表管理
│ │ ├── meterType/ # 表类型管理
│ │ ├── meterWater/ # 水表抄表管理
│ │ ├── oweFeeCallable/ # 欠费管理
│ │ ├── ownerCarNew/ # 业主车辆管理
│ │ ├── payFeeBatch/ # 批量缴费管理
│ │ ├── payFeeDetailDiscountNew/ # 缴费明细折扣管理
│ │ ├── payFeeDetailNew/ # 缴费明细管理
│ │ ├── payFeeQrcode/ # 缴费二维码管理
│ │ ├── payFeeRule/ # 缴费规则管理
│ │ ├── receipt/ # 收据管理
│ │ ├── returnPayFee/ # 退费管理
│ │ ├── tempCarFee/ # 临时停车费管理
│ │ └── tempCarFeeConfigAttr/ # 临时停车费配置属性管理
│ ├── api/ # API接口层
│ ├── bmo/ # 业务模型对象
│ ├── dao/ # 数据访问层
│ └── smo/ # 服务模型对象
核心命令接口清单
1. 月租车月卡管理 (carMonth)
| 命令接口 | 服务代码 | 功能描述 |
|---|---|---|
BuyCarMonthOrderCmd |
carMonth.buyCarMonthOrder |
购买月租车月卡订单处理 |
QueryAppCarMonthCardCmd |
carMonth.queryAppCarMonthCard |
查询停车月卡信息 |
核心功能:
- 月卡购买订单处理
- 月卡信息查询
- 车辆信息验证
- 物联网服务集成
2. 费用核心管理 (fee) - 44个命令接口
费用操作类:
| 命令接口 | 服务代码 | 功能描述 |
|---------|---------|---------|
| PayFeeCmd | fee.payFee | 前台现金或转账收费处理 |
| ListFeeCmd | fee.listFee | 费用列表查询 |
| UpdateFeeCmd | fee.updateFee | 费用信息更新 |
| DeleteFeeCmd | fee.deleteFee | 费用删除 |
| FinishFeeCmd | fee.finishFee | 费用完成处理 |
费用查询类:
| 命令接口 | 服务代码 | 功能描述 |
|---------|---------|---------|
| ListAdminFeeCmd | fee.listAdminFee | 管理员费用查询 |
| ListOwnerOweFeeCmd | fee.listOwnerOweFee | 业主欠费查询 |
| QueryFeeDetailCmd | fee.queryFeeDetail | 费用明细查询 |
| ListBillCmd | fee.listBill | 账单列表查询 |
批量操作类:
| 命令接口 | 服务代码 | 功能描述 |
|---------|---------|---------|
| PayBatchFeeCmd | fee.payBatchFee | 批量缴费处理 |
| PayBatchFeeACmd | fee.payBatchFeeA | 批量缴费处理A |
费用创建类:
| 命令接口 | 服务代码 | 功能描述 |
|---------|---------|---------|
| SaveRoomCreateFeeCmd | fee.saveRoomCreateFee | 保存房屋创建费用 |
| SaveParkingSpaceCreateFeeCmd | fee.saveParkingSpaceCreateFee | 保存车位创建费用 |
3. 费用配置管理 (feeConfig) - 7个命令接口
| 命令接口 | 服务代码 | 功能描述 |
|---|---|---|
SaveFeeConfigCmd |
feeConfig.saveFeeConfig |
保存费用配置 |
UpdateFeeConfigCmd |
feeConfig.updateFeeConfig |
更新费用配置 |
DeleteFeeConfigCmd |
feeConfig.deleteFeeConfig |
删除费用配置 |
ListFeeConfigsCmd |
feeConfig.listFeeConfigs |
费用配置列表查询 |
ListConfigFeeObjsCmd |
feeConfig.listConfigFeeObjs |
配置费用对象列表查询 |
ListAdminConfigFeeObjsCmd |
feeConfig.listAdminConfigFeeObjs |
管理员配置费用对象查询 |
QueryAdminFeeConfigsCmd |
feeConfig.queryAdminFeeConfigs |
管理员费用配置查询 |
核心功能:
- 费用项配置管理
- 计费规则设置
- 费用类型定义
- 支付方式配置
4. 费用套餐管理 (feeCombo) - 4个命令接口
| 命令接口 | 服务代码 | 功能描述 |
|---|---|---|
SaveFeeComboCmd |
feeCombo.saveFeeCombo |
保存费用套餐 |
UpdateFeeComboCmd |
feeCombo.updateFeeCombo |
更新费用套餐 |
DeleteFeeComboCmd |
feeCombo.deleteFeeCombo |
删除费用套餐 |
ListFeeComboCmd |
feeCombo.listFeeCombo |
费用套餐列表查询 |
5. 抄表管理 (meter) - 9个命令接口
楼层分摊抄表:
| 命令接口 | 服务代码 | 功能描述 |
|---------|---------|---------|
| SaveFloorShareReadingCmd | meter.saveFloorShareReading | 保存楼层分摊抄表 |
| AuditFloorShareReadingCmd | meter.auditFloorShareReading | 审核楼层分摊抄表 |
| ListFloorShareReadingCmd | meter.listFloorShareReading | 楼层分摊抄表列表查询 |
| DeleteFloorShareReadingCmd | meter.deleteFloorShareReading | 删除楼层分摊抄表 |
楼层分摊表管理:
| 命令接口 | 服务代码 | 功能描述 |
|---------|---------|---------|
| SaveFloorShareMeterCmd | meter.saveFloorShareMeter | 保存楼层分摊表 |
| UpdateFloorShareMeterCmd | meter.updateFloorShareMeter | 更新楼层分摊表 |
| DeleteFloorShareMeterCmd | meter.deleteFloorShareMeter | 删除楼层分摊表 |
| ListFloorShareMeterCmd | meter.listFloorShareMeter | 楼层分摊表列表查询 |
费用查询:
| 命令接口 | 服务代码 | 功能描述 |
|---------|---------|---------|
| ListFloorShareFeeCmd | meter.listFloorShareFee | 楼层分摊费用列表查询 |
6. 水表抄表管理 (meterWater) - 6个命令接口
| 命令接口 | 服务代码 | 功能描述 |
|---|---|---|
SaveMeterWaterCmd |
meterWater.saveMeterWater |
保存水表抄表记录 |
SaveProxyFeeCmd |
meterWater.saveProxyFee |
保存代收费记录 |
UpdateMeterWaterCmd |
meterWater.updateMeterWater |
更新水表抄表记录 |
DeleteMeterWaterCmd |
meterWater.deleteMeterWater |
删除水表抄表记录 |
ListMeterWatersCmd |
meterWater.listMeterWaters |
水表抄表列表查询 |
ListAdminMeterWatersCmd |
meterWater.listAdminMeterWaters |
管理员水表抄表查询 |
7. 欠费管理 (oweFeeCallable) - 5个命令接口
| 命令接口 | 服务代码 | 功能描述 |
|---|---|---|
SaveOweFeeCallableCmd |
oweFeeCallable.saveOweFeeCallable |
保存欠费记录 |
WriteOweFeeCallableCmd |
oweFeeCallable.writeOweFeeCallable |
写入欠费记录 |
DeleteOweFeeCallableCmd |
oweFeeCallable.deleteOweFeeCallable |
删除欠费记录 |
ListOweFeeCallableCmd |
oweFeeCallable.listOweFeeCallable |
欠费记录列表查询 |
ListAdminOweFeeCallableCmd |
oweFeeCallable.listAdminOweFeeCallable |
管理员欠费记录查询 |
8. 临时停车费管理 (tempCarFee) - 3个命令接口
| 命令接口 | 服务代码 | 功能描述 |
|---|---|---|
GetTempCarFeeOrderCmd |
tempCarFee.getTempCarFeeOrder |
获取临时停车费订单 |
QueryTempCarFeeOrderCmd |
tempCarFee.queryTempCarFeeOrder |
查询临时停车费订单 |
NotifyTempCarFeeOrderCmd |
tempCarFee.notifyTempCarFeeOrder |
临时停车费订单通知 |
9. 收据管理 (receipt) - 4个命令接口
| 命令接口 | 服务代码 | 功能描述 |
|---|---|---|
GeneratorReceiptCmd |
receipt.generatorReceipt |
生成收据 |
ListAccountReceiptCmd |
receipt.listAccountReceipt |
账户收据列表查询 |
ListAdminAccountReceiptCmd |
receipt.listAdminAccountReceipt |
管理员账户收据查询 |
QueryAdminFeeReceiptCmd |
receipt.queryAdminFeeReceipt |
管理员费用收据查询 |
10. 其他重要模块
费用套餐成员管理 (feeComboMember):
- 费用套餐成员CRUD操作
- 套餐成员关系管理
缴费明细管理 (payFeeDetailNew):
- 缴费明细CRUD操作
- 明细状态管理
退费管理 (returnPayFee):
- 退费申请处理
- 退费审核流程
缴费二维码管理 (payFeeQrcode):
- 缴费二维码生成
- 扫码支付处理
业务功能分类
1. 费用生命周期管理
- 费用创建:
SaveRoomCreateFeeCmd,SaveParkingSpaceCreateFeeCmd - 费用查询:
ListFeeCmd,QueryFeeDetailCmd - 费用支付:
PayFeeCmd,PayMonthFeeCmd - 费用更新:
UpdateFeeCmd,FinishFeeCmd - 费用删除:
DeleteFeeCmd
2. 停车费用管理
- 月租车月卡:购买、查询、续费
- 临时停车费:订单生成、查询、通知
- 停车位费用:车位费用设置、查询
3. 抄表费用管理
- 水表抄表:抄表记录、费用计算
- 楼层分摊:公共区域费用分摊
- 代收费管理:代收费用处理
4. 收据和账单管理
- 收据生成:缴费收据生成和管理
- 账单查询:费用账单列表查询
- 欠费管理:欠费查询和催缴
技术实现特点
1. 命令模式实现
@Java110Cmd(serviceCode = "fee.payFee")
public class PayFeeCmd extends Cmd {
@Override
public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) {
// 参数验证逻辑
}
@Override
@Java110Transactional
public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) {
// 业务逻辑处理
}
}
2. 事务管理
- 使用
@Java110Transactional注解确保业务操作的原子性 - 分布式锁机制防止并发问题
- 事务ID统一管理
3. 参数验证机制
- 统一的参数验证框架
- 业务规则校验
- 数据完整性检查
4. 服务编排
- 通过服务接口调用组合业务逻辑
- 支持服务降级和容错处理
- 异步处理支持
部署和配置
依赖服务
service-user:用户信息服务service-community:项目信息服务service-store:商户信息服务- 物联网服务:停车系统集成
配置说明
- 数据库配置:费用相关表结构
- 缓存配置:费用计算缓存
- 事务配置:分布式事务管理
开发规范
命令类命名规范
- 操作类型 + 业务对象 + Cmd
- 例如:
SaveFeeConfigCmd,ListFeeCmd
服务代码规范
- 模块名.操作名
- 例如:
fee.payFee,feeConfig.saveFeeConfig
事务使用规范
- 写操作必须使用
@Java110Transactional - 读操作不使用事务注解
- 复杂业务操作需要分布式锁保护
扩展和定制
新增费用类型
- 在
feeConfig模块添加费用配置 - 在
fee模块添加对应的命令接口 - 实现费用计算逻辑
集成第三方支付
- 实现支付接口适配器
- 在支付命令中集成支付逻辑
- 处理支付回调通知
总结
service-fee 模块通过命令驱动架构实现了完整的费用管理体系,具备高度的可扩展性和维护性。23个命令子模块覆盖了社区费用管理的各个方面,为社区运营提供了稳定可靠的费用处理能力。