-- ----------------------------
-- Table structure for mall_goods_log
-- ----------------------------
DROP TABLE IF EXISTS `mall_goods_log`;
CREATE TABLE `mall_goods_log`  (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `goods_id` bigint NOT NULL COMMENT '商品ID',
  `operator_id` bigint NULL DEFAULT NULL COMMENT '操作人ID',
  `operator_content` json  NULL COMMENT '操作内容',
  `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
  `deleted` tinyint(1) 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 '更新时间',
  `create_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '创建人',
  `update_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '修改人',
  `tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '租户id',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `idx_goods_id`(`goods_id` ASC) USING BTREE,
  INDEX `idx_create_time`(`create_time` ASC) USING BTREE,
  INDEX `idx_operator_id`(`operator_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COMMENT = '商品操作日志表' ROW_FORMAT = Dynamic;


DROP TABLE IF EXISTS `mall_goods`;
CREATE TABLE `mall_goods`  (
  `id` int UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '记录唯一标识，自增主键',
  `category_id` int UNSIGNED NULL DEFAULT 0 COMMENT '商品所属分类的 ID，关联分类表',
  `collect_count` int NOT NULL DEFAULT 0 COMMENT '商品收藏数量',
  `goods_sn` varchar(60)  NULL DEFAULT '' COMMENT '商品的唯一编号',
  `name` varchar(120)  NOT NULL DEFAULT '' COMMENT '商品的名称',
  `brand_id` int UNSIGNED NULL DEFAULT 0 COMMENT '商品所属品牌的 ID，关联品牌表',
  `keywords` varchar(255)  NULL DEFAULT '' COMMENT '商品的关键词，用于搜索',
  `goods_brief` varchar(255)  NULL DEFAULT '' COMMENT '商品的简要描述',
  `goods_desc` text  NULL COMMENT '商品的详细描述',
  `add_time` datetime NULL DEFAULT NULL COMMENT '商品添加到系统的时间',
  `merchant_user_id` int NULL DEFAULT 0 COMMENT '商家用户ID（关联user表，标识商品归属商家）',
  `status` int NULL DEFAULT 0 COMMENT '商品的状态：0-待审核 1-审核通过，2：审核拒绝',
  `sort_order` smallint UNSIGNED NULL DEFAULT 100 COMMENT '商品在列表中的排序顺序',
  `price` int NOT NULL DEFAULT -1 COMMENT '商品价格，单位使用：分',
  `market_price` int NULL DEFAULT NULL COMMENT '市场价，单位使用：分',
  `cost_price` int NOT NULL DEFAULT -1 COMMENT '成本价，单位： 分',
  `primary_pic_url` varchar(255)  NULL DEFAULT NULL COMMENT '商品的主图片链接',
  `weight` int NULL DEFAULT NULL COMMENT '重量，单位g，用于物流发货 ',
  `spec_type` bit(1) NULL DEFAULT NULL COMMENT '规格类型：0 单规格 1 多规格',
  `stock` int NULL DEFAULT NULL COMMENT '库存',
  `goods_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '物品类型（对应订单主表物品类型）: bm000001 文件  bm000002 数码产品  bm000003 生活用品  bm000004 食品  bm000005 服饰  bm000006 其他  bm000007 生鲜类  bm000008 易碎品  bm000009 液体',
  `list_pic_url` varchar(255)  NULL DEFAULT NULL COMMENT '商品在列表中展示的图片链接',
  `retail_price` decimal(10, 2) UNSIGNED NULL DEFAULT 0.00 COMMENT '商品的零售价格',
  `sales_count` int UNSIGNED NULL DEFAULT 0 COMMENT '商品的销售数量',
  `virtual_sell_volume` int UNSIGNED NULL DEFAULT 0 COMMENT '虚拟销量',
  `browse_count` int UNSIGNED NULL DEFAULT 0 COMMENT '浏览量',
  `is_on_sale` tinyint UNSIGNED NULL DEFAULT 1 COMMENT '商品是否上架销售，1 表示上架，0 表示下架',
  `on_sale_time` datetime NULL DEFAULT NULL COMMENT '上架时间',
  `off_sale_time` datetime NULL DEFAULT NULL COMMENT '下架时间',
  `is_new` tinyint UNSIGNED NULL DEFAULT 0 COMMENT '商品是否为新品，1 表示是新品，0 表示不是',
  `is_app_exclusive` tinyint UNSIGNED NULL DEFAULT 0 COMMENT '商品是否为 APP 专属，1 表示是，0 表示不是',
  `is_limited` tinyint UNSIGNED NULL DEFAULT 0 COMMENT '商品是否为限量商品，1 表示是，0 表示不是',
  `is_featured_recommend` tinyint NULL DEFAULT 0 COMMENT '是否精品推荐：0-否 1-是',
  `is_special_offer` tinyint NULL DEFAULT 0 COMMENT '是否特价优惠：0-否 1-是',
  `is_hot` tinyint UNSIGNED NULL DEFAULT 0 COMMENT '商品是否为热门商品，1 表示是，0 表示不是',
  `delivery_type` int NULL DEFAULT NULL COMMENT '配送方式：0-商家发货 1-自提',
  `payment_mode` int NULL DEFAULT 0 COMMENT '支付模式：0-线上支付 1-线下支付',
  `is_virtual` int NULL DEFAULT 0 COMMENT '是否虚拟产品：0-否 1-是',
  `deleted` bit(1) NOT NULL COMMENT '逻辑删除标记(0-正常,1-已删除)',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  `create_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '创建人',
  `update_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '修改人',
  `tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT 'Default' COMMENT '租户id',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `idx_goods_sn`(`goods_sn` ASC) USING BTREE,
  INDEX `idx_category_id`(`category_id` ASC) USING BTREE,
  INDEX `idx_sort_order`(`sort_order` ASC) USING BTREE,
  INDEX `idx_name`(`name` ASC) USING BTREE COMMENT '商品名称'
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '商品主表'  ROW_FORMAT = Dynamic;

DROP TABLE IF EXISTS `mall_goods_specification`;
CREATE TABLE `mall_goods_specification`  (
  `id` int UNSIGNED NOT NULL AUTO_INCREMENT,
  `goods_id` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '商品id',
  `merchant_user_id` int NULL COMMENT '商户或个人的userid',
  `attributes` json NULL COMMENT '属性数组，JSON 格式 [{propertId: , valueId: }, {propertId: , valueId: }]',
  `pic_url` varchar(255)   NULL COMMENT '图片url',
  `price` int NOT NULL  COMMENT '商品价格，单位：分',
  `market_price` int NULL DEFAULT NULL COMMENT '市场价，单位：分',
  `cost_price` int NOT NULL  COMMENT '成本价，单位： 分',
  `bar_code` varchar(124) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT 'SKU 的条形码',
  `stock` int NULL DEFAULT NULL COMMENT '库存',
  `weight` double NULL DEFAULT NULL COMMENT '商品重量，单位：kg 千克',
  `volume` double NULL DEFAULT NULL COMMENT '商品体积，单位：m^3 平米',
  `deleted` bit(1) NOT NULL COMMENT '逻辑删除标记(0-正常,1-已删除)',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  `commission_type` tinyint NULL DEFAULT 0 COMMENT '抽成方式：0-无抽成，1-比例抽成，2-金额抽成',
  `commission_rate` decimal(5, 2) NULL DEFAULT NULL COMMENT '比例抽成：抽成百分比，如 5.00 表示 5%',
  `commission_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '金额抽成：固定抽成金额',
  `create_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '创建人',
  `update_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '修改人',
  `tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT 'Default' COMMENT '租户id',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `idx_goods_id`(`goods_id` ASC) USING BTREE COMMENT '商品ID',
  INDEX `idx_merchant_user_id`(`merchant_user_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COMMENT = '商品sku表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for mall_order
-- ----------------------------
DROP TABLE IF EXISTS `mall_order`;
CREATE TABLE `mall_order`  (
  `id` mediumint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '订单唯一标识',
  `order_sn` varchar(32)  NULL DEFAULT '' COMMENT '订单编号（唯一）',
  `user_id` mediumint UNSIGNED NULL DEFAULT 0 COMMENT '下单用户ID',
  `address_id` int NULL COMMENT '下单用户的收获地址Id',
  `order_status` int UNSIGNED NULL DEFAULT 0 COMMENT '订单状态（0-待付款，1-已付款，2-已发货，3-已完成，4-已取消）',
  `pay_status` tinyint UNSIGNED NULL DEFAULT 0 COMMENT '支付状态（0-未支付，1-已支付，2-支付失败）',
  `shipping_status` tinyint UNSIGNED NULL DEFAULT 0 COMMENT '物流状态（0-未发货，1-已发货，2-已签收）',
  `comment_status` bit(1) NOT NULL DEFAULT b'0' COMMENT '评价状态，1：已评价，0：为评价',
  `consignee` varchar(60)  NULL DEFAULT '' COMMENT '收货人姓名',
  `country` varchar(50)  NULL DEFAULT NULL COMMENT '国家',
  `province` varchar(50)  NULL DEFAULT NULL COMMENT '省份',
  `city` varchar(50)  NULL DEFAULT NULL COMMENT '城市',
  `district` varchar(50)  NULL DEFAULT NULL COMMENT '区/县',
  `address` varchar(500)  NULL DEFAULT '' COMMENT '详细地址',
  `mobile` varchar(60)  NULL DEFAULT '' COMMENT '联系电话',
  `pay_order_id` INT  NULL  COMMENT '支付订单ID',
  `pay_channel_code` varchar(120)  NULL DEFAULT '' COMMENT '支付渠道名称',
  `payment_mode` INT DEFAULT 0 COMMENT '支付模式：0-线上支付 1-线下支付',
  `integral` int UNSIGNED NULL DEFAULT 0 COMMENT '使用积分数量',
  `integral_money` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '积分抵扣金额',
  `actual_price` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '实际支付金额（已扣除优惠）',
  `order_price` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '订单总价（含运费）',
  `goods_price` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '商品总价',
  `add_time` datetime NULL DEFAULT NULL COMMENT '订单创建时间',
  `confirm_time` datetime NULL DEFAULT NULL COMMENT '用户确认收货时间',
  `pay_time` datetime NULL DEFAULT NULL COMMENT '支付时间',
  `delivery_time` datetime NULL DEFAULT NULL COMMENT '发货时间',
  `delivery_user_id` INT NULL DEFAULT 0 COMMENT '发货人ID',
  `logistics_code` varchar(20)  NULL DEFAULT NULL COMMENT '物流公司编码',
  `shipping_no` VARCHAR(64) DEFAULT NULL COMMENT '物流单号',
  `postscript` varchar(255)  NULL DEFAULT '' COMMENT '订单备注',
  `remark` varchar(500)  NULL DEFAULT NULL COMMENT '(后端使用)商家备注',
  `deleted` bit(1) NOT NULL COMMENT '逻辑删除标记(0-正常,1-已删除)',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `create_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '创建人',
  `update_time`datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  `update_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '修改人',
  `tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT 'Default'  COMMENT '租户id',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uq_order_sn`(`order_sn` ASC) USING BTREE COMMENT '订单编号唯一索引',
  INDEX `idx_user_id`(`user_id` ASC) USING BTREE COMMENT '用户ID索引',
  INDEX `idx_order_status`(`order_status` ASC) USING BTREE ,
  INDEX `idx_pay_status`(`pay_status` ASC) USING BTREE ,
  INDEX `idx_delivery_user_id`(`delivery_user_id` ASC) USING BTREE
) ENGINE = InnoDB  CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '商城订单主表' ROW_FORMAT = DYNAMIC;

DROP TABLE IF EXISTS `mall_order_child`;
CREATE TABLE `mall_order_child` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '子订单ID',
  `child_order_sn` VARCHAR(64) NOT NULL COMMENT '子订单编号',
  `parent_order_id` BIGINT NOT NULL COMMENT '关联父订单ID',
  `user_id` mediumint UNSIGNED NULL DEFAULT 0 COMMENT '下单用户ID',
  `address_id` int NULL COMMENT '下单用户的收获地址Id',
  `add_time` datetime NULL DEFAULT NULL COMMENT '订单创建时间',
  `merchant_user_id` BIGINT NULL COMMENT '商家ID',
  `actual_price` decimal(18, 2) NULL DEFAULT 0.00 COMMENT '子实际支付金额（已扣除优惠）',
  `order_price` decimal(18, 2) NULL DEFAULT 0.00 COMMENT '子订单总价',
  `goods_price` decimal(18, 2) NULL DEFAULT 0.00 COMMENT '子订单的商品总价',
  `cny_price` decimal(18, 2) NULL DEFAULT 0.00 COMMENT '转为RMB的价格',
  `pay_status` TINYINT NOT NULL DEFAULT 0 COMMENT '子订单支付状态：0-待支付，1-已支付，2-退款中，3-退款完成',
  `shipping_status` tinyint UNSIGNED NULL DEFAULT 0 COMMENT '物流状态（0-未发货，1-已发货，2-已签收）',
  `order_status` TINYINT NOT NULL DEFAULT 0 COMMENT '子订单状态',
  `delivery_time` datetime NULL DEFAULT NULL COMMENT '发货时间',
  `delivery_user_id` INT NULL DEFAULT 0 COMMENT '发货人ID',
  `weight` double  NULL DEFAULT NULL COMMENT '重量，单位kg，范围0.01-30 默认0.02）',
  `volume` double NOT NULL DEFAULT 0 COMMENT '商品体积，单位：m^3 平米',
  `logistics_code` varchar(20)  NULL DEFAULT NULL COMMENT '物流公司编码',
  `shipping_no` VARCHAR(64) DEFAULT NULL COMMENT '物流单号（子订单独立发货，对应一个物流单号）',
  `postscript` varchar(255)  NULL DEFAULT NULL COMMENT '下单用户备注',
  `remark` varchar(500)  NULL DEFAULT NULL COMMENT '(后端使用)商家备注',
  `confirm_time` DATETIME DEFAULT NULL COMMENT '确认收货时间',
  `pay_time` datetime NULL DEFAULT NULL COMMENT '支付时间',
  `consignee` varchar(60)  NULL DEFAULT NULL COMMENT '收货人姓名',
  `country` varchar(50)  NULL DEFAULT NULL COMMENT '国家',
  `province` varchar(50)  NULL DEFAULT NULL COMMENT '省份',
  `city` varchar(50)  NULL DEFAULT NULL COMMENT '城市',
  `district` varchar(50)  NULL DEFAULT NULL COMMENT '区/县',
  `address` varchar(500)  NULL DEFAULT NULL COMMENT '详细地址',
  `mobile` varchar(60)  NULL DEFAULT NULL COMMENT '联系电话',
  `deleted` bit(1) NOT NULL COMMENT '逻辑删除标记(0-正常,1-已删除)',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `create_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '创建人',
  `update_time`datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  `update_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '修改人',
  `tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT 'Default'  COMMENT '租户id',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_child_order_sn` (`child_order_sn`)  USING BTREE,
  KEY `idx_parent_order_id` (`parent_order_id`)  USING BTREE,
  KEY `idx_merchant_user_id` (`merchant_user_id`)  USING BTREE,
  KEY `idx_user_id` (`user_id`)  USING BTREE,
  KEY `idx_order_status` (`order_status`)  USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商城订单子表';

DROP TABLE IF EXISTS `mall_order_goods`;
CREATE TABLE `mall_order_goods`  (
  `id` mediumint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
  `order_id` mediumint UNSIGNED NOT NULL DEFAULT 0 COMMENT '订单Id',
  `child_order_id` BIGINT NULL COMMENT '关联子订单ID',
  `goods_id` mediumint UNSIGNED NOT NULL DEFAULT 0 COMMENT '商品id',
  `goods_name` varchar(120) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '' COMMENT '商品名称',
  `number` smallint UNSIGNED NOT NULL DEFAULT 1 COMMENT '商品数量',
  `cny_price` decimal(18, 2) NULL DEFAULT 0.00 COMMENT '转为RMB的价格',
  `price` decimal(18, 2) NOT NULL DEFAULT 0.00 COMMENT '商品价格',
  `sku_id` mediumint UNSIGNED NOT NULL DEFAULT 0 COMMENT '商品sku id',
  `cart_id` bigint UNSIGNED NULL DEFAULT NULL COMMENT '购物车项编号',
  `comment_status` bit(1) NOT NULL DEFAULT b'0' COMMENT '评价状态，1：已评价，0：为评价',
  `attributes` varchar(500)  NULL DEFAULT NULL COMMENT '商品sku 属性',
  `is_real` tinyint UNSIGNED NULL DEFAULT 0 COMMENT '虚拟商品',
  `pic_url` varchar(255) NULL DEFAULT '' COMMENT '图片链接',
  `deleted` bit(1) NOT NULL COMMENT '逻辑删除标记(0-正常,1-已删除)',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `create_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '创建人',
  `update_time`datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  `update_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT NULL COMMENT '修改人',
  `tenant_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_german2_ci NULL DEFAULT 'Default'  COMMENT '租户id',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `order_id`(`order_id` ASC) USING BTREE,
  INDEX `goods_id`(`goods_id` ASC) USING BTREE
) ENGINE = InnoDB  CHARSET = utf8mb4 COMMENT='商城订单sku表';

DROP TABLE IF EXISTS `mall_commission_record`;
CREATE TABLE `mall_commission_record` (
  `commission_id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '佣金记录ID（主键）',
  `order_id` BIGINT NOT NULL COMMENT '关联商城订单表order_info的order_id',
  `order_sn` VARCHAR(64) NOT NULL COMMENT '关联订单编号（冗余自order_info.order_sn）',
  `order_goods` json DEFAULT NULL COMMENT '订单商品简述（如“商品X(1件)+商品Y(2件)”，无需跨表查商品）',
  `order_create_time` DATETIME NOT NULL COMMENT '订单创建时间（冗余自mall_order.add_time，筛选异常订单）',
  `user_id` BIGINT NOT NULL COMMENT '佣金归属用户ID',
  `order_actual_price` DECIMAL(12,2) NOT NULL COMMENT '订单总金额（元，冗余自mall_order.actual_price）',
  `commission_rate` DECIMAL(5,2) NOT NULL COMMENT '佣金比例（%，如5.00=5%，按商品/商家类型配置）',
  `commission_amount` DECIMAL(12,2) NOT NULL COMMENT '佣金金额（元）= order_amount * commission_rate / 100',
  `settlement_status` TINYINT NOT NULL DEFAULT 0 COMMENT '结算状态：0-待结算，1-已结算，2-已取消（订单退款）',
  `settlement_time` DATETIME DEFAULT NULL COMMENT '结算时间（settlement_status=1时赋值，如订单完成7天后）',
  `cancel_reason` VARCHAR(255) DEFAULT NULL COMMENT '取消原因（settlement_status=2时填写，如“用户退款，佣金取消”）',
  `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '佣金生成时间（订单完成时间）',
  `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '佣金状态更新时间',
  PRIMARY KEY (`commission_id`),
  UNIQUE KEY `uk_order_id` (`order_id`) COMMENT '一个订单对应一条佣金记录，避免重复结算',
  KEY `idx_user_settlement` (`user_id`, `settlement_status`) COMMENT '按用户+结算状态查佣金（如查用户已结算佣金）',
  KEY `idx_settlement_time` (`settlement_time`) COMMENT '按结算时间对账（如查当月已结算佣金）'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='佣金结算记录表';