# 银行端小程序产品需求文档 (PRD)

## 版本历史

| 版本 | 日期 | 作者 | 变更说明 |
|------|------|------|----------|
| v1.0 | 2025-01-19 | 产品经理 | 初始版本，定义银行端小程序核心功能需求 |

---

## 1. 项目概述

### 1.1 背景
基于宁夏智慧养殖监管平台的银行监管系统，为银行机构开发专用的微信小程序，实现移动端的信贷风险管理、抵押物监控、客户服务等核心业务功能。通过小程序的便携性和实时性，提升银行人员的工作效率和客户服务质量。

### 1.2 业务目标
- **提升工作效率**：银行人员可随时随地处理业务，提高响应速度
- **降低风险成本**：实时监控抵押物状态，及时预警风险事件
- **优化客户体验**：为养殖企业客户提供便捷的金融服务入口
- **数字化转型**：推动银行业务向移动化、智能化方向发展

### 1.3 产品定位
面向银行信贷风险管理人员和养殖企业客户的专业金融服务小程序，集成信贷管理、风险监控、客户服务于一体的移动端解决方案。

---

## 2. 用户角色与用例

### 2.1 核心用户角色

| 角色 | 描述 | 核心需求 |
|------|------|----------|
| 银行信贷经理 | 负责信贷业务审批和管理 | 客户信息查询、信贷审批、风险评估 |
| 银行风控专员 | 负责风险监控和预警处理 | 抵押物监控、风险预警、数据分析 |
| 银行客户经理 | 负责客户关系维护和服务 | 客户沟通、业务推广、服务支持 |
| 养殖企业客户 | 银行信贷服务的使用者 | 贷款申请、还款管理、资产查询 |

### 2.2 用户故事

#### 用户故事1：移动端信贷管理
**As a** 银行信贷经理  
**I want to** 在小程序中查看和处理信贷申请  
**So that** 我可以随时随地处理业务，提高工作效率

#### 用户故事2：实时风险监控
**As a** 银行风控专员  
**I want to** 实时监控抵押物状态和风险预警  
**So that** 我可以及时发现和处理潜在风险

#### 用户故事3：便捷客户服务
**As a** 养殖企业客户  
**I want to** 通过小程序查询贷款信息和还款计划  
**So that** 我可以方便地管理自己的金融业务

---

## 3. 功能需求

### 3.1 核心功能模块

#### 3.1.1 用户认证与权限管理
**功能描述**：基于现有银行后端系统的用户认证和角色权限管理

**主要功能**：
- 微信授权登录
- 手机号验证
- 角色权限验证
- 会话管理
- 安全退出

**验收标准**：
- 支持微信一键登录
- 集成现有银行用户体系
- 实现基于角色的功能访问控制
- 会话超时自动跳转登录页

#### 3.1.2 客户信息管理
**功能描述**：银行客户信息的查询、管理和维护

**主要功能**：
- 客户基本信息查询
- 客户信用评级查看
- 客户资产信息展示
- 客户联系记录管理
- 客户标签分类

**验收标准**：
- 支持多条件客户搜索
- 客户信息实时同步
- 敏感信息权限控制
- 客户互动记录完整

#### 3.1.3 信贷业务管理
**功能描述**：信贷申请、审批、放款、还款全流程管理

**主要功能**：
- 信贷申请查看和处理
- 信贷审批流程管理
- 放款进度跟踪
- 还款计划管理
- 逾期提醒处理

**验收标准**：
- 审批流程状态实时更新
- 支持移动端审批操作
- 还款提醒及时推送
- 逾期处理流程完整

#### 3.1.4 抵押物监控
**功能描述**：养殖资产作为抵押物的实时监控和管理

**主要功能**：
- 抵押物基本信息查看
- 抵押物价值评估
- 抵押物状态监控
- 抵押物变更记录
- 抵押物风险预警

**验收标准**：
- 抵押物信息实时更新
- 价值评估算法准确
- 异常状态及时预警
- 变更记录完整追溯

#### 3.1.5 风险预警系统
**功能描述**：基于多维度数据的风险识别和预警

