MiniAliPay是一个基于DDD(领域驱动设计)架构的支付系统,采用微服务架构设计,包含用户中心、业务中心、账户中心三个核心模块。
- 用户中心: 负责用户管理、认证授权
- 业务中心: 负责核心业务逻辑(本项目重点)
- 账户中心: 负责账户管理和资金操作
app/
├── bootstrap/ # 启动配置
├── web/ # Web层(控制器、路由)
├── application/ # 应用层(应用服务、DTO)
├── domain/ # 领域层(实体、值对象、领域服务)
├── infrastructure/ # 基础设施层(数据访问、外部服务)
└── facade/ # 门面层(对外接口)
- 余额查询: 查询用户账户余额(支持可用余额、冻结余额)
- 交易明细查询: 查询用户交易历史记录
- 交易详情查询: 根据交易号或订单号查询交易详情
- 交易统计: 查询用户今日/月度交易统计
- 账户验证: 检查账户是否存在及归属关系
- 转账处理: 处理用户间转账业务(支持实时转账)
- 转账确认: 转账结果确认和状态更新
- 风险监控: 实时监控异常交易行为
- 资金冻结: 支持资金冻结和解冻操作
- 缓存服务: Redis缓存工具类,支持账户、交易、风险等数据缓存
- ID生成器: 雪花算法ID生成,支持交易号、订单号、账户号生成
- 消息队列: 转账和通知消息队列配置
- 数据库配置: 主从数据源、事务管理器配置
- 用户实体: User.java - 管理用户基本信息,支持登录密码和支付密码分离
- 管理员实体: AdminUser.java - 管理员用户信息,与普通用户关联
- 账户实体: Account.java - 账户信息管理,支持余额操作和状态管理
- 订单实体: Order.java - 订单信息管理,支持交易状态跟踪
- 账务明细: AccountLog.java - 账务操作记录,支持交易审计
- 通知消息: Notice.java - 消息通知管理,支持已读状态和软删除
- 分布式序列: Sequence.java - 分布式序列号生成管理
- TCC事务: DtxTccAction.java - 分布式事务TCC模式支持
- 交易记录: Transaction.java - 完整的交易信息记录
- 风险评估: RiskAssessment.java - 交易风险评估和控制
业务中心模块提供了完整的金融交易相关接口,包括:
-
余额查询 (
GET /businessCenter/queryBalance)- 查询当前用户的资金账户余额
- 支持用户身份验证
-
转账发起 (
GET /businessCenter/transfer)- 用户发起金额转账到指定账户
- 包含金额验证、账户验证等安全检查
-
支付确认 (
GET /businessCenter/payment)- 用户通过支付密码确认支付订单
- 支持订单状态更新
-
交易订单列表查询 (
GET /businessCenter/queryTradeOrderList) - 移动端- 分页查询用户的交易订单历史
- 支持时间范围筛选
-
业务明细列表查询 (
GET /businessCenter/queryBusinessDetailList) - 管理端- 管理员查询系统业务交易明细
- 支持多维度筛选条件
-
转账收账次数数据看板查询 (
GET /businessCenter/queryTradeNumber)- 查询指定时间范围内的转账和收账次数统计
- 提供数据看板展示支持
-
金额变化数据看板查询 (
GET /businessCenter/queryMoneyChange)- 查询用户账户金额变化趋势
- 支持近三个月、六个月、一年的数据筛选
-
账户查询接口 (
GET /businessCenter/queryAccount)- 根据账号查询用户基本信息
- 用于转账时查找收款人信息
-
交易订单详情查询 (
GET /businessCenter/queryTradeOrderDetail)- 根据订单ID查询交易订单的详细信息
- 包含完整的交易双方信息和状态
- 请求响应DTO: 完整的请求参数验证和响应数据封装
- 统一异常处理: 标准化的错误响应和日志记录
- 用户身份验证: 支持多种用户身份获取方式(JWT、Session、请求头)
| 表名 | 说明 |
|---|---|
| account_info | 账户信息表 |
| account_log | 账务明细表 |
| sequence | 分布式序列表 |
| dtx_tcc_action | 防悬挂TCC事务表 |
| notice | 通知表 |
| user | 用户信息表 |
| admin_user | 管理员信息表 |
| order | 业务订单表 |
- 架构模式: DDD(领域驱动设计)
- 事务处理: TCC分布式事务
- 数据库: 关系型数据库(支持主从分离)
- 缓存: Redis(支持多种数据类型操作)
- 消息队列: RabbitMQ(支持转账和通知)
- ID生成: 雪花算法(分布式唯一ID)
- 框架: Spring Boot + Spring Data JPA
- 连接池: HikariCP
- ✅ 数据表结构设计
- ✅ 领域模型设计
- ✅ 应用服务实现
- ✅ Web接口开发
- ✅ 基础设施层实现
- ✅ 查询外观服务实现
- ✅ 缓存工具类实现
- ✅ ID生成器实现
- ✅ 配置类完善
- ✅ 实体类与数据库表结构同步
- ✅ 用户管理模块实体设计
- ✅ 订单管理模块实体设计
- ✅ 业务中心接口模块实现
- ✅ 业务中心DTO类设计
- ✅ 业务中心应用服务实现
项目采用分层架构,各层职责清晰:
- Web层: 处理HTTP请求,参数验证
- Application层: 编排业务流程,事务管理
- Domain层: 核心业务逻辑,领域规则
- Infrastructure层: 数据持久化,外部服务调用
- Facade层: 统一对外接口
详细的接口文档和表结构将在后续开发中完善。