首页
/ Expensify/App中费用报告缺失"Paid elsewhere"系统消息的问题分析

Expensify/App中费用报告缺失"Paid elsewhere"系统消息的问题分析

2025-06-15 03:21:39作者:仰钰奇

问题背景

在Expensify/App项目的9.1.53-1版本中,测试人员发现了一个关于费用报告显示的问题。当用户A向用户B提交费用请求后,用户B在聊天窗口中点击"Pay elsewhere"选项时,费用报告中本应显示的"Paid elsewhere"系统消息却缺失了。

问题重现步骤

  1. 用户A向用户B提交费用请求
  2. 用户B打开与用户A的聊天窗口
  3. 用户B点击"Pay elsewhere"选项
  4. 用户B查看费用报告
  5. 预期结果:费用报告中应显示"Paid elsewhere"系统消息
  6. 实际结果:该消息未显示

技术分析

这个问题涉及到Expensify应用中的费用请求处理流程和消息显示机制。从技术角度来看,可能有以下几个关键点:

  1. 消息生成机制:当用户选择"Pay elsewhere"时,系统应该生成相应的状态变更消息并存入数据库。

  2. 消息查询与显示:费用报告页面在渲染时,应该查询并显示所有相关的系统消息,包括这种状态变更消息。

  3. 消息过滤逻辑:可能存在某些过滤条件错误地排除了这类系统消息。

根据开发者的初步分析,问题可能出在isIOUActionMatchingTransactionList函数中,该函数可能错误地将类型为comment的IOU操作过滤掉了,而"Paid elsewhere"系统消息可能正是以这种类型存储的。

解决方案

开发团队通过以下方式解决了这个问题:

  1. 修改了消息过滤逻辑,确保不会错误地过滤掉类型为comment的IOU操作。

  2. 确保所有费用状态变更消息都能正确地被查询并在费用报告中显示。

影响范围

该问题影响多个平台:

  • Android移动网页版(Chrome)
  • iOS应用
  • iOS移动网页版(Chrome)
  • MacOS(Chrome/Safari)
  • MacOS桌面版

修复状态

修复代码已经合并到主分支,并部署到生产环境的9.1.59-7版本中。目前处于7天的回归测试期,如果没有发现回归问题,将在2025年6月12日完成整个修复流程。

总结

这个案例展示了在复杂的财务应用中,状态变更消息的显示机制可能出现的问题。开发团队需要仔细设计消息的存储、查询和显示逻辑,确保用户能够看到所有重要的状态变更信息。同时,这也强调了全面测试的重要性,特别是在涉及跨平台功能时。

登录后查看全文
热门项目推荐
相关项目推荐