@@ -1,6 +1,7 @@
-- ============================================
-- ============================================
-- 数据库初始化脚本
-- 数据库初始化脚本 (合并版本)
-- 包含所有表结构和基础数据
-- 包含所有表结构、索引 和基础数据
-- 创建时间: 2026-06-05
-- ============================================
-- ============================================
SET NAMES utf8mb4 ;
SET NAMES utf8mb4 ;
@@ -10,105 +11,112 @@ SET FOREIGN_KEY_CHECKS = 0;
-- 用户相关表
-- 用户相关表
-- -------------------------------------------
-- -------------------------------------------
-- 用户主表:存储用户基本信息、实名状态、风控状态等
CREATE TABLE IF NOT EXISTS users (
CREATE TABLE IF NOT EXISTS users (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
phone VARCHAR ( 32 ) NOT NULL ,
phone VARCHAR ( 32 ) NOT NULL COMMENT ' 手机号 ' ,
nickname VARCHAR ( 64 ) NOT NULL DEFAULT ' ' ,
nickname VARCHAR ( 64 ) NOT NULL DEFAULT ' ' COMMENT ' 昵称 ' ,
avatar_url VARCHAR ( 512 ) NOT NULL DEFAULT ' ' ,
avatar_url VARCHAR ( 512 ) NOT NULL DEFAULT ' ' COMMENT ' 头像URL ' ,
realname_status VARCHAR ( 32 ) NOT NULL DEFAULT ' unverified ' ,
realname_status VARCHAR ( 32 ) NOT NULL DEFAULT ' unverified ' COMMENT ' 实名状态: unverified未实名, pending审核中, verified已实名, failed失败 ' ,
risk_status VARCHAR ( 32 ) NOT NULL DEFAULT ' normal ' ,
risk_status VARCHAR ( 32 ) NOT NULL DEFAULT ' normal ' COMMENT ' 风控状态: normal正常, warning警告, frozen冻结 ' ,
credit_score INT NOT NULL DEFAULT 100 ,
credit_score INT NOT NULL DEFAULT 100 COMMENT ' 信用分 ' ,
status VARCHAR ( 32 ) NOT NULL DEFAULT ' active ' ,
status VARCHAR ( 32 ) NOT NULL DEFAULT ' active ' COMMENT ' 账号状态: active活跃, inactive停用, banned封禁 ' ,
last_login_at DATETIME NULL ,
last_login_at DATETIME NULL COMMENT ' 最后登录时间 ' ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
UNIQUE KEY uk_users_phone ( phone )
UNIQUE KEY uk_users_phone ( phone ) ,
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci ;
KEY idx_users_realname_status ( realname_status , status )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = ' 用户表 ' ;
-- 用户实名认证记录表
CREATE TABLE IF NOT EXISTS user_realname (
CREATE TABLE IF NOT EXISTS user_realname (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
user_id BIGINT UNSIGNED NOT NULL ,
user_id BIGINT UNSIGNED NOT NULL COMMENT ' 用户ID ' ,
provider VARCHAR ( 32 ) NOT NULL ,
provider VARCHAR ( 32 ) NOT NULL COMMENT ' 认证服务商 ' ,
provider_order_no VARCHAR ( 128 ) NOT NULL DEFAULT ' ' ,
provider_order_no VARCHAR ( 128 ) NOT NULL DEFAULT ' ' COMMENT ' 服务商订单号 ' ,
status VARCHAR ( 32 ) NOT NULL DEFAULT ' pending ' ,
status VARCHAR ( 32 ) NOT NULL DEFAULT ' pending ' COMMENT ' 认证状态: pending待处理, success成功, failed失败 ' ,
masked_name VARCHAR ( 64 ) NOT NULL DEFAULT ' ' ,
masked_name VARCHAR ( 64 ) NOT NULL DEFAULT ' ' COMMENT ' 脱敏姓名 ' ,
masked_id_no VARCHAR ( 64 ) NOT NULL DEFAULT ' ' ,
masked_id_no VARCHAR ( 64 ) NOT NULL DEFAULT ' ' COMMENT ' 脱敏身份证号 ' ,
verified_at DATETIME NULL ,
verified_at DATETIME NULL COMMENT ' 认证通过时间 ' ,
fail_reason VARCHAR ( 255 ) NOT NULL DEFAULT ' ' ,
fail_reason VARCHAR ( 255 ) NOT NULL DEFAULT ' ' COMMENT ' 失败原因 ' ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
UNIQUE KEY uk_user_realname_user_id ( user_id ) ,
UNIQUE KEY uk_user_realname_user_id ( user_id ) ,
KEY idx_user_realname_provider_order_no ( provider_order_no )
KEY idx_user_realname_provider_order_no ( provider_order_no )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci ;
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = ' 用户实名认证记录 ' ;
-- -------------------------------------------
-- -------------------------------------------
-- 游戏账号和商品表
-- 游戏账号和商品表
-- -------------------------------------------
-- -------------------------------------------
-- 游戏账号表:存储用户的游戏账号信息
CREATE TABLE IF NOT EXISTS game_accounts (
CREATE TABLE IF NOT EXISTS game_accounts (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
owner_id BIGINT UNSIGNED NOT NULL ,
owner_id BIGINT UNSIGNED NOT NULL COMMENT ' 账号所有者ID ' ,
game_name VARCHAR ( 64 ) NOT NULL DEFAULT ' delta_force ' ,
game_name VARCHAR ( 64 ) NOT NULL DEFAULT ' delta_force ' COMMENT ' 游戏名称 ' ,
server_region VARCHAR ( 64 ) NOT NULL ,
server_region VARCHAR ( 64 ) NOT NULL COMMENT ' 服务器区域 ' ,
login_platform VARCHAR ( 64 ) NOT NULL ,
login_platform VARCHAR ( 64 ) NOT NULL COMMENT ' 登录平台: steam/epic/wegame等 ' ,
title VARCHAR ( 128 ) NOT NULL ,
title VARCHAR ( 128 ) NOT NULL COMMENT ' 账号标题 ' ,
description TEXT NULL ,
description TEXT NULL COMMENT ' 账号描述 ' ,
rank_level VARCHAR ( 64 ) NOT NULL DEFAULT ' ' ,
rank_level VARCHAR ( 64 ) NOT NULL DEFAULT ' ' COMMENT ' 段位等级 ' ,
haf_coin_amount BIGINT NOT NULL DEFAULT 0 ,
haf_coin_amount BIGINT NOT NULL DEFAULT 0 COMMENT ' HAF币数量 ' ,
asset_summary JSON NULL ,
asset_summary JSON NULL COMMENT ' 资产摘要(JSON格式) ' ,
season_tags JSON NULL ,
season_tags JSON NULL COMMENT ' 赛季标签(JSON数组) ' ,
screenshot_urls JSON NULL ,
screenshot_urls JSON NULL COMMENT ' 截图URL列表(JSON数组) ' ,
status VARCHAR ( 32 ) NOT NULL DEFAULT ' draft ' ,
status VARCHAR ( 32 ) NOT NULL DEFAULT ' draft ' COMMENT ' 状态: draft草稿, active使用中, deleted已删除 ' ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
KEY idx_game_accounts_owner_id ( owner_id ) ,
KEY idx_game_accounts_owner_id ( owner_id ) ,
KEY idx_game_accounts_filter ( game_name , server_region , login_platform )
KEY idx_game_accounts_filter ( game_name , server_region , login_platform )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci ;
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = ' 游戏账号表 ' ;
-- 租号商品列表:用户发布的出租商品
CREATE TABLE IF NOT EXISTS rental_listings (
CREATE TABLE IF NOT EXISTS rental_listings (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
account_id BIGINT UNSIGNED NOT NULL ,
account_id BIGINT UNSIGNED NOT NULL COMMENT ' 关联的游戏账号ID ' ,
owner_id BIGINT UNSIGNED NOT NULL ,
owner_id BIGINT UNSIGNED NOT NULL COMMENT ' 号主ID ' ,
price DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 ,
price DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 COMMENT ' 租金(元/小时) ' ,
deposit_amount DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 ,
deposit_amount DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 COMMENT ' 押金金额 ' ,
in_transaction TINYINT ( 1 ) NOT NULL DEFAULT 0 ,
in_transaction TINYINT ( 1 ) NOT NULL DEFAULT 0 COMMENT ' 是否正在交易中: 0否, 1是 ' ,
status VARCHAR ( 32 ) NOT NULL DEFAULT ' draft ' ,
status VARCHAR ( 32 ) NOT NULL DEFAULT ' draft ' COMMENT ' 商品状态: draft草稿, active上架, offline下架, deleted删除 ' ,
review_status VARCHAR ( 32 ) NOT NULL DEFAULT ' none ' ,
review_status VARCHAR ( 32 ) NOT NULL DEFAULT ' none ' COMMENT ' 审核状态: none无需审核, pending待审核, approved通过, rejected拒绝 ' ,
review_reason VARCHAR ( 255 ) NOT NULL DEFAULT ' ' ,
review_reason VARCHAR ( 255 ) NOT NULL DEFAULT ' ' COMMENT ' 审核拒绝原因 ' ,
published_at DATETIME NULL ,
published_at DATETIME NULL COMMENT ' 发布时间 ' ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
KEY idx_rental_listings_account_id ( account_id ) ,
KEY idx_rental_listings_account_id ( account_id ) ,
KEY idx_rental_listings_owner_id ( owner_id ) ,
KEY idx_rental_listings_owner_id ( owner_id ) ,
KEY idx_rental_listings_filter ( status , review_status , in_transaction , price )
KEY idx_rental_listings_filter ( status , review_status , in_transaction , price ) ,
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci ;
KEY idx_rental_listings_published ( status , review_status , published_at DESC )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = ' 租号商品列表 ' ;
-- -------------------------------------------
-- -------------------------------------------
-- 订单相关表
-- 订单相关表
-- -------------------------------------------
-- -------------------------------------------
-- 租号订单表:核心订单信息
CREATE TABLE IF NOT EXISTS rental_orders (
CREATE TABLE IF NOT EXISTS rental_orders (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
order_no VARCHAR ( 64 ) NOT NULL ,
order_no VARCHAR ( 64 ) NOT NULL COMMENT ' 订单号 ' ,
listing_id BIGINT UNSIGNED NOT NULL ,
listing_id BIGINT UNSIGNED NOT NULL COMMENT ' 商品ID ' ,
account_id BIGINT UNSIGNED NOT NULL ,
account_id BIGINT UNSIGNED NOT NULL COMMENT ' 游戏账号ID ' ,
owner_id BIGINT UNSIGNED NOT NULL ,
owner_id BIGINT UNSIGNED NOT NULL COMMENT ' 号主ID ' ,
renter_id BIGINT UNSIGNED NOT NULL ,
renter_id BIGINT UNSIGNED NOT NULL COMMENT ' 租客ID ' ,
rented_at DATETIME NULL ,
rented_at DATETIME NULL COMMENT ' 租用开始时间 ' ,
estimated_duration_hours INT NOT NULL DEFAULT 24 ,
estimated_duration_hours INT NOT NULL DEFAULT 24 COMMENT ' 预计租用时长(小时) ' ,
rent_amount DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 ,
rent_amount DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 COMMENT ' 租金总额 ' ,
owner_rent_amount DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 ,
owner_rent_amount DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 COMMENT ' 号主实得租金 ' ,
deposit_amount DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 ,
deposit_amount DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 COMMENT ' 押金金额 ' ,
platform_fee DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 ,
platform_fee DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 COMMENT ' 平台手续费 ' ,
account_snapshot JSON NULL ,
account_snapshot JSON NULL COMMENT ' 账号快照(下单时的账号状态) ' ,
status VARCHAR ( 32 ) NOT NULL DEFAULT ' pending_payment ' ,
status VARCHAR ( 32 ) NOT NULL DEFAULT ' pending_payment ' COMMENT ' 订单状态: pending_payment待支付, active进行中, completed已完成, cancelled已取消, closed已关闭 ' ,
handoff_status VARCHAR ( 32 ) NOT NULL DEFAULT ' none ' ,
handoff_status VARCHAR ( 32 ) NOT NULL DEFAULT ' none ' COMMENT ' 交接状态: none未开始, owner_delivered号主已交, renter_confirmed租客已确认, renter_returned租客已还, owner_received号主已收 ' ,
settlement_status VARCHAR ( 32 ) NOT NULL DEFAULT ' unsettled ' ,
settlement_status VARCHAR ( 32 ) NOT NULL DEFAULT ' unsettled ' COMMENT ' 结算状态: unsettled未结算, owner_settled号主已结算, settled完全结算 ' ,
refund_status VARCHAR ( 32 ) NOT NULL DEFAULT ' none ' ,
refund_status VARCHAR ( 32 ) NOT NULL DEFAULT ' none ' COMMENT ' 退款状态: none无退款, pending待退款, processing退款中, success退款成功, failed退款失败 ' ,
refund_amount_cent BIGINT NOT NULL DEFAULT 0 ,
refund_amount_cent BIGINT NOT NULL DEFAULT 0 COMMENT ' 退款金额(分) ' ,
refunded_at DATETIME NULL ,
refunded_at DATETIME NULL COMMENT ' 退款完成时间 ' ,
owner_settled_at DATETIME NULL ,
owner_settled_at DATETIME NULL COMMENT ' 号主结算时间 ' ,
settled_at DATETIME NULL ,
settled_at DATETIME NULL COMMENT ' 订单结算时间 ' ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
UNIQUE KEY uk_rental_orders_order_no ( order_no ) ,
UNIQUE KEY uk_rental_orders_order_no ( order_no ) ,
@@ -116,110 +124,118 @@ CREATE TABLE IF NOT EXISTS rental_orders (
KEY idx_rental_orders_owner_status ( owner_id , status ) ,
KEY idx_rental_orders_owner_status ( owner_id , status ) ,
KEY idx_rental_orders_listing_id ( listing_id ) ,
KEY idx_rental_orders_listing_id ( listing_id ) ,
KEY idx_rental_orders_refund_status ( refund_status ) ,
KEY idx_rental_orders_refund_status ( refund_status ) ,
KEY idx_rental_orders_rented_at ( status , rented_at )
KEY idx_rental_orders_rented_at ( status , rented_at ) ,
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci ;
KEY idx_rental_orders_status_created_at ( status , created_at DESC ) ,
KEY idx_rental_orders_settlement ( settlement_status , owner_id , created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = ' 租号订单表 ' ;
-- 订单结算记录表:记录租用完成后的结算信息
CREATE TABLE IF NOT EXISTS order_checkouts (
CREATE TABLE IF NOT EXISTS order_checkouts (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
order_id BIGINT UNSIGNED NOT NULL ,
order_id BIGINT UNSIGNED NOT NULL COMMENT ' 订单ID ' ,
initiated_by BIGINT UNSIGNED NOT NULL ,
initiated_by BIGINT UNSIGNED NOT NULL COMMENT ' 发起者ID ' ,
status VARCHAR ( 32 ) NOT NULL DEFAULT ' submitted ' ,
status VARCHAR ( 32 ) NOT NULL DEFAULT ' submitted ' COMMENT ' 结算状态: submitted已提交, renter_confirmed租客确认, renter_rejected租客拒绝, completed完成 ' ,
rent_amount DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 ,
rent_amount DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 COMMENT ' 租金 ' ,
owner_rent_amount DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 ,
owner_rent_amount DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 COMMENT ' 号主实得租金 ' ,
platform_fee DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 ,
platform_fee DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 COMMENT ' 平台手续费 ' ,
deposit_amount DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 ,
deposit_amount DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 COMMENT ' 押金 ' ,
consumable_amount DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 ,
consumable_amount DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 COMMENT ' 消耗品扣费 ' ,
coin_consumed_m DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 ,
coin_consumed_m DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 COMMENT ' 游戏币消耗(百万为单位) ' ,
other_amount DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 ,
other_amount DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 COMMENT ' 其他费用 ' ,
deposit_deduct_amount DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 ,
deposit_deduct_amount DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 COMMENT ' 押金扣除金额 ' ,
renter_refund_amount DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 ,
renter_refund_amount DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 COMMENT ' 租客退款金额 ' ,
owner_income_amount DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 ,
owner_income_amount DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 COMMENT ' 号主收入金额 ' ,
content TEXT NULL ,
content TEXT NULL COMMENT ' 结算说明 ' ,
evidence_urls JSON NULL ,
evidence_urls JSON NULL COMMENT ' 证据截图URL列表 ' ,
owner_adjustment_reason TEXT NULL ,
owner_adjustment_reason TEXT NULL COMMENT ' 号主调整原因 ' ,
owner_adjusted_at DATETIME NULL ,
owner_adjusted_at DATETIME NULL COMMENT ' 号主调整时间 ' ,
renter_confirmed_at DATETIME NULL ,
renter_confirmed_at DATETIME NULL COMMENT ' 租客确认时间 ' ,
renter_rejected_at DATETIME NULL ,
renter_rejected_at DATETIME NULL COMMENT ' 租客拒绝时间 ' ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
KEY idx_order_checkouts_order_id ( order_id ) ,
KEY idx_order_checkouts_order_id ( order_id ) ,
KEY idx_order_checkouts_status ( status )
KEY idx_order_checkouts_status ( status )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci ;
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = ' 订单结算记录表 ' ;
-- 账号交接记录表:记录号主和租客之间的账号交接
CREATE TABLE IF NOT EXISTS handoff_records (
CREATE TABLE IF NOT EXISTS handoff_records (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
order_id BIGINT UNSIGNED NOT NULL ,
order_id BIGINT UNSIGNED NOT NULL COMMENT ' 订单ID ' ,
from_user_id BIGINT UNSIGNED NOT NULL ,
from_user_id BIGINT UNSIGNED NOT NULL COMMENT ' 交出方用户ID ' ,
to_user_id BIGINT UNSIGNED NOT NULL ,
to_user_id BIGINT UNSIGNED NOT NULL COMMENT ' 接收方用户ID ' ,
type VARCHAR ( 32 ) NOT NULL ,
type VARCHAR ( 32 ) NOT NULL COMMENT ' 交接类型: deliver交付, return归还 ' ,
content TEXT NULL ,
content TEXT NULL COMMENT ' 交接内容(账号密码等) ' ,
attachment_urls JSON NULL ,
attachment_urls JSON NULL COMMENT ' 附件URL列表 ' ,
confirmed_by_renter_at DATETIME NULL ,
confirmed_by_renter_at DATETIME NULL COMMENT ' 租客确认时间 ' ,
confirmed_by_owner_at DATETIME NULL ,
confirmed_by_owner_at DATETIME NULL COMMENT ' 号主确认时间 ' ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
KEY idx_handoff_records_order_id ( order_id )
KEY idx_handoff_records_order_id ( order_id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci ;
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = ' 账号交接记录表 ' ;
-- -------------------------------------------
-- -------------------------------------------
-- 钱包相关表
-- 钱包相关表
-- -------------------------------------------
-- -------------------------------------------
-- 钱包账户表:用户的虚拟钱包
CREATE TABLE IF NOT EXISTS wallet_accounts (
CREATE TABLE IF NOT EXISTS wallet_accounts (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
user_id BIGINT UNSIGNED NOT NULL ,
user_id BIGINT UNSIGNED NOT NULL COMMENT ' 用户ID ' ,
available_balance DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 ,
available_balance DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 COMMENT ' 可用余额 ' ,
frozen_balance DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 ,
frozen_balance DECIMAL ( 12 , 2 ) NOT NULL DEFAULT 0 . 00 COMMENT ' 冻结余额 ' ,
status VARCHAR ( 32 ) NOT NULL DEFAULT ' active ' ,
status VARCHAR ( 32 ) NOT NULL DEFAULT ' active ' COMMENT ' 钱包状态: active正常, frozen冻结, closed关闭 ' ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
UNIQUE KEY uk_wallet_accounts_user_id ( user_id )
UNIQUE KEY uk_wallet_accounts_user_id ( user_id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci ;
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = ' 钱包账户表 ' ;
-- 钱包流水表:记录所有的资金变动
CREATE TABLE IF NOT EXISTS wallet_ledger (
CREATE TABLE IF NOT EXISTS wallet_ledger (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
ledger_no VARCHAR ( 64 ) NOT NULL ,
ledger_no VARCHAR ( 64 ) NOT NULL COMMENT ' 流水号 ' ,
user_id BIGINT UNSIGNED NOT NULL ,
user_id BIGINT UNSIGNED NOT NULL COMMENT ' 用户ID ' ,
order_id BIGINT UNSIGNED NULL ,
order_id BIGINT UNSIGNED NULL COMMENT ' 关联订单ID ' ,
direction VARCHAR ( 16 ) NOT NULL ,
direction VARCHAR ( 16 ) NOT NULL COMMENT ' 方向: in收入, out支出 ' ,
amount DECIMAL ( 12 , 2 ) NOT NULL ,
amount DECIMAL ( 12 , 2 ) NOT NULL COMMENT ' 金额 ' ,
balance_after DECIMAL ( 12 , 2 ) NOT NULL ,
balance_after DECIMAL ( 12 , 2 ) NOT NULL COMMENT ' 变动后余额 ' ,
balance_type VARCHAR ( 32 ) NOT NULL ,
balance_type VARCHAR ( 32 ) NOT NULL COMMENT ' 余额类型: available可用, frozen冻结 ' ,
biz_type VARCHAR ( 32 ) NOT NULL ,
biz_type VARCHAR ( 32 ) NOT NULL COMMENT ' 业务类型: rent_payment租金支付, deposit_freeze押金冻结, settlement结算, refund退款等 ' ,
biz_no VARCHAR ( 64 ) NOT NULL ,
biz_no VARCHAR ( 64 ) NOT NULL COMMENT ' 业务单号 ' ,
remark VARCHAR ( 255 ) NOT NULL DEFAULT ' ' ,
remark VARCHAR ( 255 ) NOT NULL DEFAULT ' ' COMMENT ' 备注 ' ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
UNIQUE KEY uk_wallet_ledger_ledger_no ( ledger_no ) ,
UNIQUE KEY uk_wallet_ledger_ledger_no ( ledger_no ) ,
KEY idx_wallet_ledger_user_created ( user_id , created_at ) ,
KEY idx_wallet_ledger_user_created ( user_id , created_at ) ,
KEY idx_wallet_ledger_order_id ( order_id ) ,
KEY idx_wallet_ledger_order_id ( order_id ) ,
KEY idx_wallet_ledger_biz ( biz_type , biz_no )
KEY idx_wallet_ledger_biz ( biz_type , biz_no ) ,
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci ;
KEY idx_wallet_ledger_user_biz_created ( user_id , biz_type , created_at DESC )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = ' 钱包流水表 ' ;
-- -------------------------------------------
-- -------------------------------------------
-- 支付渠道订单
-- 支付渠道订单表
-- -------------------------------------------
-- -------------------------------------------
-- 支付订单表:对接第三方支付的订单记录
CREATE TABLE IF NOT EXISTS payment_orders (
CREATE TABLE IF NOT EXISTS payment_orders (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
payment_no VARCHAR ( 64 ) NOT NULL ,
payment_no VARCHAR ( 64 ) NOT NULL COMMENT ' 支付单号 ' ,
order_id BIGINT UNSIGNED NOT NULL ,
order_id BIGINT UNSIGNED NOT NULL COMMENT ' 关联订单ID ' ,
order_no VARCHAR ( 64 ) NOT NULL ,
order_no VARCHAR ( 64 ) NOT NULL COMMENT ' 业务订单号 ' ,
user_id BIGINT UNSIGNED NOT NULL ,
user_id BIGINT UNSIGNED NOT NULL COMMENT ' 支付用户ID ' ,
provider VARCHAR ( 32 ) NOT NULL ,
provider VARCHAR ( 32 ) NOT NULL COMMENT ' 支付服务商: alipay支付宝, wechat微信, mock模拟 ' ,
merchant_id VARCHAR ( 32 ) NOT NULL DEFAULT ' ' ,
merchant_id VARCHAR ( 32 ) NOT NULL DEFAULT ' ' COMMENT ' 商户号 ' ,
third_order_id VARCHAR ( 64 ) NOT NULL ,
third_order_id VARCHAR ( 64 ) NOT NULL COMMENT ' 第三方订单ID ' ,
provider_order_id VARCHAR ( 64 ) NOT NULL DEFAULT ' ' ,
provider_order_id VARCHAR ( 64 ) NOT NULL DEFAULT ' ' COMMENT ' 支付渠道订单号 ' ,
pay_way VARCHAR ( 16 ) NOT NULL DEFAULT ' ' ,
pay_way VARCHAR ( 16 ) NOT NULL DEFAULT ' ' COMMENT ' 支付方式 ' ,
jspay_flag VARCHAR ( 8 ) NOT NULL DEFAULT ' ' ,
jspay_flag VARCHAR ( 8 ) NOT NULL DEFAULT ' ' COMMENT ' JS支付标识 ' ,
amount_cent BIGINT NOT NULL DEFAULT 0 ,
amount_cent BIGINT NOT NULL DEFAULT 0 COMMENT ' 支付金额(分) ' ,
biz_type VARCHAR ( 32 ) NOT NULL DEFAULT ' order_pay ' ,
biz_type VARCHAR ( 32 ) NOT NULL DEFAULT ' order_pay ' COMMENT ' 业务类型: order_pay订单支付, wallet_recharge钱包充值 ' ,
status VARCHAR ( 32 ) NOT NULL DEFAULT ' created ' ,
status VARCHAR ( 32 ) NOT NULL DEFAULT ' created ' COMMENT ' 支付状态: created已创建, pending待支付, paid已支付, failed失败, cancelled取消 ' ,
td_code VARCHAR ( 512 ) NOT NULL DEFAULT ' ' ,
td_code VARCHAR ( 512 ) NOT NULL DEFAULT ' ' COMMENT ' 交易码 ' ,
jspay_url VARCHAR ( 512 ) NOT NULL DEFAULT ' ' ,
jspay_url VARCHAR ( 512 ) NOT NULL DEFAULT ' ' COMMENT ' JS支付URL ' ,
jspay_info TEXT NULL ,
jspay_info TEXT NULL COMMENT ' JS支付信息 ' ,
raw_request JSON NULL ,
raw_request JSON NULL COMMENT ' 原始请求(JSON) ' ,
raw_response JSON NULL ,
raw_response JSON NULL COMMENT ' 原始响应(JSON) ' ,
paid_at DATETIME NULL ,
paid_at DATETIME NULL COMMENT ' 支付完成时间 ' ,
notified_at DATETIME NULL ,
notified_at DATETIME NULL COMMENT ' 通知回调时间 ' ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
UNIQUE KEY uk_payment_orders_payment_no ( payment_no ) ,
UNIQUE KEY uk_payment_orders_payment_no ( payment_no ) ,
@@ -230,215 +246,254 @@ CREATE TABLE IF NOT EXISTS payment_orders (
KEY idx_payment_orders_provider_order_id ( provider_order_id ) ,
KEY idx_payment_orders_provider_order_id ( provider_order_id ) ,
KEY idx_payment_orders_biz_type ( biz_type ) ,
KEY idx_payment_orders_biz_type ( biz_type ) ,
KEY idx_payment_orders_status ( status )
KEY idx_payment_orders_status ( status )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci ;
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = ' 支付订单表 ' ;
-- -------------------------------------------
-- -------------------------------------------
-- 纠纷和通知表
-- 纠纷和通知表
-- -------------------------------------------
-- -------------------------------------------
-- 纠纷表:记录用户之间的交易纠纷
CREATE TABLE IF NOT EXISTS disputes (
CREATE TABLE IF NOT EXISTS disputes (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
order_id BIGINT UNSIGNED NOT NULL ,
order_id BIGINT UNSIGNED NOT NULL COMMENT ' 订单ID ' ,
initiator_id BIGINT UNSIGNED NOT NULL ,
initiator_id BIGINT UNSIGNED NOT NULL COMMENT ' 发起人ID ' ,
target_user_id BIGINT UNSIGNED NOT NULL ,
target_user_id BIGINT UNSIGNED NOT NULL COMMENT ' 被投诉人ID ' ,
type VARCHAR ( 32 ) NOT NULL ,
type VARCHAR ( 32 ) NOT NULL COMMENT ' 纠纷类型: account_issue账号问题, payment_issue支付问题, behavior违规行为等 ' ,
status VARCHAR ( 32 ) NOT NULL DEFAULT ' open ' ,
status VARCHAR ( 32 ) NOT NULL DEFAULT ' open ' COMMENT ' 状态: open待处理, investigating调查中, resolved已解决, closed已关闭 ' ,
description TEXT NULL ,
description TEXT NULL COMMENT ' 纠纷描述 ' ,
evidence_urls JSON NULL ,
evidence_urls JSON NULL COMMENT ' 证据截图URL列表 ' ,
arbitration_result VARCHAR ( 32 ) NOT NULL DEFAULT ' ' ,
arbitration_result VARCHAR ( 32 ) NOT NULL DEFAULT ' ' COMMENT ' 仲裁结果: owner_win号主胜, renter_win租客胜, draw平局 ' ,
arbitration_remark TEXT NULL ,
arbitration_remark TEXT NULL COMMENT ' 仲裁说明 ' ,
handled_by BIGINT UNSIGNED NULL ,
handled_by BIGINT UNSIGNED NULL COMMENT ' 处理人ID(管理员) ' ,
handled_at DATETIME NULL ,
handled_at DATETIME NULL COMMENT ' 处理时间 ' ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
KEY idx_disputes_order_id ( order_id ) ,
KEY idx_disputes_order_id ( order_id ) ,
KEY idx_disputes_status ( status )
KEY idx_disputes_status ( status )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci ;
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = ' 纠纷表 ' ;
-- 通知消息表:系统通知、订单通知等
CREATE TABLE IF NOT EXISTS notifications (
CREATE TABLE IF NOT EXISTS notifications (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
user_id BIGINT UNSIGNED NOT NULL ,
user_id BIGINT UNSIGNED NOT NULL COMMENT ' 接收用户ID ' ,
type VARCHAR ( 32 ) NOT NULL ,
type VARCHAR ( 32 ) NOT NULL COMMENT ' 通知类型: system系统, order订单, chat聊天, wallet钱包 ' ,
title VARCHAR ( 128 ) NOT NULL ,
title VARCHAR ( 128 ) NOT NULL COMMENT ' 通知标题 ' ,
content TEXT NULL ,
content TEXT NULL COMMENT ' 通知内容 ' ,
biz_type VARCHAR ( 32 ) NOT NULL DEFAULT ' ' ,
biz_type VARCHAR ( 32 ) NOT NULL DEFAULT ' ' COMMENT ' 业务类型 ' ,
biz_id BIGINT UNSIGNED NULL ,
biz_id BIGINT UNSIGNED NULL COMMENT ' 业务ID ' ,
read_at DATETIME NULL ,
read_at DATETIME NULL COMMENT ' 已读时间 ' ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
KEY idx_notifications_user_read_created ( user_id , read_at , created_at )
KEY idx_notifications_user_read_created ( user_id , read_at , created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci ;
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = ' 通知消息表 ' ;
-- 审计日志表:记录重要操作的审计日志
CREATE TABLE IF NOT EXISTS audit_logs (
CREATE TABLE IF NOT EXISTS audit_logs (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
actor_type VARCHAR ( 32 ) NOT NULL ,
actor_type VARCHAR ( 32 ) NOT NULL COMMENT ' 操作者类型: user用户, admin管理员, system系统 ' ,
actor_id BIGINT UNSIGNED NOT NULL ,
actor_id BIGINT UNSIGNED NOT NULL COMMENT ' 操作者ID ' ,
action VARCHAR ( 64 ) NOT NULL ,
action VARCHAR ( 64 ) NOT NULL COMMENT ' 操作动作 ' ,
biz_type VARCHAR ( 32 ) NOT NULL ,
biz_type VARCHAR ( 32 ) NOT NULL COMMENT ' 业务类型 ' ,
biz_id BIGINT UNSIGNED NULL ,
biz_id BIGINT UNSIGNED NULL COMMENT ' 业务ID ' ,
ip VARCHAR ( 64 ) NOT NULL DEFAULT ' ' ,
ip VARCHAR ( 64 ) NOT NULL DEFAULT ' ' COMMENT ' IP地址 ' ,
user_agent VARCHAR ( 512 ) NOT NULL DEFAULT ' ' ,
user_agent VARCHAR ( 512 ) NOT NULL DEFAULT ' ' COMMENT ' User-Agent ' ,
detail JSON NULL ,
detail JSON NULL COMMENT ' 详细信息(JSON) ' ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
KEY idx_audit_logs_actor_created ( actor_id , created_at ) ,
KEY idx_audit_logs_actor_created ( actor_id , created_at ) ,
KEY idx_audit_logs_biz ( biz_type , biz_id )
KEY idx_audit_logs_biz ( biz_type , biz_id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci ;
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = ' 审计日志表 ' ;
-- -------------------------------------------
-- -------------------------------------------
-- 管理员和权限表
-- 管理员和权限表
-- -------------------------------------------
-- -------------------------------------------
-- 管理员表
CREATE TABLE IF NOT EXISTS admin_users (
CREATE TABLE IF NOT EXISTS admin_users (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
username VARCHAR ( 64 ) NOT NULL ,
username VARCHAR ( 64 ) NOT NULL COMMENT ' 用户名 ' ,
password_hash VARCHAR ( 255 ) NOT NULL ,
password_hash VARCHAR ( 255 ) NOT NULL COMMENT ' 密码哈希 ' ,
nickname VARCHAR ( 64 ) NOT NULL DEFAULT ' ' ,
nickname VARCHAR ( 64 ) NOT NULL DEFAULT ' ' COMMENT ' 昵称 ' ,
status VARCHAR ( 32 ) NOT NULL DEFAULT ' active ' ,
status VARCHAR ( 32 ) NOT NULL DEFAULT ' active ' COMMENT ' 状态: active正常, inactive停用 ' ,
last_login_at DATETIME NULL ,
support_status VARCHAR ( 16 ) NOT NULL DEFAULT ' offline ' COMMENT ' 客服状态: online在线, offline离线, busy忙碌 ' ,
last_login_at DATETIME NULL COMMENT ' 最后登录时间 ' ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
UNIQUE KEY uk_admin_users_username ( username )
UNIQUE KEY uk_admin_users_username ( username ) ,
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci ;
KEY idx_admin_users_support_status ( support_status )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = ' 管理员表 ' ;
-- 角色表
CREATE TABLE IF NOT EXISTS roles (
CREATE TABLE IF NOT EXISTS roles (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
code VARCHAR ( 64 ) NOT NULL ,
code VARCHAR ( 64 ) NOT NULL COMMENT ' 角色代码 ' ,
name VARCHAR ( 64 ) NOT NULL ,
name VARCHAR ( 64 ) NOT NULL COMMENT ' 角色名称 ' ,
description VARCHAR ( 255 ) NOT NULL DEFAULT ' ' ,
description VARCHAR ( 255 ) NOT NULL DEFAULT ' ' COMMENT ' 角色描述 ' ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
UNIQUE KEY uk_roles_code ( code )
UNIQUE KEY uk_roles_code ( code )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci ;
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = ' 角色表 ' ;
-- 权限表
CREATE TABLE IF NOT EXISTS permissions (
CREATE TABLE IF NOT EXISTS permissions (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
code VARCHAR ( 128 ) NOT NULL ,
code VARCHAR ( 128 ) NOT NULL COMMENT ' 权限代码 ' ,
name VARCHAR ( 64 ) NOT NULL ,
name VARCHAR ( 64 ) NOT NULL COMMENT ' 权限名称 ' ,
resource VARCHAR ( 128 ) NOT NULL ,
resource VARCHAR ( 128 ) NOT NULL COMMENT ' 资源 ' ,
action VARCHAR ( 64 ) NOT NULL ,
action VARCHAR ( 64 ) NOT NULL COMMENT ' 操作 ' ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
UNIQUE KEY uk_permissions_code ( code )
UNIQUE KEY uk_permissions_code ( code )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci ;
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = ' 权限表 ' ;
-- 管理员角色关联表
CREATE TABLE IF NOT EXISTS admin_user_roles (
CREATE TABLE IF NOT EXISTS admin_user_roles (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
admin_user_id BIGINT UNSIGNED NOT NULL ,
admin_user_id BIGINT UNSIGNED NOT NULL COMMENT ' 管理员ID ' ,
role_id BIGINT UNSIGNED NOT NULL ,
role_id BIGINT UNSIGNED NOT NULL COMMENT ' 角色ID ' ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
UNIQUE KEY uk_admin_user_roles_user_role ( admin_user_id , role_id )
UNIQUE KEY uk_admin_user_roles_user_role ( admin_user_id , role_id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci ;
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = ' 管理员角色关联表 ' ;
-- 角色权限关联表
CREATE TABLE IF NOT EXISTS role_permissions (
CREATE TABLE IF NOT EXISTS role_permissions (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
role_id BIGINT UNSIGNED NOT NULL ,
role_id BIGINT UNSIGNED NOT NULL COMMENT ' 角色ID ' ,
permission_id BIGINT UNSIGNED NOT NULL ,
permission_id BIGINT UNSIGNED NOT NULL COMMENT ' 权限ID ' ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
UNIQUE KEY uk_role_permissions_role_permission ( role_id , permission_id )
UNIQUE KEY uk_role_permissions_role_permission ( role_id , permission_id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci ;
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = ' 角色权限关联表 ' ;
-- -------------------------------------------
-- -------------------------------------------
-- 系统配置表
-- 系统配置表
-- -------------------------------------------
-- -------------------------------------------
-- 系统配置表:存储系统级配置项
CREATE TABLE IF NOT EXISTS system_configs (
CREATE TABLE IF NOT EXISTS system_configs (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
` key ` VARCHAR ( 128 ) NOT NULL ,
` key ` VARCHAR ( 128 ) NOT NULL COMMENT ' 配置键 ' ,
` value ` TEXT NOT NULL ,
` value ` TEXT NOT NULL COMMENT ' 配置值 ' ,
description VARCHAR ( 255 ) NOT NULL DEFAULT ' ' ,
description VARCHAR ( 255 ) NOT NULL DEFAULT ' ' COMMENT ' 配置说明 ' ,
updated_by BIGINT UNSIGNED NULL ,
updated_by BIGINT UNSIGNED NULL COMMENT ' 更新者ID ' ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
UNIQUE KEY uk_system_configs_key ( ` key ` )
UNIQUE KEY uk_system_configs_key ( ` key ` )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci ;
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = ' 系统配置表 ' ;
-- -------------------------------------------
-- -------------------------------------------
-- 客服聊天表
-- 客服聊天表
-- -------------------------------------------
-- -------------------------------------------
-- 聊天会话表:订单群聊等
CREATE TABLE IF NOT EXISTS chat_conversations (
CREATE TABLE IF NOT EXISTS chat_conversations (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
order_id BIGINT UNSIGNED NULL ,
order_id BIGINT UNSIGNED NULL COMMENT ' 关联订单ID ' ,
type VARCHAR ( 32 ) NOT NULL DEFAULT ' order_group ' ,
type VARCHAR ( 32 ) NOT NULL DEFAULT ' order_group ' COMMENT ' 会话类型: order_group订单群聊, support_chat客服咨询 ' ,
title VARCHAR ( 128 ) NOT NULL ,
title VARCHAR ( 128 ) NOT NULL COMMENT ' 会话标题 ' ,
status VARCHAR ( 32 ) NOT NULL DEFAULT ' active ' ,
status VARCHAR ( 32 ) NOT NULL DEFAULT ' active ' COMMENT ' 状态: active活跃, archived已归档, closed已关闭 ' ,
last_message_id BIGINT UNSIGNED NULL ,
last_message_id BIGINT UNSIGNED NULL COMMENT ' 最后一条消息ID ' ,
last_message_preview VARCHAR ( 255 ) NOT NULL DEFAULT ' ' ,
last_message_preview VARCHAR ( 255 ) NOT NULL DEFAULT ' ' COMMENT ' 最后消息预览 ' ,
last_message_at DATETIME NULL ,
last_message_at DATETIME NULL COMMENT ' 最后消息时间 ' ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
UNIQUE KEY uk_chat_conversations_order_id ( order_id ) ,
UNIQUE KEY uk_chat_conversations_order_id ( order_id ) ,
KEY idx_chat_conversations_last_message_at ( last_message_at )
KEY idx_chat_conversations_last_message_at ( last_message_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci ;
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = ' 聊天会话表 ' ;
-- 聊天参与者表:会话成员
CREATE TABLE IF NOT EXISTS chat_participants (
CREATE TABLE IF NOT EXISTS chat_participants (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
conversation_id BIGINT UNSIGNED NOT NULL ,
conversation_id BIGINT UNSIGNED NOT NULL COMMENT ' 会话ID ' ,
participant_type VARCHAR ( 16 ) NOT NULL ,
participant_type VARCHAR ( 16 ) NOT NULL COMMENT ' 参与者类型: user用户, admin管理员 ' ,
participant_id BIGINT UNSIGNED NOT NULL ,
participant_id BIGINT UNSIGNED NOT NULL COMMENT ' 参与者ID ' ,
role VARCHAR ( 32 ) NOT NULL ,
role VARCHAR ( 32 ) NOT NULL COMMENT ' 角色: owner号主, renter租客, support客服 ' ,
remark VARCHAR ( 128 ) NOT NULL DEFAULT ' ' ,
remark VARCHAR ( 128 ) NOT NULL DEFAULT ' ' COMMENT ' 备注名 ' ,
last_read_at DATETIME NULL ,
last_read_at DATETIME NULL COMMENT ' 最后已读时间 ' ,
joined_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
joined_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ' 加入时间 ' ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
UNIQUE KEY uk_chat_participants_member ( conversation_id , participant_type , participant_id ) ,
UNIQUE KEY uk_chat_participants_member ( conversation_id , participant_type , participant_id ) ,
KEY idx_chat_participants_participant ( participant_type , participant_id ) ,
KEY idx_chat_participants_participant ( participant_type , participant_id ) ,
KEY idx_chat_participants_conversation ( conversation_id )
KEY idx_chat_participants_conversation ( conversation_id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci ;
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = ' 聊天参与者表 ' ;
-- 聊天消息表:所有聊天消息
CREATE TABLE IF NOT EXISTS chat_messages (
CREATE TABLE IF NOT EXISTS chat_messages (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
conversation_id BIGINT UNSIGNED NOT NULL ,
conversation_id BIGINT UNSIGNED NOT NULL COMMENT ' 会话ID ' ,
sender_type VARCHAR ( 16 ) NOT NULL ,
sender_type VARCHAR ( 16 ) NOT NULL COMMENT ' 发送者类型: user用户, admin管理员, system系统 ' ,
sender_id BIGINT UNSIGNED NOT NULL DEFAULT 0 ,
sender_id BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT ' 发送者ID ' ,
sender_role VARCHAR ( 32 ) NOT NULL DEFAULT ' ' ,
sender_role VARCHAR ( 32 ) NOT NULL DEFAULT ' ' COMMENT ' 发送者角色 ' ,
content_type VARCHAR ( 32 ) NOT NULL DEFAULT ' text ' ,
content_type VARCHAR ( 32 ) NOT NULL DEFAULT ' text ' COMMENT ' 消息类型: text文本, image图片, file文件 ' ,
content TEXT NULL ,
content TEXT NULL COMMENT ' 消息内容 ' ,
attachment_urls JSON NULL ,
attachment_urls JSON NULL COMMENT ' 附件URL列表 ' ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
KEY idx_chat_messages_conversation_id ( conversation_id , id ) ,
KEY idx_chat_messages_conversation_id ( conversation_id , id ) ,
KEY idx_chat_messages_created_at ( created_at )
KEY idx_chat_messages_created_at ( created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci ;
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = ' 聊天消息表 ' ;
-- 快捷回复模板表:客服快捷回复
CREATE TABLE IF NOT EXISTS chat_quick_replies (
CREATE TABLE IF NOT EXISTS chat_quick_replies (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
admin_user_id BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT ' 0=全局, >0=个人 ' ,
admin_user_id BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT ' 所属管理员ID: 0表示全局模板 ' ,
title VARCHAR ( 64 ) NOT NULL COMMENT ' 快捷回复标题 ' ,
title VARCHAR ( 64 ) NOT NULL COMMENT ' 快捷回复标题 ' ,
content TEXT NOT NULL COMMENT ' 回复内容 ' ,
content TEXT NOT NULL COMMENT ' 回复内容 ' ,
sort_order INT NOT NULL DEFAULT 0 COMMENT ' 排序 ' ,
sort_order INT NOT NULL DEFAULT 0 COMMENT ' 排序权重 ' ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
INDEX idx_admin_user_id ( admin_user_id )
KEY idx_admin_user_id ( admin_user_id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = ' 快捷回复模板 ' ;
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = ' 快捷回复模板表 ' ;
-- -------------------------------------------
-- -------------------------------------------
-- 开放上传记录
-- 开放上传记录表
-- -------------------------------------------
-- -------------------------------------------
-- 商品上传记录表:通过开放接口上传的商品记录
CREATE TABLE IF NOT EXISTS listing_uploads (
CREATE TABLE IF NOT EXISTS listing_uploads (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
uploader_name VARCHAR ( 64 ) NOT NULL ,
uploader_name VARCHAR ( 64 ) NOT NULL COMMENT ' 上传者名称 ' ,
matched_admin_id BIGINT UNSIGNED NULL ,
matched_admin_id BIGINT UNSIGNED NULL COMMENT ' 匹配到的管理员ID ' ,
owner_id BIGINT UNSIGNED NULL ,
owner_id BIGINT UNSIGNED NULL COMMENT ' 商品所有者ID ' ,
client_upload_time DATETIME NULL ,
client_upload_time DATETIME NULL COMMENT ' 客户端上传时间 ' ,
client_ip VARCHAR ( 64 ) NOT NULL DEFAULT ' ' ,
client_ip VARCHAR ( 64 ) NOT NULL DEFAULT ' ' COMMENT ' 客户端IP ' ,
raw_payload JSON NULL ,
raw_payload JSON NULL COMMENT ' 原始请求数据 ' ,
parsed_payload JSON NULL ,
parsed_payload JSON NULL COMMENT ' 解析后的数据 ' ,
listing_id BIGINT UNSIGNED NULL ,
listing_id BIGINT UNSIGNED NULL COMMENT ' 创建的商品ID ' ,
status VARCHAR ( 32 ) NOT NULL DEFAULT ' draft_created ' ,
status VARCHAR ( 32 ) NOT NULL DEFAULT ' draft_created ' COMMENT ' 状态: draft_created草稿已创建, published已发布, failed失败 ' ,
error_message VARCHAR ( 255 ) NOT NULL DEFAULT ' ' ,
error_message VARCHAR ( 255 ) NOT NULL DEFAULT ' ' COMMENT ' 错误信息 ' ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
KEY idx_listing_uploads_uploader_name ( uploader_name ) ,
KEY idx_listing_uploads_uploader_name ( uploader_name ) ,
KEY idx_listing_uploads_matched_admin_id ( matched_admin_id ) ,
KEY idx_listing_uploads_matched_admin_id ( matched_admin_id ) ,
KEY idx_listing_uploads_owner_id ( owner_id ) ,
KEY idx_listing_uploads_owner_id ( owner_id ) ,
KEY idx_listing_uploads_listing_id ( listing_id )
KEY idx_listing_uploads_listing_id ( listing_id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci ;
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = ' 商品上传记录表 ' ;
-- -------------------------------------------
-- 公告系统表
-- -------------------------------------------
-- 公告表:系统公告、通知等
CREATE TABLE IF NOT EXISTS announcements (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT ,
title VARCHAR ( 255 ) NOT NULL COMMENT ' 公告标题 ' ,
content TEXT NOT NULL COMMENT ' 公告内容(支持Markdown) ' ,
category VARCHAR ( 32 ) NOT NULL DEFAULT ' notice ' COMMENT ' 分类: notice通知, tutorial教程, rule规则, faq常见问题 ' ,
priority INT NOT NULL DEFAULT 0 COMMENT ' 优先级(数值越大越靠前) ' ,
is_pinned TINYINT ( 1 ) NOT NULL DEFAULT 0 COMMENT ' 是否置顶: 0否, 1是 ' ,
is_important TINYINT ( 1 ) NOT NULL DEFAULT 0 COMMENT ' 是否重要: 0否, 1是 ' ,
view_count INT NOT NULL DEFAULT 0 COMMENT ' 查看次数 ' ,
status VARCHAR ( 32 ) NOT NULL DEFAULT ' draft ' COMMENT ' 状态: draft草稿, published已发布, archived已归档 ' ,
published_at DATETIME NULL COMMENT ' 发布时间 ' ,
created_by BIGINT UNSIGNED NULL COMMENT ' 创建者ID(管理员) ' ,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
KEY idx_announcements_status ( status , is_pinned , priority , published_at ) ,
KEY idx_announcements_category ( category , status )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = ' 公告表 ' ;
SET FOREIGN_KEY_CHECKS = 1 ;
SET FOREIGN_KEY_CHECKS = 1 ;
-- -------------------------------------------
-- -------------------------------------------
-- 权限数据
-- 权限数据初始化
-- -------------------------------------------
-- -------------------------------------------
INSERT INTO permissions ( code , name , resource , action ) VALUES
INSERT INTO permissions ( code , name , resource , action ) VALUES
@@ -462,14 +517,16 @@ INSERT INTO permissions (code, name, resource, action) VALUES
( ' role:manage ' , ' 角色管理 ' , ' role ' , ' manage ' ) ,
( ' role:manage ' , ' 角色管理 ' , ' role ' , ' manage ' ) ,
( ' system_config:view ' , ' 查看系统配置 ' , ' system_config ' , ' view ' ) ,
( ' system_config:view ' , ' 查看系统配置 ' , ' system_config ' , ' view ' ) ,
( ' system_config:update ' , ' 修改系统配置 ' , ' system_config ' , ' update ' ) ,
( ' system_config:update ' , ' 修改系统配置 ' , ' system_config ' , ' update ' ) ,
( ' audit_log:view ' , ' 查看审计日志 ' , ' audit_log ' , ' view ' )
( ' audit_log:view ' , ' 查看审计日志 ' , ' audit_log ' , ' view ' ) ,
( ' announcement:view ' , ' 查看公告 ' , ' announcement ' , ' view ' ) ,
( ' announcement:manage ' , ' 管理公告 ' , ' announcement ' , ' manage ' )
ON DUPLICATE KEY UPDATE
ON DUPLICATE KEY UPDATE
name = VALUES ( name ) ,
name = VALUES ( name ) ,
resource = VALUES ( resource ) ,
resource = VALUES ( resource ) ,
action = VALUES ( action ) ;
action = VALUES ( action ) ;
-- -------------------------------------------
-- -------------------------------------------
-- 角色数据
-- 角色数据初始化
-- -------------------------------------------
-- -------------------------------------------
INSERT INTO roles ( code , name , description ) VALUES
INSERT INTO roles ( code , name , description ) VALUES
@@ -493,7 +550,7 @@ WHERE r.code = 'cs' AND p.code IN ('dashboard:view', 'user:view', 'dispute:view'
-- ops 角色权限
-- ops 角色权限
INSERT IGNORE INTO role_permissions ( role_id , permission_id )
INSERT IGNORE INTO role_permissions ( role_id , permission_id )
SELECT r . id , p . id FROM roles r , permissions p
SELECT r . id , p . id FROM roles r , permissions p
WHERE r . code = ' ops ' AND p . code IN ( ' dashboard:view ' , ' user:view ' , ' user:freeze ' , ' user:unfreeze ' , ' order:view ' , ' order:close ' , ' order:mark_abnormal ' , ' listing:view ' , ' listing:approve ' , ' listing:reject ' , ' listing:offline ' , ' dispute:view ' , ' audit_log:view ' ) ;
WHERE r . code = ' ops ' AND p . code IN ( ' dashboard:view ' , ' user:view ' , ' user:freeze ' , ' user:unfreeze ' , ' order:view ' , ' order:close ' , ' order:mark_abnormal ' , ' listing:view ' , ' listing:approve ' , ' listing:reject ' , ' listing:offline ' , ' dispute:view ' , ' audit_log:view ' , ' announcement:view ' , ' announcement:manage ' ) ;
-- finance 角色权限
-- finance 角色权限
INSERT IGNORE INTO role_permissions ( role_id , permission_id )
INSERT IGNORE INTO role_permissions ( role_id , permission_id )
@@ -501,10 +558,10 @@ SELECT r.id, p.id FROM roles r, permissions p
WHERE r . code = ' finance ' AND p . code IN ( ' dashboard:view ' , ' wallet:view ' , ' order:view ' ) ;
WHERE r . code = ' finance ' AND p . code IN ( ' dashboard:view ' , ' wallet:view ' , ' order:view ' ) ;
-- -------------------------------------------
-- -------------------------------------------
-- 管理员账号
-- 管理员账号初始化
-- -------------------------------------------
-- -------------------------------------------
-- 生成 admin 密码 hash : admin123456
-- 初始化管理员账号(密码 : admin123456)
INSERT INTO admin_users ( username , password_hash , nickname , status ) VALUES
INSERT INTO admin_users ( username , password_hash , nickname , status ) VALUES
( ' admin ' , ' $2a$10$vvDd.cYJCOBl9kr5jdRYXu9C/7GXcHmXsG17zJPHzPOZ0XGbqcWNS ' , ' 超级管理员 ' , ' active ' ) ,
( ' admin ' , ' $2a$10$vvDd.cYJCOBl9kr5jdRYXu9C/7GXcHmXsG17zJPHzPOZ0XGbqcWNS ' , ' 超级管理员 ' , ' active ' ) ,
( ' kf1 ' , ' $2a$10$7cx3B4IWunLZO24o11YVGu4qY1J1naDdsTyvoCpcnOO.GV15qaf3C ' , ' 客服1 ' , ' active ' ) ,
( ' kf1 ' , ' $2a$10$7cx3B4IWunLZO24o11YVGu4qY1J1naDdsTyvoCpcnOO.GV15qaf3C ' , ' 客服1 ' , ' active ' ) ,
@@ -524,7 +581,7 @@ SELECT au.id, r.id FROM admin_users au, roles r
WHERE au . username IN ( ' kf1 ' , ' kf2 ' ) AND r . code = ' cs ' ;
WHERE au . username IN ( ' kf1 ' , ' kf2 ' ) AND r . code = ' cs ' ;
-- -------------------------------------------
-- -------------------------------------------
-- 系统配置
-- 系统配置初始化
-- -------------------------------------------
-- -------------------------------------------
INSERT INTO system_configs ( ` key ` , ` value ` , description ) VALUES
INSERT INTO system_configs ( ` key ` , ` value ` , description ) VALUES
@@ -535,3 +592,109 @@ INSERT INTO system_configs (`key`, `value`, description) VALUES
ON DUPLICATE KEY UPDATE
ON DUPLICATE KEY UPDATE
` value ` = VALUES ( ` value ` ) ,
` value ` = VALUES ( ` value ` ) ,
description = VALUES ( description ) ;
description = VALUES ( description ) ;
-- -------------------------------------------
-- 公告数据初始化
-- -------------------------------------------
INSERT INTO announcements ( title , content , category , priority , is_pinned , is_important , status , published_at ) VALUES
( ' 号主须知(重要!) ' , ' ## 平台担保交易,拒绝私下转账!
平台提供交易担保机制,用户支付的押金与租金全部冻结在平台账户中,租号结束后根据账号状态自动结算给号主或退款给租客。
**警告:**
- 账号被非本人,请看到此消息后主动下架账号!
- 不要随意更改账号密码或绑定信息
- 请勿诱导买家进行私下交易
- 违规将会被冻结账户并承担相应损失
有任何问题请联系客服处理。 ' , ' notice ' , 100 , 1 , 1 , ' published ' , NOW ( ) ) ,
( ' 租客须知(重要!) ' , ' ## 账号使用规范
1. **禁止修改账号信息** - 不得修改账号密码、绑定手机、实名信息等
2. **禁止充值** - 租用期间请勿对账号进行任何形式的充值
3. **禁止违规操作** - 不得使用外挂、辅助工具,不得进行恶意行为
4. **按时归还** - 租用到期后请及时归还账号,逾期将扣除押金
**温馨提示:**
- 交接账号后请第一时间登录验证
- 发现账号异常请立即联系客服
- 使用过程中遇到问题随时咨询客服
祝您游戏愉快! ' , ' notice ' , 99 , 1 , 1 , ' published ' , NOW ( ) ) ,
( ' 人脸验证教程 ' , ' ## 如何完成实名认证
为了保障交易安全,平台要求所有用户完成实名认证后才能发布商品和下单。
### 认证步骤:
1. 进入"个人资料"页面
2. 点击"实名认证"按钮
3. 按照提示填写真实姓名和身份证号
4. 进行人脸识别验证
5. 等待系统审核(通常1-3分钟)
### 注意事项:
- 请确保光线充足,面部清晰
- 摘下眼镜、帽子等遮挡物
- 一个身份证只能认证一个账号
- 认证信息仅用于交易安全,平台严格保密
认证失败请联系客服协助处理。 ' , ' tutorial ' , 90 , 0 , 0 , ' published ' , NOW ( ) ) ,
( ' 除纯市外其他高级物资默认从收费表 ' , ' ## 出租开始须必开启备锁!
号主在出租账号前,务必确保账号已开启"账号保护"功能(即备锁)。
### 为什么要开启备锁?
- 防止租客恶意修改账号信息
- 保护账号安全,降低被盗风险
- 发生纠纷时便于平台介入处理
- 租用结束后方便号主快速收回账号
### 如何开启?
具体开启方式请参考游戏官方设置,不同平台操作略有差异。如不清楚如何设置,请咨询客服。
**重要提醒:未开启备锁导致的账号安全问题,平台不承担责任!** ' , ' rule ' , 80 , 0 , 0 , ' published ' , NOW ( ) ) ,
( ' 出租完成后如何结算? ' , ' ## 租金结算流程
租用期满后,系统会根据账号状态自动进行结算:
### 正常归还
- 租客按时归还账号
- 号主确认账号无异常
- 系统自动将租金结算到号主钱包
- 押金退还给租客
### 异常情况
- 账号信息被修改 → 押金赔付给号主
- 账号被找回 → 租金退还给租客
- 产生纠纷 → 平台客服介入仲裁
### 提现说明
目前提现功能暂未开放,敬请期待后续更新。 ' , ' faq ' , 70 , 0 , 0 , ' published ' , NOW ( ) ) ,
( ' 如何联系客服? ' , ' ## 客服联系方式
遇到问题可以通过以下方式联系客服:
1. **在线客服** - 点击页面右上角"客服"按钮,即可在线咨询
2. **订单页面** - 每个订单详情页都有专属客服入口
3. **消息中心** - 查看历史咨询记录
### 客服工作时间
- 工作日:09:00 - 22:00
- 节假日:10:00 - 20:00
非工作时间留言,客服上线后会第一时间回复。 ' , ' faq ' , 60 , 0 , 0 , ' published ' , NOW ( ) ) ;
-- ============================================
-- 数据库初始化完成
-- ============================================