后台完成修复,初始化项目
This commit is contained in:
161
src/main/resources/sql/test-data.sql
Normal file
161
src/main/resources/sql/test-data.sql
Normal file
@@ -0,0 +1,161 @@
|
||||
-- 秒杀系统测试数据SQL脚本
|
||||
-- 包含演示账号、测试商品、秒杀活动等数据
|
||||
|
||||
-- 创建数据库(如果不存在)
|
||||
CREATE DATABASE IF NOT EXISTS flash_sale_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
USE flash_sale_db;
|
||||
|
||||
-- 清理现有数据(谨慎使用)
|
||||
-- DELETE FROM orders WHERE id > 0;
|
||||
-- DELETE FROM flash_sales WHERE id > 0;
|
||||
-- DELETE FROM products WHERE id > 0;
|
||||
-- DELETE FROM users WHERE id > 0;
|
||||
|
||||
-- 重置自增ID
|
||||
-- ALTER TABLE users AUTO_INCREMENT = 1;
|
||||
-- ALTER TABLE products AUTO_INCREMENT = 1;
|
||||
-- ALTER TABLE flash_sales AUTO_INCREMENT = 1;
|
||||
-- ALTER TABLE orders AUTO_INCREMENT = 1;
|
||||
|
||||
-- ================================
|
||||
-- 1. 插入测试用户数据
|
||||
-- ================================
|
||||
|
||||
INSERT INTO users (username, password, email, phone, status, created_at, updated_at)
|
||||
VALUES
|
||||
-- 演示账号(密码都是明文,实际应用中应该加密)
|
||||
('demo1', '$2a$10$N.zmdr9k7uOkXUJEkKWZaOh.3VQ8nl83hq8/Qhx6.5PkZKJKJKJKJ', 'demo1@example.com', '13800138001', 1, NOW(),
|
||||
NOW()),
|
||||
('demo2', '$2a$10$N.zmdr9k7uOkXUJEkKWZaOh.3VQ8nl83hq8/Qhx6.5PkZKJKJKJKJ', 'demo2@example.com', '13800138002', 1, NOW(),
|
||||
NOW()),
|
||||
('admin', '$2a$10$N.zmdr9k7uOkXUJEkKWZaOh.3VQ8nl83hq8/Qhx6.5PkZKJKJKJKJ', 'admin@example.com', '13800138000', 1, NOW(),
|
||||
NOW()),
|
||||
|
||||
-- 普通测试用户
|
||||
('testuser1', '$2a$10$N.zmdr9k7uOkXUJEkKWZaOh.3VQ8nl83hq8/Qhx6.5PkZKJKJKJKJ', 'test1@example.com', '13800138003', 1,
|
||||
NOW(), NOW()),
|
||||
('testuser2', '$2a$10$N.zmdr9k7uOkXUJEkKWZaOh.3VQ8nl83hq8/Qhx6.5PkZKJKJKJKJ', 'test2@example.com', '13800138004', 1,
|
||||
NOW(), NOW()),
|
||||
('testuser3', '$2a$10$N.zmdr9k7uOkXUJEkKWZaOh.3VQ8nl83hq8/Qhx6.5PkZKJKJKJKJ', 'test3@example.com', '13800138005', 1,
|
||||
NOW(), NOW()),
|
||||
('testuser4', '$2a$10$N.zmdr9k7uOkXUJEkKWZaOh.3VQ8nl83hq8/Qhx6.5PkZKJKJKJKJ', 'test4@example.com', '13800138006', 1,
|
||||
NOW(), NOW()),
|
||||
('testuser5', '$2a$10$N.zmdr9k7uOkXUJEkKWZaOh.3VQ8nl83hq8/Qhx6.5PkZKJKJKJKJ', 'test5@example.com', '13800138007', 1,
|
||||
NOW(), NOW());
|
||||
|
||||
-- ================================
|
||||
-- 2. 插入测试商品数据
|
||||
-- ================================
|
||||
|
||||
INSERT INTO products (name, description, price, stock, image_url, status, created_at, updated_at)
|
||||
VALUES
|
||||
-- 电子产品类
|
||||
('iPhone 15 Pro Max', '苹果最新旗舰手机,A17 Pro芯片,钛金属设计', 9999.00, 100, '/images/iphone15.jpg', 1, NOW(), NOW()),
|
||||
('MacBook Pro 16英寸', 'M3 Max芯片,36GB内存,1TB存储', 25999.00, 50, '/images/macbook.jpg', 1, NOW(), NOW()),
|
||||
('iPad Air', '10.9英寸液晶显示屏,M1芯片', 4399.00, 80, '/images/ipad.jpg', 1, NOW(), NOW()),
|
||||
('AirPods Pro 2', '主动降噪无线耳机,空间音频', 1899.00, 200, '/images/airpods.jpg', 1, NOW(), NOW()),
|
||||
('Apple Watch Series 9', '健康监测,GPS+蜂窝网络', 3199.00, 150, '/images/watch.jpg', 1, NOW(), NOW()),
|
||||
|
||||
-- 家电类
|
||||
('小米电视 65英寸', '4K超高清,120Hz刷新率', 2999.00, 60, '/images/tv.jpg', 1, NOW(), NOW()),
|
||||
('戴森吸尘器 V15', '激光显微尘,强劲吸力', 4690.00, 40, '/images/dyson.jpg', 1, NOW(), NOW()),
|
||||
('美的空调 1.5匹', '变频节能,静音运行', 2599.00, 80, '/images/airconditioner.jpg', 1, NOW(), NOW()),
|
||||
|
||||
-- 服装类
|
||||
('Nike Air Jordan 1', '经典篮球鞋,限量版配色', 1299.00, 120, '/images/jordan.jpg', 1, NOW(), NOW()),
|
||||
('Adidas Ultra Boost', '缓震跑鞋,Boost中底', 1599.00, 100, '/images/ultraboost.jpg', 1, NOW(), NOW()),
|
||||
|
||||
-- 图书类
|
||||
('深入理解Java虚拟机', 'JVM原理与实践,第3版', 89.00, 500, '/images/jvm-book.jpg', 1, NOW(), NOW()),
|
||||
('Redis设计与实现', 'Redis内部机制详解', 79.00, 300, '/images/redis-book.jpg', 1, NOW(), NOW()),
|
||||
|
||||
-- 食品类
|
||||
('茅台酒 53度 500ml', '国酒茅台,收藏佳品', 2680.00, 30, '/images/maotai.jpg', 1, NOW(), NOW()),
|
||||
('五常大米 10kg', '东北优质大米,香甜可口', 168.00, 200, '/images/rice.jpg', 1, NOW(), NOW()),
|
||||
|
||||
-- 美妆类
|
||||
('SK-II神仙水 230ml', '护肤精华,改善肌肤', 1690.00, 80, '/images/skii.jpg', 1, NOW(), NOW());
|
||||
|
||||
-- ================================
|
||||
-- 3. 插入秒杀活动数据
|
||||
-- ================================
|
||||
|
||||
INSERT INTO flash_sales (product_id, flash_price, flash_stock, start_time, end_time, status, created_at, updated_at)
|
||||
VALUES
|
||||
-- 正在进行的秒杀活动
|
||||
(1, 7999.00, 20, DATE_SUB(NOW(), INTERVAL 10 MINUTE), DATE_ADD(NOW(), INTERVAL 2 HOUR), 2, NOW(), NOW()),
|
||||
(4, 1299.00, 50, DATE_SUB(NOW(), INTERVAL 5 MINUTE), DATE_ADD(NOW(), INTERVAL 1 HOUR), 2, NOW(), NOW()),
|
||||
(6, 1999.00, 15, DATE_SUB(NOW(), INTERVAL 1 MINUTE), DATE_ADD(NOW(), INTERVAL 3 HOUR), 2, NOW(), NOW()),
|
||||
|
||||
-- 即将开始的秒杀活动
|
||||
(2, 19999.00, 10, DATE_ADD(NOW(), INTERVAL 30 MINUTE), DATE_ADD(NOW(), INTERVAL 4 HOUR), 1, NOW(), NOW()),
|
||||
(9, 899.00, 30, DATE_ADD(NOW(), INTERVAL 1 HOUR), DATE_ADD(NOW(), INTERVAL 5 HOUR), 1, NOW(), NOW()),
|
||||
(13, 1999.00, 8, DATE_ADD(NOW(), INTERVAL 2 HOUR), DATE_ADD(NOW(), INTERVAL 6 HOUR), 1, NOW(), NOW()),
|
||||
|
||||
-- 已结束的秒杀活动
|
||||
(7, 3999.00, 10, DATE_SUB(NOW(), INTERVAL 2 HOUR), DATE_SUB(NOW(), INTERVAL 30 MINUTE), 3, NOW(), NOW()),
|
||||
(11, 59.00, 100, DATE_SUB(NOW(), INTERVAL 1 DAY), DATE_SUB(NOW(), INTERVAL 22 HOUR), 3, NOW(), NOW());
|
||||
|
||||
-- ================================
|
||||
-- 4. 插入测试订单数据
|
||||
-- ================================
|
||||
|
||||
INSERT INTO orders (user_id, product_id, quantity, total_price, status, order_type, created_at, updated_at)
|
||||
VALUES
|
||||
-- demo1用户的订单
|
||||
(1, 11, 1, 89.00, 4, 1, DATE_SUB(NOW(), INTERVAL 2 DAY), DATE_SUB(NOW(), INTERVAL 1 DAY)),
|
||||
(1, 12, 1, 79.00, 2, 1, DATE_SUB(NOW(), INTERVAL 1 DAY), DATE_SUB(NOW(), INTERVAL 1 DAY)),
|
||||
|
||||
-- demo2用户的订单
|
||||
(2, 14, 1, 168.00, 3, 1, DATE_SUB(NOW(), INTERVAL 3 HOUR), DATE_SUB(NOW(), INTERVAL 2 HOUR)),
|
||||
(2, 7, 1, 3999.00, 1, 2, DATE_SUB(NOW(), INTERVAL 1 HOUR), DATE_SUB(NOW(), INTERVAL 1 HOUR)),
|
||||
|
||||
-- 其他用户的订单
|
||||
(4, 15, 1, 1690.00, 2, 1, DATE_SUB(NOW(), INTERVAL 6 HOUR), DATE_SUB(NOW(), INTERVAL 5 HOUR)),
|
||||
(5, 10, 1, 1599.00, 4, 1, DATE_SUB(NOW(), INTERVAL 12 HOUR), DATE_SUB(NOW(), INTERVAL 10 HOUR)),
|
||||
(6, 8, 1, 2599.00, 3, 1, DATE_SUB(NOW(), INTERVAL 1 DAY), DATE_SUB(NOW(), INTERVAL 20 HOUR)),
|
||||
(7, 5, 1, 3199.00, 2, 1, DATE_SUB(NOW(), INTERVAL 2 DAY), DATE_SUB(NOW(), INTERVAL 1 DAY));
|
||||
|
||||
-- ================================
|
||||
-- 5. 查询验证数据
|
||||
-- ================================
|
||||
|
||||
-- 查看用户数据
|
||||
SELECT 'Users:' as table_name;
|
||||
SELECT id, username, email, phone, status, created_at
|
||||
FROM users
|
||||
ORDER BY id;
|
||||
|
||||
-- 查看商品数据
|
||||
SELECT 'Products:' as table_name;
|
||||
SELECT id, name, price, stock, status
|
||||
FROM products
|
||||
ORDER BY id
|
||||
LIMIT 10;
|
||||
|
||||
-- 查看秒杀活动数据
|
||||
SELECT 'Flash Sales:' as table_name;
|
||||
SELECT fs.id, p.name as product_name, fs.flash_price, fs.flash_stock, fs.start_time, fs.end_time, fs.status
|
||||
FROM flash_sales fs
|
||||
JOIN products p ON fs.product_id = p.id
|
||||
ORDER BY fs.id;
|
||||
|
||||
-- 查看订单数据
|
||||
SELECT 'Orders:' as table_name;
|
||||
SELECT o.id, u.username, p.name as product_name, o.quantity, o.total_price, o.status, o.order_type
|
||||
FROM orders o
|
||||
JOIN users u ON o.user_id = u.id
|
||||
JOIN products p ON o.product_id = p.id
|
||||
ORDER BY o.id;
|
||||
|
||||
-- ================================
|
||||
-- 6. 统计信息
|
||||
-- ================================
|
||||
|
||||
SELECT 'Statistics:' as info;
|
||||
SELECT (SELECT COUNT(*) FROM users) as total_users,
|
||||
(SELECT COUNT(*) FROM products) as total_products,
|
||||
(SELECT COUNT(*) FROM flash_sales) as total_flash_sales,
|
||||
(SELECT COUNT(*) FROM orders) as total_orders,
|
||||
(SELECT COUNT(*) FROM flash_sales WHERE status = 2) as active_flash_sales,
|
||||
(SELECT COUNT(*) FROM orders WHERE status = 1) as pending_orders;
|
||||
Reference in New Issue
Block a user