From b176ae9dbd557746abc30dff8ffd9c1707458d1d Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Wed, 27 May 2026 14:35:09 +0800 Subject: [PATCH] =?UTF-8?q?notice(C=E7=AB=AF=E5=AE=9A=E5=88=B6=E5=B8=88):?= =?UTF-8?q?=20=E7=99=BB=E5=BD=95=E7=9C=8B=E4=B8=8D=E5=88=B0=E5=AE=9A?= =?UTF-8?q?=E5=88=B6=E5=B8=88=E8=BA=AB=E4=BB=BD-=E5=90=8E=E7=AB=AF?= =?UTF-8?q?=E6=AD=A3=E5=BC=8F=E5=B7=B2=E9=AA=8C=E8=AF=81=E6=AD=A3=E5=B8=B8?= =?UTF-8?q?,=E7=BC=BA=E5=89=8D=E7=AB=AF=E6=8E=A5=E5=85=A5=20isCustomizer/a?= =?UTF-8?q?dminId=20=E6=B8=B2=E6=9F=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.7 --- ...er_identity_login_field_frontend_render.md | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 changelogs/2026-05/27_notice_mp_customizer_identity_login_field_frontend_render.md diff --git a/changelogs/2026-05/27_notice_mp_customizer_identity_login_field_frontend_render.md b/changelogs/2026-05/27_notice_mp_customizer_identity_login_field_frontend_render.md new file mode 100644 index 0000000..961c2a3 --- /dev/null +++ b/changelogs/2026-05/27_notice_mp_customizer_identity_login_field_frontend_render.md @@ -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` 属正常。