# 权限审批与通知机制 - PRD

> **⚠️ 注意：本文档功能暂缓实现，作为后续迭代规划参考。**
>
> 当前版本优先实现核心支付功能，权限审批与通知机制将在后续版本中实现。

## 文档信息

| 项目 | 内容 |
|------|------|
| 文档版本 | v1.2.0 |
| 创建日期 | 2026-03-09 |
| 模块名称 | 权限审批与通知机制 |
| 文档状态 | **暂缓实现** |
| 计划版本 | v2.0 |

---

## 一、模块概述

### 1.1 模块定位

本模块定义支付中台的权限控制、审批流程和通知告警机制，是横跨多个业务模块的基础能力模块，为敏感操作提供安全保障，为系统异常提供及时告警。

### 1.2 核心功能

1. **角色权限管理** - 定义系统角色和操作权限
2. **审批流程管理** - 管理敏感操作的审批流程
3. **通知告警机制** - 系统事件和异常的通知管理

### 1.3 适用模块

- 运营平台服务商配置
- 业务场景管理
- 小区支付配置
- 用户签约管理
- 支付交易管理
- 流水与对账
- 支付报表

---

## 二、角色权限管理

### 2.1 角色定义

| 角色代码 | 角色名称 | 说明 | 权限范围 |
|---------|---------|------|---------|
| SUPER_ADMIN | 超级管理员 | 系统最高权限 | 全部 |
| PLATFORM_ADMIN | 运营平台管理员 | 管理运营平台配置 | 所属平台 |
| COMMUNITY_ADMIN | 小区管理员 | 管理小区支付配置 | 所属小区 |
| FINANCE_MANAGER | 财务经理 | 财务审批和对账 | 财务相关 |
| FINANCE_STAFF | 财务专员 | 日常财务操作 | 财务相关(受限) |
| OPERATOR | 运营专员 | 日常运营操作 | 运营相关 |
| AUDITOR | 审计员 | 查看和审计 | 只读 |

### 2.2 权限矩阵

#### 2.2.1 运营平台服务商配置

| 操作 | 超级管理员 | 平台管理员 | 小区管理员 | 财务经理 | 财务专员 | 运营专员 | 审计员 |
|------|-----------|-----------|-----------|---------|---------|---------|-------|
| 查看运营平台列表 | ✅ | ✅(本平台) | ❌ | ✅ | ❌ | ❌ | ✅ |
| 创建运营平台 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 编辑运营平台 | ✅ | ✅(本平台) | ❌ | ❌ | ❌ | ❌ | ❌ |
| 停用运营平台 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 配置服务商参数 | ✅ | ✅(本平台) | ❌ | ❌ | ❌ | ❌ | ❌ |
| 查看服务商密钥 | ✅ | ✅(本平台) | ❌ | ❌ | ❌ | ❌ | ❌ |
| 修改服务商密钥 | ✅ | ✅(本平台,需审批) | ❌ | ❌ | ❌ | ❌ | ❌ |

#### 2.2.2 小区支付配置

| 操作 | 超级管理员 | 平台管理员 | 小区管理员 | 财务经理 | 财务专员 | 运营专员 | 审计员 |
|------|-----------|-----------|-----------|---------|---------|---------|-------|
| 查看小区配置 | ✅ | ✅(本平台) | ✅(本小区) | ✅ | ✅ | ✅ | ✅ |
| 创建小区配置 | ✅ | ✅(本平台) | ❌ | ❌ | ❌ | ❌ | ❌ |
| 编辑小区配置 | ✅ | ✅(本平台) | ✅(本小区) | ❌ | ❌ | ❌ | ❌ |
| 停用小区配置 | ✅ | ✅(本平台) | ❌ | ❌ | ❌ | ❌ | ❌ |
| 配置独立商户号 | ✅ | ✅(本平台) | ✅(本小区,需审批) | ❌ | ❌ | ❌ | ❌ |

#### 2.2.3 用户签约管理

