feat(login): 实现扫码登录绑定手机号后的用户同步逻辑

- 后端QrLoginServiceImpl新增nextAction字段支持绑定手机号和跳转操作
- 状态检查接口支持绑定手机号和跳转状态,响应字段增加redirectUrl和successMessage
- 移除新用户注册时立即同步用户到websopy的逻辑,避免手机号未绑定时缓存无效
- 绑定手机号成功后重新加载数据库用户并同步到websopy,确保手机号完整数据同步
- WxOfficialController中注释和逻辑调整,明确绑定手机号前不进行同步操作
- 补充文档中扫码登录绑定手机号和用户同步相关流程及API接口说明
This commit is contained in:
2026-04-07 02:03:59 +08:00
parent 181801abdb
commit 3549e687f6
5 changed files with 77 additions and 18 deletions

View File

@@ -0,0 +1,31 @@
# 系统架构和工作流程记录
## websopy系统架构
1. **Java后端服务**提供API接口处理微信扫码登录、用户同步等
2. **websopy-pc网站**前端用户界面调用后端API
3. **微信生态集成**
- 微信公众号扫码登录
- 用户信息同步到websopy系统
## 扫码登录绑定手机号流程
1. **后端已完成修改**
- QrLoginServiceImpl添加nextAction逻辑
- QrLoginStatusResponse新增nextAction、redirectUrl、successMessage字段
- 用户没有手机号时设为bind_phone状态
- 用户有手机号时可直接跳转/console
2. **websopy-pc前端需要修改**
- 状态轮询逻辑需要处理nextAction字段
- 需要创建绑定手机号页面
- 需要调用绑定手机号API
- 需要实现登录成功后跳转逻辑
## 关键API接口
- `/api/qr-login/generate` - 生成扫码token
- `/api/qr-login/status/{token}` - 检查扫码状态
- `/api/qr-login/bind-phone` - 绑定手机号
## 错误修复历史
- 修复了`Column 'tenant_id' cannot be null`错误
- 用户同步时确保同时发送tenantId和tenant_id两种格式
- 同步用户前从数据库重新加载确保数据完整