- 后端
- 电商
- 微服务
- API网关
【免费下载链接】mall-swarm
mall-swarm是一套微服务商城系统,采用了 Spring Cloud Alibaba、Spring Boot 3.5、Sa-Token、MyBatis、Elasticsearch、Docker、Kubernetes等核心技术,同时提供了基于Vue的管理后台方便快速搭建系统。mall-swarm在电商业务的基础集成了注册中心、配置中心、监控中心、网关等系统功能。
导读:本文以
mall-swarm仓库中的功能结构说明文档(document/reference/function.md)为主线,逐模块拆解这套微服务商城系统的完整功能地图:后台管理系统涵盖商品、订单、促销、内容、用户五大管理域,前台商城系统则面向 C 端用户提供首页、搜索、购物车、下单与会员服务。读完本文,你将掌握每个功能域背后的 Controller 入口、核心业务能力与在仓库中的对应源码位置,可直接对照 mall-admin 与 mall-portal 模块的代码进行二次开发或功能扩展。
一、功能结构总览:后台管业务、前台管交易
mall-swarm在电商业务的基础上集成了注册中心、配置中心、监控中心、网关等微服务系统功能,业务侧则严格划分为两个子系统(详见 README.md 中的组织结构):
- 后台管理系统(
mall-admin服务):面向运营与管理员,负责商品、订单、促销、内容、用户等后台管理功能,前端配套 Vue 项目mall-admin-web; - 前台商城系统(
mall-portal服务):面向消费者,负责首页内容、商品检索、购物车、下单支付、会员中心等交易链路功能,前端配套mall-app-web移动端项目。
仓库中的 document/mind 目录存放了与各功能域一一对应的思维导图源文件(pms.emmx商品、oms.emmx订单、sms.emmx促销、cms.emmx内容、ums.emmx用户、home.emmx首页、app.emmx前台应用),完整展示了各模块的功能点树状结构;而 document/sql/mall.sql 则提供了全量数据库表结构,与下文各模块的 Mapper 模型一一对应。
下面按照原文档的章节顺序,对每个功能域进行源码级展开。
二、后台管理系统:商品管理
商品管理是电商后台最核心的模块,对应数据库表前缀pms_(Product Management System),所有后端能力集中在mall-admin模块下com.macro.mall.controller包的Pms*Controller系列中。
商品 CRUD 与批量状态操作
核心入口是 PmsProductController.java,路由前缀/product,围绕商品主数据提供:
| 功能点 | 接口 | 说明 |
|---|---|---|
| 创建商品 | POST /product/create | 接收PmsProductParam,一次写入商品主表、SKU、属性、阶梯价、满减等多张表 |
| 商品编辑回显 | GET /product/updateInfo/{id} | 返回PmsProductResult聚合编辑信息 |
| 更新商品 | POST /product/update/{id} | 全量更新商品及其关联数据 |
| 分页查询 | GET /product/list | 支持PmsProductQueryParam组合条件,默认每页 5 条 |
| 模糊查询 | GET /product/simpleList | 按商品名称或货号模糊匹配 |
| 批量审核 | POST /product/update/verifyStatus | 批量修改审核状态并记录审核意见 |
| 批量上下架 | POST /product/update/publishStatus | 上架/下架控制 |
| 批量推荐 / 新品 | POST /product/update/recommendStatus、POST /product/update/newStatus | 控制商品在首页的推荐位与新品位 |
| 批量删除 | POST /product/update/deleteStatus | 逻辑删除(修改删除状态) |
其中"商品创建/更新"涉及的多表写入逻辑,可在 PmsProductServiceImpl.java 中看到它对PmsProductAttributeValue、PmsSkuStock、PmsProductLadder、PmsProductFullReduction等模型(见 mall-mbg 的model目录)的协同操作。
商品分类、品牌、属性与 SKU
商品管理域还包括四个独立的管理入口,分别对应数据库pms_brand、pms_product_category、pms_product_attribute、pms_sku_stock等表:
- 品牌管理PmsBrandController.java:品牌增删改查、按首字母检索、批量上下架品牌推荐位;
- 商品分类管理PmsProductCategoryController.java:支持父子层级分类(
parentId形成树形结构),可配置分类属性筛选; - 商品属性管理PmsProductAttributeController.java 与 PmsProductAttributeCategoryController.java:管理属性类型(规格参数/销售属性)及属性分类,前台 SKU 的生成依赖这套数据;
- SKU 库存管理PmsSkuStockController.java:按商品查询库存、批量修改库存数量、按 SKU 编码模糊查询。
三、后台管理系统:订单管理
订单管理对应数据库表前缀oms_(Order Management System),核心入口是 OmsOrderController.java,路由前缀/order:
| 功能点 | 接口 | 说明 |
|---|---|---|
| 订单查询 | GET /order/list | 按OmsOrderQueryParam(订单编号、收货人、订单状态等)分页检索 |
| 批量发货 | POST /order/update/delivery | 接收OmsOrderDeliveryParam列表批量填物流单号 |
| 批量关闭订单 | POST /order/update/close | 关闭超时未支付等订单并附备注 |
| 批量删除 | POST /order/delete | 逻辑删除订单 |
| 订单详情 | GET /order/{id} | 返回OmsOrderDetail,聚合订单信息、商品信息与操作记录 |
| 修改收货人 | POST /order/update/receiverInfo | 修改收货地址信息 |
| 修改费用 | POST /order/update/moneyInfo | 修改订单金额相关字段 |
| 订单备注 | POST /order/update/note | 修改订单备注并记录操作日志 |
订单域还包含三个配套管理模块:
- 退货申请处理OmsOrderReturnApplyController.java:退货申请的分页查询、详情查看、审核(同意/拒绝)、确认收货等售后全流程;
- 退货原因设置OmsOrderReturnReasonController.java:前台发起退货时可选原因的管理;
- 订单设置OmsOrderSettingController.java:配置未支付订单超时时间、收货后超时时间等业务规则(对应
oms_order_setting表); - 公司收货地址OmsCompanyAddressController.java:管理发货地址库,供订单发货时选用。
与订单相关的查询聚合逻辑位于 OmsOrderServiceImpl.java,其通过 OmsOrderDao.java 完成多表联查;订单操作记录的写入则由 OmsOrderOperateHistoryDao.java 支撑。
四、后台管理系统:促销管理
促销管理对应数据库表前缀sms_(Sales & Marketing System),是 mall 系电商的特色模块,覆盖优惠券、限时购、首页营销位三大块。
优惠券体系
- 优惠券管理SmsCouponController.java:优惠券的创建(
SmsCouponParam支持关联适用商品或商品分类)、删除、修改、按名称/类型分页查询; - 优惠券领取记录SmsCouponHistoryController.java:查询会员领取与使用历史,可手动发放优惠券。
优惠券的适用商品与分类关系分别落在sms_coupon_product_relation、sms_coupon_product_category_relation表,对应 SmsCouponDao.java 中的聚合查询实现。
限时购活动
- 限时购活动SmsFlashPromotionController.java:活动本身的增删改查与上下线控制;
- 限时购场次SmsFlashPromotionSessionController.java:一天内多个秒杀场次(如 10 点场、14 点场)的管理;
- 限时购与商品关联SmsFlashPromotionProductRelationController.java:配置每个场次参与秒杀的商品、秒杀价格与限购数量,其查询结果通过 SmsFlashPromotionProductRelationDao.java 联查商品信息。
首页营销位
首页营销内容由 5 个SmsHome*Controller支撑,分别管理轮播广告、品牌推荐、新品推荐、人气推荐与专题推荐:
- SmsHomeAdvertiseController.java:首页轮播广告位;
- SmsHomeBrandController.java:首页品牌推荐;
- SmsHomeNewProductController.java:新品推荐位;
- SmsHomeRecommendProductController.java:人气推荐位;
- SmsHomeRecommendSubjectController.java:专题推荐位。
这些营销位数据正是前台首页各推荐列表的数据来源,形成了"后台配置、前台展示"的闭环。
五、后台管理系统:内容管理
内容管理对应数据库表前缀cms_(Content Management System),主要承载商城的内容运营素材:
- 商品专题管理CmsSubjectController.java:
GET /subject/listAll获取全部专题、GET /subject/list按名称分页查询;专题是前台首页内容聚合(如HomeController的/home/subjectList)与专题推荐位的数据源; - 优选专区管理CmsPrefrenceAreaController.java:管理"优选专区"内容,专区与商品的关联通过
cms_prefrence_area_product_relation表维护(见 CmsPrefrenceAreaProductRelationDao.java)。
内容域对应的 Mapper 模型(CmsSubject、CmsPrefrenceArea等)可在 mall-mbg/src/main/java/com/macro/mall/model 中查看,服务层实现位于 CmsSubjectServiceImpl.java 与 CmsPrefrenceAreaServiceImpl.java。
六、后台管理系统:用户管理
用户管理对应数据库表前缀ums_(User Management System),涵盖管理员账号、角色权限与会员等级三大体系。
后台账号与权限(Sa-Token 鉴权)
核心入口是 UmsAdminController.java,路由前缀/admin:
- 用户注册
POST /admin/register、登录POST /admin/login(返回 Sa-Token Token,tokenHead前缀取自sa-token.token-prefix配置); - 获取当前登录用户信息
GET /admin/info:返回用户名、菜单树(roleService.getMenuList)、角色列表与头像; - 用户列表分页、增删改、修改密码(区分参数不合法/用户不存在/旧密码错误等返回码);
- 帐号状态启停
POST /admin/updateStatus/{id}; - 用户-角色分配
POST /admin/role/update与角色查询GET /admin/role/{adminId}。
配套的权限基础设施包括:
- 角色管理UmsRoleController.java:角色 CRUD 及角色-菜单、角色-资源分配;
- 菜单管理UmsMenuController.java:动态菜单树的维护(返回
UmsMenuNode树结构,前端据此渲染侧边栏); - 资源管理UmsResourceController.java 与 UmsResourceCategoryController.java:后台接口资源的登记与分类,配合网关侧 StpInterfaceImpl.java 实现基于 Sa-Token 的接口级权限校验。
会员等级
UmsMemberLevelController.java 管理会员等级定义(如普通会员、黄金会员等),对应ums_member_level表,是前台下单时积分/折扣计算的重要依据。
七、前台商城系统
前台商城系统对应mall-portal服务,路由集中在com.macro.mall.portal.controller包,面向消费者提供完整的购物链路。
首页内容聚合
HomeController.java 聚合了首页所需的全部分区数据:
GET /home/content:一次性返回HomeContentResult(含轮播广告、秒杀信息、新品、人气推荐、品牌推荐、专题推荐等聚合内容);GET /home/recommendProductList:分页获取推荐商品(默认每页 4 条);GET /home/productCateList/{parentId}:按父分类获取商品分类列表;GET /home/subjectList:按分类获取专题;GET /home/hotProductList/GET /home/newProductList:人气与新品推荐(默认每页 6 条)。
这些接口的数据源正是上文后台"首页营销位"模块配置的数据,聚合逻辑在 HomeServiceImpl.java 中通过 HomeDao.java 完成多表联查。
商品搜索与详情
PmsPortalProductController.java 提供 C 端商品能力:
GET /product/search:综合搜索、筛选与排序,sort参数语义为:0按相关度、1按新品、2按销量、3价格从低到高、4价格从高到低;GET /product/categoryTreeList:返回PmsProductCategoryNode树形商品分类;GET /product/detail/{id}:返回PmsPortalProductDetail聚合详情(基本信息、属性、规格、促销信息等)。
购物车
OmsCartItemController.java 以当前登录会员为维度管理购物车:添加商品、获取购物车列表、获取含促销信息的购物车列表(GET /cart/list/promotion,返回CartPromotionItem计算满减/优惠券优惠)、修改数量、重选规格(GET /cart/getProduct/{productId})、删除与清空。促销计算的核心算法在 OmsPromotionServiceImpl.java 中实现。
下单与支付
- 订单提交OmsPortalOrderController.java:确认订单(
OrderParam)、生成订单(含库存锁定与促销优惠计算)、取消超时订单(配合 CancelOrderReceiver.java 的 RabbitMQ 延时队列消息与 OrderTimeOutCancelTask.java 定时任务兜底); - 支付宝支付AlipayController.java:支付下单、支付结果异步回调处理;
- 退货申请OmsPortalOrderReturnApplyController.java:消费者发起售后申请。
会员中心与增值功能
- 会员登录注册UmsMemberController.java:手机验证码注册/登录(
GET /sso/getAuthCode)、登录返回 Sa-Token Token、获取会员信息、修改密码; - 收货地址UmsMemberReceiveAddressController.java:地址簿的增删改查与默认地址设置;
- 会员优惠券UmsMemberCouponController.java:领券、可用/已用/过期优惠券列表、下单时获取可用优惠券;
- 商品收藏MemberProductCollectionController.java 与品牌关注MemberAttentionController.java:基于 MongoDB(Repository 层见 repository)实现收藏与关注;
- 浏览历史MemberReadHistoryController.java:基于 MongoDB 记录商品浏览历史。
前台商城还有独立的搜索服务mall-search,基于 Elasticsearch 实现商品搜索(EsProductController.java),提供从数据库导入 ES、综合搜索(按关键字/品牌/分类/价格区间/排序)等功能,是对mall-portal商品搜索的工程化替代方案。
八、功能地图速查:模块与服务对照
| 功能域 | 后台服务模块 | 前台服务模块 | 主要表前缀 | 核心 Controller |
|---|---|---|---|---|
| 商品管理 | mall-admin | mall-portal / mall-search | pms_ | PmsProductController 等 |
| 订单管理 | mall-admin | mall-portal | oms_ | OmsOrderController、OmsPortalOrderController |
| 促销管理 | mall-admin | mall-portal | sms_ | SmsCouponController、SmsFlashPromotionController 等 |
| 内容管理 | mall-admin | mall-portal | cms_ | CmsSubjectController、HomeController |
| 用户管理 | mall-admin | mall-portal | ums_ | UmsAdminController、UmsMemberController |
| 会员增值 | — | mall-portal | MongoDB 集合 | MemberProductCollectionController 等 |
由此可以看出mall-swarm的功能架构遵循"后台配置(mall-admin)→ 前台消费(mall-portal)"的清晰分层:后台五大管理域负责业务数据的生产与运营配置,前台商城系统负责将这些数据转化为 C 端购物体验。读者在定位任意功能时,可按"数据库表前缀 → mall-mbg 模型 → mall-admin/mall-portal Controller → Service 实现"的四步路径快速溯源,这也是基于本文功能地图进行二次开发的最实用方法。
- 后端
- 电商
- 微服务
- API网关
【免费下载链接】mall-swarm
mall-swarm是一套微服务商城系统,采用了 Spring Cloud Alibaba、Spring Boot 3.5、Sa-Token、MyBatis、Elasticsearch、Docker、Kubernetes等核心技术,同时提供了基于Vue的管理后台方便快速搭建系统。mall-swarm在电商业务的基础集成了注册中心、配置中心、监控中心、网关等系统功能。
相关推荐
mall-swarm 微服务商城功能结构全解:后台五大模块与前台商城系统功能清单
mall swarm 微服务商城功能结构全解:后台五大模块与前台商城系统功能清单 mall swarm 是基于 Spring Cloud Alibaba 的微服
后端微服务电商API网关mall 电商系统功能结构全解:后台管理系统与前台商城系统模块深度剖析
mall 电商系统功能结构全解:后台管理系统与前台商城系统模块深度剖析 本篇指南基于 mall 项目的 功能结构说明文档 https://link.gitcod
后端电商认证鉴权搜索引擎mall 电商项目功能结构全解析:后台管理系统与前台商城系统的模块化设计
mall 电商项目功能结构全解析:后台管理系统与前台商城系统的模块化设计 导读 本文以 mall 项目官方文档 function.md https://link
后端电商搜索引擎
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考