# 三勾springboot微信小程序多商户商城系统 **Repository Path**: victor123/multi-java ## Basic Information - **Project Name**: 三勾springboot微信小程序多商户商城系统 - **Description**: 三勾商城springboot多商户商城是开发友好的微信小程序商城,框架支持SAAS,支持发布 iOS+Android+公众号+H5+各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)等多个平台,不可多得的二开神器, 为大中小企业提供极致的移动电子商务解决方案。技术架构:springboot+uniapp+element-ui+vue3,快速开发。【分销商城,多商户商城,B2B2C,S2B2C,商城源码】 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 25 - **Forks**: 25 - **Created**: 2025-06-13 - **Last Updated**: 2026-04-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 三勾springboot多商户商城系统 **面向开发、二开友好的开源多商户电商系统** 三勾多商户小程序商城基于 Spring Boot + Element Plus + uni-app 打造的面向开发的小程序商城,方便二次开发或直接使用,可发布到多端,包括微信小程序、微信公众号、QQ小程序、支付宝小程序、字节跳动小程序、百度小程序、Android端、iOS端。 --- ## 项目简介 三勾多商户商城是一套完整的多商户电商解决方案,支持 SAAS 多租户模式运营。系统提供从商品管理、订单处理、会员营销、供应商管理到数据统计的全流程业务能力。系统分为后端服务(jjj_shop_multi)、平台管理端前端(jjj_shop_multi_admin)、商家管理端前端(jjj_shop_multi_shop)、供应商管理端前端(jjj_shop_multi_supplier)、移动端前端(jjj_shop_multi_app)五个部分。 ## 项目特色 - **SAAS支持**:无限多开、实现多租户应用开发 - **前后分离**:开发更清晰、分工更明确、提升开发效率 - **Element Plus**:基于饿了么团队 UI 库、用户体验超棒 - **Spring Boot**:国内流行的 Java 框架、结构代码清晰 - **极易二开**:代码结构清晰、快速开发应用 - **多平台支持**:微信小程序、H5、微信公众号、支付宝小程序、App 打包,开发不浪费 - **开发规范**:前后端高度一致的权限控制、实现项目规范 - **四端分离**:平台管理端(admin)、商家管理端(shop)、供应商管理端(supplier)、移动端(app)独立开发,共用后端服务 - **模块化设计**:后端采用 Maven 多模块架构,各业务模块职责清晰,易于扩展 ## 技术栈 | 层级 | 技术 | |------|------| | 后端框架 | Java 8 + Spring Boot 2.3.12 | | ORM 框架 | MyBatis-Plus 3.4.1 | | 权限框架 | Shiro 1.10.0 + JWT 3.10.1 | | 缓存 | Redis + Redisson 3.16.7 + Spring Cache | | 分布式锁 | ShedLock 4.29.0 | | 构建工具 | Maven 多模块 | | 数据库 | MySQL 5.7+ / 8.0+ | | 平台管理端前端 | Vue 3 + Vite + Element Plus + Pinia | | 商家管理端前端 | Vue 3 + Vite + Element Plus + Pinia | | 供应商管理端前端 | Vue 3 + Vite + Element Plus + Pinia | | 移动端前端 | uni-app + Vue 3(支持微信小程序、H5、多端发布) | | 微信集成 | weixin-java-sdk 4.7.2.B | | 云存储 | 七牛云 / 阿里云 OSS / 腾讯云 COS | | 文档工具 | Knife4j 2.0.2(Swagger UI 增强版) | | 支付集成 | 微信支付 + 支付宝支付 4.9.9 | | 物流查询 | 快递100 SDK 1.0.10 | | 短信服务 | 阿里云短信 | | 二维码生成 | ZXing 3.3.0 | | Excel处理 | Apache POI 4.1.2 | ## 项目源码 | 项目目录 | 说明 | 开发工具 | 核心技术 | |---------|------|---------|---------| | database | 数据库 | MySQL 5.7、MySQL 8.0 | - | | jjj_shop_multi | Java 后端 | IntelliJ IDEA | Spring Boot 2.3.12.RELEASE | | jjj_shop_multi_admin | SAAS平台管理端后台 | HBuilderX、VSCode 等 JS 开发工具 | Vue 3、Element Plus | | jjj_shop_multi_shop | 商家管理端后台 | HBuilderX、VSCode 等 JS 开发工具 | Vue 3、Element Plus | | jjj_shop_multi_supplier | 供应商管理端后台 | HBuilderX、VSCode 等 JS 开发工具 | Vue 3、Element Plus | | jjj_shop_multi_app | 移动端 | HBuilderX | Vue 3、uni-app | ## 后端架构 ### 模块划分 后端采用 Maven 多模块架构,各模块职责清晰: ``` jjj_shop_multi/ ├── bootstrap/ # 启动模块(主入口) ├── config/ # 配置模块(Shiro、Redis、Swagger 等) ├── jjj-common/ # 公共模块 │ ├── entity/ # 数据库实体(MyBatis-Plus) │ ├── mapper/ # Mapper 接口 │ ├── service/ # Service 接口和实现 │ ├── enums/ # 业务枚举 │ ├── util/ # 工具类 │ ├── cache/ # 缓存管理 │ ├── factory/ # 工厂类 │ ├── interceptor/ # 拦截器 │ ├── settings/ # 配置管理 │ └── vo/ # 视图对象 ├── jjj-admin/ # 平台管理端 API(平台运营) │ ├── controller/ # 平台管理端接口(/api/admin/*) │ ├── service/ # 平台管理端业务逻辑 │ ├── param/ # 请求参数 │ └── vo/ # 返回视图对象 ├── jjj-shop/ # 商家管理端 API(商家管理) │ ├── controller/ # 商家管理端接口(/api/shop/*) │ ├── service/ # 商家管理端业务逻辑 │ ├── param/ # 请求参数 │ └── vo/ # 返回视图对象 ├── jjj-supplier/ # 供应商管理端 API(供应商管理) │ ├── controller/ # 供应商管理端接口(/api/supplier/*) │ ├── service/ # 供应商管理端业务逻辑 │ ├── param/ # 请求参数 │ └── vo/ # 返回视图对象 ├── jjj-front/ # 移动端 API(用户端) │ ├── controller/ # 移动端接口(/api/front/*) │ ├── service/ # 移动端业务逻辑 │ ├── param/ # 请求参数 │ └── vo/ # 返回视图对象 ├── jjj-job/ # 定时任务模块 ├── generator/ # 代码生成器 └── boot-admin/ # Spring Boot Admin 监控 ``` 关键设计: - 四端(admin/shop/supplier/front)共用同一套 Entity、Mapper、Service - 通过不同的 Controller 层实现接口隔离和权限控制 - 公共业务逻辑统一在 jjj-common 模块维护 - 支持 SAAS 多租户数据隔离 ### 核心能力 | 能力 | 实现 | |------|------| | 统一返回格式 | `ApiResult` 封装 code/message/data | | 认证鉴权 | Shiro + JWT(token 签发/校验/刷新) | | 参数校验 | Hibernate Validator + 自定义校验器 | | XSS 防护 | XSS 过滤器 + commons-text | | 文件上传 | 工厂模式,支持本地/七牛云/阿里云/腾讯云 | | 分页查询 | MyBatis-Plus 分页插件 | | 全局异常 | 统一异常处理 | | 操作日志 | AOP 切面自动记录 | | 定时任务 | ShedLock 分布式锁 + Spring @Scheduled | | 分布式缓存 | Redisson + Redis | | 接口文档 | Knife4j 可视化接口文档 | | 微信支付 | 微信小程序支付、微信公众号支付 | | 支付宝支付 | 支付宝小程序支付、支付宝H5支付 | | 物流查询 | 快递100 物流查询接口 | | 短信服务 | 阿里云短信服务 | | 打印功能 | 小票打印、订单打印 | | 二维码生成 | ZXing 二维码生成 | ### 多端 API 隔离 后端通过 URL 前缀区分不同端的 API: | 端 | URL 前缀 | 对应模块 | 认证方式 | 说明 | |----|---------|---------|---------|------| | 平台管理端 | `/api/admin/` | `jjj-admin` | Header Token | 平台运营人员使用 | | 商家管理端 | `/api/shop/` | `jjj-shop` | Header Token | 商家管理人员使用 | | 供应商管理端 | `/api/supplier/` | `jjj-supplier` | Header Token | 供应商管理人员使用 | | 移动端 | `/api/front/` | `jjj-front` | app_id + Token | 终端用户使用 | 默认端口:`8890` ## 项目结构 ``` 根目录 ├── jjj_shop_multi/ # 后端 Java 源码 │ ├── bootstrap/ # 启动模块 │ ├── config/ # 配置模块 │ ├── jjj-common/ # 公共模块(Entity/Mapper/Service) │ ├── jjj-admin/ # 平台管理端 API │ ├── jjj-shop/ # 商家管理端 API │ ├── jjj-supplier/ # 供应商管理端 API │ ├── jjj-front/ # 移动端 API │ ├── jjj-job/ # 定时任务 │ ├── generator/ # 代码生成器 │ └── boot-admin/ # Spring Boot Admin 监控 ├── jjj_shop_multi_admin/ # 平台管理端前端(Vue 3) ├── jjj_shop_multi_shop/ # 商家管理端前端(Vue 3) ├── jjj_shop_multi_supplier/ # 供应商管理端前端(Vue 3) ├── jjj_shop_multi_app/ # 移动端前端(uni-app) ├── db/ # 数据库脚本 ``` ## 功能模块 ### 平台管理端(jjj_shop_multi_admin) 面向平台超级管理员使用,管理整个多商户平台的运营。 | 模块 | 功能 | |------|------| | 首页看板 | 平台数据概览、商户统计、订单统计、销售趋势 | | 商户管理 | 商户列表、商户审核、商户入驻申请、商户等级、商户结算 | | 供应商管理 | 供应商列表、供应商审核、供应商入驻申请 | | 商品管理 | 平台商品审核、商品分类管理、商品规格管理 | | 订单管理 | 平台订单监控、订单统计、退款审核 | | 会员管理 | 会员列表、会员等级、会员标签 | | 营销管理 | 平台活动管理、优惠券管理 | | 财务管理 | 商户结算、平台收益、财务报表 | | 权限管理 | 平台管理员账号、角色权限、菜单管理 | | 区域管理 | 省市区数据维护 | | 系统设置 | 系统参数配置、全局设置、平台配置 | | 应用管理 | 插件管理、应用市场 | ### 商家管理端(jjj_shop_multi_shop) 面向商家运营人员使用,管理商家店铺日常运营。 | 模块 | 功能 | |------|------| | 首页看板 | 店铺数据概览、待处理事项、快捷入口 | | 商品管理 | 商品列表、商品分类、商品规格、商品评价、商品上下架 | | 订单管理 | 订单列表、订单详情、订单发货、退款/售后处理 | | 会员管理 | 会员列表、会员等级、会员标签、余额明细 | | 营销中心 | 优惠券管理、文章管理、文章分类、专题管理、推荐位、收藏管理 | | 门店管理 | 门店列表、门店店员、门店订单(自提/核销) | | 供应商协同 | 供应商商品、供应商订单、供应商结算 | | 页面装修 | 店铺首页装修、分类页装修、个人中心装修、底部导航、主题风格 | | 数据统计 | 销售统计、用户统计、商品统计 | | 财务管理 | 店铺收益、提现管理、财务报表 | | 应用设置 | 小程序配置、微信配置 | | 系统设置 | 店铺信息、交易设置、配送方式、快递公司、退货地址、上传设置、打印机、打印模板、短信设置、客服设置 | | 权限管理 | 店铺账号、角色权限、登录日志、操作日志 | | 文件管理 | 文件库、文件分组 | ### 供应商管理端(jjj_shop_multi_supplier) 面向供应商使用,管理供应商商品和订单。 | 模块 | 功能 | |------|------| | 首页看板 | 供应商数据概览、订单统计、待处理事项 | | 商品管理 | 供应商商品列表、商品上架、商品库存管理 | | 订单管理 | 供应商订单列表、订单发货、订单统计 | | 财务管理 | 供应商结算、收益统计 | | 数据统计 | 销售统计、商品统计 | | 系统设置 | 供应商信息、配送设置 | ### 移动端(jjj_shop_multi_app) 面向终端用户使用(微信小程序/H5)。 | 模块 | 功能 | |------|------| | 首页 | 轮播图、商品推荐、分类导航、营销活动入口、多商户店铺展示 | | 商品浏览 | 商品列表、商品详情、商品搜索、商品分类、店铺商品 | | 店铺浏览 | 店铺列表、店铺详情、店铺商品、店铺关注 | | 购物车 | 加入购物车、购物车管理、批量结算、跨店铺结算 | | 订单流程 | 确认订单、收银台支付、订单列表、订单详情、物流跟踪、订单评价 | | 售后服务 | 申请退款、退款详情、售后进度 | | 会员中心 | 个人信息、收货地址管理、我的优惠券、我的收藏、我的钱包、积分明细 | | 营销活动 | 优惠券领取、限时秒杀、拼团活动 | | 内容浏览 | 文章列表、文章详情 | | 门店服务 | 门店列表、门店详情、门店订单(自提) | | 自定义页面 | 支持 DIY 页面装修 | | 微信功能 | 微信登录、微信支付、手机号绑定 | ## 数据库 `db/` 目录包含数据库初始化和迁移脚本。 数据库名称:`jjj_shop_multi_git_java` ## 环境要求 | 环境类型 | 开发工具 | 版本要求 | |---------|---------|---------| | Java 后端 | IntelliJ IDEA | JDK 1.8、Maven 3.6+ | | 后端 Vue 管理页面 | HBuilderX、VSCode 等 JS 开发工具 | Node 16+(推荐16) | | 前端页面 | HBuilderX | uni-app | | 数据库 | MySQL | 5.7+ / 8.0+ | | 缓存 | Redis | 3.0+ | :warning: **注意**:Node.js 16 版本以下存在兼容性问题,请勿使用 ## 快速开始 ### 1. 数据库安装 ```bash # MySQL 5.7 或 8.0 新建数据库 jjj_shop_multi_git_java CREATE DATABASE jjj_shop_multi_git_java DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; # 导入脚本 db/init.sql ``` ### 2. Redis 安装 ```bash # 安装 Redis,设置密码 ``` ### 3. 后端启动 ```bash # 用 IDEA 打开 jjj_shop_multi 目录,配置 Maven 镜像,编译成功 # 修改 jjj_shop_multi/config/src/main/resources/config/application-dev.yml 里面的数据库配置和 Redis 配置 # 启动 SpringBootJjjApplication # 后端默认端口:8890 # 接口文档地址:http://localhost:8890/doc.html(支持 Swagger/Knife4j) ``` 配置示例: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/jjj_shop_multi_git_java?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true username: root password: root # Redis配置 redis: database: 0 host: localhost password: 123456 port: 6379 ``` ### 4. 商家管理端页面启动 ```bash # cmd 进入 jjj_shop_multi_shop 目录 cd jjj_shop_multi_shop npm install # 修改 jjj_shop_multi_shop/.env.development 里面的后端地址,默认是 http://127.0.0.1:8890 npm run dev # 启动成功后进入后台,默认密码 admin/123456 ``` ### 5. 平台管理端页面启动 ```bash # cmd 进入 jjj_shop_multi_admin 目录 cd jjj_shop_multi_admin npm install # 修改 .env.development 里面的后端地址 npm run dev ``` ### 6. 供应商管理端页面启动 ```bash # cmd 进入 jjj_shop_multi_supplier 目录 cd jjj_shop_multi_supplier npm install # 修改 .env.development 里面的后端地址 npm run dev ``` ### 7. uni-app 移动端启动 ```bash # 用 HBuilderX 打开 jjj_shop_multi_app 目录 # 修改 manifest.json 文件,可视化修改 Web 配置 -> 路由模式为 hash # 修改 env/development.js 里面的域名,默认是 http://127.0.0.1:8890 # 点击菜单 运行 -> 运行到浏览器 -> Chrome # 或编译到微信小程序 # 点击菜单 运行 -> 运行到小程序模拟器 -> 微信开发者工具 ``` ## 部署说明 ### 生产环境打包 ```bash # 后端打包 cd jjj_shop_multi mvn clean package -Pprod # 平台管理端打包 cd jjj_shop_multi_admin npm run build # 商家管理端打包 cd jjj_shop_multi_shop npm run build # 供应商管理端打包 cd jjj_shop_multi_supplier npm run build # 移动端打包 # 使用 HBuilderX 打开 jjj_shop_multi_app # 点击菜单 发行 -> 小程序-微信(仅适用于uni-app) # 或 发行 -> H5 ``` ### 部署建议 - **后端**:使用 Nginx 反向代理 + Systemd/Supervisor 守护进程 - **前端**:静态文件部署到 Nginx,配置 gzip 压缩 - **数据库**:定期备份,开启慢查询日志,建议主从分离 - **Redis**:配置持久化,设置合理的过期策略,建议主从+哨兵模式 - **文件存储**:生产环境建议使用云存储(七牛云/阿里云/腾讯云) - **负载均衡**:多实例部署时使用 Nginx 负载均衡 - **分布式锁**:使用 Redisson + ShedLock 保证定时任务不重复执行 ## 多商户架构说明 ### SAAS 多租户模式 系统支持 SAAS 多租户架构: 1. **平台管理**:平台方管理所有商户和供应商 2. **商家入驻**:商家申请入驻,审核通过后独立运营店铺 3. **供应商协同**:供应商提供商品,商家选择上架销售 ### 数据隔离 - 商家数据通过 `shop_supplier_id` 字段隔离 - 供应商数据通过 `supplier_id` 字段隔离 - 平台管理员可查看所有数据 - 商家只能查看自己店铺的数据 - 供应商只能查看自己的商品和订单 ### 结算体系 - 平台与商家按比例分成 - 支持多种结算周期(日结、周结、月结) - 自动生成结算单 - 支持商家提现申请和审核 ## 技术框架 ![输入图片说明](https://www.jjjshop.net/gitee/multi-java/jiagou.png) ## 系统功能 ![输入图片说明](https://www.jjjshop.net/gitee/multi-java/gongneng.png) ## 项目截图 移动端截图 | ![输入图片说明](https://www.jjjshop.net/gitee/all/mky01.png) | ![输入图片说明](https://www.jjjshop.net/gitee/all/mky02.png) | ![输入图片说明](https://www.jjjshop.net/gitee/all/mky03.png) | |---|---|---| | ![输入图片说明](https://www.jjjshop.net/gitee/all/mky04.png) | ![输入图片说明](https://www.jjjshop.net/gitee/all/mky05.png) | ![输入图片说明](https://www.jjjshop.net/gitee/all/mky06.png) | 后台截图 ![输入图片说明](https://www.jjjshop.net/gitee/all/jmkyht01.png) ![输入图片说明](https://www.jjjshop.net/gitee/all/jmkyht02.png) ![输入图片说明](https://www.jjjshop.net/gitee/all/jmkyht03.png) ![输入图片说明](https://www.jjjshop.net/gitee/all/jmkyht04.png) ## 开发指南 | 名称 | 地址 | |------|------| | 官方文档 | https://doc.jjjshop.net/MultiJava | | 视频教程 | https://doc.jjjshop.net/MultiJava?category_id=10034&document_id=1294 | | 本地安装 | https://doc.jjjshop.net/MultiJava?category_id=10034&document_id=446 | | 线上部署 | https://doc.jjjshop.net/MultiJava?category_id=10034&document_id=455 | | 二开说明 | https://doc.jjjshop.net/MultiJava?category_id=10034&document_id=458 | | 功能说明 | https://doc.jjjshop.net/MultiJava?category_id=10034&document_id=462 | | 常见问题 | https://doc.jjjshop.net/MultiJava?category_id=10034&document_id=1050 | | 接口文档 | 支持 Swagger/Knife4j | ## 特别感谢 - Gitee 官方 - Element Plus: [https://element-plus.gitee.io/zh-CN/](https://element-plus.gitee.io/zh-CN/) - Vue: [https://cn.vuejs.org/](https://cn.vuejs.org/) - uni-app: [https://uniapp.dcloud.io/](https://uniapp.dcloud.io/) - MyBatis-Plus: [https://baomidou.com/](https://baomidou.com/) - Redisson: [https://redisson.org/](https://redisson.org/) ## 技术支持 - **官网地址**:[https://www.jjjshop.net](https://www.jjjshop.net) - **交流QQ群**:638926352 - **问题反馈**:提交 Issue - **邮箱**:279517889@qq.com 如果这个项目对你有帮助,欢迎 Star ⭐ 支持!