| 操作 | 超级管理员 | 平台管理员 | 小区管理员 | 财务经理 | 财务专员 | 运营专员 | 审计员 |
|------|-----------|-----------|-----------|---------|---------|---------|-------|
| 查看签约列表 | ✅ | ✅(本平台) | ✅(本小区) | ✅ | ✅ | ✅ | ✅ |
| 查看签约详情 | ✅ | ✅(本平台) | ✅(本小区) | ✅ | ✅ | ✅ | ✅ |
| 解约操作 | ✅ | ✅(本平台) | ✅(本小区) | ❌ | ❌ | ✅ | ❌ |
| 批量解约 | ✅ | ✅(本平台,需审批) | ❌ | ❌ | ❌ | ❌ | ❌ |
| 调整签约限额 | ✅ | ✅(本平台) | ✅(本小区) | ❌ | ❌ | ❌ | ❌ |

#### 2.2.4 支付交易管理

| 操作 | 超级管理员 | 平台管理员 | 小区管理员 | 财务经理 | 财务专员 | 运营专员 | 审计员 |
|------|-----------|-----------|-----------|---------|---------|---------|-------|
| 查看订单列表 | ✅ | ✅(本平台) | ✅(本小区) | ✅ | ✅ | ✅ | ✅ |
| 查看订单详情 | ✅ | ✅(本平台) | ✅(本小区) | ✅ | ✅ | ✅ | ✅ |
| 发起退款 | ✅ | ✅(本平台) | ✅(本小区) | ✅ | ✅(≤1000元) | ❌ | ❌ |
| 大额退款(>1000元) | ✅ | ✅(需审批) | ❌ | ✅ | ❌ | ❌ | ❌ |
| 处理异常订单 | ✅ | ✅(本平台) | ❌ | ✅ | ✅ | ❌ | ❌ |
| 手动重试通知 | ✅ | ✅(本平台) | ✅(本小区) | ✅ | ✅ | ✅ | ❌ |

#### 2.2.5 流水与对账

| 操作 | 超级管理员 | 平台管理员 | 小区管理员 | 财务经理 | 财务专员 | 运营专员 | 审计员 |
|------|-----------|-----------|-----------|---------|---------|---------|-------|
| 查看支付流水 | ✅ | ✅(本平台) | ✅(本小区) | ✅ | ✅ | ✅ | ✅ |
| 导出支付流水 | ✅ | ✅(本平台) | ✅(本小区) | ✅ | ✅ | ❌ | ✅ |
| 下载对账单 | ✅ | ✅(本平台) | ❌ | ✅ | ✅ | ❌ | ❌ |
| 执行对账 | ✅ | ✅(本平台) | ❌ | ✅ | ✅ | ❌ | ❌ |
| 处理对账差异 | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ |
| 发起调账申请 | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ |
| 审批调账申请 | ✅ | ❌ | ❌ | ✅(≤10000元) | ❌ | ❌ | ❌ |

---

## 三、审批流程管理

### 3.1 需要审批的操作

| 操作类型 | 触发条件 | 审批级别 | 审批人 |
|---------|---------|---------|--------|
| 修改服务商密钥 | 任何密钥修改 | 一级 | 超级管理员 |
| 停用运营平台 | 平台有活跃小区 | 一级 | 超级管理员 |
| 大额退款 | 退款金额>1000元 | 一级/二级 | 财务经理/总监 |
| 调账申请 | 任何调账 | 一级/二级/三级 | 按金额分级 |
| 批量解约 | 解约数量>10 | 一级 | 平台管理员 |
| 配置独立商户号 | 小区级配置 | 一级 | 平台管理员 |

### 3.2 审批状态

| 状态 | 代码 | 说明 |
|------|------|------|
| 待审批 | pending | 等待审批人处理 |
| 审批中 | processing | 多级审批进行中 |
| 已通过 | approved | 审批通过 |
| 已拒绝 | rejected | 审批拒绝 |
| 已撤销 | cancelled | 申请人撤销 |
| 已过期 | expired | 超时未处理 |

### 3.3 审批流程

