项目介绍
memberclub 是一个轻量级、完全开源的交易引擎,以 SDK 方式对外提供通用的交易能力。它旨在帮助开发者快速构建新的电商交易系统,通过搭积木的方式实现从0到1的系统搭建。项目包含交易提单、履约、售后、结算、库存管理、用户配额管理等模块,非常适合用于学习如何构建电商业务中台。
应用场景
memberclub 适用于多种电商业务场景,包括但不限于:
-
会员制电商:提供会员开通、续费、权益发放等功能。 -
虚拟商品交易:如游戏点卡、视频会员、音乐包等。 -
优惠券及卡包业务:支持多商品、多份数的购买,以及购物车提单。 -
订阅服务:如杂志订阅、定期配送服务等。
项目架构

功能模块
memberclub 的主要功能模块包括:
-
购买域 -
提交订单、预览订单、取消订单 -
续费购买、自动续费、先享后付、不回本包退、随单搭售、直购、兑换码购买
-
-
履约域 -
主单履约、主单逆向履约、周期履约 -
履约单管理、履约接单完单、履约拆合单、权益发放、周期发放
-
-
售后域 -
售后预览、售后提交 -
售后可退校验、售后金额计算、过期退、随单退、售后次数限额
-
-
结算域 -
交易结算、离线收入报账 -
支付完成、履约、退款、过期等业务变更时点的结算
-
功能特点
-
高扩展性:通过扩展点引擎和流程引擎,业务组件可以自由编排、扩展和替换。 -
多数据源支持:集成 Mybatis-plus 和 Sharding-sphere,实现多数据源分库分表。 -
高性能:集成 Redis/Redisson,提供高效的缓存和分布式锁解决方案。 -
分布式配置:集成 Apollo,实现分布式配置管理。 -
消息队列:集成 RabbitMQ,提供消息队列和延迟重试能力。 -
内存数据库:集成 H2 内存数据库,方便开发和测试。 -
API 文档:集成 Swagger,提供详细的 API 文档。
项目技术栈
-
-
核心框架:SpringBoot -
持久层框架:Mybatis-plus -
数据库中间件:Sharding-sphere -
缓存:Redis/Redisson -
分布式配置:Apollo -
消息队列:RabbitMQ -
内存数据库:H2 -
API 文档:Swagger -
代码生成:Lombok+MapStruct -
分布式锁:Redis Lua -
重试组件:自定义重试组件,支持延迟重试 -
延迟队列:Redisson、RabbitMQ 延迟队列
-
-
分布式 ID:Redisson 分布式 ID
工程目录结构
memberclub # 主项目①pom.xml
├── starter # memberclub 的启东入口,Rpc/MQ/Http/Job等流量入口
├── common # Common 公共工具类
├── sdk # 会员领域能力 sdk
├── domain # 领域对象,主要包括 DO、DTO、VO、PO 等
├── plugin.demomember # Demo会员(每个会员产品线独占一个 pom 工程)
├── infrastruce # 基础设置层,包括rpc下游/mq/redis/apollo/db等下游
详细说明
├── starter # 启动服务
│ ├── controller # Http 入口
│ ├── job # Job 入口
│ └── mq # MQ 流量入口
├── domain # 领域对象
│ ├── contants # 常量
│ ├── context # 流程引擎和领域服务的上下文对象
│ ├── dataobject # 数据对象 DO 等
│ ├── entity # 数据库实体类 PO
├── sdk # 会员领域能力以 sdk形式对各产品线提供
│ ├── common # sdk 公共类工具类如 Topic/配置中心等
│ ├── aftersale # 会员售后域(核心)
│ ├── config # 配置中心
│ ├── event # 会员交易事件领域能力(核心)
│ ├── inventory # 会员商品库存领域能力(核心)
│ ├── lock # 会员锁(核心)
│ └── memberorder # 会员单管理(核心)
│ └── membership # 会员资格域(核心)
│ └── newmember # 会员新客域
│ └── oncetask # 会员任务域
│ └── ordercenter # 订单中心域(防腐层)
│ └── perform # 会员履约域(核心)
│ └── prefinance # 会员预结算域
│ └── purchase # 会员购买域
│ └── quota # 会员配额域
│ └── sku # 会员商品域
│ └── usertag # 会员用户标签域
├── common # 会员 Common 公共工程,包括各类基础组价实现
│ ├── annotation # 常见注解
│ ├── extension # 扩展点引擎实现
│ ├── flow # 流程引擎实现
│ ├── log # 通用日志组件
│ ├── retry # 通用分布式重试组件
│ ├── util # 通用 Util 工具如 Spring 上下文工具类、加解密、集合类、周期计算、JSON 解析
├── infrastructure # 基础设置层,包括rpc下游/mq/redis/apollo/db等下游
│ ├── assets # 下游资产服务防腐层和 资产SPI接口
│ ├── cache # 缓存组件
│ ├── dynamic_config # 分布式配置中心组件
│ ├── id # 分布式 ID 组件
│ ├── lock # 分布式锁组件
│ ├── mapstruct # mapstruct 接口
│ ├── mq # MQ 接口(屏蔽了具体 MQ 接入方式,可独立替换)
│ └── mybatis # Mybatis dao 层
│ └── order # 订单中心防腐层
│ └── retry # 分布式重试组件
│ └── swagger # Swagger 配置
│ └── usertag # 会员用户标签组件
├── plugin.demomember # Demo 会员业务特性
│ └── config # 会员配置表
│ └── perform # 会员履约域扩展点插件
│ └── aftersale # 会员售后域扩展点插件
│ └── prefinance # 会员预结算域扩展点插件
│ └── purchase # 会员购买域扩展点插件
功能演示





开源地址
https://gitee.com/juejinwuyang/memberclub