Mall4cloud

微服务商城系统
授权协议 AGPLv3
开发语言 Java
所属分类 建站系统、 网店系统/电子商务
软件类型 开源软件
地区 国产
投 递 者 戚甫
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

本商城是基于Spring Cloud、Nacos、Seata、Mysql、Redis、RocketMQ、canal、ElasticSearch、minio的微服务B2B2C电商商城系统,采用主流的互联网技术架构、全新的UI设计、支持集群部署、服务注册和发现以及拥有完整的订单流程等,代码完全开源,没有任何二次封装,是一个非常适合二次开发的电商平台系统。

本商城致力于为中大型企业打造一个功能完整、易于维护的微服务B2B2C电商商城系统,采用主流微服务技术实现。后台管理系统包含平台管理,店铺管理、商品管理、订单管理、规格管理、权限管理、资源管理等模块。

文档

这代码有没有文档呀? 当然有啦,你已经下载了,在doc这个文件夹上,实在不知道,我就给链接出来咯:

gitee:https://gitee.com/gz-yami/mall4cloud/tree/master/doc

本项目是一个极度遵守阿里巴巴代码规约的项目,以下是代码规约扫描结果

阿里代码规约扫描结果

具体目录结构和代码规范,可以查看 https://gitee.com/gz-yami/mall4cloud/tree/master/doc/%E4%BB%A3%E7%A0%81%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84

授权

除开源版本外,本商城还提供商业版本的商城,欲知详情,请访问官网。

商城官网:https://www.mall4j.com

