flowchart TD
  A["打开小程序"] --> B{"本地有 token 吗?"}

  B -- "有" --> C["直接按原逻辑进入小程序"]
  B -- "没有/清缓存" --> D["wx.login 获取 code"]

  D --> E["前端请求默认后台
resolveMpWxEnterprise
header 不放企业编号"] E --> F["后台用 code 换 openid"] F --> G["后台查最近登录企业表
openid + is_delete=0"] G --> H{"查到企业和用户吗?"} H -- "没有" --> I["前端停在未登录状态
用户正常登录"] H -- "有" --> J["后台返回
openid + enterpriseNo + userId"] J --> K["前端请求静默登录
restoreMpWxLogin
header 放 enterpriseNo"] K --> L["Nginx 根据 enterpriseNo
转发到对应企业后台"] L --> M["企业后台校验
openid 是否绑定 userId"] M --> N{"校验通过吗?"} N -- "通过" --> O["返回 token
恢复登录成功"] N -- "不通过" --> I I --> P["用户输入账号/手机号/编号等正常登录"] P --> Q["登录成功返回
token + userId + enterpriseNo"] Q --> R["前端请求
bindMpWxEnterpriseRoute"] R --> S["默认后台记录
openid + enterpriseNo + userId
is_delete=0"] S --> C O --> T["前端也可再次记录最近登录
bindMpWxEnterpriseRoute"] T --> C C --> U{"用户退出登录/修改密码?"} U -- "是" --> V["请求禁用最近登录恢复"] V --> W["后台把对应记录标记删除
is_delete=1"] W --> X["下次清缓存打开
不会自动登录"]