feat(interaction): 支持游客互动与登录合并

This commit is contained in:
Zhou Weidong committed 2026-10-26 22:34:14 +08:00
1 parent 2fe24b9db7
commit 4b0fbd73d3
41 files changed
+1207 -90

No files matched your search

@@ -0,0 +1,57 @@
-- 非付费互动支持 deviceId 归属;登录时由应用事务合并到账号。
ALTER TABLE content_like
ADD COLUMN IF NOT EXISTS device_id VARCHAR(128) NOT NULL DEFAULT '';
ALTER TABLE content_like
ALTER COLUMN user_id DROP NOT NULL;
DROP INDEX IF EXISTS uk_content_like;
CREATE UNIQUE INDEX IF NOT EXISTS uk_content_like_user
ON content_like (user_id, target_type, target_id)
WHERE user_id IS NOT NULL;
CREATE UNIQUE INDEX IF NOT EXISTS uk_content_like_device
ON content_like (device_id, target_type, target_id)
WHERE user_id IS NULL AND device_id <> '';
CREATE INDEX IF NOT EXISTS idx_content_like_device
ON content_like (device_id, created_at DESC)
WHERE device_id <> '';
ALTER TABLE user_favorite
ADD COLUMN IF NOT EXISTS device_id VARCHAR(128) NOT NULL DEFAULT '';
ALTER TABLE user_favorite
ALTER COLUMN user_id DROP NOT NULL;
DROP INDEX IF EXISTS uk_user_favorite;
CREATE UNIQUE INDEX IF NOT EXISTS uk_user_favorite_user
ON user_favorite (user_id, drama_id)
WHERE user_id IS NOT NULL;
CREATE UNIQUE INDEX IF NOT EXISTS uk_user_favorite_device
ON user_favorite (device_id, drama_id)
WHERE user_id IS NULL AND device_id <> '';
CREATE INDEX IF NOT EXISTS idx_user_favorite_device
ON user_favorite (device_id, created_at DESC)
WHERE device_id <> '';
ALTER TABLE content_comment
ADD COLUMN IF NOT EXISTS device_id VARCHAR(128) NOT NULL DEFAULT '';
ALTER TABLE content_comment
ALTER COLUMN user_id DROP NOT NULL;
CREATE INDEX IF NOT EXISTS idx_comment_device
ON content_comment (device_id, created_at DESC)
WHERE user_id IS NULL AND device_id <> '';
CREATE UNIQUE INDEX IF NOT EXISTS uk_content_comment_user_content
ON content_comment (
user_id,
drama_id,
episode_id,
parent_id,
md5(content)
)
WHERE user_id IS NOT NULL AND deleted = 0 AND status <> 'deleted';
CREATE UNIQUE INDEX IF NOT EXISTS uk_content_comment_device_content
ON content_comment (
device_id,
drama_id,
episode_id,
parent_id,
md5(content)
)
WHERE user_id IS NULL AND device_id <> '' AND deleted = 0 AND status <> 'deleted';