```
申请人发起审批
  │
  ├─ 1. 创建审批记录
  │    ├─ 记录申请信息
  │    ├─ 确定审批级别和审批人
  │    └─ 状态: pending
  │
  ├─ 2. 发送审批通知
  │    ├─ 系统内消息
  │    ├─ 邮件通知
  │    └─ 短信通知(紧急)
  │
  ├─ 3. 审批人处理
  │    ├─ 通过:
  │    │    ├─ 如果有下一级: 流转到下一审批人
  │    │    └─ 如果是最后一级: 执行操作
  │    │
  │    └─ 拒绝:
  │         ├─ 填写拒绝原因
  │         └─ 通知申请人
  │
  ├─ 4. 审批超时处理
  │    ├─ 超时提醒: 24小时未处理发送提醒
  │    ├─ 超时升级: 48小时未处理升级到上级
  │    └─ 超时过期: 72小时未处理自动过期
  │
  └─ 5. 记录审批日志
       └─ 完整记录审批过程
```

### 3.4 审批配置表 (approval_config)

| 字段名 | 类型 | 说明 |
|-------|------|------|
| id | BIGINT | 主键ID |
| operation_type | VARCHAR(50) | 操作类型 |
| condition_type | VARCHAR(20) | 条件类型: amount/count/always |
| condition_value | VARCHAR(100) | 条件值 (JSON格式) |
| approval_level | INT | 审批级别 |
| approver_role | VARCHAR(50) | 审批人角色 |
| timeout_hours | INT | 超时时间(小时) |
| status | VARCHAR(20) | 状态 |
| created_at | DATETIME | 创建时间 |

### 3.5 审批记录表 (approval_record)

| 字段名 | 类型 | 说明 |
|-------|------|------|
| id | BIGINT | 主键ID |
| approval_no | VARCHAR(64) | 审批单号 |
| operation_type | VARCHAR(50) | 操作类型 |
| operation_detail | TEXT | 操作详情 (JSON) |
| applicant_id | BIGINT | 申请人ID |
| current_level | INT | 当前审批级别 |
| total_level | INT | 总审批级别 |
| approval_status | VARCHAR(20) | 审批状态 |
| created_at | DATETIME | 创建时间 |
| updated_at | DATETIME | 更新时间 |
| expired_at | DATETIME | 过期时间 |

### 3.6 审批明细表 (approval_detail)

| 字段名 | 类型 | 说明 |
|-------|------|------|
| id | BIGINT | 主键ID |
| approval_id | BIGINT | 审批记录ID |
| approval_level | INT | 审批级别 |
| approver_id | BIGINT | 审批人ID |
| approval_action | VARCHAR(20) | 审批动作: approve/reject |
| approval_remark | VARCHAR(500) | 审批备注 |
| approval_time | DATETIME | 审批时间 |

---

## 四、通知告警机制

### 4.1 通知类型

| 类型 | 代码 | 说明 | 通知渠道 |
|------|------|------|---------|
| 审批通知 | APPROVAL | 审批相关通知 | 站内信、邮件 |
| 业务通知 | BUSINESS | 业务操作通知 | 站内信 |
| 告警通知 | ALERT | 系统异常告警 | 站内信、邮件、短信 |
| 提醒通知 | REMINDER | 到期提醒等 | 站内信、邮件 |

### 4.2 告警场景

#### 4.2.1 支付交易告警

| 告警场景 | 告警级别 | 触发条件 | 通知对象 |
|---------|---------|---------|---------|
| 大额交易 | INFO | 单笔交易>10万元 | 财务经理 |
| 交易异常 | WARNING | 重复支付/掉单 | 财务专员、运营专员 |
| 支付失败率高 | ERROR | 失败率>10% | 平台管理员、技术运维 |
| 服务商不可用 | CRITICAL | 服务商接口连续失败 | 超级管理员、技术运维 |

#### 4.2.2 对账告警

| 告警场景 | 告警级别 | 触发条件 | 通知对象 |
|---------|---------|---------|---------|
| 对账差异 | INFO | 发现对账差异 | 财务专员 |
| 大额差异 | WARNING | 差异金额>1000元 | 财务经理 |
| 对账失败 | ERROR | 对账任务执行失败 | 财务经理、技术运维 |
| 对账单下载失败 | ERROR | 连续3次下载失败 | 财务经理、技术运维 |

#### 4.2.3 签约告警

