# admin 个人中心: 可修改本人手机号

> **服务**: hl-user-service (8081)
> **PR**: #3198
> **Issue**: #3196
> **日期**: 2026-05-28
> **影响范围**: admin 个人中心(/profile)「编辑资料」表单 + 手机号展示
> **测试服验证**: 已过(api.test.1814.love:9443 + 真 admin token)

---

## ⚠️ 关键变化

admin 个人中心现在可以修改本人手机号(admin_user.mobile)。
- 之前个人中心手机号只取企微 wechat_user.mobile,无企微的管理员(如超管)显示"-"且无法维护。
- 现在:`GET /admin/profile/me` 的 `phone` **优先返回 admin_user.mobile**(为空再回落企微);`PUT /admin/profile/me` 新增 `mobile` 字段可改。

---

## 一、接口变更

### 1. 获取个人资料 `GET /admin/profile/me`

`ProfileVO.phone` 取值改为:**admin_user.mobile 优先**,为空回落企微 wechat_user.mobile。无任何字段增减,仅 phone 来源调整。

### 2. 保存个人资料 `PUT /admin/profile/me`

**VO**: `UpdateDesignerProfileRequest` 新增字段:

| 字段 | 位置 | 类型 | 必填 | 约束 | 说明 |
|------|------|------|------|------|------|
| mobile | Body | string | 否 | `^1[3-9]\d{9}$` | 本人手机号。**留空/不传 = 不改(不会清空原值)**;格式非法返 `code=400 手机号格式不正确`;与他人重复返 `ADMIN_MOBILE_DUPLICATED` |

行为:
- 提供且与当前不同 → 唯一性校验通过后更新 admin_user.mobile。
- 留空/null → 保持原值不动。
- 所有角色(不止定制师)都能改自己的 mobile;定制师专属字段逻辑不变。

---

## 二、前端改动（mmg）

1. 个人中心「编辑资料」弹窗/表单**新增「手机号」输入框**,提交时 body 带 `mobile`。
2. 前端做 11 位手机号格式校验(`^1[3-9]\d{9}$`),与后端一致。
3. 个人中心手机号展示:原显示"-"处,现会返回实际 mobile(GET 的 `phone` 字段),正常展示即可。
4. 错误处理:重复手机号 → 后端返 `ADMIN_MOBILE_DUPLICATED`(提示"手机号已被占用"之类);格式非法 → `code=400`。

---

## 三、备注

- 安全:沿用现有 admin 建/改手机号约定 —— **仅唯一性校验,不需短信验证码**(与后台新增/编辑管理员一致)。如后续要求改号需短信验证新号,另行评估。
- 2FA 走企微扫码,与手机号无关,不受影响。
- 短信登录(若启用)用 mobile 精确匹配,改号后自然用新号(登录逻辑不变)。

## 四、测试服验证(已过)
- GET 返回本人 mobile;PUT mobile=13800138000 → 回读成功;格式非法 12345 → `400 手机号格式不正确` 且不覆盖原值;留空不清空。(测试数据已还原)
