tmerclub/db/2024-01-15 分库分表改为默认单库50表.sql

1876 lines
123 KiB
MySQL
Raw Normal View History

2025-03-18 21:22:38 +08:00
# 本sql文件无法直接执行文件内容较多建议在IntelliJ IDEA开发工具打开右键选择 Folding-->Collapse All 方便查看并且复制
# 更换采购订单语言表,订单项语言表主键
2025-03-20 18:21:13 +08:00
# 为方便查看这里只采用tmerclub_order_0库作为演示实际需要更改tmerclub_order_0-7的8个库的分库分表!!!!!
USE tmerclub_order_0;
2025-03-18 21:22:38 +08:00
DELIMITER //
DROP PROCEDURE IF EXISTS createTable//
CREATE PROCEDURE createTable()
BEGIN
DECLARE i INT;
SET i = 0;
WHILE i<64 DO
SET @delete_purchase_order_lang_lang_table = CONCAT(
'delete from purchase_order_lang_', i, ' WHERE lang = 2'
);
PREPARE delete_purchase_order_lang_lang_table FROM @delete_purchase_order_lang_lang_table;
EXECUTE delete_purchase_order_lang_lang_table;
SET @delete_purchase_order_item_lang_lang_table = CONCAT(
'delete from purchase_order_item_lang_', i, ' WHERE lang = 2'
);
PREPARE delete_purchase_order_item_lang_lang_table FROM @delete_purchase_order_item_lang_lang_table;
EXECUTE delete_purchase_order_item_lang_lang_table;
SET @change_purchase_item_key = CONCAT(
'ALTER TABLE purchase_order_item_lang_', i,' DROP PRIMARY KEY, ADD PRIMARY KEY (`purchase_item_id`)'
);
PREPARE change_purchase_item_key FROM @change_purchase_item_key;
EXECUTE change_purchase_item_key;
SET @change_purchase_order_key = CONCAT(
'ALTER TABLE purchase_order_lang_', i,' DROP PRIMARY KEY, ADD PRIMARY KEY (`purchase_order_id`)'
);
PREPARE change_purchase_order_key FROM @change_purchase_order_key;
EXECUTE change_purchase_order_key;
SET i = i+1;
END WHILE;
END//
CALL createTable()//
DELIMITER ;
# 修改分库分表为单库50表
# 整体流程将原本分库分表改为单库50表需要将原数据都统计到总表中再建新分表再通过sql分配到各个分表中最后删除总表数据
# 按顺序执行!,执行时只按分块执行,例如第一步执行 1.在总表新建表,就只执行到 DROP TABLE IF EXISTS `purchase_order_lang`;,也即 2.统计表数据到总表,清除分库 之前,
# 确保执行成功后再执行下一步2以此类推下述每一步
# ============================== 1.在总表新建表 ==============================
# 这里的表结构最好将自己数据库中的0库0表中的数据结构复制过来这里使用安装doc文档中的字段创建表结构
# 如果修改过表结构或者sql执行时字段出现位置不一致会产生不可预计的sql相关bug所以建议用自己的表结构
# 特别注意order_invoice和order_refund这两个表结构
2025-03-20 18:21:13 +08:00
USE tmerclub_order;
2025-03-18 21:22:38 +08:00
DROP TABLE IF EXISTS `allot_order`;
CREATE TABLE `allot_order` (
`allot_order_id` bigint NOT NULL COMMENT '调拨订单id',
`out_warehouse_id` bigint DEFAULT NULL COMMENT '调出点仓库id',
`out_stock_point_type` int DEFAULT NULL COMMENT '调出点库存点类型(1:仓库, 2:门店)',
`in_warehouse_id` bigint DEFAULT NULL COMMENT '调入点仓库id',
`in_stock_point_type` int DEFAULT NULL COMMENT '调入点库存点类型(1:仓库, 2:门店)',
`dvy_company_id` bigint DEFAULT NULL COMMENT '物流公司id',
`dvy_type` int DEFAULT NULL COMMENT '物流方式(1:快递, 2:无需快递)',
`dvy_order_number` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '物流单号',
`status` int DEFAULT NULL COMMENT '状态(0:作废, 1:待入库, 2:部分入库, 3:已完成)',
`total_allot_count` int DEFAULT NULL COMMENT '总调拨数量',
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注',
`shop_id` bigint DEFAULT NULL COMMENT '店铺id',
`sys_type` int DEFAULT NULL COMMENT '系统类型',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`allot_order_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
DROP TABLE IF EXISTS `allot_order_item`;
CREATE TABLE `allot_order_item` (
`allot_order_item_id` bigint NOT NULL COMMENT '调拨订单商品id',
`allot_order_id` bigint DEFAULT NULL COMMENT '调拨订单id',
`spu_id` bigint DEFAULT NULL COMMENT '商品spuId',
`sku_id` bigint DEFAULT NULL COMMENT '商品skuId',
`allot_count` int DEFAULT NULL COMMENT '调拨数量',
`allot_in_count` int DEFAULT NULL COMMENT '调拨入库数量',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`allot_order_item_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
DROP TABLE IF EXISTS `delivery_order`;
CREATE TABLE `delivery_order` (
`delivery_order_id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '订单物流包裹id',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '建立时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`order_id` bigint NOT NULL COMMENT '订单号',
`user_id` bigint NOT NULL COMMENT '用户id',
`delivery_company_id` bigint DEFAULT NULL COMMENT '快递公司id',
`delivery_no` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '快递单号',
`consignee_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '收件人姓名',
`consignee_mobile` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '收件人电话(顺丰快递需要)',
`status` tinyint DEFAULT NULL COMMENT '物流状态 1正常 -1删除',
`all_count` int DEFAULT NULL COMMENT '包裹商品总数',
`delete_time` datetime DEFAULT NULL COMMENT '删除时间',
`delivery_type` int DEFAULT NULL COMMENT '发货方式(1.快递 3.无需物流)',
PRIMARY KEY (`delivery_order_id`),
KEY `idx_order_id` (`order_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_delivery_company_id` (`delivery_company_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='订单快递信息';
DROP TABLE IF EXISTS `delivery_order_item`;
CREATE TABLE `delivery_order_item` (
`delivery_order_item_id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '建立时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`delivery_order_id` bigint DEFAULT NULL COMMENT '订单物流包裹id',
`img_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '商品图片',
`spu_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '商品名称',
`count` int DEFAULT '0' COMMENT '商品数量',
`supplier_img_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '供应商商品图片',
`supplier_spu_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '供应商商品名称',
PRIMARY KEY (`delivery_order_item_id`),
KEY `idx_order_delivery_id` (`delivery_order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='物流订单项信息';
DROP TABLE IF EXISTS `order`;
CREATE TABLE `order` (
`order_id` bigint unsigned NOT NULL COMMENT '订单ID',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`shop_id` bigint DEFAULT NULL COMMENT '店铺id',
`user_id` bigint NOT NULL COMMENT '用户ID',
`order_addr_id` bigint DEFAULT NULL COMMENT '用户订单地址Id',
`delivery_type` tinyint DEFAULT NULL COMMENT '配送类型 1:快递 2:自提 3无需快递 4同城配送',
`pay_sys_type` tinyint NOT NULL DEFAULT '0' COMMENT '支付系统类型 0默认1通联支付',
`shop_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '店铺名称',
`total` bigint NOT NULL COMMENT '总值',
`actual_total` bigint DEFAULT NULL COMMENT '实际总值',
`freight_amount` bigint DEFAULT NULL COMMENT '订单运费',
`order_score` bigint DEFAULT NULL COMMENT '订单使用积分',
`status` tinyint NOT NULL DEFAULT '0' COMMENT '订单状态 1:待付款 2:待发货(待自提) 3:待收货(已发货) 5:成功 6:失败 7:待成团 9.待付尾款',
`pay_type` tinyint unsigned DEFAULT NULL COMMENT '支付方式 请参考枚举PayType',
`order_type` tinyint DEFAULT NULL COMMENT '订单类型 1团购订单 2秒杀订单 3积分订单',
`all_count` int DEFAULT NULL COMMENT '订单商品总数',
`reduce_amount` bigint NOT NULL DEFAULT '0' COMMENT '优惠总额',
`score_amount` bigint NOT NULL DEFAULT '0' COMMENT '积分抵扣金额',
`member_amount` bigint NOT NULL DEFAULT '0' COMMENT '会员折扣金额',
`platform_coupon_amount` bigint NOT NULL DEFAULT '0' COMMENT '平台优惠券优惠金额',
`shop_coupon_amount` bigint NOT NULL DEFAULT '0' COMMENT '商家优惠券优惠金额',
`discount_amount` bigint NOT NULL DEFAULT '0' COMMENT '满减优惠金额',
`shop_combo_amount` bigint NOT NULL DEFAULT '0' COMMENT '套餐优惠金额',
`platform_free_freight_amount` bigint NOT NULL DEFAULT '0' COMMENT '平台运费减免金额',
`free_freight_amount` bigint NOT NULL DEFAULT '0' COMMENT '商家运费减免金额',
`shop_change_free_amount` bigint NOT NULL DEFAULT '0' COMMENT '店铺改价优惠金额',
`distribution_amount` bigint NOT NULL DEFAULT '0' COMMENT '分销佣金',
`platform_amount` bigint NOT NULL DEFAULT '0' COMMENT '平台优惠金额',
`platform_commission` bigint NOT NULL DEFAULT '0' COMMENT '平台佣金',
`pay_time` datetime DEFAULT NULL COMMENT '付款时间',
`delivery_time` datetime DEFAULT NULL COMMENT '发货时间',
`finally_time` datetime DEFAULT NULL COMMENT '完成时间',
`settled_time` datetime DEFAULT NULL COMMENT '结算时间',
`cancel_time` datetime DEFAULT NULL COMMENT '取消时间',
`book_time` datetime DEFAULT NULL COMMENT '预售发货时间',
`is_payed` tinyint(1) DEFAULT NULL COMMENT '是否已支付1.已支付0.未支付',
`close_type` tinyint DEFAULT NULL COMMENT '订单关闭原因 1-超时未支付 2-退款关闭 4-买家取消 15-已通过货到付款交易',
`refund_status` tinyint DEFAULT NULL COMMENT '订单退款状态1:申请退款 2:退款成功 3:部分退款成功 4:退款失败)',
`shop_remarks` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '卖家备注',
`remarks` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '买家备注',
`delete_status` tinyint DEFAULT '0' COMMENT '用户订单删除状态0没有删除 1回收站 2永久删除',
`version` int DEFAULT NULL COMMENT '订单版本号,每处理一次订单,版本号+1',
`is_settled` tinyint DEFAULT NULL COMMENT '是否已经进行结算',
`supplier_id` bigint NOT NULL DEFAULT '0' COMMENT '供应商id',
`wait_purchase` tinyint NOT NULL DEFAULT '0' COMMENT '是否待采购 1.是 0.否 2.已处理',
`supplier_delivery_type` tinyint NOT NULL DEFAULT '0' COMMENT '供应商商品发货方式 1.供应商发货 2.仓库发货',
`purchase_spread_amount` bigint NOT NULL DEFAULT '0' COMMENT '商家采购价差(需要商家从结算金额补上采购价的金额)',
`pre_sale_type` tinyint DEFAULT '-1' COMMENT '预售类型 0.全款预售类型 1.定金预售',
`order_mold` tinyint DEFAULT '0' COMMENT '是否为虚拟商品订单 1.是 0.否',
`write_off_status` tinyint(1) DEFAULT NULL COMMENT '订单核销状态 0.待核销 1.核销完成',
`write_off_num` int DEFAULT NULL COMMENT '核销次数 -1.多次核销 0.无需核销 1.单次核销',
`write_off_multiple_count` int DEFAULT NULL COMMENT '核销次数 -1.无限次',
`write_off_start` datetime DEFAULT NULL COMMENT '核销开始时间',
`write_off_end` datetime DEFAULT NULL COMMENT '核销结束时间',
`write_off_count` int(0) NULL DEFAULT NULL COMMENT '订单被核销次数',
`main_order_id` bigint NOT NULL DEFAULT '0' COMMENT '主单号,在组合/套餐商品拆单时会存在',
PRIMARY KEY (`order_id`),
KEY `idx_shop_id` (`shop_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_addr_order_id` (`order_addr_id`),
KEY `idx_finally_time` (`finally_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='订单信息';
DROP TABLE IF EXISTS `order_addr`;
CREATE TABLE `order_addr` (
`order_addr_id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`user_id` bigint DEFAULT NULL COMMENT '用户ID',
`consignee` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '收货人',
`province_id` bigint DEFAULT NULL COMMENT '省ID',
`province` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '',
`city_id` bigint DEFAULT NULL COMMENT '城市ID',
`city` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '城市',
`area_id` bigint DEFAULT NULL COMMENT '区域ID',
`area` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '',
`addr` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '地址',
`post_code` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '邮编',
`mobile` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '手机',
`lng` decimal(12,6) DEFAULT NULL COMMENT '经度',
`lat` decimal(12,6) DEFAULT NULL COMMENT '纬度',
PRIMARY KEY (`order_addr_id`),
KEY `idx_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='用户订单配送地址';
DROP TABLE IF EXISTS `order_invoice`;
CREATE TABLE `order_invoice` (
`order_invoice_id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '订单发票ID',
`order_id` bigint NOT NULL COMMENT '订单id',
`shop_id` bigint NOT NULL COMMENT '店铺id',
`supplier_id` bigint DEFAULT NULL COMMENT '供应商id',
`invoice_type` tinyint NOT NULL DEFAULT '1' COMMENT '发票类型 1.电子普通发票',
`header_type` tinyint NOT NULL COMMENT '抬头类型 1.单位 2.个人',
`header_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '抬头名称',
`invoice_tax_number` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '发票税号',
`invoice_context` tinyint NOT NULL DEFAULT '1' COMMENT '发票内容 1.商品明细',
`invoice_state` tinyint NOT NULL COMMENT '发票状态 1.申请中 2.已开票',
`file_id` bigint DEFAULT NULL COMMENT '文件id',
`application_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '申请时间',
`upload_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '上传时间',
PRIMARY KEY (`order_invoice_id`),
KEY `shop_idx` (`shop_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
DROP TABLE IF EXISTS `order_item`;
CREATE TABLE `order_item` (
`order_item_id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '订单项ID',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`shop_id` bigint NOT NULL COMMENT '店铺id',
`order_id` bigint NOT NULL COMMENT '订单id',
`category_id` bigint DEFAULT NULL COMMENT '分类id',
`spu_id` bigint unsigned NOT NULL COMMENT '产品ID',
`sku_id` bigint unsigned NOT NULL COMMENT '产品SkuID',
`user_id` bigint NOT NULL COMMENT '用户Id',
`final_refund_id` bigint DEFAULT NULL COMMENT '最终的退款id',
`distribution_user_id` bigint DEFAULT NULL COMMENT '推广员id',
`count` int DEFAULT '0' COMMENT '购物车产品个数',
`spu_name` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '产品名称',
`sku_name` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'sku名称',
`spu_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '商品编码',
`party_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'sku编码',
`pic` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '产品主图片路径',
`is_comm` tinyint NOT NULL DEFAULT '0' COMMENT '是否以评价(0.未评价1.已评价)',
`comm_time` datetime DEFAULT NULL COMMENT '评论时间',
`refund_status` tinyint DEFAULT NULL COMMENT '订单项退款状态1:申请退款 2:退款成功 3:部分退款成功 4:退款失败)',
`be_delivered_num` int DEFAULT NULL COMMENT '0全部发货 其他数量为剩余待发货数量',
`delivery_type` tinyint DEFAULT NULL COMMENT '单个orderItem的配送类型 1:快递 2:自提 3无需快递 4:同城配送',
`shop_cart_time` datetime DEFAULT NULL COMMENT '加入购物车时间',
`price` bigint NOT NULL COMMENT '产品价格',
`spu_total_amount` bigint NOT NULL COMMENT '商品总金额',
`actual_total` bigint NOT NULL DEFAULT '0' COMMENT '商品实际金额 = 商品总金额 - 分摊的优惠金额',
`share_reduce` bigint NOT NULL DEFAULT '0' COMMENT '分摊的优惠金额(商家分摊 + 平台补贴)',
`platform_share_reduce` bigint NOT NULL DEFAULT '0' COMMENT '平台优惠金额',
`distribution_amount` bigint NOT NULL DEFAULT '0' COMMENT '推广员佣金',
`distribution_parent_amount` bigint NOT NULL DEFAULT '0' COMMENT '上级推广员佣金',
`use_score` bigint NOT NULL DEFAULT '0' COMMENT '使用积分',
`gain_score` bigint NOT NULL DEFAULT '0' COMMENT '获得积分',
`rate` decimal(15,6) NOT NULL DEFAULT '0.000000' COMMENT '分账比例',
`platform_commission` bigint NOT NULL DEFAULT '0' COMMENT '平台佣金(商品实际金额 * 分账比例)',
`score_amount` bigint NOT NULL DEFAULT '0' COMMENT '积分抵扣金额',
`member_amount` bigint NOT NULL DEFAULT '0' COMMENT '会员折扣金额',
`platform_coupon_amount` bigint NOT NULL DEFAULT '0' COMMENT '平台优惠券优惠金额',
`shop_coupon_amount` bigint NOT NULL DEFAULT '0' COMMENT '商家优惠券优惠金额',
`discount_amount` bigint NOT NULL DEFAULT '0' COMMENT '满减优惠金额',
`platform_free_freight_amount` bigint NOT NULL DEFAULT '0' COMMENT '平台运费减免金额',
`free_freight_amount` bigint NOT NULL DEFAULT '0' COMMENT '商家运费减免金额',
`shop_change_free_amount` bigint NOT NULL DEFAULT '0' COMMENT '店铺改价优惠金额',
`score_fee` bigint DEFAULT NULL COMMENT '积分价格(单价)',
`item_purchase_amount` bigint NOT NULL DEFAULT '0' COMMENT '采购价',
`purchase_platform_commission` bigint NOT NULL DEFAULT '0' COMMENT '供应商佣金',
`supplier_rate` decimal(15,6) NOT NULL DEFAULT '0.000000' COMMENT '供应商佣金比例',
`supplier_spu_id` bigint DEFAULT NULL COMMENT '供应商商品id',
`supplier_sku_id` bigint DEFAULT NULL COMMENT '供应商规格id',
`giveaway_amount` decimal(15,2) NOT NULL DEFAULT '0.00' COMMENT '赠品金额',
`main_giveaway` tinyint DEFAULT NULL COMMENT '主赠品',
`spu_mold` tinyint DEFAULT '0' COMMENT '商品类别 0.实物商品 1. 虚拟商品',
`is_refund` tinyint DEFAULT NULL COMMENT '是否可以退款 1.可以 0不可以',
`virtual_remark` json DEFAULT NULL COMMENT '虚拟商品的留言备注',
`combo_amount` bigint DEFAULT '0' COMMENT '套餐优惠金额',
`activity_id` bigint DEFAULT NULL COMMENT '活动id',
`activity_type` tinyint DEFAULT '0' COMMENT '活动类型 具体类型参考枚举类:OrderActivityType',
`supplier_pic` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '产品供应商主图片路径',
`write_off_num` int DEFAULT NULL COMMENT '核销次数 -1.多次核销 0.无需核销 1.单次核销',
`write_off_multiple_count` int DEFAULT NULL COMMENT '核销次数 -1.无限次',
`write_off_start` datetime DEFAULT NULL COMMENT '核销开始时间',
`write_off_end` datetime DEFAULT NULL COMMENT '核销结束时间',
`stock_point_id` bigint DEFAULT NULL COMMENT '库存点id',
PRIMARY KEY (`order_item_id`),
KEY `idx_order_id` (`order_id`),
KEY `idx_shop_id` (`shop_id`),
KEY `idx_spu_id` (`spu_id`),
KEY `idx_sku_id` (`sku_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_final_refund_id` (`final_refund_id`),
KEY `idx_distribution_user_id` (`distribution_user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='订单项';
DROP TABLE IF EXISTS `order_item_lang`;
CREATE TABLE `order_item_lang` (
`order_item_id` bigint NOT NULL COMMENT '订单项ID',
`lang` tinyint NOT NULL COMMENT '语言 1.中文 2.英文',
`spu_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '商品名称',
`sku_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'sku名称',
`supplier_spu_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '供应商商品名称',
`supplier_sku_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '供应商sku名称',
PRIMARY KEY (`order_item_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='订单项-国际化';
DROP TABLE IF EXISTS `order_pre_sale_info`;
CREATE TABLE `order_pre_sale_info` (
`order_pre_sale_info_id` bigint NOT NULL AUTO_INCREMENT,
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',
`order_id` bigint DEFAULT NULL COMMENT '订单编号',
`deposit_amount` bigint DEFAULT '0' COMMENT '定金金额',
`deposit_reduce_amount` bigint DEFAULT '0' COMMENT '定金优惠金额',
`deposit_expansion_amount` bigint DEFAULT '0' COMMENT '定金膨胀金额',
`balance_amount` bigint DEFAULT '0' COMMENT '尾款金额',
`pre_sale_type` tinyint DEFAULT '0' COMMENT '预售类型 0.全款预售类型 1.定金预售',
`pay_status` tinyint DEFAULT '0' COMMENT '定金预售支付状态 1.已支付定金 2.已支付尾款',
`balance_start_time` datetime DEFAULT NULL COMMENT '尾款支付开始时间',
`balance_end_time` datetime DEFAULT NULL COMMENT '尾款支付结束时间',
`balance_pay_time` datetime DEFAULT NULL COMMENT '尾款支付时间',
`pre_sale_delivery_type` tinyint DEFAULT NULL COMMENT '预售发货类型 -1.固定时间 x.尾款支付后x天发货',
`pre_sale_delivery_time` datetime DEFAULT NULL COMMENT '预售发货时间',
PRIMARY KEY (`order_pre_sale_info_id`),
KEY `idx_order_id` (`order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='订单预售信息';
DROP TABLE IF EXISTS `order_refund`;
CREATE TABLE `order_refund` (
`refund_id` bigint NOT NULL COMMENT '记录ID',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`shop_id` bigint NOT NULL COMMENT '店铺ID',
`user_id` bigint NOT NULL COMMENT '买家ID',
`order_id` bigint NOT NULL COMMENT '订单号',
`order_item_id` bigint NOT NULL DEFAULT '0' COMMENT '订单项ID(0:为全部订单项)',
`refund_count` int DEFAULT '0' COMMENT '退货数量(0:为全部订单项)',
`refund_score` bigint DEFAULT NULL COMMENT '退还积分',
`refund_amount` bigint DEFAULT NULL COMMENT '退款金额',
`platform_refund_commission` bigint DEFAULT NULL COMMENT '平台佣金退款金额',
`platform_refund_amount` bigint DEFAULT NULL COMMENT '平台退款金额(退款时将这部分钱退回给平台,所以商家要扣除从平台这里获取的金额)',
`distribution_total_amount` bigint DEFAULT NULL COMMENT '退款单总分销金额',
`refund_type` tinyint NOT NULL DEFAULT '0' COMMENT '退款单类型1:整单退款,2:单个物品退款)',
`apply_type` tinyint NOT NULL COMMENT '申请类型:1,仅退款,2退款退货',
`pay_sys_type` tinyint NOT NULL DEFAULT '0' COMMENT '支付系统类型 0默认1通联支付',
`is_received` tinyint DEFAULT NULL COMMENT '是否接收到商品(1:已收到,0:未收到)',
`close_type` tinyint DEFAULT NULL COMMENT '退款关闭原因(1.买家撤销退款 2.卖家拒绝退款 3.退款申请超时被系统关闭)',
`return_money_sts` tinyint NOT NULL DEFAULT '0' COMMENT '处理退款状态:(1.买家申请 2.卖家接受 3.买家发货 4.卖家收货 5.退款成功 -1.退款关闭)详情见ReturnMoneyStsType',
`buyer_reason` tinyint DEFAULT NULL COMMENT '申请原因(具体见BuyerReasonType)',
`buyer_desc` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '申请说明',
`buyer_mobile` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '联系方式(退款时留下的手机号码)',
`img_urls` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '文件凭证(逗号隔开)',
`over_time` datetime DEFAULT NULL COMMENT '超时时间(超过该时间不处理,系统将自动处理)(保留字段)',
`reject_message` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '拒绝原因',
`seller_msg` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '卖家备注',
`shop_seller_msg` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '商家备注(移交供应商处理时保存)',
`handel_time` datetime DEFAULT NULL COMMENT '受理时间',
`supplier_time` datetime DEFAULT NULL COMMENT '移交供应商时间',
`delivery_time` datetime DEFAULT NULL COMMENT '发货时间',
`receive_time` datetime DEFAULT NULL COMMENT '收货时间',
`close_time` datetime DEFAULT NULL COMMENT '关闭时间',
`decision_time` datetime DEFAULT NULL COMMENT '确定时间(确定退款时间)',
`refund_time` datetime DEFAULT NULL COMMENT '退款时间',
`supplier_id` bigint NOT NULL DEFAULT '0' COMMENT '供应商id',
`supplier_handle_status` tinyint DEFAULT '-1' COMMENT '供应商处理状态, -1.商家自行处理 0.待供应商处理 1.供应商已同意 2.供应商已拒绝',
`purchase_refund_amount` bigint DEFAULT '0' COMMENT '采购退款金额',
`pur_platform_refund_commission` bigint DEFAULT '0' COMMENT '采购的平台佣金退款金额',
`return_giveaway_ids` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '退款退回的赠品订单项ids',
`refund_actual_total` decimal(15,2) DEFAULT NULL COMMENT '当前退款的实付金额(实付金额减去不退回赠品的金额)',
`shop_img_urls` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '商家/供应商文件凭证(逗号隔开)',
`platform_intervention_status` tinyint NOT NULL DEFAULT '-1' COMMENT '平台介入状态 -1.没有介入 1.用户申请介入 2.平台同意介入 3.平台拒绝介入 5.平台同意退款成功',
`apply_intervention_reason` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '用户申请介入理由',
`apply_intervention_img_urls` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '申请介入的文件凭证(逗号隔开)',
`intervention_refund_type` tinyint DEFAULT NULL COMMENT '平台介入退款方式 1.商家承担 2.商家供应商承担(供应商发货订单) 3.不同意退款',
`after_intervention_refund_amount` bigint DEFAULT NULL COMMENT '平台介入前的退款金额',
`platform_message` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '平台留言',
`apply_intervention_time` datetime DEFAULT NULL COMMENT '申请介入时间',
`intervention_finish_time` datetime DEFAULT NULL COMMENT '介入完成时间',
PRIMARY KEY (`refund_id`),
KEY `idx_order_id` (`order_id`),
KEY `idx_order_item_id` (`order_item_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_shop_id` (`shop_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='订单退款记录信息';
DROP TABLE IF EXISTS `order_refund_addr`;
CREATE TABLE `order_refund_addr` (
`refund_addr_id` bigint NOT NULL AUTO_INCREMENT COMMENT '物流ID',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`shop_id` bigint DEFAULT NULL COMMENT '店铺ID',
`refund_id` bigint NOT NULL COMMENT '退款号',
`user_id` bigint NOT NULL COMMENT '买家ID',
`delivery_company_id` bigint DEFAULT NULL COMMENT '物流公司ID',
`delivery_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '物流公司名称',
`delivery_no` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '物流单号',
`consignee_name` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '收件人姓名',
`consignee_mobile` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '收件人电话(顺丰快递需要)',
`consignee_telephone` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '收件人座机',
`consignee_post_code` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '收件人邮政编码',
`consignee_addr` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '收件人地址',
`sender_mobile` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '发送人手机号码',
`sender_remarks` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '买家备注',
`imgs` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '图片凭证',
PRIMARY KEY (`refund_addr_id`),
KEY `idx_shop_id` (`shop_id`),
KEY `idx_refund_id` (`refund_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_delivery_company_id` (`delivery_company_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='用户退货物流地址';
DROP TABLE IF EXISTS `order_refund_intervention`;
CREATE TABLE `order_refund_intervention` (
`refund_intervertion_id` bigint NOT NULL AUTO_INCREMENT COMMENT '记录ID',
`refund_id` bigint NOT NULL COMMENT '退款id',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`biz_id` bigint DEFAULT '0' COMMENT '商家/供应商/用户id',
`sys_type` tinyint DEFAULT NULL COMMENT '系统类型0.普通用户 1.商家端 2.平台端 3.供应商端',
`voucher_desc` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '凭证说明',
`img_urls` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '文件凭证(逗号隔开)',
PRIMARY KEY (`refund_intervertion_id`),
KEY `idx_refund_id` (`refund_id`),
KEY `idx_biz_id` (`biz_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='订单退款介入记录';
DROP TABLE IF EXISTS `order_refund_settlement`;
CREATE TABLE `order_refund_settlement` (
`settlement_id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '退款结算单据id',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`pay_id` bigint DEFAULT NULL COMMENT '订单支付单号',
`order_id` bigint DEFAULT NULL COMMENT '订单编号',
`refund_id` bigint DEFAULT NULL COMMENT '退款单编号(本系统退款单号)',
`user_id` bigint DEFAULT NULL COMMENT '用户ID',
`biz_refund_no` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '微信/支付宝退款单号(支付平台退款单号)',
`pay_type` tinyint DEFAULT NULL COMMENT '支付方式(1:微信支付 2支付宝支付)',
`refund_status` tinyint DEFAULT NULL COMMENT '退款状态(1:申请中 2已完成 -1失败)',
`refund_amount` bigint DEFAULT NULL COMMENT '退款金额',
`order_total_amount` bigint DEFAULT NULL COMMENT '订单总额',
`version` int DEFAULT '0' COMMENT '版本号',
PRIMARY KEY (`settlement_id`),
KEY `idx_order_id` (`order_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_pay_id` (`pay_id`),
KEY `idx_biz_refund_no` (`biz_refund_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='退款支付结算单据';
DROP TABLE IF EXISTS `order_self_station`;
CREATE TABLE `order_self_station` (
`order_self_station_id` bigint NOT NULL,
`shop_id` bigint DEFAULT NULL COMMENT '店铺id',
`user_id` bigint NOT NULL COMMENT '用户id',
`order_id` bigint DEFAULT NULL COMMENT '订单编号',
`station_id` bigint DEFAULT NULL COMMENT '自提点id',
`station_user_mobile` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '自提人的手机',
`station_user_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '自提人的名字',
`station_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '自提时间(用户下单时选择)',
`station_code` varchar(9) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '自提提货码',
`station_address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '上门自提点的地址',
`station_phone` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '上门自提点的联系电话',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`order_self_station_id`),
KEY `STATION` (`station_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='订单自提信息';
DROP TABLE IF EXISTS `order_settlement`;
CREATE TABLE `order_settlement` (
`settlement_id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '支付结算单据ID',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`order_id` bigint DEFAULT NULL COMMENT '订单id',
`pay_id` bigint DEFAULT NULL COMMENT '支付单号',
`pay_ids` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '支付单号集合,目前只有预售订单存在多条',
`user_id` bigint NOT NULL COMMENT '用户ID',
`pay_type` tinyint DEFAULT NULL COMMENT '支付方式',
`is_clearing` tinyint DEFAULT NULL COMMENT '是否清算 0:否 1:是',
`pay_score` bigint DEFAULT NULL COMMENT '支付积分',
`pay_amount` bigint DEFAULT NULL COMMENT '支付金额',
`clearing_time` datetime DEFAULT NULL COMMENT '清算时间',
`version` int DEFAULT NULL COMMENT '版本号',
`is_payed` tinyint DEFAULT NULL COMMENT '是否已支付1.已支付0.未支付',
PRIMARY KEY (`settlement_id`),
KEY `idx_pay_id` (`pay_id`),
KEY `idx_order_id` (`order_id`),
KEY `idx_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='订单结算表';
DROP TABLE IF EXISTS `order_virtual_info`;
CREATE TABLE `order_virtual_info` (
`order_virtual_info_id` bigint NOT NULL,
`order_id` bigint unsigned NOT NULL COMMENT '订单ID',
`order_item_id` bigint NOT NULL DEFAULT '0' COMMENT '订单项id',
`shop_id` bigint DEFAULT NULL COMMENT '店铺id',
`station_id` bigint DEFAULT NULL COMMENT '核销门店id',
`write_off_code` varchar(13) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '核销码',
`is_write_off` tinyint DEFAULT NULL COMMENT '是否核销 1.已核销 0.未核销',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`write_off_time` datetime DEFAULT NULL COMMENT '核销时间',
`write_off_multiple_count` int DEFAULT NULL COMMENT '剩余核销次数 -1.无限次',
PRIMARY KEY (`order_virtual_info_id`),
KEY `order_id` (`order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='订单虚拟商品信息';
DROP TABLE IF EXISTS `purchase_order`;
CREATE TABLE `purchase_order` (
`purchase_order_id` bigint NOT NULL AUTO_INCREMENT COMMENT '采购id',
`shop_id` bigint DEFAULT NULL COMMENT '店铺id',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
`deliver_time` datetime DEFAULT NULL COMMENT '送达时间',
`delivery_time` datetime DEFAULT NULL COMMENT '发货时间',
`supplier_id` bigint NOT NULL COMMENT '供应商id',
`total_amount` bigint NOT NULL COMMENT '总采购金额',
`total_stock` int NOT NULL COMMENT '总采购库存数量',
`actual_total_stock` int DEFAULT NULL COMMENT '实际总库存数量',
`status` tinyint DEFAULT NULL COMMENT '状态 0:已作废 1:待入库 2:已发货 3.部分入库 5:已完成',
`remark` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注',
`employee_id` bigint DEFAULT NULL COMMENT '操作员工id',
`delivery_type` tinyint DEFAULT NULL COMMENT '配送类型 1:快递 2:自提 3无需快递 4同城配送',
`purchase_order_addr_id` bigint DEFAULT NULL COMMENT '采购订单地址Id',
`voucher_img_urls` varchar(1000) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '付款凭证图片 多个图片逗号分隔',
`warehouse_id` bigint DEFAULT NULL COMMENT '仓库id',
`supplier_warehouse_id` bigint DEFAULT NULL COMMENT '供应商仓库id',
`stock_point_type` int DEFAULT NULL COMMENT '库存点类型(1:仓库, 2:门店)',
PRIMARY KEY (`purchase_order_id`),
KEY `idx_supplier_id` (`supplier_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='采购订单';
DROP TABLE IF EXISTS `purchase_order_addr`;
CREATE TABLE `purchase_order_addr` (
`purchase_order_addr_id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`shop_id` bigint DEFAULT NULL COMMENT '店铺ID',
`consignee` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '收货人',
`province_id` bigint DEFAULT NULL COMMENT '省ID',
`province` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '',
`city_id` bigint DEFAULT NULL COMMENT '城市ID',
`city` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '城市',
`area_id` bigint DEFAULT NULL COMMENT '区域ID',
`area` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '',
`addr` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '地址',
`mobile` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '手机',
PRIMARY KEY (`purchase_order_addr_id`),
KEY `idx_shop_id` (`shop_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='采购订单配送地址';
DROP TABLE IF EXISTS `purchase_order_item`;
CREATE TABLE `purchase_order_item` (
`purchase_item_id` bigint NOT NULL COMMENT 'id',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
`purchase_order_id` bigint DEFAULT NULL COMMENT '采购订单id',
`spu_id` bigint DEFAULT NULL COMMENT '商品id',
`sku_id` bigint DEFAULT NULL COMMENT 'sku id',
`spu_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '商品编码',
`party_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'sku编码',
`pic` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '商品图片',
`purchase_amount` bigint DEFAULT NULL COMMENT '采购金额',
`purchase_price` bigint DEFAULT NULL COMMENT '采购价',
`purchase_stock` int DEFAULT NULL COMMENT '采购库存数量',
`actual_stock` int DEFAULT NULL COMMENT '实际库存数量',
`delivery_type` tinyint DEFAULT NULL COMMENT '订单项退款状态1:申请退款 2:退款成功 3:部分退款成功 4:退款失败)',
`status` tinyint DEFAULT NULL COMMENT '状态 0:已作废 1:待入库 2:已发货 3.部分入库 5:已完成',
`be_delivered_num` int DEFAULT NULL COMMENT '0全部发货 其他数量为剩余待发货数量',
PRIMARY KEY (`purchase_item_id`),
KEY `idx_purchase_order_id` (`purchase_order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='采购订单项';
DROP TABLE IF EXISTS `purchase_order_item_lang`;
CREATE TABLE `purchase_order_item_lang` (
`purchase_item_id` bigint NOT NULL COMMENT '订单项ID',
`lang` tinyint NOT NULL COMMENT '语言 1.中文 2.英文',
`spu_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '商品名称',
`sku_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'sku名称',
PRIMARY KEY (`purchase_item_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='订单项-国际化';
DROP TABLE IF EXISTS `purchase_order_lang`;
CREATE TABLE `purchase_order_lang` (
`purchase_order_id` bigint NOT NULL,
`lang` tinyint NOT NULL,
`spu_name` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
PRIMARY KEY (`purchase_order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='采购订单-国际化';
2025-03-20 18:21:13 +08:00
USE tmerclub_payment;
2025-03-18 21:22:38 +08:00
DROP TABLE IF EXISTS `pay_info`;
CREATE TABLE `pay_info` (
`pay_id` bigint unsigned NOT NULL COMMENT '支付单号',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`user_id` bigint DEFAULT NULL COMMENT '用户id',
`order_ids` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '本次支付关联的多个订单号',
`biz_pay_no` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '外部订单流水号',
`sys_type` tinyint DEFAULT NULL COMMENT '系统类型 见SysTypeEnum',
`pay_entry` tinyint DEFAULT NULL COMMENT '支付入口 0下单 1余额充值',
`pay_type` tinyint DEFAULT NULL COMMENT '支付方式 1 微信支付 2 支付宝',
`pay_status` tinyint DEFAULT NULL COMMENT '支付状态',
`pay_score` bigint DEFAULT NULL COMMENT '支付积分',
`pay_amount` bigint DEFAULT NULL COMMENT '支付金额',
`version` int DEFAULT NULL COMMENT '版本号',
`callback_content` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '回调内容',
`callback_time` datetime DEFAULT NULL COMMENT '回调时间',
`confirm_time` datetime DEFAULT NULL COMMENT '确认时间',
`refund_id` bigint DEFAULT NULL COMMENT '本次支付关联的退款号',
`pay_sys_type` int DEFAULT NULL COMMENT '系统支付类型 0.默认支付系统 1.通联支付',
`to_user_id` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '支付给商城的用户id通联支付独有',
`system_model` tinyint DEFAULT NULL COMMENT '支付的系统类型 1:pc 2:h5 3:小程序 4:安卓 5:ios',
`biz_user_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '第三方系统userid',
PRIMARY KEY (`pay_id`),
KEY `idx_biz_pay_no` (`biz_pay_no`),
KEY `idx_user_id` (`user_id`),
KEY `idx_order_ids` (`order_ids`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='订单支付记录';
DROP TABLE IF EXISTS `refund_info`;
CREATE TABLE `refund_info` (
`refund_id` bigint unsigned NOT NULL COMMENT '退款单号',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
`order_id` bigint DEFAULT NULL COMMENT '关联的支付订单id',
`pay_id` bigint NOT NULL DEFAULT '0' COMMENT '关联的支付单id',
`pay_type` tinyint DEFAULT NULL COMMENT '支付方式',
`user_id` bigint DEFAULT NULL COMMENT '用户id',
`refund_status` tinyint DEFAULT NULL COMMENT '退款状态',
`refund_amount` bigint DEFAULT NULL COMMENT '退款金额',
`callback_content` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '回调内容',
`callback_time` datetime DEFAULT NULL COMMENT '回调时间',
PRIMARY KEY (`refund_id`,`pay_id`),
KEY `idx_order_id` (`order_id`),
KEY `idx_pay_id` (`pay_id`),
KEY `idx_userid` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='退款信息';
# ============================== 2.统计表数据到总表==============================
2025-03-20 18:21:13 +08:00
# 为方便查看2中都只采用tmerclub_order_0库作为演示实际需要更改tmerclub_order_0-7的8个库的分库分表!!!!!
# tmerclub_payment_0库作为演示实际需要更改tmerclub_payment_0-7的8个库的分库分表!!!!!
USE tmerclub_order_0;
2025-03-18 21:22:38 +08:00
DELIMITER //
DROP PROCEDURE IF EXISTS createTable//
CREATE PROCEDURE createTable()
BEGIN
DECLARE i INT;
SET i = 0;
WHILE i<64 DO
# 汇总到总表
SET @create_allot_order_table = CONCAT(
2025-03-20 18:21:13 +08:00
'INSERT INTO tmerclub_order.`allot_order`
2025-03-18 21:22:38 +08:00
(SELECT * FROM allot_order_', i, ')'
);
PREPARE create_allot_order_table FROM @create_allot_order_table;
EXECUTE create_allot_order_table;
SET @create_allot_order_item_table = CONCAT(
2025-03-20 18:21:13 +08:00
'INSERT INTO tmerclub_order.`allot_order_item`
2025-03-18 21:22:38 +08:00
(SELECT * FROM allot_order_item_', i, ')'
);
PREPARE create_allot_order_item_table FROM @create_allot_order_item_table;
EXECUTE create_allot_order_item_table;
SET @create_delivery_order_table = CONCAT(
2025-03-20 18:21:13 +08:00
'INSERT INTO tmerclub_order.`delivery_order` (`create_time`,`update_time`,`order_id`,`user_id`,`delivery_company_id`,`delivery_no`,`consignee_name`,`consignee_mobile`,`status`,`all_count`,`delete_time`,`delivery_type`)
2025-03-18 21:22:38 +08:00
(SELECT `create_time`,`update_time`,`order_id`,`user_id`,`delivery_company_id`,`delivery_no`,`consignee_name`,`consignee_mobile`,`status`,`all_count`,`delete_time`,`delivery_type` FROM delivery_order_', i, ')'
);
PREPARE create_delivery_order_table FROM @create_delivery_order_table;
EXECUTE create_delivery_order_table;
SET @create_delivery_order_item_table = CONCAT(
2025-03-20 18:21:13 +08:00
'INSERT INTO tmerclub_order.`delivery_order_item` (`create_time`,`update_time`,`delivery_order_id`,`img_url`,`spu_name`,`count`,`supplier_img_url`,`supplier_spu_name`)
2025-03-18 21:22:38 +08:00
(SELECT `create_time`,`update_time`,`delivery_order_id`,`img_url`,`spu_name`,`count`,`supplier_img_url`,`supplier_spu_name` FROM delivery_order_item_', i, ')'
);
PREPARE create_delivery_order_item_table FROM @create_delivery_order_item_table;
EXECUTE create_delivery_order_item_table;
SET @create_order_table = CONCAT(
2025-03-20 18:21:13 +08:00
'INSERT INTO tmerclub_order.`order`
2025-03-18 21:22:38 +08:00
(SELECT * FROM order_', i, ')'
);
PREPARE create_order_table FROM @create_order_table;
EXECUTE create_order_table;
SET @create_order_addr_table = CONCAT(
2025-03-20 18:21:13 +08:00
'INSERT INTO tmerclub_order.`order_addr`
2025-03-18 21:22:38 +08:00
(SELECT * FROM order_addr_', i, ')'
);
PREPARE create_order_addr_table FROM @create_order_addr_table;
EXECUTE create_order_addr_table;
SET @create_order_invoice_table = CONCAT(
2025-03-20 18:21:13 +08:00
'INSERT INTO tmerclub_order.`order_invoice`
2025-03-18 21:22:38 +08:00
(SELECT * FROM order_invoice_', i, ')'
);
PREPARE create_order_invoice_table FROM @create_order_invoice_table;
EXECUTE create_order_invoice_table;
SET @create_order_item_table = CONCAT(
2025-03-20 18:21:13 +08:00
'INSERT INTO tmerclub_order.`order_item`
2025-03-18 21:22:38 +08:00
(SELECT * FROM order_item_', i, ')'
);
PREPARE create_order_item_table FROM @create_order_item_table;
EXECUTE create_order_item_table;
SET @create_order_item_lang_table = CONCAT(
2025-03-20 18:21:13 +08:00
'INSERT INTO tmerclub_order.`order_item_lang`
2025-03-18 21:22:38 +08:00
(SELECT * FROM order_item_lang_', i, ')'
);
PREPARE create_order_item_lang_table FROM @create_order_item_lang_table;
EXECUTE create_order_item_lang_table;
SET @create_order_pre_sale_info_table = CONCAT(
2025-03-20 18:21:13 +08:00
'INSERT INTO tmerclub_order.`order_pre_sale_info`
2025-03-18 21:22:38 +08:00
(SELECT * FROM order_pre_sale_info_', i, ')'
);
PREPARE create_order_pre_sale_info_table FROM @create_order_pre_sale_info_table;
EXECUTE create_order_pre_sale_info_table;
SET @create_order_refund_table = CONCAT(
2025-03-20 18:21:13 +08:00
'INSERT INTO tmerclub_order.`order_refund`
2025-03-18 21:22:38 +08:00
(SELECT * FROM order_refund_', i, ')'
);
PREPARE create_order_refund_table FROM @create_order_refund_table;
EXECUTE create_order_refund_table;
SET @create_order_refund_addr_table = CONCAT(
2025-03-20 18:21:13 +08:00
'INSERT INTO tmerclub_order.`order_refund_addr` (`create_time`,`update_time`,`shop_id`,`refund_id`,`user_id`,`delivery_company_id`,`delivery_name`,`delivery_no`,`consignee_name`,`consignee_mobile`,`consignee_telephone`,`consignee_post_code`,`consignee_addr`,`sender_mobile`,`sender_remarks`,`imgs`)
2025-03-18 21:22:38 +08:00
(SELECT `create_time`,`update_time`,`shop_id`,`refund_id`,`user_id`,`delivery_company_id`,`delivery_name`,`delivery_no`,`consignee_name`,`consignee_mobile`,`consignee_telephone`,`consignee_post_code`,`consignee_addr`,`sender_mobile`,`sender_remarks`,`imgs` FROM order_refund_addr_', i, ')'
);
PREPARE create_order_refund_addr_table FROM @create_order_refund_addr_table;
EXECUTE create_order_refund_addr_table;
SET @create_order_refund_intervention_table = CONCAT(
2025-03-20 18:21:13 +08:00
'INSERT INTO tmerclub_order.`order_refund_intervention` (`refund_id`,`create_time`,`update_time`,`biz_id`,`sys_type`,`voucher_desc`,`img_urls`)
2025-03-18 21:22:38 +08:00
(SELECT `refund_id`,`create_time`,`update_time`,`biz_id`,`sys_type`,`voucher_desc`,`img_urls` FROM order_refund_intervention_', i, ')'
);
PREPARE create_order_refund_intervention_table FROM @create_order_refund_intervention_table;
EXECUTE create_order_refund_intervention_table;
SET @create_order_refund_settlement_table = CONCAT(
2025-03-20 18:21:13 +08:00
'INSERT INTO tmerclub_order.`order_refund_settlement` (`create_time`,`update_time`,`pay_id`,`order_id`,`refund_id`,`user_id`,`biz_refund_no`,`pay_type`,`refund_status`,`refund_amount`,`order_total_amount`,`version`)
2025-03-18 21:22:38 +08:00
(SELECT `create_time`,`update_time`,`pay_id`,`order_id`,`refund_id`,`user_id`,`biz_refund_no`,`pay_type`,`refund_status`,`refund_amount`,`order_total_amount`,`version` FROM order_refund_settlement_', i, ')'
);
PREPARE create_order_refund_settlement_table FROM @create_order_refund_settlement_table;
EXECUTE create_order_refund_settlement_table;
SET @create_order_self_station_table = CONCAT(
2025-03-20 18:21:13 +08:00
'INSERT INTO tmerclub_order.`order_self_station`
2025-03-18 21:22:38 +08:00
(SELECT * FROM order_self_station_', i, ')'
);
PREPARE create_order_self_station_table FROM @create_order_self_station_table;
EXECUTE create_order_self_station_table;
SET @create_order_settlement_table = CONCAT(
2025-03-20 18:21:13 +08:00
'INSERT INTO tmerclub_order.`order_settlement`
2025-03-18 21:22:38 +08:00
(SELECT * FROM order_settlement_', i, ')'
);
PREPARE create_order_settlement_table FROM @create_order_settlement_table;
EXECUTE create_order_settlement_table;
SET @create_order_virtual_info_table = CONCAT(
2025-03-20 18:21:13 +08:00
'INSERT INTO tmerclub_order.`order_virtual_info`
2025-03-18 21:22:38 +08:00
(SELECT * FROM order_virtual_info_', i, ')'
);
PREPARE create_order_virtual_info_table FROM @create_order_virtual_info_table;
EXECUTE create_order_virtual_info_table;
SET @create_purchase_order_table = CONCAT(
2025-03-20 18:21:13 +08:00
'INSERT INTO tmerclub_order.`purchase_order`
2025-03-18 21:22:38 +08:00
(SELECT * FROM purchase_order_', i, ')'
);
PREPARE create_purchase_order_table FROM @create_purchase_order_table;
EXECUTE create_purchase_order_table;
SET @create_purchase_order_lang_table = CONCAT(
2025-03-20 18:21:13 +08:00
'INSERT INTO tmerclub_order.`purchase_order_lang`
2025-03-18 21:22:38 +08:00
(SELECT * FROM purchase_order_lang_', i, ')'
);
PREPARE create_purchase_order_lang_table FROM @create_purchase_order_lang_table;
EXECUTE create_purchase_order_lang_table;
SET @create_purchase_order_item_table = CONCAT(
2025-03-20 18:21:13 +08:00
'INSERT INTO tmerclub_order.`purchase_order_item`
2025-03-18 21:22:38 +08:00
(SELECT * FROM purchase_order_item_', i, ')'
);
PREPARE create_purchase_order_item_table FROM @create_purchase_order_item_table;
EXECUTE create_purchase_order_item_table;
SET @create_purchase_order_item_lang_table = CONCAT(
2025-03-20 18:21:13 +08:00
'INSERT INTO tmerclub_order.`purchase_order_item_lang`
2025-03-18 21:22:38 +08:00
(SELECT * FROM purchase_order_item_lang_', i, ')'
);
PREPARE create_purchase_order_item_lang_table FROM @create_purchase_order_item_lang_table;
EXECUTE create_purchase_order_item_lang_table;
SET @create_purchase_order_addr_table = CONCAT(
2025-03-20 18:21:13 +08:00
'INSERT INTO tmerclub_order.`purchase_order_addr`
2025-03-18 21:22:38 +08:00
(SELECT * FROM purchase_order_addr_', i, ')'
);
PREPARE create_purchase_order_addr_table FROM @create_purchase_order_addr_table;
EXECUTE create_purchase_order_addr_table;
SET i = i+1;
END WHILE;
END//
CALL createTable()//
DELIMITER ;
2025-03-20 18:21:13 +08:00
USE tmerclub_payment_0;
2025-03-18 21:22:38 +08:00
DELIMITER //
DROP PROCEDURE IF EXISTS createTable//
CREATE PROCEDURE createTable()
BEGIN
DECLARE i INT;
SET i = 0;
WHILE i<64 DO
# 汇总到总表
SET @create_pay_info_table = CONCAT(
2025-03-20 18:21:13 +08:00
'INSERT INTO tmerclub_payment.`pay_info`
2025-03-18 21:22:38 +08:00
(SELECT * FROM pay_info_', i, ')'
);
PREPARE create_pay_info_table FROM @create_pay_info_table;
EXECUTE create_pay_info_table;
SET @create_refund_info_table = CONCAT(
2025-03-20 18:21:13 +08:00
'INSERT INTO tmerclub_payment.`refund_info`
2025-03-18 21:22:38 +08:00
(SELECT * FROM refund_info_', i, ')'
);
PREPARE create_refund_info_table FROM @create_refund_info_table;
EXECUTE create_refund_info_table;
SET i = i+1;
END WHILE;
END//
CALL createTable()//
DELIMITER ;
# ============================== 3.删除多余分库分表 ==============================
# 请确保1-2成功执行并且所有分表数据成功到总表中再执行
2025-03-20 18:21:13 +08:00
DROP DATABASE `tmerclub_order_0`;
DROP DATABASE `tmerclub_order_1`;
DROP DATABASE `tmerclub_order_2`;
DROP DATABASE `tmerclub_order_3`;
DROP DATABASE `tmerclub_order_4`;
DROP DATABASE `tmerclub_order_5`;
DROP DATABASE `tmerclub_order_6`;
DROP DATABASE `tmerclub_order_7`;
DROP DATABASE `tmerclub_payment_0`;
DROP DATABASE `tmerclub_payment_1`;
DROP DATABASE `tmerclub_payment_2`;
DROP DATABASE `tmerclub_payment_3`;
DROP DATABASE `tmerclub_payment_4`;
DROP DATABASE `tmerclub_payment_5`;
DROP DATABASE `tmerclub_payment_6`;
DROP DATABASE `tmerclub_payment_7`;
2025-03-18 21:22:38 +08:00
# ============================== 4.创建分表 ==============================
2025-03-20 18:21:13 +08:00
USE tmerclub_order;
2025-03-18 21:22:38 +08:00
DELIMITER //
DROP PROCEDURE IF EXISTS createTable//
CREATE PROCEDURE createTable()
BEGIN
DECLARE i INT;
# ============================== 订单 ==============================
SET i = 0;
WHILE i<50 DO
SET @create_order_table = CONCAT(
'CREATE TABLE IF NOT EXISTS order_', i,
"
(
`order_id` bigint unsigned NOT NULL COMMENT '订单ID',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`shop_id` bigint DEFAULT NULL COMMENT '店铺id',
`user_id` bigint NOT NULL COMMENT '用户ID',
`order_addr_id` bigint DEFAULT NULL COMMENT '用户订单地址Id',
`delivery_type` tinyint DEFAULT NULL COMMENT '配送类型 1:快递 2:自提 3无需快递 4同城配送',
`pay_sys_type` tinyint NOT NULL DEFAULT '0' COMMENT '支付系统类型 0默认1通联支付',
`shop_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '店铺名称',
`total` bigint NOT NULL COMMENT '总值',
`actual_total` bigint DEFAULT NULL COMMENT '实际总值',
`freight_amount` bigint DEFAULT NULL COMMENT '订单运费',
`order_score` bigint DEFAULT NULL COMMENT '订单使用积分',
`status` tinyint NOT NULL DEFAULT '0' COMMENT '订单状态 1:待付款 2:待发货(待自提) 3:待收货(已发货) 5:成功 6:失败 7:待成团 9.待付尾款',
`pay_type` tinyint unsigned DEFAULT NULL COMMENT '支付方式 请参考枚举PayType',
`order_type` tinyint DEFAULT NULL COMMENT '订单类型 1团购订单 2秒杀订单 3积分订单',
`all_count` int DEFAULT NULL COMMENT '订单商品总数',
`reduce_amount` bigint NOT NULL DEFAULT '0' COMMENT '优惠总额',
`score_amount` bigint NOT NULL DEFAULT '0' COMMENT '积分抵扣金额',
`member_amount` bigint NOT NULL DEFAULT '0' COMMENT '会员折扣金额',
`platform_coupon_amount` bigint NOT NULL DEFAULT '0' COMMENT '平台优惠券优惠金额',
`shop_coupon_amount` bigint NOT NULL DEFAULT '0' COMMENT '商家优惠券优惠金额',
`discount_amount` bigint NOT NULL DEFAULT '0' COMMENT '满减优惠金额',
`shop_combo_amount` bigint NOT NULL DEFAULT '0' COMMENT '套餐优惠金额',
`platform_free_freight_amount` bigint NOT NULL DEFAULT '0' COMMENT '平台运费减免金额',
`free_freight_amount` bigint NOT NULL DEFAULT '0' COMMENT '商家运费减免金额',
`shop_change_free_amount` bigint NOT NULL DEFAULT '0' COMMENT '店铺改价优惠金额',
`distribution_amount` bigint NOT NULL DEFAULT '0' COMMENT '分销佣金',
`platform_amount` bigint NOT NULL DEFAULT '0' COMMENT '平台优惠金额',
`platform_commission` bigint NOT NULL DEFAULT '0' COMMENT '平台佣金',
`pay_time` datetime DEFAULT NULL COMMENT '付款时间',
`delivery_time` datetime DEFAULT NULL COMMENT '发货时间',
`finally_time` datetime DEFAULT NULL COMMENT '完成时间',
`settled_time` datetime DEFAULT NULL COMMENT '结算时间',
`cancel_time` datetime DEFAULT NULL COMMENT '取消时间',
`book_time` datetime DEFAULT NULL COMMENT '预售发货时间',
`is_payed` tinyint(1) DEFAULT NULL COMMENT '是否已支付1.已支付0.未支付',
`close_type` tinyint DEFAULT NULL COMMENT '订单关闭原因 1-超时未支付 2-退款关闭 4-买家取消 15-已通过货到付款交易',
`refund_status` tinyint DEFAULT NULL COMMENT '订单退款状态1:申请退款 2:退款成功 3:部分退款成功 4:退款失败)',
`shop_remarks` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '卖家备注',
`remarks` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '买家备注',
`delete_status` tinyint DEFAULT '0' COMMENT '用户订单删除状态0没有删除 1回收站 2永久删除',
`version` int DEFAULT NULL COMMENT '订单版本号,每处理一次订单,版本号+1',
`is_settled` tinyint DEFAULT NULL COMMENT '是否已经进行结算',
`supplier_id` bigint NOT NULL DEFAULT '0' COMMENT '供应商id',
`wait_purchase` tinyint NOT NULL DEFAULT '0' COMMENT '是否待采购 1.是 0.否 2.已处理',
`supplier_delivery_type` tinyint NOT NULL DEFAULT '0' COMMENT '供应商商品发货方式 1.供应商发货 2.仓库发货',
`purchase_spread_amount` bigint NOT NULL DEFAULT '0' COMMENT '商家采购价差(需要商家从结算金额补上采购价的金额)',
`pre_sale_type` tinyint DEFAULT '-1' COMMENT '预售类型 0.全款预售类型 1.定金预售',
`order_mold` tinyint DEFAULT '0' COMMENT '是否为虚拟商品订单 1.是 0.否',
`write_off_status` tinyint(1) DEFAULT NULL COMMENT '订单核销状态 0.待核销 1.核销完成',
`write_off_num` int DEFAULT NULL COMMENT '核销次数 -1.多次核销 0.无需核销 1.单次核销',
`write_off_multiple_count` int DEFAULT NULL COMMENT '核销次数 -1.无限次',
`write_off_start` datetime DEFAULT NULL COMMENT '核销开始时间',
`write_off_end` datetime DEFAULT NULL COMMENT '核销结束时间',
`write_off_count` int(0) NULL DEFAULT NULL COMMENT '订单被核销次数',
main_order_id BIGINT NOT NULL DEFAULT '0' COMMENT '主单号,在组合/套餐商品拆单时会存在',
PRIMARY KEY (`order_id`),
KEY `idx_shop_id` (`shop_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_addr_order_id` (`order_addr_id`),
KEY `idx_finally_time` (`finally_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='订单信息'
"
);
PREPARE sql_create_table FROM @create_order_table;
EXECUTE sql_create_table;
SET @create_order_addr_table = CONCAT(
'CREATE TABLE IF NOT EXISTS order_addr_', i,
"
(
`order_addr_id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`user_id` bigint DEFAULT NULL COMMENT '用户ID',
`consignee` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '收货人',
`province_id` bigint DEFAULT NULL COMMENT '省ID',
`province` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '',
`city_id` bigint DEFAULT NULL COMMENT '城市ID',
`city` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '城市',
`area_id` bigint DEFAULT NULL COMMENT '区域ID',
`area` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '',
`addr` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '地址',
`post_code` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '邮编',
`mobile` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '手机',
`lng` decimal(12,6) DEFAULT NULL COMMENT '经度',
`lat` decimal(12,6) DEFAULT NULL COMMENT '纬度',
PRIMARY KEY (`order_addr_id`),
KEY `idx_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='用户订单配送地址'
"
);
PREPARE create_order_addr_table FROM @create_order_addr_table;
EXECUTE create_order_addr_table;
SET @create_order_item_table = CONCAT(
'CREATE TABLE IF NOT EXISTS order_item_', i,
"
(
`order_item_id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '订单项ID',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`shop_id` bigint NOT NULL COMMENT '店铺id',
`order_id` bigint NOT NULL COMMENT '订单id',
`category_id` bigint DEFAULT NULL COMMENT '分类id',
`spu_id` bigint unsigned NOT NULL COMMENT '产品ID',
`sku_id` bigint unsigned NOT NULL COMMENT '产品SkuID',
`user_id` bigint NOT NULL COMMENT '用户Id',
`final_refund_id` bigint DEFAULT NULL COMMENT '最终的退款id',
`distribution_user_id` bigint DEFAULT NULL COMMENT '推广员id',
`count` int DEFAULT '0' COMMENT '购物车产品个数',
`spu_name` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '产品名称',
`sku_name` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'sku名称',
`spu_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '商品编码',
`party_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'sku编码',
`pic` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '产品主图片路径',
`is_comm` tinyint NOT NULL DEFAULT '0' COMMENT '是否以评价(0.未评价1.已评价)',
`comm_time` datetime DEFAULT NULL COMMENT '评论时间',
`refund_status` tinyint DEFAULT NULL COMMENT '订单项退款状态1:申请退款 2:退款成功 3:部分退款成功 4:退款失败)',
`be_delivered_num` int DEFAULT NULL COMMENT '0全部发货 其他数量为剩余待发货数量',
`delivery_type` tinyint DEFAULT NULL COMMENT '单个orderItem的配送类型 1:快递 2:自提 3无需快递 4:同城配送',
`shop_cart_time` datetime DEFAULT NULL COMMENT '加入购物车时间',
`price` bigint NOT NULL COMMENT '产品价格',
`spu_total_amount` bigint NOT NULL COMMENT '商品总金额',
`actual_total` bigint NOT NULL DEFAULT '0' COMMENT '商品实际金额 = 商品总金额 - 分摊的优惠金额',
`share_reduce` bigint NOT NULL DEFAULT '0' COMMENT '分摊的优惠金额(商家分摊 + 平台补贴)',
`platform_share_reduce` bigint NOT NULL DEFAULT '0' COMMENT '平台优惠金额',
`distribution_amount` bigint NOT NULL DEFAULT '0' COMMENT '推广员佣金',
`distribution_parent_amount` bigint NOT NULL DEFAULT '0' COMMENT '上级推广员佣金',
`use_score` bigint NOT NULL DEFAULT '0' COMMENT '使用积分',
`gain_score` bigint NOT NULL DEFAULT '0' COMMENT '获得积分',
`rate` decimal(15,6) NOT NULL DEFAULT '0.000000' COMMENT '分账比例',
`platform_commission` bigint NOT NULL DEFAULT '0' COMMENT '平台佣金(商品实际金额 * 分账比例)',
`score_amount` bigint NOT NULL DEFAULT '0' COMMENT '积分抵扣金额',
`member_amount` bigint NOT NULL DEFAULT '0' COMMENT '会员折扣金额',
`platform_coupon_amount` bigint NOT NULL DEFAULT '0' COMMENT '平台优惠券优惠金额',
`shop_coupon_amount` bigint NOT NULL DEFAULT '0' COMMENT '商家优惠券优惠金额',
`discount_amount` bigint NOT NULL DEFAULT '0' COMMENT '满减优惠金额',
`platform_free_freight_amount` bigint NOT NULL DEFAULT '0' COMMENT '平台运费减免金额',
`free_freight_amount` bigint NOT NULL DEFAULT '0' COMMENT '商家运费减免金额',
`shop_change_free_amount` bigint NOT NULL DEFAULT '0' COMMENT '店铺改价优惠金额',
`score_fee` bigint DEFAULT NULL COMMENT '积分价格(单价)',
`item_purchase_amount` bigint NOT NULL DEFAULT '0' COMMENT '采购价',
`purchase_platform_commission` bigint NOT NULL DEFAULT '0' COMMENT '供应商佣金',
`supplier_rate` decimal(15,6) NOT NULL DEFAULT '0.000000' COMMENT '供应商佣金比例',
`supplier_spu_id` bigint DEFAULT NULL COMMENT '供应商商品id',
`supplier_sku_id` bigint DEFAULT NULL COMMENT '供应商规格id',
`giveaway_amount` decimal(15,2) NOT NULL DEFAULT '0.00' COMMENT '赠品金额',
`main_giveaway` tinyint DEFAULT NULL COMMENT '主赠品',
`spu_mold` tinyint DEFAULT '0' COMMENT '商品类别 0.实物商品 1. 虚拟商品',
`is_refund` tinyint DEFAULT NULL COMMENT '是否可以退款 1.可以 0不可以',
`virtual_remark` json DEFAULT NULL COMMENT '虚拟商品的留言备注',
`combo_amount` bigint DEFAULT '0' COMMENT '套餐优惠金额',
`activity_id` bigint DEFAULT NULL COMMENT '活动id',
`activity_type` tinyint DEFAULT '0' COMMENT '活动类型 具体类型参考枚举类:OrderActivityType',
`supplier_pic` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '产品供应商主图片路径',
`write_off_num` INT DEFAULT NULL COMMENT '核销次数 -1.多次核销 0.无需核销 1.单次核销',
`write_off_multiple_count` INT DEFAULT NULL COMMENT '核销次数 -1.无限次',
`write_off_start` DATETIME DEFAULT NULL COMMENT '核销开始时间',
`write_off_end` DATETIME DEFAULT NULL COMMENT '核销结束时间',
`stock_point_id` bigint DEFAULT NULL COMMENT '库存点id',
PRIMARY KEY (`order_item_id`),
KEY `idx_order_id` (`order_id`),
KEY `idx_shop_id` (`shop_id`),
KEY `idx_spu_id` (`spu_id`),
KEY `idx_sku_id` (`sku_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_final_refund_id` (`final_refund_id`),
KEY `idx_distribution_user_id` (`distribution_user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='订单项'
"
);
PREPARE create_order_item_table FROM @create_order_item_table;
EXECUTE create_order_item_table;
SET @create_order_item_lang_table = CONCAT(
'CREATE TABLE IF NOT EXISTS order_item_lang_', i,
"
(
`order_item_id` bigint NOT NULL COMMENT '订单项ID',
`lang` tinyint NOT NULL COMMENT '语言 1.中文 2.英文',
`spu_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '商品名称',
`sku_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'sku名称',
`supplier_spu_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '供应商商品名称',
`supplier_sku_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '供应商sku名称',
PRIMARY KEY (`order_item_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='订单项-国际化'
"
);
PREPARE create_order_item_lang_table FROM @create_order_item_lang_table;
EXECUTE create_order_item_lang_table;
SET @create_order_settlement_table = CONCAT(
'CREATE TABLE IF NOT EXISTS order_settlement_', i,
"
(
`settlement_id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '支付结算单据ID',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`order_id` bigint DEFAULT NULL COMMENT '订单id',
`pay_id` bigint DEFAULT NULL COMMENT '支付单号',
`pay_ids` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '支付单号集合,目前只有预售订单存在多条',
`user_id` bigint NOT NULL COMMENT '用户ID',
`pay_type` tinyint DEFAULT NULL COMMENT '支付方式',
`is_clearing` tinyint DEFAULT NULL COMMENT '是否清算 0:否 1:是',
`pay_score` bigint DEFAULT NULL COMMENT '支付积分',
`pay_amount` bigint DEFAULT NULL COMMENT '支付金额',
`clearing_time` datetime DEFAULT NULL COMMENT '清算时间',
`version` int DEFAULT NULL COMMENT '版本号',
`is_payed` tinyint DEFAULT NULL COMMENT '是否已支付1.已支付0.未支付',
PRIMARY KEY (`settlement_id`),
KEY `idx_pay_id` (`pay_id`),
KEY `idx_order_id` (`order_id`),
KEY `idx_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='订单结算表'
"
);
PREPARE create_order_settlement_table FROM @create_order_settlement_table;
EXECUTE create_order_settlement_table;
SET @create_order_pre_sale_info_table = CONCAT(
'CREATE TABLE IF NOT EXISTS order_pre_sale_info_', i,
"
(
`order_pre_sale_info_id` bigint NOT NULL AUTO_INCREMENT,
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',
`order_id` bigint DEFAULT NULL COMMENT '订单编号',
`deposit_amount` bigint DEFAULT '0' COMMENT '定金金额',
`deposit_reduce_amount` bigint DEFAULT '0' COMMENT '定金优惠金额',
`deposit_expansion_amount` bigint DEFAULT '0' COMMENT '定金膨胀金额',
`balance_amount` bigint DEFAULT '0' COMMENT '尾款金额',
`pre_sale_type` tinyint DEFAULT '0' COMMENT '预售类型 0.全款预售类型 1.定金预售',
`pay_status` tinyint DEFAULT '0' COMMENT '定金预售支付状态 1.已支付定金 2.已支付尾款',
`balance_start_time` datetime DEFAULT NULL COMMENT '尾款支付开始时间',
`balance_end_time` datetime DEFAULT NULL COMMENT '尾款支付结束时间',
`balance_pay_time` datetime DEFAULT NULL COMMENT '尾款支付时间',
`pre_sale_delivery_type` tinyint DEFAULT NULL COMMENT '预售发货类型 -1.固定时间 x.尾款支付后x天发货',
`pre_sale_delivery_time` datetime DEFAULT NULL COMMENT '预售发货时间',
PRIMARY KEY (`order_pre_sale_info_id`),
KEY `idx_order_id` (`order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='订单预售信息'
"
);
PREPARE create_order_pre_sale_info_table FROM @create_order_pre_sale_info_table;
EXECUTE create_order_pre_sale_info_table;
SET @create_order_invoice_table = CONCAT(
'CREATE TABLE IF NOT EXISTS order_invoice_', i,
"
(
`order_invoice_id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '订单发票ID',
`order_id` bigint NOT NULL COMMENT '订单id',
`shop_id` bigint NOT NULL COMMENT '店铺id',
`supplier_id` bigint NULL COMMENT '供应商id',
`invoice_type` tinyint NOT NULL DEFAULT '1' COMMENT '发票类型 1.电子普通发票',
`header_type` tinyint NOT NULL COMMENT '抬头类型 1.单位 2.个人',
`header_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '抬头名称',
`invoice_tax_number` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '发票税号',
`invoice_context` tinyint NOT NULL DEFAULT '1' COMMENT '发票内容 1.商品明细',
`invoice_state` tinyint NOT NULL COMMENT '发票状态 1.申请中 2.已开票',
`file_id` bigint DEFAULT NULL COMMENT '文件id',
`application_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '申请时间',
`upload_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '上传时间',
PRIMARY KEY (`order_invoice_id`),
KEY `shop_idx`(`shop_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
"
);
PREPARE create_order_invoice_table FROM @create_order_invoice_table;
EXECUTE create_order_invoice_table;
SET @create_order_self_station_table = CONCAT(
'CREATE TABLE IF NOT EXISTS order_self_station_', i,
"
(
`order_self_station_id` bigint NOT NULL,
`shop_id` bigint DEFAULT NULL COMMENT '店铺id',
`user_id` bigint NOT NULL COMMENT '用户id',
`order_id` bigint DEFAULT NULL COMMENT '订单编号',
`station_id` bigint DEFAULT NULL COMMENT '自提点id',
`station_user_mobile` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '自提人的手机',
`station_user_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '自提人的名字',
`station_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '自提时间(用户下单时选择)',
`station_code` varchar(9) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '自提提货码',
`station_address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '上门自提点的地址',
`station_phone` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '上门自提点的联系电话',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`order_self_station_id`),
KEY `STATION` (`station_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='订单自提信息'
");
PREPARE create_order_self_station_table FROM @create_order_self_station_table;
EXECUTE create_order_self_station_table;
SET @create_order_virtual_info_table = CONCAT(
'CREATE TABLE IF NOT EXISTS order_virtual_info_', i,
"
(
`order_virtual_info_id` bigint NOT NULL ,
`order_id` bigint unsigned NOT NULL COMMENT '订单ID',
`order_item_id` bigint NOT NULL DEFAULT '0' COMMENT '订单项id',
`shop_id` bigint DEFAULT NULL COMMENT '店铺id',
`station_id` bigint DEFAULT NULL COMMENT '核销门店id',
`write_off_code` varchar(13) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '核销码',
`is_write_off` tinyint DEFAULT NULL COMMENT '是否核销 1.已核销 0.未核销',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`write_off_time` datetime DEFAULT NULL COMMENT '核销时间',
`write_off_multiple_count` int DEFAULT NULL COMMENT '剩余核销次数 -1.无限次',
PRIMARY KEY (`order_virtual_info_id`),
KEY `order_id` (`order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='订单虚拟商品信息'
");
PREPARE create_order_virtual_info_table FROM @create_order_virtual_info_table;
EXECUTE create_order_virtual_info_table;
SET @create_delivery_order_table = CONCAT(
'CREATE TABLE IF NOT EXISTS delivery_order_', i,
"
(
`delivery_order_id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '订单物流包裹id',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '建立时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`order_id` bigint NOT NULL COMMENT '订单号',
`user_id` bigint NOT NULL COMMENT '用户id',
`delivery_company_id` bigint DEFAULT NULL COMMENT '快递公司id',
`delivery_no` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '快递单号',
`consignee_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '收件人姓名',
`consignee_mobile` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '收件人电话(顺丰快递需要)',
`status` tinyint DEFAULT NULL COMMENT '物流状态 1正常 -1删除',
`all_count` int DEFAULT NULL COMMENT '包裹商品总数',
`delete_time` datetime DEFAULT NULL COMMENT '删除时间',
`delivery_type` int DEFAULT NULL COMMENT '发货方式(1.快递 3.无需物流)',
PRIMARY KEY (`delivery_order_id`),
KEY `idx_order_id` (`order_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_delivery_company_id` (`delivery_company_id`)
) ENGINE=InnoDB AUTO_INCREMENT=96 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='订单快递信息'
"
);
PREPARE create_delivery_order_table FROM @create_delivery_order_table;
EXECUTE create_delivery_order_table;
SET @create_delivery_order_item_table = CONCAT(
'CREATE TABLE IF NOT EXISTS delivery_order_item_', i,
"
(
`delivery_order_item_id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '建立时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`delivery_order_id` bigint DEFAULT NULL COMMENT '订单物流包裹id',
`img_url` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '商品图片',
`spu_name` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '商品名称',
`count` int DEFAULT '0' COMMENT '商品数量',
`supplier_img_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '供应商商品图片',
`supplier_spu_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '供应商商品名称',
PRIMARY KEY (`delivery_order_item_id`),
KEY `idx_order_delivery_id` (`delivery_order_id`)
) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='物流订单项信息'
"
);
PREPARE create_delivery_order_item_table FROM @create_delivery_order_item_table;
EXECUTE create_delivery_order_item_table;
SET @create_order_refund_table = CONCAT(
'CREATE TABLE IF NOT EXISTS order_refund_', i,
"
(
`refund_id` bigint NOT NULL COMMENT '记录ID',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`shop_id` bigint NOT NULL COMMENT '店铺ID',
`user_id` bigint NOT NULL COMMENT '买家ID',
`order_id` bigint NOT NULL COMMENT '订单号',
`order_item_id` bigint NOT NULL DEFAULT '0' COMMENT '订单项ID(0:为全部订单项)',
`refund_count` int DEFAULT '0' COMMENT '退货数量(0:为全部订单项)',
`refund_score` bigint DEFAULT NULL COMMENT '退还积分',
`refund_amount` bigint DEFAULT NULL COMMENT '退款金额',
`platform_refund_commission` bigint DEFAULT NULL COMMENT '平台佣金退款金额',
`platform_refund_amount` bigint DEFAULT NULL COMMENT '平台退款金额(退款时将这部分钱退回给平台,所以商家要扣除从平台这里获取的金额)',
`distribution_total_amount` bigint DEFAULT NULL COMMENT '退款单总分销金额',
`refund_type` tinyint NOT NULL DEFAULT '0' COMMENT '退款单类型1:整单退款,2:单个物品退款)',
`apply_type` tinyint NOT NULL COMMENT '申请类型:1,仅退款,2退款退货',
`pay_sys_type` tinyint NOT NULL DEFAULT '0' COMMENT '支付系统类型 0默认1通联支付',
`is_received` tinyint DEFAULT NULL COMMENT '是否接收到商品(1:已收到,0:未收到)',
`close_type` tinyint DEFAULT NULL COMMENT '退款关闭原因(1.买家撤销退款 2.卖家拒绝退款 3.退款申请超时被系统关闭)',
`return_money_sts` tinyint NOT NULL DEFAULT '0' COMMENT '处理退款状态:(1.买家申请 2.卖家接受 3.买家发货 4.卖家收货 5.退款成功 -1.退款关闭)详情见ReturnMoneyStsType',
`buyer_reason` tinyint DEFAULT NULL COMMENT '申请原因(具体见BuyerReasonType)',
`buyer_desc` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '申请说明',
`buyer_mobile` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '联系方式(退款时留下的手机号码)',
`img_urls` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '文件凭证(逗号隔开)',
`over_time` datetime DEFAULT NULL COMMENT '超时时间(超过该时间不处理,系统将自动处理)(保留字段)',
`reject_message` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '拒绝原因',
`seller_msg` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '卖家备注',
`shop_seller_msg` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '商家备注(移交供应商处理时保存)',
`handel_time` datetime DEFAULT NULL COMMENT '受理时间',
`supplier_time` datetime DEFAULT NULL COMMENT '移交供应商时间',
`delivery_time` datetime DEFAULT NULL COMMENT '发货时间',
`receive_time` datetime DEFAULT NULL COMMENT '收货时间',
`close_time` datetime DEFAULT NULL COMMENT '关闭时间',
`decision_time` datetime DEFAULT NULL COMMENT '确定时间(确定退款时间)',
`refund_time` datetime DEFAULT NULL COMMENT '退款时间',
`supplier_id` bigint NOT NULL DEFAULT '0' COMMENT '供应商id',
`supplier_handle_status` tinyint DEFAULT '-1' COMMENT '供应商处理状态, -1.商家自行处理 0.待供应商处理 1.供应商已同意 2.供应商已拒绝',
`purchase_refund_amount` bigint DEFAULT '0' COMMENT '采购退款金额',
`pur_platform_refund_commission` bigint DEFAULT '0' COMMENT '采购的平台佣金退款金额',
`return_giveaway_ids` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '退款退回的赠品订单项ids',
`refund_actual_total` decimal(15,2) DEFAULT NULL COMMENT '当前退款的实付金额(实付金额减去不退回赠品的金额)',
`shop_img_urls` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '商家/供应商文件凭证(逗号隔开)',
`platform_intervention_status` tinyint NOT NULL DEFAULT '-1' COMMENT '平台介入状态 -1.没有介入 1.用户申请介入 2.平台同意介入 3.平台拒绝介入 5.平台同意退款成功',
`apply_intervention_reason` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '用户申请介入理由',
`apply_intervention_img_urls` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '申请介入的文件凭证(逗号隔开)',
`intervention_refund_type` tinyint DEFAULT NULL COMMENT '平台介入退款方式 1.商家承担 2.商家供应商承担(供应商发货订单) 3.不同意退款',
`after_intervention_refund_amount` bigint DEFAULT NULL COMMENT '平台介入前的退款金额',
`platform_message` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '平台留言',
`apply_intervention_time` datetime DEFAULT NULL COMMENT '申请介入时间',
`intervention_finish_time` datetime DEFAULT NULL COMMENT '介入完成时间',
PRIMARY KEY (`refund_id`),
KEY `idx_order_id` (`order_id`),
KEY `idx_order_item_id` (`order_item_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_shop_id` (`shop_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='订单退款记录信息'
"
);
PREPARE create_order_refund_table FROM @create_order_refund_table;
EXECUTE create_order_refund_table;
SET @create_order_refund_intervention_table = CONCAT(
'CREATE TABLE IF NOT EXISTS order_refund_intervention_', i,
"
(
`refund_intervertion_id` bigint NOT NULL AUTO_INCREMENT COMMENT '记录ID',
`refund_id` bigint NOT NULL COMMENT '退款id',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`biz_id` bigint DEFAULT '0' COMMENT '商家/供应商/用户id',
`sys_type` tinyint DEFAULT NULL COMMENT '系统类型0.普通用户 1.商家端 2.平台端 3.供应商端',
`voucher_desc` varchar(200) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '凭证说明',
`img_urls` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '文件凭证(逗号隔开)',
PRIMARY KEY (`refund_intervertion_id`),
KEY `idx_refund_id` (`refund_id`),
KEY `idx_biz_id` (`biz_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='订单退款介入记录'
"
);
PREPARE create_order_refund_intervention_table FROM @create_order_refund_intervention_table;
EXECUTE create_order_refund_intervention_table;
SET @create_order_refund_addr_table = CONCAT(
'CREATE TABLE IF NOT EXISTS order_refund_addr_', i,
"
(
`refund_addr_id` bigint NOT NULL AUTO_INCREMENT COMMENT '物流ID',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`shop_id` bigint DEFAULT NULL COMMENT '店铺ID',
`refund_id` bigint NOT NULL COMMENT '退款号',
`user_id` bigint NOT NULL COMMENT '买家ID',
`delivery_company_id` bigint DEFAULT NULL COMMENT '物流公司ID',
`delivery_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '物流公司名称',
`delivery_no` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '物流单号',
`consignee_name` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '收件人姓名',
`consignee_mobile` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '收件人电话(顺丰快递需要)',
`consignee_telephone` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '收件人座机',
`consignee_post_code` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '收件人邮政编码',
`consignee_addr` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '收件人地址',
`sender_mobile` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '发送人手机号码',
`sender_remarks` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '买家备注',
`imgs` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '图片凭证',
PRIMARY KEY (`refund_addr_id`),
KEY `idx_shop_id` (`shop_id`),
KEY `idx_refund_id` (`refund_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_delivery_company_id` (`delivery_company_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='用户退货物流地址'
"
);
PREPARE create_order_refund_addr_table FROM @create_order_refund_addr_table;
EXECUTE create_order_refund_addr_table;
SET @create_order_refund_settlement_table = CONCAT(
'CREATE TABLE IF NOT EXISTS order_refund_settlement_', i,
"
(
`settlement_id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '退款结算单据id',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`pay_id` bigint DEFAULT NULL COMMENT '订单支付单号',
`order_id` bigint DEFAULT NULL COMMENT '订单编号',
`refund_id` bigint DEFAULT NULL COMMENT '退款单编号(本系统退款单号)',
`user_id` bigint DEFAULT NULL COMMENT '用户ID',
`biz_refund_no` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '微信/支付宝退款单号(支付平台退款单号)',
`pay_type` tinyint DEFAULT NULL COMMENT '支付方式(1:微信支付 2支付宝支付)',
`refund_status` tinyint DEFAULT NULL COMMENT '退款状态(1:申请中 2已完成 -1失败)',
`refund_amount` bigint DEFAULT NULL COMMENT '退款金额',
`order_total_amount` bigint DEFAULT NULL COMMENT '订单总额',
`version` int DEFAULT '0' COMMENT '版本号',
PRIMARY KEY (`settlement_id`),
UNIQUE KEY `uni_refund_id` (`refund_id`),
KEY `idx_order_id` (`order_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_pay_id` (`pay_id`),
KEY `idx_biz_refund_no` (`biz_refund_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='退款支付结算单据'
"
);
PREPARE create_order_refund_settlement_table FROM @create_order_refund_settlement_table;
EXECUTE create_order_refund_settlement_table;
SET @create_purchase_order_table = CONCAT(
'CREATE TABLE IF NOT EXISTS purchase_order_', i,
"
(
`purchase_order_id` bigint NOT NULL AUTO_INCREMENT COMMENT '采购id',
`shop_id` bigint DEFAULT NULL COMMENT '店铺id',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
`deliver_time` datetime DEFAULT NULL COMMENT '送达时间',
`delivery_time` datetime DEFAULT NULL COMMENT '发货时间',
`supplier_id` bigint NOT NULL COMMENT '供应商id',
`total_amount` bigint NOT NULL COMMENT '总采购金额',
`total_stock` int NOT NULL COMMENT '总采购库存数量',
`actual_total_stock` int DEFAULT NULL COMMENT '实际总库存数量',
`status` tinyint DEFAULT NULL COMMENT '状态 0:已作废 1:待入库 2:已发货 3.部分入库 5:已完成',
`remark` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注',
`employee_id` bigint DEFAULT NULL COMMENT '操作员工id',
`delivery_type` tinyint DEFAULT NULL COMMENT '配送类型 1:快递 2:自提 3无需快递 4同城配送',
`purchase_order_addr_id` bigint DEFAULT NULL COMMENT '采购订单地址Id',
`voucher_img_urls` VARCHAR(1000) DEFAULT NULL COMMENT '付款凭证图片 多个图片逗号分隔',
`warehouse_id` bigint(0) NULL COMMENT '仓库id',
`supplier_warehouse_id` bigint(0) NULL COMMENT '供应商仓库id',
`stock_point_type` int(1) NULL COMMENT '库存点类型(1:仓库, 2:门店)',
PRIMARY KEY (`purchase_order_id`),
KEY `idx_supplier_id` (`supplier_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='采购订单'
"
);
PREPARE create_purchase_order_table FROM @create_purchase_order_table;
EXECUTE create_purchase_order_table;
SET @create_purchase_order_lang_table = CONCAT(
'CREATE TABLE IF NOT EXISTS purchase_order_lang_', i,
"
(
`purchase_order_id` bigint NOT NULL,
`lang` tinyint NOT NULL,
`spu_name` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
PRIMARY KEY (`purchase_order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='采购订单-国际化'
"
);
PREPARE create_purchase_order_lang_table FROM @create_purchase_order_lang_table;
EXECUTE create_purchase_order_lang_table;
SET @create_purchase_order_item_table = CONCAT(
'CREATE TABLE IF NOT EXISTS purchase_order_item_', i,
"
(
`purchase_item_id` bigint NOT NULL COMMENT 'id',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
`purchase_order_id` bigint DEFAULT NULL COMMENT '采购订单id',
`spu_id` bigint DEFAULT NULL COMMENT '商品id',
`sku_id` bigint DEFAULT NULL COMMENT 'sku id',
`spu_code` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '商品编码',
`party_code` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'sku编码',
`pic` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '商品图片',
`purchase_amount` bigint DEFAULT NULL COMMENT '采购金额',
`purchase_price` bigint DEFAULT NULL COMMENT '采购价',
`purchase_stock` int DEFAULT NULL COMMENT '采购库存数量',
`actual_stock` int DEFAULT NULL COMMENT '实际库存数量',
`delivery_type` tinyint DEFAULT NULL COMMENT '订单项退款状态1:申请退款 2:退款成功 3:部分退款成功 4:退款失败)',
`status` tinyint DEFAULT NULL COMMENT '状态 0:已作废 1:待入库 2:已发货 3.部分入库 5:已完成',
`be_delivered_num` int DEFAULT NULL COMMENT '0全部发货 其他数量为剩余待发货数量',
PRIMARY KEY (`purchase_item_id`),
KEY `idx_purchase_order_id` (`purchase_order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='采购订单项'
"
);
PREPARE create_purchase_order_item_table FROM @create_purchase_order_item_table;
EXECUTE create_purchase_order_item_table;
SET @create_purchase_order_item_lang_table = CONCAT(
'CREATE TABLE IF NOT EXISTS purchase_order_item_lang_', i,
"
(
`purchase_item_id` bigint NOT NULL COMMENT '订单项ID',
`lang` tinyint NOT NULL COMMENT '语言 1.中文 2.英文',
`spu_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '商品名称',
`sku_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'sku名称',
PRIMARY KEY (`purchase_item_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='订单项-国际化'
"
);
PREPARE create_purchase_order_item_lang_table FROM @create_purchase_order_item_lang_table;
EXECUTE create_purchase_order_item_lang_table;
SET @create_purchase_order_addr_table = CONCAT(
'CREATE TABLE IF NOT EXISTS purchase_order_addr_', i,
"
(
`purchase_order_addr_id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`shop_id` bigint DEFAULT NULL COMMENT '店铺ID',
`consignee` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '收货人',
`province_id` bigint DEFAULT NULL COMMENT '省ID',
`province` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '',
`city_id` bigint DEFAULT NULL COMMENT '城市ID',
`city` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '城市',
`area_id` bigint DEFAULT NULL COMMENT '区域ID',
`area` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '',
`addr` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '地址',
`mobile` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '手机',
PRIMARY KEY (`purchase_order_addr_id`),
KEY `idx_shop_id` (`shop_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='采购订单配送地址'
"
);
PREPARE create_purchase_order_addr_table FROM @create_purchase_order_addr_table;
EXECUTE create_purchase_order_addr_table;
SET @add_allot_order = CONCAT(
'CREATE TABLE IF NOT EXISTS `allot_order_', i, "`
(
`allot_order_id` bigint(0) NOT NULL COMMENT '调拨订单id',
`out_warehouse_id` bigint(0) NULL DEFAULT NULL COMMENT '调出点仓库id',
`out_stock_point_type` int(0) NULL DEFAULT NULL COMMENT '调出点库存点类型(1:仓库, 2:门店)',
`in_warehouse_id` bigint(0) NULL DEFAULT NULL COMMENT '调入点仓库id',
`in_stock_point_type` int(0) NULL DEFAULT NULL COMMENT '调入点库存点类型(1:仓库, 2:门店)',
`dvy_company_id` bigint(0) NULL DEFAULT NULL COMMENT '物流公司id',
`dvy_type` int(0) NULL DEFAULT NULL COMMENT '物流方式(1:快递, 2:无需快递)',
`dvy_order_number` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '物流单号',
`status` int(0) NULL DEFAULT NULL COMMENT '状态(0:作废, 1:待入库, 2:部分入库, 3:已完成)',
`total_allot_count` int(0) NULL DEFAULT NULL COMMENT '总调拨数量',
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
`shop_id` bigint(0) NULL COMMENT '店铺id',
`sys_type` int(1) NULL COMMENT '系统类型',
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`allot_order_id`) USING BTREE
)
" );
PREPARE add_allot_order FROM @add_allot_order;
EXECUTE add_allot_order;
SET @add_allot_order_item = CONCAT(
'CREATE TABLE `allot_order_item_', i,
"` (
`allot_order_item_id` bigint NOT NULL COMMENT '调拨订单商品id',
`allot_order_id` bigint NULL COMMENT '调拨订单id',
`spu_id` bigint NULL COMMENT '商品spuId',
`sku_id` bigint NULL COMMENT '商品skuId',
`allot_count` int(255) NULL COMMENT '调拨数量',
`allot_in_count` int(255) NULL COMMENT '调拨入库数量',
`create_time` datetime NULL COMMENT '创建时间',
`update_time` datetime NULL COMMENT '创建时间',
PRIMARY KEY (`allot_order_item_id`)
)
" );
PREPARE add_allot_order_item FROM @add_allot_order_item;
EXECUTE add_allot_order_item;
SET i = i+1;
END WHILE;
END//
CALL createTable()//
DELIMITER ;
2025-03-20 18:21:13 +08:00
USE tmerclub_payment;
2025-03-18 21:22:38 +08:00
DELIMITER //
DROP PROCEDURE IF EXISTS createTable//
CREATE PROCEDURE createTable()
BEGIN
DECLARE i INT;
SET i = 0;
WHILE i<50 DO
SET @create_pay_info_table = CONCAT(
'CREATE TABLE IF NOT EXISTS pay_info_', i,
"
(
`pay_id` bigint unsigned NOT NULL COMMENT '支付单号',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`user_id` bigint DEFAULT NULL COMMENT '用户id',
`order_ids` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '本次支付关联的多个订单号',
`biz_pay_no` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '外部订单流水号',
`sys_type` tinyint DEFAULT NULL COMMENT '系统类型 见SysTypeEnum',
`pay_entry` tinyint DEFAULT NULL COMMENT '支付入口 0下单 1余额充值',
`pay_type` tinyint DEFAULT NULL COMMENT '支付方式 1 微信支付 2 支付宝',
`pay_status` tinyint DEFAULT NULL COMMENT '支付状态',
`pay_score` bigint DEFAULT NULL COMMENT '支付积分',
`pay_amount` bigint DEFAULT NULL COMMENT '支付金额',
`version` int DEFAULT NULL COMMENT '版本号',
`callback_content` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '回调内容',
`callback_time` datetime DEFAULT NULL COMMENT '回调时间',
`confirm_time` datetime DEFAULT NULL COMMENT '确认时间',
`refund_id` bigint DEFAULT NULL COMMENT '本次支付关联的退款号',
`pay_sys_type` int DEFAULT NULL COMMENT '系统支付类型 0.默认支付系统 1.通联支付',
`to_user_id` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '支付给商城的用户id通联支付独有',
`system_model` tinyint DEFAULT NULL COMMENT '支付的系统类型 1:pc 2:h5 3:小程序 4:安卓 5:ios',
`biz_user_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '第三方系统userid',
PRIMARY KEY (`pay_id`),
KEY `idx_biz_pay_no` (`biz_pay_no`),
KEY `idx_user_id` (`user_id`),
KEY `idx_order_ids` (`order_ids`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='订单支付记录'
"
);
PREPARE create_pay_info_table FROM @create_pay_info_table;
EXECUTE create_pay_info_table;
SET @create_refund_info_table = CONCAT(
'CREATE TABLE IF NOT EXISTS refund_info_', i,
"
(
`refund_id` bigint unsigned NOT NULL COMMENT '退款单号',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
`order_id` bigint DEFAULT NULL COMMENT '关联的支付订单id',
`pay_id` bigint NOT NULL DEFAULT '0' COMMENT '关联的支付单id',
`pay_type` tinyint DEFAULT NULL COMMENT '支付方式',
`user_id` bigint DEFAULT NULL COMMENT '用户id',
`refund_status` tinyint DEFAULT NULL COMMENT '退款状态',
`refund_amount` bigint DEFAULT NULL COMMENT '退款金额',
`callback_content` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '回调内容',
`callback_time` datetime DEFAULT NULL COMMENT '回调时间',
PRIMARY KEY (`refund_id`,`pay_id`),
KEY `idx_order_id` (`order_id`),
KEY `idx_pay_id` (`pay_id`),
KEY `idx_userid` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='退款信息'
"
);
PREPARE create_refund_info_table FROM @create_refund_info_table;
EXECUTE create_refund_info_table;
SET i = i+1;
END WHILE;
END//
CALL createTable()//
DELIMITER ;
# ============================== 5.统计数据到各个分表 ==============================
2025-03-20 18:21:13 +08:00
USE tmerclub_order;
2025-03-18 21:22:38 +08:00
DELIMITER //
DROP PROCEDURE IF EXISTS createTable//
CREATE PROCEDURE createTable()
BEGIN
DECLARE i INT;
SET i = 0;
WHILE i<50 DO
SET @create_allot_order_table = CONCAT(
'INSERT INTO allot_order_', i, '
2025-03-20 18:21:13 +08:00
(SELECT * FROM tmerclub_order.`allot_order` WHERE (SUBSTRING(allot_order_id, -3) + 0) % 50 = ', i, ' )'
2025-03-18 21:22:38 +08:00
);
PREPARE create_allot_order_table FROM @create_allot_order_table;
EXECUTE create_allot_order_table;
SET @create_allot_order_item_table = CONCAT(
'INSERT INTO allot_order_item_', i, '
2025-03-20 18:21:13 +08:00
(SELECT * FROM tmerclub_order.`allot_order_item` WHERE (SUBSTRING(allot_order_item_id, -3) + 0) % 50 = ', i, ' )'
2025-03-18 21:22:38 +08:00
);
PREPARE create_allot_order_item_table FROM @create_allot_order_item_table;
EXECUTE create_allot_order_item_table;
SET @create_delivery_order_table = CONCAT(
'INSERT INTO delivery_order_', i, '
2025-03-20 18:21:13 +08:00
(SELECT * FROM tmerclub_order.`delivery_order` WHERE (SUBSTRING(delivery_order_id, -3) + 0) % 50 = ', i, ' )'
2025-03-18 21:22:38 +08:00
);
PREPARE create_delivery_order_table FROM @create_delivery_order_table;
EXECUTE create_delivery_order_table;
SET @create_delivery_order_item_table = CONCAT(
'INSERT INTO delivery_order_item_', i, '
2025-03-20 18:21:13 +08:00
(SELECT * FROM tmerclub_order.`delivery_order_item` WHERE (SUBSTRING(delivery_order_item_id, -3) + 0) % 50 = ', i, ' )'
2025-03-18 21:22:38 +08:00
);
PREPARE create_delivery_order_item_table FROM @create_delivery_order_item_table;
EXECUTE create_delivery_order_item_table;
SET @create_order_table = CONCAT(
'INSERT INTO order_', i, '
2025-03-20 18:21:13 +08:00
(SELECT * FROM tmerclub_order.`order` WHERE (SUBSTRING(order_id, -3) + 0) % 50 = ', i, ' )'
2025-03-18 21:22:38 +08:00
);
PREPARE create_order_table FROM @create_order_table;
EXECUTE create_order_table;
SET @create_order_addr_table = CONCAT(
'INSERT INTO order_addr_', i, '
2025-03-20 18:21:13 +08:00
(SELECT * FROM tmerclub_order.`order_addr` WHERE (SUBSTRING(order_addr_id, -3) + 0) % 50 = ', i, ' )'
2025-03-18 21:22:38 +08:00
);
PREPARE create_order_addr_table FROM @create_order_addr_table;
EXECUTE create_order_addr_table;
SET @create_order_invoice_table = CONCAT(
'INSERT INTO order_invoice_', i, '
2025-03-20 18:21:13 +08:00
(SELECT * FROM tmerclub_order.`order_invoice` WHERE (SUBSTRING(order_invoice_id, -3) + 0) % 50 = ', i, ' )'
2025-03-18 21:22:38 +08:00
);
PREPARE create_order_invoice_table FROM @create_order_invoice_table;
EXECUTE create_order_invoice_table;
SET @create_order_item_table = CONCAT(
'INSERT INTO order_item_', i, '
2025-03-20 18:21:13 +08:00
(SELECT * FROM tmerclub_order.`order_item` WHERE (SUBSTRING(order_item_id, -3) + 0) % 50 = ', i, ' )'
2025-03-18 21:22:38 +08:00
);
PREPARE create_order_item_table FROM @create_order_item_table;
EXECUTE create_order_item_table;
SET @create_order_item_lang_table = CONCAT(
'INSERT INTO order_item_lang_', i, '
2025-03-20 18:21:13 +08:00
(SELECT * FROM tmerclub_order.`order_item_lang` WHERE (SUBSTRING(order_item_id, -3) + 0) % 50 = ', i, ' )'
2025-03-18 21:22:38 +08:00
);
PREPARE create_order_item_lang_table FROM @create_order_item_lang_table;
EXECUTE create_order_item_lang_table;
SET @create_order_pre_sale_info_table = CONCAT(
'INSERT INTO order_pre_sale_info_', i, '
2025-03-20 18:21:13 +08:00
(SELECT * FROM tmerclub_order.`order_pre_sale_info` WHERE (SUBSTRING(order_pre_sale_info_id, -3) + 0) % 50 = ', i, ' )'
2025-03-18 21:22:38 +08:00
);
PREPARE create_order_pre_sale_info_table FROM @create_order_pre_sale_info_table;
EXECUTE create_order_pre_sale_info_table;
SET @create_refund_info_table = CONCAT(
'INSERT INTO order_refund_', i, '
2025-03-20 18:21:13 +08:00
(SELECT * FROM tmerclub_order.`order_refund` WHERE (SUBSTRING(user_id, -3) + 0) % 50 = ', i, ' )'
2025-03-18 21:22:38 +08:00
);
PREPARE create_refund_info_table FROM @create_refund_info_table;
EXECUTE create_refund_info_table;
SET @create_order_refund_addr_table = CONCAT(
'INSERT INTO order_refund_addr_', i, '
2025-03-20 18:21:13 +08:00
(SELECT * FROM tmerclub_order.`order_refund_addr` WHERE (SUBSTRING(user_id, -3) + 0) % 50 = ', i, ' )'
2025-03-18 21:22:38 +08:00
);
PREPARE create_order_refund_addr_table FROM @create_order_refund_addr_table;
EXECUTE create_order_refund_addr_table;
SET @create_order_refund_intervention_table = CONCAT(
'INSERT INTO order_refund_intervention_', i, '
2025-03-20 18:21:13 +08:00
(SELECT * FROM tmerclub_order.`order_refund_intervention` WHERE (SUBSTRING(refund_id, -3) + 0) % 50 = ', i, ' )'
2025-03-18 21:22:38 +08:00
);
PREPARE create_order_refund_intervention_table FROM @create_order_refund_intervention_table;
EXECUTE create_order_refund_intervention_table;
SET @create_order_refund_settlement_table = CONCAT(
'INSERT INTO order_refund_settlement_', i, '
2025-03-20 18:21:13 +08:00
(SELECT * FROM tmerclub_order.`order_refund_settlement` WHERE (SUBSTRING(user_id, -3) + 0) % 50 = ', i, ' )'
2025-03-18 21:22:38 +08:00
);
PREPARE create_order_refund_settlement_table FROM @create_order_refund_settlement_table;
EXECUTE create_order_refund_settlement_table;
SET @create_order_self_station_table = CONCAT(
'INSERT INTO order_self_station_', i, '
2025-03-20 18:21:13 +08:00
(SELECT * FROM tmerclub_order.`order_self_station` WHERE (SUBSTRING(order_self_station_id, -3) + 0) % 50 = ', i, ' )'
2025-03-18 21:22:38 +08:00
);
PREPARE create_order_self_station_table FROM @create_order_self_station_table;
EXECUTE create_order_self_station_table;
SET @create_order_settlement_table = CONCAT(
'INSERT INTO order_settlement_', i, '
2025-03-20 18:21:13 +08:00
(SELECT * FROM tmerclub_order.`order_settlement` WHERE (SUBSTRING(settlement_id, -3) + 0) % 50 = ', i, ' )'
2025-03-18 21:22:38 +08:00
);
PREPARE create_order_settlement_table FROM @create_order_settlement_table;
EXECUTE create_order_settlement_table;
SET @create_order_virtual_info_table = CONCAT(
'INSERT INTO order_virtual_info_', i, '
2025-03-20 18:21:13 +08:00
(SELECT * FROM tmerclub_order.`order_virtual_info` WHERE (SUBSTRING(order_virtual_info_id, -3) + 0) % 50 = ', i, ' )'
2025-03-18 21:22:38 +08:00
);
PREPARE create_order_virtual_info_table FROM @create_order_virtual_info_table;
EXECUTE create_order_virtual_info_table;
SET @create_purchase_order_table = CONCAT(
'INSERT INTO purchase_order_', i, '
2025-03-20 18:21:13 +08:00
(SELECT * FROM tmerclub_order.`purchase_order` WHERE (SUBSTRING(purchase_order_id, -3) + 0) % 50 = ', i, ' )'
2025-03-18 21:22:38 +08:00
);
PREPARE create_purchase_order_table FROM @create_purchase_order_table;
EXECUTE create_purchase_order_table;
SET @create_purchase_order_addr_table = CONCAT(
'INSERT INTO purchase_order_addr_', i, '
2025-03-20 18:21:13 +08:00
(SELECT * FROM tmerclub_order.`purchase_order_addr` WHERE (SUBSTRING(purchase_order_addr_id, -3) + 0) % 50 = ', i, ' )'
2025-03-18 21:22:38 +08:00
);
PREPARE create_purchase_order_addr_table FROM @create_purchase_order_addr_table;
EXECUTE create_purchase_order_addr_table;
SET @create_purchase_order_item_table = CONCAT(
'INSERT INTO purchase_order_item_', i, '
2025-03-20 18:21:13 +08:00
(SELECT * FROM tmerclub_order.`purchase_order_item` WHERE (SUBSTRING(purchase_order_id, -3) + 0) % 50 = ', i, ' )'
2025-03-18 21:22:38 +08:00
);
PREPARE create_purchase_order_item_table FROM @create_purchase_order_item_table;
EXECUTE create_purchase_order_item_table;
SET @create_purchase_order_item_lang_table = CONCAT(
'INSERT INTO purchase_order_item_lang_', i, '
2025-03-20 18:21:13 +08:00
(SELECT * FROM tmerclub_order.`purchase_order_item_lang` WHERE (SUBSTRING(purchase_item_id, -3) + 0) % 50 = ', i, ' )'
2025-03-18 21:22:38 +08:00
);
PREPARE create_purchase_order_item_lang_table FROM @create_purchase_order_item_lang_table;
EXECUTE create_purchase_order_item_lang_table;
SET @create_purchase_order_lang_table = CONCAT(
'INSERT INTO purchase_order_lang_', i, '
2025-03-20 18:21:13 +08:00
(SELECT * FROM tmerclub_order.`purchase_order_lang` WHERE (SUBSTRING(purchase_order_id, -3) + 0) % 50 = ', i, ' )'
2025-03-18 21:22:38 +08:00
);
PREPARE create_purchase_order_lang_table FROM @create_purchase_order_lang_table;
EXECUTE create_purchase_order_lang_table;
SET i = i+1;
END WHILE;
END//
CALL createTable()//
DELIMITER ;
2025-03-20 18:21:13 +08:00
USE tmerclub_payment;
2025-03-18 21:22:38 +08:00
DELIMITER //
DROP PROCEDURE IF EXISTS createTable//
CREATE PROCEDURE createTable()
BEGIN
DECLARE i INT;
SET i = 0;
WHILE i<25 DO
SET @create_pay_info_table = CONCAT(
'INSERT INTO pay_info_', i, '
2025-03-20 18:21:13 +08:00
(SELECT * FROM tmerclub_payment.`pay_info` WHERE (SUBSTRING(pay_id, -3) + 0) % 50 = ', i, ' )'
2025-03-18 21:22:38 +08:00
);
PREPARE create_pay_info_table FROM @create_pay_info_table;
EXECUTE create_pay_info_table;
SET @create_refund_info_table = CONCAT(
'INSERT INTO refund_info_', i, '
2025-03-20 18:21:13 +08:00
(SELECT * FROM tmerclub_payment.`refund_info` WHERE (SUBSTRING(refund_id, -3) + 0) % 50 = ', i, ' )'
2025-03-18 21:22:38 +08:00
);
PREPARE create_refund_info_table FROM @create_refund_info_table;
EXECUTE create_refund_info_table;
SET i = i+1;
END WHILE;
END//
CALL createTable()//
DELIMITER ;
# ============================== 6.修改shardingsphere、canal配置 ==============================
2025-03-20 18:21:13 +08:00
# 1.修改shardingsphere配置具体参考tmerclub-doc文档/开发环境搭建/中间件docker-compse一键安装/shardingsphere/conf
2025-03-18 21:22:38 +08:00
# 2.修改canal配置
# 修改canal下/conf/example/instance.properties文件中的canal.instance.filter.regex替换成下述内容
2025-03-20 18:21:13 +08:00
# canal.instance.filter.regex=tmerclub_product.spu:*,tmerclub_product.category:*,tmerclub_product.brand:*,tmerclub_product.spu_tag_reference:*,tmerclub_admin.shop_detail:*,tmerclub_product.spu_extension:*,tmerclub_product.sku:*,tmerclub_product.sku_stock:*,tmerclub_marketing.distribution_spu:*,tmerclub_order+.order_[0-9]+:*,tmerclub_order+.order_refund_[0-9]+:*,tmerclub_order+.purchase_order_[0-9]+:*,tmerclub_order+.order_invoice_[0-9]+:*,tmerclub_order+.allot_order_[0-9]+:*,\
2025-03-18 21:22:38 +08:00
# 修改后重启canal
# ============================== 7.删除总表中数据 ==============================
# 确保6.7.执行 成功 执行一次后检查是否数据已经同步到各个分表中去再执行下面的sql
2025-03-20 18:21:13 +08:00
USE tmerclub_order;
2025-03-18 21:22:38 +08:00
DROP TABLE IF EXISTS `allot_order`;
DROP TABLE IF EXISTS `allot_order_item`;
DROP TABLE IF EXISTS `delivery_order`;
DROP TABLE IF EXISTS `delivery_order_item`;
DROP TABLE IF EXISTS `order`;
DROP TABLE IF EXISTS `order_addr`;
DROP TABLE IF EXISTS `order_invoice`;
DROP TABLE IF EXISTS `order_item`;
DROP TABLE IF EXISTS `order_item_lang`;
DROP TABLE IF EXISTS `order_pre_sale_info`;
DROP TABLE IF EXISTS `order_refund`;
DROP TABLE IF EXISTS `order_refund_addr`;
DROP TABLE IF EXISTS `order_refund_intervention`;
DROP TABLE IF EXISTS `order_refund_settlement`;
DROP TABLE IF EXISTS `order_self_station`;
DROP TABLE IF EXISTS `order_settlement`;
DROP TABLE IF EXISTS `order_virtual_info`;
DROP TABLE IF EXISTS `purchase_order`;
DROP TABLE IF EXISTS `purchase_order_addr`;
DROP TABLE IF EXISTS `purchase_order_item`;
DROP TABLE IF EXISTS `purchase_order_item_lang`;
DROP TABLE IF EXISTS `purchase_order_lang`;
2025-03-20 18:21:13 +08:00
USE tmerclub_payment;
2025-03-18 21:22:38 +08:00
DROP TABLE IF EXISTS `pay_info`;
DROP TABLE IF EXISTS `refund_info`;