| 告警场景 | 告警级别 | 触发条件 | 通知对象 |
|---------|---------|---------|---------|
| 签约成功 | INFO | 用户完成签约 | 用户 |
| 签约失效 | INFO | 房屋变更导致失效 | 用户 |
| 批量签约失效 | WARNING | 单日失效>100笔 | 运营专员 |
| 签约接口异常 | ERROR | 签约接口连续失败 | 技术运维 |

#### 4.2.4 配置告警

| 告警场景 | 告警级别 | 触发条件 | 通知对象 |
|---------|---------|---------|---------|
| 证书即将到期 | WARNING | 证书30天内到期 | 平台管理员 |
| 证书已过期 | CRITICAL | 证书已过期 | 超级管理员、平台管理员 |
| 配置健康检查失败 | ERROR | 连接测试失败 | 平台管理员 |
| 服务商禁用 | WARNING | 服务商被禁用 | 平台管理员、运营专员 |

### 4.3 通知渠道配置

#### 4.3.1 通知渠道

| 渠道 | 代码 | 适用场景 | 优先级 |
|------|------|---------|--------|
| 站内信 | INTERNAL | 所有通知 | 低 |
| 邮件 | EMAIL | 审批、告警、报表 | 中 |
| 短信 | SMS | 紧急告警 | 高 |
| 企业微信 | WECHAT_WORK | 实时通知 | 中 |
| 钉钉 | DINGTALK | 实时通知 | 中 |

#### 4.3.2 通知配置表 (notification_config)

| 字段名 | 类型 | 说明 |
|-------|------|------|
| id | BIGINT | 主键ID |
| notification_type | VARCHAR(50) | 通知类型 |
| alert_scene | VARCHAR(50) | 告警场景 |
| alert_level | VARCHAR(20) | 告警级别 |
| channels | VARCHAR(100) | 通知渠道 (逗号分隔) |
| recipient_roles | VARCHAR(200) | 接收人角色 (逗号分隔) |
| recipient_users | VARCHAR(500) | 指定接收人ID (逗号分隔) |
| template_id | BIGINT | 通知模板ID |
| status | VARCHAR(20) | 状态 |
| created_at | DATETIME | 创建时间 |

### 4.4 通知模板

#### 4.4.1 审批通知模板

**待审批通知:**
```
【支付中台】您有一条待处理的审批申请

申请类型: {operation_type}
申请人: {applicant_name}
申请时间: {apply_time}
申请详情: {operation_detail}

请在{timeout_hours}小时内处理，超时将自动升级。

[立即处理]
```

**审批结果通知:**
```
【支付中台】您的审批申请已处理

申请类型: {operation_type}
审批结果: {approval_result}
审批人: {approver_name}
审批时间: {approval_time}
审批备注: {approval_remark}

[查看详情]
```

#### 4.4.2 告警通知模板

**证书到期告警:**
```
【支付中台-紧急】证书即将到期

运营平台: {platform_name}
服务商: {provider_name}
证书到期日: {expire_date}
剩余天数: {remaining_days}天

请及时更新证书，避免影响支付服务。

[立即处理]
```

**对账差异告警:**
```
【支付中台】对账发现差异

对账日期: {bill_date}
服务商: {provider_name}
差异笔数: {diff_count}笔
差异金额: {diff_amount}元

请及时处理对账差异。

[查看详情]
```

### 4.5 通知记录表 (notification_log)

| 字段名 | 类型 | 说明 |
|-------|------|------|
| id | BIGINT | 主键ID |
| notification_type | VARCHAR(50) | 通知类型 |
| alert_scene | VARCHAR(50) | 告警场景 |
| alert_level | VARCHAR(20) | 告警级别 |
| channel | VARCHAR(20) | 通知渠道 |
| recipient_id | BIGINT | 接收人ID |
| recipient_contact | VARCHAR(100) | 接收人联系方式 |
| title | VARCHAR(200) | 通知标题 |
| content | TEXT | 通知内容 |
| send_status | VARCHAR(20) | 发送状态 |
| send_time | DATETIME | 发送时间 |
| read_status | VARCHAR(20) | 阅读状态 |
| read_time | DATETIME | 阅读时间 |
| error_message | VARCHAR(500) | 错误信息 |
| created_at | DATETIME | 创建时间 |

---

## 五、服务商状态变更关联影响

### 5.1 服务商禁用影响分析

