feat(api): 集成后端API,实现数据持久化和用户登录
- 新增token管理和用户信息状态,支持基于token的自动登录 - 实现登录或注册接口调用,自动根据URL参数完成身份验证 - 从后端加载交易记录、消息和待办提醒,替代本地缓存读写 - 对交易记录的增删改操作同步到数据库,确保数据一致性 - 对消息和提醒的增删改操作支持服务器同步,提升数据可靠性 - 优化消息发送逻辑,先保存用户消息,再处理AI回复并存库 - 添加待办提醒切换状态API调用,确保状态同步服务器 - 改进界面互动,支持文件与头像上传功能,更新管家形象 - 采用异步处理并增加错误捕获和用户提示,增强稳定性
This commit is contained in:
224
docs/数据结构.md
224
docs/数据结构.md
@@ -1,4 +1,5 @@
|
||||
# App_02_记账
|
||||
|
||||
- 应用信息
|
||||
- 应用名称
|
||||
- 记账
|
||||
@@ -9,83 +10,158 @@
|
||||
- 应用描述
|
||||
- 一个精明、毒舌但实际上很负责任的财务经理。说话喜欢带刺,吐槽用户乱花钱,但关键时刻会给出靠谱建议。
|
||||
- 数据结构
|
||||
- Project 项目分类
|
||||
- name 名称(name)
|
||||
- desc 背景(context)
|
||||
- target 目标(goal)
|
||||
- value 价值(value)
|
||||
- 枚举数据
|
||||
- TransactionType 交易类型
|
||||
- EXPENSE = "expense"
|
||||
- INCOME = "income"
|
||||
- ExpenseCategory 支出分类
|
||||
- FOOD = "餐饮"
|
||||
- SHOPPING = "购物"
|
||||
- TRANSPORT = "交通"
|
||||
- HOUSING = "住房"
|
||||
- ENTERTAINMENT = "娱乐"
|
||||
- MEDICAL = "医疗"
|
||||
- SOCIAL = "人情"
|
||||
- EDUCATION = "学习"
|
||||
- FINANCE = "金融"
|
||||
- CHILD = "孩子"
|
||||
- PET = "宠物"
|
||||
- CAR = "汽车"
|
||||
- BEAUTY = "美容"
|
||||
- BUSINESS = "经营"
|
||||
- MISC = "杂项"
|
||||
- IncomeCategory 收入分类
|
||||
- SALARY = "工资"
|
||||
- BONUS = "奖金"
|
||||
- INVESTMENT = "理财"
|
||||
- PARTTIME = "兼职"
|
||||
- GIFT = "红包"
|
||||
- OTHER = "其他收入"
|
||||
- MessageRole 消息角色
|
||||
- USER = "user"
|
||||
- ASSISTANT = "assistant"
|
||||
- ReminderFrequency 提醒频率
|
||||
- MONTHLY = "monthly"
|
||||
- ONCE = "once"
|
||||
|
||||
- Common 通用属性
|
||||
- seq 排序
|
||||
- isEnabled 是否启用
|
||||
- creator 创建人
|
||||
- Member
|
||||
- Task 任务项目
|
||||
- title 标题(title)
|
||||
- project 分类(projectId)
|
||||
- Project
|
||||
- desc 描述(notes)
|
||||
- startDate 开始日期(date)
|
||||
- startTime 开始时间(startTime)
|
||||
- isCompleted 是否完成(isCompleted)
|
||||
- created_at 创建时间(createdAt)
|
||||
- creator 创建人
|
||||
- Member
|
||||
- created_at 创建时间
|
||||
- updated_at 更新时间
|
||||
- Transaction 交易记录
|
||||
- item 交易项目名称
|
||||
- amount: float 交易金额
|
||||
- type: TransactionType 交易类型
|
||||
- category: ExpenseCategory | IncomeCategory 交易分类
|
||||
- date 交易日期 YYYY-MM-DD
|
||||
- timestamp: int 时间戳(毫秒)
|
||||
- Message 聊天消息
|
||||
- role: MessageRole 消息角色
|
||||
- content 消息内容
|
||||
- timestamp: int 时间戳(毫秒)
|
||||
- transaction_id 关联的交易ID
|
||||
- Budget 预算
|
||||
- member_id 会员ID
|
||||
- budgets: dict 预算字典 {名称: 金额}
|
||||
- month 预算月份 YYYY-MM
|
||||
- Reminder 账单提醒
|
||||
- member_id 会员ID
|
||||
- title 提醒标题
|
||||
- amount: float 金额(可选)
|
||||
- frequency: ReminderFrequency 频率
|
||||
- target_date 目标日期: DD(每月) 或 YYYY-MM-DD(单次)
|
||||
- is_completed: bool 完成状态
|
||||
- AISettings AI助手设置
|
||||
- member_id 会员ID
|
||||
- name AI助手名称
|
||||
- persona AI性格描述
|
||||
- avatar 头像Base64编码
|
||||
- UserPreference 用户偏好设置
|
||||
- member_id 会员ID
|
||||
- custom_preset_name 自定义预设名称
|
||||
- custom_preset_description 自定义预设描述
|
||||
- theme_index: int 主题索引
|
||||
|
||||
- API接口
|
||||
- auth 授权
|
||||
- POST /mp/auth/get_token
|
||||
- Auth 授权
|
||||
- POST /api/wx/get_token
|
||||
- 获取token
|
||||
- GET /mp/auth/profile
|
||||
- GET /api/wx/profile
|
||||
- 获取个人信息
|
||||
- 项目
|
||||
- GET /mp/todo/projects
|
||||
- 项目列表
|
||||
- GET /mp/todo/projects/{project_id}
|
||||
- 获取项目详细
|
||||
- POST /mp/todo/projects
|
||||
- 创建项目
|
||||
- PUT /mp/todo/projects/{project_id}
|
||||
- 更新项目
|
||||
- DELETE /mp/todo/projects/{project_id}
|
||||
- 删除项目
|
||||
- 任务
|
||||
- GET /mp/todo/tasks
|
||||
- 任务列表
|
||||
- GET /mp/todo/tasks/{task_id}
|
||||
- 获取任务详细
|
||||
- POST /mp/todo/tasks
|
||||
- 创建任务
|
||||
- PUT /mp/todo/tasks/{task_id}
|
||||
- 更新任务
|
||||
- DELETE /mp/todo/tasks/{task_id}
|
||||
- 删除项目
|
||||
- PUT /mp/todo/tasks/{task_id}/completed
|
||||
- 设置为已完成
|
||||
- PUT /mp/todo/tasks/{task_id}/uncompleted
|
||||
- 设置为未完成
|
||||
- transaction Bill: 交易记录
|
||||
- GET /api/bill/transactions
|
||||
- 获取分页交易记录
|
||||
- GET /api/bill/transactions/{id}
|
||||
- 获取交易记录详情
|
||||
- POST /api/bill/transactions
|
||||
- 创建交易记录
|
||||
- PUT /api/bill/transactions/{id}
|
||||
- 更新交易记录
|
||||
- DELETE /api/bill/transactions/{id}
|
||||
- 删除交易记录
|
||||
- Message Bill: 聊天消息
|
||||
- GET /api/bill/messages
|
||||
- 获取分页聊天消息
|
||||
- GET /api/bill/messages/{id}
|
||||
- 获取聊天消息详情
|
||||
- POST /api/bill/messages
|
||||
- 创建聊天消息
|
||||
- PUT /api/bill/messages/{id}
|
||||
- 更新聊天消息
|
||||
- DELETE /api/bill/messages/{id}
|
||||
- 删除聊天消息
|
||||
- Budget Bill: 预算
|
||||
- GET /api/bill/budgets
|
||||
- 获取分页预算
|
||||
- GET /api/bill/budgets/{id}
|
||||
- 获取预算详情
|
||||
- POST /api/bill/transactions
|
||||
- 创建交易记录
|
||||
- PUT /api/bill/transactions/{id}
|
||||
- 更新交易记录
|
||||
- DELETE /api/bill/transactions/{id}
|
||||
- 删除交易记录
|
||||
- BillReminder Bill: 账单提醒
|
||||
- GET /api/bill/bill_reminders
|
||||
- 获取分页账单提醒
|
||||
- GET /api/bill/bill_reminders/{id}
|
||||
- 获取账单提醒详情
|
||||
- POST /api/bill/transactions
|
||||
- 创建交易记录
|
||||
- PUT /api/bill/transactions/{id}
|
||||
- 更新交易记录
|
||||
- DELETE /api/bill/transactions/{id}
|
||||
- 删除交易记录
|
||||
- AISettings AI助手设置
|
||||
- GET /api/h5/ai_settings
|
||||
- 获取AI助手设置
|
||||
- PUT /api/h5/ai_settings
|
||||
- 更新AI助手设置
|
||||
- POST /api/h5/ai_settings/reset
|
||||
- 重置AI助手设置
|
||||
- UserPreference 用户偏好设置
|
||||
- GET /api/h5/user_preference
|
||||
- 获取用户偏好设置
|
||||
- PUT /api/h5/user_preference
|
||||
- 更新用户偏好设置
|
||||
|
||||
- 问题/需求
|
||||
- 单用户转换为多用户模式
|
||||
- 增加登录验证
|
||||
- 增加creator字段
|
||||
- 登录问题
|
||||
- 小程序跳转到H5, 需要检测登录状态
|
||||
- 如果已经登录, 需要把登录信息传递到H5首页
|
||||
- 如果未登录跳转至小程序登录页
|
||||
- URL传递参数openid和mobile
|
||||
- H5端首页先检测token状态
|
||||
- 如果存在并且未过期, 则携带token获取用户信息
|
||||
- 如果不存在则通过openid和mobile获取token, 并获取用户信息
|
||||
- 新建项目问题
|
||||
- 目前是实时更新模式, 保存到本地缓存没问题, 但是要持久化到数据库就会报错
|
||||
- 增加保存按钮, 点击保存后提交接口, 并同步本地数据
|
||||
- 分别处理本地新建项目和提交接口新建项目的逻辑, 并处理错误提示, 例如项目名称重复
|
||||
- 任务过滤查询
|
||||
- 日期等于今天的任务
|
||||
- 日期小于今日的任务
|
||||
- 查询所有任务匹配到日历中
|
||||
- 今日任务和日历中任务的匹配调节
|
||||
- 测试任务2没有显示在今日任务中
|
||||
- 最可能原因是日期转换过程中的时区差异。当API返回的日期时间字符串 "2026-01-14T00:00:00" 在客户端进行时区转换时,可能会因为客户端的时区设置导致日期变成 2026-01-13 或其他日期,从而不满足 t.date === systemDate 的条件。
|
||||
- 多个在增删改查操作中存在的时区转换问题
|
||||
- 语音接口识别
|
||||
- 接口鲁棒性调试
|
||||
- 识别消息对接创建交易记录接口
|
||||
- 约定和调试大模型返回数据
|
||||
|
||||
- 开发任务
|
||||
- 小程序跳转时增加登录判断和URL传参(openid和mobile)
|
||||
- 1小时/人
|
||||
- H5首页接收openid和mobile参数
|
||||
- 0.5小时/人
|
||||
- H5首页token检测并获取, 通过接口获取用户信息
|
||||
@@ -94,11 +170,19 @@
|
||||
- 2小时/人
|
||||
- 开发H5端获取用户信息接口
|
||||
- 1.5小时/人
|
||||
- 开发项目增删改查接口
|
||||
- 开发交易记录增删改查接口
|
||||
- 4小时/人
|
||||
- 开发任务增删改查接口和已完成/未完成接口
|
||||
- 5小时/人
|
||||
- 开发任务按时间过滤列表接口
|
||||
- 2小时/人
|
||||
- 调试H5页面交互, 调用项目和任务接口
|
||||
- 6~10小时/人
|
||||
- 开发聊天增删改查接口
|
||||
- 6小时/人
|
||||
- 开发预算增删改查接口
|
||||
- 4小时/人
|
||||
- 开发账单提醒增删改查完成接口
|
||||
- 6小时/人
|
||||
- 开发AI助手设置增删改查接口
|
||||
- 4小时/人
|
||||
- 开发用户偏好设置增删改查接口
|
||||
- 3小时/人
|
||||
- 调试H5页面交互, 调用交易记录、聊天、预算、账单提醒、助手设置、用户偏好接口
|
||||
- 8~12小时/人
|
||||
- 切换线上配置,打包、发布到线上服务器
|
||||
- 2小时/人
|
||||
Reference in New Issue
Block a user