Files
rent/database/migrations/001_init_schema.sql
T
2026-05-26 21:27:48 +08:00

1024 lines
57 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- ============================================================
-- 酒店民宿短租预订平台 - 数据库初始化脚本
-- ============================================================
CREATE DATABASE IF NOT EXISTS `rent_platform` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE `rent_platform`;
-- ============================================================
-- 1. 用户表
-- ============================================================
CREATE TABLE `users` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`phone` VARCHAR(20) NULL COMMENT '手机号',
`password` VARCHAR(255) DEFAULT NULL COMMENT '密码(AES加密存储)',
`wechat_openid` VARCHAR(100) NULL COMMENT '微信openid',
`wechat_unionid` VARCHAR(100) NULL COMMENT '微信unionid',
`nickname` VARCHAR(50) DEFAULT '' COMMENT '昵称',
`avatar` VARCHAR(500) DEFAULT '' COMMENT '头像URL',
`gender` TINYINT UNSIGNED DEFAULT 0 COMMENT '性别 0-未知 1-男 2-女',
`real_name` VARCHAR(50) DEFAULT NULL COMMENT '真实姓名',
`id_card` VARCHAR(255) DEFAULT NULL COMMENT '身份证号(加密存储)',
`status` ENUM('active','frozen','deleted') NOT NULL DEFAULT 'active' COMMENT '状态',
`last_login_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,
PRIMARY KEY (`id`),
KEY `idx_phone` (`phone`),
KEY `idx_wechat_openid` (`wechat_openid`),
KEY `idx_wechat_unionid` (`wechat_unionid`),
KEY `idx_status` (`status`),
KEY `idx_created_at` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表';
-- ============================================================
-- 2. 平台管理员表
-- ============================================================
CREATE TABLE `admins` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`username` VARCHAR(50) NOT NULL COMMENT '用户名',
`password` VARCHAR(255) NOT NULL COMMENT '密码(bcrypt哈希)',
`name` VARCHAR(50) NOT NULL COMMENT '姓名',
`phone` VARCHAR(20) DEFAULT NULL COMMENT '手机号',
`email` VARCHAR(100) DEFAULT NULL COMMENT '邮箱',
`role` ENUM('super_admin','admin','operator') NOT NULL DEFAULT 'admin' COMMENT '角色:超级管理员/管理员/运营',
`status` ENUM('active','frozen') NOT NULL DEFAULT 'active' COMMENT '状态',
`last_login_at` DATETIME DEFAULT NULL COMMENT '最后登录时间',
`last_login_ip` VARCHAR(50) DEFAULT NULL COMMENT '最后登录IP',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_username` (`username`),
KEY `idx_role` (`role`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='平台管理员表';
-- ============================================================
-- 3. 商家账户表
-- ============================================================
CREATE TABLE `sellers` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`phone` VARCHAR(20) NOT NULL COMMENT '手机号',
`password` VARCHAR(255) DEFAULT NULL COMMENT '密码(bcrypt哈希)',
`contact_name` VARCHAR(50) NOT NULL COMMENT '联系人姓名',
`email` VARCHAR(100) DEFAULT NULL COMMENT '邮箱',
`status` ENUM('active','frozen','deleted') NOT NULL DEFAULT 'active' COMMENT '状态',
`last_login_at` DATETIME DEFAULT NULL COMMENT '最后登录时间',
`last_login_ip` VARCHAR(50) DEFAULT NULL COMMENT '最后登录IP',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_phone` (`phone`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='商家账户表';
-- ============================================================
-- 4. 第三方账号绑定表
-- ============================================================
CREATE TABLE `user_oauth` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`user_id` BIGINT UNSIGNED NOT NULL COMMENT '用户ID',
`provider` ENUM('wechat','alipay') NOT NULL COMMENT '第三方平台',
`openid` VARCHAR(128) NOT NULL COMMENT '第三方OpenID',
`union_id` VARCHAR(128) DEFAULT NULL COMMENT 'UnionID',
`nickname` VARCHAR(100) DEFAULT NULL COMMENT '第三方昵称',
`avatar` VARCHAR(500) DEFAULT NULL COMMENT '第三方头像',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_provider_openid` (`provider`,`openid`),
KEY `idx_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='第三方账号绑定表';
-- ============================================================
-- 5. 商家表
-- ============================================================
CREATE TABLE `merchants` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`seller_id` BIGINT UNSIGNED NOT NULL COMMENT '关联商家账户ID',
`shop_name` VARCHAR(100) NOT NULL COMMENT '店铺名称',
`logo` VARCHAR(500) DEFAULT '' COMMENT '店铺Logo',
`cover_image` VARCHAR(500) DEFAULT '' COMMENT '店铺封面图片',
`hotel_images` TEXT DEFAULT NULL COMMENT '酒店照片,多张URL用逗号分隔',
`description` TEXT COMMENT '店铺描述',
`store_license` VARCHAR(255) DEFAULT NULL COMMENT '门店营业执照',
`phone` VARCHAR(20) NOT NULL COMMENT '联系电话',
`province` VARCHAR(50) DEFAULT '' COMMENT '',
`city` VARCHAR(50) DEFAULT '' COMMENT '',
`district` VARCHAR(50) DEFAULT '' COMMENT '',
`address` VARCHAR(255) DEFAULT '' COMMENT '详细地址',
`longitude` DECIMAL(10,7) DEFAULT NULL COMMENT '经度',
`latitude` DECIMAL(10,7) DEFAULT NULL COMMENT '纬度',
`business_license` VARCHAR(500) DEFAULT '' COMMENT '营业执照图片',
`contract_type` VARCHAR(20) DEFAULT 'personal' COMMENT '签约类型:personal-个人签约,company-公司签约',
`id_card_front` VARCHAR(255) DEFAULT NULL COMMENT '身份证正面(个人签约)',
`id_card_back` VARCHAR(255) DEFAULT NULL COMMENT '身份证反面(个人签约)',
`legal_id_card_front` VARCHAR(255) DEFAULT NULL COMMENT '法人身份证正面(公司签约)',
`legal_id_card_back` VARCHAR(255) DEFAULT NULL COMMENT '法人身份证反面(公司签约)',
`license_no` VARCHAR(50) DEFAULT '' COMMENT '营业执照编号',
`legal_person` VARCHAR(50) DEFAULT '' COMMENT '法人姓名',
`status` ENUM('pending','approved','rejected','frozen') NOT NULL DEFAULT 'pending' COMMENT '状态',
`reject_reason` VARCHAR(500) DEFAULT NULL COMMENT '拒绝原因',
`deposit` DECIMAL(10,2) DEFAULT 0.00 COMMENT '保证金',
`wallet_balance` DECIMAL(10,2) DEFAULT 0.00 COMMENT '待提现余额',
`bank_name` VARCHAR(100) DEFAULT '' COMMENT '开户银行',
`bank_account` VARCHAR(50) DEFAULT '' COMMENT '银行账号',
`account_name` VARCHAR(50) DEFAULT '' COMMENT '账户名',
`account_type` VARCHAR(20) DEFAULT 'company' COMMENT '账户类型:company-对公账户,personal-对私账户',
`bank_branch` VARCHAR(100) DEFAULT NULL COMMENT '支行信息(对私账户)',
`bank_license` VARCHAR(255) DEFAULT NULL COMMENT '开户营业执照(对公账户)',
`account_id_card_front` VARCHAR(255) DEFAULT NULL COMMENT '开户身份证正面(对私账户)',
`account_id_card_back` VARCHAR(255) DEFAULT NULL COMMENT '开户身份证反面(对私账户)',
`rating` DECIMAL(2,1) DEFAULT 5.0 COMMENT '评分',
`review_count` INT UNSIGNED DEFAULT 0 COMMENT '评价数',
`sales_count` INT UNSIGNED DEFAULT 0 COMMENT '销量统计',
`auto_confirm` TINYINT(1) DEFAULT 0 COMMENT '是否自动接单',
`auto_confirm_rules` JSON DEFAULT NULL COMMENT '自动接单规则配置',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_seller_id` (`seller_id`),
KEY `idx_status` (`status`),
KEY `idx_city` (`city`),
KEY `idx_rating` (`rating`),
KEY `idx_sales_count` (`sales_count`),
KEY `idx_contract_type` (`contract_type`),
KEY `idx_account_type` (`account_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='商家表';
-- ============================================================
-- 6. 房型/房源表
-- ============================================================
CREATE TABLE `rooms` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`merchant_id` BIGINT UNSIGNED NOT NULL COMMENT '商家ID',
`name` VARCHAR(100) NOT NULL COMMENT '房型名称',
`type` ENUM('hotel','homestay','apartment','hostel') NOT NULL DEFAULT 'hotel' COMMENT '类型:酒店/民宿/公寓/青旅',
`area` DECIMAL(6,2) DEFAULT 0.00 COMMENT '面积(平方米)',
`bed_type` VARCHAR(50) DEFAULT '' COMMENT '床型(如:大床/双床/榻榻米)',
`max_guests` TINYINT UNSIGNED DEFAULT 1 COMMENT '最多入住人数',
`floor` VARCHAR(20) DEFAULT '' COMMENT '楼层',
`facilities` JSON DEFAULT NULL COMMENT '设施列表(WiFi,停车,早餐等)',
`images` JSON DEFAULT NULL COMMENT '图片URL列表',
`cover_image` VARCHAR(500) DEFAULT '' COMMENT '封面图',
`price` DECIMAL(10,2) NOT NULL DEFAULT 0.00 COMMENT '基础价格/晚',
`status` ENUM('on_sale','off_sale') NOT NULL DEFAULT 'on_sale' COMMENT '状态',
`audit_status` ENUM('pending','approved','rejected') NOT NULL DEFAULT 'pending' COMMENT '审核状态',
`audit_reject_reason` VARCHAR(500) DEFAULT NULL COMMENT '审核拒绝原因',
`rating` DECIMAL(2,1) DEFAULT 5.0 COMMENT '评分',
`review_count` INT UNSIGNED DEFAULT 0 COMMENT '评价数',
`description` TEXT COMMENT '房源描述',
`cancel_policy` ENUM('free','flexible','strict') DEFAULT 'flexible' COMMENT '取消政策',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_merchant_id` (`merchant_id`),
KEY `idx_type` (`type`),
KEY `idx_status_price` (`status`,`price`),
KEY `idx_rating` (`rating`),
KEY `idx_audit_status` (`audit_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='房型/房源表';
-- ============================================================
-- 7. 房量房价日历表
-- ============================================================
CREATE TABLE `room_calendar` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`room_id` BIGINT UNSIGNED NOT NULL COMMENT '房型ID',
`date` DATE NOT NULL COMMENT '日期',
`price` DECIMAL(10,2) NOT NULL DEFAULT 0.00 COMMENT '当日房价',
`stock` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '可售数量',
`sold` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '已售数量',
`status` ENUM('available','unavailable') NOT NULL DEFAULT 'available' COMMENT '房态',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_room_date` (`room_id`,`date`),
KEY `idx_date` (`date`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='房量房价日历表';
-- ============================================================
-- 8. 房态变更日志表
-- ============================================================
CREATE TABLE `room_calendar_logs` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`room_id` BIGINT UNSIGNED NOT NULL COMMENT '房型ID',
`operator_id` BIGINT UNSIGNED NOT NULL COMMENT '操作人ID',
`date_range` VARCHAR(100) NOT NULL COMMENT '变更日期范围',
`change_type` ENUM('price','stock','status') NOT NULL COMMENT '变更类型',
`old_value` VARCHAR(100) DEFAULT NULL COMMENT '变更前值',
`new_value` VARCHAR(100) DEFAULT NULL COMMENT '变更后值',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_room_id` (`room_id`),
KEY `idx_created_at` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='房态变更日志表';
-- ============================================================
-- 9. 订单表
-- ============================================================
CREATE TABLE `orders` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`order_no` VARCHAR(32) NOT NULL COMMENT '订单号',
`user_id` BIGINT UNSIGNED NOT NULL COMMENT '用户ID',
`merchant_id` BIGINT UNSIGNED NOT NULL COMMENT '商家ID',
`room_id` BIGINT UNSIGNED NOT NULL COMMENT '房型ID',
`check_in_date` DATE NOT NULL COMMENT '入住日期',
`check_out_date` DATE NOT NULL COMMENT '离店日期',
`nights` TINYINT UNSIGNED NOT NULL COMMENT '入住晚数',
`room_count` TINYINT UNSIGNED DEFAULT 1 COMMENT '房间数',
`room_price` DECIMAL(10,2) NOT NULL COMMENT '房费单价',
`room_amount` DECIMAL(10,2) NOT NULL COMMENT '房费总额',
`service_fee` DECIMAL(10,2) DEFAULT 0.00 COMMENT '软件服务费',
`merchant_income` DECIMAL(10,2) DEFAULT 0.00 COMMENT '商家预计收入',
`coupon_discount` DECIMAL(10,2) DEFAULT 0.00 COMMENT '优惠券抵扣',
`user_coupon_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '使用的用户优惠券ID',
`total_amount` DECIMAL(10,2) NOT NULL COMMENT '订单总金额',
`pay_amount` DECIMAL(10,2) NOT NULL COMMENT '实付金额',
`payment_method` ENUM('wechat','alipay','balance') DEFAULT NULL COMMENT '支付方式',
`payment_no` VARCHAR(64) DEFAULT NULL COMMENT '支付流水号',
`paid_at` DATETIME DEFAULT NULL COMMENT '支付时间',
`status` ENUM('pending_pay','pending_confirm','pending_checkin','checked_in','completed','cancelled','refunding','refunded') NOT NULL DEFAULT 'pending_pay' COMMENT '订单状态',
`cancel_reason` VARCHAR(500) DEFAULT NULL COMMENT '取消原因',
`contact_name` VARCHAR(50) NOT NULL COMMENT '联系人姓名',
`contact_phone` VARCHAR(20) NOT NULL COMMENT '联系人手机',
`contact_id_card` VARCHAR(18) DEFAULT NULL COMMENT '联系人身份证号',
`guest_count` TINYINT UNSIGNED DEFAULT 1 COMMENT '入住人数',
`remark` VARCHAR(500) DEFAULT '' COMMENT '备注',
`source` ENUM('miniapp','web','third_party') DEFAULT 'miniapp' COMMENT '订单来源',
`confirmed_at` DATETIME DEFAULT NULL COMMENT '商家确认时间',
`checkin_at` DATETIME DEFAULT NULL COMMENT '实际入住时间',
`checkout_at` DATETIME DEFAULT NULL COMMENT '实际离店时间',
`cancelled_at` DATETIME DEFAULT NULL COMMENT '取消时间',
`refund_amount` DECIMAL(10,2) DEFAULT NULL COMMENT '退款金额',
`refund_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,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_order_no` (`order_no`),
KEY `idx_user_id` (`user_id`),
KEY `idx_merchant_id` (`merchant_id`),
KEY `idx_room_id` (`room_id`),
KEY `idx_status` (`status`),
KEY `idx_check_in` (`check_in_date`),
KEY `idx_created_at` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='订单表';
-- ============================================================
-- 10. 评价表
-- ============================================================
CREATE TABLE `reviews` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`order_id` BIGINT UNSIGNED NOT NULL COMMENT '订单ID',
`user_id` BIGINT UNSIGNED NOT NULL COMMENT '用户ID',
`merchant_id` BIGINT UNSIGNED NOT NULL COMMENT '商家ID',
`room_id` BIGINT UNSIGNED NOT NULL COMMENT '房型ID',
`rating` TINYINT UNSIGNED NOT NULL COMMENT '评分(1-5)',
`content` TEXT COMMENT '评价内容',
`images` JSON DEFAULT NULL COMMENT '评价图片列表',
`merchant_reply` TEXT COMMENT '商家回复',
`replied_at` DATETIME DEFAULT NULL COMMENT '回复时间',
`is_anonymous` TINYINT(1) DEFAULT 0 COMMENT '是否匿名',
`status` ENUM('pending','visible','hidden','rejected') DEFAULT 'pending' COMMENT '状态:pending待审核,visible已通过,hidden已隐藏,rejected已拒绝',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_order_id` (`order_id`),
KEY `idx_merchant_id` (`merchant_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_rating` (`rating`),
KEY `idx_created_at` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='评价表';
-- ============================================================
-- 11. 收藏表
-- ============================================================
CREATE TABLE `favorites` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`user_id` BIGINT UNSIGNED NOT NULL COMMENT '用户ID',
`room_id` BIGINT UNSIGNED NOT NULL COMMENT '房型ID',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_user_room` (`user_id`,`room_id`),
KEY `idx_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='收藏表';
-- ============================================================
-- 12. 优惠券模板表
-- ============================================================
CREATE TABLE `coupons` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(100) NOT NULL COMMENT '优惠券名称',
`type` ENUM('fixed','percent') NOT NULL COMMENT '类型:固定金额/百分比折扣',
`value` DECIMAL(10,2) NOT NULL COMMENT '优惠金额/折扣比例',
`min_amount` DECIMAL(10,2) DEFAULT 0.00 COMMENT '最低使用金额',
`total_count` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '发放总量',
`used_count` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '已使用数量',
`remain_count` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '剩余数量',
`start_date` DATE NOT NULL COMMENT '生效日期',
`end_date` DATE NOT NULL COMMENT '失效日期',
`scope` ENUM('platform','merchant','room') DEFAULT 'platform' COMMENT '适用范围',
`scope_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '范围关联ID(商家ID/房型ID)',
`status` ENUM('active','paused','ended') DEFAULT 'active' COMMENT '状态',
`created_by` BIGINT UNSIGNED DEFAULT NULL COMMENT '创建人ID',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_status_dates` (`status`,`start_date`,`end_date`),
KEY `idx_scope` (`scope`,`scope_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='优惠券模板表';
-- ============================================================
-- 13. 用户优惠券表
-- ============================================================
CREATE TABLE `user_coupons` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`user_id` BIGINT UNSIGNED NOT NULL COMMENT '用户ID',
`coupon_id` BIGINT UNSIGNED NOT NULL COMMENT '优惠券ID',
`status` ENUM('unused','used','expired') NOT NULL DEFAULT 'unused' COMMENT '状态',
`order_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '关联订单ID',
`used_at` DATETIME DEFAULT NULL COMMENT '使用时间',
`expire_at` DATETIME NOT NULL COMMENT '过期时间',
`received_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '领取时间',
PRIMARY KEY (`id`),
KEY `idx_user_status` (`user_id`,`status`),
KEY `idx_coupon_id` (`coupon_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户优惠券表';
-- ============================================================
-- 14. 促销活动表
-- ============================================================
CREATE TABLE `promotions` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`merchant_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '商家ID(NULL为平台活动)',
`name` VARCHAR(100) NOT NULL COMMENT '活动名称',
`type` ENUM('full_reduction','discount','package') NOT NULL COMMENT '类型:满减/折扣/套餐',
`rules` JSON NOT NULL COMMENT '活动规则',
`room_ids` JSON DEFAULT NULL COMMENT '参与房型ID列表',
`start_date` DATETIME NOT NULL COMMENT '开始时间',
`end_date` DATETIME NOT NULL COMMENT '结束时间',
`status` ENUM('pending','active','paused','ended') NOT NULL DEFAULT 'pending' COMMENT '状态',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_merchant_id` (`merchant_id`),
KEY `idx_status_dates` (`status`,`start_date`,`end_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='促销活动表';
-- ============================================================
-- 15. 会员等级表
-- ============================================================
CREATE TABLE `member_levels` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NOT NULL COMMENT '等级名称',
`level` TINYINT UNSIGNED NOT NULL COMMENT '等级序号',
`min_points` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '最低成长值',
`discount` DECIMAL(3,2) DEFAULT 1.00 COMMENT '折扣(0.95=95折)',
`benefits` JSON DEFAULT NULL COMMENT '权益描述',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_level` (`level`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='会员等级表';
-- ============================================================
-- 16. 用户会员信息表
-- ============================================================
CREATE TABLE `user_members` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`user_id` BIGINT UNSIGNED NOT NULL COMMENT '用户ID',
`level_id` BIGINT UNSIGNED NOT NULL DEFAULT 1 COMMENT '等级ID',
`points` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '积分',
`growth_value` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '成长值',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_user_id` (`user_id`),
KEY `idx_level_id` (`level_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户会员信息表';
-- ============================================================
-- 17-18. 旧版财务表已删除,使用新版财务系统(见第四部分)
-- ============================================================
-- ============================================================
-- 19. 消息通知表
-- ============================================================
CREATE TABLE `notifications` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`user_id` BIGINT UNSIGNED NOT NULL COMMENT '用户ID',
`title` VARCHAR(200) NOT NULL COMMENT '标题',
`content` TEXT NOT NULL COMMENT '内容',
`type` ENUM('order','system','promotion','review') NOT NULL COMMENT '类型',
`is_read` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否已读',
`extra` JSON DEFAULT NULL COMMENT '附加数据',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_user_read` (`user_id`,`is_read`),
KEY `idx_type` (`type`),
KEY `idx_created_at` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='消息通知表';
-- ============================================================
-- 20. 广告位表
-- ============================================================
CREATE TABLE `advertisements` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`position` VARCHAR(50) NOT NULL COMMENT '广告位标识',
`title` VARCHAR(200) DEFAULT '' COMMENT '广告标题',
`image` VARCHAR(500) NOT NULL COMMENT '广告图片',
`link_type` ENUM('room','merchant','page','url') DEFAULT 'url' COMMENT '链接类型',
`link_value` VARCHAR(500) DEFAULT '' COMMENT '链接值',
`sort` INT DEFAULT 0 COMMENT '排序',
`status` ENUM('active','inactive') DEFAULT 'active' COMMENT '状态',
`start_time` DATETIME DEFAULT NULL COMMENT '投放开始时间',
`end_time` DATETIME DEFAULT NULL COMMENT '投放结束时间',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_position` (`position`),
KEY `idx_status_sort` (`status`,`sort`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='广告位表';
-- ============================================================
-- 21. 平台配置表
-- ============================================================
CREATE TABLE `platform_configs` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`config_key` VARCHAR(100) NOT NULL COMMENT '配置键',
`config_value` TEXT NOT NULL COMMENT '配置值',
`description` VARCHAR(200) DEFAULT '' COMMENT '说明',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_config_key` (`config_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='平台配置表';
-- ============================================================
-- 22. 操作日志表
-- ============================================================
CREATE TABLE `operation_logs` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`user_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '操作人ID',
`module` VARCHAR(50) NOT NULL COMMENT '模块',
`action` VARCHAR(50) NOT NULL COMMENT '操作',
`target_type` VARCHAR(50) DEFAULT NULL COMMENT '目标类型',
`target_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '目标ID',
`detail` JSON DEFAULT NULL COMMENT '操作详情',
`ip` VARCHAR(45) DEFAULT NULL COMMENT 'IP地址',
`user_agent` VARCHAR(500) DEFAULT NULL COMMENT 'UA',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_module_action` (`module`,`action`),
KEY `idx_created_at` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='操作日志表';
-- ============================================================
-- ============================================================
-- 24. 营销活动总表
-- ============================================================
CREATE TABLE `mkt_activities` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(100) NOT NULL COMMENT '活动名称',
`type` ENUM('invite_cashback') NOT NULL DEFAULT 'invite_cashback' COMMENT '活动类型',
`enabled` TINYINT(1) NOT NULL DEFAULT 1 COMMENT '是否启用',
`config` JSON NOT NULL COMMENT '活动配置',
`start_time` DATETIME DEFAULT NULL COMMENT '活动开始时间',
`end_time` DATETIME DEFAULT NULL COMMENT '活动结束时间',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_type` (`type`),
KEY `idx_enabled` (`enabled`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='营销活动总表';
-- ============================================================
-- 25. 邀请关系表
-- ============================================================
CREATE TABLE `mkt_invitations` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`activity_id` BIGINT UNSIGNED NOT NULL COMMENT '活动ID',
`inviter_id` BIGINT UNSIGNED NOT NULL COMMENT '邀请人用户ID',
`invitee_id` BIGINT UNSIGNED NOT NULL COMMENT '被邀请人用户ID',
`invite_code` VARCHAR(32) NOT NULL COMMENT '邀请码',
`scene` VARCHAR(100) DEFAULT NULL COMMENT '小程序scene参数',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_invitee_id` (`invitee_id`),
KEY `idx_activity_id` (`activity_id`),
KEY `idx_inviter_id` (`inviter_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='邀请关系表';
-- ============================================================
-- 26. 返现记录表
-- ============================================================
CREATE TABLE `mkt_cashbacks` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`activity_id` BIGINT UNSIGNED NOT NULL COMMENT '活动ID',
`inviter_id` BIGINT UNSIGNED NOT NULL COMMENT '邀请人用户ID',
`invitee_id` BIGINT UNSIGNED NOT NULL COMMENT '被邀请人用户ID',
`order_id` BIGINT UNSIGNED NOT NULL COMMENT '关联订单ID',
`order_no` VARCHAR(32) NOT NULL COMMENT '订单号',
`order_amount` DECIMAL(10,2) NOT NULL COMMENT '订单金额',
`order_index` TINYINT UNSIGNED NOT NULL COMMENT '被邀请人第几单(1/2)',
`rate` DECIMAL(5,4) NOT NULL COMMENT '返现比例',
`amount` DECIMAL(10,2) NOT NULL COMMENT '返现金额',
`status` ENUM('pending','settled','cancelled') NOT NULL DEFAULT 'pending' COMMENT '状态',
`settled_at` DATETIME DEFAULT NULL COMMENT '到账时间',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_order_inviter` (`order_id`, `inviter_id`),
KEY `idx_activity_id` (`activity_id`),
KEY `idx_inviter_id` (`inviter_id`),
KEY `idx_invitee_id` (`invitee_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='返现记录表';
-- ============================================================
-- 27. 用户邀请统计表
-- ============================================================
CREATE TABLE `mkt_user_invite_stats` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`activity_id` BIGINT UNSIGNED NOT NULL COMMENT '活动ID',
`user_id` BIGINT UNSIGNED NOT NULL COMMENT '用户ID',
`invite_code` VARCHAR(32) NOT NULL COMMENT '专属邀请码',
`total_invites` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '累计邀请人数',
`total_orders` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '累计下单人数',
`total_cashback` DECIMAL(10,2) NOT NULL DEFAULT 0.00 COMMENT '累计返现金额',
`available_balance` DECIMAL(10,2) NOT NULL DEFAULT 0.00 COMMENT '可提现余额',
`withdrawn_amount` DECIMAL(10,2) NOT NULL DEFAULT 0.00 COMMENT '已提现金额',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_activity_user` (`activity_id`, `user_id`),
UNIQUE KEY `uk_invite_code` (`invite_code`),
KEY `idx_activity_id` (`activity_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户邀请统计表';
-- ============================================================
-- 28. 邀请提现申请表
-- ============================================================
CREATE TABLE `mkt_invite_withdrawals` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`activity_id` BIGINT UNSIGNED NOT NULL COMMENT '活动ID',
`user_id` BIGINT UNSIGNED NOT NULL COMMENT '用户ID',
`amount` DECIMAL(10,2) NOT NULL COMMENT '提现金额',
`status` ENUM('pending','approved','rejected','paid') NOT NULL DEFAULT 'pending' COMMENT '状态',
`reject_reason` VARCHAR(500) DEFAULT NULL COMMENT '拒绝原因',
`reviewer_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '审核人ID',
`reviewed_at` DATETIME DEFAULT NULL COMMENT '审核时间',
`paid_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,
PRIMARY KEY (`id`),
KEY `idx_activity_id` (`activity_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='邀请提现申请表';
-- ============================================================
-- 补充字段(原 002-004 迁移脚本)
-- ============================================================
-- 注意:cover_image 和 sales_count 已经在 merchants 表定义中包含,无需再次添加
-- 修复 mkt_user_invite_stats 表的 user_id 字段
-- 确保字段定义正确
ALTER TABLE `mkt_user_invite_stats`
MODIFY COLUMN `user_id` BIGINT UNSIGNED NOT NULL COMMENT '用户ID';
-- ============================================================
-- 财务系统 - 按角色拆分账户、交易流水、提现表
-- 版本: v3.0
-- 说明: 用户、商家、平台的账户和交易流水独立管理
-- ============================================================
-- ============================================================
-- 第一部分:账户表(按角色拆分)
-- ============================================================
-- 1. 用户账户表
CREATE TABLE IF NOT EXISTS `user_accounts` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '账户ID',
`user_id` BIGINT UNSIGNED NOT NULL COMMENT '用户ID',
`balance` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '可用余额',
`frozen_balance` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '冻结余额(提现中)',
`total_income` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '累计收入(邀请返现)',
`total_expense` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '累计支出(提现)',
`total_cashback` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '累计返现收入',
`total_withdraw` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '累计提现金额',
`version` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
`status` ENUM('active','frozen','closed') NOT NULL DEFAULT 'active' COMMENT '账户状态',
`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_user_id` (`user_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户账户表';
-- 2. 商家账户表
CREATE TABLE IF NOT EXISTS `merchant_accounts` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '账户ID',
`merchant_id` BIGINT UNSIGNED NOT NULL COMMENT '商家ID',
`balance` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '可用余额',
`frozen_balance` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '冻结余额(提现中)',
`debt_amount` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '欠款金额(退款扣回)',
`total_income` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '累计收入(订单结算)',
`total_expense` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '累计支出(提现+退款扣回)',
`total_settlement` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '累计结算金额',
`total_withdraw` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '累计提现金额',
`last_settlement_at` DATETIME DEFAULT NULL COMMENT '最后结算时间',
`pending_settlement` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '待结算金额',
`version` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
`status` ENUM('active','frozen','closed') NOT NULL DEFAULT 'active' COMMENT '账户状态',
`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_merchant_id` (`merchant_id`),
KEY `idx_status` (`status`),
KEY `idx_last_settlement_at` (`last_settlement_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='商家账户表';
-- 3. 系统总账户表(记录整个系统的资金流入流出)
CREATE TABLE IF NOT EXISTS `system_accounts` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '账户ID',
`account_name` VARCHAR(50) NOT NULL COMMENT '账户名称(如:SYSTEM_MAIN',
`balance` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '可用余额(total_income - total_refund - total_withdrawn',
`total_income` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '累计收入(用户实付总额)',
`total_refund` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '累计退款',
`total_withdrawn` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '累计提现(所有提现)',
`version` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
`status` ENUM('active','frozen','closed') NOT NULL DEFAULT 'active' COMMENT '账户状态',
`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_account_name` (`account_name`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统总账户表(资金守恒验证:balance应等于所有用户账户+商家账户+平台账户余额之和)';
-- 4. 平台账户表(记录平台净收益)
CREATE TABLE IF NOT EXISTS `platform_accounts` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '账户ID',
`account_name` VARCHAR(50) NOT NULL COMMENT '账户名称(如:PLATFORM_MAIN、PLATFORM_BACKUP',
`balance` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '可用余额(平台净收益 = total_income - total_expense',
`frozen_balance` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '冻结余额(提现中)',
`total_income` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '累计收入(服务费收入)',
`total_expense` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '累计支出(邀请返现支出)',
`version` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
`status` ENUM('active','frozen','closed') NOT NULL DEFAULT 'active' COMMENT '账户状态',
`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_account_name` (`account_name`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='平台账户表(平台净收益 = 服务费 - 邀请返现)';
-- ============================================================
-- 第二部分:交易流水表(按角色拆分)
-- ============================================================
-- 4. 系统总账户交易流水表
CREATE TABLE IF NOT EXISTS `system_transactions` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '流水ID',
`transaction_no` VARCHAR(32) NOT NULL COMMENT '交易流水号(全局唯一)',
`account_id` BIGINT UNSIGNED NOT NULL COMMENT '系统账户ID',
`direction` ENUM('income','expense') NOT NULL COMMENT '方向:income-收入/expense-支出',
`amount` DECIMAL(12,2) NOT NULL COMMENT '金额(正数)',
`balance_before` DECIMAL(12,2) NOT NULL COMMENT '交易前余额',
`balance_after` DECIMAL(12,2) NOT NULL COMMENT '交易后余额',
`transaction_type` VARCHAR(50) NOT NULL COMMENT '交易类型',
`business_type` VARCHAR(50) NOT NULL COMMENT '业务类型:order_payment/refund/withdraw',
`business_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '业务ID(订单ID/退款ID/提现ID等)',
`business_no` VARCHAR(32) DEFAULT NULL COMMENT '业务单号',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_transaction_no` (`transaction_no`),
KEY `idx_account_id` (`account_id`),
KEY `idx_transaction_type` (`transaction_type`),
KEY `idx_business` (`business_type`, `business_id`),
KEY `idx_created_at` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统总账户交易流水表';
-- 5. 用户交易流水表
CREATE TABLE IF NOT EXISTS `user_transactions` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '流水ID',
`transaction_no` VARCHAR(32) NOT NULL COMMENT '交易流水号(全局唯一)',
`user_id` BIGINT UNSIGNED NOT NULL COMMENT '用户ID',
`account_id` BIGINT UNSIGNED NOT NULL COMMENT '用户账户ID',
`direction` ENUM('income','expense') NOT NULL COMMENT '方向:income-收入/expense-支出',
`amount` DECIMAL(12,2) NOT NULL COMMENT '金额(正数)',
`balance_before` DECIMAL(12,2) NOT NULL COMMENT '交易前余额',
`balance_after` DECIMAL(12,2) NOT NULL COMMENT '交易后余额',
`transaction_type` VARCHAR(50) NOT NULL COMMENT '交易类型',
`business_type` VARCHAR(50) NOT NULL COMMENT '业务类型:cashback/withdraw/refund',
`business_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '业务ID(订单ID/提现ID等)',
`business_no` VARCHAR(32) DEFAULT NULL COMMENT '业务单号',
`related_account_type` ENUM('platform','merchant') DEFAULT NULL COMMENT '对方账户类型',
`related_account_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '对方账户ID',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_transaction_no` (`transaction_no`),
KEY `idx_user_id` (`user_id`),
KEY `idx_account_id` (`account_id`),
KEY `idx_transaction_type` (`transaction_type`),
KEY `idx_business` (`business_type`, `business_id`),
KEY `idx_created_at` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户交易流水表';
-- 6. 商家交易流水表
CREATE TABLE IF NOT EXISTS `merchant_transactions` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '流水ID',
`transaction_no` VARCHAR(32) NOT NULL COMMENT '交易流水号(全局唯一)',
`merchant_id` BIGINT UNSIGNED NOT NULL COMMENT '商家ID',
`account_id` BIGINT UNSIGNED NOT NULL COMMENT '商家账户ID',
`direction` ENUM('income','expense') NOT NULL COMMENT '方向:income-收入/expense-支出',
`amount` DECIMAL(12,2) NOT NULL COMMENT '金额(正数)',
`balance_before` DECIMAL(12,2) NOT NULL COMMENT '交易前余额',
`balance_after` DECIMAL(12,2) NOT NULL COMMENT '交易后余额',
`transaction_type` VARCHAR(50) NOT NULL COMMENT '交易类型',
`business_type` VARCHAR(50) NOT NULL COMMENT '业务类型:settlement/withdraw/refund',
`business_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '业务ID(结算单ID/提现ID等)',
`business_no` VARCHAR(32) DEFAULT NULL COMMENT '业务单号',
`related_account_type` ENUM('platform') DEFAULT NULL COMMENT '对方账户类型',
`related_account_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '对方账户ID',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_transaction_no` (`transaction_no`),
KEY `idx_merchant_id` (`merchant_id`),
KEY `idx_account_id` (`account_id`),
KEY `idx_transaction_type` (`transaction_type`),
KEY `idx_business` (`business_type`, `business_id`),
KEY `idx_created_at` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='商家交易流水表';
-- 7. 平台交易流水表
CREATE TABLE IF NOT EXISTS `platform_transactions` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '流水ID',
`transaction_no` VARCHAR(32) NOT NULL COMMENT '交易流水号(全局唯一)',
`account_id` BIGINT UNSIGNED NOT NULL COMMENT '平台账户ID',
`direction` ENUM('income','expense') NOT NULL COMMENT '方向:income-收入/expense-支出',
`amount` DECIMAL(12,2) NOT NULL COMMENT '金额(正数)',
`balance_before` DECIMAL(12,2) NOT NULL COMMENT '交易前余额',
`balance_after` DECIMAL(12,2) NOT NULL COMMENT '交易后余额',
`transaction_type` VARCHAR(50) NOT NULL COMMENT '交易类型',
`business_type` VARCHAR(50) NOT NULL COMMENT '业务类型:service_fee/cashback/withdraw',
`business_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '业务ID',
`business_no` VARCHAR(32) DEFAULT NULL COMMENT '业务单号',
`related_account_type` ENUM('user','merchant') DEFAULT NULL COMMENT '对方账户类型',
`related_account_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '对方账户ID',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_transaction_no` (`transaction_no`),
KEY `idx_account_id` (`account_id`),
KEY `idx_transaction_type` (`transaction_type`),
KEY `idx_business` (`business_type`, `business_id`),
KEY `idx_created_at` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='平台交易流水表';
-- ============================================================
-- 第三部分:提现表(按角色拆分)
-- ============================================================
-- 7. 用户提现表
CREATE TABLE IF NOT EXISTS `user_withdrawals` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '提现ID',
`withdraw_no` VARCHAR(32) NOT NULL COMMENT '提现单号(全局唯一)',
`user_id` BIGINT UNSIGNED NOT NULL COMMENT '用户ID',
`account_id` BIGINT UNSIGNED NOT NULL COMMENT '用户账户ID',
`amount` DECIMAL(12,2) NOT NULL COMMENT '提现金额',
`fee` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '手续费',
`actual_amount` DECIMAL(12,2) NOT NULL COMMENT '实际到账金额',
`payment_channel` ENUM('wechat','alipay') NOT NULL COMMENT '提现渠道',
`payment_account` VARCHAR(100) DEFAULT NULL COMMENT '收款账号',
`payment_name` VARCHAR(50) DEFAULT NULL COMMENT '收款人姓名',
`status` ENUM('pending','approved','rejected','paid','failed') NOT NULL DEFAULT 'pending' COMMENT '状态',
`reject_reason` VARCHAR(500) DEFAULT NULL COMMENT '拒绝原因',
`reviewer_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '审核人ID',
`reviewed_at` DATETIME DEFAULT NULL COMMENT '审核时间',
`paid_at` DATETIME DEFAULT NULL COMMENT '打款时间',
`payment_no` VARCHAR(100) DEFAULT NULL COMMENT '第三方支付单号',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`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_withdraw_no` (`withdraw_no`),
KEY `idx_user_id` (`user_id`),
KEY `idx_account_id` (`account_id`),
KEY `idx_status` (`status`),
KEY `idx_created_at` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户提现表';
-- 8. 商家提现表
CREATE TABLE IF NOT EXISTS `merchant_withdrawals` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '提现ID',
`withdraw_no` VARCHAR(32) NOT NULL COMMENT '提现单号(全局唯一)',
`merchant_id` BIGINT UNSIGNED NOT NULL COMMENT '商家ID',
`account_id` BIGINT UNSIGNED NOT NULL COMMENT '商家账户ID',
`amount` DECIMAL(12,2) NOT NULL COMMENT '提现金额',
`fee` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '手续费',
`actual_amount` DECIMAL(12,2) NOT NULL COMMENT '实际到账金额',
`payment_channel` ENUM('bank','wechat','alipay') NOT NULL DEFAULT 'bank' COMMENT '提现渠道',
`bank_name` VARCHAR(100) DEFAULT NULL COMMENT '开户银行',
`bank_account` VARCHAR(50) DEFAULT NULL COMMENT '银行账号',
`account_name` VARCHAR(50) DEFAULT NULL COMMENT '账户名',
`status` ENUM('pending','approved','rejected','paid','failed') NOT NULL DEFAULT 'pending' COMMENT '状态',
`reject_reason` VARCHAR(500) DEFAULT NULL COMMENT '拒绝原因',
`reviewer_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '审核人ID',
`reviewed_at` DATETIME DEFAULT NULL COMMENT '审核时间',
`paid_at` DATETIME DEFAULT NULL COMMENT '打款时间',
`payment_no` VARCHAR(100) DEFAULT NULL COMMENT '第三方支付单号',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`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_withdraw_no` (`withdraw_no`),
KEY `idx_merchant_id` (`merchant_id`),
KEY `idx_account_id` (`account_id`),
KEY `idx_status` (`status`),
KEY `idx_created_at` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='商家提现表';
-- 9. 平台提现表
CREATE TABLE IF NOT EXISTS `platform_withdrawals` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '提现ID',
`withdraw_no` VARCHAR(32) NOT NULL COMMENT '提现单号(全局唯一)',
`account_id` BIGINT UNSIGNED NOT NULL COMMENT '平台账户ID',
`amount` DECIMAL(12,2) NOT NULL COMMENT '提现金额',
`fee` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '手续费',
`actual_amount` DECIMAL(12,2) NOT NULL COMMENT '实际到账金额',
`payment_channel` ENUM('bank') NOT NULL DEFAULT 'bank' COMMENT '提现渠道',
`bank_name` VARCHAR(100) NOT NULL COMMENT '开户银行',
`bank_account` VARCHAR(50) NOT NULL COMMENT '银行账号',
`account_name` VARCHAR(50) NOT NULL COMMENT '账户名',
`status` ENUM('pending','approved','rejected','paid','failed') NOT NULL DEFAULT 'pending' COMMENT '状态',
`reject_reason` VARCHAR(500) DEFAULT NULL COMMENT '拒绝原因',
`reviewer_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '审核人ID(超级管理员)',
`reviewed_at` DATETIME DEFAULT NULL COMMENT '审核时间',
`paid_at` DATETIME DEFAULT NULL COMMENT '打款时间',
`payment_no` VARCHAR(100) DEFAULT NULL COMMENT '第三方支付单号',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`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_withdraw_no` (`withdraw_no`),
KEY `idx_account_id` (`account_id`),
KEY `idx_status` (`status`),
KEY `idx_created_at` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='平台提现表';
-- ============================================================
-- 第四部分:结算和对账表
-- ============================================================
-- 10. 结算单表 - 商家按周期结算订单收入
CREATE TABLE IF NOT EXISTS `settlements` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '结算单ID',
`settlement_no` VARCHAR(32) NOT NULL COMMENT '结算单号',
`merchant_id` BIGINT UNSIGNED NOT NULL COMMENT '商家ID',
`period_start` DATE NOT NULL COMMENT '结算周期开始日期',
`period_end` DATE NOT NULL COMMENT '结算周期结束日期',
`order_count` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '订单数量',
`order_amount` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '订单总额',
`service_fee` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '服务费总额',
`settlement_amount` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '结算金额(订单总额-服务费)',
`debt_amount` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '扣除欠款金额',
`actual_amount` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '实际结算金额(扣除欠款后)',
`status` ENUM('pending','settled','failed') NOT NULL DEFAULT 'pending' COMMENT '状态',
`settled_at` DATETIME DEFAULT NULL COMMENT '结算时间',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`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_settlement_no` (`settlement_no`),
KEY `idx_merchant_id` (`merchant_id`),
KEY `idx_period` (`period_start`, `period_end`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='结算单表';
-- 11. 结算明细表 - 记录结算单包含的订单明细
CREATE TABLE IF NOT EXISTS `settlement_items` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '明细ID',
`settlement_id` BIGINT UNSIGNED NOT NULL COMMENT '结算单ID',
`order_id` BIGINT UNSIGNED NOT NULL COMMENT '订单ID',
`order_no` VARCHAR(32) NOT NULL COMMENT '订单号',
`order_amount` DECIMAL(12,2) NOT NULL COMMENT '订单金额',
`service_fee` DECIMAL(12,2) NOT NULL COMMENT '服务费',
`settlement_amount` DECIMAL(12,2) NOT NULL COMMENT '结算金额',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_settlement_id` (`settlement_id`),
KEY `idx_order_id` (`order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='结算明细表';
-- 12. 日对账表 - 每日自动对账,确保资金平衡
CREATE TABLE IF NOT EXISTS `daily_reconciliations` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '对账ID',
`reconciliation_date` DATE NOT NULL COMMENT '对账日期',
`platform_balance` DECIMAL(12,2) NOT NULL COMMENT '平台账户余额',
`merchant_balance_sum` DECIMAL(12,2) NOT NULL COMMENT '所有商家账户余额总和',
`user_balance_sum` DECIMAL(12,2) NOT NULL COMMENT '所有用户账户余额总和',
`total_balance` DECIMAL(12,2) NOT NULL COMMENT '总余额(平台+商家+用户)',
`order_income` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '当日订单收入',
`service_fee` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '当日服务费',
`merchant_settlement` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '当日商家结算',
`cashback_expense` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '当日返现支出',
`withdraw_expense` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '当日提现支出',
`refund_expense` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '当日退款支出',
`status` ENUM('balanced','unbalanced') NOT NULL DEFAULT 'balanced' COMMENT '状态',
`error_message` TEXT DEFAULT NULL COMMENT '异常信息',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_date` (`reconciliation_date`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='日对账表';
-- ============================================================
-- 常住人信息表
-- ============================================================
CREATE TABLE `guests` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`user_id` BIGINT UNSIGNED NOT NULL COMMENT '用户ID',
`name` VARCHAR(50) NOT NULL COMMENT '姓名',
`phone` VARCHAR(20) NOT NULL COMMENT '手机号',
`id_card` VARCHAR(18) DEFAULT NULL COMMENT '身份证号',
`gender` ENUM('male','female') DEFAULT NULL COMMENT '性别',
`is_default` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否默认',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_is_default` (`is_default`),
CONSTRAINT `fk_guests_user_id` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='常住人信息表';
-- ============================================================
-- 第五部分:表结构补充和字段添加
-- ============================================================
-- 1. 订单表添加第三方支付交易号字段(用于微信支付退款)
ALTER TABLE `orders`
ADD COLUMN `transaction_id` VARCHAR(64) NULL COMMENT '第三方支付交易号' AFTER `payment_no`,
ADD INDEX `idx_transaction_id` (`transaction_id`);
-- 2. 用户表添加实名认证字段
ALTER TABLE `users`
ADD COLUMN `is_verified` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否实名认证' AFTER `id_card`,
ADD COLUMN `verified_at` DATETIME DEFAULT NULL COMMENT '实名认证时间' AFTER `is_verified`;
-- ============================================================
-- 第六部分:初始化数据
-- ============================================================
-- 注意:平台账户等初始数据请在 database/seeds/001_init_data.sql 中初始化
-- ============================================================
-- 第七部分:创建触发器
-- ============================================================
-- 注意:触发器使用 DELIMITER 命令,某些数据库工具不支持
-- 如果执行失败,请使用 mysql 命令行工具执行,或在应用层处理账户创建逻辑
-- 1. 用户注册时自动创建账户
-- DROP TRIGGER IF EXISTS `trg_user_create_account`;
-- DELIMITER $$
-- CREATE TRIGGER `trg_user_create_account` AFTER INSERT ON `users`
-- FOR EACH ROW
-- BEGIN
-- IF NEW.status = 'active' THEN
-- INSERT INTO `user_accounts` (`user_id`, `balance`, `frozen_balance`, `total_income`, `total_expense`, `status`)
-- VALUES (NEW.id, 0.00, 0.00, 0.00, 0.00, 'active');
-- END IF;
-- END$$
-- DELIMITER ;
-- 2. 商家审核通过时自动创建账户
-- DROP TRIGGER IF EXISTS `trg_merchant_create_account`;
-- DELIMITER $$
-- CREATE TRIGGER `trg_merchant_create_account` AFTER UPDATE ON `merchants`
-- FOR EACH ROW
-- BEGIN
-- IF NEW.status = 'approved' AND OLD.status != 'approved' THEN
-- INSERT INTO `merchant_accounts` (`merchant_id`, `balance`, `frozen_balance`, `total_income`, `total_expense`, `status`)
-- VALUES (NEW.id, 0.00, 0.00, 0.00, 0.00, 'active');
-- END IF;
-- END$$
-- DELIMITER ;
-- ============================================================
-- 完成
-- ============================================================
SELECT '数据库初始化完成!' as message;
SELECT '已创建平台账户' as info;