拓展任务 AI 辅助实现账号注册功能

一、任务目标

借助 AI 工具分阶段实现账号注册,检查生成的代码并运行验证。注册页能够校验输入、提交注册请求并显示结果;注册成功后返回登录页,回填新注册的用户名。

二、明确注册功能要求

注册页不包含头像选择和上传,需要实现以下功能:

功能实现要求
打开注册页点击登录页中的“账号注册”,进入注册页
页面内容显示用户名、密码、确认密码、用户协议、注册按钮和返回登录入口
输入校验依次检查用户名、密码、确认密码和用户协议
提交注册输入符合要求后,调用注册接口创建普通用户账号
注册成功返回登录页,在用户名输入框中显示刚刚注册的账号
注册失败停留在注册页,显示服务端返回的提示

页面输入应符合以下规则:

  • 用户名和密码不能为空。
  • 密码不能少于 6 个字符。
  • 确认密码必须与密码一致。
  • 提交注册前必须勾选用户协议。

三、了解注册接口

注册接口用于创建新的账号。接口信息如下:

项目内容
请求方式POST
请求地址/order-account/register
请求体格式multipart/form-data

请求体包含以下参数:

参数名类型是否必填说明
nameString是注册用户名
passwordString是登录密码
imagePathString是账号头像的网络地址
roleString是账号角色,1 表示普通用户
storeNameString否商家店铺名称,仅商家账号需要提交

本任务注册普通用户,因此 role 固定为 1,不提交 storeName。注册页不提供头像操作,imagePath 使用项目预设的默认头像地址:

https://api.food2.sziit.top/ugc/file/order/09f98089616e972706515c9fc1536deb_1769595247074_186.png

注册成功时,接口返回:

{
"code": 200,
"msg": "成功"
}

注册响应只需读取 code 和 msg,没有需要解析的业务数据,因此可以复用 Response<Unit>。Unit 在这里表示不需要接收业务数据。

四、使用 AI 辅助完成注册功能

1. 让 AI 了解项目

先让 AI 阅读现有登录页面、网络请求类、响应模型和加载对话框,了解项目使用的开发方式,再提出注册需求。

向 AI 输入:

请阅读当前 Android 项目中的 LoginActivity、activity_login.xml、
FoodApiClient、Response<T>、LoadingDialog 和 AndroidManifest.xml。
我要在现有项目中新增账号注册功能。注册页包含用户名、密码、确认密码、
用户协议和注册按钮,不包含头像选择与上传。注册成功后返回登录页并回填
用户名,不实现自动登录。
不得新增或修改字符串、颜色、图片、图标和样式资源,不得更换网络框架。
本次不要输出代码,只列出实现顺序、需要修改的文件和每一步的验证方法。

检查计划是否沿用现有的页面、网络请求和数据处理方式。注册功能应复用已有资源,不添加头像上传、商家注册,也不改写登录流程。

2. 分阶段生成代码

按照下表分阶段向 AI 提出要求。每完成一个阶段,运行应用并检查结果,再继续下一阶段。

阶段交给 AI 的任务运行验证
创建页面创建注册布局和 RegisterActivity,配置清单,并从登录页打开注册页注册页能够打开和关闭
输入校验为注册按钮添加事件,依次检查用户名、密码、确认密码和用户协议每种错误输入显示对应提示
调用接口在 FoodApiClient 中添加 register(),显示加载对话框并提交注册请求新账号能够注册,重复账号显示失败提示
处理结果注册成功后通过 Activity Result 返回用户名返回登录页并回填用户名,随后能够完成登录

每次提出代码要求时,使用以下格式:

当前已经完成:填写已经通过验证的功能。
本次只完成:填写当前阶段的一个具体目标。
请遵守以下要求:
1. 复用项目现有类、资源和代码风格;
2. 不修改与当前目标无关的代码;
3. 先给出修改位置,再给出局部代码;
4. 不调用尚未定义的方法;
5. 最后说明如何运行验证。

确认 AI 给出了文件、类和方法的位置,能够据此找到需要修改的代码。

3. 检查 AI 生成的代码

将代码写入项目之前,逐项检查:

  • 类名、Binding 类型和控件 ID 是否与项目一致。
  • 使用的方法、常量和接收注册结果的对象是否已经定义。
  • 注册请求是否提交 name、password、imagePath 和 role=1。
  • 网络请求是否在 IO 线程执行,请求结束后是否关闭加载对话框。
  • 注册失败时是否停留在注册页并显示提示,成功时是否返回登录页并回填用户名。
  • 是否新增了静态资源、无关依赖或重复的响应模型。

发现问题时,只要求 AI 修正当前问题。例如:

当前注册失败分支没有关闭 LoadingDialog。请只修改请求结果处理代码,
保证注册成功和失败后都会关闭对话框,不要改动输入校验和页面跳转。
请给出修改位置和局部代码。

五、运行验证

运行应用,依次完成“打开注册页—检查输入—提交注册—返回登录页—使用新账号登录”,并检查:

  • 注册页布局完整,能够正常打开和关闭。
  • 所有输入校验均能显示正确提示。
  • 新账号可以注册,重复账号能够显示失败信息。
  • 注册成功后返回登录页并回填用户名。
  • 项目能够正常构建,没有新增静态资源和无关依赖。

提高练习:注册后自动登录

完成基本功能后,可让 AI 制定注册后自动登录的方案。处理顺序为“注册—登录—获取用户信息—保存账号信息—进入主页面”,网络请求仍由 FoodApiClient 处理,不写入 AccountManager。

任务小结

本任务借助 AI 分阶段实现账号注册,通过检查代码和运行结果确认功能符合要求。注册成功后返回登录页并回填用户名,继续使用已有的登录流程。