-- 基础实体表结构 (BaseDO) 不单独建表,字段会被继承到其他表中 CREATE TABLE `tz_trade_order` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '订单编号,主键自增', `order_num` varchar(64) NOT NULL COMMENT '订单流水号', `order_type` tinyint NOT NULL COMMENT '订单类型 (枚举 TradeOrderTypeEnum)', `order_terminal` tinyint NOT NULL COMMENT '订单来源 (枚举 TerminalEnum)', `order_status` tinyint NOT NULL COMMENT '订单状态 (枚举 TradeOrderStatusEnum)', `user_id` bigint NOT NULL COMMENT '用户编号', `user_ip` varchar(64) DEFAULT NULL COMMENT '用户IP', `user_name` varchar(64) DEFAULT NULL COMMENT '用户昵称', `user_mobile` varchar(11) DEFAULT NULL COMMENT '用户手机号', `user_remark` varchar(512) DEFAULT NULL COMMENT '用户备注', `finish_time` datetime DEFAULT NULL COMMENT '订单完成时间', `cancel_time` datetime DEFAULT NULL COMMENT '订单取消时间', `cancel_type` tinyint DEFAULT NULL COMMENT '取消类型 (枚举 TradeOrderCancelTypeEnum)', `cancel_reason` varchar(128) DEFAULT NULL COMMENT '取消原因', `cancel_remark` varchar(255) DEFAULT NULL COMMENT '取消原因备注', `merchant_id` bigint DEFAULT NULL COMMENT '商家编号', `merchant_name` varchar(64) DEFAULT NULL COMMENT '商家名称', `merchant_remark` varchar(512) DEFAULT NULL COMMENT '商家备注', `comment_status` tinyint(1) DEFAULT NULL COMMENT '是否评价 (true-已评价, false-未评价)', `expense_price` int DEFAULT NULL COMMENT '商品成本(单),单位:分', `price` int DEFAULT NULL COMMENT '商品原价(单),单位:分', `discount_price` int DEFAULT NULL COMMENT '优惠金额(总),单位:分', `delivery_price` int DEFAULT NULL COMMENT '运费金额(总),单位:分', `adjust_price` int DEFAULT NULL COMMENT '订单调价(总),单位:分', `pay_price` int DEFAULT NULL COMMENT '应付金额(总),单位:分', `live_price` int DEFAULT NULL COMMENT '实收金额(总),单位:分', `pay_order_id` bigint DEFAULT NULL COMMENT '支付订单编号', `pay_status` tinyint(1) DEFAULT NULL COMMENT '是否已支付 (true-已支付, false-未支付)', `pay_type` tinyint DEFAULT NULL COMMENT '支付方式(PayTypeEnum)', `pay_time` datetime DEFAULT NULL COMMENT '付款时间', `pay_channel_code` tinyint DEFAULT NULL COMMENT '支付渠道(PayTypeEnum)', `delivery_type` tinyint DEFAULT NULL COMMENT '配送方式 (枚举 DeliveryTypeEnum)', `logistics_id` bigint DEFAULT '0' COMMENT '发货物流公司编号', `logistics_no` varchar(64) DEFAULT '' COMMENT '发货物流单号', `delivery_time` datetime DEFAULT NULL COMMENT '发货时间', `receive_time` datetime DEFAULT NULL COMMENT '收货时间', `receiver_name` varchar(64) DEFAULT NULL COMMENT '收件人名称', `receiver_mobile` varchar(20) DEFAULT NULL COMMENT '收件人手机', `receiver_area_id` int DEFAULT NULL COMMENT '收件人地区编号', `receiver_detail_address` varchar(512) DEFAULT NULL COMMENT '收件人详细地址', `pick_up_store_id` bigint DEFAULT NULL COMMENT '自提门店编号', `pick_up_verify_code` varchar(64) DEFAULT NULL COMMENT '自提核销码', `refund_status` tinyint DEFAULT NULL COMMENT '退款状态 (枚举 TradeOrderRefundStatusEnum)', `refund_price` int DEFAULT NULL COMMENT '退款金额,单位:分', `refund_time` datetime DEFAULT NULL COMMENT '退款时间', `after_sale_id` bigint DEFAULT NULL COMMENT '售后单编号', `after_sale_status` tinyint DEFAULT NULL COMMENT '售后状态 (枚举 TradeOrderItemAfterSaleStatusEnum)', `finance_id` bigint DEFAULT NULL COMMENT '财务单编号', `finance_status` tinyint DEFAULT NULL COMMENT '财务状态 (枚举 TradeOrderItemFinanceEnum)', `version` int NOT NULL DEFAULT '0' COMMENT '版本号(乐观锁)', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '最后更新时间', `creator` varchar(64) DEFAULT NULL COMMENT '创建者', `updater` varchar(64) DEFAULT NULL COMMENT '更新者', `deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除', `tenant_id` bigint NOT NULL DEFAULT '1' COMMENT '租户编号', PRIMARY KEY (`id`), UNIQUE KEY `uk_order_num` (`order_num`), KEY `idx_user_id` (`user_id`), KEY `idx_status` (`order_status`), KEY `idx_pay_status` (`pay_status`) ) ENGINE = InnoDB AUTO_INCREMENT = 2 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT ='交易订单表'; -- 交易订单项表 (trade_order_item) CREATE TABLE `tz_trade_order_item` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', `user_id` bigint NOT NULL COMMENT '用户编号', `order_id` bigint NOT NULL COMMENT '订单编号', `cart_id` bigint DEFAULT NULL COMMENT '购物车项编号', `spu_id` bigint NOT NULL COMMENT '商品 SPU 编号', `spu_name` varchar(256) NOT NULL COMMENT '商品 SPU 名称', `spu_type` tinyint(1) NOT NULL COMMENT '商品类型(1商品 2服务)', `sku_id` bigint NOT NULL COMMENT '商品 SKU 编号', `sku_name` varchar(255) NOT NULL COMMENT '商品 SKU 名称', `shop_id` bigint DEFAULT NULL COMMENT '店铺id', `shop_name` varchar(64) DEFAULT NULL COMMENT '店铺名称', `shop_logo` varchar(255) DEFAULT NULL COMMENT '店铺logo', `order_category_name` varchar(64) NOT NULL COMMENT '订单类目名称', `order_category_id` bigint NOT NULL COMMENT '订单类目id', `pic_url` varchar(512) NOT NULL COMMENT '商品图片', `count` int NOT NULL COMMENT '购买数量', `unit` varchar(16) DEFAULT NULL COMMENT '商品单位', `expense_price` int DEFAULT NULL COMMENT '商品成本(单),单位:分', `price` int DEFAULT NULL COMMENT '商品原价(单),单位:分', `discount_price` int DEFAULT NULL COMMENT '优惠金额(总),单位:分', `delivery_price` int DEFAULT NULL COMMENT '运费金额(总),单位:分', `adjust_price` int DEFAULT NULL COMMENT '订单调价(总),单位:分', `pay_price` int DEFAULT NULL COMMENT '应付金额(总),单位:分', `live_price` int DEFAULT NULL COMMENT '实收金额(总),单位:分', `refund_status` tinyint DEFAULT NULL COMMENT '退款状态 (枚举 TradeOrderRefundStatusEnum)', `refund_price` int DEFAULT NULL COMMENT '退款金额,单位:分', `refund_time` datetime DEFAULT NULL COMMENT '退款时间', `sub_type` tinyint(1) DEFAULT '1' COMMENT '预约类型(1预约 2 加急)', `sub_time` datetime DEFAULT NULL COMMENT '预约时间', `serve_address` varchar(255) DEFAULT NULL COMMENT '服务地址', `serve_content` varchar(255) DEFAULT NULL COMMENT '服务内容', `properties` json DEFAULT NULL COMMENT '属性数组', `serve_info` json DEFAULT NULL COMMENT '服务信息', `serve_ext_info` json DEFAULT NULL COMMENT '扩展服务信息,存储额外的服务相关数据', `price_ext_info` json DEFAULT NULL COMMENT '附加费信息', `version` int NOT NULL DEFAULT '0' COMMENT '版本号(乐观锁)', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '最后更新时间', `creator` varchar(64) DEFAULT NULL COMMENT '创建者', `updater` varchar(64) DEFAULT NULL COMMENT '更新者', `deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除', `tenant_id` bigint NOT NULL DEFAULT '1' COMMENT '租户编号', PRIMARY KEY (`id`), KEY `idx_order_id` (`order_id`), KEY `idx_sku_id` (`sku_id`), KEY `idx_user_id` (`user_id`) ) ENGINE = InnoDB AUTO_INCREMENT = 2 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT ='交易订单项表'; -- 订单日志表 (trade_order_log) CREATE TABLE `tz_trade_order_log` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号', `user_id` bigint(20) NOT NULL COMMENT '用户编号', `user_type` tinyint(4) NOT NULL COMMENT '用户类型 (枚举 UserTypeEnum)', `order_id` bigint(20) NOT NULL COMMENT '订单号', `before_status` int(11) DEFAULT NULL COMMENT '操作前状态', `after_status` int(11) DEFAULT NULL COMMENT '操作后状态', `operate_type` tinyint(4) NOT NULL COMMENT '操作类型 (枚举 TradeOrderOperateTypeEnum)', `content` varchar(1024) NOT NULL COMMENT '订单日志信息', `create_time` datetime NOT NULL COMMENT '创建时间', `update_time` datetime NOT NULL COMMENT '最后更新时间', `creator` varchar(64) NOT NULL COMMENT '创建者', `updater` varchar(64) NOT NULL COMMENT '更新者', `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除', `tenant_id` bigint NOT NULL DEFAULT '1' COMMENT '租户编号', PRIMARY KEY (`id`), KEY `idx_order_id` (`order_id`), KEY `idx_user_id` (`user_id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT ='订单日志表'; -- 售后订单表 (tz_trade_after_sale) CREATE TABLE `tz_trade_after_sale` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '售后编号,主键自增', `no` varchar(64) NOT NULL COMMENT '售后单号', `status` tinyint(4) NOT NULL COMMENT '退款状态 (枚举 AfterSaleStatusEnum)', `way` tinyint(4) NOT NULL COMMENT '售后方式 (枚举 AfterSaleWayEnum)', `type` tinyint(4) NOT NULL COMMENT '售后类型 (枚举 AfterSaleTypeEnum)', `user_id` bigint(20) NOT NULL COMMENT '用户编号', `apply_reason` varchar(256) NOT NULL COMMENT '申请原因', `apply_description` varchar(512) DEFAULT NULL COMMENT '补充描述', `apply_pic_urls` json DEFAULT NULL COMMENT '补充凭证图片', `order_id` bigint(20) NOT NULL COMMENT '交易订单编号', `order_no` varchar(64) NOT NULL COMMENT '订单流水号', `order_item_id` bigint(20) NOT NULL COMMENT '交易订单项编号', `prod_id` bigint(20) NOT NULL COMMENT '商品 SPU 编号', `prod_name` varchar(256) NOT NULL COMMENT '商品 SPU 名称', `sku_id` bigint(20) NOT NULL COMMENT '商品 SKU 编号', `properties` json DEFAULT NULL COMMENT '属性数组', `pic_url` varchar(512) DEFAULT NULL COMMENT '商品图片', `count` int(11) NOT NULL COMMENT '退货商品数量', `audit_time` datetime DEFAULT NULL COMMENT '审批时间', `audit_user_id` bigint(20) DEFAULT NULL COMMENT '审批人', `audit_reason` varchar(512) DEFAULT NULL COMMENT '审批备注', `refund_price` int(11) NOT NULL COMMENT '退款金额,单位:分', `pay_refund_id` bigint(20) DEFAULT NULL COMMENT '支付退款编号', `refund_time` datetime DEFAULT NULL COMMENT '退款时间', `logistics_id` bigint(20) DEFAULT NULL COMMENT '退货物流公司编号', `logistics_no` varchar(64) DEFAULT NULL COMMENT '退货物流单号', `delivery_time` datetime DEFAULT NULL COMMENT '退货时间', `receive_time` datetime DEFAULT NULL COMMENT '收货时间', `receive_reason` varchar(512) DEFAULT NULL COMMENT '收货备注', `create_time` datetime NOT NULL COMMENT '创建时间', `update_time` datetime NOT NULL COMMENT '最后更新时间', `creator` varchar(64) NOT NULL COMMENT '创建者', `updater` varchar(64) NOT NULL COMMENT '更新者', `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_no` (`no`), KEY `idx_user_id` (`user_id`), KEY `idx_order_id` (`order_id`), KEY `idx_order_item_id` (`order_item_id`), KEY `idx_status` (`status`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT ='售后订单表'; -- 交易售后日志表 (tz_trade_after_sale_log) CREATE TABLE `tz_trade_after_sale_log` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号', `user_id` bigint(20) NOT NULL COMMENT '用户编号', `user_type` tinyint(4) NOT NULL COMMENT '用户类型 (枚举 UserTypeEnum)', `after_sale_id` bigint(20) NOT NULL COMMENT '售后编号', `before_status` tinyint(4) DEFAULT NULL COMMENT '操作前状态', `after_status` tinyint(4) DEFAULT NULL COMMENT '操作后状态', `operate_type` tinyint(4) NOT NULL COMMENT '操作类型 (枚举 AfterSaleOperateTypeEnum)', `content` varchar(512) NOT NULL COMMENT '操作明细', `create_time` datetime NOT NULL COMMENT '创建时间', `update_time` datetime NOT NULL COMMENT '最后更新时间', `creator` varchar(64) NOT NULL COMMENT '创建者', `updater` varchar(64) NOT NULL COMMENT '更新者', `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除', PRIMARY KEY (`id`), KEY `idx_after_sale_id` (`after_sale_id`), KEY `idx_user_id` (`user_id`), KEY `idx_operate_type` (`operate_type`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT ='交易售后日志表'; -- 快递公司表 (trade_delivery_express) CREATE TABLE `tz_trade_delivery_express` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号,自增', `code` varchar(64) NOT NULL COMMENT '快递公司 code', `name` varchar(128) NOT NULL COMMENT '快递公司名称', `logo` varchar(512) DEFAULT NULL COMMENT '快递公司 logo', `sort` int(11) DEFAULT NULL COMMENT '排序', `status` tinyint(4) NOT NULL COMMENT '状态 (枚举 CommonStatusEnum)', `create_time` datetime NOT NULL COMMENT '创建时间', `update_time` datetime NOT NULL COMMENT '最后更新时间', `creator` varchar(64) NOT NULL COMMENT '创建者', `updater` varchar(64) NOT NULL COMMENT '更新者', `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_code` (`code`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT ='快递公司表'; -- 快递运费模板表 (trade_delivery_express_template) CREATE TABLE `tz_trade_delivery_express_template` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号,自增', `name` varchar(128) NOT NULL COMMENT '模板名称', `charge_mode` tinyint(4) NOT NULL COMMENT '配送计费方式 (枚举 DeliveryExpressChargeModeEnum)', `sort` int(11) DEFAULT NULL COMMENT '排序', `create_time` datetime NOT NULL COMMENT '创建时间', `update_time` datetime NOT NULL COMMENT '最后更新时间', `creator` varchar(64) NOT NULL COMMENT '创建者', `updater` varchar(64) NOT NULL COMMENT '更新者', `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除', PRIMARY KEY (`id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT ='快递运费模板表'; -- 快递运费模板计费配置表 (trade_delivery_express_template_charge) CREATE TABLE `tz_trade_delivery_express_template_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号,自增', `template_id` bigint(20) NOT NULL COMMENT '配送模板编号', `area_ids` varchar(512) NOT NULL COMMENT '配送区域编号列表', `charge_mode` tinyint(4) NOT NULL COMMENT '配送计费方式', `start_count` double NOT NULL COMMENT '首件数量(件数,重量,或体积)', `start_price` int(11) NOT NULL COMMENT '起步价,单位:分', `extra_count` double NOT NULL COMMENT '续件数量(件, 重量,或体积)', `extra_price` int(11) NOT NULL COMMENT '额外价,单位:分', `create_time` datetime NOT NULL COMMENT '创建时间', `update_time` datetime NOT NULL COMMENT '最后更新时间', `creator` varchar(64) NOT NULL COMMENT '创建者', `updater` varchar(64) NOT NULL COMMENT '更新者', `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除', PRIMARY KEY (`id`), KEY `idx_template_id` (`template_id`), CONSTRAINT `fk_express_template_charge_template_id` FOREIGN KEY (`template_id`) REFERENCES `tz_trade_delivery_express_template` (`id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT ='快递运费模板计费配置表'; -- 快递运费模板包邮配置表 (trade_delivery_express_template_free) CREATE TABLE `tz_trade_delivery_express_template_free` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号', `template_id` bigint(20) NOT NULL COMMENT '配送模板编号', `area_ids` varchar(512) NOT NULL COMMENT '配送区域编号列表', `free_price` int(11) DEFAULT NULL COMMENT '包邮金额,单位:分', `free_count` int(11) DEFAULT NULL COMMENT '包邮件数', `create_time` datetime NOT NULL COMMENT '创建时间', `update_time` datetime NOT NULL COMMENT '最后更新时间', `creator` varchar(64) NOT NULL COMMENT '创建者', `updater` varchar(64) NOT NULL COMMENT '更新者', `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除', PRIMARY KEY (`id`), KEY `idx_template_id` (`template_id`), CONSTRAINT `fk_express_template_free_template_id` FOREIGN KEY (`template_id`) REFERENCES `tz_trade_delivery_express_template` (`id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT ='快递运费模板包邮配置表'; -- 自提门店表 (trade_delivery_pick_up_store) CREATE TABLE `tz_trade_delivery_pick_up_store` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号', `name` varchar(128) NOT NULL COMMENT '门店名称', `introduction` varchar(512) DEFAULT NULL COMMENT '门店简介', `phone` varchar(20) NOT NULL COMMENT '门店手机', `area_id` int(11) NOT NULL COMMENT '区域编号', `detail_address` varchar(512) NOT NULL COMMENT '门店详细地址', `logo` varchar(512) DEFAULT NULL COMMENT '门店 logo', `opening_time` time NOT NULL COMMENT '营业开始时间', `closing_time` time NOT NULL COMMENT '营业结束时间', `latitude` double DEFAULT NULL COMMENT '纬度', `longitude` double DEFAULT NULL COMMENT '经度', `verify_user_ids` varchar(512) DEFAULT NULL COMMENT '核销员工用户编号数组', `status` tinyint(4) NOT NULL COMMENT '门店状态 (枚举 CommonStatusEnum)', `create_time` datetime NOT NULL COMMENT '创建时间', `update_time` datetime NOT NULL COMMENT '最后更新时间', `creator` varchar(64) NOT NULL COMMENT '创建者', `updater` varchar(64) NOT NULL COMMENT '更新者', `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除', PRIMARY KEY (`id`), KEY `idx_area_id` (`area_id`), KEY `idx_status` (`status`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT ='自提门店表'; -- 订单预约时间修改记录表 (tz_trade_sub_log) CREATE TABLE `tz_trade_sub_log` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号', `user_id` bigint(20) NOT NULL COMMENT '用户编号', `order_id` bigint(20) NOT NULL COMMENT '订单号', `sub_time` datetime NOT NULL COMMENT '预约时间', `create_time` datetime NOT NULL COMMENT '创建时间', `creator` varchar(64) NOT NULL COMMENT '创建者', `updater` varchar(64) NOT NULL COMMENT '更新者', `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除', PRIMARY KEY (`id`), KEY `idx_order_id` (`order_id`), KEY `idx_user_id` (`user_id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT ='订单预约时间修改记录表';