**主要功能**：
- 风险等级评估
- 预警信息推送
- 风险处理建议
- 风险趋势分析
- 预警历史记录

**验收标准**：
- 风险评估模型准确
- 预警推送及时有效
- 处理建议具有指导性
- 趋势分析直观易懂

#### 3.1.6 数据统计分析
**功能描述**：业务数据的统计分析和可视化展示

**主要功能**：
- 业务数据概览
- 风险指标统计
- 客户分布分析
- 业绩指标展示
- 趋势图表分析

**验收标准**：
- 数据统计准确及时
- 图表展示清晰美观
- 支持多维度分析
- 数据导出功能完善

### 3.2 辅助功能模块

#### 3.2.1 消息通知
- 系统消息推送
- 业务提醒通知
- 风险预警通知
- 客户互动消息

#### 3.2.2 文档管理
- 合同文档查看
- 资料上传下载
- 文档版本管理
- 电子签名支持

#### 3.2.3 设置中心
- 个人信息设置
- 通知偏好设置
- 安全设置管理
- 系统参数配置

---

## 4. 非功能需求

### 4.1 性能要求
- **响应时间**：页面加载时间 < 3秒，接口响应时间 < 2秒
- **并发用户**：支持1000+并发用户同时使用
- **数据同步**：关键数据实时同步，延迟 < 5秒
- **离线支持**：支持基础功能离线查看

### 4.2 安全要求
- **数据加密**：敏感数据传输和存储加密
- **访问控制**：基于角色的细粒度权限控制
- **审计日志**：完整的操作日志记录
- **合规性**：符合银行业数据安全规范

### 4.3 兼容性要求
- **微信版本**：支持微信7.0+版本
- **设备兼容**：支持iOS 12+、Android 8+
- **屏幕适配**：支持主流手机屏幕尺寸
- **网络环境**：支持4G/5G/WiFi网络

### 4.4 可扩展性要求
- **模块化设计**：支持功能模块独立开发和部署
- **接口标准化**：遵循RESTful API设计规范
- **配置化管理**：支持业务规则和参数配置化
- **多租户支持**：支持多银行机构独立使用

---

## 5. 技术架构

### 5.1 前端技术栈
- **开发框架**：Vue.js 3.x + uni-app
- **状态管理**：Pinia
- **UI组件**：自定义组件 + uni-app内置组件
- **网络请求**：基于uni.request()封装
- **构建工具**：HBuilderX + Vite

### 5.2 后端集成
- **API接口**：完全复用现有bank-backend系统
- **数据模型**：User、Account、Transaction、Role等
- **认证方式**：JWT Token认证
- **数据格式**：JSON格式数据交换

### 5.3 部署架构
- **小程序发布**：微信小程序平台
- **后端服务**：复用现有bank-backend服务
- **数据库**：复用现有MySQL数据库
- **文件存储**：支持本地存储和云存储

---

## 6. 数据字典

### 6.1 核心数据实体

#### 6.1.1 用户信息 (User)
| 字段名 | 类型 | 说明 | 示例 |
|--------|------|------|------|
| id | Integer | 用户ID | 1001 |
| username | String | 用户名 | zhangsan |
| real_name | String | 真实姓名 | 张三 |
| phone | String | 手机号 | 13800138000 |
| role_id | Integer | 角色ID | 1 |
| status | Enum | 用户状态 | active |

#### 6.1.2 账户信息 (Account)
| 字段名 | 类型 | 说明 | 示例 |
|--------|------|------|------|
| id | Integer | 账户ID | 2001 |
| account_number | String | 账户号码 | 6228480012345678 |
| user_id | Integer | 用户ID | 1001 |
| account_type | Enum | 账户类型 | savings |
| balance | BigInt | 账户余额(分) | 100000 |
| status | Enum | 账户状态 | active |

#### 6.1.3 交易记录 (Transaction)
| 字段名 | 类型 | 说明 | 示例 |
|--------|------|------|------|
| id | Integer | 交易ID | 3001 |
| transaction_number | String | 交易流水号 | TXN20250119001 |
| account_id | Integer | 账户ID | 2001 |
| transaction_type | Enum | 交易类型 | deposit |
| amount | BigInt | 交易金额(分) | 50000 |
| status | Enum | 交易状态 | completed |

