818 lines
46 KiB
SQL
818 lines
46 KiB
SQL
/*
|
||
Navicat Premium Dump SQL
|
||
|
||
Source Server : 测试端
|
||
Source Server Type : MySQL
|
||
Source Server Version : 80036 (8.0.36)
|
||
Source Host : 114.55.111.44:3306
|
||
Source Schema : test_mao
|
||
|
||
Target Server Type : MySQL
|
||
Target Server Version : 80036 (8.0.36)
|
||
File Encoding : 65001
|
||
|
||
Date: 01/09/2025 10:09:09
|
||
*/
|
||
|
||
SET NAMES utf8mb4;
|
||
SET FOREIGN_KEY_CHECKS = 0;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for accounts
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `accounts`;
|
||
CREATE TABLE `accounts` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`user_id` int NOT NULL,
|
||
`account_type` enum('public','user') CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'user',
|
||
`balance` decimal(10, 2) NULL DEFAULT 0.00,
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
INDEX `user_id`(`user_id` ASC) USING BTREE,
|
||
CONSTRAINT `accounts_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 40 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for address_labels
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `address_labels`;
|
||
CREATE TABLE `address_labels` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`user_id` int NULL DEFAULT NULL,
|
||
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
||
`is_system` tinyint(1) NULL DEFAULT 0,
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`color` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '#1890ff',
|
||
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE INDEX `unique_user_label`(`user_id` ASC, `name` ASC) USING BTREE,
|
||
CONSTRAINT `address_labels_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 61 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for admin_operation_logs
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `admin_operation_logs`;
|
||
CREATE TABLE `admin_operation_logs` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`admin_id` int NOT NULL,
|
||
`operation_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||
`target_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||
`target_id` int NOT NULL,
|
||
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
INDEX `admin_id`(`admin_id` ASC) USING BTREE,
|
||
CONSTRAINT `admin_operation_logs_ibfk_1` FOREIGN KEY (`admin_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 44 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for agent_commission_records
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `agent_commission_records`;
|
||
CREATE TABLE `agent_commission_records` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`agent_id` int NOT NULL,
|
||
`merchant_id` int NOT NULL,
|
||
`order_id` int NULL DEFAULT NULL,
|
||
`commission_amount` decimal(10, 2) NOT NULL,
|
||
`commission_type` enum('registration','matching') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'matching',
|
||
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
INDEX `agent_id`(`agent_id` ASC) USING BTREE,
|
||
INDEX `merchant_id`(`merchant_id` ASC) USING BTREE,
|
||
INDEX `order_id`(`order_id` ASC) USING BTREE,
|
||
CONSTRAINT `agent_commission_records_ibfk_1` FOREIGN KEY (`agent_id`) REFERENCES `regional_agents` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT,
|
||
CONSTRAINT `agent_commission_records_ibfk_2` FOREIGN KEY (`merchant_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT,
|
||
CONSTRAINT `agent_commission_records_ibfk_3` FOREIGN KEY (`order_id`) REFERENCES `matching_orders` (`id`) ON DELETE SET NULL ON UPDATE RESTRICT
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 17 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for agent_merchants
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `agent_merchants`;
|
||
CREATE TABLE `agent_merchants` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`agent_id` int NOT NULL,
|
||
`merchant_id` int NOT NULL,
|
||
`registration_code_id` int NULL DEFAULT NULL,
|
||
`matching_count` int NULL DEFAULT 0,
|
||
`commission_earned` decimal(10, 2) NULL DEFAULT 0.00,
|
||
`is_qualified` tinyint(1) NULL DEFAULT 0,
|
||
`qualified_at` timestamp NULL DEFAULT NULL,
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE INDEX `unique_agent_merchant`(`agent_id` ASC, `merchant_id` ASC) USING BTREE,
|
||
INDEX `merchant_id`(`merchant_id` ASC) USING BTREE,
|
||
INDEX `registration_code_id`(`registration_code_id` ASC) USING BTREE,
|
||
CONSTRAINT `agent_merchants_ibfk_1` FOREIGN KEY (`agent_id`) REFERENCES `regional_agents` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT,
|
||
CONSTRAINT `agent_merchants_ibfk_2` FOREIGN KEY (`merchant_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT,
|
||
CONSTRAINT `agent_merchants_ibfk_3` FOREIGN KEY (`registration_code_id`) REFERENCES `registration_codes` (`id`) ON DELETE SET NULL ON UPDATE RESTRICT
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 32 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for agent_withdrawals
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `agent_withdrawals`;
|
||
CREATE TABLE `agent_withdrawals` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`agent_id` int NOT NULL,
|
||
`amount` decimal(10, 2) NOT NULL,
|
||
`payment_type` enum('bank','wechat','alipay','unionpay') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'bank' COMMENT '收款方式类型',
|
||
`bank_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '银行名称',
|
||
`account_number` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '账号/银行账号',
|
||
`account_holder` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '持有人姓名',
|
||
`qr_code_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '收款码图片URL',
|
||
`status` enum('pending','approved','rejected','completed') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'pending',
|
||
`apply_note` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
|
||
`admin_note` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
|
||
`processed_by` int NULL DEFAULT NULL,
|
||
`processed_at` timestamp NULL DEFAULT NULL,
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
`bank_account` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '银行账号(兼容旧版本)',
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
INDEX `agent_id`(`agent_id` ASC) USING BTREE,
|
||
INDEX `processed_by`(`processed_by` ASC) USING BTREE,
|
||
CONSTRAINT `agent_withdrawals_ibfk_1` FOREIGN KEY (`agent_id`) REFERENCES `regional_agents` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT,
|
||
CONSTRAINT `agent_withdrawals_ibfk_2` FOREIGN KEY (`processed_by`) REFERENCES `users` (`id`) ON DELETE SET NULL ON UPDATE RESTRICT
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for articles
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `articles`;
|
||
CREATE TABLE `articles` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||
`content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
||
`author_id` int NULL DEFAULT NULL,
|
||
`status` enum('draft','published') CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'draft',
|
||
`views` int NULL DEFAULT 0,
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
INDEX `author_id`(`author_id` ASC) USING BTREE,
|
||
CONSTRAINT `articles_ibfk_1` FOREIGN KEY (`author_id`) REFERENCES `users` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for balance_fix_log
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `balance_fix_log`;
|
||
CREATE TABLE `balance_fix_log` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`user_id` int NOT NULL,
|
||
`amount_deducted` decimal(10, 2) NOT NULL,
|
||
`transfer_count` int NOT NULL,
|
||
`fix_reason` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL,
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
INDEX `idx_user_id`(`user_id` ASC) USING BTREE,
|
||
INDEX `idx_created_at`(`created_at` ASC) USING BTREE
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for cart_items
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `cart_items`;
|
||
CREATE TABLE `cart_items` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`user_id` int NOT NULL,
|
||
`product_id` int NOT NULL,
|
||
`quantity` int NOT NULL DEFAULT 1,
|
||
`specification_id` int NULL DEFAULT NULL,
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE INDEX `unique_user_product_spec`(`user_id` ASC, `product_id` ASC, `specification_id` ASC) USING BTREE,
|
||
INDEX `product_id`(`product_id` ASC) USING BTREE,
|
||
INDEX `specification_id`(`specification_id` ASC) USING BTREE
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for china_regions
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `china_regions`;
|
||
CREATE TABLE `china_regions` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`code` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
||
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
||
`parent_code` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||
`level` tinyint NOT NULL COMMENT '1:省 2:市 3:区',
|
||
`sort_order` int NULL DEFAULT 0,
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE INDEX `code`(`code` ASC) USING BTREE,
|
||
INDEX `idx_parent_code`(`parent_code` ASC) USING BTREE,
|
||
INDEX `idx_level`(`level` ASC) USING BTREE
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 4621 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for matching_orders
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `matching_orders`;
|
||
CREATE TABLE `matching_orders` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`initiator_id` int NOT NULL,
|
||
`amount` decimal(10, 2) NOT NULL,
|
||
`status` enum('pending','matching','completed','cancelled','failed') CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'pending',
|
||
`cycle_count` int NULL DEFAULT 0,
|
||
`max_cycles` int NULL DEFAULT 3,
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
`matching_type` enum('small','large') CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'small',
|
||
`is_system_reverse` tinyint(1) NULL DEFAULT 0,
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
INDEX `initiator_id`(`initiator_id` ASC) USING BTREE,
|
||
CONSTRAINT `matching_orders_ibfk_1` FOREIGN KEY (`initiator_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 441 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for matching_records
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `matching_records`;
|
||
CREATE TABLE `matching_records` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`matching_order_id` int NOT NULL,
|
||
`user_id` int NOT NULL,
|
||
`action` enum('join','confirm','reject','complete') CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||
`amount` decimal(10, 2) NULL DEFAULT NULL,
|
||
`note` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
INDEX `matching_order_id`(`matching_order_id` ASC) USING BTREE,
|
||
INDEX `user_id`(`user_id` ASC) USING BTREE,
|
||
CONSTRAINT `matching_records_ibfk_1` FOREIGN KEY (`matching_order_id`) REFERENCES `matching_orders` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT,
|
||
CONSTRAINT `matching_records_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 1841 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for order_allocations
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `order_allocations`;
|
||
CREATE TABLE `order_allocations` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`matching_order_id` int NOT NULL,
|
||
`from_user_id` int NOT NULL,
|
||
`to_user_id` int NOT NULL,
|
||
`amount` decimal(10, 2) NOT NULL,
|
||
`cycle_number` int NOT NULL,
|
||
`status` enum('pending','confirmed','rejected','completed') CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'pending',
|
||
`transfer_id` int NULL DEFAULT NULL,
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
`confirmed_at` timestamp NULL DEFAULT NULL,
|
||
`outbound_date` date NULL DEFAULT NULL,
|
||
`return_date` date NULL DEFAULT NULL,
|
||
`can_return_after` timestamp NULL DEFAULT NULL,
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
INDEX `matching_order_id`(`matching_order_id` ASC) USING BTREE,
|
||
INDEX `from_user_id`(`from_user_id` ASC) USING BTREE,
|
||
INDEX `to_user_id`(`to_user_id` ASC) USING BTREE,
|
||
INDEX `transfer_id`(`transfer_id` ASC) USING BTREE,
|
||
CONSTRAINT `order_allocations_ibfk_1` FOREIGN KEY (`matching_order_id`) REFERENCES `matching_orders` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT,
|
||
CONSTRAINT `order_allocations_ibfk_2` FOREIGN KEY (`from_user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT,
|
||
CONSTRAINT `order_allocations_ibfk_3` FOREIGN KEY (`to_user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT,
|
||
CONSTRAINT `order_allocations_ibfk_4` FOREIGN KEY (`transfer_id`) REFERENCES `transfers` (`id`) ON DELETE SET NULL ON UPDATE RESTRICT
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 1078 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for order_allocations_backup
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `order_allocations_backup`;
|
||
CREATE TABLE `order_allocations_backup` (
|
||
`id` int NOT NULL DEFAULT 0,
|
||
`matching_order_id` int NOT NULL,
|
||
`from_user_id` int NOT NULL,
|
||
`to_user_id` int NOT NULL,
|
||
`amount` decimal(10, 2) NOT NULL,
|
||
`cycle_number` int NOT NULL,
|
||
`status` enum('pending','confirmed','rejected','completed') CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'pending',
|
||
`transfer_id` int NULL DEFAULT NULL,
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
`confirmed_at` timestamp NULL DEFAULT NULL,
|
||
`outbound_date` date NULL DEFAULT NULL,
|
||
`return_date` date NULL DEFAULT NULL,
|
||
`can_return_after` timestamp NULL DEFAULT NULL
|
||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for order_items
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `order_items`;
|
||
CREATE TABLE `order_items` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`order_id` int NOT NULL,
|
||
`product_id` int NOT NULL,
|
||
`spec_combination_id` int NULL DEFAULT NULL COMMENT '规格组合ID',
|
||
`quantity` int NOT NULL,
|
||
`price` int NOT NULL,
|
||
`points` int NOT NULL,
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`points_price` int NOT NULL DEFAULT 0,
|
||
`rongdou_price` int NOT NULL DEFAULT 0,
|
||
`rongdou` int NULL DEFAULT 0,
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
INDEX `order_id`(`order_id` ASC) USING BTREE,
|
||
INDEX `product_id`(`product_id` ASC) USING BTREE,
|
||
CONSTRAINT `order_items_ibfk_1` FOREIGN KEY (`order_id`) REFERENCES `orders` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
|
||
CONSTRAINT `order_items_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for orders
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `orders`;
|
||
CREATE TABLE `orders` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`user_id` int NOT NULL,
|
||
`order_no` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||
`total_amount` int NOT NULL,
|
||
`total_points` int NOT NULL,
|
||
`total_rongdou` int NOT NULL DEFAULT 0,
|
||
`status` enum('pending','paid','shipped','delivered','cancelled','pre_order','completed') CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'pending',
|
||
`address` json NULL,
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE INDEX `order_no`(`order_no` ASC) USING BTREE,
|
||
INDEX `user_id`(`user_id` ASC) USING BTREE,
|
||
CONSTRAINT `orders_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for points_history
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `points_history`;
|
||
CREATE TABLE `points_history` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`user_id` int NOT NULL,
|
||
`type` enum('earn','spend','admin_adjust','refund') CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||
`amount` int NOT NULL,
|
||
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||
`order_id` int NULL DEFAULT NULL,
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
INDEX `user_id`(`user_id` ASC) USING BTREE,
|
||
INDEX `order_id`(`order_id` ASC) USING BTREE,
|
||
CONSTRAINT `points_history_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
|
||
CONSTRAINT `points_history_ibfk_2` FOREIGN KEY (`order_id`) REFERENCES `orders` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 1273 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for product_attributes
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `product_attributes`;
|
||
CREATE TABLE `product_attributes` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`product_id` int NOT NULL,
|
||
`attribute_key` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
||
`attribute_value` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
||
`sort_order` int NULL DEFAULT 0,
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
INDEX `product_id`(`product_id` ASC) USING BTREE,
|
||
CONSTRAINT `product_attributes_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for product_favorites
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `product_favorites`;
|
||
CREATE TABLE `product_favorites` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`user_id` int NOT NULL,
|
||
`product_id` int NOT NULL,
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE INDEX `unique_user_product`(`user_id` ASC, `product_id` ASC) USING BTREE,
|
||
INDEX `product_id`(`product_id` ASC) USING BTREE,
|
||
CONSTRAINT `product_favorites_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT,
|
||
CONSTRAINT `product_favorites_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for product_reviews
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `product_reviews`;
|
||
CREATE TABLE `product_reviews` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`product_id` int NOT NULL,
|
||
`user_id` int NOT NULL,
|
||
`order_id` int NOT NULL,
|
||
`rating` int NOT NULL,
|
||
`comment` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
||
`images` json NULL,
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
INDEX `product_id`(`product_id` ASC) USING BTREE,
|
||
INDEX `user_id`(`user_id` ASC) USING BTREE,
|
||
INDEX `order_id`(`order_id` ASC) USING BTREE,
|
||
CONSTRAINT `product_reviews_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
|
||
CONSTRAINT `product_reviews_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
|
||
CONSTRAINT `product_reviews_ibfk_3` FOREIGN KEY (`order_id`) REFERENCES `orders` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for product_spec_combinations
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `product_spec_combinations`;
|
||
CREATE TABLE `product_spec_combinations` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`product_id` int NOT NULL COMMENT '商品ID',
|
||
`combination_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '组合键,如:color_1-size_2-material_3',
|
||
`spec_values` json NOT NULL COMMENT '规格值组合,存储spec_value_id数组',
|
||
`price_adjustment` int NULL DEFAULT 0 COMMENT '价格调整',
|
||
`points_adjustment` int NULL DEFAULT 0 COMMENT '积分调整',
|
||
`rongdou_adjustment` int NULL DEFAULT 0 COMMENT '融豆调整',
|
||
`stock` int NULL DEFAULT 0 COMMENT '库存',
|
||
`sku_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'SKU编码',
|
||
`barcode` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '条形码',
|
||
`weight` decimal(8, 3) NULL DEFAULT NULL COMMENT '重量(kg)',
|
||
`volume` decimal(10, 3) NULL DEFAULT NULL COMMENT '体积(cm³)',
|
||
`status` enum('active','inactive') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'active',
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE INDEX `unique_product_combination`(`product_id` ASC, `combination_key` ASC) USING BTREE,
|
||
INDEX `idx_product_status`(`product_id` ASC, `status` ASC) USING BTREE,
|
||
INDEX `idx_sku_code`(`sku_code` ASC) USING BTREE,
|
||
CONSTRAINT `product_spec_combinations_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for product_spec_names
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `product_spec_names`;
|
||
CREATE TABLE `product_spec_names` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`product_id` int NOT NULL COMMENT '商品ID',
|
||
`spec_name_id` int NOT NULL COMMENT '规格名称ID',
|
||
`is_required` tinyint(1) NULL DEFAULT 1 COMMENT '是否必选规格',
|
||
`sort_order` int NULL DEFAULT 0 COMMENT '排序',
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE INDEX `unique_product_spec_name`(`product_id` ASC, `spec_name_id` ASC) USING BTREE,
|
||
INDEX `spec_name_id`(`spec_name_id` ASC) USING BTREE,
|
||
CONSTRAINT `product_spec_names_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT,
|
||
CONSTRAINT `product_spec_names_ibfk_2` FOREIGN KEY (`spec_name_id`) REFERENCES `spec_names` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for product_specifications
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `product_specifications`;
|
||
CREATE TABLE `product_specifications` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`product_id` int NOT NULL,
|
||
`spec_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
||
`spec_value` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
||
`price_adjustment` int NULL DEFAULT 0,
|
||
`points_adjustment` int NULL DEFAULT 0,
|
||
`rongdou_adjustment` int NULL DEFAULT 0,
|
||
`stock` int NULL DEFAULT 0,
|
||
`sku_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||
`status` enum('active','inactive') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'active',
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
INDEX `product_id`(`product_id` ASC) USING BTREE,
|
||
CONSTRAINT `product_specifications_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for products
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `products`;
|
||
CREATE TABLE `products` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
||
`price` int NOT NULL,
|
||
`original_price` int NULL DEFAULT NULL,
|
||
`stock` int NULL DEFAULT 0,
|
||
`sales` int NULL DEFAULT 0,
|
||
`rating` decimal(3, 2) NULL DEFAULT 5.00,
|
||
`category` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||
`images` json NULL,
|
||
`status` enum('active','inactive') CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'active',
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
`points_price` int NOT NULL DEFAULT 0,
|
||
`image_url` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||
`details` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
||
`rongdou_price` int NOT NULL DEFAULT 0,
|
||
`videos` json NULL,
|
||
`shop_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||
`shop_avatar` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||
`payment_methods` json NULL,
|
||
PRIMARY KEY (`id`) USING BTREE
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 18 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for regional_agents
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `regional_agents`;
|
||
CREATE TABLE `regional_agents` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`user_id` int NOT NULL,
|
||
`region_id` int NOT NULL,
|
||
`agent_code` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
||
`status` enum('pending','active','suspended','terminated') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'pending',
|
||
`commission_rate` decimal(5, 4) NULL DEFAULT 0.0500,
|
||
`total_earnings` decimal(10, 2) NULL DEFAULT 0.00,
|
||
`recruited_merchants` int NULL DEFAULT 0,
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
`approved_at` timestamp NULL DEFAULT NULL,
|
||
`approved_by_admin_id` int NULL DEFAULT NULL,
|
||
`withdrawn_amount` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '已提现金额',
|
||
`pending_withdrawal` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '待审核提现金额',
|
||
`payment_type` enum('bank','wechat','alipay','unionpay') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'bank' COMMENT '收款方式类型',
|
||
`account_number` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '账号/银行账号',
|
||
`account_holder` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '持有人姓名',
|
||
`qr_code_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '收款码图片URL',
|
||
`bank_account` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '银行账号(兼容旧版本)',
|
||
`bank_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '银行名称',
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE INDEX `agent_code`(`agent_code` ASC) USING BTREE,
|
||
UNIQUE INDEX `unique_agent_region`(`user_id` ASC, `region_id` ASC) USING BTREE,
|
||
INDEX `region_id`(`region_id` ASC) USING BTREE,
|
||
CONSTRAINT `regional_agents_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT,
|
||
CONSTRAINT `regional_agents_ibfk_2` FOREIGN KEY (`region_id`) REFERENCES `zhejiang_regions` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for registration_codes
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `registration_codes`;
|
||
CREATE TABLE `registration_codes` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '注册码',
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`expires_at` timestamp NOT NULL COMMENT '过期时间',
|
||
`used_at` timestamp NULL DEFAULT NULL COMMENT '使用时间',
|
||
`used_by_user_id` int NULL DEFAULT NULL COMMENT '使用该注册码的用户ID',
|
||
`is_used` tinyint(1) NULL DEFAULT 0 COMMENT '是否已使用',
|
||
`created_by_admin_id` int NOT NULL COMMENT '创建该注册码的管理员ID',
|
||
`agent_id` int NULL DEFAULT NULL,
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE INDEX `code`(`code` ASC) USING BTREE,
|
||
INDEX `idx_code`(`code` ASC) USING BTREE,
|
||
INDEX `idx_expires_at`(`expires_at` ASC) USING BTREE,
|
||
INDEX `idx_is_used`(`is_used` ASC) USING BTREE,
|
||
INDEX `used_by_user_id`(`used_by_user_id` ASC) USING BTREE,
|
||
INDEX `created_by_admin_id`(`created_by_admin_id` ASC) USING BTREE,
|
||
INDEX `fk_registration_codes_agent_id`(`agent_id` ASC) USING BTREE,
|
||
CONSTRAINT `fk_registration_codes_agent_id` FOREIGN KEY (`agent_id`) REFERENCES `users` (`id`) ON DELETE SET NULL ON UPDATE RESTRICT,
|
||
CONSTRAINT `registration_codes_ibfk_1` FOREIGN KEY (`used_by_user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL ON UPDATE RESTRICT,
|
||
CONSTRAINT `registration_codes_ibfk_2` FOREIGN KEY (`created_by_admin_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 150 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '注册码表' ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for rongdou_history
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `rongdou_history`;
|
||
CREATE TABLE `rongdou_history` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`user_id` int NOT NULL,
|
||
`type` enum('earn','spend') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
||
`amount` int NOT NULL,
|
||
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||
`order_id` int NULL DEFAULT NULL,
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
INDEX `user_id`(`user_id` ASC) USING BTREE,
|
||
INDEX `order_id`(`order_id` ASC) USING BTREE,
|
||
CONSTRAINT `rongdou_history_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
|
||
CONSTRAINT `rongdou_history_ibfk_2` FOREIGN KEY (`order_id`) REFERENCES `orders` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for spec_names
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `spec_names`;
|
||
CREATE TABLE `spec_names` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '规格名称,如:颜色、尺寸、材质',
|
||
`display_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '显示名称',
|
||
`sort_order` int NULL DEFAULT 0 COMMENT '排序',
|
||
`status` enum('active','inactive') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'active',
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE INDEX `unique_name`(`name` ASC) USING BTREE
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for spec_values
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `spec_values`;
|
||
CREATE TABLE `spec_values` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`spec_name_id` int NOT NULL COMMENT '规格名称ID',
|
||
`value` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '规格值,如:红色、XL、棉质',
|
||
`display_value` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '显示值',
|
||
`color_code` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '颜色代码(仅颜色规格使用)',
|
||
`image_url` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '规格图片',
|
||
`sort_order` int NULL DEFAULT 0 COMMENT '排序',
|
||
`status` enum('active','inactive') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'active',
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE INDEX `unique_spec_value`(`spec_name_id` ASC, `value` ASC) USING BTREE,
|
||
CONSTRAINT `spec_values_ibfk_1` FOREIGN KEY (`spec_name_id`) REFERENCES `spec_names` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for system_settings
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `system_settings`;
|
||
CREATE TABLE `system_settings` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`setting_key` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||
`setting_value` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
||
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE INDEX `setting_key`(`setting_key` ASC) USING BTREE
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 77 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for test_users
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `test_users`;
|
||
CREATE TABLE `test_users` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
||
`email` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` timestamp NULL DEFAULT NULL,
|
||
PRIMARY KEY (`id`) USING BTREE
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for transfer_confirmations
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `transfer_confirmations`;
|
||
CREATE TABLE `transfer_confirmations` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`transfer_id` int NOT NULL,
|
||
`confirmer_id` int NOT NULL,
|
||
`action` enum('confirm','reject') CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||
`note` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
INDEX `transfer_id`(`transfer_id` ASC) USING BTREE,
|
||
INDEX `confirmer_id`(`confirmer_id` ASC) USING BTREE,
|
||
CONSTRAINT `transfer_confirmations_ibfk_1` FOREIGN KEY (`transfer_id`) REFERENCES `transfers` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT,
|
||
CONSTRAINT `transfer_confirmations_ibfk_2` FOREIGN KEY (`confirmer_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for transfers
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `transfers`;
|
||
CREATE TABLE `transfers` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`from_user_id` int NULL DEFAULT NULL,
|
||
`to_user_id` int NOT NULL,
|
||
`amount` decimal(10, 2) NOT NULL,
|
||
`transfer_type` enum('initial','return','user_to_user','system_to_user','user_to_system') CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'user_to_user',
|
||
`status` enum('pending','confirmed','rejected','received','not_received','cancelled') CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'pending',
|
||
`voucher_url` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
||
`batch_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
`deadline_at` timestamp NULL DEFAULT NULL COMMENT '转账截止时间',
|
||
`is_overdue` tinyint(1) NULL DEFAULT 0 COMMENT '是否超时',
|
||
`overdue_at` timestamp NULL DEFAULT NULL COMMENT '超时时间',
|
||
`is_bad_debt` tinyint(1) NULL DEFAULT 0,
|
||
`confirmed_at` timestamp NULL DEFAULT NULL,
|
||
`admin_note` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
||
`admin_modified_at` timestamp NULL DEFAULT NULL,
|
||
`admin_modified_by` int NULL DEFAULT NULL,
|
||
`source_type` enum('manual','allocation','system') CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'manual' COMMENT '转账来源类型',
|
||
`matching_order_id` int NULL DEFAULT NULL,
|
||
`cycle_number` int NULL DEFAULT NULL,
|
||
`outbound_date` date NULL DEFAULT NULL,
|
||
`return_date` date NULL DEFAULT NULL,
|
||
`can_return_after` timestamp NULL DEFAULT NULL,
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
INDEX `from_user_id`(`from_user_id` ASC) USING BTREE,
|
||
INDEX `to_user_id`(`to_user_id` ASC) USING BTREE,
|
||
CONSTRAINT `transfers_ibfk_1` FOREIGN KEY (`from_user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT,
|
||
CONSTRAINT `transfers_ibfk_2` FOREIGN KEY (`to_user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 1529 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for user_addresses
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `user_addresses`;
|
||
CREATE TABLE `user_addresses` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`user_id` int NOT NULL,
|
||
`receiver_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
||
`receiver_phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
||
`province` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
||
`city` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
||
`district` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
||
`detailed_address` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
||
`postal_code` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||
`label` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '家',
|
||
`is_default` tinyint(1) NULL DEFAULT 0,
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
INDEX `user_id`(`user_id` ASC) USING BTREE,
|
||
CONSTRAINT `user_addresses_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for user_matching_pool
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `user_matching_pool`;
|
||
CREATE TABLE `user_matching_pool` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`user_id` int NOT NULL,
|
||
`available_amount` decimal(10, 2) NULL DEFAULT 0.00,
|
||
`is_active` tinyint(1) NULL DEFAULT 1,
|
||
`last_matched_at` timestamp NULL DEFAULT NULL,
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE INDEX `unique_user`(`user_id` ASC) USING BTREE,
|
||
CONSTRAINT `user_matching_pool_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 61 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for users
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `users`;
|
||
CREATE TABLE `users` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||
`email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||
`password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
||
`role` enum('user','admin') CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'user',
|
||
`avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
`points` int NULL DEFAULT 0,
|
||
`real_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||
`id_card` varchar(18) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||
`wechat_qr` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||
`alipay_qr` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||
`bank_card` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||
`unionpay_qr` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||
`phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||
`is_system_account` tinyint(1) NULL DEFAULT 0,
|
||
`completed_withdrawals` int NULL DEFAULT 0,
|
||
`balance` decimal(10, 2) NULL DEFAULT 0.00,
|
||
`is_risk_user` tinyint(1) NULL DEFAULT 0 COMMENT '是否为风险用户',
|
||
`is_blacklisted` tinyint(1) NULL DEFAULT 0 COMMENT '是否被拉黑',
|
||
`risk_reason` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '风险原因',
|
||
`blacklist_reason` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '拉黑原因',
|
||
`blacklisted_at` timestamp NULL DEFAULT NULL COMMENT '拉黑时间',
|
||
`business_license` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||
`id_card_front` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||
`id_card_back` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||
`audit_status` enum('pending','approved','rejected') CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'pending',
|
||
`audit_note` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
|
||
`audited_by` int NULL DEFAULT NULL,
|
||
`audited_at` timestamp NULL DEFAULT NULL,
|
||
`city` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
|
||
`district_id` int NULL DEFAULT NULL,
|
||
`isdistribute` tinyint NULL DEFAULT 1,
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE INDEX `username`(`username` ASC) USING BTREE,
|
||
UNIQUE INDEX `email`(`email` ASC) USING BTREE,
|
||
UNIQUE INDEX `phone`(`phone` ASC) USING BTREE
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 9788 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
-- ----------------------------
|
||
-- Table structure for zhejiang_regions
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `zhejiang_regions`;
|
||
CREATE TABLE `zhejiang_regions` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`city_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
||
`district_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
||
`region_code` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
||
`is_available` tinyint(1) NULL DEFAULT 1,
|
||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE INDEX `region_code`(`region_code` ASC) USING BTREE,
|
||
UNIQUE INDEX `unique_region`(`city_name` ASC, `district_name` ASC) USING BTREE
|
||
) ENGINE = InnoDB AUTO_INCREMENT = 23234 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
|
||
|
||
SET FOREIGN_KEY_CHECKS = 1;
|