菜单

订单管理表

相关源文件

本文档全面概述了Mall电子商务系统中的订单管理数据库表。这些表构成了订单处理系统的骨干,处理从购物车到订单创建、支付和发货的整个流程。

订单管理子系统与产品库存管理(参见 产品管理表)和用户账户(参见 用户管理表)进行交互。本文档专门关注订单生命周期管理的数据库设计。

1. 订单管理模式概览

订单管理系统被划分为几个相互关联的表,用于跟踪订单生命周期的不同方面,从购物车到订单完成。

表关系图

来源:document/sql/mall.sql285-338 document/sql/mall.sql285-367 mall-mbg/src/main/java/com/macro/mall/model/OmsOrderItem.java1-264

订单处理流程

来源:mall-admin/src/main/resources/dao/OmsOrderDao.xml36-65 mall-portal/src/main/resources/dao/PortalOrderItemDao.xml1-22

2. 核心订单管理表

2.1 购物车表 (oms_cart_item)

此表存储客户购物车中的商品,直至它们被转换为订单。

列名数据类型描述
idbigint主键
product_idbigint商品引用
product_sku_idbigint商品SKU(库存单位)引用
member_idbigint客户/会员引用
quantityint商品数量
pricedecimal(10,2)添加到购物车时的价格
product_picvarchar(1000)商品主图URL
product_namevarchar(500)产品名称
product_sub_titlevarchar(500)商品副标题/卖点
product_sku_codevarchar(200)商品SKU条形码
member_nicknamevarchar(500)会员昵称
create_datedatetime创建时间
modify_datedatetime修改时间
delete_statusint(1)删除状态(0:未删除)
product_category_idbigint产品类别 ID
product_brandvarchar(200)产品品牌
product_snvarchar(200)产品序列号
product_attrvarchar(500)JSON 格式的产品属性

来源:document/sql/mall.sql285-308 mall-mbg/src/main/java/com/macro/mall/model/OmsCartItem.java8-57

2.2 订单表 (oms_order)

存储订单信息的主订单表。

列名数据类型描述
idbigint主键
member_idbigint客户/会员引用
order_snvarchar订单序列号
create_timedatetime订单创建时间
member_usernamevarchar会员用户名
total_amountdecimal订单总金额
pay_amountdecimal支付金额
freight_amountdecimal运费
promotion_amountdecimal促销折扣金额
integration_amountdecimal积分抵扣金额
coupon_amountdecimal优惠券折扣金额
discount_amountdecimal折扣金额
pay_typeint支付类型
source_typeint订单来源
statusint订单状态
order_typeint订单类型
delivery_companyvarchar配送公司
delivery_snvarchar配送追踪号
auto_confirm_dayint自动确认天数
integrationint赚取的积分
growthint赚取的成长值
promotion_infovarchar促销信息
bill_typeint发票类型
bill_headervarchar发票抬头
bill_contentvarchar发票内容
bill_receiver_phonevarchar发票收件人电话
bill_receiver_emailvarchar发票收件人邮箱
receiver_namevarchar收件人姓名
receiver_phonevarchar收件人电话
receiver_post_codevarchar收件人邮政编码
receiver_provincevarchar收件人省份
receiver_cityvarchar收件人城市
receiver_regionvarchar收件人区域
receiver_detail_addressvarchar收件人详细地址
notevarchar订单备注
confirm_statusint确认状态
delete_statusint删除状态
payment_timedatetime支付时间
delivery_timedatetime发货时间
receive_timedatetime收货时间
comment_timedatetime评论时间
modify_timedatetime修改时间

来源:mall-admin/src/main/resources/dao/OmsOrderDao.xml67-88

2.3 订单项表 (oms_order_item)

此表存储订单中的单个商品项。

