Initial commit of akmon project
This commit is contained in:
113
doc_mall/database/verify_mock_data_fix.sql
Normal file
113
doc_mall/database/verify_mock_data_fix.sql
Normal file
@@ -0,0 +1,113 @@
|
||||
-- =================================================================-- 验证7:检查临时表是否已清理
|
||||
SELECT
|
||||
'临时表清理检查' as check_type,
|
||||
CASE
|
||||
WHEN EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'temp_user_ids')
|
||||
THEN '临时表仍存在'
|
||||
ELSE '临时表已清理'
|
||||
END as cleanup_status;
|
||||
|
||||
-- 验证8:检查配送任务分配逻辑
|
||||
SELECT
|
||||
'配送任务分配检查' as check_type,
|
||||
COUNT(DISTINCT dt.driver_id) as assigned_drivers,
|
||||
COUNT(*) as total_tasks,
|
||||
ROUND(AVG(tasks_per_driver.task_count), 2) as avg_tasks_per_driver
|
||||
FROM public.ml_delivery_tasks dt
|
||||
CROSS JOIN (
|
||||
SELECT driver_id, COUNT(*) as task_count
|
||||
FROM public.ml_delivery_tasks
|
||||
GROUP BY driver_id
|
||||
) as tasks_per_driver;============
|
||||
-- mock_data_insert.sql 修复验证脚本
|
||||
-- 用途: 验证修复后的模拟数据插入脚本是否能正常执行
|
||||
-- =====================================================================================
|
||||
|
||||
-- 验证1:检查商品价格数据完整性
|
||||
SELECT
|
||||
'商品价格检查' as check_type,
|
||||
COUNT(*) as total_products,
|
||||
COUNT(CASE WHEN base_price IS NULL THEN 1 END) as null_base_price_count,
|
||||
COUNT(CASE WHEN base_price > 0 THEN 1 END) as valid_price_count
|
||||
FROM public.ml_products;
|
||||
|
||||
-- 验证2:检查SKU价格数据完整性
|
||||
SELECT
|
||||
'SKU价格检查' as check_type,
|
||||
COUNT(*) as total_skus,
|
||||
COUNT(CASE WHEN price IS NULL THEN 1 END) as null_price_count,
|
||||
COUNT(CASE WHEN price > 0 THEN 1 END) as valid_price_count
|
||||
FROM public.ml_product_skus;
|
||||
|
||||
-- 验证3:测试商品-SKU价格查询逻辑
|
||||
SELECT
|
||||
'价格查询逻辑测试' as check_type,
|
||||
p.name as product_name,
|
||||
p.base_price,
|
||||
s.price as sku_price,
|
||||
COALESCE(s.price, p.base_price) as final_price,
|
||||
CASE
|
||||
WHEN s.price IS NOT NULL THEN 'SKU价格'
|
||||
ELSE '基础价格'
|
||||
END as price_source
|
||||
FROM public.ml_products p
|
||||
LEFT JOIN public.ml_product_skus s ON p.id = s.product_id
|
||||
ORDER BY p.name, s.sku_code
|
||||
LIMIT 10;
|
||||
|
||||
-- 验证4:检查订单商品价格是否存在NULL值
|
||||
SELECT
|
||||
'订单商品价格检查' as check_type,
|
||||
COUNT(*) as total_order_items,
|
||||
COUNT(CASE WHEN price IS NULL THEN 1 END) as null_price_count,
|
||||
COUNT(CASE WHEN price > 0 THEN 1 END) as valid_price_count,
|
||||
MIN(price) as min_price,
|
||||
MAX(price) as max_price
|
||||
FROM public.ml_order_items;
|
||||
|
||||
-- 验证5:检查订单关联的商家ID是否正确
|
||||
SELECT
|
||||
'订单商家关联检查' as check_type,
|
||||
COUNT(DISTINCT o.merchant_id) as unique_merchants,
|
||||
COUNT(*) as total_orders,
|
||||
COUNT(CASE WHEN u.role = 'merchant' THEN 1 END) as valid_merchant_orders
|
||||
FROM public.ml_orders o
|
||||
LEFT JOIN public.ak_users u ON o.merchant_id = u.id;
|
||||
|
||||
-- 验证6:检查配送任务唯一性
|
||||
SELECT
|
||||
'配送任务唯一性检查' as check_type,
|
||||
COUNT(*) as total_delivery_tasks,
|
||||
COUNT(DISTINCT order_id) as unique_orders,
|
||||
COUNT(*) - COUNT(DISTINCT order_id) as duplicate_order_count,
|
||||
CASE
|
||||
WHEN COUNT(*) = COUNT(DISTINCT order_id) THEN '✓ 无重复订单'
|
||||
ELSE '✗ 存在重复订单配送任务'
|
||||
END as uniqueness_status
|
||||
FROM public.ml_delivery_tasks;
|
||||
|
||||
-- 验证7:检查临时表是否已清理
|
||||
SELECT
|
||||
'临时表清理检查' as check_type,
|
||||
CASE
|
||||
WHEN EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'temp_user_ids')
|
||||
THEN '临时表仍存在'
|
||||
ELSE '临时表已清理'
|
||||
END as cleanup_status;
|
||||
|
||||
-- 输出总体验证结果
|
||||
DO $$
|
||||
BEGIN
|
||||
RAISE NOTICE '=======================================================';
|
||||
RAISE NOTICE '模拟数据插入脚本修复验证完成';
|
||||
RAISE NOTICE '=======================================================';
|
||||
RAISE NOTICE '请检查以上查询结果:';
|
||||
RAISE NOTICE '1. 商品和SKU价格应无NULL值';
|
||||
RAISE NOTICE '2. 订单商品价格应无NULL值';
|
||||
RAISE NOTICE '3. 订单应正确关联到商家用户';
|
||||
RAISE NOTICE '4. 配送任务应无重复订单';
|
||||
RAISE NOTICE '5. 临时表应已清理';
|
||||
RAISE NOTICE '=======================================================';
|
||||
RAISE NOTICE '如所有检查通过,说明修复有效';
|
||||
RAISE NOTICE '=======================================================';
|
||||
END $$;
|
||||
Reference in New Issue
Block a user