154 lines
6.4 KiB
SQL
154 lines
6.4 KiB
SQL
-- ============================================
|
|
-- SPA管理系统 - 提现系统SQL
|
|
-- ============================================
|
|
-- 版本: v1.0
|
|
-- 创建时间: 2025-12-30
|
|
-- 数据库: MySQL 8.0+
|
|
-- 字符集: utf8mb4
|
|
-- ============================================
|
|
|
|
SET NAMES utf8mb4;
|
|
SET FOREIGN_KEY_CHECKS = 0;
|
|
|
|
-- ============================================
|
|
-- 提现系统相关表
|
|
-- ============================================
|
|
|
|
-- 1. 提现申请表
|
|
DROP TABLE IF EXISTS `spa_withdrawal_apply`;
|
|
CREATE TABLE `spa_withdrawal_apply` (
|
|
`id` bigint unsigned NOT NULL AUTO_INCREMENT,
|
|
`created_at` datetime(3) DEFAULT NULL,
|
|
`updated_at` datetime(3) DEFAULT NULL,
|
|
`deleted_at` datetime(3) DEFAULT NULL,
|
|
|
|
`withdrawal_no` varchar(50) NOT NULL COMMENT '提现单号',
|
|
`user_type` tinyint NOT NULL COMMENT '用户类型 1客户 2技师 3代理',
|
|
`user_id` bigint unsigned NOT NULL COMMENT '用户ID',
|
|
`user_name` varchar(100) DEFAULT NULL COMMENT '用户姓名',
|
|
|
|
`withdrawal_amount` decimal(10,2) NOT NULL COMMENT '提现金额',
|
|
`service_fee` decimal(10,2) DEFAULT 0.00 COMMENT '手续费',
|
|
`actual_amount` decimal(10,2) NOT NULL COMMENT '实际到账金额',
|
|
|
|
`withdrawal_type` tinyint NOT NULL COMMENT '提现方式 1银行卡 2支付宝 3微信',
|
|
`account_name` varchar(100) DEFAULT NULL COMMENT '账户名',
|
|
`account_number` varchar(100) DEFAULT NULL COMMENT '账号',
|
|
`bank_name` varchar(100) DEFAULT NULL COMMENT '开户银行',
|
|
`bank_branch` varchar(200) DEFAULT NULL COMMENT '开户支行',
|
|
|
|
`status` tinyint DEFAULT 1 COMMENT '状态 1待审核 2审核通过 3审核拒绝 4处理中 5已完成 6已失败',
|
|
`audit_user_id` bigint unsigned DEFAULT NULL COMMENT '审核人ID',
|
|
`audit_time` datetime DEFAULT NULL COMMENT '审核时间',
|
|
`audit_remark` varchar(500) DEFAULT NULL COMMENT '审核备注',
|
|
|
|
`transfer_time` datetime DEFAULT NULL COMMENT '转账时间',
|
|
`transfer_voucher` varchar(500) DEFAULT NULL COMMENT '转账凭证',
|
|
`transfer_remark` varchar(500) DEFAULT NULL COMMENT '转账备注',
|
|
|
|
`fail_reason` varchar(500) DEFAULT NULL COMMENT '失败原因',
|
|
`remark` text COMMENT '备注',
|
|
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `idx_withdrawal_no` (`withdrawal_no`),
|
|
KEY `idx_user` (`user_type`, `user_id`),
|
|
KEY `idx_status` (`status`),
|
|
KEY `idx_deleted_at` (`deleted_at`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='提现申请表';
|
|
|
|
-- 2. 提现配置表
|
|
DROP TABLE IF EXISTS `spa_withdrawal_config`;
|
|
CREATE TABLE `spa_withdrawal_config` (
|
|
`id` bigint unsigned NOT NULL AUTO_INCREMENT,
|
|
`created_at` datetime(3) DEFAULT NULL,
|
|
`updated_at` datetime(3) DEFAULT NULL,
|
|
|
|
`user_type` tinyint NOT NULL COMMENT '用户类型 1客户 2技师 3代理',
|
|
|
|
`min_amount` decimal(10,2) DEFAULT 100.00 COMMENT '最低提现金额',
|
|
`max_amount` decimal(10,2) DEFAULT 50000.00 COMMENT '最高提现金额',
|
|
`service_fee_rate` decimal(5,2) DEFAULT 1.00 COMMENT '手续费比例%',
|
|
`min_service_fee` decimal(10,2) DEFAULT 1.00 COMMENT '最低手续费',
|
|
|
|
`daily_limit` int DEFAULT 1 COMMENT '每日提现次数限制',
|
|
`monthly_limit` int DEFAULT 10 COMMENT '每月提现次数限制',
|
|
|
|
`need_real_name` tinyint DEFAULT 1 COMMENT '是否需要实名认证 0否 1是',
|
|
`need_bind_account` tinyint DEFAULT 1 COMMENT '是否需要绑定账户 0否 1是',
|
|
|
|
`audit_required` tinyint DEFAULT 1 COMMENT '是否需要审核 0否 1是',
|
|
`auto_transfer` tinyint DEFAULT 0 COMMENT '是否自动转账 0否 1是',
|
|
|
|
`work_time_start` time DEFAULT '09:00:00' COMMENT '工作时间开始',
|
|
`work_time_end` time DEFAULT '21:00:00' COMMENT '工作时间结束',
|
|
|
|
`status` tinyint DEFAULT 1 COMMENT '状态 1启用 2停用',
|
|
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `idx_user_type` (`user_type`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='提现配置表';
|
|
|
|
-- 3. 提现账户表
|
|
DROP TABLE IF EXISTS `spa_withdrawal_account`;
|
|
CREATE TABLE `spa_withdrawal_account` (
|
|
`id` bigint unsigned NOT NULL AUTO_INCREMENT,
|
|
`created_at` datetime(3) DEFAULT NULL,
|
|
`updated_at` datetime(3) DEFAULT NULL,
|
|
`deleted_at` datetime(3) DEFAULT NULL,
|
|
|
|
`user_type` tinyint NOT NULL COMMENT '用户类型 1客户 2技师 3代理',
|
|
`user_id` bigint unsigned NOT NULL COMMENT '用户ID',
|
|
|
|
`account_type` tinyint NOT NULL COMMENT '账户类型 1银行卡 2支付宝 3微信',
|
|
`account_name` varchar(100) NOT NULL COMMENT '账户名',
|
|
`account_number` varchar(100) NOT NULL COMMENT '账号',
|
|
`bank_name` varchar(100) DEFAULT NULL COMMENT '开户银行',
|
|
`bank_branch` varchar(200) DEFAULT NULL COMMENT '开户支行',
|
|
|
|
`is_default` tinyint DEFAULT 0 COMMENT '是否默认 0否 1是',
|
|
`is_verified` tinyint DEFAULT 0 COMMENT '是否已验证 0否 1是',
|
|
`verify_time` datetime DEFAULT NULL COMMENT '验证时间',
|
|
|
|
`status` tinyint DEFAULT 1 COMMENT '状态 1正常 2冻结',
|
|
|
|
PRIMARY KEY (`id`),
|
|
KEY `idx_user` (`user_type`, `user_id`),
|
|
KEY `idx_deleted_at` (`deleted_at`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='提现账户表';
|
|
|
|
-- 4. 提现统计表
|
|
DROP TABLE IF EXISTS `spa_withdrawal_statistics`;
|
|
CREATE TABLE `spa_withdrawal_statistics` (
|
|
`id` bigint unsigned NOT NULL AUTO_INCREMENT,
|
|
`created_at` datetime(3) DEFAULT NULL,
|
|
`updated_at` datetime(3) DEFAULT NULL,
|
|
|
|
`user_type` tinyint NOT NULL COMMENT '用户类型 1客户 2技师 3代理',
|
|
`user_id` bigint unsigned NOT NULL COMMENT '用户ID',
|
|
`stat_date` date NOT NULL COMMENT '统计日期',
|
|
|
|
`today_count` int DEFAULT 0 COMMENT '今日提现次数',
|
|
`today_amount` decimal(12,2) DEFAULT 0.00 COMMENT '今日提现金额',
|
|
|
|
`month_count` int DEFAULT 0 COMMENT '本月提现次数',
|
|
`month_amount` decimal(12,2) DEFAULT 0.00 COMMENT '本月提现金额',
|
|
|
|
`total_count` int DEFAULT 0 COMMENT '累计提现次数',
|
|
`total_amount` decimal(12,2) DEFAULT 0.00 COMMENT '累计提现金额',
|
|
`total_fee` decimal(12,2) DEFAULT 0.00 COMMENT '累计手续费',
|
|
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `idx_user_date` (`user_type`, `user_id`, `stat_date`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='提现统计表';
|
|
|
|
-- ============================================
|
|
-- 初始化提现配置
|
|
-- ============================================
|
|
|
|
INSERT INTO `spa_withdrawal_config` (`user_type`, `min_amount`, `max_amount`, `service_fee_rate`, `min_service_fee`, `daily_limit`, `monthly_limit`, `status`) VALUES
|
|
(1, 100.00, 50000.00, 1.00, 1.00, 1, 10, 1),
|
|
(2, 100.00, 50000.00, 1.00, 1.00, 1, 10, 1),
|
|
(3, 100.00, 50000.00, 1.00, 1.00, 1, 10, 1);
|
|
|
|
SET FOREIGN_KEY_CHECKS = 1;
|