门户模块 (mall-portal) 是 Mall 电子商务系统的面向客户的前端 API。它提供了终端客户浏览产品、注册账户、管理购物车、下订单以及与电子商务平台交互所需的所有功能。该模块的设计重点是性能、安全性和无缝的用户体验。
mall-portal 模块是一个独立的 Spring Boot 应用程序,它与其他 Mall 电子商务系统中的模块协同工作。它实现的 REST API 由面向客户的 Web 和移动应用程序使用。
来源
门户模块围绕几个关键功能领域进行组织
来源
门户模块通过 Spring Security 集成和 JWT(JSON Web Token)进行身份验证,实现了完整的用户管理系统。
来源
会员服务提供以下主要功能
安全性通过 Spring Security 和 JWT 令牌实现无状态身份验证。安全配置包括不需要身份验证即可公开访问的白名单路径。
来源
促销服务实现了各种折扣策略,可应用于购物车中的产品
| 促销类型 | 描述 | 实现 |
|---|---|---|
| 单品促销 | 对单个产品的折扣 | 直接应用于产品价格 |
| 数量折扣 | 根据购买数量滑动的折扣 | 使用 PmsProductLadder 确定折扣百分比 |
| 满减 | “满 X 减 Y”促销 | 使用 PmsProductFullReduction 计算折扣金额 |
促销计算流程
来源
订单处理系统是门户模块中最复杂的组件之一,负责处理从创建到完成或取消的订单的整个生命周期。
来源
系统中的订单会经历各种状态,每种状态都有特定的转换和业务规则
| 状态码 | 描述 | 可能的转换 |
|---|---|---|
| 0 | 待付款 | → 1(付款成功),→ 4(已取消) |
| 1 | 待发货 | → 2(已发货) |
| 2 | 已发货 | → 3(已完成) |
| 3 | 已完成 | (终止状态) |
| 4 | 已取消 | (终止状态) |
| 5 | 无效订单 | (终止状态) |
来源
该系统实现了一个自动订单取消机制,用于取消在指定超时时间内仍未付款的订单
来源
门户模块实现了一个强大的库存管理系统,以防止超卖并保持准确的库存水平
来源
门户模块支持通过 Spring profiles 进行不同的环境配置
| 环境 | 配置文件 | 描述 |
|---|---|---|
| 开发 | dev | 本地开发环境,使用 localhost 服务 |
| 生产 | prod | 生产部署,使用容器化服务 |
关键配置类别
来源
安全配置定义了哪些 API 路径需要身份验证,哪些可以公开访问
Whitelisted paths (no authentication required):
- /swagger-ui/
- /swagger-resources/**
- /**/v2/api-docs
- /**/*.html, *.js, *.css, *.png, *.map
- /favicon.ico
- /druid/**
- /actuator/**
- /sso/**
- /home/**
- /product/**
- /brand/**
- /alipay/**
JWT 令牌配置包括
来源
门户模块与多个外部服务和共享组件集成
该模块设计为独立部署的服务,可以独立于管理模块进行扩展,为面向客户的应用程序提供专用 API。
来源