# 编辑个人资料功能说明 ## 数据库 - `users` 表新增字段: - `gender`(性别) - `birthday`(生日) - `bio`(个人简介) - 若已有数据库实例,请执行 `src/main/resources/db/alter_users_add_profile_fields.sql` 为旧库补齐字段。 - 初始化脚本 `schema.sql` 已同步包含上述字段。 ## 后端接口 | 方法 | 路径 | 说明 | | ---- | ---- | ---- | | GET | `/api/user/profile?userId=ID` | 获取指定用户资料 | | PUT | `/api/user/profile` | 更新用户资料 | - DTO:`UpdateProfileDTO`(userId、nickname、avatar、gender、birthday、bio、phone、email) - Service:`UserService.getProfile`、`UserService.updateProfile` - 更新时会自动去除空字符串,并校验手机号/邮箱唯一性。 ## 前端 - 登录成功后会将用户资料(含新增字段)写入 `uni.setStorageSync('userInfo')` 与 `isLogin`。 - `pages/profile/profile.vue` 会在进入页面时从本地缓存读取并刷新后端数据。 - `pages/edit-profile/edit-profile.vue` - 进入页面时加载资料并支持头像、昵称、性别、生日、简介编辑。 - 未登录时会显示遮罩并引导前往登录页。 - 保存成功后会同步更新本地缓存,返回上一页。 ## 测试步骤 1. 执行数据库补丁脚本(如旧库)并重启后端。 2. 小程序/前端中登录有效账号。 3. 进入“我的”→“编辑个人资料”,确认信息自动填充。 4. 修改昵称/性别/生日/简介,点击“保存”,提示成功并返回。 5. 返回“我的”页,确认资料已经更新;刷新或重新登录验证数据持久化。