项目介绍

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                        # 会员购买域扩展点插件

功能演示

 

版权声明:
1、本网站名称:帝企吧
2、本站永久网址:https://www.diqiba.com
3、本网站的文章部分内容可能来源于网络及作者投稿,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报。
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
7、本站所有资源来源于互联网,仅用于学习及参考使用,切勿用于商业用途,如产生法律纠纷本站概不负责! 8、资源除标明原创外均来自网络转载,版权归原作者所有,若侵犯到您权益请联系我们删除,我们将及时处理! 9、若您需使用非免费的软件或服务,请购买正版授权并合法使用!