当服务商被禁用时，需要处理以下关联影响：

```
服务商禁用
  │
  ├─ 1. 影响范围评估
  │    ├─ 查询使用该服务商的运营平台配置
  │    ├─ 查询关联的小区配置
  │    ├─ 查询进行中的支付订单
  │    └─ 查询有效的用户签约
  │
  ├─ 2. 禁用前确认
  │    ├─ 显示影响范围统计
  │    │    ├─ 影响运营平台: X个
  │    │    ├─ 影响小区: X个
  │    │    ├─ 进行中订单: X笔
  │    │    └─ 有效签约: X条
  │    │
  │    └─ 二次确认: "禁用后以上业务将无法使用该服务商，确认禁用？"
  │
  ├─ 3. 禁用处理
  │    ├─ 更新服务商状态为disabled
  │    ├─ 更新关联的运营平台配置状态
  │    ├─ 更新关联的小区配置状态
  │    └─ 记录操作日志
  │
  ├─ 4. 进行中订单处理
  │    ├─ 允许完成支付: 已下单的可继续支付
  │    ├─ 禁止新下单: 使用该服务商的新订单被拒绝
  │    └─ 退款不受影响: 已完成订单可正常退款
  │
  ├─ 5. 签约处理
  │    ├─ 现有签约保持有效: 状态不变
  │    ├─ 禁止新签约: 使用该服务商的新签约被拒绝
  │    └─ 解约不受影响: 用户可正常解约
  │
  └─ 6. 发送通知
       ├─ 通知关联的运营平台管理员
       ├─ 通知关联的小区管理员
       └─ 记录到系统公告
```

### 5.2 服务商启用恢复

```
服务商启用
  │
  ├─ 1. 验证服务商配置
  │    ├─ 测试服务商连通性
  │    └─ 验证证书有效性
  │
  ├─ 2. 启用处理
  │    ├─ 更新服务商状态为enabled
  │    ├─ 恢复关联的运营平台配置状态
  │    └─ 恢复关联的小区配置状态
  │
  └─ 3. 发送通知
       ├─ 通知关联的运营平台管理员
       └─ 通知关联的小区管理员
```

### 5.3 运营平台状态变更影响

```
运营平台禁用
  │
  ├─ 1. 影响范围
  │    ├─ 该平台下所有小区无法发起新支付
  │    ├─ 该平台下所有签约无法使用
  │    └─ 已有订单查询和退款不受影响
  │
  ├─ 2. 处理逻辑
  │    ├─ 更新平台状态
  │    ├─ 批量更新关联小区状态
  │    └─ 发送批量通知
  │
  └─ 3. 恢复逻辑
       ├─ 更新平台状态
       ├─ 恢复关联小区状态
       └─ 发送恢复通知
```

### 5.4 关联影响配置表 (status_change_impact)

| 字段名 | 类型 | 说明 |
|-------|------|------|
| id | BIGINT | 主键ID |
| entity_type | VARCHAR(50) | 实体类型: provider/platform/community |
| entity_id | BIGINT | 实体ID |
| change_type | VARCHAR(20) | 变更类型: disable/enable |
| impact_summary | TEXT | 影响范围摘要 (JSON) |
| change_time | DATETIME | 变更时间 |
| operator_id | BIGINT | 操作人ID |
| created_at | DATETIME | 创建时间 |

---

## 六、验收标准

### 6.1 功能验收

- [ ] 角色权限配置正确
- [ ] 权限控制生效，无权限操作被拒绝
- [ ] 审批流程配置正确
- [ ] 审批通知及时发送
- [ ] 审批超时自动处理
- [ ] 告警规则配置正确
- [ ] 告警通知多渠道发送
- [ ] 服务商状态变更影响正确处理
- [ ] 所有操作记录审计日志

### 6.2 性能验收

- [ ] 权限校验响应时间 ≤ 50ms
- [ ] 通知发送延迟 ≤ 5s
- [ ] 告警触发延迟 ≤ 10s

---

## 七、变更记录

| 版本 | 日期 | 修改人 | 修改内容 |
|------|------|-------|---------|
| v1.2.0 | 2026-03-09 | 产品经理 | 初始版本，标记为暂缓实现 |
