Skip to content

[Bug] Cloud 分类预算已同步但 Android 预算页为空,且可重复创建同分类预算 #459

Description

@gebiwang-rgb

前置检查

  • 已确认不是自建服务器、防火墙或 Cloud 配置问题
  • 已检索现有 Issues,未发现相同问题
  • 已在当前 main(3.7.2 代码路径)核对并定位

问题描述

在自建 BeeCount Cloud 的共享账本中,分类预算的本地/远端同步计数正常增加,但 Android 预算页面为空;App 还允许对已存在预算的同一分类再次创建预算。Web 控制台只显示其中一条,造成“App 新增成功且同步计数增加,但 Web 看不到另一条”的现象。

复现步骤

  1. 在 Web 控制台为共享账本创建若干分类预算,但不创建总预算。
  2. Android App 执行云同步;“我的”页面显示预算本地/远端条数一致。
  3. 打开 App 的预算页面,页面仍为空。
  4. 在 App 中选择 Web 已设置预算的同一分类,再次创建分类预算。
  5. App 提示保存成功且同步条数增加,但预算页仍为空;Web 控制台仍只显示同分类的一条预算。

期望行为

  • 分类预算不依赖总预算即可正常显示。
  • 已设置分类预算的分类不应再次出现在新增分类选择器中。
  • 保存前应再次检查,避免同步竞态造成重复分类预算。
  • 历史重复预算在 App 与 Cloud 端应采用一致的展示去重规则。

实际行为

  • BudgetPageoverview.totalBudget == null 时直接显示空状态,即使 categoryBudgets 非空。
  • BudgetEditPage 的分类选择器未排除已有预算的分类,保存前也未检查重复。
  • Cloud 读取预算时按 (type, category_sync_id) 去重并保留 sync_id 字典序较大的一条,因此重复记录会增加同步计数,但 Web 只展示一条。

环境

  • 平台:Android
  • App 版本:3.7.2
  • Android 版本:16
  • 设备型号:小米 15 Pro
  • 同步模式:BeeCount Cloud(自建)
  • BeeCount Cloud:v1.6.3

根因与拟议修复

已准备修复分支,包含:

  1. 分类预算存在时,即使没有总预算也渲染分类预算卡片。
  2. 新增分类预算时过滤已使用分类,并在保存前二次检查。
  3. 本地读取历史重复分类预算时采用与 Cloud 相同的 keeper 规则。
  4. 补充页面显示、重复创建和历史去重的回归测试。

截图与已打码视频将在下方评论中补充。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions