From ad5db85e540947e82c7a4d5612879b3b3ecdf459 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期五, 21 八月 2026 10:38:07 +0800
Subject: [PATCH] update

---
 backend/db/schema.sql |   36 +++++++++++++++++++++++++++++++++++-
 1 files changed, 35 insertions(+), 1 deletions(-)

diff --git a/backend/db/schema.sql b/backend/db/schema.sql
index 0296cd4..9d51089 100644
--- a/backend/db/schema.sql
+++ b/backend/db/schema.sql
@@ -120,6 +120,7 @@
     `rating` DECIMAL(3,2) NOT NULL DEFAULT 0.00 COMMENT '平均评分,范围0到5',
     `auto_disable_whitelisted` TINYINT NOT NULL DEFAULT 0 COMMENT '自动禁用白名单:0否,1是',
     `wechat_open_id` VARCHAR(128) DEFAULT NULL COMMENT '导游收款微信 openID',
+    `balance` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '导游可提现余额',
     `status` TINYINT NOT NULL DEFAULT 1 COMMENT '账号状态:0停用,1启用',
     `deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '逻辑删除标记:0正常,1删除',
     `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
@@ -321,6 +322,9 @@
     `commission_rate` DECIMAL(5,2) DEFAULT NULL COMMENT '接单时平台抽成比例快照,单位百分比',
     `commission_team_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '讲解队抽成来源ID,个人导游为空',
     `guide_earning_amount` DECIMAL(10,2) DEFAULT NULL COMMENT '导游实际业绩金额快照',
+    `settlement_days` INT UNSIGNED NOT NULL DEFAULT 1 COMMENT '下单时结算周期快照,单位天',
+    `settlement_due_at` DATETIME DEFAULT NULL COMMENT '预计可分账时间',
+    `settled_at` DATETIME DEFAULT NULL COMMENT '实际分账入余额时间',
     `accepted_at` DATETIME DEFAULT NULL COMMENT '导游接单时间',
     `arrived_at` DATETIME DEFAULT NULL COMMENT '导游到达汇合点时间',
     `service_started_at` DATETIME DEFAULT NULL COMMENT '讲解开始时间',
@@ -340,6 +344,7 @@
     KEY `idx_tour_order_visitor` (`visitor_id`),
     KEY `idx_tour_order_guide` (`guide_id`),
     KEY `idx_tour_order_guide_earning` (`guide_id`, `status`, `completed_at`),
+    KEY `idx_tour_order_settlement` (`status`, `settled_at`, `settlement_due_at`),
     KEY `idx_tour_order_scenic` (`scenic_name`),
     KEY `idx_tour_order_status` (`status`),
     KEY `idx_tour_order_created_at` (`created_at`),
@@ -407,7 +412,18 @@
     `guide_name` VARCHAR(64) NOT NULL COMMENT '导游姓名快照',
     `guide_mobile` VARCHAR(20) NOT NULL COMMENT '导游手机号快照',
     `amount` DECIMAL(10,2) NOT NULL COMMENT '提现金额',
-    `status` VARCHAR(16) NOT NULL DEFAULT 'PENDING' COMMENT '状态:PENDING、APPROVED、REJECTED',
+    `bank_card_id` INT DEFAULT NULL COMMENT '提现结算卡账户主键',
+    `bank_name` VARCHAR(64) DEFAULT NULL COMMENT '收款银行快照',
+    `card_masked` VARCHAR(32) DEFAULT NULL COMMENT '收款卡号掩码',
+    `transfer_req_seq_id` VARCHAR(32) DEFAULT NULL COMMENT '主账户划账请求流水号',
+    `transfer_req_date` CHAR(8) DEFAULT NULL COMMENT '主账户划账请求日期',
+    `transfer_hf_seq_id` VARCHAR(64) DEFAULT NULL COMMENT '主账户划账汇付全局流水号',
+    `transferred_at` DATETIME DEFAULT NULL COMMENT '主账户划账完成时间',
+    `cash_req_seq_id` VARCHAR(32) DEFAULT NULL COMMENT '导游账户取现请求流水号',
+    `cash_req_date` CHAR(8) DEFAULT NULL COMMENT '导游账户取现请求日期',
+    `cash_hf_seq_id` VARCHAR(64) DEFAULT NULL COMMENT '导游账户取现汇付全局流水号',
+    `payout_message` VARCHAR(255) DEFAULT NULL COMMENT '资金处理状态说明',
+    `status` VARCHAR(16) NOT NULL DEFAULT 'PENDING' COMMENT '状态:PENDING、TRANSFERRING、TRANSFERRED、PROCESSING、APPROVED、REJECTED',
     `audit_remark` VARCHAR(255) DEFAULT NULL COMMENT '处理备注',
     `processor` VARCHAR(64) DEFAULT NULL COMMENT '后台处理人',
     `applied_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '申请时间',
@@ -417,6 +433,8 @@
     PRIMARY KEY (`id`),
     UNIQUE KEY `uk_guide_withdrawal_no` (`withdrawal_no`),
     KEY `idx_guide_withdrawal_guide` (`guide_id`),
+    KEY `idx_guide_withdrawal_guide_status` (`guide_id`, `status`),
+    KEY `idx_guide_withdrawal_payout` (`status`, `updated_at`),
     KEY `idx_guide_withdrawal_status` (`status`),
     KEY `idx_guide_withdrawal_applied_at` (`applied_at`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='导游提现申请表';
@@ -762,6 +780,22 @@
 ALTER TABLE `guide_team` ADD COLUMN `deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '逻辑删除标记:0正常,1删除';
 ALTER TABLE `guide_team_scenic_config` ADD COLUMN `deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '逻辑删除标记:0正常,1删除';
 ALTER TABLE `guide_withdrawal` ADD COLUMN `deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '逻辑删除标记:0正常,1删除';
+
+CREATE TABLE IF NOT EXISTS `guide_bank_branch` (
+    `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '开户行主键',
+    `bank_name` VARCHAR(64) NOT NULL COMMENT '银行名称',
+    `branch_name` VARCHAR(128) NOT NULL COMMENT '开户行名称',
+    `branch_code` VARCHAR(32) NOT NULL COMMENT '联行号',
+    `city_code` VARCHAR(16) NOT NULL COMMENT '城市行政区划编码',
+    `status` TINYINT NOT NULL DEFAULT 1 COMMENT '状态:1启用,0停用',
+    `deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '逻辑删除:0正常,1删除',
+    `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+    `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
+    PRIMARY KEY (`id`),
+    UNIQUE KEY `uk_guide_bank_branch_code` (`branch_code`),
+    KEY `idx_guide_bank_branch_city_status` (`city_code`, `status`),
+    KEY `idx_guide_bank_branch_name` (`bank_name`, `branch_name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='导游结算卡开户行基础表';
 ALTER TABLE `operation_scenic_meeting_point` ADD COLUMN `deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '逻辑删除标记:0正常,1删除';
 ALTER TABLE `operation_scenic_pricing` ADD COLUMN `deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '逻辑删除标记:0正常,1删除';
 ALTER TABLE `sys_admin_user_post` ADD COLUMN `deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '逻辑删除标记:0正常,1删除';

--
Gitblit v1.7.1