200 lines
6.6 KiB
Markdown
200 lines
6.6 KiB
Markdown
---
|
|
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 主动关空账户对比)
|