# 三勾springcloud小程序商城单商户商城系统 **Repository Path**: victor123/singlecloud ## Basic Information - **Project Name**: 三勾springcloud小程序商城单商户商城系统 - **Description**: 三勾商城springcloud单商户是开发友好的微信小程序商城,框架支持SAAS,支持发布 iOS+Android+公众号+H5+各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)等多个平台,不可多得的二开神器, 为大中小企业提供极致的移动电子商务解决方案。技术架构:java+springboot+springcloud+ uniapp +element-ui+vue3。【分销商城,小程序直播,B2B2C,S2B2C,商城源码】 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://www.jjjshop.net - **GVP Project**: No ## Statistics - **Stars**: 9 - **Forks**: 11 - **Created**: 2025-06-11 - **Last Updated**: 2026-05-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 三勾单商户商城系统 Cloud 版 **面向开发、二开友好的微服务电商系统** 三勾小程序商城 Cloud 版基于 Spring Boot + Spring Cloud Alibaba + Element Plus + uni-app 打造的面向开发的微服务小程序商城,方便二次开发或直接使用,可发布到多端,包括微信小程序、微信公众号、QQ小程序、支付宝小程序、字节跳动小程序、百度小程序、Android端、iOS端。 --- ## 项目简介 三勾小程序商城 Cloud 版是一套完整的单商户电商解决方案,采用微服务架构设计,提供从商品管理、订单处理、会员营销到数据统计的全流程业务能力。系统分为后端微服务(jjj_shop_single_cloud)、管理端前端(jjj_shop_single_cloud_admin)、店铺端前端(jjj_shop_single_cloud_shop)、移动端前端(jjj_shop_single_cloud_app)四个部分。 ## 项目特色 - **微服务架构**:基于 Spring Cloud Alibaba,支持服务注册发现、配置中心、网关路由 - **前后分离**:开发更清晰、分工更明确、提升开发效率 - **Element Plus**:基于饿了么团队 UI 库、用户体验超棒 - **Spring Boot 3**:采用最新 Spring Boot 3.x 版本,性能更优 - **极易二开**:代码结构清晰、快速开发应用 - **多平台支持**:微信小程序、H5、微信公众号、支付宝小程序、App 打包,开发不浪费 - **开发规范**:前后端高度一致的权限控制、实现项目规范 - **三端分离**:管理后台(admin)、店铺管理(shop)、移动端(app)独立开发,共用后端服务 - **模块化设计**:后端采用 Maven 多模块架构,各业务模块职责清晰,易于扩展 - **兼容单体和微服务**:支持单体模式和微服务模式灵活切换 ## 技术栈 ### 后端技术栈 | 层级 | 技术 | 版本 | |------|------|------| | 开发语言 | Java | 17+ | | 基础框架 | Spring Boot | 3.1.5 | | 微服务框架 | Spring Cloud | 2022.0.4 | | 微服务组件 | Spring Cloud Alibaba | 2022.0.0.0 | | 注册中心 | Nacos | 2.0.4 | | 配置中心 | Nacos | 2.0.4 | | 网关 | Spring Cloud Gateway | - | | 服务调用 | OpenFeign | - | | 负载均衡 | Spring Cloud LoadBalancer | 3.1.8 | | 分布式事务 | Seata | 2.0.0 | | ORM 框架 | MyBatis-Plus | 3.5.3.2 | | 权限框架 | Shiro | 1.12.0 | | Token 认证 | JWT | 3.11.0 | | 缓存 | Redis + Spring Cache | - | | 数据库连接池 | HikariCP + Druid | 1.2.22 | | 数据库 | MySQL | 5.7+ / 8.0+ | | 微信集成 | weixin-java-sdk | 4.7.2.B | | 支付宝集成 | alipay-sdk-java | 4.40.104.ALL | | 云存储 | 七牛云 / 阿里云 OSS / 腾讯云 COS / 华为云 OBS / Minio | - | | 文档工具 | Knife4j | 4.4.0(Swagger UI 增强版) | | 定时任务 | XXL-Job | 2.4.1 | | 工具类库 | Hutool | 5.8.25 | | JSON 处理 | Fastjson | 2.0.43 | | 物流查询 | 快递100 SDK | 1.0.10 | | 构建工具 | Maven | 3.6+ | ### 前端技术栈 | 层级 | 技术 | 版本 | |------|------|------| | 管理端前端 | Vue 3 + Vite + Element Plus + Pinia | - | | 店铺端前端 | Vue 3 + Vite + Element Plus + Pinia | - | | 移动端前端 | uni-app + Vue 3(支持微信小程序、H5、多端发布) | - | | 富文本编辑器 | wangeditor | - | | 拖拽组件 | vuedraggable | - | | 打印功能 | print-js | - | | 剪贴板 | vue-clipboard2 | - | | Node 版本 | Node.js | 16.14.0+ | ## 项目源码 | 项目目录 | 说明 | 开发工具 | 核心技术 | |---------|------|---------|---------| | database / db | 数据库脚本 | MySQL 5.7、MySQL 8.0 | - | | jjj_shop_single_cloud | Java 后端微服务 | IntelliJ IDEA | Spring Boot 3.1.5 + Spring Cloud Alibaba | | jjj_shop_single_cloud_admin | 管理端后台 | HBuilderX、VSCode 等 JS 开发工具 | Vue 3、Element Plus | | jjj_shop_single_cloud_shop | 店铺端管理后台 | HBuilderX、VSCode 等 JS 开发工具 | Vue 3、Element Plus | | jjj_shop_single_cloud_app | 移动端 | HBuilderX | Vue 3、uni-app | ## 后端架构 ### 微服务架构设计 后端采用 Spring Cloud Alibaba 微服务架构,支持单体和微服务两种模式: ``` jjj_shop_single_cloud/ ├── jjj-boot-base-core/ # 核心基础模块 │ ├── common/ # 公共工具类、常量、枚举 │ ├── config/ # 全局配置(Redis、Shiro、Swagger等) │ └── framework/ # 框架核心(异常处理、返回封装等) ├── jjj-module-system/ # 系统业务模块 │ ├── jjj-system-biz/ # 业务逻辑层(Entity、Mapper、Service) │ ├── jjj-system-admin/ # 管理端 API(平台运营) │ ├── jjj-system-shop/ # 店铺端 API(商家管理) │ ├── jjj-system-front/ # 移动端 API(用户端) │ ├── jjj-system-job/ # 定时任务模块 │ ├── jjj-system-local-api/ # 单体模式 API │ └── jjj-system-cloud-api/ # 微服务模式 API └── jjj-server-cloud/ # 微服务启动模块 ├── jjj-cloud-gateway/ # 网关服务 ├── jjj-system-cloud-start/ # 系统服务启动 └── jjj-visual/ # 可视化监控 ├── jjj-cloud-monitor/ # Spring Boot Admin 监控 ├── jjj-cloud-sentinel/ # Sentinel 流控监控 └── jjj-cloud-xxljob/ # XXL-Job 任务调度中心 ``` ### 微服务解决方案 | 能力 | 实现方案 | |------|---------| | 服务注册与发现 | Nacos Discovery | | 统一配置中心 | Nacos Config | | 路由网关 | Spring Cloud Gateway | | 服务调用 | OpenFeign | | 负载均衡 | Spring Cloud LoadBalancer | | 分布式事务 | Seata | | 分布式文件 | Minio / 阿里云 OSS / 七牛云 / 腾讯云 COS / 华为云 OBS | | 统一权限控制 | JWT + Shiro | | 服务监控 | Spring Boot Admin | | 流量控制 | Sentinel | | 任务调度 | XXL-Job | ### 核心能力 | 能力 | 实现 | |------|------| | 统一返回格式 | `ApiResult` 封装 code/message/data | | 认证鉴权 | Shiro + JWT(token 签发/校验/刷新) | | 参数校验 | Hibernate Validator + 自定义校验器 | | XSS 防护 | XSS 过滤器 | | 文件上传 | 工厂模式,支持本地/七牛云/阿里云/腾讯云/华为云/Minio | | 分页查询 | MyBatis-Plus 分页插件 | | 全局异常 | 统一异常处理 | | 操作日志 | AOP 切面自动记录 | | 定时任务 | XXL-Job 分布式任务调度 | | 接口文档 | Knife4j 可视化接口文档 | | 微信支付 | 微信小程序支付、微信公众号支付 | | 支付宝支付 | 支付宝小程序支付、支付宝 H5 支付 | | 物流查询 | 快递100 物流查询接口 | | 打印功能 | 小票打印、订单打印 | | 短信发送 | 阿里云短信、腾讯云短信 | ### 多端 API 隔离 后端通过 URL 前缀区分不同端的 API: | 端 | URL 前缀 | 对应模块 | 认证方式 | |----|---------|---------|---------| | 管理端 | `/api/admin/` | `jjj-system-admin` | Header Token | | 店铺端 | `/api/shop/` | `jjj-system-shop` | Header Token | | 移动端 | `/api/front/` | `jjj-system-front` | app_id + Token | ### 微服务端口规划 | 服务 | 端口 | 说明 | |------|------|------| | Nacos | 8848 | 注册中心 + 配置中心 | | Gateway | 9999 | 网关服务 | | System | 10001 | 系统服务 | | Monitor | 9100 | 监控服务 | | Sentinel | 8858 | 流控监控 | | XXL-Job | 9900 | 任务调度中心 | ## 项目结构 ``` 根目录 ├── jjj_shop_single_cloud/ # 后端 Java 微服务源码 │ ├── jjj-boot-base-core/ # 核心基础模块 │ ├── jjj-module-system/ # 系统业务模块 │ │ ├── jjj-system-biz/ # 业务逻辑层(Entity/Mapper/Service) │ │ ├── jjj-system-admin/ # 管理端 API │ │ ├── jjj-system-shop/ # 店铺端 API │ │ ├── jjj-system-front/ # 移动端 API │ │ ├── jjj-system-job/ # 定时任务 │ │ ├── jjj-system-local-api/ # 单体模式 API │ │ └── jjj-system-cloud-api/ # 微服务模式 API │ └── jjj-server-cloud/ # 微服务启动模块 │ ├── jjj-cloud-gateway/ # 网关服务 │ ├── jjj-system-cloud-start/ # 系统服务启动 │ └── jjj-visual/ # 可视化监控 │ ├── jjj-cloud-monitor/ # Spring Boot Admin │ ├── jjj-cloud-sentinel/ # Sentinel 监控 │ └── jjj-cloud-xxljob/ # XXL-Job 调度中心 ├── jjj_shop_single_cloud_admin/ # 管理端前端(Vue 3) ├── jjj_shop_single_cloud_shop/ # 店铺端前端(Vue 3) ├── jjj_shop_single_cloud_app/ # 移动端前端(uni-app) ├── db/ # 数据库脚本 ``` ## 功能模块 ### 管理端(jjj_shop_single_cloud_admin) 面向平台超级管理员使用,管理整个系统的基础配置。 | 模块 | 功能 | |------|------| | 店铺管理 | 店铺列表、店铺审核、店铺配置 | | 权限管理 | 管理员账号、角色权限、菜单管理 | | 区域管理 | 省市区数据维护 | | 系统设置 | 系统参数配置、全局设置 | | 应用管理 | 插件管理 | ### 店铺端(jjj_shop_single_cloud_shop) 面向店铺运营人员使用,管理店铺日常运营。 | 模块 | 功能 | |------|------| | 首页看板 | 数据概览、待处理事项、快捷入口 | | 商品管理 | 商品列表、商品分类、商品规格、商品评价 | | 订单管理 | 订单列表、订单详情、订单发货、退款/售后处理 | | 会员管理 | 会员列表、会员等级、会员标签、余额明细 | | 营销中心 | 优惠券管理、文章管理、文章分类、专题管理、推荐位、收藏管理 | | 门店管理 | 门店列表、门店店员、门店订单(自提/核销) | | 页面装修 | 首页装修、分类页装修、个人中心装修、底部导航、主题风格 | | 数据统计 | 销售统计、用户统计 | | 应用设置 | 小程序配置、微信配置 | | 系统设置 | 店铺信息、交易设置、配送方式、快递公司、退货地址、上传设置、打印机、打印模板、短信设置、客服设置 | | 权限管理 | 店铺账号、角色权限、登录日志、操作日志 | | 文件管理 | 文件库、文件分组 | ### 移动端(jjj_shop_single_cloud_app) 面向终端用户使用(微信小程序/H5/多端)。 | 模块 | 功能 | |------|------| | 首页 | 轮播图、商品推荐、分类导航、营销活动入口 | | 商品浏览 | 商品列表、商品详情、商品搜索、商品分类 | | 购物车 | 加入购物车、购物车管理、批量结算 | | 订单流程 | 确认订单、收银台支付、订单列表、订单详情、物流跟踪、订单评价 | | 售后服务 | 申请退款、退款详情 | | 会员中心 | 个人信息、收货地址管理、我的优惠券、我的收藏、我的钱包、积分明细 | | 营销活动 | 优惠券领取 | | 内容浏览 | 文章列表、文章详情 | | 门店服务 | 门店列表、门店详情、门店订单(自提) | | 自定义页面 | 支持 DIY 页面装修 | | 微信功能 | 微信登录、微信支付、手机号绑定 | ## 数据库 `database/` 或 `db/` 目录包含数据库初始化和迁移脚本。 ## 环境要求 | 环境类型 | 开发工具 | 版本要求 | |---------|---------|---------| | Java 后端 | IntelliJ IDEA(必须安装 lombok 插件) | JDK 17+、Maven 3.6+ | | 后端 Vue 管理页面 | HBuilderX、VSCode 等 JS 开发工具 | Node 16.14.0+(推荐 16) | | 前端页面 | HBuilderX | uni-app | | 数据库 | MySQL | 5.7+ / 8.0+ | | 缓存 | Redis | 3.0+ | | 注册中心 | Nacos | 2.0.4+ | :warning: **注意**: - Node.js 16 版本以下存在兼容性问题,请勿使用 - 必须安装 Nacos 作为注册中心和配置中心 - JDK 必须使用 17 或以上版本 ## 快速开始 ### 1. 数据库安装 ```bash # MySQL 5.7 或 8.0 新建数据库 CREATE DATABASE jjj_shop_single_cloud DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; # 导入脚本 database/init.sql 或 db/init.sql ``` ### 2. Redis 安装 ```bash # 安装 Redis 3.0+,设置密码 ``` ### 3. Nacos 安装 ```bash # 下载 Nacos 2.0.4+ # 启动 Nacos # Windows: startup.cmd -m standalone # Linux/Mac: sh startup.sh -m standalone # 访问 Nacos 控制台: http://localhost:8848/nacos # 默认账号密码: nacos/nacos ``` ### 4. 后端启动 ```bash # 用 IDEA 打开 jjj_shop_single_cloud 目录,配置 Maven 镜像,编译成功 # 必须安装 lombok 插件 # 修改 Nacos 配置 # 在 pom.xml 中配置 Nacos 地址(默认 127.0.0.1:8848) # 启动微服务(按顺序启动) # 1. 启动 Nacos(必须先启动) # 2. 启动 jjj-cloud-gateway(网关服务,端口 9999) # 3. 启动 jjj-system-cloud-start(系统服务,端口 10001) # 4. 可选:启动 jjj-cloud-monitor(监控服务,端口 9100) # 5. 可选:启动 jjj-cloud-xxljob(任务调度,端口 9900) # 接口文档地址:http://localhost:9999/doc.html(通过网关访问) ``` ### 5. 店铺端页面启动 ```bash # cmd 进入 jjj_shop_single_cloud_shop 目录 cd jjj_shop_single_cloud_shop npm install # 修改 .env.development 里面的后端地址,默认是 http://127.0.0.1:9999(网关地址) npm run dev # 启动成功后进入后台,默认密码 admin/123456 ``` ### 6. 管理端页面启动 ```bash # cmd 进入 jjj_shop_single_cloud_admin 目录 cd jjj_shop_single_cloud_admin npm install # 修改 .env.development 里面的后端地址(网关地址) npm run dev ``` ### 7. uni-app 移动端启动 ```bash # 用 HBuilderX 打开 jjj_shop_single_cloud_app 目录 # 修改 manifest.json 文件,可视化修改 Web 配置 -> 路由模式为 hash # 修改 env/development.js 里面的域名,默认是 http://127.0.0.1:9999(网关地址) # 点击菜单 运行 -> 运行到浏览器 -> Chrome # 或编译到微信小程序 # 点击菜单 运行 -> 运行到小程序模拟器 -> 微信开发者工具 ``` ## 部署说明 ### 生产环境打包 ```bash # 后端打包(微服务模式) cd jjj_shop_single_cloud mvn clean package -P prod,SpringCloud # 店铺端打包 cd jjj_shop_single_cloud_shop npm run build # 管理端打包 cd jjj_shop_single_cloud_admin npm run build # 移动端打包 # 使用 HBuilderX 打开 jjj_shop_single_cloud_app # 点击菜单 发行 -> 小程序-微信(仅适用于uni-app) # 或 发行 -> H5 ``` ### 部署建议 - **Nacos**:生产环境建议集群部署,配置持久化到 MySQL - **网关**:使用 Nginx 反向代理 Gateway,配置负载均衡 - **微服务**:使用 Systemd/Supervisor 守护进程,配置健康检查 - **前端**:静态文件部署到 Nginx,配置 gzip 压缩 - **数据库**:定期备份,开启慢查询日志,配置主从复制 - **Redis**:配置持久化,设置合理的过期策略,建议哨兵模式 - **文件存储**:生产环境建议使用云存储(七牛云/阿里云/腾讯云/华为云) - **监控告警**:配置 Spring Boot Admin 监控,接入告警通知 - **日志收集**:建议使用 ELK 或其他日志收集系统 ## 技术架构 ![技术架构图](https://foruda.gitee.com/images/1749634329811378113/a768a9b3_9997652.png) ## 项目截图 ### 移动端截图 | ![移动端1](https://foruda.gitee.com/images/1749636050678182413/118fc487_9997652.png) | ![移动端2](https://foruda.gitee.com/images/1749635602135977632/742d9057_9997652.png) | ![移动端3](https://foruda.gitee.com/images/1749636063987010655/3922dcfa_9997652.png) | |---|---|---| | ![移动端4](https://foruda.gitee.com/images/1749636080124403652/17d1831f_9997652.png) | ![移动端5](https://foruda.gitee.com/images/1749636096867223421/558fe5fe_9997652.png) | ![移动端6](https://foruda.gitee.com/images/1749636114535313555/cd45d7c7_9997652.png) | ### 后台截图 ![后台截图1](https://foruda.gitee.com/images/1749635861039947088/8a819d8b_9997652.png) ![后台截图2](https://foruda.gitee.com/images/1749635889293387603/b569ba0f_9997652.png) ![后台截图3](https://foruda.gitee.com/images/1749635899674914821/952fcc72_9997652.png) ![后台截图4](https://foruda.gitee.com/images/1749635914780607890/cbce9c2b_9997652.png) ## 开发指南 | 名称 | 地址 | |------|------| | 官方文档 | https://doc.jjjshop.net/SingleJava | | 视频教程 | https://doc.jjjshop.net/SingleJava?category_id=10032&document_id=1292 | | 本地安装 | https://doc.jjjshop.net/SingleJava?category_id=10032&document_id=419 | | 线上部署 | https://doc.jjjshop.net/SingleJava?category_id=10032&document_id=425 | | 二开说明 | https://doc.jjjshop.net/SingleJava?category_id=10032&document_id=428 | | 功能说明 | https://doc.jjjshop.net/SingleJava?category_id=10032&document_id=432 | | 常见问题 | https://doc.jjjshop.net/SingleJava?category_id=10032&document_id=1048 | | 接口文档 | 支持 Swagger/Knife4j | ## 特别感谢 - Gitee 官方 - Spring Cloud Alibaba: [https://github.com/alibaba/spring-cloud-alibaba](https://github.com/alibaba/spring-cloud-alibaba) - Nacos: [https://nacos.io/](https://nacos.io/) - 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/) ## 技术支持 - **官网地址**:[https://www.jjjshop.net](https://www.jjjshop.net) - **交流QQ群**:638926352 - **问题反馈**:提交 Issue - **邮箱**:279517889@qq.com --- 如果这个项目对你有帮助,欢迎 Star ⭐ 支持!