275 lines
16 KiB
Markdown
275 lines
16 KiB
Markdown
# 用户端 App 全量功能开发 AI 提示词 v1.0
|
||
|
||
## 1. 使用方式
|
||
|
||
在 Codex 或其他具备本机代码访问能力的开发 AI 中,将工作目录设为 `D:\5k\platforms`,然后把第 3 节“主提示词”完整发送给 AI。
|
||
|
||
首次运行从 A1 批次开始。后续继续开发时仍可使用同一提示词,AI 应读取进度文档后从第一个未完成批次继续,不重复已完成工作。
|
||
|
||
## 2. 路径速查
|
||
|
||
### 2.1 代码路径
|
||
|
||
| 内容 | 绝对路径 |
|
||
| --- | --- |
|
||
| 项目根目录 | `D:\5k\platforms` |
|
||
| 仓库开发规范 | `D:\5k\platforms\AGENTS.md` |
|
||
| Flutter 用户端 | `D:\5k\platforms\apps\user_app` |
|
||
| Flutter 共享设计系统 | `D:\5k\platforms\apps\heqi_design_system` |
|
||
| 用户端路由 | `D:\5k\platforms\apps\user_app\lib\app\router.dart` |
|
||
| 用户端 API Repository | `D:\5k\platforms\apps\user_app\lib\data\repositories\client_repository.dart` |
|
||
| 用户端 HTTP 客户端 | `D:\5k\platforms\apps\user_app\lib\data\services\api_client.dart` |
|
||
| 用户端领域模型 | `D:\5k\platforms\apps\user_app\lib\domain\models\client_models.dart` |
|
||
| 用户端 UI | `D:\5k\platforms\apps\user_app\lib\ui` |
|
||
| 用户端测试 | `D:\5k\platforms\apps\user_app\test` |
|
||
| Go API | `D:\5k\platforms\backend\api` |
|
||
| 用户端 Client API 逻辑 | `D:\5k\platforms\backend\api\internal\logic\client\user` |
|
||
| Client API 路由 | `D:\5k\platforms\backend\api\internal\routers\client.go` |
|
||
| 数据模型 | `D:\5k\platforms\backend\api\internal\models` |
|
||
| 模拟数据 | `D:\5k\platforms\backend\api\internal\seed\mock.go` |
|
||
| 平台配置后台 | `D:\5k\platforms\frontend\platform_admin` |
|
||
|
||
### 2.2 产品设计与文档路径
|
||
|
||
| 优先级 | 内容 | 绝对路径 |
|
||
| ---: | --- | --- |
|
||
| 1 | 用户端全量开发主文档 | `D:\5k\platforms\docs\项目文档_用户端APP全量功能开发_v1.0.md` |
|
||
| 2 | 最新产品设计图,49 个编号组、58 张 PNG | `D:\5k\platforms\doc\用户端APP-最新参考产品设计` |
|
||
| 3 | 最新设计说明 | `D:\5k\platforms\doc\用户端APP-最新参考产品设计\产品设计说明_用户端APP_v1.1.md` |
|
||
| 4 | 用户端正式需求 | `D:\5k\platforms\docs\03-用户端App需求.md` |
|
||
| 5 | 核心跨系统流程 | `D:\5k\platforms\docs\02-核心业务流程.md` |
|
||
| 6 | 接口、安全和隐私规则 | `D:\5k\platforms\docs\11-数据接口与安全.md` |
|
||
| 7 | 验收场景 | `D:\5k\platforms\docs\12-验收与迭代规划.md` |
|
||
| 8 | 技术与命名规范 | `D:\5k\platforms\docs\10-技术实现规划.md` |
|
||
| 9 | 移动端设计系统 | `D:\5k\platforms\docs\13-移动端Design-System.md` |
|
||
| 10 | 原产品设计,仅用于核对历史功能 | `D:\5k\platforms\doc\用户端APP-产品设计` |
|
||
|
||
业务规则发生冲突时,以安全、支付、权限、隐私等服务端规则和正式需求为准;页面布局、信息层级和视觉样式以“最新参考产品设计”为准。原设计只用于确认是否遗漏历史功能,不能覆盖已经确认的新设计。
|
||
|
||
## 3. 主提示词
|
||
|
||
````text
|
||
你现在负责“瓶安芯用户端 App”全量开发。不要只输出计划、审计报告或示例代码,要在现有仓库中实际完成代码、接口、测试、视觉核对和文档更新。
|
||
|
||
一、工作目录与目标
|
||
|
||
- 仓库根目录:D:\5k\platforms
|
||
- Flutter 用户端:D:\5k\platforms\apps\user_app
|
||
- 共享设计系统:D:\5k\platforms\apps\heqi_design_system
|
||
- Go API:D:\5k\platforms\backend\api
|
||
- 平台配置后台:D:\5k\platforms\frontend\platform_admin
|
||
- 用户端 API 根路径:/heqi/client/v1/user
|
||
- 目标:将 58 张最新产品设计图逐步开发为真实可操作的 Flutter 页面,并同步补齐所需 Go Client API、数据库模型、后台配置和自动化测试。
|
||
|
||
二、开始前必须完整阅读
|
||
|
||
1. D:\5k\platforms\AGENTS.md
|
||
2. D:\5k\platforms\docs\README.md
|
||
3. D:\5k\platforms\docs\项目文档_用户端APP全量功能开发_v1.0.md
|
||
4. D:\5k\platforms\doc\用户端APP-最新参考产品设计\产品设计说明_用户端APP_v1.1.md
|
||
5. D:\5k\platforms\docs\03-用户端App需求.md
|
||
6. D:\5k\platforms\docs\02-核心业务流程.md
|
||
7. D:\5k\platforms\docs\10-技术实现规划.md
|
||
8. D:\5k\platforms\docs\11-数据接口与安全.md
|
||
9. D:\5k\platforms\docs\12-验收与迭代规划.md
|
||
10. D:\5k\platforms\docs\13-移动端Design-System.md
|
||
|
||
设计参考目录:D:\5k\platforms\doc\用户端APP-最新参考产品设计
|
||
|
||
原设计目录:D:\5k\platforms\doc\用户端APP-产品设计
|
||
|
||
每开发一个页面,必须先打开最新目录中同编号 PNG,确认布局、文案层级、状态、控件和导航;原设计只用于检查历史功能是否漏掉。不要凭记忆或仅根据文件名制作页面。
|
||
|
||
三、事实源优先级
|
||
|
||
1. 当前任务中的明确要求。
|
||
2. 人身安全、设备控制、资金、合同、权限、隐私和审计等服务端规则。
|
||
3. docs/03、docs/02、docs/10、docs/11、docs/12 的正式约束。
|
||
4. 项目文档_用户端APP全量功能开发_v1.0.md。
|
||
5. 用户端APP-最新参考产品设计中的图片和 v1.1 说明。
|
||
6. 当前代码实现。
|
||
7. 原产品设计。
|
||
|
||
视觉冲突按最新设计处理;业务冲突按服务端规则处理。任何会影响数据兼容、接口或业务口径的冲突都要写入开发进度和操作日志,不能静默选择。
|
||
|
||
四、当前真实基线
|
||
|
||
当前 Flutter 已经有登录、注册、首页、商城、订单、个人中心、合同记录、钱包记录、会话恢复和四栏底部导航,但页面数量远少于 58 张设计图。当前 ClientRepository 已接入公开内容、商品、用户资料、头像、钱包、地址、商城订单、燃气订单、合同、工单、流水、退款、支付、服务归属、创建地址、创建工单和创建商城订单等基础能力。
|
||
|
||
当前大量业务对象仍通过通用 ClientRecord 和 raw Map 承载。新增页面应逐步使用强类型 DTO、领域模型、Repository 和 ViewModel,但旧页面完成迁移与回归前不能删除兼容代码。
|
||
|
||
设备控制、安全事件、押金、消息、发票、收藏、紧急联系人、账户注销和完整售后等能力尚未全部落地。不能用静态成功页、延时动画、硬编码金额或本地修改状态冒充服务端实现。
|
||
|
||
五、开发账号与本地环境
|
||
|
||
仅在本地 Mock 数据环境使用:
|
||
|
||
- 用户手机号:13800000001
|
||
- 登录密码:Mock@123456
|
||
- Mock 数据来源:D:\5k\platforms\backend\api\internal\seed\mock.go
|
||
- 本地 API:http://127.0.0.1:12426
|
||
- Android 模拟器访问宿主机:http://10.0.2.2:12426
|
||
|
||
若 Mock 数据尚未写入,先检查数据库配置和已有数据,再在 D:\5k\platforms\backend\api 中使用与后端相同的本地环境配置执行 `go run ./cmd/cli/main.go mock-data`;该命令必须幂等,不能清库或覆盖用户数据。不得把 Mock 账号、密码或模拟支付逻辑带入生产配置和 Release 功能入口。
|
||
|
||
六、不可破坏的规则
|
||
|
||
- 先执行 git status,保留工作区中已有和未跟踪的设计图、文档及用户改动,不清理、不重置、不覆盖无关文件。
|
||
- 保持 apps/user_app、apps/heqi_design_system 和现有技术栈,不新建另一套 App,不整体重写。
|
||
- 保留 /login、/register、/home、/shop、/orders、/me 和现有 Client API 的向下兼容性。
|
||
- 所有金额使用整数分;所有公开资源使用 identity,客户端不提交数据库自增 ID。
|
||
- 状态、权限、金额、库存、设备控制、支付和安全判断由服务端确认,前端只展示服务端结果和 allowed_actions。
|
||
- 写操作必须幂等;设备命令请求成功不等于执行成功,没有最终回执时只能显示“处理中”或“待确认”。
|
||
- 高风险告警未解除时不能开阀,任何群控、自动规则或客户端缓存都不能绕过。
|
||
- 支付、退款、提现、押金、合同、安全事件、设备命令和敏感访问必须可审计。
|
||
- 手机号、地址、证件、银行卡、定位、照片、视频和合同执行最小权限、脱敏和受控访问。
|
||
- 不物理删除资金、安全、订单、设备命令和审计事实。
|
||
- 所有代码注释使用中文;新增 SQL 表和字段都添加准确中文 COMMENT,枚举和 JSON 结构写全。
|
||
- 单个代码文件尽量不超过 1500 行,按功能拆分,不堆进 router.dart、client_repository.dart 或单个页面。
|
||
|
||
七、UI 实施要求
|
||
|
||
- 最新视觉参考:D:\5k\platforms\doc\用户端APP-最新参考产品设计
|
||
- 主色 #2563EB,背景 #F7F8FA,成功 #16875D,警告 #B86400,危险 #C7352A。
|
||
- 禁止紫色、渐变、AI 元素、Emoji、玻璃拟态、发光、三维装饰和无业务意义大卡片。
|
||
- 一级导航固定为:首页、商城、订单、我的;二级页使用返回导航,不重复显示底栏。
|
||
- 复用 heqi_design_system 和已有组件,已有能力不得重复实现。
|
||
- 页面必须有 loading、content、empty、error、refreshing;写操作还要有 submitting、conflict、duplicate、unknown-result 和 retry 状态。
|
||
- 图片中的人员、金额、设备状态、日期和成功提示只是设计样例,运行页面必须读取真实接口或明确的测试 Fixture。
|
||
- 不允许把整张设计图当背景图实现页面。所有按钮、列表、Tab、筛选、表单、开关和导航都必须是真实组件并可操作。
|
||
- 视觉比对基准为 390×844,同时验证 320、360、390、430 宽度和 1.3 倍文本缩放。
|
||
- 每完成一页,使用相同数据、视口和状态生成实现截图,与对应设计图并排比较;修复间距、字体、圆角、边框、图标、溢出和底栏遮挡后再标记通过。
|
||
|
||
八、正确的实施方式
|
||
|
||
1. 先检查代码和后端路由,建立“已有、部分、缺失”事实表,不把文档规划误认为当前实现。
|
||
2. 运行改动前基线测试,记录已有失败,不能把旧失败算成本次完成。
|
||
3. 读取或创建 D:\5k\platforms\docs\开发进度_用户端APP全量功能开发.md,找到第一个未完成批次。
|
||
4. 一次只完成一个可独立验收的批次,但必须包含所需 Flutter、Go API、模型、测试和文档,不留下只有 UI 没有真实行为的半成品。
|
||
5. 页面需要新接口时先定义契约、错误码、权限、幂等和状态机,再实现 Go 接口及测试,最后接入 Flutter。
|
||
6. 涉及内容、价格、规则、通知、发票或运营开关时,同时补平台后台配置;不要在 App 中写死运营数据。
|
||
7. 每个批次完成后运行最小充分测试、视觉对照、更新开发进度和中文操作日志,然后继续下一批次。
|
||
8. 发现业务口径未确认时,只暂停受影响动作,继续完成不依赖该口径的页面、模型、只读状态和测试;不得自行固化政策。
|
||
|
||
九、批次顺序
|
||
|
||
A1:公共底座与五个一级页面
|
||
|
||
- 统一主题、公共状态组件、页面脚手架和四栏导航。
|
||
- 按 01-登录页.png、03-首页.png、11-燃气商城.png、20-订单中心.png、25-个人中心.png 优化现有页面。
|
||
- 保持真实登录、服务归属、公开内容、商品、订单、钱包摘要和头像能力。
|
||
- 补强类型基础模型、加载/空/错误状态和对应 Widget 测试。
|
||
|
||
A2:现有业务闭环优化
|
||
|
||
- 开发或完善 14 提交订单、19 支付确认、21 订单详情、28 钱包、29 地址、32 合同、38 充值、39 提现、40 银行卡、41 个人资料、42 报修详情。
|
||
- 保持现有 API 兼容,补详情、分页、地址编辑、支付结果查询、错误码和幂等测试。
|
||
|
||
B:设备与安全闭环
|
||
|
||
- 开发 04 至 10、34、35、44 页面。
|
||
- 打通设备绑定、扫码/蓝牙/手输、遥测、命令回执、告警、紧急联系人、分组控制和定时关阀。
|
||
- 通过 AC-01 至 AC-05、AC-12、AC-15、AC-22、AC-23、AC-25。
|
||
|
||
C:交易、押金与服务履约
|
||
|
||
- 开发或完善 12 至 18、22 至 24、36、48、49 页面。
|
||
- 打通商品详情、购物车、收藏、气瓶下单、押金与退押、配送详情、轨迹、发票、售后、评价和巡检预约。
|
||
- 金额、库存、支付、退押、退款、履约和发票均以服务端事实为准。
|
||
|
||
D:内容、消息与扩展能力
|
||
|
||
- 开发 02 及 02-1 至 02-3、26、27、30、31、33、43 及 43-1 至 43-4、45、46、47 页面。
|
||
- 完成内容版本、气价、阅读确认、消息、家庭共享、保修卡、设备月报和安全考试。
|
||
|
||
不要一次创建 58 个空页面或静态路由。按以上顺序做真实的垂直切片,完成一个批次才进入下一个批次。若进度文档显示某批次已通过,直接从第一个未完成批次继续。
|
||
|
||
十、接口和数据实现要求
|
||
|
||
- 严格按照“项目文档_用户端APP全量功能开发_v1.0.md”第 6 至第 10 节实施 Client API、领域模型、状态机、设备命令、支付和安全规则。
|
||
- 后端路由注册在 backend/api/internal/routers/client.go;业务逻辑放入 backend/api/internal/logic/client/user 的对应领域文件;模型放 backend/api/internal/models。
|
||
- 不把复杂业务继续全部塞进 client_repository.dart。保留兼容门面,逐步拆分 auth、home、device、safety、shop、order、wallet、content 等 Repository。
|
||
- 新页面不得依赖 raw Map 读取关键状态、金额、权限或设备数据。
|
||
- 列表统一分页;详情响应包含 status_code、status_name、version 和 allowed_actions,并兼容现有字段。
|
||
- 修改模型或路由后同步路由测试、契约和平台后台资源;涉及平台后台时执行 contract:sync 和 contract:check。
|
||
|
||
十一、验证命令
|
||
|
||
Flutter 用户端按实际改动执行:
|
||
|
||
- cd D:\5k\platforms\apps\user_app
|
||
- flutter analyze
|
||
- flutter test --no-pub
|
||
- flutter build web --release --no-pub --dart-define=API_BASE_URL=http://127.0.0.1:12426
|
||
- 涉及移动插件时再验证 flutter build apk --debug;具备 macOS 环境时验证 iOS Simulator。
|
||
|
||
Go API 按实际改动执行:
|
||
|
||
- cd D:\5k\platforms\backend\api
|
||
- go test ./...
|
||
- go vet ./...
|
||
- go build ./cmd/main/main.go
|
||
|
||
平台后台发生改动时执行:
|
||
|
||
- cd D:\5k\platforms\frontend\platform_admin
|
||
- pnpm contract:sync
|
||
- pnpm type:check
|
||
- pnpm lint
|
||
- pnpm contract:check
|
||
- pnpm build
|
||
|
||
不要用全仓自动修复或格式化掩盖业务改动。测试不能运行时说明具体环境原因,并继续完成能执行的定向检查。
|
||
|
||
十二、进度与交付
|
||
|
||
维护 D:\5k\platforms\docs\开发进度_用户端APP全量功能开发.md,至少记录:
|
||
|
||
- 58 张图片逐页状态:未开始、开发中、待接口、已实现、已验收。
|
||
- 页面路由、对应接口、测试文件和视觉截图路径。
|
||
- 当前批次、已完成内容、阻塞项、风险和下一批起点。
|
||
|
||
每个批次新增中文操作日志,记录操作时间、修改文件与函数、变更前后行为、测试结果、边界案例和风险。重大结构或接口变更同步更新项目文档。
|
||
|
||
最终回复必须包含:
|
||
|
||
- 本批次实际完成的页面与真实功能。
|
||
- 修改文件和关键行为变化。
|
||
- 新增或变更接口。
|
||
- 实际运行的测试及结果。
|
||
- 视觉比对结果和截图路径。
|
||
- 尚未完成或需要业务确认的内容。
|
||
|
||
十三、现在开始
|
||
|
||
先读取规范、主开发文档、最新设计说明和当前代码,检查 git status 并运行基线测试。随后不要停在分析阶段:如果没有已有进度记录,立即实施 A1“公共底座与五个一级页面”;如果已有进度记录,从第一个未完成批次继续。完成本批次代码、真实接口接入、测试、视觉核对、进度文档和操作日志后再汇报。
|
||
````
|
||
|
||
## 4. 开发顺序说明
|
||
|
||
推荐从 A1 开始,而不是直接制作设备控制或支付页面,原因如下:
|
||
|
||
- 登录、首页、商城、订单和个人中心已经具备真实接口基础,可以先建立稳定的 UI、路由和状态组件。
|
||
- 后续 58 张页面都会复用 A1 的主题、列表、状态、金额、错误和导航能力。
|
||
- 先完成真实页面骨架,可以尽早发现设计系统、响应结构和路由兼容问题。
|
||
- 设备、资金与安全能力风险较高,必须等契约、幂等、审计和状态机明确后再接入。
|
||
|
||
## 5. 本地联调速查
|
||
|
||
开发环境 Mock 用户:
|
||
|
||
| 项目 | 值 |
|
||
| --- | --- |
|
||
| 手机号 | `13800000001` |
|
||
| 密码 | `Mock@123456` |
|
||
| API | `http://127.0.0.1:12426` |
|
||
| Android 模拟器 API | `http://10.0.2.2:12426` |
|
||
|
||
账号只适用于执行过 `mock-data` 的本地开发库。凭据来源为 `backend/api/internal/seed/mock.go`,不得用于生产环境或写入生产配置。
|
||
|
||
## 6. 变更记录
|
||
|
||
| 版本 | 日期 | 内容 |
|
||
| --- | --- | --- |
|
||
| v1.0 | 2026-09-07 | 建立用户端 App 全量开发 AI 主提示词,明确路径、事实源、开发批次、真实接口、视觉验收、测试和交付要求 |
|