---

## 7. API规范

### 7.1 设计原则
- **RESTful设计**：遵循REST架构风格
- **统一响应格式**：标准化的JSON响应结构
- **错误处理**：完善的错误码和错误信息
- **版本管理**：支持API版本控制

### 7.2 核心接口

#### 7.2.1 用户认证
```
POST /api/auth/login
POST /api/auth/logout
GET /api/auth/profile
```

#### 7.2.2 客户管理
```
GET /api/users
GET /api/users/:id
POST /api/users
PUT /api/users/:id
```

#### 7.2.3 账户管理
```
GET /api/accounts
GET /api/accounts/:id
POST /api/accounts
PUT /api/accounts/:id
```

#### 7.2.4 交易管理
```
GET /api/transactions
GET /api/transactions/:id
POST /api/transactions/transfer
GET /api/transactions/stats
```

### 7.3 响应格式
```json
{
  "success": true,
  "data": {},
  "message": "操作成功",
  "timestamp": "2025-01-19T10:30:00Z"
}
```

---

## 8. 部署要求

### 8.1 硬件要求
- **服务器配置**：复用现有bank-backend服务器
- **存储空间**：小程序包大小 < 2MB
- **网络带宽**：支持高并发访问

### 8.2 软件要求
- **Node.js版本**：16.20.2（与保险小程序保持一致）
- **微信开发者工具**：最新稳定版
- **后端服务**：复用现有bank-backend服务

### 8.3 部署架构
- **开发环境**：本地开发 + 测试后端
- **测试环境**：微信开发者工具预览
- **生产环境**：微信小程序平台发布

---

## 9. 项目计划

### 9.1 开发阶段

#### 第一阶段：基础框架搭建（1周）
- 项目初始化和环境配置
- 基础组件和工具类开发
- 用户认证和权限管理
- 基础页面框架搭建

#### 第二阶段：核心功能开发（3周）
- 客户信息管理模块
- 信贷业务管理模块
- 抵押物监控模块
- 风险预警系统

#### 第三阶段：辅助功能开发（2周）
- 数据统计分析模块
- 消息通知功能
- 文档管理功能
- 设置中心功能

#### 第四阶段：测试优化（1周）
- 功能测试和性能优化
- 兼容性测试
- 安全性测试
- 用户体验优化

### 9.2 里程碑
- **M1**：基础框架完成，用户认证可用
- **M2**：核心业务功能完成，基本可用
- **M3**：所有功能完成，进入测试阶段
- **M4**：测试完成，准备发布上线

---

## 10. 风险与约束

### 10.1 技术风险
- **微信平台限制**：小程序功能和性能限制
- **后端依赖**：依赖现有bank-backend系统稳定性
- **数据同步**：实时数据同步的技术挑战
- **安全合规**：银行业安全规范的严格要求

### 10.2 业务风险
- **用户接受度**：银行人员对移动端工具的接受程度
- **业务复杂性**：银行业务流程的复杂性和特殊性
- **监管要求**：金融监管政策的变化影响
- **竞争压力**：同类产品的竞争压力

### 10.3 项目约束
- **开发周期**：7周开发周期的时间约束
- **资源限制**：开发人员和测试资源的限制
- **预算控制**：项目预算和成本控制要求
- **质量标准**：银行级应用的高质量标准

---

## 11. 附录

### 11.1 参考文档
- 银行监管系统需求文档
- 现有bank-backend API文档
- 保险小程序开发经验总结
- 微信小程序开发规范

### 11.2 术语表
- **PRD**：Product Requirements Document，产品需求文档
- **API**：Application Programming Interface，应用程序接口
- **JWT**：JSON Web Token，JSON网络令牌
- **RBAC**：Role-Based Access Control，基于角色的访问控制

### 11.3 联系方式
- **产品经理**：负责需求确认和产品规划
- **技术负责人**：负责技术架构和开发指导
- **测试负责人**：负责测试计划和质量保证
- **项目经理**：负责项目进度和资源协调

---

**文档状态**：已完成  
**最后更新**：2025-01-19  
**下次评审**：待定