Skip to content

AJiang4015/MiniPay

Repository files navigation

MiniAliPay 项目

项目概述

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 - 交易风险评估和控制

业务中心接口模块

业务中心模块提供了完整的金融交易相关接口,包括:

核心接口

  1. 余额查询 (GET /businessCenter/queryBalance)

    • 查询当前用户的资金账户余额
    • 支持用户身份验证
  2. 转账发起 (GET /businessCenter/transfer)

    • 用户发起金额转账到指定账户
    • 包含金额验证、账户验证等安全检查
  3. 支付确认 (GET /businessCenter/payment)

    • 用户通过支付密码确认支付订单
    • 支持订单状态更新
  4. 交易订单列表查询 (GET /businessCenter/queryTradeOrderList) - 移动端

    • 分页查询用户的交易订单历史
    • 支持时间范围筛选
  5. 业务明细列表查询 (GET /businessCenter/queryBusinessDetailList) - 管理端

    • 管理员查询系统业务交易明细
    • 支持多维度筛选条件
  6. 转账收账次数数据看板查询 (GET /businessCenter/queryTradeNumber)

    • 查询指定时间范围内的转账和收账次数统计
    • 提供数据看板展示支持
  7. 金额变化数据看板查询 (GET /businessCenter/queryMoneyChange)

    • 查询用户账户金额变化趋势
    • 支持近三个月、六个月、一年的数据筛选
  8. 账户查询接口 (GET /businessCenter/queryAccount)

    • 根据账号查询用户基本信息
    • 用于转账时查找收款人信息
  9. 交易订单详情查询 (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类设计
  • ✅ 业务中心应用服务实现

使用说明

项目采用分层架构,各层职责清晰:

  1. Web层: 处理HTTP请求,参数验证
  2. Application层: 编排业务流程,事务管理
  3. Domain层: 核心业务逻辑,领域规则
  4. Infrastructure层: 数据持久化,外部服务调用
  5. Facade层: 统一对外接口

详细的接口文档和表结构将在后续开发中完善。

About

小型支付项目

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors