本文档全面概述了Mall电子商务系统中的订单管理数据库表。这些表构成了订单处理系统的骨干,处理从购物车到订单创建、支付和发货的整个流程。
订单管理子系统与产品库存管理(参见 产品管理表)和用户账户(参见 用户管理表)进行交互。本文档专门关注订单生命周期管理的数据库设计。
订单管理系统被划分为几个相互关联的表,用于跟踪订单生命周期的不同方面,从购物车到订单完成。
来源: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
此表存储客户购物车中的商品,直至它们被转换为订单。
| 列名 | 数据类型 | 描述 |
|---|---|---|
| id | bigint | 主键 |
| product_id | bigint | 商品引用 |
| product_sku_id | bigint | 商品SKU(库存单位)引用 |
| member_id | bigint | 客户/会员引用 |
| quantity | int | 商品数量 |
| price | decimal(10,2) | 添加到购物车时的价格 |
| product_pic | varchar(1000) | 商品主图URL |
| product_name | varchar(500) | 产品名称 |
| product_sub_title | varchar(500) | 商品副标题/卖点 |
| product_sku_code | varchar(200) | 商品SKU条形码 |
| member_nickname | varchar(500) | 会员昵称 |
| create_date | datetime | 创建时间 |
| modify_date | datetime | 修改时间 |
| delete_status | int(1) | 删除状态(0:未删除) |
| product_category_id | bigint | 产品类别 ID |
| product_brand | varchar(200) | 产品品牌 |
| product_sn | varchar(200) | 产品序列号 |
| product_attr | varchar(500) | JSON 格式的产品属性 |
来源:document/sql/mall.sql285-308 mall-mbg/src/main/java/com/macro/mall/model/OmsCartItem.java8-57
存储订单信息的主订单表。
| 列名 | 数据类型 | 描述 |
|---|---|---|
| id | bigint | 主键 |
| member_id | bigint | 客户/会员引用 |
| order_sn | varchar | 订单序列号 |
| create_time | datetime | 订单创建时间 |
| member_username | varchar | 会员用户名 |
| total_amount | decimal | 订单总金额 |
| pay_amount | decimal | 支付金额 |
| freight_amount | decimal | 运费 |
| promotion_amount | decimal | 促销折扣金额 |
| integration_amount | decimal | 积分抵扣金额 |
| coupon_amount | decimal | 优惠券折扣金额 |
| discount_amount | decimal | 折扣金额 |
| pay_type | int | 支付类型 |
| source_type | int | 订单来源 |
| status | int | 订单状态 |
| order_type | int | 订单类型 |
| delivery_company | varchar | 配送公司 |
| delivery_sn | varchar | 配送追踪号 |
| auto_confirm_day | int | 自动确认天数 |
| integration | int | 赚取的积分 |
| growth | int | 赚取的成长值 |
| promotion_info | varchar | 促销信息 |
| bill_type | int | 发票类型 |
| bill_header | varchar | 发票抬头 |
| bill_content | varchar | 发票内容 |
| bill_receiver_phone | varchar | 发票收件人电话 |
| bill_receiver_email | varchar | 发票收件人邮箱 |
| receiver_name | varchar | 收件人姓名 |
| receiver_phone | varchar | 收件人电话 |
| receiver_post_code | varchar | 收件人邮政编码 |
| receiver_province | varchar | 收件人省份 |
| receiver_city | varchar | 收件人城市 |
| receiver_region | varchar | 收件人区域 |
| receiver_detail_address | varchar | 收件人详细地址 |
| note | varchar | 订单备注 |
| confirm_status | int | 确认状态 |
| delete_status | int | 删除状态 |
| payment_time | datetime | 支付时间 |
| delivery_time | datetime | 发货时间 |
| receive_time | datetime | 收货时间 |
| comment_time | datetime | 评论时间 |
| modify_time | datetime | 修改时间 |
来源:mall-admin/src/main/resources/dao/OmsOrderDao.xml67-88
此表存储订单中的单个商品项。
| 列名 | 数据类型 | 描述 |
|---|---|---|
| id | bigint | 主键 |
| order_id | bigint | 订单引用 |
| order_sn | varchar | 订单序列号 |
| product_id | bigint | 商品ID |
| product_pic | varchar | 产品图片 URL |
| product_name | varchar | 产品名称 |
| product_brand | varchar | 产品品牌 |
| product_sn | varchar | 产品序列号 |
| product_price | decimal | 商品价格 |
| product_quantity | int | 商品数量 |
| product_sku_id | bigint | Product SKU ID |
| product_sku_code | varchar | Product SKU code |
| product_category_id | bigint | 产品类别 ID |
| promotion_name | varchar | 促销名称 |
| promotion_amount | decimal | 促销折扣金额 |
| coupon_amount | decimal | 优惠券折扣金额 |
| integration_amount | decimal | 积分抵扣金额 |
| real_amount | decimal | 折扣后的实际金额 |
| gift_integration | int | 赠送积分 |
| gift_growth | int | 赠送成长值 |
| product_attr | varchar | JSON 格式的产品属性 |
来源:mall-mbg/src/main/java/com/macro/mall/model/OmsOrderItem.java7-61 mall-mbg/src/main/resources/com/macro/mall/mapper/OmsOrderItemMapper.xml4-25
此表跟踪对订单执行的所有操作,维护状态变更的历史记录。
| 列名 | 数据类型 | 描述 |
|---|---|---|
| id | bigint | 主键 |
| order_id | bigint | 订单引用 |
| operate_man | varchar | 操作者(客户或管理员) |
| create_time | datetime | 操作时间 |
| order_status | int | 操作后的订单状态 |
| note | varchar | 操作备注 |
来源:mall-admin/src/main/resources/dao/OmsOrderDao.xml67-88
当客户结账时,系统会将购物车中的商品转化为订单项。此过程涉及以下步骤:
OmsCartItemService 获取购物车项OmsPromotionService 计算促销活动oms_order 中创建订单记录oms_order_item 中创建订单项PmsSkuStockService 锁定库存来源:mall-portal/src/main/resources/dao/PortalOrderItemDao.xml4-21
订单状态在 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
当订单准备发货时,管理员系统会更新订单状态并添加配送信息。
来源:mall-admin/src/main/resources/dao/OmsOrderDao.xml36-65
Mall系统使用MyBatis进行数据库映射。以下Java模型类代表订单管理表:
对应 oms_cart_item 表。主要属性包括:
id: 主键productId: 商品标识productSkuId: 商品SKU标识memberId: 会员标识quantity: 商品数量price: 商品价格productAttr: 商品属性(JSON格式)来源:mall-mbg/src/main/java/com/macro/mall/model/OmsCartItem.java8-57
对应 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
订单管理表构成了一个统一的系统,用于处理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