| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- -- =============================================================================
- -- 订单模块 biz_order / biz_order_item / biz_order_logistics_trace
- -- 用途:C 端会员在店铺下单;平台 / 商家端共用同一套表履约
- -- 关联文档:doc/平台后台/订单管理/订单管理技术方案.md
- -- doc/店铺后台/订单管理/全部订单/全部订单技术方案.md
- -- doc/消费者APP/确认订单页(多商品)/确认订单页(多商品)技术方案.md
- -- doc/消费者APP/确认订单页(单商品)(取消支付前)/确认订单页(单商品)技术方案.md
- -- 状态规则:order_status 0待支付 1待发货 2已发货 3已完成 4已关闭 5已删除
- -- 逻辑删除用 order_status=5,del_flag 保持 0(审计可查)
- -- 存量库升级:若 biz_order_item 已建且无 checkout 字段,执行 sql/biz_order_item_checkout.sql
- -- 存量库升级:若 biz_order 无 idx_stats_finish,见本文件末尾 § 升级脚本
- -- =============================================================================
- -- -----------------------------------------------------------------------------
- -- 订单主表 biz_order
- -- 说明:一单对应一次交易;商品明细见 biz_order_item;物流节点见 biz_order_logistics_trace
- -- -----------------------------------------------------------------------------
- CREATE TABLE IF NOT EXISTS `biz_order` (
- `order_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '订单ID,主键',
- `order_no` varchar(32) NOT NULL COMMENT '订单编号,全平台唯一;格式 O+yyyyMMdd+6位序号',
- `member_id` bigint(20) NOT NULL COMMENT '买家会员ID(biz_member.member_id)',
- `shop_id` bigint(20) NOT NULL COMMENT '所属店铺ID(biz_shop.shop_id);商家端列表按此字段隔离',
- `merchant_id` bigint(20) NOT NULL COMMENT '所属商户ID(biz_merchant.merchant_id);冗余便于商户维度统计与删商户校验',
- `order_status` char(1) NOT NULL DEFAULT '0' COMMENT '订单状态:0待支付 1待发货 2已发货 3已完成 4已关闭 5已删除(逻辑删除)',
- `close_type` char(1) DEFAULT NULL COMMENT '关闭类型(order_status=4时填写):1未支付超时 2买家取消 3运营关闭 4支付失败/退款',
- `close_reason` varchar(500) DEFAULT NULL COMMENT '关闭说明;运营手工关闭或系统关闭时记录原因',
- `pay_type` char(1) DEFAULT NULL COMMENT '支付方式字典 biz_order_pay_type;C端支付成功后写入',
- `pay_status` char(1) NOT NULL DEFAULT '0' COMMENT '支付状态:0未支付 1已支付;与 order_status 配合判断待支付/待发货',
- `trade_no` varchar(64) DEFAULT NULL COMMENT '支付渠道交易流水号;用于检索与对账',
- `goods_amount` decimal(12,2) NOT NULL DEFAULT '0.00' COMMENT '商品金额合计(不含运费);下单时按明细行汇总',
- `freight_amount` decimal(12,2) NOT NULL DEFAULT '0.00' COMMENT '运费金额;默认0;列表可展示「含运费」',
- `pay_amount` decimal(12,2) NOT NULL DEFAULT '0.00' COMMENT '实付金额=goods_amount+freight_amount;会员累计消费O11统计字段',
- `consignee_name` varchar(64) NOT NULL COMMENT '收货人姓名(下单快照,后续不随会员地址变更)',
- `consignee_mobile` varchar(20) NOT NULL COMMENT '收货人手机号(下单快照;列表展示须脱敏)',
- `consignee_address` varchar(512) NOT NULL COMMENT '收货完整地址文本(下单快照)',
- `delivery_type` char(1) DEFAULT NULL COMMENT '配送方式(发货时写入):1物流配送 2商家配送;待发货前为空',
- `logistics_company` varchar(64) DEFAULT NULL COMMENT '物流公司名称;delivery_type=1时发货填写',
- `tracking_no` varchar(64) DEFAULT NULL COMMENT '快递单号;delivery_type=1时发货填写',
- `vehicle_no` varchar(32) DEFAULT NULL COMMENT '车辆号码;delivery_type=2时商家配送发货填写',
- `courier_name` varchar(64) DEFAULT NULL COMMENT '配送员姓名;delivery_type=2时商家配送发货填写',
- `courier_mobile` varchar(20) DEFAULT NULL COMMENT '配送员手机号;delivery_type=2时商家配送发货填写',
- `ship_remark` varchar(500) DEFAULT NULL COMMENT '发货备注;选填',
- `shipper_name` varchar(64) DEFAULT NULL COMMENT '发货人快照(发货时自配送设置写入)',
- `shipper_mobile` varchar(20) DEFAULT NULL COMMENT '发货人联系方式快照',
- `ship_region_code` varchar(64) DEFAULT NULL COMMENT '发货地区编码快照(区县级 biz_region.code)',
- `ship_region_name` varchar(128) DEFAULT NULL COMMENT '发货地区名称快照(省/市/区)',
- `ship_detail_address` varchar(256) DEFAULT NULL COMMENT '发货详细地址快照',
- `member_nick_name` varchar(64) DEFAULT NULL COMMENT '下单时会员昵称快照;列表/详情展示买家名称',
- `shop_name` varchar(128) DEFAULT NULL COMMENT '下单时店铺名称快照;平台列表展示用',
- `create_time` datetime NOT NULL COMMENT '下单时间;列表默认按此字段降序',
- `pay_time` datetime DEFAULT NULL COMMENT '支付成功时间;pay_status=1时有值',
- `ship_time` datetime DEFAULT NULL COMMENT '发货时间;order_status>=2时有值;与发货表单 shipTime 一致',
- `pay_expire_time` datetime NOT NULL COMMENT '支付截止时间;创建订单时=create_time+超时分钟;O8定时关单扫描',
- `finish_time` datetime DEFAULT NULL COMMENT '确认收货时间;order_status=3时有值;C端确认收货写入',
- `del_flag` char(1) NOT NULL DEFAULT '0' COMMENT '物理删除标志:0存在;已删除订单用 order_status=5,本字段仍保持0',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者;C端下单可为空或系统标识',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者;发货/关闭/删除等写操作记录操作人',
- `update_time` datetime DEFAULT NULL COMMENT '最后更新时间',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- PRIMARY KEY (`order_id`),
- UNIQUE KEY `uk_order_no` (`order_no`),
- KEY `idx_member` (`member_id`,`create_time`),
- KEY `idx_shop_status` (`shop_id`,`order_status`),
- KEY `idx_create_time` (`create_time`),
- KEY `idx_pay_expire` (`order_status`,`pay_expire_time`),
- KEY `idx_stats_finish` (`order_status`,`finish_time`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单主表(平台+商家端同源)';
- -- -----------------------------------------------------------------------------
- -- 订单商品明细 biz_order_item
- -- 说明:下单时写入商品快照;整单发货不拆行;商品后续改价/改名不影响本表
- -- buyer_remark/service_desc/cart_item_id/spec_key 供 C 端确认订单页使用
- -- -----------------------------------------------------------------------------
- CREATE TABLE IF NOT EXISTS `biz_order_item` (
- `item_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '明细行ID,主键',
- `order_id` bigint(20) NOT NULL COMMENT '订单ID(biz_order.order_id)',
- `goods_id` bigint(20) NOT NULL COMMENT '原商品ID(biz_goods.goods_id);用于库存扣减/回滚关联',
- `goods_name` varchar(128) NOT NULL COMMENT '商品名称快照',
- `goods_spec` varchar(64) DEFAULT '默认' COMMENT '商品规格文案快照;首期单规格可固定为「默认」',
- `goods_image` varchar(512) DEFAULT NULL COMMENT '商品主图URL快照',
- `unit_price` decimal(12,2) NOT NULL COMMENT '成交单价快照',
- `quantity` int(11) NOT NULL COMMENT '购买数量',
- `line_amount` decimal(12,2) NOT NULL COMMENT '行小计=unit_price*quantity',
- `buyer_remark` varchar(500) NOT NULL DEFAULT '' COMMENT '买家行备注',
- `service_desc` varchar(500) NOT NULL DEFAULT '' COMMENT '服务快照摘要',
- `cart_item_id` bigint(20) DEFAULT NULL COMMENT '来源购物车行ID;立即购买(BUY_NOW)为NULL',
- `spec_key` varchar(64) NOT NULL DEFAULT '' COMMENT '规格键;v1统一规格为空串',
- `sort_no` int(11) NOT NULL DEFAULT '0' COMMENT '行排序号;列表展示首行取 sort_no 最小',
- PRIMARY KEY (`item_id`),
- KEY `idx_order_id` (`order_id`),
- KEY `idx_cart_item_id` (`cart_item_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单商品明细(下单快照)';
- -- -----------------------------------------------------------------------------
- -- 物流节点 biz_order_logistics_trace
- -- 说明:发货/运输更新/送达/确认收货均追加节点,不覆盖历史;详情时间轴倒序展示
- -- -----------------------------------------------------------------------------
- CREATE TABLE IF NOT EXISTS `biz_order_logistics_trace` (
- `trace_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '节点ID,主键',
- `order_id` bigint(20) NOT NULL COMMENT '订单ID(biz_order.order_id)',
- `trace_type` char(1) NOT NULL COMMENT '节点类型:1已发货 2运输更新 3已送达 4确认收货',
- `trace_time` datetime NOT NULL COMMENT '节点发生时间(业务时间,可早于 create_time)',
- `content` varchar(1000) NOT NULL DEFAULT '' COMMENT '节点描述/摘要;发货节点可含物流公司+单号摘要',
- `create_by` varchar(64) DEFAULT '' COMMENT '操作人;平台运营/商家账号/C端系统',
- `create_time` datetime DEFAULT NULL COMMENT '记录写入时间',
- PRIMARY KEY (`trace_id`),
- KEY `idx_order_id_time` (`order_id`,`trace_time`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单物流节点时间轴';
- -- -----------------------------------------------------------------------------
- -- 存量库升级:商城对外统计按 order_status + finish_time 扫描(《商城数据统计技术方案》)
- -- 说明:新建库已在 biz_order 建表语句含 idx_stats_finish;已上线库执行下方语句一次
- -- -----------------------------------------------------------------------------
- -- ALTER TABLE `biz_order`
- -- ADD INDEX `idx_stats_finish` (`order_status`, `finish_time`);
|