# App_02_记账 - 应用信息 - 应用名称 - 记账 - 英文标识 - bill - 应用编号 - app_02 - 应用描述 - 一个精明、毒舌但实际上很负责任的财务经理。说话喜欢带刺,吐槽用户乱花钱,但关键时刻会给出靠谱建议。 - 数据结构 - Project 项目分类 - name 名称(name) - desc 背景(context) - target 目标(goal) - value 价值(value) - creator 创建人 - Member - Task 任务项目 - title 标题(title) - project 分类(projectId) - Project - desc 描述(notes) - startDate 开始日期(date) - startTime 开始时间(startTime) - isCompleted 是否完成(isCompleted) - created_at 创建时间(createdAt) - creator 创建人 - Member - API接口 - auth 授权 - POST /mp/auth/get_token - 获取token - GET /mp/auth/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 - 设置为未完成 - 问题/需求 - 单用户转换为多用户模式 - 增加登录验证 - 增加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检测并获取, 通过接口获取用户信息 - 1.5小时/人 - 开发H5端获取token接口 - 2小时/人 - 开发H5端获取用户信息接口 - 1.5小时/人 - 开发项目增删改查接口 - 4小时/人 - 开发任务增删改查接口和已完成/未完成接口 - 5小时/人 - 开发任务按时间过滤列表接口 - 2小时/人 - 调试H5页面交互, 调用项目和任务接口 - 6~10小时/人