修复订单显示bug

This commit is contained in:
2026-06-10 20:20:47 +08:00
parent de62513987
commit 9fbc6f8cd1
45 changed files with 7514 additions and 2025 deletions

View File

@@ -0,0 +1,90 @@
-- ===================================================================
-- 用途:为已存在的 auth 用户创建 ml_delivery_staff 服务人员档案(兼容 v1/v2
-- 前提auth.users 中已有 homecare_worker@test.com
-- ===================================================================
DO $$
DECLARE
v_uid UUID;
v_has_v2 BOOLEAN := FALSE;
BEGIN
-- 1. 通过邮箱找到用户 ID
SELECT id INTO v_uid FROM auth.users WHERE email = 'homecare_worker@test.com' LIMIT 1;
IF v_uid IS NULL THEN
RAISE EXCEPTION 'auth.users 中不存在 homecare_worker@test.com请先创建该用户';
END IF;
-- 2. 确保 ak_users 中有对应记录role 必须是 delivery
INSERT INTO public.ak_users (id, username, email, role, created_at, updated_at)
VALUES (v_uid, '居家服务员', 'homecare_worker@test.com', 'delivery', NOW(), NOW())
ON CONFLICT (id) DO UPDATE SET
username = EXCLUDED.username,
role = EXCLUDED.role,
updated_at = NOW();
RAISE NOTICE '✓ ak_users 已就绪uid: %', v_uid;
-- 3. 探测 ml_delivery_staff 是否为 v2 结构(是否有 online_status 字段)
SELECT EXISTS (
SELECT 1 FROM information_schema.columns
WHERE table_schema = 'public'
AND table_name = 'ml_delivery_staff'
AND column_name = 'online_status'
) INTO v_has_v2;
-- 4. 根据表结构版本执行对应插入
IF v_has_v2 THEN
-- v2 结构(含 online_status, certificate_status, staff_no 等)
INSERT INTO public.ml_delivery_staff (
id, uid, nickname, avatar, phone,
status, is_active,
staff_no, online_status, certificate_status,
certificate_expire_at, service_area, skills,
created_at, updated_at
) VALUES (
gen_random_uuid(), v_uid, '居家服务员',
'https://api.dicebear.com/7.x/avataaars/svg?seed=homecare',
'13800138000',
1, TRUE,
'HC' || EXTRACT(YEAR FROM NOW()) || LPAD(FLOOR(RANDOM() * 10000)::TEXT, 4, '0'),
'resting', 'valid',
(NOW() + INTERVAL '1 year')::DATE,
'北京市朝阳区',
'["基础护理", "康复训练", "上门照护"]'::jsonb,
NOW(), NOW()
)
ON CONFLICT (uid) WHERE deleted_at IS NULL DO UPDATE SET
nickname = EXCLUDED.nickname,
status = EXCLUDED.status,
is_active = EXCLUDED.is_active,
updated_at = NOW();
RAISE NOTICE '✓ ml_delivery_staff (v2) 档案已创建/更新';
ELSE
-- v1 结构(仅基础字段)
INSERT INTO public.ml_delivery_staff (
id, uid, nickname, avatar, phone,
status, is_active,
created_at, updated_at
) VALUES (
gen_random_uuid(), v_uid, '居家服务员',
'https://api.dicebear.com/7.x/avataaars/svg?seed=homecare',
'13800138000',
1, TRUE,
NOW(), NOW()
)
ON CONFLICT (uid) DO UPDATE SET
nickname = EXCLUDED.nickname,
status = EXCLUDED.status,
is_active = EXCLUDED.is_active,
updated_at = NOW();
RAISE NOTICE '✓ ml_delivery_staff (v1) 档案已创建/更新';
END IF;
RAISE NOTICE '============================================';
RAISE NOTICE '建档完成!请重新编译小程序后登录测试。';
RAISE NOTICE '============================================';
END $$;