fix(auth): 微信 unionid 账号打通逻辑修复(staging 部署版,含 profile_completed) #1740
Reference in New Issue
Block a user
Delete Branch "fix/wechat-unionid-linking-develop"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
背景
与 #1738(已合入 main)同一修复,目标分支为 develop——staging 环境跟踪 develop 部署。main 版部署 staging 时因 alembic 版本不匹配(staging DB 在 068,main 镜像只到 065)自动回滚,故按 develop 重新出 PR。
修改点(packages/application/auth/wechat_sync_use_case.py)
profile_completed=False新用户引导逻辑。测试
⚠️ 仅部署 staging,不动生产。
🚀 预览环境已部署
【阻塞级判定】
📊 审查概览
🔴 阻塞级问题(必须修复)
无
💡 改进建议(不阻塞合并)
[packages/application/auth/wechat_sync_use_case.py:122] 冗余的条件判断
elif unionid_user:分支中,代码检查了if openid_user is not None ...。由于前一个if条件if unionid_user and openid_user:已经处理了两者都存在的情况,进入elif unionid_user:分支时openid_user必然为None,因此该检查是死代码,建议移除以简化逻辑。[packages/application/auth/wechat_sync_use_case.py:135] 冗余的数据库查询
elif openid_user:分支中,当需要补写 unionid 时,代码再次调用了self.user_repository.find_by_wechat_unionid(request.unionid)。由于代码开头已经查询过unionid_user且确定其为None(否则会进入前面的分支),此处查询是多余的。建议直接复用开头的查询结果(即确认unionid_user为 None 后直接执行写入),减少一次数据库交互。✅ 良好实践
unionid与openid分属不同账号的冲突情况,避免了账号错误关联的数据风险。✅ 格式检查通过 | ✅ 逻辑审查通过 | ⚠️ 建议关注性能
🤖 由 AI 代码审查机器人自动生成 | 2026-09-06 07:06:37 | 模型:
🗑️ 预览环境已清理
PR #1740 已关闭或合并,对应的预览环境已被清理。