商城使用 AGPLv3 开源,请遵守 AGPLv3 的相关条款,或者联系作者获取商业授权(https://www.mall4j.com)

项目链接

https://gitee.com/gz-yami/mall4cloud

目录结构规范

我们也有自己的目录结构

img

  • VO(View Object):显示层对象,通常是 Web 向模板渲染引擎层传输的对象。
  • DTO(Data Transfer Object):数据传输对象,前端像后台进行传输的对象,类似于param。
  • BO(Business Object):业务对象,内部业务对象,只在内部传递,不对外进行传递。
  • Model:模型层,此对象与数据库表结构一一对应,通过 Mapper 层向上传输数据源对象。
  • Controller:主要是对外部访问控制进行转发,各类基本参数校验,或者不复用的业务简单处理等。为了简单起见,一些与事务无关的代码也在这里编写。
  • FeignClient:由于微服务之间存在互相调用,这里是内部请求的接口。
  • Controller:主要是对内部访问控制进行转发,各类基本参数校验,或者不复用的业务简单处理等。为了简单起见,一些与事务无关的代码也在这里编写。
  • Service 层:相对具体的业务逻辑服务层。
  • Manager 层:通用业务处理层,它有如下特征:
    • 1) 对第三方平台封装的层,预处理返回结果及转化异常信息,适配上层接口。
    • 2) 对 Service 层通用能力的下沉,如缓存方案、中间件通用处理。
    • 3) 与 DAO 层交互,对多个 DAO 的组合复用。
  • Mapper持久层:数据访问层,与底层 MySQL进行数据交互。
  • Task层:由于每个服务之间会存在定时任务,比如定时确认收货,定时将活动失效等情况,这里面的Task实际上连接的是xxl-job(具体可以查看 https://github.com/xuxueli/xxl-job )进行任务调度。
  • Listener:监听 RocketMQ 进行处理,有时候会监听easyexcel相关数据。

关于FeignClient,由于微服务之间存在互相调用,Feign 是http协议,理论上是为了解耦,而实际上提供方接口进行修改,调用方却没有进行修改的时候,会造成异常,所以我们抽取出来。还有就是对内暴露的接口,是很多地方都公用的,所以我们还将接口抽取了出了一个模块,方便引用。可以看到mall4cloud-api这个模块下是所有对内feign接口的信息。

目录结构

mall4cloud
├─mall4cloud-api -- 内网接口
│  ├─mall4cloud-api-auth  -- 授权对内接口
│  ├─mall4cloud-api-biz  -- biz对内接口
│  ├─mall4cloud-api-leaf  -- 美团分布式id生成接口
│  ├─mall4cloud-api-multishop  -- 店铺对内接口
│  ├─mall4cloud-api-order  -- 订单对内接口
│  ├─mall4cloud-api-platform  -- 平台对内接口
│  ├─mall4cloud-api-product  -- 商品对内接口
│  ├─mall4cloud-api-rbac  -- 用户角色权限对内接口
│  ├─mall4cloud-api-search  -- 搜索对内接口
│  └─mall4cloud-api-user  -- 用户对内接口
├─mall4cloud-auth  -- 授权校验模块
├─mall4cloud-biz  -- mall4cloud 业务代码。如图片上传/短信等
├─mall4cloud-common -- 一些公共的方法
│  ├─mall4cloud-common-cache  -- 缓存相关公共代码
│  ├─mall4cloud-common-core  -- 公共模块核心(公共中的公共代码)
│  ├─mall4cloud-common-database  -- 数据库连接相关公共代码
│  ├─mall4cloud-common-order  -- 订单相关公共代码
│  ├─mall4cloud-common-product  -- 商品相关公共代码
│  ├─mall4cloud-common-rocketmq  -- rocketmq相关公共代码
│  └─mall4cloud-common-security  -- 安全相关公共代码
├─mall4cloud-gateway  -- 网关
├─mall4cloud-leaf  -- 基于美团leaf的生成id服务
├─mall4cloud-multishop  -- 商家端
├─mall4cloud-order  -- 订单服务
├─mall4cloud-payment  -- 支付服务
├─mall4cloud-platform  -- 平台端
├─mall4cloud-product  -- 商品服务
├─mall4cloud-rbac  -- 用户角色权限模块
├─mall4cloud-search  -- 搜索模块
└─mall4cloud-user  -- 用户服务

技术选型

技术 版本 说明
Spring Boot 2.4 MVC核心框架
Feign 3.0 服务调用
Nacos 2.0 服务注册与发现
Seata 1.4 分布式事务
Mybatis 2.1 持久层框架
hutool 5.5 JAVA工具集
pagehelper 1.3 Mybatis分页插件
Redis 2.4 分布式缓存
RocketMQ 2.2 消息队列
canal 1.1 数据库同步
Spring Cloud Gateway 3.0 网关
Spring Cloud LoadBalancer 3.0 负载均衡
ElasticSearch 7.9 数据搜索
minio 8.0 文件上传
Knife4j 3.0 MVC框架集成Swagger生成Api文档
Element UI 2.13 UI框架
vue、uni-app vue2.6 JS框架

系统架构图

架构图

商城部署后 API 地址

服务 地址
mall4cloud-gatway 网关服务 http://127.0.0.1:9000
mall4cloud-auth 授权校验服务 http://127.0.0.1:9101
mall4cloud-biz 业务代码服务(如图片上传/短信等) http://127.0.0.1:9000
mall4cloud-leaf 基于美团leaf的生成id服务 http://127.0.0.1:9100
mall4cloud-multishop 商家服务 http://127.0.0.1:9103
mall4cloud-order 订单服务 http://127.0.0.1:9106
mall4cloud-payment 支付服务 http://127.0.0.1:9113
mall4cloud-product 商品服务 http://127.0.0.1:9112
mall4cloud-rbac 用户角色服务 http://127.0.0.1:9102
mall4cloud-search 搜索服务 http://127.0.0.1:9108
mall4cloud-user 用户服务 http://127.0.0.1:9105

部署教程

部署教程请参考该文件夹下的/基本开发文档/mall4cloud开发环境搭建.md以及/开发环境搭建目录下的中间件安装。

代码运行相关截图

1.后台截图

  • 平台端

    image-20210705152109738

  • 商家端

    image-20210705151729559

    image-20210705151847270

2.uni-app截图

  •             Hashtable ht = new Hashtable();             Hashtable htRemove = new Hashtable();             foreach (DataGridViewColumn col in DataGridView1.Columns)             {                 ht[col

 相关资料
  • ⭐️⭐️⭐️Mall4j商城是基于springboot的电商商城系统。本电商商城是前后端分离的商城,轻量级的商城。商城支持集群。B2C商城 BBC商城 O2O商城 B2B2C商城 多语言商城 小程序商城 PC商城 H5商城 APP商城 Java商城 分销商城 多用户商城 uniapp商城 跨境电商 前言 Mall4j项目致力于为中小企业打造一个完整、易于维护的开源的电商系统,采用现阶段流行技术实现

  • 本文向大家介绍golang实现微信小程序商城后台系统(moshopserver),包括了golang实现微信小程序商城后台系统(moshopserver)的使用技巧和注意事项,需要的朋友参考一下 golang和c/c++比起来是一门新的语言,一直想学,网上搜集了一些资料,有些人说很容易上手,确实是这样,和C/C++比起来,少了很多乱七八糟的语法。学一门新的语言,最好的方法就是动手写一些东西,最近小

  •  迅睿MALL开源商城系统是一套完善的B2B2C(多店铺商城)解决方案。系统使用国外优秀开源框架codeigniter4,H5端采用bootstrap,前后端分离,基于PHP7+MySQL开发,采用B/S架构,依据10年电商经验打造出的一套开源的B2B2C电子商务系统。   迅睿MALL商城系统技术评价 1、B/S架构 2、codeigniter4架构,H5端采用bootstrap 3、支持自定义

  • 我最近开始使用Node.js,我必须构建一个应该使用多个Express.js服务的体系结构。其中一些服务必须位于一台服务器上,另一台则位于其他服务器上。我想构建一个基础服务(像API网关),但是我不知道在这个网关和微服务之间,或者在两个微服务之间进行通信的合适方式是什么。 目前我正在研究一个基于此的解决方案:

  • 企业微信第三方回调协议 SDK 默认会处理事件 suite_ticket ,并会缓存 suite_ticket {info} 需要注意的是:授权成功、变更授权、取消授权通知时间的响应必须在1000ms内完成,以保证用户安装应用的体验。建议在接收到此事件时 立即回应企业微信,之后再做相关业务的处理。 $server = $app->server; $server->push(function ($

  • Niushop 开源商城系统为新零售系统、多商户B2B2C、单用户B2C、开源微商城、电商小程序商城、o2o商城系统公司提供免费开源商城平台。