Name Last Update
..
src/main Loading commit data...
README.md Loading commit data...
pom-boot.xml Loading commit data...
pom-cloud.xml Loading commit data...
pom.xml Loading commit data...

README.md

Service-Fee 费用管理微服务模块

模块概述

service-fee 是社区管理系统中的核心费用管理微服务模块,采用命令驱动架构设计理念,负责处理社区内所有费用相关的业务逻辑。该模块包含23个命令子模块,覆盖费用管理、停车计费、抄表管理、收据管理等核心功能。

技术架构

命令驱动架构设计

本模块采用命令驱动架构,所有业务操作都通过具体的命令类实现,每个命令类对应一个特定的业务场景,通过 @Java110Cmd 注解声明服务代码,实现业务逻辑的解耦和复用。

核心架构特点

  1. 命令模式实现:每个业务操作封装为独立的命令类
  2. 事务管理:使用 @Java110Transactional 注解确保数据一致性
  3. 参数验证:统一的参数验证机制,确保输入数据的有效性
  4. 服务编排:通过服务接口调用实现业务逻辑的组合

模块结构

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
  • 读操作不使用事务注解
  • 复杂业务操作需要分布式锁保护

扩展和定制

新增费用类型

  1. feeConfig 模块添加费用配置
  2. fee 模块添加对应的命令接口
  3. 实现费用计算逻辑

集成第三方支付

  1. 实现支付接口适配器
  2. 在支付命令中集成支付逻辑
  3. 处理支付回调通知

总结

service-fee 模块通过命令驱动架构实现了完整的费用管理体系,具备高度的可扩展性和维护性。23个命令子模块覆盖了社区费用管理的各个方面,为社区运营提供了稳定可靠的费用处理能力。