notice(C端定制师): 登录看不到定制师身份-后端正式已验证正常,缺前端接入 isCustomizer/adminId 渲染
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
这个提交包含在:
父节点
05078fcd54
当前提交
b176ae9dbd
@ -0,0 +1,66 @@
|
||||
# notice(C端定制师): 登录后"看不到定制师身份/分享名片"——后端正式已验证正常,请前端接入 `isCustomizer`/`adminId` 字段渲染
|
||||
|
||||
> **类型**: notice(**后端无代码改动**;字段早已上线并部署正式,缺前端读取/渲染)
|
||||
> **接收方**: mmg
|
||||
> **日期**: 2026-05-27
|
||||
> **相关接口**: `POST /mp/user/login`、`POST /mp/user/login/sms`、`GET /mp/customizer/me`
|
||||
> **相关历史**: 见同目录 `26_feat_login_response_is_customizer.md`(登录响应新增 isCustomizer/adminId 的字段说明)
|
||||
|
||||
---
|
||||
|
||||
## 🐞 反馈现象
|
||||
|
||||
用户用手机号 `185****2756` 登录微信小程序后,**看不到自己是定制师**(无"分享名片"等定制师入口)。
|
||||
|
||||
## ✅ 后端排查结论:后端 100% 正常,且正式环境已部署该能力
|
||||
|
||||
已在**正式环境**端到端核实(非本地、非测试服):
|
||||
|
||||
1. **数据层**(正式 RDS `hl_user_service`)该手机号三项判定**全部满足**:
|
||||
- C端 `user`:存在该手机号用户(昵称 王骁)
|
||||
- 后台 `admin_user`:同号、`status=ACTIVE`、username=wx
|
||||
- 角色:该后台账号**持有 `CUSTOMIZER`(定制师)角色**
|
||||
2. **接口实测**:正式内部接口 `/internal/user/customizer/by-userid` 实时返回该用户的定制师身份(`adminId` / `realName=王骁`),即 `GET /mp/customizer/me` 对该账号**会返回 `isCustomizer=true`**。
|
||||
3. **登录响应字段已部署正式**:正式 pod 内 `hl-user-service` 的 `LoginResponse.class`、`hl-mp-service` 的 `MpUserLoginRespVO.class` 均**已含 `isCustomizer` + `adminId`** 字段;登录服务在微信登录/短信登录两条路径都会用登录手机号反查并赋值。
|
||||
|
||||
**结论:该账号登录正式小程序时,后端登录响应必然返回 `isCustomizer: true` + `adminId: "2029379128804773890"`;`/mp/customizer/me` 同样返回 `isCustomizer: true`。后端无 bug。**
|
||||
|
||||
---
|
||||
|
||||
## 📋 前端可用的两个数据来源(二选一,字段口径一致)
|
||||
|
||||
### 来源 A:登录响应(推荐,省一次请求)
|
||||
|
||||
`POST /mp/user/login`(微信登录)/ `POST /mp/user/login/sms`(短信登录)响应 `data` 中:
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| `isCustomizer` | boolean | 当前登录用户是否为定制师。`true`=是 |
|
||||
| `adminId` | string \| null | 定制师后台账号 ID(雪花,**字符串**)。`isCustomizer=false` 时为 `null` |
|
||||
|
||||
### 来源 B:`GET /mp/customizer/me`(需登录态)
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| `isCustomizer` | boolean | 同上 |
|
||||
| `adminId` | string \| null | 同上 |
|
||||
| `customizerName` | string | 定制师展示名(如"王骁") |
|
||||
| `customizerAvatar` | string \| null | 定制师头像 URL |
|
||||
|
||||
---
|
||||
|
||||
## 🔧 请前端自查(问题大概率在这三点之一)
|
||||
|
||||
1. **是否读取了字段**:登录成功后是否取了 `data.isCustomizer` / `data.adminId`?或登录后是否调用了 `GET /mp/customizer/me`?
|
||||
2. **是否据此渲染入口**:`isCustomizer=true` 时是否在「我的」页渲染"分享名片"入口?
|
||||
3. **`adminId` 当字符串用**:`adminId` 是雪花字符串(后端已防 JS 精度丢失),**勿 `Number()` 转换**,否则拼分享链接 `?adminId=` 会精度错位。
|
||||
|
||||
**可复现账号**:手机号 `185****2756`(即反馈人本机号),登录后 `data.isCustomizer` 必为 `true`。
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ 重要范围澄清(避免理解偏差)
|
||||
|
||||
- 小程序里"定制师身份"这套能力(工单 #2907)**只用于点亮「分享名片」入口**,**不存在**"你是定制师"的身份徽章,也**没有定制师工作台**。
|
||||
- 小程序是纯 **C 端(顾客端)**;定制师真正的后台操作在**管理后台 `admin.1814.love`**。
|
||||
- 微信登录若用户**未授权手机号**(后端拿不到 phone),`isCustomizer=false`、`adminId=null` 属正常。
|
||||
正在加载...
x
在新工单中引用
屏蔽一个用户