列名数据类型描述
idbigint主键
order_idbigint订单引用
order_snvarchar订单序列号
product_idbigint商品ID
product_picvarchar产品图片 URL
product_namevarchar产品名称
product_brandvarchar产品品牌
product_snvarchar产品序列号
product_pricedecimal商品价格
product_quantityint商品数量
product_sku_idbigintProduct SKU ID
product_sku_codevarcharProduct SKU code
product_category_idbigint产品类别 ID
promotion_namevarchar促销名称
promotion_amountdecimal促销折扣金额
coupon_amountdecimal优惠券折扣金额
integration_amountdecimal积分抵扣金额
real_amountdecimal折扣后的实际金额
gift_integrationint赠送积分
gift_growthint赠送成长值
product_attrvarcharJSON 格式的产品属性

来源:mall-mbg/src/main/java/com/macro/mall/model/OmsOrderItem.java7-61 mall-mbg/src/main/resources/com/macro/mall/mapper/OmsOrderItemMapper.xml4-25

2.4 订单操作历史表 (oms_order_operate_history)

此表跟踪对订单执行的所有操作,维护状态变更的历史记录。

列名数据类型描述
idbigint主键
order_idbigint订单引用
operate_manvarchar操作者(客户或管理员)
create_timedatetime操作时间
order_statusint操作后的订单状态
notevarchar操作备注

来源:mall-admin/src/main/resources/dao/OmsOrderDao.xml67-88

3. 订单流程实现

3.1 购物车到订单的转化

当客户结账时,系统会将购物车中的商品转化为订单项。此过程涉及以下步骤:

  1. 通过 OmsCartItemService 获取购物车项
  2. 通过 OmsPromotionService 计算促销活动
  3. oms_order 中创建订单记录
  4. 根据购物车项,在 oms_order_item 中创建订单项
  5. 通过 PmsSkuStockService 锁定库存
  6. 向RabbitMQ发送延迟消息,以便在支付超时时自动取消

来源:mall-portal/src/main/resources/dao/PortalOrderItemDao.xml4-21

3.2 订单状态管理

订单状态在 oms_order 表的 status 字段中跟踪。每一次状态更改都会在 oms_order_operate_history 表中记录。主要的订单状态有:

状态码描述
0待付款
1待发货
2已发货
3已完成
4已关闭(已取消)
5无效

当订单状态发生变化时,系统会更新 oms_order 表,并向 oms_order_operate_history 表添加一条记录。

来源:mall-admin/src/main/resources/dao/OmsOrderDao.xml36-65

3.3 订单发货流程

当订单准备发货时,管理员系统会更新订单状态并添加配送信息。

来源:mall-admin/src/main/resources/dao/OmsOrderDao.xml36-65

4. 实体类与数据库映射

Mall系统使用MyBatis进行数据库映射。以下Java模型类代表订单管理表:

4.1 OmsCartItem

对应 oms_cart_item 表。主要属性包括:

  • id: 主键
  • productId: 商品标识
  • productSkuId: 商品SKU标识
  • memberId: 会员标识
  • quantity: 商品数量
  • price: 商品价格
  • productAttr: 商品属性(JSON格式)

来源:mall-mbg/src/main/java/com/macro/mall/model/OmsCartItem.java8-57

4.2 OmsOrderItem

对应 oms_order_item 表。主要属性包括:

  • id: 主键
  • orderId: 订单标识
  • orderSn: 订单序列号
  • productId: 商品标识
  • productPrice: 商品价格
  • productQuantity: 商品数量
  • promotionAmount: 促销折扣金额
  • couponAmount: 优惠券折扣金额
  • integrationAmount: 积分抵扣金额
  • realAmount: 折扣后的实际金额

来源:mall-mbg/src/main/java/com/macro/mall/model/OmsOrderItem.java7-61

5. 结论

订单管理表构成了一个统一的系统,用于处理Mall电子商务平台中的整个订单生命周期。从购物车到订单完成,这些表存储了处理订单、应用促销、跟踪状态变更和管理发货所需的所有信息。

关系结构确保了数据的完整性,同时也为部分退款、订单拆分和各种促销类型等复杂的电子商务操作提供了灵活性。

来源:document/sql/mall.sql mall-mbg/src/main/java/com/macro/mall/model/OmsCartItem.java mall-mbg/src/main/java/com/macro/mall/model/OmsOrderItem.java mall-admin/src/main/resources/dao/OmsOrderDao.xml mall-portal/src/main/resources/dao/PortalOrderItemDao.xml