ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

mall-swarm 微服务商城开发全景指南:从技术选型到前后台功能清单

mall-swarm 微服务商城开发全景指南:从技术选型到前后台功能清单 后端电商微服务API网关【免费下载链接】mall-swarmmall-swarm是一套微服务商城系统采用了 Spring Cloud Alibaba、Spring Boot 3.5、Sa-Token、MyBatis、Elasticsearch、Docker、Kubernetes等核心技术同时提供了基于Vue的管理后台方便快速搭建系统。mall-swarm在电商业务的基础集成了注册中心、配置中心、监控中心、网关等系统功能。项目地址https://gitcode.com/gh_mirrors/ma/mall-swarm点击查看免费下载本文以仓库内 document/reference/dev_flow.md 为骨架系统梳理 mall-swarm微服务商城系统采用 Spring Cloud 2025 Alibaba、Spring Boot 3.5、Sa-Token、MyBatis、Elasticsearch、Docker、Kubernetes 等核心技术的技术选型、框架搭建清单以及后台管理与前台商城两大业务模块的功能全景同时结合仓库源码逐项印证每个功能点的落地实现。读完本文你将获得一份可检索、可对照源码的功能地图能快速定位某个功能在哪个模块、由哪个类实现、调用链如何。一、技术选型全景dev_flow 文档以技术选型开篇给出了一套完整的商城系统技术栈。这套选型在仓库 pom.xml 的依赖管理中均有实际落地Spring Cloud 2025.0.2、Spring Boot 3.5.14、Spring Cloud Alibaba 2025.0.0.0、JDK 17、Sa-Token 1.42.0 等版本均可在根 pom.xml 的属性区查证。1. 后端技术技术名称仓库落地位置Spring Boot容器 MVC 框架各服务启动类如 mall-adminSpring Security → Sa-Token认证和授权框架网关侧 SaTokenConfig.java 与 StpInterfaceImpl.javaMyBatisORM 框架各服务 MyBatisConfig.javaMyBatisGenerator数据层代码生成mall-mbgPageHelperMyBatis 物理分页插件分页查询统一返回 CommonPage.javaKnife4j / Swagger-UI文档生产工具各服务 SpringDocConfig.java网关聚合 API 文档Hibernator-Validator验证框架全局异常处理捕获校验异常见 GlobalExceptionHandler.javaElasticsearch搜索引擎mall-searchRabbitMq消息队列订单超时取消见 mall-portalRedis分布式缓存通用封装 RedisService.javaMongoDbNoSQL 数据库会员足迹/收藏/关注见 mall-portalDocker应用容器引擎根 pom.xml 集成 fabric8 docker-maven-plugin构建openjdk:17镜像Druid数据库连接池根 pom.xml 引入druid-spring-boot-3-starter需要说明dev_flow 文档中的Spring Security是单体 mall 时代的技术记录当前仓库master分支已演进为Sa-Token认证方案网关通过 StpInterfaceImpl.java 注入后台用户的权限码列表后台与前台通过loginType区分。这是从源码可以确认的演进事实。2. 前端技术技术名称Vue前端框架Vue-router路由框架Vuex全局状态管理框架Element前端 UI 框架Axios前端 HTTP 框架Js-cookiecookie 管理工具前端项目为独立的mall-admin-webVue 管理后台与mall-app-web前台商城本仓库仅包含后端微服务前端技术栈作为开发配套记录于 dev_flow。二、框架搭建清单20 项基础设施逐项落地dev_flow 用一张功能/完成清单记录了框架搭建进度。这张清单不是空头支票仓库源码中每一项都有对应实现功能状态源码佐证集成 MyBatis✔MyBatisConfig.java集成 MyBatisGenerator✔Generator.java 读取/generatorConfig.xmloverwritetrue覆盖生成 Mapper/Model/Example产物见 mall-mbg集成 Spring Security / Sa-Token✔网关 StpInterfaceImpl.java 实现权限数据注入集成 Swagger-UIKnife4j✔各服务 SpringDocConfig.java集成 Hibernator-Validator✔GlobalExceptionHandler.java 捕获MethodArgumentNotValidException/BindException返回参数校验失败结果集成日志功能✔WebLogAspect.java 统一 Web 日志切面集成监控功能✔mall-monitor基于 Spring Boot Admincrud 操作 demo✔各 Controller 完整 CRUD如 PmsProductController.java合理规划包结构✔controller / service / dao / dto / domain 分层见 mall-adminSpringAOP 通用日志处理✔WebLogAspect.java 用Around记录 URL、方法、参数、耗时并通过 Logstash 写入 ElasticsearchSpringAOP 通用验证失败结果返回✔结合 Validator 与 GlobalExceptionHandler.javaCommonResult 对通用返回结果封装✔CommonResult.java 提供success/failed/validateFailed/unauthorized/forbidden静态工厂错误码枚举见 ResultCode.java200 成功、500 失败、404 参数校验失败、401 未登录、403 无权限JWT 登录、注册、获取 token✔mall-auth 认证中心 AuthController.javaSa-Token 整合 jwtJTA 事务处理✔依赖 Seata 全局事务框架见根 pom.xml 依赖管理备注集成单元测试✔各服务 test 目录如 PmsDaoTests.java、PortalProductDaoTests.javaOSS 上传功能✔阿里云 OSS 与 MinIO 双实现OssServiceImpl.java、MinioController.javaElasticsearch 搜索功能✔EsProductServiceImpl.javaRedis 数字型 ID 生成✔订单号等通过 Redis 生成见 OmsPortalOrderServiceImpl.java 注入redis.key.orderIdSpringTask 定时任务支持✔mall-portal 与 SpringTaskConfig.javadocker 容器化部署✔根 pom.xml 镜像构建 docker-compose-app.yml配置区分生产和测试环境✔config/admin/mall-admin-dev.yaml 与 config/admin/mall-admin-prod.yaml 等 dev/prod 双套配置经 Nacos 配置中心管理ELK 日志收集功能✔logback-spring.xml logstash.confRabbitMq 异步通信✔订单超时取消队列 CancelOrderSender.java / CancelOrderReceiver.javaRestTemplate 服务间调用✔mall-demo 演示 Feign 远程调用SpringSecurity 权限管理功能✔Sa-Token UmsRoleController.java、UmsResourceController.java源码深度解读通用返回封装与日志切面这两个是 dev_flow 中CommonResult 封装与SpringAOP 通用日志处理的直接实现CommonResult核心类位于 CommonResult.java泛型封装code/message/data三要素success(T data)默认取ResultCode.SUCCESS200/操作成功业务失败统一CommonResult.failed()。所有 Controller 方法返回值均为此类型例如 PmsProductController.java 的create接口count 0返回 success否则返回 failed。WebLogAspect位于 WebLogAspect.java切点匹配com.macro.mall.controller.*与com.macro.mall.*.controller.*下所有 public 方法Around记录请求 URL、HTTP 方法、RequestBody/RequestParam参数、响应结果与耗时最终以 Logstash Marker 输出配合 logstash.conf 汇入 Elasticsearch 形成 ELK 日志链路。三、后台管理系统功能全景dev_flow 将后台功能划分为八大模块除商品/促销/内容/用户/订单/权限外还包含后台登录。下面按模块逐一展开并标注仓库中的 Controller 落点。1. 后台登录功能 ✔后台用户注册、登录后获取 token、刷新 token实现位置认证中心 AuthController.java/oauth/token系列接口用户管理 UmsAdminController.java2. 商品管理 ✔商品分类管理PmsProductCategoryController.java按父分类编号分页查看分类列表添加、编辑、删除分类转移分类商品商品品牌管理PmsBrandController.java按品牌名称搜索分页查看品牌列表添加、编辑、删除品牌查看当前品牌的所有产品商品属性分类管理PmsProductAttributeCategoryController.java添加商品属性分类名称分页查询全部商品属性分类删除单个分类修改分类名称查询单个分类信息商品属性管理PmsProductAttributeController.java根据分类查询属性列表或参数列表分页type0规格 /type1参数添加、查询单个、编辑、批量删除、分页查询全部商品属性添加商品PmsProductController.javaPOST /product/create参数对象 PmsProductParam.javadev_flow 详细列出了添加商品时前端需要收集的全部数据维度这是理解PmsProductParam字段设计的直接依据选择商品分类根据商品分类 id 查找分类选择品牌查询全部品牌选择运费模版查询全部运费模版设置会员价格查询所有会员等级传入ListPmsMemberPrice添加阶梯价格参数传入ListPmsProductLadder设置满减价格参数传入ListPmsProductFullReduction选择商品属性类别获取所有商品属性分类再按分类 id 获取规格和参数type0规格 /type1参数选择规格并生成库存信息前端实现添加 sku 库存信息参数传入ListPmsSkuStock设置属性图片写入pic与album_pics字段添加商品参数参数传入ListPmsProductAttributeValue添加自定义商品规格参数传入ListPmsProductAttributeValue关联专题参数传入ListCmsSubjectProductRelation关联优选参数传入ListCmsPrefrenceAreaProductRelation修改商品POST /product/update/{id}根据商品 id 查询商品编辑信息PmsProductResult.java查询商品基本信息商品分类名称、品牌名称、运费模版名称查询商品促销信息会员价格、阶梯价格、满减价格查询商品属性信息属性类别名称、sku 库存信息、属性分类对应规格和参数值查询商品关联信息关联专题与关联优选两条修改路径商品属性分类及规格不可修改时只支持单个 sku 的修改、删除、新增可以修改时修改后同时显示原 sku 库存及属性分类商品分页查询GET /product/list查询参数 PmsProductQueryParam.java商品状态筛选全部商品、已上架、未上架、待审核、未通过publishStatus、verifyStatus商品名称模糊搜索%name%商品货号productSn商品分类 idproductCategoryId品牌 idbrandId批量操作上下架、推荐、新品、转移分类、放入回收站、审核查看记录审核记录、操作日志sku根据产品及 sku 编号获取 sku 信息批量修改 sku 信息以上批量操作的接口在 PmsProductController.java 中一一对应updateVerifyStatus批量审核、updatePublishStatus批量上下架、updateRecommendStatus批量推荐、updateNewStatus批量设新品、updateDeleteStatus批量删除/回收。商品回收管理分页展示回收商品列表回收商品还原功能deleteStatus状态位切换3. 促销管理秒杀活动管理SmsFlashPromotionController.java、SmsFlashPromotionSessionController.java、SmsFlashPromotionProductRelationController.java活动列表展示活动上下线设置活动商品添加、编辑、删除活动优惠券管理SmsCouponController.java、SmsCouponHistoryController.java优惠券列表展示添加、编辑、删除优惠券查看优惠券领取记录活动管理SmsHomeAdvertiseController.java活动列表展示添加、编辑、删除活动活动上下线发布到广告首页推荐品牌推荐SmsHomeBrandController.java列表展示、是否推荐、排序、删除、多选加入品牌新鲜好物SmsHomeNewProductController.java列表展示、是否推荐、排序、删除、多选加入商品人气推荐SmsHomeRecommendProductController.java列表展示、是否推荐、排序、删除、多选加入商品专题精选SmsHomeRecommendSubjectController.java专题列表展示、是否推荐、排序、删除、多选加入专题广告管理SmsHomeAdvertiseController.java广告列表展示、是否上线、排序、删除、添加编辑广告4. 内容管理专题管理CmsSubjectController.java专题列表查看、删除、推荐专题添加、编辑专题选择专题分类、添加/删除关联商品专题分类管理控制显示、排序、编辑删除分类优选主题CmsPrefrenceAreaController.java优选列表控制显示、排序、删除添加、编辑优选关联和删除商品话题管理专题列表查看、删除、热门话题话题分类管理控制显示、排序、编辑删除分类帮助管理帮助列表查看、删除、控制显示添加、编辑帮助选择帮助分类帮助分类管理控制显示、排序、编辑删除分类5. 用户管理用户管理UmsMemberController.java用户列表帐号启用、删除、群发短信批量操作群发短信、站内信、推送、设置标签、赠送优惠券查看、编辑用户信息用户详情统计信息、收货地址、订单记录、编辑资料、登录日志购买力筛选最近消费、消费次数、消费金额、订单均价、商品分类、会员等级、用户标签用户标签管理标签列表、添加、编辑、删除会员等级设置列表、添加、编辑、设置默认会员等级UmsMemberLevelController.java成长值及积分成长值及积分查询列表展示、积分明细、成长值明细、修改数值任务奖励设置新手任务、日常任务更多规则设置成长值规则、积分规则、积分消费设置6. 订单管理订单列表OmsOrderController.java订单搜索订单编号、收货人姓名/号码、订单状态、订单分类、订单来源、提交时间订单操作查看订单、关闭订单、订单发货、订单跟踪、删除订单批量操作批量发货、关闭订单、删除订单查看订单订单状态流转提交订单 → 支付订单 → 平台发货 → 确认收货 → 完成评价订单详情操作修改发票信息、修改收货人信息、修改商品信息、修改费用信息、发送站内信、关闭订单、备注订单、取消订单、订单跟踪、删除订单订单基本信息订单信息、优惠信息、用户信息发票信息类型、抬头、内容、收票人信息收货人信息收货人、手机号、邮政编码、收货地址商品信息包含商品基本信息费用信息合计及优惠信息操作信息订单状态改变记录订单设置OmsOrderSettingController.java秒杀订单超时时间正常订单超时时间订单自动完成时间自动结束交易时间自动好评时间退货申请处理OmsOrderReturnApplyController.java退货申请搜索服务单号、收货人姓名/号码、处理状态、申请时间、操作人员、处理时间批量操作删除查看详情退货商品、服务单信息、确认退货、拒绝退货、确认收货退货原因设置OmsOrderReturnReasonController.java原因列表类型、排序、是否启用、添加时间添加、编辑原因批量删除7. 权限管理 ✔权限管理UmsResourceController.java、UmsResourceCategoryController.java、UmsMenuController.java权限管理添加权限、删除权限、修改权限、以树形结构返回权限菜单树见 UmsMenuNode.java角色管理UmsRoleController.java添加、删除、更新角色、角色列表、获取相应角色权限、修改相应角色权限成员管理UmsAdminController.java添加、编辑、删除成员、成员列表、为成员分配角色、获取成员角色、分配±权限、获取权限列表角色与菜单权限的映射关系dev_flow 原始表格角色菜单管理员所有菜单权限运营首页、用户、促销、运营、内容财务首页、统计、财务美工首页、商品客服首页、商品、订单源码印证网关侧 StpInterfaceImpl.java 实现StpInterface在getPermissionList中从会话取出UserDto的permissionList返回给 Sa-Token 鉴权引擎后台用户携带的权限码即来自上述角色-菜单-资源分配体系。四、前台商城功能全景1. 商品搜索 ✔mall-search 模块综合搜索功能EsProductController.java → EsProductServiceImpl.java搜索根据商品标题、副标题、关键字进行搜索对应EsProduct的name、subTitle、keywords字段筛选未选择分类时聚合搜索结果选择出现次数最多的分类选择分类后按该分类的筛选字段进行筛选排序按新品id倒序、销量sale倒序、价格price升/降序排序相关度_score兜底搜索返回结果商品 ID、商品图片、名称、副标题、价格、销量、新品标识、商品参数、品牌名称、分类名称接口从数据库查询数据导入 ESimportAll/create、插入/修改接口、删除接口delete品牌分类筛选根据搜索结果聚合返回品牌、分类及属性searchRelatedInfo见 EsProductServiceImpl.java源码级实现细节综合搜索在 EsProductServiceImpl.java 中用NativeQueryBuilder组装 DSL——品牌/分类走boolterm过滤关键词走function_score加权名称 weight 10、副标题 weight 5、关键字 weight 2求和模式且minScore2.0这正是综合搜索排序的打分原理。商品数据模型见 EsProduct.java数据导入 SQL 见 EsProductDao.java。商品推荐功能推荐某商品的相关商品按该商品的品牌权重 10、分类6、名称8、关键字2、副标题2加权检索实现见 EsProductServiceImpl.javarecommend方法mustNot过滤掉自身商品根据用户一周浏览记录、搜索记录推荐商品基于 MongoDb 存储的浏览足迹数据商品热搜功能根据用户搜索记录聚合生成热搜词商品搜索联想功能根据用户搜索记录聚合生成联想词2. 购物流程 ✔mall-portal 模块购物车OmsCartItemController.java → OmsCartItemServiceImpl.java添加商品到购物车购物车商品列表商品主图、商品名称、商品数量、商品规格修改购物车中商品数量购物车中商品重选规格购物车中商品删除功能生成确认单generateConfirmOrder见 OmsPortalOrderServiceImpl.java生成确认单信息收货信息、商品信息、价格信息、发票信息、支付方式选择收货地址默认收货地址选择优惠券及积分抵扣展示可用和不可用优惠券计算商品价格商品合计、运费、优惠券抵扣、积分抵扣、活动优惠选择支付方式在线支付及货到付款计算应付金额合计 运费 − 优惠券抵扣 − 积分抵扣 − 活动优惠封装为ConfirmOrderResult.CalcAmount提交订单generateOrder见 OmsPortalOrderServiceImpl.java将确认单信息转化为订单购物车商品 →OmsOrderItem携带商品快照、促销金额、赠送积分/成长值删除购物车中相关商品添加订单到数据库并锁定库存Redis 数字型 ID 生成订单号见 OmsPortalOrderServiceImpl.java在线支付选择支付方式支付宝、微信、银联、ApplePay支付订单AlipayController.java → AlipayServiceImpl.java支付完成后修改订单状态为已支付、扣除库存取消订单未支付情况下订单超时后自动取消订单解除商品库存锁定返还优惠券、积分实现订单超时延时消息经 RabbitMq 队列触发OrderTimeOutCancelTask.java 定时扫描 CancelOrderReceiver.java 消费取消超时时间由订单设置模块配置3. 会员模块我的✔我的关注MemberAttentionController.java数据落 MongoDb见 MemberBrandAttentionRepository.java关注品牌列表品牌 logo、名称、地址、关注数量取消关注功能关注列表展示我的收藏MemberProductCollectionController.java收藏的商品商品主图、名称、卖点、价格、找相似收藏的专题专题主图、标题、副标题、收藏数、浏览数、评论数收藏的话题话题主图、标题、副标题、收藏数、浏览数、评论数我的足迹MemberReadHistoryController.java浏览记录存 MongoDb MemberReadHistory.java浏览过的商品商品主图、名称、卖点、价格、找相似删除记录功能浏览列表展示会员登录注册UmsMemberController.java → UmsMemberServiceImpl.java登录功能https 登录注册功能用户名、密码、手机号、手机验证码获取验证码后台生成验证码验证码绑定手机号忘记密码手机号、短信验证码、新密码登出功能五、开发配套工具与环境要求dev_flow 文档还记录了开发过程中常用的配套工具本仓库不包含这些工具仅作开发环境参考用途工具开发 IDEIntelliJ IDEARedis 客户端Redis Desktop ManagerMongoDB 客户端Robo 3T本地 host 管理SwitchHostsLinux 远程连接Xshell 等数据库连接Navicat 等数据库设计PowerDesigner仓库 document/pdm/mall.pdm 即数据库设计产物原型设计Axure思维导图MindMaster仓库 document/mind/ 下为各业务模块思维导图GIF 录制ScreenToGif当前master分支的运行环境要求源自 README.mdJDK 17、MySQL 5.7、Redis 7.0、Elasticsearch/Kibana/Logstash 7.17.3、MongoDB 5.0、RabbitMQ 3.10.5、Nginx 1.22。开发环境配置示例见 config/admin/mall-admin-dev.yaml数据源、Redis、OSS/MinIO、日志级别与 Logstash 地址生产配置见同目录mall-admin-prod.yaml其他服务gateway/portal/search/demo的 dev/prod 配置均位于 config/ 下经 Nacos 配置中心统一管理。六、从 dev_flow 到 mall-swarm文档与代码的对照价值dev_flow.md本质上是商城系统的开发进度 功能验收清单与当前仓库的对应关系非常清晰技术选型表↔ 根 pom.xml 依赖管理Spring Boot 3.5.14 / Spring Cloud 2025.0.2 / Sa-Token 1.42.0 / Elasticsearch 7.17.x / MyBatis 3.5.19 等框架搭建清单↔ mall-common通用返回、全局异常、日志切面、Redis 封装与 mall-mbg代码生成后台功能清单↔ mall-admin 下 27 个 Controller按模块一一对应前台功能清单↔ mall-portal 与 mall-search 两个服务需要注意的差异dev_flow 成文于单体 mall 时代如Spring Security认证、集成 SpringCloud尚未完成而当前仓库 master 分支已演进为完整的微服务形态认证框架替换为 Sa-Token、新增了 Nacos 注册/配置中心、Spring Boot Admin 监控中心与 Gateway 网关各微服务部署与 K8s 编排文件见 document/k8s/、document/docker/。阅读时建议以本仓库源码为最终事实依据dev_flow 作为功能需求与验收的索引使用——这也正是这份文档在微服务架构下的最大价值用功能清单驱动源码检索用源码反向验证功能完整性。赞分享后端电商微服务API网关【免费下载链接】mall-swarmmall-swarm是一套微服务商城系统采用了 Spring Cloud Alibaba、Spring Boot 3.5、Sa-Token、MyBatis、Elasticsearch、Docker、Kubernetes等核心技术同时提供了基于Vue的管理后台方便快速搭建系统。mall-swarm在电商业务的基础集成了注册中心、配置中心、监控中心、网关等系统功能。项目地址https://gitcode.com/gh_mirrors/ma/mall-swarm点击查看免费下载相关推荐mall-swarm 微服务商城功能结构全解后台五大模块与前台商城系统功能清单mall swarm 微服务商城功能结构全解后台五大模块与前台商城系统功能清单 mall swarm 是基于 Spring Cloud Alibaba 的微服后端微服务电商API网关mall-swarm 商城系统开发流程与技术功能全景解析mall swarm 商城系统开发流程与技术功能全景解析 导读 本文以 mall swarm 微服务商城系统以下简称 mall swarm的 开发流程与技术后端微服务电商API网关mall-swarm 微服务商城系统推荐mall swarm 微服务商城系统推荐 1. 项目基础介绍和主要编程语言 mall swarm 是一套基于微服务架构的商城系统采用了多种现代化的技术栈包括后端电商微服务API网关创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表