|
|
@@ -1,193 +0,0 @@
|
|
|
--- =============================================
|
|
|
--- DanShop 电商模块建表语句
|
|
|
--- 与 cfc-backend 共享 MySQL 数据库 (cfc)
|
|
|
--- 使用 danshop_ 前缀避免冲突
|
|
|
--- =============================================
|
|
|
-
|
|
|
--- 商品分类表(支持多级树形结构)
|
|
|
-CREATE TABLE IF NOT EXISTS danshop_categories (
|
|
|
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
- parent_id BIGINT DEFAULT NULL COMMENT '父分类ID(null=一级)',
|
|
|
- name VARCHAR(64) NOT NULL COMMENT '分类名称',
|
|
|
- image VARCHAR(512) DEFAULT NULL COMMENT '分类图标URL',
|
|
|
- sort_order INT DEFAULT 0 COMMENT '排序(越小越靠前)',
|
|
|
- energy_dimension_id BIGINT DEFAULT NULL COMMENT '关联五维维度ID(energy_dimension.id)',
|
|
|
- status INT DEFAULT 1 COMMENT '1启用/0禁用',
|
|
|
- created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
- updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
- INDEX idx_parent (parent_id),
|
|
|
- INDEX idx_status (status)
|
|
|
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品分类表';
|
|
|
-
|
|
|
--- 商品表
|
|
|
-CREATE TABLE IF NOT EXISTS danshop_products (
|
|
|
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
- category_id BIGINT NOT NULL COMMENT '所属分类ID',
|
|
|
- name VARCHAR(128) NOT NULL COMMENT '商品名称',
|
|
|
- description TEXT COMMENT '商品详细描述',
|
|
|
- cover_image VARCHAR(512) COMMENT '封面图URL',
|
|
|
- images TEXT COMMENT '多图(JSON数组)',
|
|
|
- price DECIMAL(10,2) NOT NULL COMMENT '售价(元)',
|
|
|
- member_price DECIMAL(10,2) DEFAULT NULL COMMENT '会员价',
|
|
|
- cost_price DECIMAL(10,2) DEFAULT NULL COMMENT '成本价(用于利润计算)',
|
|
|
- stock INT DEFAULT 0 COMMENT '库存数量',
|
|
|
- sales_count INT DEFAULT 0 COMMENT '销量',
|
|
|
- product_type VARCHAR(32) NOT NULL COMMENT '类型: physical/virtual/coupon/course',
|
|
|
- vendor_id BIGINT DEFAULT NULL COMMENT '供应商ID(users.id)',
|
|
|
- vendor_name VARCHAR(64) COMMENT '供应商名称',
|
|
|
- status VARCHAR(16) NOT NULL DEFAULT 'pending' COMMENT 'pending/approved/rejected/on_shelf/off_shelf',
|
|
|
- reject_reason VARCHAR(255) DEFAULT NULL COMMENT '审核拒绝原因',
|
|
|
- profit_rate DECIMAL(5,2) DEFAULT 0.00 COMMENT '平台利润率(%),例:30.00表示30%',
|
|
|
- external_source VARCHAR(32) COMMENT '外部商品来源(如: self, taobao, jd)',
|
|
|
- external_id VARCHAR(64) COMMENT '外部商品ID',
|
|
|
- external_data TEXT COMMENT '外部商品完整数据(JSON)',
|
|
|
- created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
- updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
- INDEX idx_category (category_id),
|
|
|
- INDEX idx_vendor (vendor_id),
|
|
|
- INDEX idx_status (status),
|
|
|
- INDEX idx_product_type (product_type)
|
|
|
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品表';
|
|
|
-
|
|
|
--- 主订单表
|
|
|
-CREATE TABLE IF NOT EXISTS danshop_orders (
|
|
|
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
- order_no VARCHAR(32) NOT NULL UNIQUE COMMENT '订单号(DS+时间戳+6位随机)',
|
|
|
- buyer_id BIGINT NOT NULL COMMENT '买家ID(users.id)',
|
|
|
- family_id BIGINT DEFAULT NULL COMMENT '家庭ID',
|
|
|
- total_amount DECIMAL(10,2) NOT NULL COMMENT '订单总金额(标价)',
|
|
|
- discount_amount DECIMAL(10,2) DEFAULT 0.00 COMMENT '优惠金额',
|
|
|
- actual_amount DECIMAL(10,2) NOT NULL COMMENT '实付金额',
|
|
|
- status VARCHAR(20) NOT NULL DEFAULT 'pending' COMMENT 'pending/paid/shipped/completed/refunding/refunded/cancelled',
|
|
|
- payment_method VARCHAR(16) DEFAULT 'wechat' COMMENT 'wechat/alipay',
|
|
|
- transaction_id VARCHAR(64) DEFAULT NULL COMMENT '微信/支付宝交易号',
|
|
|
- paid_at DATETIME DEFAULT NULL COMMENT '支付时间',
|
|
|
- shipped_at DATETIME DEFAULT NULL COMMENT '发货时间',
|
|
|
- completed_at DATETIME DEFAULT NULL COMMENT '完成时间',
|
|
|
- remark VARCHAR(255) DEFAULT NULL COMMENT '买家备注',
|
|
|
- cancel_reason VARCHAR(255) DEFAULT NULL COMMENT '取消原因',
|
|
|
- created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
- updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
- INDEX idx_buyer (buyer_id),
|
|
|
- INDEX idx_family (family_id),
|
|
|
- INDEX idx_status (status),
|
|
|
- INDEX idx_created (created_at),
|
|
|
- INDEX idx_order_no (order_no)
|
|
|
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='主订单表';
|
|
|
-
|
|
|
--- 订单明细表
|
|
|
-CREATE TABLE IF NOT EXISTS danshop_order_items (
|
|
|
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
- order_id BIGINT NOT NULL COMMENT '所属订单ID',
|
|
|
- product_id BIGINT NOT NULL COMMENT '商品ID',
|
|
|
- product_name VARCHAR(128) NOT NULL COMMENT '商品名称(快照)',
|
|
|
- cover_image VARCHAR(512) COMMENT '封面图(快照)',
|
|
|
- unit_price DECIMAL(10,2) NOT NULL COMMENT '单价(快照下单时价格)',
|
|
|
- quantity INT NOT NULL DEFAULT 1 COMMENT '购买数量',
|
|
|
- subtotal DECIMAL(10,2) NOT NULL COMMENT '小计(unit_price × quantity)',
|
|
|
- product_type VARCHAR(32) COMMENT '商品类型(快照)',
|
|
|
- vendor_id BIGINT COMMENT '供应商ID(快照)',
|
|
|
- vendor_name VARCHAR(64) COMMENT '供应商名称(快照)',
|
|
|
- created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
- INDEX idx_order (order_id),
|
|
|
- INDEX idx_product (product_id)
|
|
|
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单明细表';
|
|
|
-
|
|
|
--- 订单操作日志表
|
|
|
-CREATE TABLE IF NOT EXISTS danshop_order_logs (
|
|
|
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
- order_id BIGINT NOT NULL COMMENT '订单ID',
|
|
|
- action VARCHAR(32) NOT NULL COMMENT '操作: create/pay/ship/confirm/refund/cancel',
|
|
|
- operator_id BIGINT DEFAULT NULL COMMENT '操作人ID',
|
|
|
- operator_type VARCHAR(16) DEFAULT NULL COMMENT 'buyer/vendor/admin/system',
|
|
|
- detail TEXT DEFAULT NULL COMMENT '操作详情(JSON)',
|
|
|
- created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
- INDEX idx_order (order_id)
|
|
|
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单操作日志表';
|
|
|
-
|
|
|
--- 物流信息表
|
|
|
-CREATE TABLE IF NOT EXISTS danshop_logistics (
|
|
|
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
- order_id BIGINT NOT NULL COMMENT '订单ID',
|
|
|
- order_item_id BIGINT DEFAULT NULL COMMENT '订单明细ID(NULL表示整个订单一起发货)',
|
|
|
- logistics_no VARCHAR(64) NOT NULL COMMENT '物流单号',
|
|
|
- logistics_company VARCHAR(32) NOT NULL COMMENT '物流公司编码: sf/yto/zt/sto/yd/ttkd',
|
|
|
- logistics_name VARCHAR(32) DEFAULT NULL COMMENT '物流公司名称',
|
|
|
- sender_name VARCHAR(32) DEFAULT NULL COMMENT '发货人姓名',
|
|
|
- sender_phone VARCHAR(16) DEFAULT NULL COMMENT '发货人电话',
|
|
|
- sender_address VARCHAR(256) DEFAULT NULL COMMENT '发货人地址',
|
|
|
- receiver_name VARCHAR(32) NOT NULL COMMENT '收件人姓名',
|
|
|
- receiver_phone VARCHAR(16) NOT NULL COMMENT '收件人电话',
|
|
|
- receiver_address VARCHAR(256) NOT NULL COMMENT '收件人地址(省市区街道)',
|
|
|
- status VARCHAR(16) NOT NULL DEFAULT 'pending' COMMENT 'pending/shipped/signing/completed',
|
|
|
- tracking_data TEXT DEFAULT NULL COMMENT '物流轨迹(JSON数组 [{time, content, status}])',
|
|
|
- shipped_at DATETIME DEFAULT NULL COMMENT '发货时间',
|
|
|
- signed_at DATETIME DEFAULT NULL COMMENT '签收时间',
|
|
|
- created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
- updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
- INDEX idx_order (order_id),
|
|
|
- INDEX idx_logistics_no (logistics_no),
|
|
|
- INDEX idx_status (status)
|
|
|
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='物流信息表';
|
|
|
-
|
|
|
--- 分润规则配置表
|
|
|
-CREATE TABLE IF NOT EXISTS danshop_profit_rules (
|
|
|
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
- rule_name VARCHAR(64) NOT NULL COMMENT '规则名称',
|
|
|
- rule_type VARCHAR(32) NOT NULL COMMENT '规则类型: product_category/vendor_level/global',
|
|
|
- target_id BIGINT DEFAULT NULL COMMENT '关联目标ID(category_id/vendor_id/null=全局)',
|
|
|
- platform_profit_rate DECIMAL(5,2) NOT NULL COMMENT '平台利润率(%),例:30.00表示利润的30%归平台',
|
|
|
- referrer_l1_rate DECIMAL(5,2) DEFAULT 0.00 COMMENT '直接推荐人分润比例(占利润%)',
|
|
|
- referrer_l2_rate DECIMAL(5,2) DEFAULT 0.00 COMMENT '间接推荐人分润比例(占利润%,仅会员)',
|
|
|
- platform_service_rate DECIMAL(5,2) DEFAULT 0.00 COMMENT '平台服务费率(占订单金额%)',
|
|
|
- is_active INT DEFAULT 1 COMMENT '1启用/0禁用',
|
|
|
- created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
- updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
- INDEX idx_type (rule_type, target_id),
|
|
|
- INDEX idx_active (is_active)
|
|
|
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='分润规则配置表';
|
|
|
-
|
|
|
--- 分润流水表
|
|
|
-CREATE TABLE IF NOT EXISTS danshop_profit_logs (
|
|
|
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
- order_id BIGINT NOT NULL COMMENT '订单ID',
|
|
|
- order_no VARCHAR(32) NOT NULL COMMENT '订单号',
|
|
|
- order_amount DECIMAL(10,2) NOT NULL COMMENT '订单实付金额',
|
|
|
- cost_amount DECIMAL(10,2) DEFAULT 0.00 COMMENT '成本金额',
|
|
|
- profit_amount DECIMAL(10,2) NOT NULL COMMENT '利润金额(actual_amount - cost_price)',
|
|
|
- platform_retained DECIMAL(10,2) NOT NULL COMMENT '平台留存金额',
|
|
|
- vendor_income DECIMAL(10,2) NOT NULL COMMENT '供应商实收金额(cost_price)',
|
|
|
- commission_l1 DECIMAL(10,2) DEFAULT 0.00 COMMENT 'L1直接推荐人佣金',
|
|
|
- commission_l2 DECIMAL(10,2) DEFAULT 0.00 COMMENT 'L2间接推荐人佣金',
|
|
|
- rule_id BIGINT DEFAULT NULL COMMENT '使用的分润规则ID',
|
|
|
- created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
- INDEX idx_order (order_id),
|
|
|
- INDEX idx_order_no (order_no)
|
|
|
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='分润流水表';
|
|
|
-
|
|
|
--- 商品收藏表
|
|
|
-CREATE TABLE IF NOT EXISTS danshop_favorites (
|
|
|
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
- user_id BIGINT NOT NULL COMMENT '用户ID',
|
|
|
- product_id BIGINT NOT NULL COMMENT '商品ID',
|
|
|
- created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
- UNIQUE INDEX idx_user_product (user_id, product_id),
|
|
|
- INDEX idx_user (user_id)
|
|
|
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品收藏表';
|
|
|
-
|
|
|
--- 收货地址表
|
|
|
-CREATE TABLE IF NOT EXISTS danshop_addresses (
|
|
|
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
- user_id BIGINT NOT NULL COMMENT '用户ID',
|
|
|
- receiver_name VARCHAR(32) NOT NULL COMMENT '收货人姓名',
|
|
|
- phone VARCHAR(16) NOT NULL COMMENT '收货人电话',
|
|
|
- province VARCHAR(32) NOT NULL COMMENT '省份',
|
|
|
- city VARCHAR(32) NOT NULL COMMENT '城市',
|
|
|
- district VARCHAR(32) NOT NULL COMMENT '区县',
|
|
|
- street VARCHAR(256) NOT NULL COMMENT '详细地址(街道门牌)',
|
|
|
- is_default INT DEFAULT 0 COMMENT '是否默认地址 1=是 0=否',
|
|
|
- created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
- updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
- INDEX idx_user (user_id),
|
|
|
- INDEX idx_user_default (user_id, is_default)
|
|
|
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='收货地址表';
|