Files
uniprop-manual/prop-acc/scenarios/prepaid/close-with-zero-balance-decision.md

200 lines
6.6 KiB
Markdown
Raw Normal View History

2026-05-25 23:32:57 +08:00
---
title: prop-acc · prepaid · 场景 - 余额清零后不自动关,业户决定
aliases:
- 零余额不自动关账
- 余额 0 决策
- close-with-zero-balance-decision
- 场景-预存款零余额决策
tags:
- 场景
- prop-acc
- 预存款
- 结清
audience:
- 业户
- 业务人员
status: 已发布
sub_feature: prepaid
last_review: 2026-05-25
code_version: 2026-05-22
---
# 场景:余额清零后不自动关,业户决定
业户预存款账户**余额自然变为 0**(消费抵扣完 / 退款完),账户**保持 Active**,等业户决定继续充值复用,还是主动 [[close-resident-moveout|关账]]。突出 prepaid 与 deposit 在零余额行为上的关键差异。
## 典型情境
> [!example] 真实情境
> 张阿姨预存款账户余额 ¥800,5 月物业费账单 ¥800,业务人员抵扣后**余额 = 0**。
>
> 账户**仍 Active** —— 系统没自动关。张阿姨有 3 个选择:
>
> 1. **继续用**:下月再充值,账户复用,啥都不操作
> 2. **主动关账**:不想用预存款了,联系物业关账
> 3. **不管**:留 Active 零余额账户,以后想用再充
## 业户视角
### 您会感受到什么
- 推送通知:"5 月物业费 ¥800 已抵扣,**余额 ¥0**"
- 小程序"我的预存款"显示 "✅ Active,余额 ¥0"
- **账户没关**,仍可用(若有钱)
### 您要做什么(三选一)
#### 选项 1:继续用(默认,推荐)
什么都不用做。下次想用预存款付账单,先充值:
- 走 [[deposit-additional-topup|追加充值]]
- 充值后余额非 0,继续抵账单
适合:**长期居住业户**,预存款是日常工具。
#### 选项 2:主动关账
如果决定**不再使用预存款**(例如转用现金 / 微信付每月账单):
- 联系物业(电话 / 微信 / 前台)
- 业务人员走 [[close-resident-moveout|关账]] 流程
适合:**业户偏好不变**(决定不再用预存款服务)、**搬走**等长期事件。
> [!warning] 关账后想反悔?
> 关账永久不可逆。如果以后又想用,**理论上**重开,但**一户一账约束阻塞**(详见 [[one-account-per-resident]] "已知设计 gap")。保险起见:不确定就**不要关**。
#### 选项 3:留 Active 不管
什么都不做。账户保持 Active + 余额 0:
- 不影响业户
- 占用一条数据库记录(微不足道)
- 后续可能在 [[audit-low-balance-and-overdue|审计]] 里被标记"长期零余额",业务人员可能主动联系您确认
适合:**犹豫**(可能以后会用)、**短期没决定**。
## 业务人员视角
### 通常无需操作
零余额 Active 账户**默认保留**,不主动清理。理由:
| 理由 | 说明 |
|---|---|
| 业户随时可能继续充值 | 关了再开成本大(一户一账约束)|
| 业务上无伤害 | 账户余额 0,不挂账、不欠款、不占资金 |
| 清理意义低 | 数据量不大,清理工时 > 收益 |
| 自动关风险大 | "自动关账后业户充值要重新开,体验差" |
### 何时主动关
只在以下情况业务人员主动关:
| 情况 | 关账理由 |
|---|---|
| 业户搬走 | 业务终结,清爽 |
| 业户明确说"不再用预存款" | 用户决定 |
| 账户长期闲置(>2 年)且业户长期失联 | 清账类似 [[audit-low-balance-and-overdue]] 处理 |
### 操作
走 [[close-resident-moveout|主动关账]] 流程,Modal 表单 memo 填具体原因。
## 与 deposit 的关键差异(再次强调)
| 维度 | deposit 零余额 | **prepaid 零余额(本场景)** |
|---|---|---|
| 自动关账 | ✅ 是,最后一笔 refund/forfeit 触发 | ❌ **保持 Active** |
| 业户感知 | 收到最后一张红字收据 + 自动关账通知 | **无感**(余额 0 但账户 Active)|
| 业务人员介入 | 不需要 | 视需求决定 |
| 设计哲学 | 押金 = 业务节点性,完结即关 | 预存款 = 长期工具,清零不等于终结 |
## 系统流程(消费导致清零)
```mermaid
sequenceDiagram
participant 业户
participant 业务
participant Filament
participant Account
participant 数据库
Note over Account: balance=800,有 800 物业费账单
业务->>Filament: ConsumeAction(800)
Filament->>Account: consume(bill, 800)
Account->>数据库: 建 CO(type=Bill, +800) + PrepaidTransaction(consume, 800→0)
Account->>数据库: **balance=0, status=Active(不变)**
Account->>监听器: 触发 CollectionOrderCompleted
监听器->>数据库: 建 Receipt("物业费 ¥800")
Account->>数据库: 提交
Note over Account: balance=0 但 Active
Filament-->>业务: 完成
业务-->>业户: 推送"5 月物业费已抵扣,余额 ¥0"
Note over 业户: 业户选择:继续用 / 关账 / 不管
```
## 流水台账(本场景)
| 流水 | type | amount | balance_before | balance_after | 备注 |
|---|---|---|---|---|---|
| ... | (前面省略)| | | | |
| N | consume | 800 | 800 | 0 | 5 月物业费抵扣 |
账户 `status` 保持 Active,无关账动作。
## 常见问题
> [!question] 为什么 prepaid 设计成不自动关账?
> 详见 [[account-state-machine]] "零余额不自动关账" 段。简言之:
>
> - 一户一账,关了重开成本大(unique 约束)
> - 业户长期可能复用
> - 业务高频,频繁开关无意义
> [!question] 系统层面有"零余额超 N 个月自动关账" job 吗?
> 没有,也**不推荐加**。零余额 Active 账户无害,自动关账反而引发业户"为什么我账户被关了"的客服压力。
> [!question] 业户登录小程序看到余额 0,会困惑吗?
> 不会(理论上)。小程序界面应清楚显示:
> - 余额:¥0
> - 状态:Active
> - 行动按钮:"立即充值"(显眼)
> - 流水:可看历史
>
> 业户清楚看到"我可以充值继续用"。
> [!question] 业户问"我账户还在用吗?"
> 看状态:
> - Active + 余额 > 0:正常用
> - Active + 余额 = 0:**仍在用,但需要充值才能抵账单**
> - Frozen:暂停中,联系物业了解
> - Closed:已关闭,不再使用
> [!question] 退到 0 的退款流程跟消费到 0 的流程一样吗?
> 状态机层面**完全一样** —— 都保持 Active。不同点:
> - 消费到 0:走 [[consume-monthly-property-bill]] 等抵扣场景
> - 退款到 0:走 [[refund-full-resident-moveout]] 或 [[refund-partial-after-consume]] 之类的退款场景
>
> 两种动作都**不触发**自动关账。
## 异常分支
- 业户决定关账 → [[close-resident-moveout]]
- 业户决定继续用 → [[deposit-additional-topup|追加充值]]
- 长期零余额累积成审计问题 → [[audit-low-balance-and-overdue]]
## 相关文档
- [[account-state-machine]]
- [[close-resident-moveout]]
- [[deposit-additional-topup]]
- [[refund-full-resident-moveout]]
- [[../deposit/close-after-zero-balance]](deposit 自动关账对比)
- [[../deposit/close-manual-with-zero-balance]](deposit 主动关空账户对比)