-- 1) 资金账户表(对应“账户余额:0元”) CREATE TABLE `hot_fund_account` ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', `company_id` BIGINT UNSIGNED NULL COMMENT '公司ID(应用层保证必填)', `user_id` BIGINT UNSIGNED NULL COMMENT '用户ID', `account_no` VARCHAR(32) NULL COMMENT '账户编号', `account_type` TINYINT NULL DEFAULT 1 COMMENT '账户类型:1=个人 2=企业', `balance_amount` DECIMAL(18, 2) NULL DEFAULT 0.00 COMMENT '可用余额', `status` TINYINT NULL DEFAULT 1 COMMENT '状态:1=正常 0=禁用', `version` INT NULL DEFAULT 0 COMMENT '乐观锁版本号', `create_dept` BIGINT NULL COMMENT '创建部门', `create_by` BIGINT NULL COMMENT '创建者', `create_by_name` VARCHAR(64) NULL COMMENT '创建者姓名', `create_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` BIGINT NULL COMMENT '更新者', `update_by_name` VARCHAR(64) NULL COMMENT '更新者姓名', `update_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `is_deleted` TINYINT NULL DEFAULT 0 COMMENT '0=正常, 1=已删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_account_no` (`account_no`), KEY `idx_company_id` (`company_id`), KEY `idx_user_id` (`user_id`), KEY `idx_company_user_del_status` (`company_id`, `user_id`, `is_deleted`, `status`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT ='资金账户表'; -- 2) 充值订单表(对应:指定充值金额 + 支付方式) CREATE TABLE `hot_fund_recharge_order` ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', `company_id` BIGINT UNSIGNED NULL COMMENT '公司ID(应用层保证必填)', `account_id` BIGINT UNSIGNED NULL COMMENT '账户ID(逻辑外键)', `user_id` BIGINT UNSIGNED NULL COMMENT '用户ID', `recharge_order_no` VARCHAR(32) NULL COMMENT '充值订单号', `recharge_amount` DECIMAL(18, 2) NULL COMMENT '充值金额(如5.00)', `pay_method` TINYINT NULL COMMENT '支付方式:1=微信 2=支付宝 3=银行卡', `pay_scene` TINYINT NULL DEFAULT 1 COMMENT '支付场景:1=H5 2=小程序 3=APP 4=PC', `pay_status` TINYINT NULL DEFAULT 1 COMMENT '支付状态:1=待支付 2=支付中 3=支付成功 4=支付失败 5=已关闭 6=已退款', `third_trade_no` VARCHAR(64) NULL COMMENT '三方支付流水号', `paid_time` DATETIME NULL COMMENT '支付成功时间', `fail_reason` VARCHAR(255) NULL COMMENT '失败原因', `remark` VARCHAR(255) NULL COMMENT '备注', `create_dept` BIGINT NULL COMMENT '创建部门', `create_by` BIGINT NULL COMMENT '创建者', `create_by_name` VARCHAR(64) NULL COMMENT '创建者姓名', `create_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` BIGINT NULL COMMENT '更新者', `update_by_name` VARCHAR(64) NULL COMMENT '更新者姓名', `update_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `is_deleted` TINYINT NULL DEFAULT 0 COMMENT '0=正常, 1=已删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_recharge_order_no` (`recharge_order_no`), KEY `idx_company_id` (`company_id`), KEY `idx_account_id` (`account_id`), KEY `idx_user_id` (`user_id`), KEY `idx_pay_status` (`pay_status`), KEY `idx_paid_time` (`paid_time`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT ='充值订单表'; -- 3) 订单管理表(对应列表:订单号/用户名/消费型企业/订单类型/产品名称/应付金额/退款金额/实付金额/支付方式/下单时间/支付时间/支付状态) CREATE TABLE `hot_fund_trade_order` ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', `company_id` BIGINT UNSIGNED NULL COMMENT '公司ID(应用层保证必填)', `account_id` BIGINT UNSIGNED NULL COMMENT '账户ID(逻辑外键)', `user_id` BIGINT UNSIGNED NULL COMMENT '用户ID', `user_name` VARCHAR(64) NULL COMMENT '用户名', `consumer_company_id` BIGINT UNSIGNED NULL COMMENT '消费型企业ID', `consumer_company_name` VARCHAR(128) NULL COMMENT '消费型企业名称', `order_no` VARCHAR(32) NULL COMMENT '订单号', `order_type` TINYINT NULL COMMENT '订单类型:1=拓客订单 2=学习订单 3=短信订单 4=岗前培训订单 5=其他', `biz_scene` TINYINT NULL COMMENT '业务场景:1=学时套餐 2=短信套餐 3=岗前培训套餐 4=岗前活动套餐 5=充值 6=其他', `product_name` VARCHAR(100) NULL COMMENT '产品名称', `package_id` BIGINT UNSIGNED NULL COMMENT '学时套餐ID', `package_name` VARCHAR(100) NULL COMMENT '学时套餐名称(快照)', `hour_type` TINYINT NULL COMMENT '学时类型:1=通用学时 2=其他', `hour_count` INT NULL COMMENT '学时数量(如1/50/100)', `sms_package_id` BIGINT UNSIGNED NULL COMMENT '短信套餐ID', `sms_package_name` VARCHAR(100) NULL COMMENT '短信套餐名称(快照)', `sms_count` INT NULL COMMENT '短信条数(如1000/3000/5000)', `pre_job_package_id` BIGINT UNSIGNED NULL COMMENT '岗前培训套餐ID', `pre_job_package_name` VARCHAR(100) NULL COMMENT '岗前培训套餐名称(快照)', `pre_job_activity_id` BIGINT UNSIGNED NULL COMMENT '岗前活动ID', `pre_job_activity_name` VARCHAR(100) NULL COMMENT '岗前活动名称(快照)', `unit_price` DECIMAL(18, 2) NULL COMMENT '单价(元)', `quantity` INT NULL DEFAULT 1 COMMENT '购买数量', `payable_amount` DECIMAL(18, 2) NULL COMMENT '应付金额(元)', `discount_amount` DECIMAL(18, 2) NULL DEFAULT 0.00 COMMENT '优惠金额(元)', `refund_amount` DECIMAL(18, 2) NULL DEFAULT 0.00 COMMENT '退款金额(元)', `paid_amount` DECIMAL(18, 2) NULL COMMENT '实付金额(元)', `pay_method` TINYINT NULL COMMENT '支付方式:1=微信 2=支付宝 3=银行卡 4=余额', `third_trade_no` VARCHAR(64) NULL COMMENT '三方支付流水号', `order_create_time` DATETIME NULL COMMENT '下单时间', `pay_time` DATETIME NULL COMMENT '支付时间', `pay_status` TINYINT NULL DEFAULT 1 COMMENT '支付状态:1=待支付 2=已支付 3=已退款 4=已取消 5=已关闭', `refund_status` TINYINT NULL DEFAULT 0 COMMENT '退款状态:0=无退款 1=退款中 2=部分退款 3=全额退款 4=退款失败', `refund_time` DATETIME NULL COMMENT '退款完成时间', `cancel_time` DATETIME NULL COMMENT '取消时间', `close_time` DATETIME NULL COMMENT '关闭时间', `contract_id` BIGINT UNSIGNED NULL COMMENT '合同ID', `contract_no` VARCHAR(64) NULL COMMENT '合同编号', `contract_status` TINYINT NULL COMMENT '合同状态:1=草稿 2=已签订 3=已生效 4=已终止 5=已作废', `contract_sign_time` DATETIME NULL COMMENT '合同签订时间', `order_source` VARCHAR(64) NULL COMMENT '订单来源(如渠道/来源ID)', `product_snapshot` TEXT NULL COMMENT '产品快照(JSON)', `remark` VARCHAR(255) NULL COMMENT '备注', `create_dept` BIGINT NULL COMMENT '创建部门', `create_by` BIGINT NULL COMMENT '创建者', `create_by_name` VARCHAR(64) NULL COMMENT '创建者姓名', `create_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` BIGINT NULL COMMENT '更新者', `update_by_name` VARCHAR(64) NULL COMMENT '更新者姓名', `update_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `is_deleted` TINYINT NULL DEFAULT 0 COMMENT '0=正常, 1=已删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_order_no` (`order_no`), KEY `idx_account_id` (`account_id`), KEY `idx_user_id` (`user_id`), KEY `idx_third_trade_no` (`third_trade_no`), KEY `idx_contract_no` (`contract_no`), KEY `idx_company_time_status` (`company_id`, `order_create_time`, `pay_status`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT ='订单管理表'; -- 4) 学时套餐表(对应页面:培训学时套餐配置) CREATE TABLE `hot_hour_package` ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', `company_id` BIGINT UNSIGNED NULL COMMENT '公司ID(应用层保证必填)', `package_code` VARCHAR(32) NULL COMMENT '套餐编码', `package_name` VARCHAR(100) NULL COMMENT '套餐名称', `hour_type` TINYINT NULL DEFAULT 1 COMMENT '学时类型:1=通用学时 2=其他', `hour_count` INT NULL COMMENT '学时数(如1/50/100)', `origin_price` DECIMAL(18, 2) NULL COMMENT '原价格(元)', `package_price` DECIMAL(18, 2) NULL COMMENT '套餐价格(元)', `unit_price` DECIMAL(18, 2) NULL COMMENT '单价(元)', `valid_start_time` DATETIME NULL COMMENT '活动有效开始时间', `valid_end_time` DATETIME NULL COMMENT '活动有效结束时间', `applicable_types` VARCHAR(255) NULL COMMENT '适用类型(多选),逗号拼接', `package_desc` VARCHAR(500) NULL COMMENT '套餐说明', `status` TINYINT NULL DEFAULT 1 COMMENT '状态:1=启用 0=停用', `sort_no` INT NULL DEFAULT 0 COMMENT '排序号', `remark` VARCHAR(255) NULL COMMENT '备注', `create_dept` BIGINT NULL COMMENT '创建部门', `create_by` BIGINT NULL COMMENT '创建者', `create_by_name` VARCHAR(64) NULL COMMENT '创建者姓名', `create_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` BIGINT NULL COMMENT '更新者', `update_by_name` VARCHAR(64) NULL COMMENT '更新者姓名', `update_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `is_deleted` TINYINT NULL DEFAULT 0 COMMENT '0=正常, 1=已删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_package_code` (`package_code`), KEY `idx_company_id` (`company_id`), KEY `idx_hour_type` (`hour_type`), KEY `idx_status` (`status`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT ='学时套餐表'; -- 5) 学时套餐购买记录表(对应页面下单动作) CREATE TABLE `hot_hour_package_purchase` ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', `company_id` BIGINT UNSIGNED NULL COMMENT '公司ID(应用层保证必填)', `account_id` BIGINT UNSIGNED NULL COMMENT '账户ID(逻辑外键)', `user_id` BIGINT UNSIGNED NULL COMMENT '用户ID', `order_id` BIGINT UNSIGNED NULL COMMENT '订单管理表ID(逻辑外键)', `order_no` VARCHAR(32) NULL COMMENT '订单号', `package_id` BIGINT UNSIGNED NULL COMMENT '学时套餐ID', `package_name` VARCHAR(100) NULL COMMENT '学时套餐名称(快照)', `hour_type` TINYINT NULL COMMENT '学时类型:1=通用学时 2=其他', `hour_count` INT NULL COMMENT '学时数', `origin_price` DECIMAL(18, 2) NULL COMMENT '原价格(元)', `package_price` DECIMAL(18, 2) NULL COMMENT '套餐价格(元)', `unit_price` DECIMAL(18, 2) NULL COMMENT '单价(元)', `quantity` INT NULL DEFAULT 1 COMMENT '购买数量', `total_hours` INT NULL COMMENT '总课时数', `total_amount` DECIMAL(18, 2) NULL COMMENT '总金额(元)', `pay_method` TINYINT NULL COMMENT '支付方式:1=微信 2=支付宝 3=银行卡 4=余额', `wallet_type` TINYINT NULL COMMENT '钱包类型:1=个人钱包 2=企业钱包', `wallet_id` BIGINT UNSIGNED NULL COMMENT '钱包ID', `wallet_transaction_id` BIGINT UNSIGNED NULL COMMENT '钱包流水ID', `wallet_transaction_no` VARCHAR(64) NULL COMMENT '钱包流水号', `pay_status` TINYINT NULL DEFAULT 1 COMMENT '支付状态:1=待支付 2=已支付 3=已退款 4=已取消 5=已关闭', `order_create_time` DATETIME NULL COMMENT '下单时间', `pay_time` DATETIME NULL COMMENT '支付时间', `package_snapshot` TEXT NULL COMMENT '套餐快照(JSON)', `remark` VARCHAR(255) NULL COMMENT '备注', `create_dept` BIGINT NULL COMMENT '创建部门', `create_by` BIGINT NULL COMMENT '创建者', `create_by_name` VARCHAR(64) NULL COMMENT '创建者姓名', `create_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` BIGINT NULL COMMENT '更新者', `update_by_name` VARCHAR(64) NULL COMMENT '更新者姓名', `update_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `is_deleted` TINYINT NULL DEFAULT 0 COMMENT '0=正常, 1=已删除', PRIMARY KEY (`id`), KEY `idx_company_id` (`company_id`), KEY `idx_account_id` (`account_id`), KEY `idx_user_id` (`user_id`), KEY `idx_order_id` (`order_id`), KEY `idx_order_no` (`order_no`), KEY `idx_package_id` (`package_id`), KEY `idx_wallet_id` (`wallet_id`), KEY `idx_wallet_transaction_id` (`wallet_transaction_id`), KEY `idx_pay_status` (`pay_status`), KEY `idx_order_create_time` (`order_create_time`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT ='学时套餐购买记录表'; -- 6) 短信套餐表(对应页面:短信套餐配置) CREATE TABLE `hot_sms_package` ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', `company_id` BIGINT UNSIGNED NULL COMMENT '公司ID(应用层保证必填)', `package_code` VARCHAR(32) NULL COMMENT '套餐编码', `package_name` VARCHAR(100) NULL COMMENT '套餐名称', `sms_count` INT NULL COMMENT '短信条数(如1000/3000/5000)', `package_price` DECIMAL(18, 2) NULL COMMENT '套餐价(元)', `unit_price` DECIMAL(18, 4) NULL COMMENT '单条单价(元)', `status` TINYINT NULL DEFAULT 1 COMMENT '状态:1=启用 0=停用', `sort_no` INT NULL DEFAULT 0 COMMENT '排序号', `remark` VARCHAR(255) NULL COMMENT '备注', `create_dept` BIGINT NULL COMMENT '创建部门', `create_by` BIGINT NULL COMMENT '创建者', `create_by_name` VARCHAR(64) NULL COMMENT '创建者姓名', `create_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` BIGINT NULL COMMENT '更新者', `update_by_name` VARCHAR(64) NULL COMMENT '更新者姓名', `update_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `is_deleted` TINYINT NULL DEFAULT 0 COMMENT '0=正常, 1=已删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_package_code` (`package_code`), KEY `idx_company_id` (`company_id`), KEY `idx_status` (`status`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT ='短信套餐表'; -- 7) 短信套餐购买记录表(对应页面下单动作) CREATE TABLE `hot_sms_package_purchase` ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', `company_id` BIGINT UNSIGNED NULL COMMENT '公司ID(应用层保证必填)', `account_id` BIGINT UNSIGNED NULL COMMENT '账户ID(逻辑外键)', `user_id` BIGINT UNSIGNED NULL COMMENT '用户ID', `consumer_company_id` BIGINT UNSIGNED NULL COMMENT '充值企业ID', `consumer_company_name` VARCHAR(128) NULL COMMENT '充值企业名称', `order_id` BIGINT UNSIGNED NULL COMMENT '订单管理表ID(逻辑外键)', `order_no` VARCHAR(32) NULL COMMENT '订单号', `package_id` BIGINT UNSIGNED NULL COMMENT '短信套餐ID', `package_name` VARCHAR(100) NULL COMMENT '短信套餐名称(快照)', `sms_count` INT NULL COMMENT '短信条数', `unit_price` DECIMAL(18, 4) NULL COMMENT '单条单价(元)', `quantity` INT NULL DEFAULT 1 COMMENT '购买数量', `total_amount` DECIMAL(18, 2) NULL COMMENT '总金额(元)', `pay_method` TINYINT NULL COMMENT '支付方式:1=微信 2=支付宝 3=银行卡 4=余额', `pay_status` TINYINT NULL DEFAULT 1 COMMENT '支付状态:1=待支付 2=已支付 3=已退款 4=已取消 5=已关闭', `order_create_time` DATETIME NULL COMMENT '下单时间', `pay_time` DATETIME NULL COMMENT '支付时间', `remark` VARCHAR(255) NULL COMMENT '备注', `create_dept` BIGINT NULL COMMENT '创建部门', `create_by` BIGINT NULL COMMENT '创建者', `create_by_name` VARCHAR(64) NULL COMMENT '创建者姓名', `create_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` BIGINT NULL COMMENT '更新者', `update_by_name` VARCHAR(64) NULL COMMENT '更新者姓名', `update_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `is_deleted` TINYINT NULL DEFAULT 0 COMMENT '0=正常, 1=已删除', PRIMARY KEY (`id`), KEY `idx_company_id` (`company_id`), KEY `idx_account_id` (`account_id`), KEY `idx_user_id` (`user_id`), KEY `idx_consumer_company_id` (`consumer_company_id`), KEY `idx_order_id` (`order_id`), KEY `idx_order_no` (`order_no`), KEY `idx_package_id` (`package_id`), KEY `idx_pay_status` (`pay_status`), KEY `idx_order_create_time` (`order_create_time`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT ='短信套餐购买记录表'; -- 8) 岗前培训套餐表(对应页面:岗前培训套餐配置) CREATE TABLE `hot_pre_job_package` ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', `company_id` BIGINT UNSIGNED NULL COMMENT '公司ID(应用层保证必填)', `package_code` VARCHAR(32) NULL COMMENT '套餐编码', `package_name` VARCHAR(100) NULL COMMENT '套餐名称', `package_content` VARCHAR(255) NULL COMMENT '套餐内容', `package_type` TINYINT NULL DEFAULT 1 COMMENT '套餐类型:1=常规套餐 2=活动套餐', `activity_id` BIGINT UNSIGNED NULL COMMENT '活动ID', `activity_name` VARCHAR(100) NULL COMMENT '活动名称', `origin_price` DECIMAL(18, 2) NULL COMMENT '原价(元)', `activity_price` DECIMAL(18, 2) NULL COMMENT '活动价(元)', `unit_price` DECIMAL(18, 2) NULL COMMENT '生效单价(元)', `valid_start_time` DATETIME NULL COMMENT '活动有效开始时间', `valid_end_time` DATETIME NULL COMMENT '活动有效结束时间', `status` TINYINT NULL DEFAULT 1 COMMENT '状态:1=启用 0=停用', `sort_no` INT NULL DEFAULT 0 COMMENT '排序号', `remark` VARCHAR(255) NULL COMMENT '备注', `create_dept` BIGINT NULL COMMENT '创建部门', `create_by` BIGINT NULL COMMENT '创建者', `create_by_name` VARCHAR(64) NULL COMMENT '创建者姓名', `create_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` BIGINT NULL COMMENT '更新者', `update_by_name` VARCHAR(64) NULL COMMENT '更新者姓名', `update_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `is_deleted` TINYINT NULL DEFAULT 0 COMMENT '0=正常, 1=已删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_package_code` (`package_code`), KEY `idx_company_id` (`company_id`), KEY `idx_package_type` (`package_type`), KEY `idx_activity_id` (`activity_id`), KEY `idx_status` (`status`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT ='岗前培训套餐表'; -- 9) 岗前培训套餐购买记录表(对应页面下单动作) CREATE TABLE `hot_pre_job_package_purchase` ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', `company_id` BIGINT UNSIGNED NULL COMMENT '公司ID(应用层保证必填)', `account_id` BIGINT UNSIGNED NULL COMMENT '账户ID(逻辑外键)', `user_id` BIGINT UNSIGNED NULL COMMENT '用户ID', `consumer_company_id` BIGINT UNSIGNED NULL COMMENT '消费型企业ID', `consumer_company_name` VARCHAR(128) NULL COMMENT '消费型企业名称', `order_id` BIGINT UNSIGNED NULL COMMENT '订单管理表ID(逻辑外键)', `order_no` VARCHAR(32) NULL COMMENT '订单号', `package_id` BIGINT UNSIGNED NULL COMMENT '岗前培训套餐ID', `package_name` VARCHAR(100) NULL COMMENT '岗前培训套餐名称(快照)', `package_content` VARCHAR(255) NULL COMMENT '套餐内容(快照)', `package_type` TINYINT NULL COMMENT '套餐类型:1=常规套餐 2=活动套餐', `activity_id` BIGINT UNSIGNED NULL COMMENT '活动ID', `activity_name` VARCHAR(100) NULL COMMENT '活动名称(快照)', `origin_price` DECIMAL(18, 2) NULL COMMENT '原价(元)', `activity_price` DECIMAL(18, 2) NULL COMMENT '活动价(元)', `unit_price` DECIMAL(18, 2) NULL COMMENT '成交单价(元)', `quantity` INT NULL DEFAULT 1 COMMENT '购买数量', `total_amount` DECIMAL(18, 2) NULL COMMENT '总金额(元)', `pay_method` TINYINT NULL COMMENT '支付方式:1=微信 2=支付宝 3=银行卡 4=余额', `pay_status` TINYINT NULL DEFAULT 1 COMMENT '支付状态:1=待支付 2=已支付 3=已退款 4=已取消 5=已关闭', `order_create_time` DATETIME NULL COMMENT '下单时间', `pay_time` DATETIME NULL COMMENT '支付时间', `remark` VARCHAR(255) NULL COMMENT '备注', `create_dept` BIGINT NULL COMMENT '创建部门', `create_by` BIGINT NULL COMMENT '创建者', `create_by_name` VARCHAR(64) NULL COMMENT '创建者姓名', `create_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` BIGINT NULL COMMENT '更新者', `update_by_name` VARCHAR(64) NULL COMMENT '更新者姓名', `update_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `is_deleted` TINYINT NULL DEFAULT 0 COMMENT '0=正常, 1=已删除', PRIMARY KEY (`id`), KEY `idx_company_id` (`company_id`), KEY `idx_account_id` (`account_id`), KEY `idx_user_id` (`user_id`), KEY `idx_consumer_company_id` (`consumer_company_id`), KEY `idx_order_id` (`order_id`), KEY `idx_order_no` (`order_no`), KEY `idx_package_id` (`package_id`), KEY `idx_activity_id` (`activity_id`), KEY `idx_pay_status` (`pay_status`), KEY `idx_order_create_time` (`order_create_time`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT ='岗前培训套餐购买记录表'; -- 10) 合同管理表(数据来源:支付时签订的协议) CREATE TABLE `hot_contract_manage` ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', `company_id` BIGINT UNSIGNED NULL COMMENT '公司ID(应用层保证必填)', `contract_no` VARCHAR(64) NULL COMMENT '合同编号', `contract_name` VARCHAR(128) NULL COMMENT '合同名称', `contract_amount` DECIMAL(18, 2) NULL COMMENT '合同金额(元)', `party_a_name` VARCHAR(128) NULL COMMENT '甲方名称', `party_b_name` VARCHAR(128) NULL COMMENT '乙方名称', `party_b_owner` VARCHAR(64) NULL COMMENT '乙方责任人', `contact_phone` VARCHAR(32) NULL COMMENT '联系电话', `contract_sign_time` DATETIME NULL COMMENT '合同签订时间', `contract_effective_time` DATETIME NULL COMMENT '合同生效时间', `contract_expire_time` DATETIME NULL COMMENT '合同到期时间', `contract_status` TINYINT NULL DEFAULT 2 COMMENT '合同状态:1=草稿 2=已签订 3=已生效 4=已终止 5=已作废', `sign_channel` TINYINT NULL COMMENT '签约渠道:1=微信 2=支付宝 3=银行卡 4=余额 5=线下', `agreement_url` VARCHAR(1024) NULL COMMENT '协议文件URL', `source_order_id` BIGINT UNSIGNED NULL COMMENT '来源订单ID(支付订单)', `source_order_no` VARCHAR(32) NULL COMMENT '来源订单号(支付订单)', `remark` VARCHAR(255) NULL COMMENT '备注', `create_dept` BIGINT NULL COMMENT '创建部门', `create_by` BIGINT NULL COMMENT '创建者', `create_by_name` VARCHAR(64) NULL COMMENT '创建者姓名', `create_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` BIGINT NULL COMMENT '更新者', `update_by_name` VARCHAR(64) NULL COMMENT '更新者姓名', `update_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `is_deleted` TINYINT NULL DEFAULT 0 COMMENT '0=正常, 1=已删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_contract_no` (`contract_no`), KEY `idx_company_id` (`company_id`), KEY `idx_party_b_name` (`party_b_name`), KEY `idx_contract_status` (`contract_status`), KEY `idx_contract_expire_time` (`contract_expire_time`), KEY `idx_source_order_id` (`source_order_id`), KEY `idx_source_order_no` (`source_order_no`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT ='合同管理表'; -- 11) 培训学时购买明细表(对应页面:套餐名称/适用类型/购买人/购买数量/已使用/剩余) CREATE TABLE `hot_hour_purchase_detail` ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', `company_id` BIGINT UNSIGNED NULL COMMENT '公司ID(应用层保证必填)', `account_id` BIGINT UNSIGNED NULL COMMENT '账户ID(逻辑外键)', `user_id` BIGINT UNSIGNED NULL COMMENT '用户ID', `buyer_name` VARCHAR(64) NULL COMMENT '购买人', `buyer_company_id` BIGINT UNSIGNED NULL COMMENT '购买企业ID', `buyer_company_name` VARCHAR(128) NULL COMMENT '购买企业名称', `purchase_id` BIGINT UNSIGNED NULL COMMENT '学时套餐购买记录ID', `order_id` BIGINT UNSIGNED NULL COMMENT '订单管理表ID(逻辑外键)', `order_no` VARCHAR(32) NULL COMMENT '订单号', `package_id` BIGINT UNSIGNED NULL COMMENT '学时套餐ID', `package_name` VARCHAR(100) NULL COMMENT '套餐名称(快照)', `applicable_types` VARCHAR(255) NULL COMMENT '适用类型(如日常培训、事故培训等)', `purchase_count` INT NULL DEFAULT 1 COMMENT '购买数量', `total_hours` INT NULL COMMENT '总课时数', `used_hours` INT NULL DEFAULT 0 COMMENT '已使用学时数', `remaining_hours` INT NULL COMMENT '剩余学时数', `wallet_type` TINYINT NULL COMMENT '钱包类型:1=个人钱包 2=企业钱包', `wallet_id` BIGINT UNSIGNED NULL COMMENT '钱包ID', `version` INT NULL DEFAULT 0 COMMENT '乐观锁版本号', `status` TINYINT NULL DEFAULT 1 COMMENT '状态:1=生效 2=已用完 3=已过期 4=已作废', `last_use_time` DATETIME NULL COMMENT '最近使用时间', `expire_time` DATETIME NULL COMMENT '到期时间', `remark` VARCHAR(255) NULL COMMENT '备注', `create_dept` BIGINT NULL COMMENT '创建部门', `create_by` BIGINT NULL COMMENT '创建者', `create_by_name` VARCHAR(64) NULL COMMENT '创建者姓名', `create_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` BIGINT NULL COMMENT '更新者', `update_by_name` VARCHAR(64) NULL COMMENT '更新者姓名', `update_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `is_deleted` TINYINT NULL DEFAULT 0 COMMENT '0=正常, 1=已删除', PRIMARY KEY (`id`), KEY `idx_company_id` (`company_id`), KEY `idx_account_id` (`account_id`), KEY `idx_user_id` (`user_id`), KEY `idx_order_id` (`order_id`), KEY `idx_order_no` (`order_no`), KEY `idx_purchase_id` (`purchase_id`), KEY `idx_package_id` (`package_id`), KEY `idx_wallet_id` (`wallet_id`), KEY `idx_status` (`status`), KEY `idx_expire_time` (`expire_time`), KEY `idx_remaining_hours` (`remaining_hours`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT ='培训学时购买明细表'; -- 12) 培训学时使用明细表(对应页面:使用人员/使用类型/套餐名称/使用学时数量/使用日期) CREATE TABLE `hot_hour_usage_detail` ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', `company_id` BIGINT UNSIGNED NULL COMMENT '公司ID(应用层保证必填)', `purchase_detail_id` BIGINT UNSIGNED NULL COMMENT '购买明细ID(逻辑外键)', `account_id` BIGINT UNSIGNED NULL COMMENT '账户ID(逻辑外键)', `user_id` BIGINT UNSIGNED NULL COMMENT '使用人员ID', `user_name` VARCHAR(64) NULL COMMENT '使用人员', `operator_id` BIGINT UNSIGNED NULL COMMENT '操作人ID', `operator_name` VARCHAR(64) NULL COMMENT '操作人', `use_type` VARCHAR(64) NULL COMMENT '使用类型(如日常培训/违章培训)', `package_id` BIGINT UNSIGNED NULL COMMENT '套餐ID', `package_name` VARCHAR(100) NULL COMMENT '套餐名称(快照)', `used_hours` INT NULL COMMENT '使用学时数量(正数存储,展示可加负号)', `before_remaining_hours` INT NULL COMMENT '扣减前剩余学时', `after_remaining_hours` INT NULL COMMENT '扣减后剩余学时', `remaining_hours` INT NULL COMMENT '使用后剩余学时', `use_date` DATE NULL COMMENT '使用日期', `biz_order_id` BIGINT UNSIGNED NULL COMMENT '业务单据ID', `biz_order_no` VARCHAR(32) NULL COMMENT '业务单号', `remark` VARCHAR(255) NULL COMMENT '备注', `create_dept` BIGINT NULL COMMENT '创建部门', `create_by` BIGINT NULL COMMENT '创建者', `create_by_name` VARCHAR(64) NULL COMMENT '创建者姓名', `create_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` BIGINT NULL COMMENT '更新者', `update_by_name` VARCHAR(64) NULL COMMENT '更新者姓名', `update_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `is_deleted` TINYINT NULL DEFAULT 0 COMMENT '0=正常, 1=已删除', PRIMARY KEY (`id`), KEY `idx_company_id` (`company_id`), KEY `idx_purchase_detail_id` (`purchase_detail_id`), KEY `idx_account_id` (`account_id`), KEY `idx_user_id` (`user_id`), KEY `idx_operator_id` (`operator_id`), KEY `idx_package_id` (`package_id`), KEY `idx_use_type` (`use_type`), KEY `idx_use_date` (`use_date`), KEY `idx_biz_order_no` (`biz_order_no`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT ='培训学时使用明细表'; -- 13) 短信企业统计表(对应页面:企业名称/总充值条数/总发送条数/总成功到达量/总计费量/总充值金额/剩余短信) CREATE TABLE `hot_sms_company_stat` ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', `company_id` BIGINT UNSIGNED NULL COMMENT '公司ID(应用层保证必填)', `enterprise_id` BIGINT UNSIGNED NULL COMMENT '企业ID', `enterprise_name` VARCHAR(128) NULL COMMENT '企业名称', `total_recharge_count` INT NULL DEFAULT 0 COMMENT '总充值条数', `total_send_count` INT NULL DEFAULT 0 COMMENT '总发送条数', `total_success_count` INT NULL DEFAULT 0 COMMENT '总成功到达量', `total_billable_count` INT NULL DEFAULT 0 COMMENT '总计费量', `total_recharge_amount` DECIMAL(18, 2) NULL DEFAULT 0.00 COMMENT '总充值金额(元)', `remaining_sms_count` INT NULL DEFAULT 0 COMMENT '剩余短信', `last_stat_time` DATETIME NULL COMMENT '最近统计时间', `remark` VARCHAR(255) NULL COMMENT '备注', `create_dept` BIGINT NULL COMMENT '创建部门', `create_by` BIGINT NULL COMMENT '创建者', `create_by_name` VARCHAR(64) NULL COMMENT '创建者姓名', `create_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` BIGINT NULL COMMENT '更新者', `update_by_name` VARCHAR(64) NULL COMMENT '更新者姓名', `update_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `is_deleted` TINYINT NULL DEFAULT 0 COMMENT '0=正常, 1=已删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_enterprise_id` (`enterprise_id`), KEY `idx_company_id` (`company_id`), KEY `idx_enterprise_name` (`enterprise_name`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT ='短信企业统计表'; -- 14) 短信按日统计表(对应页面:日期/总发送量/成功到达量/计费量) CREATE TABLE `hot_sms_daily_stat` ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', `company_id` BIGINT UNSIGNED NULL COMMENT '公司ID(应用层保证必填)', `enterprise_id` BIGINT UNSIGNED NULL COMMENT '企业ID', `enterprise_name` VARCHAR(128) NULL COMMENT '企业名称', `stat_date` DATE NULL COMMENT '统计日期', `total_send_count` INT NULL DEFAULT 0 COMMENT '总发送量', `success_count` INT NULL DEFAULT 0 COMMENT '成功到达量', `billable_count` INT NULL DEFAULT 0 COMMENT '计费量', `fail_count` INT NULL DEFAULT 0 COMMENT '失败量', `remark` VARCHAR(255) NULL COMMENT '备注', `create_dept` BIGINT NULL COMMENT '创建部门', `create_by` BIGINT NULL COMMENT '创建者', `create_by_name` VARCHAR(64) NULL COMMENT '创建者姓名', `create_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` BIGINT NULL COMMENT '更新者', `update_by_name` VARCHAR(64) NULL COMMENT '更新者姓名', `update_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `is_deleted` TINYINT NULL DEFAULT 0 COMMENT '0=正常, 1=已删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_enterprise_stat_date` (`enterprise_id`, `stat_date`), KEY `idx_company_id` (`company_id`), KEY `idx_stat_date` (`stat_date`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT ='短信按日统计表'; -- 15) 短信充值记录表(对应页面:充值时间/充值企业/充值金额/充值条数/过期时间/操作人) CREATE TABLE `hot_sms_recharge_record` ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', `company_id` BIGINT UNSIGNED NULL COMMENT '公司ID(应用层保证必填)', `enterprise_id` BIGINT UNSIGNED NULL COMMENT '充值企业ID', `enterprise_name` VARCHAR(128) NULL COMMENT '充值企业', `recharge_order_id` BIGINT UNSIGNED NULL COMMENT '短信购买记录ID(逻辑外键)', `recharge_order_no` VARCHAR(32) NULL COMMENT '充值订单号', `recharge_time` DATETIME NULL COMMENT '充值时间', `recharge_amount` DECIMAL(18, 2) NULL COMMENT '充值金额(元)', `recharge_sms_count` INT NULL COMMENT '充值条数', `expire_time` DATETIME NULL COMMENT '过期时间', `operator_id` BIGINT UNSIGNED NULL COMMENT '操作人ID', `operator_name` VARCHAR(64) NULL COMMENT '操作人', `status` TINYINT NULL DEFAULT 1 COMMENT '状态:1=生效 2=已过期 3=已作废', `remark` VARCHAR(255) NULL COMMENT '备注', `create_dept` BIGINT NULL COMMENT '创建部门', `create_by` BIGINT NULL COMMENT '创建者', `create_by_name` VARCHAR(64) NULL COMMENT '创建者姓名', `create_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` BIGINT NULL COMMENT '更新者', `update_by_name` VARCHAR(64) NULL COMMENT '更新者姓名', `update_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `is_deleted` TINYINT NULL DEFAULT 0 COMMENT '0=正常, 1=已删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_recharge_order_no` (`recharge_order_no`), KEY `idx_company_id` (`company_id`), KEY `idx_enterprise_id` (`enterprise_id`), KEY `idx_recharge_time` (`recharge_time`), KEY `idx_expire_time` (`expire_time`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT ='短信充值记录表'; -- 16) 短信发送明细表(对应页面:短信类型/姓名/手机号/岗位/是否收到/详情) CREATE TABLE `hot_sms_send_detail` ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', `company_id` BIGINT UNSIGNED NULL COMMENT '公司ID(应用层保证必填)', `enterprise_id` BIGINT UNSIGNED NULL COMMENT '企业ID', `enterprise_name` VARCHAR(128) NULL COMMENT '企业名称', `biz_type` VARCHAR(64) NULL COMMENT '所属类型(如驾驶员管理)', `sms_type` VARCHAR(64) NULL COMMENT '短信类型', `receiver_id` BIGINT UNSIGNED NULL COMMENT '接收人ID', `receiver_name` VARCHAR(64) NULL COMMENT '姓名', `mobile` VARCHAR(32) NULL COMMENT '手机号', `receiver_role` VARCHAR(64) NULL COMMENT '岗位/接收人类型', `notice_content` TEXT NULL COMMENT '通知内容', `notify_time` DATETIME NULL COMMENT '通知时间', `notify_status` TINYINT NULL DEFAULT 1 COMMENT '通知状态:1=待发送 2=已发送 3=发送失败', `is_received` TINYINT NULL DEFAULT 0 COMMENT '是否收到:0=否 1=是', `receive_time` DATETIME NULL COMMENT '收到时间', `send_channel` TINYINT NULL DEFAULT 1 COMMENT '发送渠道:1=短信 2=站内信', `sms_count` INT NULL DEFAULT 1 COMMENT '消耗短信条数', `billable_count` INT NULL DEFAULT 1 COMMENT '计费条数', `provider_msg_id` VARCHAR(64) NULL COMMENT '供应商消息ID', `remark` VARCHAR(255) NULL COMMENT '备注', `create_dept` BIGINT NULL COMMENT '创建部门', `create_by` BIGINT NULL COMMENT '创建者', `create_by_name` VARCHAR(64) NULL COMMENT '创建者姓名', `create_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` BIGINT NULL COMMENT '更新者', `update_by_name` VARCHAR(64) NULL COMMENT '更新者姓名', `update_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `is_deleted` TINYINT NULL DEFAULT 0 COMMENT '0=正常, 1=已删除', PRIMARY KEY (`id`), KEY `idx_company_id` (`company_id`), KEY `idx_enterprise_id` (`enterprise_id`), KEY `idx_receiver_id` (`receiver_id`), KEY `idx_mobile` (`mobile`), KEY `idx_sms_type` (`sms_type`), KEY `idx_notify_time` (`notify_time`), KEY `idx_is_received` (`is_received`), KEY `idx_notify_status` (`notify_status`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT ='短信发送明细表'; -- 17) 发票管理表(对应页面:订单号/购买者/订单类型/订单金额/支付方式/开票状态/开票时间) CREATE TABLE `hot_invoice_manage` ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', `company_id` BIGINT UNSIGNED NULL COMMENT '公司ID(应用层保证必填)', `order_id` BIGINT UNSIGNED NULL COMMENT '订单ID(逻辑外键)', `order_no` VARCHAR(32) NULL COMMENT '订单号', `buyer_company_id` BIGINT UNSIGNED NULL COMMENT '购买者企业ID', `buyer_company_name` VARCHAR(128) NULL COMMENT '购买者(企业名称)', `order_type` TINYINT NULL COMMENT '订单类型:1=拓客订单 2=学习订单 3=短信订单 4=岗前培训订单 5=其他', `order_amount` DECIMAL(18, 2) NULL COMMENT '订单金额(元)', `pay_method` TINYINT NULL COMMENT '支付方式:1=微信 2=支付宝 3=银行卡 4=余额', `pay_time` DATETIME NULL COMMENT '支付时间', `invoice_amount` DECIMAL(18, 2) NULL COMMENT '开票金额(元)', `invoice_type` TINYINT NULL COMMENT '发票类型:1=增值税电子普通发票 2=增值税电子专用发票', `invoice_title` VARCHAR(200) NULL COMMENT '发票抬头', `tax_no` VARCHAR(64) NULL COMMENT '税号', `bank_name` VARCHAR(100) NULL COMMENT '开户银行', `bank_account` VARCHAR(64) NULL COMMENT '银行账号', `company_address` VARCHAR(255) NULL COMMENT '企业地址', `company_phone` VARCHAR(32) NULL COMMENT '企业电话', `invoice_status` TINYINT NULL DEFAULT 1 COMMENT '开票状态:1=未开票 2=申请开票 3=已开票 4=驳回 5=已作废', `apply_time` DATETIME NULL COMMENT '申请时间', `invoice_time` DATETIME NULL COMMENT '开票时间', `invoice_code` VARCHAR(32) NULL COMMENT '发票代码', `invoice_no` VARCHAR(64) NULL COMMENT '发票号码(可按年月+随机号)', `invoice_url` VARCHAR(1024) NULL COMMENT '电子发票文件URL', `reject_reason` VARCHAR(255) NULL COMMENT '驳回原因', `remark` VARCHAR(255) NULL COMMENT '备注', `create_dept` BIGINT NULL COMMENT '创建部门', `create_by` BIGINT NULL COMMENT '创建者', `create_by_name` VARCHAR(64) NULL COMMENT '创建者姓名', `create_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` BIGINT NULL COMMENT '更新者', `update_by_name` VARCHAR(64) NULL COMMENT '更新者姓名', `update_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `is_deleted` TINYINT NULL DEFAULT 0 COMMENT '0=正常, 1=已删除', PRIMARY KEY (`id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT ='发票管理表'; -- 18) 培训反馈主表(对应页面:反馈列表/我要反馈) CREATE TABLE `hot_training_feedback` ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', `company_id` BIGINT UNSIGNED NULL COMMENT '公司ID(应用层保证必填)', `feedback_no` VARCHAR(32) NULL COMMENT '反馈单号', `feedback_user_id` BIGINT UNSIGNED NULL COMMENT '反馈人ID', `feedback_user_name` VARCHAR(64) NULL COMMENT '反馈人姓名', `feedback_keyword` VARCHAR(100) NULL COMMENT '反馈关键词', `feedback_content` TEXT NULL COMMENT '反馈内容', `attachment_urls` TEXT NULL COMMENT '附件URL列表(逗号分隔,对应sys_oss)', `feedback_time` DATETIME NULL COMMENT '反馈时间', `status` TINYINT NULL DEFAULT 1 COMMENT '处理状态:1=待处理 2=处理中 3=已回复 4=已关闭', `reply_time` DATETIME NULL COMMENT '最新回复时间', `reply_count` INT NULL DEFAULT 0 COMMENT '回复条数', `last_reply_content` VARCHAR(255) NULL COMMENT '最新回复内容摘要', `remark` VARCHAR(255) NULL COMMENT '备注', `create_dept` BIGINT NULL COMMENT '创建部门', `create_by` BIGINT NULL COMMENT '创建者', `create_by_name` VARCHAR(64) NULL COMMENT '创建者姓名', `create_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` BIGINT NULL COMMENT '更新者', `update_by_name` VARCHAR(64) NULL COMMENT '更新者姓名', `update_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `is_deleted` TINYINT NULL DEFAULT 0 COMMENT '0=正常, 1=已删除', PRIMARY KEY (`id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT ='培训反馈主表'; -- 19) 培训反馈回复表(对应页面:反馈详情时间线“我的反馈/回复”) CREATE TABLE `hot_training_feedback_reply` ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', `company_id` BIGINT UNSIGNED NULL COMMENT '公司ID(应用层保证必填)', `feedback_id` BIGINT UNSIGNED NULL COMMENT '反馈主表ID(逻辑外键)', `feedback_no` VARCHAR(32) NULL COMMENT '反馈单号', `reply_role` TINYINT NULL COMMENT '回复角色:1=反馈人 2=处理人', `reply_user_id` BIGINT UNSIGNED NULL COMMENT '回复人ID', `reply_user_name` VARCHAR(64) NULL COMMENT '回复人姓名', `reply_content` TEXT NULL COMMENT '回复内容', `reply_time` DATETIME NULL COMMENT '回复时间', `status` TINYINT NULL DEFAULT 1 COMMENT '状态:1=有效 0=无效', `remark` VARCHAR(255) NULL COMMENT '备注', `create_dept` BIGINT NULL COMMENT '创建部门', `create_by` BIGINT NULL COMMENT '创建者', `create_by_name` VARCHAR(64) NULL COMMENT '创建者姓名', `create_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` BIGINT NULL COMMENT '更新者', `update_by_name` VARCHAR(64) NULL COMMENT '更新者姓名', `update_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `is_deleted` TINYINT NULL DEFAULT 0 COMMENT '0=正常, 1=已删除', PRIMARY KEY (`id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT ='培训反馈回复表';