51 KiB
51 KiB
商城模块结构说明
模块拆分
根据 MODULE_STRUCTURE_PLAN.md 的要求,ruoyi-mall 模块已按照规划拆分为以下子模块:
1. ruoyi-mall-product (商品中心)
- 职责: 商品(SPU)、SKU、分类、品牌、属性管理
- 包名:
org.dromara.mall.product - 状态: ✅ 核心功能已实现(商品管理✅、分类管理✅、品牌管理✅、属性管理✅)
- 数据库表:
mall_product,mall_sku,mall_category,mall_brand,mall_attribute_template,mall_attribute,mall_attribute_value,mall_product_attribute
2. ruoyi-mall-trade (交易中心)
- 职责: 购物车、订单、售后管理
- 包名:
org.dromara.mall.trade - 状态: ✅ 核心功能已实现(购物车✅、订单✅、售后✅、评价✅)
- 数据库表:
mall_cart,mall_order,mall_order_item,mall_after_sale,mall_order_evaluate,mall_order_coupon
3. ruoyi-mall-coupon (优惠券中心)
- 职责: 优惠券发放、核销、过期处理
- 包名:
org.dromara.mall.coupon - 状态: ✅ 核心功能已实现(优惠券管理✅、用户优惠券✅)
- 数据库表:
mall_coupon,mall_coupon_user
4. ruoyi-mall-promotion (营销中心)
- 职责: 营销活动、拼团、秒杀、砍价
- 包名:
org.dromara.mall.promotion - 状态: ✅ 核心功能已实现(活动管理✅、秒杀✅、拼团✅、砍价✅)
- 数据库表:
mall_promotion,mall_group_buy,mall_group_buy_order,mall_seckill,mall_bargain,mall_bargain_record,mall_bargain_help
5. ruoyi-mall-statistics (统计中心)
- 职责: 交易分析、会员分析、数据统计
- 包名:
org.dromara.mall.statistics - 状态: ✅ 交易统计功能已实现
已完成工作
1. 模块结构
- ✅ 创建了所有子模块的目录结构
- ✅ 创建了各子模块的
pom.xml配置文件 - ✅ 配置了模块依赖关系
2. 自动配置
- ✅ 创建了各子模块的
AutoConfiguration类 - ✅ 创建了
spring.factories文件 - ✅ 配置了组件扫描
3. 数据库
- ✅ 扩展了
script/sql/ry_mall.sql文件 - ✅ 添加了分类、品牌表
- ✅ 添加了优惠券相关表
- ✅ 添加了营销活动相关表(拼团、秒杀等)
- ✅ 添加了商品属性相关表(属性模板、属性、属性值、商品属性关联)
4. 文档
- ✅ 创建了各子模块的 README.md 文件
- ✅ 更新了主模块的 README.md 文件
代码迁移说明
当前状态
- 现有代码位于
ruoyi-mall/src/main/java/org/dromara/mall/目录下 - 现有代码使用
org.dromara.mall作为包名 - 现有代码包含:商品、SKU、购物车、订单等功能
迁移建议
由于代码迁移涉及大量文件的包名修改,建议采用渐进式迁移:
-
保留现有代码
- 现有代码继续保留在
ruoyi-mall/src目录 - 保证现有功能正常运行
- 现有代码继续保留在
-
新功能开发
- 新功能直接在新子模块中开发
- 使用新的包名结构(如
org.dromara.mall.product)
-
逐步迁移
- 商品相关代码 →
ruoyi-mall-product - 交易相关代码 →
ruoyi-mall-trade - 优惠券功能 →
ruoyi-mall-coupon - 营销功能 →
ruoyi-mall-promotion - 统计功能 →
ruoyi-mall-statistics
- 商品相关代码 →
模块依赖关系
ruoyi-mall (聚合模块)
├── ruoyi-mall-product (商品中心)
│ └── 依赖: ruoyi-common-*
├── ruoyi-mall-trade (交易中心)
│ ├── 依赖: ruoyi-mall-product
│ └── 依赖: ruoyi-pay
├── ruoyi-mall-coupon (优惠券中心)
│ └── 依赖: ruoyi-common-*
├── ruoyi-mall-promotion (营销中心)
│ ├── 依赖: ruoyi-mall-product
│ └── 依赖: ruoyi-mall-coupon
└── ruoyi-mall-statistics (统计中心)
├── 依赖: ruoyi-mall-product
└── 依赖: ruoyi-mall-trade
下一步工作
-
代码迁移 (可选)
- 将现有代码迁移到对应的子模块
- 修改包名以符合新的模块结构
-
功能实现
- 实现各子模块的待实现功能
- 参考各子模块的 README.md
-
测试验证
- 验证各子模块的自动配置
- 验证模块间的依赖关系
数据库表结构说明
1. ruoyi-mall-product (商品中心)
商品表 (mall_product)
- 功能: 存储商品(SPU)基本信息
- 关键字段:
name,category_id,brand_id,status,sales_count,view_count,cover_url,images,description,detail - 索引:
category_id,brand_id,status - 状态说明:
- 0: 上架
- 1: 下架
SKU表 (mall_sku)
- 功能: 存储商品SKU信息,包括价格、库存、规格等
- 关键字段:
product_id,sku_code,price,stock,specs,status - 索引:
product_id,sku_code,status - 状态说明:
- 0: 启用
- 1: 禁用
商品分类表 (mall_category)
- 功能: 商品分类树形结构
- 关键字段:
name,parent_id,level,sort,icon,status - 索引:
parent_id,status - 状态说明:
- 0: 启用
- 1: 禁用
- 级别说明:
- 1: 一级分类
- 2: 二级分类
- 3: 三级分类
- 说明: 支持三级分类,通过
parent_id构建树形结构,parent_id=0表示顶级分类
品牌表 (mall_brand)
- 功能: 商品品牌信息
- 关键字段:
name,logo,description,sort,status - 索引:
status - 状态说明:
- 0: 启用
- 1: 禁用
属性模板表 (mall_attribute_template)
- 功能: 属性模板定义,可绑定到分类
- 关键字段:
name,category_id,sort,status - 索引:
category_id,status
属性表 (mall_attribute)
- 功能: 属性定义
- 关键字段:
template_id,name,type,required,sort,status - 索引:
template_id,status - 类型说明:
- 0: 文本
- 1: 数字
- 2: 日期
- 3: 枚举
属性值表 (mall_attribute_value)
- 功能: 属性的值(用于枚举类型属性)
- 关键字段:
attribute_id,value,sort,status - 索引:
attribute_id,status
商品属性关联表 (mall_product_attribute)
- 功能: 商品关联的属性值
- 关键字段:
product_id,attribute_id,attribute_value_id,value - 索引:
product_id,attribute_id,attribute_value_id
2. ruoyi-mall-trade (交易中心)
购物车表 (mall_cart)
- 功能: 用户购物车信息
- 关键字段:
user_id,sku_id,quantity,selected - 索引:
user_id,uk_user_sku(唯一索引)
订单表 (mall_order)
- 功能: 订单主表
- 关键字段:
order_no,user_id,total_amount,pay_amount,pay_status,order_status,delivery_status,receiver_* - 索引:
order_no(唯一),user_id,pay_order_no,order_status,pay_status - 状态说明:
pay_status:- 0: 未支付
- 1: 已支付
- 2: 已退款
order_status:- 0: 待付款
- 1: 待发货
- 2: 待收货
- 3: 已完成
- 4: 已取消
delivery_status:- 0: 未发货
- 1: 已发货
- 2: 已收货
订单明细表 (mall_order_item)
- 功能: 订单商品明细
- 关键字段:
order_id,product_id,sku_id,price,quantity,total_amount - 索引:
order_id,order_no,product_id,sku_id
收货地址表 (mall_address)
- 功能: 用户收货地址管理
- 关键字段:
user_id,receiver_name,receiver_phone,province,city,district,address,is_default - 索引:
user_id,is_default - 状态说明:
is_default: 0-否,1-是
售后申请表 (mall_after_sale)
- 功能: 订单售后申请(退款、退货、换货)
- 关键字段:
after_sale_no,order_id,type,status,refund_amount - 索引:
after_sale_no(唯一),order_id,user_id,status - 状态说明:
- 0: 待审核
- 1: 已同意
- 2: 已拒绝
- 3: 待退货
- 4: 待收货
- 5: 已完成
- 6: 已取消
- 类型说明:
- 0: 退款
- 1: 退货
- 2: 换货
订单评价表 (mall_order_evaluate)
- 功能: 订单商品评价
- 关键字段:
order_id,order_item_id,product_id,user_id,score,content,images - 索引:
order_id,order_no,order_item_id,product_id,user_id
订单优惠券使用记录表 (mall_order_coupon)
- 功能: 记录订单使用的优惠券信息
- 关键字段:
order_id,coupon_id,coupon_user_id,discount_amount - 索引:
order_id,order_no,coupon_id,coupon_user_id
3. ruoyi-mall-coupon (优惠券中心)
优惠券表 (mall_coupon)
- 功能: 优惠券模板定义
- 关键字段:
name,type,discount_amount,discount_rate,min_amount,valid_start_time,valid_end_time - 索引:
status,valid_time - 类型说明:
- 0: 满减券
- 1: 折扣券
- 2: 现金券
用户优惠券表 (mall_coupon_user)
- 功能: 用户领取的优惠券
- 关键字段:
user_id,coupon_id,status,used_time,order_id - 索引:
user_id,coupon_id,status - 状态说明:
- 0: 未使用
- 1: 已使用
- 2: 已过期
4. ruoyi-mall-promotion (营销中心)
营销活动表 (mall_promotion)
- 功能: 营销活动主表
- 关键字段:
name,type,start_time,end_time,rules(JSON) - 索引:
type,status,time - 类型说明:
- 0: 普通活动
- 1: 拼团活动
- 2: 秒杀活动
- 3: 砍价活动
拼团表 (mall_group_buy)
- 功能: 拼团活动配置
- 关键字段:
promotion_id,sku_id,group_price,group_size,duration_hours - 索引:
promotion_id,sku_id
拼团订单表 (mall_group_buy_order)
- 功能: 拼团订单记录
- 关键字段:
group_buy_id,group_no,order_id,user_id,status,expire_time - 索引:
group_buy_id,group_no,order_id,status - 状态说明:
- 0: 拼团中
- 1: 已成团
- 2: 已失败
秒杀表 (mall_seckill)
- 功能: 秒杀活动配置
- 关键字段:
promotion_id,sku_id,seckill_price,seckill_stock,start_time,end_time - 索引:
promotion_id,sku_id,time
砍价活动表 (mall_bargain)
- 功能: 砍价活动配置
- 关键字段:
promotion_id,sku_id,bargain_price,original_price,min_price,help_count - 索引:
promotion_id,sku_id
砍价记录表 (mall_bargain_record)
- 功能: 用户发起的砍价记录
- 关键字段:
bargain_id,bargain_no,user_id,current_price,status,expire_time - 索引:
bargain_id,bargain_no,user_id,status - 状态说明:
- 0: 进行中
- 1: 已成功
- 2: 已失败
- 3: 已下单
砍价助力记录表 (mall_bargain_help)
- 功能: 砍价助力记录
- 关键字段:
bargain_record_id,bargain_no,user_id,help_price - 索引:
bargain_record_id,bargain_no,user_id
5. ruoyi-mall-statistics (统计中心)
统计模块主要基于现有业务表进行数据分析和统计,可根据需要创建统计汇总表。
- 主要数据源表:
mall_order,mall_order_item- 订单和订单明细表(用于交易统计、商品销售统计)mall_product- 商品表(用于商品浏览统计,基于view_count字段)mall_promotion,mall_group_buy,mall_seckill,mall_bargain- 营销活动表(用于活动效果统计)mall_coupon,mall_coupon_user,mall_order_coupon- 优惠券相关表(用于优惠券使用统计)- 用户表(通过
mall_order.user_id关联,用于会员分析,需会员模块支持)
功能清单
1. ruoyi-mall-product (商品中心)
已实现功能 ✅
商品管理 (SPU)
- ✅ 商品CRUD操作
- 商品列表查询(分页、条件筛选)
- 商品详情查询
- 商品新增/修改/删除
- 商品上架/下架
- ✅ 商品浏览量和销量统计
- 浏览量自动统计
- 销量自动累计
- ✅ 商品详情管理
- 商品描述和详情富文本支持
- 商品图片管理(封面、轮播图)
SKU管理
- ✅ SKU CRUD操作
- SKU列表查询(支持按商品ID查询)
- SKU详情查询
- SKU新增/修改/删除
- ✅ SKU库存管理
- 库存数量管理
- 库存扣减和恢复
- ✅ SKU规格属性管理
- 规格属性JSON格式存储
- 规格属性查询和展示
商品分类管理 ✅
- ✅ 分类树形结构查询
- 支持三级分类树形结构
- 管理端和移动端分类树查询
- ✅ 分类CRUD操作
- 分类列表查询(分页、条件筛选)
- 分类详情查询
- 分类新增/修改/删除
- 分类导出功能
- ✅ 分类排序
- 支持自定义排序字段
- ⏳ 分类图标管理
- 字段已支持,需前端集成文件上传功能
品牌管理 ✅
- ✅ 品牌CRUD操作
- 品牌列表查询(分页、条件筛选)
- 品牌详情查询
- 品牌新增/修改/删除
- 品牌导出功能
- ✅ 品牌描述管理
- 品牌描述字段支持
- ✅ 品牌排序
- 支持自定义排序字段
- ✅ 品牌状态管理
- 启用/禁用状态控制
- ⏳ 品牌Logo上传
- 字段已支持,需前端集成文件上传功能
商品属性管理 ✅
- ✅ 属性模板管理
- ✅ 属性模板CRUD操作
- ✅ 属性模板绑定分类(可选)
- ✅ 属性模板导出功能
- ✅ 属性管理
- ✅ 属性CRUD操作
- ✅ 属性类型管理(文本、数字、日期、枚举)
- ✅ 属性绑定模板(可选)
- ✅ 属性必填设置
- ✅ 属性导出功能
- ✅ 属性值管理
- ✅ 属性值CRUD操作
- ✅ 属性值绑定属性
- ✅ 属性值排序
- ✅ 属性值导出功能
- ✅ 商品属性关联
- ✅ 商品关联属性值
- ✅ 批量保存商品属性
- ✅ 根据商品ID查询属性
- ✅ 支持枚举类型属性值选择
- ✅ 支持文本/数字/日期类型自定义值
待实现功能 ⏳
- 商品规格模板系统增强
- ⏳ 规格模板独立管理(当前规格通过SKU的specs字段JSON存储)
- ⏳ 规格模板与属性模板区分管理
- ⏳ 规格值标准化管理
- ⏳ 规格模板可视化配置
- 说明: 当前系统中,SKU规格通过
mall_sku.specs字段以JSON格式存储。属性模板系统(mall_attribute_template)可用于管理商品属性,但规格模板作为独立的规格管理系统,可用于标准化管理商品SKU的规格组合(如颜色+尺寸等),支持规格模板定义、规格值管理和规格模板与商品关联等功能。
- 商品搜索功能
- 全文搜索(集成Elasticsearch或类似方案)
- 商品名称、描述全文搜索
- 搜索关键词高亮
- 搜索排序优化(按相关度、销量、价格等)
- 商品筛选(按分类、品牌、价格等)
- 多条件组合筛选
- 属性值筛选
- 价格区间筛选
- 库存状态筛选
- 筛选结果统计
- 全文搜索(集成Elasticsearch或类似方案)
2. ruoyi-mall-trade (交易中心)
已实现功能 ✅
购物车管理
- ✅ 购物车添加/删除
- 添加商品到购物车
- 删除购物车商品
- 清空购物车
- ✅ 购物车数量修改
- 修改购物车商品数量
- ✅ 购物车选中状态管理
- 单个商品选中/取消选中
- 批量选中/取消选中
- ✅ 购物车详情查询
- 购物车列表查询
- 购物车详情查询(包含商品和SKU完整信息)
订单管理
- ✅ 订单创建
- 从购物车创建订单
- 直接购买创建订单
- 订单明细自动生成
- ✅ 订单查询
- 订单列表查询(分页、状态筛选)
- 订单详情查询(包含订单明细)
- ✅ 订单取消
- 用户主动取消订单
- 订单取消后库存自动恢复
- ✅ 订单状态管理
- 订单状态流转(待付款、待发货、待收货、已完成、已取消)
- 支付状态管理
- 发货状态管理
- ✅ 订单支付集成
- 与支付中心(ruoyi-pay)集成
- 支付回调处理
- 支付成功后订单状态自动更新
- 库存自动扣减
待实现功能 ⏳
- 售后管理 ✅
- 订单退款申请 ✅
- 退货申请 ✅
- 换货申请 ✅
- 售后审核 ✅
- 售后状态跟踪 ✅
- 退货物流跟踪 ✅
- 商家确认收货 ✅
- 完成售后处理 ✅
- 取消售后申请 ✅
- 订单评价 ✅
- 订单评价提交 ✅
- 评价列表查询 ✅
- 评价回复(商家) ✅
- 评价审核 ✅
- 评价图片上传(字段已支持,需前端上传功能)
- 地址管理 ✅
- 收货地址管理(实体类、Mapper、Service、Controller已实现)✅
- 收货地址CRUD操作
- 用户地址列表查询
- 默认地址查询
- 地址导出功能(管理端)
- 默认地址设置 ✅
- 设置默认地址接口
- 自动取消其他默认地址
- 收货地址管理(实体类、Mapper、Service、Controller已实现)✅
- 订单优惠券使用 ✅
- 订单优惠券记录(实体类、Mapper、Service已实现)✅
- 优惠券金额计算(已实现CouponCalculator工具类和MallOrderCouponService.calculateAndUseCoupon方法)✅
- 支持满减券、折扣券、现金券三种类型的金额计算
- 已实现订单创建时的优惠券计算和使用流程
- 已实现优惠金额统计方法(按订单ID、订单号、优惠券ID统计)
3. ruoyi-mall-coupon (优惠券中心)
待实现功能 ⏳
- 优惠券管理 ✅
- 优惠券CRUD操作 ✅
- 优惠券类型管理(满减、折扣、现金) ✅
- 优惠券发放规则配置 ✅
- 优惠券有效期管理 ✅
- 优惠券状态管理 ✅
- 用户优惠券 ✅
- 用户领券 ✅
- 用户优惠券列表查询 ✅
- 优惠券使用(订单结算时) ✅
- 优惠券退还(订单取消时) ✅
- 优惠券过期处理(定时任务)✅
- 实现状态:
MallCouponJob.processExpiredCoupons()定时任务已实现,每天凌晨2点执行 ✅
- 实现状态:
- 优惠券统计 ✅
- 发放统计(已实现统计接口)✅
- 使用统计(已实现统计接口)✅
- 使用率统计(已实现统计接口)✅
- 核销金额统计(需集成订单优惠券使用记录表,当前返回0)
4. ruoyi-mall-promotion (营销中心)
已实现功能 ✅
- 营销活动管理 ✅
- 活动CRUD操作 ✅
- 活动类型管理 ✅
- 活动规则配置(JSON格式)✅
- 活动时间管理 ✅
- 活动状态管理 ✅
- 秒杀功能 ✅
- 秒杀活动创建 ✅
- 秒杀库存管理(扣减、恢复)✅
- 秒杀活动查询 ✅
- 秒杀活动状态管理 ✅
- 秒杀订单处理(需在交易中心集成)
- 秒杀库存预扣(需在交易中心集成)
- 拼团功能 ✅
- 拼团活动创建 ✅
- 拼团活动查询 ✅
- 拼团活动状态管理 ✅
- 拼团订单创建(需在交易中心集成)
- 拼团加入(需在交易中心集成)
- 拼团成团处理(需在交易中心集成)
- 拼团过期处理(定时任务)
- 砍价功能 ✅
- 砍价活动创建 ✅
- 砍价活动查询 ✅
- 砍价活动状态管理 ✅
- 砍价发起(需在交易中心集成)
- 砍价助力(需在交易中心集成)
- 砍价进度管理(需在交易中心集成)
- 砍价订单处理(需在交易中心集成)
- 砍价过期处理(定时任务)
待实现功能 ⏳
- 订单集成(需在交易中心模块实现)
- 秒杀订单处理(核心逻辑已实现,待订单服务集成)✅
- 秒杀活动验证(活动时间、库存、状态校验)✅
- 验证秒杀活动是否存在且状态为启用(status=0)
- 验证秒杀活动时间是否在有效期内(当前时间在start_time和end_time之间)
- 验证秒杀库存是否充足(seckill_stock >= 购买数量)
- 验证关联的营销活动(mall_promotion)是否启用
- 秒杀价格计算(使用秒杀价而非原价)✅
- 从
mall_seckill表获取seckill_price(秒杀价,单位:分) - 订单明细价格使用秒杀价,而非SKU原价
- 订单总金额基于秒杀价计算
- 实现状态:
SeckillOrderService.getSeckillPrice()方法已实现
- 从
- 秒杀订单标记(订单表记录活动类型和活动ID)✅
- 订单表(
mall_order)需包含字段:promotion_type(活动类型,2=秒杀)、promotion_id(营销活动ID)、seckill_id(秒杀ID) - SQL脚本已创建:
script/sql/mall_order_promotion_fields.sql - 订单创建时记录活动信息,便于后续查询和统计
- 订单明细表(
mall_order_item)也建议记录活动价格信息 - 实现状态: SQL脚本已准备,待订单实体类和服务实现后集成
- 订单表(
- 秒杀限购校验(同一用户同一商品限购数量)✅
- 查询用户已购买的秒杀订单数量(同一秒杀活动、同一SKU)
- 校验是否超过限购数量(可从
mall_promotion.rulesJSON中读取限购规则,或默认每人限购1件) - 仅统计已支付的订单,待支付/已取消订单不计入限购
- 实现状态:
SeckillOrderService.validatePurchaseLimit()方法已实现核心逻辑,但由于订单实体类尚未实现,限购查询部分待订单服务实现后完善
- 秒杀订单超时处理(未支付订单自动取消)⏳
- 订单创建时记录创建时间,设置订单超时时间(如15分钟)
- 定时任务扫描未支付的秒杀订单(订单状态=待支付,创建时间超过超时时间)
- 自动取消订单并恢复预扣的秒杀库存
- 发送订单超时取消通知给用户
- 实现状态: 待订单服务实现后添加定时任务
- 秒杀活动验证(活动时间、库存、状态校验)✅
- 秒杀库存预扣 ✅
- 下单时预扣秒杀库存(避免超卖)✅
- 订单创建时调用
SeckillOrderService.preDeductSeckillStock(seckillId, quantity)预扣秒杀库存 - 使用数据库乐观锁(UPDATE ... WHERE seckill_stock >= quantity)确保并发安全
- 预扣成功后,订单状态为"待支付",库存已预扣但未最终确认
- 如果预扣失败(库存不足),订单创建失败,返回库存不足提示
- 实现状态:
SeckillOrderService.preDeductSeckillStock()方法已实现,调用MallSeckillService.reduceStock()
- 订单创建时调用
- 支付成功时确认库存扣减✅
- 支付回调处理时,订单状态更新为"已支付"
- 预扣的秒杀库存此时正式扣减(预扣库存已在上一步完成,此处仅状态确认)
- 如果订单已标记为秒杀订单,确认秒杀库存扣减成功
- 实现状态: 预扣逻辑已实现,支付确认需在订单服务的支付回调中调用
- 订单取消时恢复秒杀库存✅
- 用户主动取消订单或系统超时取消时,调用
SeckillOrderService.restoreSeckillStock(seckillId, quantity)恢复秒杀库存 - 仅恢复"待支付"状态的订单预扣库存
- "已支付"订单取消需走退款流程,不恢复秒杀库存(秒杀商品通常不支持退款)
- 实现状态:
SeckillOrderService.restoreSeckillStock()方法已实现,调用MallSeckillService.restoreStock()
- 用户主动取消订单或系统超时取消时,调用
- 库存预扣超时释放机制⏳
- 订单创建时记录预扣时间,设置预扣超时时间(如15分钟,与订单超时时间一致)
- 定时任务扫描预扣超时的订单(订单状态=待支付,创建时间超过超时时间)
- 自动释放预扣库存并取消订单
- 确保库存预扣和订单超时处理的一致性
- 实现状态: 待订单服务实现后添加定时任务
- 下单时预扣秒杀库存(避免超卖)✅
- 拼团订单创建
- 拼团活动验证(活动时间、库存、状态校验)
- 创建拼团订单记录(
mall_group_buy_order表) - 生成拼团编号(
group_no) - 计算拼团过期时间(基于
duration_hours) - 拼团价格计算(使用拼团价)
- 拼团订单状态初始化(状态=0拼团中)
- 拼团加入
- 拼团编号验证(验证拼团是否存在且可加入)
- 拼团状态校验(仅拼团中状态可加入)
- 拼团人数校验(未达到成团人数)
- 拼团过期校验(未超过过期时间)
- 创建拼团订单记录(关联同一
group_no) - 拼团人数自动累加
- 自动检测成团条件(达到
group_size人数)
- 拼团成团处理
- 成团条件判断(达到成团人数)
- 更新拼团订单状态(状态=1已成团)
- 记录成团时间(
success_time) - 成团通知(通知所有参与用户)
- 成团后订单状态流转(待发货等)
- 砍价发起
- 砍价活动验证(活动时间、库存、状态校验)
- 创建砍价记录(
mall_bargain_record表) - 生成砍价编号(
bargain_no) - 初始化砍价价格(
current_price=原价,bargain_price=0) - 计算砍价过期时间(基于
duration_hours) - 砍价状态初始化(状态=0进行中)
- 用户发起次数限制校验
- 砍价助力
- 砍价编号验证(验证砍价记录是否存在且有效)
- 砍价状态校验(仅进行中状态可助力)
- 砍价过期校验(未超过过期时间)
- 助力用户校验(不能为自己助力、不能重复助力)
- 计算助力金额(随机或固定算法,需达到最低价限制)
- 创建助力记录(
mall_bargain_help表) - 更新砍价进度(
current_price、bargain_price、help_count) - 检测砍价完成条件(达到最低价或完成助力次数)
- 砍价进度管理
- 砍价进度查询(当前价格、已砍金额、助力人数、进度百分比)
- 砍价列表查询(用户发起的砍价记录)
- 砍价详情查询(包含助力记录列表)
- 砍价状态更新(进行中、已成功、已失败、已下单)
- 砍价完成检测(自动检测是否达到最低价)
- 砍价订单处理
- 砍价完成验证(状态=已成功)
- 砍价价格使用(使用砍后价创建订单)
- 订单标记(记录砍价记录ID)
- 更新砍价状态(状态=3已下单)
- 砍价订单超时处理(未支付订单释放砍价资格)
- 定时任务 ✅
- 秒杀活动状态更新任务 ✅
- 扫描即将开始的活动(
start_time<= 当前时间 且 status=1禁用),自动启用(status=0)✅ - 扫描已结束的活动(
end_time< 当前时间 且 status=0启用),自动禁用(status=1)✅ - 执行频率:每5分钟执行一次 ✅
- 实现状态:
MallPromotionJob.updateSeckillStatus()方法已实现
- 扫描即将开始的活动(
- 拼团过期处理(定时任务)
- 扫描过期拼团(
expire_time< 当前时间 且 状态=拼团中) - 更新拼团状态(状态=2已失败)
- 取消关联订单(取消所有关联的未支付订单)
- 恢复库存(恢复拼团商品的库存)
- 发送失败通知(通知所有参与用户)
- 执行频率:建议每5-10分钟执行一次
- 实现状态: 待创建MallGroupBuyOrderMapper和相关Service方法后实现
- 扫描过期拼团(
- 砍价过期处理(定时任务)
- 扫描过期砍价(
expire_time< 当前时间 且 状态=进行中) - 更新砍价状态(状态=2已失败)
- 清理未使用的砍价记录
- 发送失败通知(通知发起用户)
- 执行频率:建议每10-30分钟执行一次
- 实现状态: 待创建MallBargainRecordMapper和相关Service方法后实现
- 扫描过期砍价(
- 秒杀活动状态更新任务 ✅
- 秒杀订单处理(核心逻辑已实现,待订单服务集成)✅
5. ruoyi-mall-statistics (统计中心)
已实现功能 ✅
- 交易分析 ✅
- 订单统计(总订单数、总销售额) ✅
- 已支付订单统计(已支付订单数、已支付金额) ✅
- 退款金额统计 ✅
- 今日统计(今日订单数、今日销售额) ✅
- 商品销售排行(按销售金额排序) ✅
- 交易趋势分析(按日期分组统计) ✅
待实现功能 ⏳
- 会员分析(需会员模块支持,当前系统可通过订单表
mall_order.user_id实现基础统计)- 会员增长统计
- 总会员数统计(基于用户表或订单表去重用户数)
- 每日新增会员数统计(按注册时间或首次下单时间)
- 会员增长趋势分析(按日期统计新增会员数)
- 会员增长环比/同比增长分析
- 会员消费统计
- 会员总消费金额统计(按用户ID聚合订单金额)
- 会员平均消费金额(总消费/会员数)
- 会员消费排行(按消费金额排序)
- 会员消费分布分析(消费区间分布)
- 高价值会员识别(消费金额Top N会员)
- 会员活跃度分析
- 活跃会员数统计(有订单的会员数)
- 会员活跃度等级划分(根据下单频率、消费金额等)
- 会员留存率分析(新会员留存、老会员复购)
- 会员流失分析(长期未下单会员识别)
- 会员增长统计
- 商品分析(基于现有
mall_product、mall_order_item表实现)- 商品销售统计(部分功能可通过交易统计的商品排行实现)
- 商品销售金额统计(按商品ID聚合订单明细)
- 商品销售数量统计(按商品ID聚合订单数量)
- 商品销售趋势分析(按日期统计商品销售)
- 商品销售排行(按销售金额、销售数量排序)
- 商品分类销售统计(按商品分类聚合统计)
- 商品品牌销售统计(按品牌聚合统计)
- 商品浏览统计(商品表已有
view_count字段,需商品模块支持浏览统计接口)- 商品浏览量统计(基于
mall_product.view_count字段) - 商品浏览量排行(按浏览量排序)
- 商品浏览趋势分析(需记录浏览日志表或通过商品表
view_count字段) - 热门商品识别(浏览量Top N商品)
- 商品浏览与销售关联分析
- 商品浏览量统计(基于
- 商品转化率分析
- 商品转化率计算(订单数/浏览量,或销量/浏览量)
- 商品转化率排行(按转化率排序)
- 高转化率商品识别
- 低转化率商品分析(识别需优化商品)
- 商品浏览到下单转化漏斗分析
- 商品销售统计(部分功能可通过交易统计的商品排行实现)
- 营销分析(基于
mall_promotion、mall_coupon、mall_order表实现)- 活动效果统计(需营销模块支持,基于
mall_promotion和订单表关联)- 活动参与人数统计(参与活动的订单用户数)
- 活动订单数统计(按活动ID聚合订单)
- 活动销售额统计(活动订单的销售金额)
- 活动转化率分析(活动订单数/活动参与人数)
- 活动类型效果对比(拼团、秒杀、砍价等活动效果对比)
- 活动ROI分析(活动投入成本 vs 活动带来的销售额)
- 活动效果趋势分析(按日期统计活动效果)
- 优惠券使用统计(基于
mall_coupon、mall_coupon_user、mall_order_coupon表)- 优惠券发放统计(优惠券发放数量,基于
mall_coupon_user表) - 优惠券使用统计(优惠券使用数量,
mall_coupon_user.status=1) - 优惠券使用率统计(使用数/发放数)
- 优惠券核销金额统计(基于
mall_order_coupon.discount_amount) - 优惠券类型使用对比(满减、折扣、现金券使用情况)
- 优惠券使用趋势分析(按日期统计优惠券使用)
- 优惠券效果分析(优惠券带来的订单和销售额)
- 优惠券发放统计(优惠券发放数量,基于
- 营销ROI分析
- 营销活动总投入统计(活动成本计算)
- 营销活动总产出统计(活动带来的销售额)
- 营销ROI计算(产出/投入)
- 各营销渠道ROI对比(活动、优惠券等)
- 营销效果评估(投入产出比分析)
- 活动效果统计(需营销模块支持,基于
- 数据报表
- 数据报表导出
- 交易统计报表导出(Excel格式)
- 商品销售报表导出
- 会员统计报表导出
- 营销活动报表导出
- 自定义报表配置和导出
- 数据可视化接口
- 图表数据接口(支持折线图、柱状图、饼图等)
- 实时数据统计接口
- 数据大屏数据接口
- 数据导出格式支持(Excel、PDF、CSV等)
- 数据报表导出
API接口详细说明
1. ruoyi-mall-product (商品中心)
管理端接口
商品管理 (/mall/product)
GET /mall/product/list- 查询商品列表(分页)GET /mall/product/{id}- 获取商品详情POST /mall/product- 新增商品PUT /mall/product- 修改商品DELETE /mall/product/{ids}- 删除商品
商品分类管理 (/mall/product/category)
GET /mall/product/category/list- 查询商品分类列表(分页)GET /mall/product/category/tree- 查询商品分类树形列表GET /mall/product/category/{id}- 获取商品分类详情POST /mall/product/category- 新增商品分类PUT /mall/product/category- 修改商品分类DELETE /mall/product/category/{ids}- 删除商品分类POST /mall/product/category/export- 导出商品分类列表
品牌管理 (/mall/product/brand)
GET /mall/product/brand/list- 查询品牌列表(分页)GET /mall/product/brand/{id}- 获取品牌详情POST /mall/product/brand- 新增品牌PUT /mall/product/brand- 修改品牌DELETE /mall/product/brand/{ids}- 删除品牌POST /mall/product/brand/export- 导出品牌列表
属性模板管理 (/mall/product/attribute/template)
GET /mall/product/attribute/template/list- 查询属性模板列表(分页)GET /mall/product/attribute/template/{id}- 获取属性模板详情POST /mall/product/attribute/template- 新增属性模板PUT /mall/product/attribute/template- 修改属性模板DELETE /mall/product/attribute/template/{ids}- 删除属性模板POST /mall/product/attribute/template/export- 导出属性模板列表
属性管理 (/mall/product/attribute)
GET /mall/product/attribute/list- 查询属性列表(分页)GET /mall/product/attribute/{id}- 获取属性详情GET /mall/product/attribute/template/{templateId}- 根据模板ID查询属性列表POST /mall/product/attribute- 新增属性PUT /mall/product/attribute- 修改属性DELETE /mall/product/attribute/{ids}- 删除属性POST /mall/product/attribute/export- 导出属性列表
属性值管理 (/mall/product/attribute/value)
GET /mall/product/attribute/value/list- 查询属性值列表(分页)GET /mall/product/attribute/value/{id}- 获取属性值详情GET /mall/product/attribute/value/attribute/{attributeId}- 根据属性ID查询属性值列表POST /mall/product/attribute/value- 新增属性值PUT /mall/product/attribute/value- 修改属性值DELETE /mall/product/attribute/value/{ids}- 删除属性值POST /mall/product/attribute/value/export- 导出属性值列表
商品属性关联管理 (/mall/product/attribute/product)
GET /mall/product/attribute/product/{id}- 获取商品属性关联详情GET /mall/product/attribute/product/product/{productId}- 根据商品ID查询商品属性关联列表POST /mall/product/attribute/product- 新增商品属性关联POST /mall/product/attribute/product/batch- 批量新增商品属性关联POST /mall/product/attribute/product/product/{productId}- 保存商品属性关联(先删除旧的,再插入新的)PUT /mall/product/attribute/product- 修改商品属性关联DELETE /mall/product/attribute/product/{ids}- 删除商品属性关联DELETE /mall/product/attribute/product/product/{productId}- 根据商品ID删除商品属性关联
移动端接口
商品分类 (/app/mall/product/category)
GET /app/mall/product/category/tree- 查询商品分类树形列表(仅启用分类)
品牌 (/app/mall/product/brand)
GET /app/mall/product/brand/list- 查询品牌列表(仅启用品牌)
商品 (/app/mall/product)
GET /app/mall/product/list- 查询商品列表(仅上架商品)GET /app/mall/product/{id}- 获取商品详情(仅上架商品)
2. ruoyi-mall-trade (交易中心)
管理端接口
订单管理 (/mall/order)
GET /mall/order/list- 查询订单列表(分页、条件筛选)GET /mall/order/{id}- 获取订单详情PUT /mall/order- 修改订单DELETE /mall/order/{ids}- 删除订单PUT /mall/order/delivery/{id}- 订单发货
售后申请管理 (/mall/order/after-sale)
GET /mall/order/after-sale/list- 查询售后申请列表(分页)GET /mall/order/after-sale/{id}- 获取售后申请详情DELETE /mall/order/after-sale/{ids}- 删除售后申请POST /mall/order/after-sale/export- 导出售后申请列表PUT /mall/order/after-sale/audit/{id}- 审核售后申请(同意/拒绝)PUT /mall/order/after-sale/receive/{id}- 确认收货(商家确认收到退货)PUT /mall/order/after-sale/complete/{id}- 完成售后
订单评价管理 (/mall/order/evaluate)
GET /mall/order/evaluate/list- 查询订单评价列表(分页)GET /mall/order/evaluate/{id}- 获取订单评价详情DELETE /mall/order/evaluate/{ids}- 删除订单评价POST /mall/order/evaluate/export- 导出订单评价列表PUT /mall/order/evaluate/audit/{id}- 审核评价(通过/驳回)PUT /mall/order/evaluate/reply/{id}- 回复评价
移动端接口
购物车 (/app/mall/cart)
GET /app/mall/cart/list- 查询购物车列表GET /app/mall/cart/detail/list- 查询购物车详情列表(包含商品信息)POST /app/mall/cart- 添加购物车PUT /app/mall/cart- 修改购物车DELETE /app/mall/cart/{ids}- 删除购物车DELETE /app/mall/cart/clear- 清空购物车PUT /app/mall/cart/selected/{id}- 更新单个商品选中状态PUT /app/mall/cart/selected/batch- 批量更新选中状态
订单 (/app/mall/order)
POST /app/mall/order/submit- 提交订单并发起支付GET /app/mall/order/list- 查询订单列表GET /app/mall/order/{id}- 查询订单详情PUT /app/mall/order/cancel/{id}- 取消订单POST /app/mall/order/pay/notify- 支付回调(由支付中心调用)
售后申请 (/app/mall/order/after-sale)
GET /app/mall/order/after-sale/list- 查询售后申请列表GET /app/mall/order/after-sale/order/{orderId}- 根据订单ID查询售后申请列表GET /app/mall/order/after-sale/{id}- 获取售后申请详情POST /app/mall/order/after-sale- 新增售后申请(退款/退货/换货)PUT /app/mall/order/after-sale/logistics/{id}- 填写退货物流信息PUT /app/mall/order/after-sale/cancel/{id}- 取消售后申请
订单评价 (/app/mall/order/evaluate)
GET /app/mall/order/evaluate/list- 查询订单评价列表GET /app/mall/order/evaluate/order/{orderId}- 根据订单ID查询评价列表GET /app/mall/order/evaluate/product/{productId}- 根据商品ID查询评价列表(仅已审核)GET /app/mall/order/evaluate/{id}- 获取订单评价详情POST /app/mall/order/evaluate- 提交订单评价
优惠券 (/app/mall/coupon)
GET /app/mall/coupon/available/list- 查询可领取的优惠券列表GET /app/mall/coupon/{id}- 获取优惠券详情
用户优惠券 (/app/mall/coupon/user)
GET /app/mall/coupon/user/list- 查询用户优惠券列表GET /app/mall/coupon/user/available/list- 查询用户可用优惠券列表(未使用且未过期)GET /app/mall/coupon/user/{id}- 获取用户优惠券详情POST /app/mall/coupon/user/receive/{couponId}- 领取优惠券
3. ruoyi-mall-coupon (优惠券中心)
管理端接口
优惠券管理 (/mall/coupon)
GET /mall/coupon/list- 查询优惠券列表(分页)GET /mall/coupon/{id}- 获取优惠券详情POST /mall/coupon- 新增优惠券PUT /mall/coupon- 修改优惠券DELETE /mall/coupon/{ids}- 删除优惠券POST /mall/coupon/export- 导出优惠券列表PUT /mall/coupon/changeStatus/{id}- 启用/禁用优惠券GET /mall/coupon/statistics- 获取优惠券统计信息(发放数量、使用数量、使用率)
用户优惠券管理 (/mall/coupon/user)
GET /mall/coupon/user/list- 查询用户优惠券列表(分页)GET /mall/coupon/user/{id}- 获取用户优惠券详情DELETE /mall/coupon/user/{ids}- 删除用户优惠券POST /mall/coupon/user/export- 导出用户优惠券列表
4. ruoyi-mall-promotion (营销中心)
管理端接口
营销活动管理 (/mall/promotion)
GET /mall/promotion/list- 查询营销活动列表(分页)GET /mall/promotion/{id}- 获取营销活动详情POST /mall/promotion- 新增营销活动PUT /mall/promotion- 修改营销活动DELETE /mall/promotion/{ids}- 删除营销活动POST /mall/promotion/export- 导出营销活动列表PUT /mall/promotion/changeStatus/{id}- 启用/禁用营销活动
秒杀活动管理 (/mall/seckill)
GET /mall/seckill/list- 查询秒杀活动列表(分页)GET /mall/seckill/{id}- 获取秒杀活动详情POST /mall/seckill- 新增秒杀活动PUT /mall/seckill- 修改秒杀活动DELETE /mall/seckill/{ids}- 删除秒杀活动POST /mall/seckill/export- 导出秒杀活动列表PUT /mall/seckill/changeStatus/{id}- 启用/禁用秒杀活动
拼团活动管理 (/mall/groupbuy)
GET /mall/groupbuy/list- 查询拼团活动列表(分页)GET /mall/groupbuy/{id}- 获取拼团活动详情POST /mall/groupbuy- 新增拼团活动PUT /mall/groupbuy- 修改拼团活动DELETE /mall/groupbuy/{ids}- 删除拼团活动POST /mall/groupbuy/export- 导出拼团活动列表PUT /mall/groupbuy/changeStatus/{id}- 启用/禁用拼团活动
砍价活动管理 (/mall/bargain)
GET /mall/bargain/list- 查询砍价活动列表(分页)GET /mall/bargain/{id}- 获取砍价活动详情POST /mall/bargain- 新增砍价活动PUT /mall/bargain- 修改砍价活动DELETE /mall/bargain/{ids}- 删除砍价活动POST /mall/bargain/export- 导出砍价活动列表PUT /mall/bargain/changeStatus/{id}- 启用/禁用砍价活动
移动端接口
营销活动 (/app/mall/promotion)
GET /app/mall/promotion/list- 查询营销活动列表(可按类型筛选)GET /app/mall/promotion/{id}- 获取营销活动详情
秒杀活动 (/app/mall/seckill)
GET /app/mall/seckill/list- 查询可用秒杀活动列表GET /app/mall/seckill/{id}- 获取秒杀活动详情GET /app/mall/seckill/sku/{skuId}- 根据SKU ID查询秒杀活动
拼团活动 (/app/mall/groupbuy)
GET /app/mall/groupbuy/list- 查询可用拼团活动列表GET /app/mall/groupbuy/{id}- 获取拼团活动详情GET /app/mall/groupbuy/sku/{skuId}- 根据SKU ID查询拼团活动
砍价活动 (/app/mall/bargain)
GET /app/mall/bargain/list- 查询可用砍价活动列表GET /app/mall/bargain/{id}- 获取砍价活动详情GET /app/mall/bargain/sku/{skuId}- 根据SKU ID查询砍价活动
5. ruoyi-mall-statistics (统计中心)
管理端接口
统计数据 (/mall/statistics)
GET /mall/statistics/transaction- 获取交易统计数据- 支持按日期范围查询(startDate, endDate)
- 支持设置商品销售排行数量限制(limit,默认10)
- 返回数据包括:总订单数、总销售额、已支付订单数、已支付金额、退款金额、今日统计、趋势数据、商品销售排行
GET /mall/statistics/member- 获取会员统计数据- 支持按日期范围查询(startDate, endDate)
- 返回数据包括:总会员数、今日新增会员数、活跃会员数、增长趋势、消费统计
- ⚠️ 注意:会员统计功能需要会员模块支持,当前返回基础结构
定时任务规划
优惠券模块
- 优惠券过期处理任务 ✅
- 功能: 定时扫描过期的用户优惠券,更新状态为已过期
- 执行频率: 每天凌晨2点执行一次
- 实现位置:
ruoyi-mall-coupon模块 - 方法:
MallCouponJob.processExpiredCoupons()(调用MallCouponUserService.processExpiredCoupons())
营销模块
- 拼团过期处理任务
- 功能: 定时扫描过期的拼团订单,更新状态为已失败,处理退款
- 执行频率: 每5分钟执行一次
- 实现位置:
ruoyi-mall-promotion模块
- 砍价过期处理任务
- 功能: 定时扫描过期的砍价记录,更新状态为已失败
- 执行频率: 每5分钟执行一次
- 实现位置:
ruoyi-mall-promotion模块
- 秒杀活动状态更新任务 ✅
- 功能: 定时更新秒杀活动状态(开始/结束)
- 执行频率: 每5分钟执行一次
- 实现位置:
ruoyi-mall-promotion模块 - 方法:
MallPromotionJob.updateSeckillStatus()
订单模块(可选)
- 订单自动取消任务
- 功能: 定时扫描超时未支付的订单,自动取消并恢复库存
- 执行频率: 每10分钟执行一次
- 实现位置:
ruoyi-mall-trade模块
技术栈与开发规范
技术栈
- 框架: Spring Boot 3.x
- ORM: MyBatis-Plus
- 数据库: MySQL 8.0+
- 认证: Sa-Token
- API文档: Swagger/OpenAPI 3.0
- 构建工具: Maven
开发规范
包结构规范
controller- 控制器层(分为admin和app两个子包)domain- 实体类(包含bo业务对象和vo视图对象子包)mapper- MyBatis Mapper 接口service- 服务接口(实现类放在impl子包)config- 配置类(自动配置类)enums- 枚举类job- 定时任务(可选)
代码规范
- 统一使用 Lombok 简化代码
- 统一异常处理,使用
ServiceException抛出业务异常 - 统一返回格式,使用
R<T>封装返回结果 - 统一分页查询,使用
PageQuery和TableDataInfo<T> - 统一日志记录,使用
@Log注解记录操作日志 - 统一权限控制,管理端接口使用
@SaCheckPermission注解
数据库设计规范
- 表名使用
mall_前缀 - 字段命名使用下划线命名法(snake_case)
- 必须包含
create_by,create_time,update_by,update_time字段 - 删除标记使用逻辑删除(
deleted字段) - 状态字段统一使用
status,0表示启用/正常,1表示禁用/异常
API设计规范
- RESTful 风格设计
- 管理端接口路径:
/mall/{module}/{resource} - 移动端接口路径:
/app/mall/{module}/{resource} - 使用 HTTP 标准方法:GET(查询)、POST(新增)、PUT(修改)、DELETE(删除)
- 统一使用 JSON 格式进行数据交互
- 使用 Swagger 注解完善接口文档
模块集成说明
支付中心集成 (ruoyi-pay)
- 集成方式: 通过 Feign 客户端或本地 Jar 依赖
- 核心功能:
- 订单提交时调用支付中心创建支付单
- 支付中心回调通知支付结果
- 订单状态与支付状态同步
- 配置要求: 在
application.yml中配置pay-app-id和pay-notify-url
商品中心依赖关系
ruoyi-mall-trade依赖ruoyi-mall-product(查询商品和SKU信息)ruoyi-mall-promotion依赖ruoyi-mall-product(营销活动关联商品)ruoyi-mall-statistics依赖ruoyi-mall-product和ruoyi-mall-trade(数据统计分析)
开发指南
新增功能开发步骤
-
数据库设计
- 在
script/sql/ry_mall.sql中设计表结构 - 确保字段命名规范,包含必要的索引
- 在
-
创建实体类
- 在对应模块的
domain包下创建实体类 - 创建对应的
Bo(业务对象)和Vo(视图对象)
- 在对应模块的
-
创建 Mapper
- 在
mapper包下创建 Mapper 接口 - 如需复杂查询,在
resources/mapper下创建 XML 文件
- 在
-
创建 Service
- 在
service包下创建 Service 接口 - 在
service/impl包下创建 Service 实现类
- 在
-
创建 Controller
- 管理端接口:在
controller/admin包下创建 - 移动端接口:在
controller/app包下创建 - 添加 Swagger 注解完善接口文档
- 管理端接口:在
-
测试验证
- 编写单元测试(可选)
- 使用 Swagger UI 测试接口
- 验证业务逻辑正确性
代码迁移指南
如果要将现有代码迁移到新模块结构:
- 创建新模块结构(如果尚未创建)
- 复制代码到新模块
- 修改包名(如
org.dromara.mall.domain→org.dromara.mall.product.domain) - 更新导入语句
- 更新 Mapper XML 文件中的命名空间
- 测试验证功能正常
注意事项
- 包名冲突: 如果同时保留现有代码和新模块代码,需要注意包名冲突问题
- 依赖管理: 确保模块间的依赖关系正确配置,避免循环依赖
- 数据库迁移: 执行 SQL 文件创建新表结构,注意数据迁移(如果需要)
- 配置管理: 各子模块的配置通过
spring.factories自动加载 - 事务管理: 订单创建、支付回调等核心流程需要确保事务一致性
- 库存管理: SKU库存扣减需要考虑并发问题,建议使用分布式锁或数据库锁(悲观锁/乐观锁)
- 支付集成: 订单支付需要与
ruoyi-pay模块集成,确保支付流程正确 - 数据统计: 统计模块建议使用异步处理,避免影响业务性能
- 文件上传: 商品图片、品牌Logo、分类图标等文件上传功能需要集成文件服务(如OSS)
- 缓存策略: 商品列表、分类树等热点数据建议使用Redis缓存
- 幂等性: 支付回调、订单创建等关键操作需要保证幂等性
- 数据一致性: 订单创建、库存扣减等操作需要在同一事务中完成