fix: rebuild latest demo database
This commit is contained in:
@@ -5,72 +5,73 @@ BEGIN;
|
||||
SET session_replication_role = 'replica';
|
||||
|
||||
-- 1. 组织
|
||||
INSERT INTO organizations (name, type, contact_name, status) VALUES
|
||||
('丹阳市妇女联合会', 'women_federation', '张丽华', 'active'),
|
||||
('丹阳市总工会', 'trade_union', '李明远', 'active'),
|
||||
('丹阳市慈善基金会', 'charity_center', '王秀英', 'active');
|
||||
INSERT INTO organizations (id, name, type, contact_name, status) VALUES
|
||||
(gen_random_uuid(), '丹阳市妇女联合会', 'women_federation', '张丽华', 'active'),
|
||||
(gen_random_uuid(), '丹阳市总工会', 'trade_union', '李明远', 'active'),
|
||||
(gen_random_uuid(), '丹阳市慈善基金会', 'charity_center', '王秀英', 'active');
|
||||
|
||||
-- 2. 工作人员(V1.0原有 + V1.1新增)
|
||||
INSERT INTO operators (organization_id, name, username, password_hash, status)
|
||||
SELECT id, '陈主任', 'admin', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHdBfKYuPIiCTB6MJJDEaK', 'active'
|
||||
FROM organizations WHERE type='women_federation' LIMIT 1
|
||||
INSERT INTO operators (id, organization_id, name, username, password_hash, status)
|
||||
SELECT gen_random_uuid(), id, '陈主任', 'admin', '$2b$10$2OtF1WNZuVJ7bAjIUuO1p.NzRgquJhco/11W2640cvXfkp8xWNATK', 'active'
|
||||
FROM organizations WHERE type='women_federation'
|
||||
UNION ALL
|
||||
SELECT id, '红娘小王', 'wanghongniang', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHdBfKYuPIiCTB6MJJDEaK', 'active'
|
||||
FROM organizations WHERE type='women_federation' LIMIT 1
|
||||
SELECT gen_random_uuid(), id, '红娘小王', 'wanghongniang', '$2b$10$2OtF1WNZuVJ7bAjIUuO1p.NzRgquJhco/11W2640cvXfkp8xWNATK', 'active'
|
||||
FROM organizations WHERE type='women_federation'
|
||||
UNION ALL
|
||||
SELECT id, '审核员小张', 'reviewer01', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHdBfKYuPIiCTB6MJJDEaK', 'active'
|
||||
FROM organizations WHERE type='charity_center' LIMIT 1
|
||||
SELECT gen_random_uuid(), id, '审核员小张', 'reviewer01', '$2b$10$2OtF1WNZuVJ7bAjIUuO1p.NzRgquJhco/11W2640cvXfkp8xWNATK', 'active'
|
||||
FROM organizations WHERE type='charity_center'
|
||||
UNION ALL
|
||||
SELECT id, '活动管理员赵', 'activitymgr','$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHdBfKYuPIiCTB6MJJDEaK', 'active'
|
||||
FROM organizations WHERE type='trade_union' LIMIT 1
|
||||
SELECT gen_random_uuid(), id, '活动管理员赵', 'activitymgr','$2b$10$2OtF1WNZuVJ7bAjIUuO1p.NzRgquJhco/11W2640cvXfkp8xWNATK', 'active'
|
||||
FROM organizations WHERE type='trade_union'
|
||||
-- V1.1 新增演示操作员
|
||||
UNION ALL
|
||||
SELECT id, '服务站小李', 'stationop', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHdBfKYuPIiCTB6MJJDEaK', 'active'
|
||||
FROM organizations WHERE type='women_federation' LIMIT 1
|
||||
SELECT gen_random_uuid(), id, '服务站小李', 'stationop', '$2b$10$2OtF1WNZuVJ7bAjIUuO1p.NzRgquJhco/11W2640cvXfkp8xWNATK', 'active'
|
||||
FROM organizations WHERE type='women_federation'
|
||||
UNION ALL
|
||||
SELECT id, '咨询师小周', 'counselor', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHdBfKYuPIiCTB6MJJDEaK', 'active'
|
||||
FROM organizations WHERE type='charity_center' LIMIT 1
|
||||
SELECT gen_random_uuid(), id, '咨询师小周', 'counselor', '$2b$10$2OtF1WNZuVJ7bAjIUuO1p.NzRgquJhco/11W2640cvXfkp8xWNATK', 'active'
|
||||
FROM organizations WHERE type='charity_center'
|
||||
UNION ALL
|
||||
SELECT id, '内容编辑小吴', 'contenteditor','$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHdBfKYuPIiCTB6MJJDEaK', 'active'
|
||||
FROM organizations WHERE type='women_federation' LIMIT 1;
|
||||
SELECT gen_random_uuid(), id, '内容编辑小吴', 'contenteditor','$2b$10$2OtF1WNZuVJ7bAjIUuO1p.NzRgquJhco/11W2640cvXfkp8xWNATK', 'active'
|
||||
FROM organizations WHERE type='women_federation';
|
||||
|
||||
-- 操作员角色绑定(V1.0原有 + V1.1新增)
|
||||
INSERT INTO operator_roles (operator_id, role_id)
|
||||
-- V1.0: admin = super_admin + platform_admin
|
||||
SELECT o.id, '00000000-0000-0000-0000-000000000001' FROM operators WHERE username='admin'
|
||||
UNION ALL SELECT o.id, '00000000-0000-0000-0000-000000000002' FROM operators WHERE username='admin'
|
||||
SELECT o.id, '00000000-0000-0000-0000-000000000001'::uuid FROM operators o WHERE username='admin'
|
||||
UNION ALL SELECT o.id, '00000000-0000-0000-0000-000000000002'::uuid FROM operators o WHERE username='admin'
|
||||
-- V1.0: wanghongniang = matchmaker + activity_manager
|
||||
SELECT o.id, '00000000-0000-0000-0000-000000000005' FROM operators WHERE username='wanghongniang'
|
||||
UNION ALL SELECT o.id, '00000000-0000-0000-0000-000000000006' FROM operators WHERE username='wanghongniang'
|
||||
UNION ALL SELECT o.id, '00000000-0000-0000-0000-000000000005'::uuid FROM operators o WHERE username='wanghongniang'
|
||||
UNION ALL SELECT o.id, '00000000-0000-0000-0000-000000000006'::uuid FROM operators o WHERE username='wanghongniang'
|
||||
-- V1.0: reviewer01 = reviewer + risk_operator
|
||||
SELECT o.id, '00000000-0000-0000-0000-000000000004' FROM operators WHERE username='reviewer01'
|
||||
UNION ALL SELECT o.id, '00000000-0000-0000-0000-000000000007' FROM operators WHERE username='reviewer01'
|
||||
UNION ALL SELECT o.id, '00000000-0000-0000-0000-000000000004'::uuid FROM operators o WHERE username='reviewer01'
|
||||
UNION ALL SELECT o.id, '00000000-0000-0000-0000-000000000007'::uuid FROM operators o WHERE username='reviewer01'
|
||||
-- V1.0: activitymgr = activity_manager + volunteer
|
||||
SELECT o.id, '00000000-0000-0000-0000-000000000006' FROM operators WHERE username='activitymgr'
|
||||
UNION ALL SELECT o.id, '00000000-0000-0000-0000-000000000008' FROM operators WHERE username='activitymgr'
|
||||
UNION ALL SELECT o.id, '00000000-0000-0000-0000-000000000006'::uuid FROM operators o WHERE username='activitymgr'
|
||||
UNION ALL SELECT o.id, '00000000-0000-0000-0000-000000000008'::uuid FROM operators o WHERE username='activitymgr'
|
||||
-- V1.1: stationop = service_station_operator
|
||||
SELECT o.id, '00000000-0000-0000-0000-000000000010' FROM operators WHERE username='stationop'
|
||||
UNION ALL SELECT o.id, '00000000-0000-0000-0000-000000000010'::uuid FROM operators o WHERE username='stationop'
|
||||
-- V1.1: counselor = counselor
|
||||
SELECT o.id, '00000000-0000-0000-0000-000000000011' FROM operators WHERE username='counselor'
|
||||
UNION ALL SELECT o.id, '00000000-0000-0000-0000-000000000011'::uuid FROM operators o WHERE username='counselor'
|
||||
-- V1.1: contenteditor = content_editor
|
||||
SELECT o.id, '00000000-0000-0000-0000-000000000013' FROM operators WHERE username='contenteditor';
|
||||
UNION ALL SELECT o.id, '00000000-0000-0000-0000-000000000013'::uuid FROM operators o WHERE username='contenteditor';
|
||||
|
||||
-- 3. 用户 + 资料 + 偏好 + 实名 + 兴趣 + 隐私 + 照片(一次性生成UUID并关联)
|
||||
CREATE TEMP TABLE user_data ON COMMIT DROP AS
|
||||
WITH demo_users AS (
|
||||
INSERT INTO users (wechat_openid, account_status, relationship_status, recommendation_enabled, created_at)
|
||||
INSERT INTO users (id, wechat_openid, account_status, relationship_status, recommendation_enabled, created_at)
|
||||
VALUES
|
||||
('demo_openid_f01','normal','searching',true,'2026-03-15T10:00:00Z'),
|
||||
('demo_openid_f02','normal','searching',true,'2026-03-20T14:30:00Z'),
|
||||
('demo_openid_f03','normal','searching',true,'2026-04-01T09:15:00Z'),
|
||||
('demo_openid_f04','normal','paused',true,'2026-04-10T16:00:00Z'),
|
||||
('demo_openid_f05','normal','searching',true,'2026-05-01T11:20:00Z'),
|
||||
('demo_openid_f06','normal','searching',true,'2026-05-15T08:45:00Z'),
|
||||
('demo_openid_m01','normal','searching',true,'2026-03-10T09:00:00Z'),
|
||||
('demo_openid_m02','normal','getting_to_know',true,'2026-03-25T13:00:00Z'),
|
||||
('demo_openid_m03','normal','searching',true,'2026-04-05T15:30:00Z'),
|
||||
('demo_openid_m04','normal','searching',true,'2026-04-20T10:00:00Z'),
|
||||
('demo_openid_m05','normal','matched_successfully',true,'2026-05-01T14:00:00Z'),
|
||||
('demo_openid_m06','normal','searching',true,'2026-05-10T16:30:00Z')
|
||||
(gen_random_uuid(),'demo_openid_f01','normal','searching',true,'2026-03-15T10:00:00Z'),
|
||||
(gen_random_uuid(),'demo_openid_f02','normal','searching',true,'2026-03-20T14:30:00Z'),
|
||||
(gen_random_uuid(),'demo_openid_f03','normal','searching',true,'2026-04-01T09:15:00Z'),
|
||||
(gen_random_uuid(),'demo_openid_f04','normal','paused',true,'2026-04-10T16:00:00Z'),
|
||||
(gen_random_uuid(),'demo_openid_f05','normal','searching',true,'2026-05-01T11:20:00Z'),
|
||||
(gen_random_uuid(),'demo_openid_f06','normal','searching',true,'2026-05-15T08:45:00Z'),
|
||||
(gen_random_uuid(),'demo_openid_m01','normal','searching',true,'2026-03-10T09:00:00Z'),
|
||||
(gen_random_uuid(),'demo_openid_m02','normal','getting_to_know',true,'2026-03-25T13:00:00Z'),
|
||||
(gen_random_uuid(),'demo_openid_m03','normal','searching',true,'2026-04-05T15:30:00Z'),
|
||||
(gen_random_uuid(),'demo_openid_m04','normal','searching',true,'2026-04-20T10:00:00Z'),
|
||||
(gen_random_uuid(),'demo_openid_m05','normal','matched_successfully',true,'2026-05-01T14:00:00Z'),
|
||||
(gen_random_uuid(),'demo_openid_m06','normal','searching',true,'2026-05-10T16:30:00Z')
|
||||
RETURNING id, wechat_openid
|
||||
), user_map AS (
|
||||
SELECT id, wechat_openid,
|
||||
@@ -84,7 +85,7 @@ WITH demo_users AS (
|
||||
END as alias
|
||||
FROM demo_users
|
||||
),
|
||||
user_data AS (
|
||||
prepared_user_data AS (
|
||||
SELECT id, wechat_openid, alias,
|
||||
CASE alias WHEN 'f01' THEN '小芳' WHEN 'f02' THEN '晓燕' WHEN 'f03' THEN '婷婷'
|
||||
WHEN 'f04' THEN '美玲' WHEN 'f05' THEN '慧琴' WHEN 'f06' THEN '秀英'
|
||||
@@ -134,6 +135,8 @@ user_data AS (
|
||||
END as completion
|
||||
FROM user_map
|
||||
)
|
||||
SELECT * FROM prepared_user_data;
|
||||
|
||||
INSERT INTO user_profiles (user_id, display_name, gender, birth_date, height_cm,
|
||||
region_code, region_name, marital_status, children_status,
|
||||
education_code, occupation_code, smoking_status, drinking_status,
|
||||
@@ -153,7 +156,7 @@ SELECT id,
|
||||
CASE WHEN alias LIKE 'f%' THEN 155 WHEN alias LIKE 'm%' THEN 170 ELSE 158 END,
|
||||
CASE WHEN alias LIKE 'f%' THEN 172 WHEN alias LIKE 'm%' THEN 188 ELSE 185 END,
|
||||
'preferred',
|
||||
'[\"321181\",\"321100\"]', 'required', '[\"never_married\"]', 'required',
|
||||
'["321181","321100"]', 'required', '["never_married"]', 'required',
|
||||
CASE alias WHEN 'f02' THEN 'college' WHEN 'm02' THEN 'college' WHEN 'f01' THEN 'bachelor'
|
||||
WHEN 'm01' THEN 'bachelor' WHEN 'm05' THEN 'bachelor' ELSE NULL END,
|
||||
'preferred'
|
||||
@@ -161,7 +164,7 @@ FROM user_data;
|
||||
|
||||
-- 实名认证
|
||||
INSERT INTO user_identities (id, user_id, real_name_enc, id_number_enc, id_number_hash, gender, birth_date, verification_status, provider, verified_at)
|
||||
SELECT gen_random_uuid(), id, encode(('demo_enc_'||alias)::bytea,'escape'), encode(('demo_id_'||alias)::bytea,'escape'), 'demo_sha256_'||alias, gender, birth_date::date, 'verified', 'mock', NOW()-INTERVAL '1 day')
|
||||
SELECT gen_random_uuid(), id, encode(('demo_enc_'||alias)::bytea,'escape'), encode(('demo_id_'||alias)::bytea,'escape'), 'demo_sha256_'||alias, gender, birth_date::date, 'verified', 'mock', NOW()-INTERVAL '1 day'
|
||||
FROM user_data;
|
||||
|
||||
-- 兴趣
|
||||
@@ -276,16 +279,15 @@ VALUES
|
||||
-- ============================================================
|
||||
-- 8. Conversations & Messages
|
||||
-- ====================================================
|
||||
WITH conv_ids AS (
|
||||
SELECT gen_random_uuid() as id, match_id FROM matches WHERE status='active' ORDER BY created_at
|
||||
)
|
||||
CREATE TEMP TABLE _conv_result ON COMMIT DROP AS
|
||||
SELECT gen_random_uuid() as id, id AS match_id FROM matches WHERE status IN ('active','successful') ORDER BY created_at;
|
||||
|
||||
INSERT INTO conversations (id, match_id, status, last_message_at)
|
||||
SELECT id, match_id, 'active', NOW()-INTERVAL '5 days' FROM conv_ids
|
||||
RETURNING id, match_id INTO TEMP TABLE _conv_result (id, match_id);
|
||||
SELECT id, match_id, 'active', NOW()-INTERVAL '5 days' FROM _conv_result;
|
||||
|
||||
-- members
|
||||
WITH _match_pairs AS (
|
||||
SELECT m.user_a_id, m.user_b_id FROM matches m JOIN _conv_result c ON c.match_id=m.id
|
||||
SELECT m.id AS match_id, m.user_a_id, m.user_b_id FROM matches m JOIN _conv_result c ON c.match_id=m.id
|
||||
)
|
||||
INSERT INTO conversation_members (conversation_id, user_id, unread_count, can_send, joined_at)
|
||||
SELECT (SELECT id FROM _conv_result WHERE match_id=(SELECT match_id FROM _match_pairs WHERE user_a_id=up.user_a_id LIMIT 1)), up.user_a_id, 0, true, NOW() FROM _match_pairs up
|
||||
@@ -348,7 +350,7 @@ VALUES
|
||||
-- ============================================================
|
||||
-- 11. 活动报名
|
||||
-- ====================================================
|
||||
WITH act1 AS (SELECT id FROM activities WHERE title LIKE '夏季%' LIMIT 1),
|
||||
WITH act1 AS (SELECT id FROM activities WHERE title LIKE '%夏季%' LIMIT 1),
|
||||
mgr2 AS (SELECT id FROM operators WHERE username='activitymgr' LIMIT 1)
|
||||
INSERT INTO activity_registrations (id, activity_id, user_id, status, registered_at, reviewed_by, reviewed_at, checkin_status)
|
||||
SELECT gen_random_uuid(), (SELECT id FROM act1), ud.id,
|
||||
@@ -364,14 +366,14 @@ FROM user_data ud WHERE ud.alias IN ('f01','f02','f03','f04','f05','m01','m02','
|
||||
-- ============================================================
|
||||
-- 12. 活动互选意向
|
||||
-- ====================================================
|
||||
WITH act1 AS (SELECT id FROM activities WHERE title LIKE '夏季%' LIMIT 1)
|
||||
WITH act1 AS (SELECT id FROM activities WHERE title LIKE '%夏季%' LIMIT 1)
|
||||
INSERT INTO activity_interests (id, source_user_id, target_user_id, activity_id, status, confirmed_at, created_at)
|
||||
SELECT gen_random_uuid(),
|
||||
(SELECT id FROM user_data WHERE alias='f01'), (SELECT id FROM user_data WHERE alias='m01'), (SELECT id FROM act1), 'mutual', '2026-08-15T17:00:00Z', '2026-08-15T17:00:00Z'
|
||||
(SELECT id FROM user_data WHERE alias='f01'), (SELECT id FROM user_data WHERE alias='m01'), (SELECT id FROM act1), 'mutual', '2026-08-15T17:00:00Z'::timestamptz, '2026-08-15T17:00:00Z'::timestamptz
|
||||
UNION ALL SELECT gen_random_uuid(),
|
||||
(SELECT id FROM user_data WHERE alias='f03'), (SELECT id FROM user_data WHERE alias='m03'), (SELECT id FROM act1), 'mutual', '2026-08-15T17:05:00Z', '2026-08-15T17:05:00Z'
|
||||
(SELECT id FROM user_data WHERE alias='f03'), (SELECT id FROM user_data WHERE alias='m03'), (SELECT id FROM act1), 'mutual', '2026-08-15T17:05:00Z'::timestamptz, '2026-08-15T17:05:00Z'::timestamptz
|
||||
UNION ALL SELECT gen_random_uuid(),
|
||||
(SELECT id FROM user_data WHERE alias='f05'), (SELECT id FROM user_data WHERE alias='m05'), (SELECT id FROM act1), 'expressed','2026-08-15T17:10:00Z', '2026-08-15T17:10:00Z';
|
||||
(SELECT id FROM user_data WHERE alias='f05'), (SELECT id FROM user_data WHERE alias='m05'), (SELECT id FROM act1), 'expressed','2026-08-15T17:10:00Z'::timestamptz, '2026-08-15T17:10:00Z'::timestamptz;
|
||||
|
||||
-- ============================================================
|
||||
-- 13. 红娘服务
|
||||
@@ -405,26 +407,26 @@ VALUES
|
||||
-- 14. 系统通知
|
||||
-- ====================================================
|
||||
INSERT INTO notifications (id, user_id, type, title, content, business_type, read_status, created_at)
|
||||
SELECT gen_random_uuid(), (SELECT id FROM user_data WHERE alias='f01'), 'match', '你们互相喜欢!', '张伟也喜欢了你,可以开始聊天啦~', 'match', 'read', '2026-06-01T10:05:00Z'
|
||||
UNION ALL SELECT gen_random_uuid(), (SELECT id FROM user_data WHERE alias='m01'), 'match', '你们互相喜欢!', '小芳也喜欢了你,可以开始聊天啦~', 'match', 'read', '2026-06-01T10:05:00Z'
|
||||
UNION ALL SELECT gen_random_uuid(), (SELECT id FROM user_data WHERE alias='f03'), 'match', '你们互相喜欢!', '王磊也喜欢了你,可以开始聊天啦~', 'match', 'read', '2026-06-03T09:30:00Z'
|
||||
UNION ALL SELECT gen_random_uuid(), (SELECT id FROM user_data WHERE alias='m03'), 'match', '你们互相喜欢!', '婷婷也喜欢了你,可以开始聊天啦~', 'match', 'unread','2026-06-03T09:30:00Z'
|
||||
UNION ALL SELECT gen_random_uuid(), (SELECT id FROM user_data WHERE alias='f05'), 'match', '你们互相喜欢!', '孙浩也喜欢了你,可以开始聊天啦~', 'match', 'read', '2026-06-05T10:05:00Z'
|
||||
UNION ALL SELECT gen_random_uuid(), (SELECT id FROM user_data WHERE alias='m05'), 'match', '你们互相喜欢!', '慧琴也喜欢了你,可以开始聊天啦~', 'match', 'read', '2026-06-05T10:05:00Z'
|
||||
UNION ALL SELECT gen_random_uuid(), (SELECT id FROM user_data WHERE alias='f05'), 'system', '恭喜牵手成功!', '您与孙浩已成功牵手,祝你们幸福!', 'match', 'read', '2026-07-01T10:30:00Z'
|
||||
UNION ALL SELECT gen_random_uuid(), (SELECT id FROM user_data WHERE alias='m05'), 'system', '恭喜牵手成功!', '您与慧琴已成功牵手,祝你们幸福!', 'match', 'read', '2026-07-01T10:30:00Z'
|
||||
UNION ALL SELECT gen_random_uuid(), (SELECT id FROM user_data WHERE alias='f01'), 'activity', '活动报名已确认', '您已成功报名「丹阳公益单身联谊会」', 'activity', 'read', '2026-07-05T10:30:00Z'
|
||||
UNION ALL SELECT gen_random_uuid(), (SELECT id FROM user_data WHERE alias='f05'), 'activity', '活动报名已确认', '您已成功报名「丹阳公益单身联谊会」', 'activity', 'unread','2026-07-07T09:20:00Z'
|
||||
UNION ALL SELECT gen_random_uuid(), (SELECT id FROM user_data WHERE alias='f02'), 'matchmaker', '红娘已为您服务', '您的红娘服务申请已被分配,红娘小王将在24小时内与您联系', 'matchmaker', 'read', '2026-06-20T10:30:00Z';
|
||||
SELECT gen_random_uuid(), (SELECT id FROM user_data WHERE alias='f01'), 'match', '你们互相喜欢!', '张伟也喜欢了你,可以开始聊天啦~', 'match', 'read', '2026-06-01T10:05:00Z'::timestamptz
|
||||
UNION ALL SELECT gen_random_uuid(), (SELECT id FROM user_data WHERE alias='m01'), 'match', '你们互相喜欢!', '小芳也喜欢了你,可以开始聊天啦~', 'match', 'read', '2026-06-01T10:05:00Z'::timestamptz
|
||||
UNION ALL SELECT gen_random_uuid(), (SELECT id FROM user_data WHERE alias='f03'), 'match', '你们互相喜欢!', '王磊也喜欢了你,可以开始聊天啦~', 'match', 'read', '2026-06-03T09:30:00Z'::timestamptz
|
||||
UNION ALL SELECT gen_random_uuid(), (SELECT id FROM user_data WHERE alias='m03'), 'match', '你们互相喜欢!', '婷婷也喜欢了你,可以开始聊天啦~', 'match', 'unread','2026-06-03T09:30:00Z'::timestamptz
|
||||
UNION ALL SELECT gen_random_uuid(), (SELECT id FROM user_data WHERE alias='f05'), 'match', '你们互相喜欢!', '孙浩也喜欢了你,可以开始聊天啦~', 'match', 'read', '2026-06-05T10:05:00Z'::timestamptz
|
||||
UNION ALL SELECT gen_random_uuid(), (SELECT id FROM user_data WHERE alias='m05'), 'match', '你们互相喜欢!', '慧琴也喜欢了你,可以开始聊天啦~', 'match', 'read', '2026-06-05T10:05:00Z'::timestamptz
|
||||
UNION ALL SELECT gen_random_uuid(), (SELECT id FROM user_data WHERE alias='f05'), 'system', '恭喜牵手成功!', '您与孙浩已成功牵手,祝你们幸福!', 'match', 'read', '2026-07-01T10:30:00Z'::timestamptz
|
||||
UNION ALL SELECT gen_random_uuid(), (SELECT id FROM user_data WHERE alias='m05'), 'system', '恭喜牵手成功!', '您与慧琴已成功牵手,祝你们幸福!', 'match', 'read', '2026-07-01T10:30:00Z'::timestamptz
|
||||
UNION ALL SELECT gen_random_uuid(), (SELECT id FROM user_data WHERE alias='f01'), 'activity', '活动报名已确认', '您已成功报名「丹阳公益单身联谊会」', 'activity', 'read', '2026-07-05T10:30:00Z'::timestamptz
|
||||
UNION ALL SELECT gen_random_uuid(), (SELECT id FROM user_data WHERE alias='f05'), 'activity', '活动报名已确认', '您已成功报名「丹阳公益单身联谊会」', 'activity', 'unread','2026-07-07T09:20:00Z'::timestamptz
|
||||
UNION ALL SELECT gen_random_uuid(), (SELECT id FROM user_data WHERE alias='f02'), 'matchmaker', '红娘已为您服务', '您的红娘服务申请已被分配,红娘小王将在24小时内与您联系', 'matchmaker', 'read', '2026-06-20T10:30:00Z'::timestamptz;
|
||||
|
||||
-- ============================================================
|
||||
-- 15. 同意记录
|
||||
-- ====================================================
|
||||
INSERT INTO consent_records (id, user_id, type, version, agreed_at, ip_address, user_agent)
|
||||
SELECT gen_random_uuid(), (SELECT id FROM user_data WHERE alias='f01'), 'terms_of_service', '1.0', '2026-03-15T10:00:00Z', '127.0.0.1', 'WeChat/8.0'
|
||||
UNION ALL SELECT gen_random_uuid(), (SELECT id FROM user_data WHERE alias='f01'), 'privacy_policy', '1.0', '2026-03-15T10:00:00Z', '127.0.0.1', 'WeChat/8.0'
|
||||
UNION ALL SELECT gen_random_uuid(), (SELECT id FROM user_data WHERE alias='m01'), 'terms_of_service', '1.0', '2026-03-10T09:00:00Z', '127.0.0.1', 'WeChat/8.0'
|
||||
UNION ALL SELECT gen_random_uuid(), (SELECT id FROM user_data WHERE alias='m01'), 'privacy_policy', '1.0', '2026-03-10T09:00:00Z', '127.0.0.1', 'WeChat/8.0';
|
||||
SELECT gen_random_uuid(), (SELECT id FROM user_data WHERE alias='f01'), 'terms_of_service', '1.0', '2026-03-15T10:00:00Z'::timestamptz, '127.0.0.1', 'WeChat/8.0'
|
||||
UNION ALL SELECT gen_random_uuid(), (SELECT id FROM user_data WHERE alias='f01'), 'privacy_policy', '1.0', '2026-03-15T10:00:00Z'::timestamptz, '127.0.0.1', 'WeChat/8.0'
|
||||
UNION ALL SELECT gen_random_uuid(), (SELECT id FROM user_data WHERE alias='m01'), 'terms_of_service', '1.0', '2026-03-10T09:00:00Z'::timestamptz, '127.0.0.1', 'WeChat/8.0'
|
||||
UNION ALL SELECT gen_random_uuid(), (SELECT id FROM user_data WHERE alias='m01'), 'privacy_policy', '1.0', '2026-03-10T09:00:00Z'::timestamptz, '127.0.0.1', 'WeChat/8.0';
|
||||
|
||||
-- ============================================================
|
||||
-- 16. 审核原因字典
|
||||
@@ -448,7 +450,7 @@ DROP TABLE IF EXISTS _conv_result;
|
||||
-- ============================================================
|
||||
INSERT INTO system_configs (config_key, config_value, description) VALUES
|
||||
('livenessVerification.enabled', 'false', '人脸核验功能开关(V1.1预留,默认关闭)'),
|
||||
('localEligibility.evidencePolicy', 'need_based', '本地资格佐证策略:need_based=按需触发 / mandatory=全部强制'),
|
||||
('localEligibility.evidencePolicy', '"need_based"', '本地资格佐证策略:need_based=按需触发 / mandatory=全部强制'),
|
||||
('counseling.enabled', 'true', '婚恋咨询功能开关'),
|
||||
('premarital.enabled', 'true', '婚前辅导功能开关'),
|
||||
('serviceLocation.enabled', 'true', '善缘服务站功能开关'),
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
ALTER TABLE operators ADD COLUMN IF NOT EXISTS deleted_at TIMESTAMPTZ;
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_operators_active_username
|
||||
ON operators(username) WHERE deleted_at IS NULL;
|
||||
@@ -0,0 +1,3 @@
|
||||
ALTER TABLE audit_logs
|
||||
ADD COLUMN IF NOT EXISTS updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
ADD COLUMN IF NOT EXISTS deleted_at TIMESTAMPTZ;
|
||||
Reference in New Issue
Block a user