40 KiB
数字债权服务系统设计文档
概述
数字债权服务系统是基于RuoYi框架构建的企业级债权管理平台,采用微服务架构和区块链技术,为安保服务行业提供完整的债权确权、融资申请和结算清收解决方案。系统遵循RuoYi的分层架构模式,在现有框架基础上扩展债权管理相关功能模块。
架构设计
整体架构
系统采用分层架构模式,基于RuoYi框架的模块化设计,集成区块链、安全、监控等多个技术栈:
┌─────────────────────────────────────────────────────────────┐
│ 前端展示层 (Vue3) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │
│ │债权管理界面 │ │融资管理界面 │ │ 报表分析界面 │ │
│ └─────────────┘ └─────────────┘ └─────────────────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ Web控制层 (Controller) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │
│ │合同API │ │融资API │ │ 报表API │ │
│ │债权API │ │支付API │ │ 监控API │ │
│ └─────────────┘ └─────────────┘ └─────────────────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ 业务服务层 (Service) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │
│ │合同管理 │ │融资管理 │ │ 报表分析 │ │
│ │债权管理 │ │支付结算 │ │ 工作流引擎 │ │
│ │安全管理 │ │通知服务 │ │ 集成适配 │ │
│ └─────────────┘ └─────────────┘ └─────────────────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ 数据访问层 (Mapper) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │
│ │合同数据访问 │ │融资数据访问 │ │ 日志数据访问 │ │
│ │债权数据访问 │ │支付数据访问 │ │ 缓存数据访问 │ │
│ └─────────────┘ └─────────────┘ └─────────────────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ 数据持久层 │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │
│ │MySQL数据库 │ │Redis缓存 │ │ 文件存储 │ │
│ │(业务数据) │ │(会话/缓存) │ │ (报表/日志) │ │
│ └─────────────┘ └─────────────┘ └─────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────┼─────────────────────┐
│ │ │
┌───────▼────────┐ ┌─────────▼────────┐ ┌────────▼────────┐
│ 区块链集成层 │ │ 外部系统集成 │ │ 监控告警系统 │
│ ┌─────────────┐ │ │ ┌──────────────┐ │ │ ┌─────────────┐ │
│ │智能合约执行 │ │ │ │金融机构API │ │ │ │系统监控 │ │
│ │数据上链存储 │ │ │ │支付网关集成 │ │ │ │性能监控 │ │
│ │链上数据验证 │ │ │ │第三方服务 │ │ │ │告警通知 │ │
│ └─────────────┘ │ │ └──────────────┘ │ │ └─────────────┘ │
└────────────────┘ └──────────────────┘ └─────────────────┘
架构特点
- 分层解耦: 严格的分层架构,每层职责明确
- 模块化设计: 按业务领域划分模块,便于维护和扩展
- 多技术栈集成: 集成区块链、缓存、监控等多种技术
- 横向扩展: 支持微服务化改造和水平扩展
- 安全优先: 在每一层都集成安全控制和数据保护
模块架构
系统将作为新的业务模块集成到RuoYi框架中:
RuoYi数字债权服务系统模块架构
┌─────────────────────────────────────────────────────────────┐
│ RuoYi Framework │
├─────────────────────────────────────────────────────────────┤
│ ruoyi-admin │ ruoyi-system │ ruoyi-framework │
├─────────────────────────────────────────────────────────────┤
│ 新增债权服务模块 │
├─────────────────┬─────────────────┬─────────────────────────┤
│ ruoyi-credit │ ruoyi-blockchain│ ruoyi-payment │
│ ┌─────────────┐│ ┌─────────────┐│ ┌─────────────────────┐│
│ │合同管理 ││ │区块链集成 ││ │支付结算 ││
│ │债权管理 ││ │智能合约 ││ │资金监管 ││
│ │融资管理 ││ │数据上链 ││ │资金分配 ││
│ └─────────────┘│ └─────────────┘│ └─────────────────────┘│
├─────────────────┼─────────────────┼─────────────────────────┤
│ ruoyi-security │ruoyi-notification│ ruoyi-analytics │
│ ┌─────────────┐│ ┌─────────────┐│ ┌─────────────────────┐│
│ │身份认证 ││ │消息推送 ││ │报表生成 ││
│ │权限管理 ││ │定时提醒 ││ │数据分析 ││
│ │数据加密 ││ │告警通知 ││ │仪表板 ││
│ │审计日志 ││ │消息模板 ││ │数据导出 ││
│ └─────────────┘│ └─────────────┘│ └─────────────────────┘│
├─────────────────┼─────────────────┼─────────────────────────┤
│ ruoyi-workflow │ ruoyi-integration│ ruoyi-monitor │
│ ┌─────────────┐│ ┌─────────────┐│ ┌─────────────────────┐│
│ │流程引擎 ││ │外部系统集成 ││ │系统监控 ││
│ │任务管理 ││ │API适配 ││ │性能监控 ││
│ │审批流程 ││ │数据同步 ││ │健康检查 ││
│ │流程回滚 ││ │第三方服务 ││ │告警机制 ││
│ └─────────────┘│ └─────────────┘│ └─────────────────────┘│
└─────────────────┴─────────────────┴─────────────────────────┘
核心模块说明
-
ruoyi-credit: 债权管理核心模块
- 合同管理服务 (ContractManager)
- 债权管理服务 (CreditManager)
- 融资管理服务 (FinancingManager)
-
ruoyi-blockchain: 区块链集成模块
- 区块链集成组件 (BlockchainIntegrator)
- 智能合约执行和数据上链
-
ruoyi-payment: 支付结算模块
- 支付处理组件 (PaymentProcessor)
- 资金监管和分配逻辑
-
ruoyi-security: 安全管理模块
- 安全管理组件 (SecurityManager)
- 数据加密、身份认证、权限控制
-
ruoyi-notification: 通知服务模块
- 通知服务组件 (NotificationService)
- 消息推送、定时提醒、告警通知
-
ruoyi-analytics: 数据分析模块
- 报表分析组件 (ReportAnalyzer)
- 财务报表、数据可视化、仪表板
-
ruoyi-workflow: 工作流模块
- 工作流引擎组件 (WorkflowEngine)
- 业务流程自动化、任务审批
-
ruoyi-integration: 集成适配模块
- 集成适配组件 (IntegrationAdapter)
- 外部系统集成、API适配
-
ruoyi-monitor: 监控管理模块
- 系统监控、性能监控、健康检查
- 缓存管理组件 (CacheManager)
组件和接口
核心组件
1. 合同管理组件 (ContractManager)
- 所属模块: ruoyi-credit
- 架构层级: 业务服务层
- 职责: 处理服务合同的创建、确认和状态管理
- 接口:
createContract(contractInfo): 创建服务合同confirmContract(contractId, partyType): 确认合同updateContractStatus(contractId, status): 更新合同状态validateContractData(contractInfo): 验证合同数据完整性generateContractNumber(): 生成合同编号
2. 债权管理组件 (CreditManager)
- 所属模块: ruoyi-credit
- 架构层级: 业务服务层
- 职责: 管理数字债权凭证的生成、验证和状态跟踪
- 接口:
generateCredit(contractId): 生成数字债权凭证validateCredit(creditId): 验证债权凭证有效性updateCreditStatus(creditId, status): 更新债权状态calculateCreditAmount(contractId): 计算债权金额generateDigitalSignature(creditData): 生成数字签名
3. 融资管理组件 (FinancingManager)
- 所属模块: ruoyi-credit
- 架构层级: 业务服务层
- 职责: 处理融资申请、审批和资金管理
- 接口:
submitFinancingApplication(creditId, amount): 提交融资申请processApproval(applicationId, result): 处理审批结果manageFunds(accountId, operation): 管理资金操作calculateInterestRate(creditInfo, institutionId): 计算利率generateRiskAssessment(applicationId): 生成风险评估报告
4. 区块链集成组件 (BlockchainIntegrator)
- 所属模块: ruoyi-blockchain
- 架构层级: 区块链集成层
- 职责: 与区块链网络交互,确保数据不可篡改性
- 接口:
storeOnChain(data): 将数据存储到区块链verifyOnChain(hash): 验证链上数据executeSmartContract(contractAddress, params): 执行智能合约deploySmartContract(contractCode): 部署智能合约queryChainData(queryParams): 查询链上数据monitorChainEvents(eventFilter): 监控链上事件
5. 支付结算组件 (PaymentProcessor)
- 所属模块: ruoyi-payment
- 架构层级: 业务服务层
- 职责: 处理资金流转、分配和结算
- 接口:
processPayment(paymentInfo): 处理支付distributeFunds(distributionPlan): 分配资金settleAccount(accountId): 结算账户createEscrowAccount(applicationId): 创建监管账户transferFunds(fromAccount, toAccount, amount): 资金转账calculateFees(transactionAmount): 计算手续费
6. 通知服务组件 (NotificationService)
- 所属模块: ruoyi-notification
- 架构层级: 业务服务层
- 职责: 发送各类业务通知和提醒
- 接口:
sendNotification(recipient, message, type): 发送通知scheduleReminder(scheduleInfo): 安排提醒sendAlert(alertInfo): 发送告警createMessageTemplate(templateInfo): 创建消息模板batchSendNotification(recipients, message): 批量发送通知trackDeliveryStatus(messageId): 跟踪消息投递状态
7. 安全管理组件 (SecurityManager)
- 所属模块: ruoyi-security
- 架构层级: 业务服务层(横切关注点)
- 职责: 统一管理系统安全策略和安全事件处理
- 接口:
authenticateUser(credentials): 用户身份认证authorizeAccess(userId, resource, action): 权限授权encryptData(data, keyId): 数据加密decryptData(encryptedData, keyId): 数据解密auditLog(operation, userId, resource): 审计日志记录detectThreat(eventData): 威胁检测handleSecurityIncident(incident): 安全事件处理generateMFAToken(userId): 生成多因素认证令牌validateMFAToken(userId, token): 验证多因素认证令牌maskSensitiveData(data, userRole): 敏感数据脱敏
8. 数据管理组件 (DataManager)
- 所属模块: ruoyi-monitor
- 架构层级: 数据访问层
- 职责: 管理数据生命周期、备份恢复和数据质量
- 接口:
backupData(dataType, schedule): 数据备份restoreData(backupId, targetTime): 数据恢复validateDataIntegrity(dataId): 数据完整性验证maskSensitiveData(data, maskLevel): 敏感数据脱敏archiveData(dataId, retentionPolicy): 数据归档purgeData(dataId, reason): 数据清理syncDataAcrossNodes(dataType): 跨节点数据同步compressHistoricalData(timeRange): 压缩历史数据generateDataQualityReport(): 生成数据质量报告
9. 工作流引擎组件 (WorkflowEngine)
- 所属模块: ruoyi-workflow
- 架构层级: 业务服务层
- 职责: 管理业务流程的自动化执行和状态跟踪
- 接口:
startWorkflow(processDefinition, parameters): 启动工作流executeTask(taskId, action, parameters): 执行任务approveTask(taskId, approver, decision): 任务审批getWorkflowStatus(instanceId): 获取流程状态rollbackWorkflow(instanceId, targetStep): 流程回滚defineWorkflowTemplate(templateInfo): 定义工作流模板assignTask(taskId, assignee): 分配任务escalateTask(taskId, escalationRule): 任务升级
10. 报表分析组件 (ReportAnalyzer)
- 所属模块: ruoyi-analytics
- 架构层级: 业务服务层
- 职责: 生成各类业务报表和数据分析
- 接口:
generateReport(reportType, parameters): 生成报表exportReport(reportId, format): 导出报表analyzeRisk(creditId, analysisType): 风险分析calculateMetrics(metricType, timeRange): 计算指标createDashboard(userId, widgets): 创建仪表板scheduleReportGeneration(reportConfig): 定时生成报表aggregateStatistics(dataSource, groupBy): 聚合统计数据predictTrends(historicalData, algorithm): 趋势预测
11. 集成适配组件 (IntegrationAdapter)
- 所属模块: ruoyi-integration
- 架构层级: 外部系统集成层
- 职责: 与外部系统和第三方服务的集成适配
- 接口:
connectExternalSystem(systemConfig): 连接外部系统syncData(sourceSystem, targetSystem, dataType): 数据同步callThirdPartyAPI(apiConfig, parameters): 调用第三方APIhandleCallback(callbackData, source): 处理回调transformData(data, sourceFormat, targetFormat): 数据转换registerWebhook(webhookConfig): 注册WebhookretryFailedIntegration(integrationId): 重试失败的集成monitorIntegrationHealth(systemId): 监控集成健康状态
12. 缓存管理组件 (CacheManager)
- 所属模块: ruoyi-monitor
- 架构层级: 数据访问层
- 职责: 管理系统缓存策略和性能优化
- 接口:
cacheData(key, data, expiration): 缓存数据getCachedData(key): 获取缓存数据invalidateCache(pattern): 失效缓存preloadCache(dataType): 预加载缓存monitorCachePerformance(): 监控缓存性能configureCachePolicy(cacheConfig): 配置缓存策略distributeCacheUpdate(key, data): 分布式缓存更新analyzeCacheHitRate(timeRange): 分析缓存命中率
API接口设计
RESTful API端点
合同管理API (ruoyi-credit模块)
POST /api/credit/contracts # 创建服务合同
PUT /api/credit/contracts/{id}/confirm # 确认合同
GET /api/credit/contracts/{id} # 获取合同详情
GET /api/credit/contracts # 查询合同列表
PUT /api/credit/contracts/{id}/status # 更新合同状态
DELETE /api/credit/contracts/{id} # 删除合同
POST /api/credit/contracts/{id}/validate # 验证合同数据
债权管理API (ruoyi-credit模块)
POST /api/credit/credits # 生成数字债权凭证
GET /api/credit/credits/{id} # 获取债权凭证详情
GET /api/credit/credits # 查询债权列表
PUT /api/credit/credits/{id}/status # 更新债权状态
POST /api/credit/credits/{id}/validate # 验证债权有效性
GET /api/credit/credits/{id}/signature # 获取数字签名
融资管理API (ruoyi-credit模块)
POST /api/credit/financing # 提交融资申请
PUT /api/credit/financing/{id}/approve # 审批融资申请
GET /api/credit/financing/{id} # 获取融资详情
GET /api/credit/financing # 查询融资申请列表
POST /api/credit/financing/{id}/risk-assess # 风险评估
GET /api/credit/financing/{id}/interest-rate # 获取利率信息
支付结算API (ruoyi-payment模块)
POST /api/payment/process # 处理支付
POST /api/payment/escrow # 创建监管账户
PUT /api/payment/escrow/{id}/distribute # 资金分配
GET /api/payment/history # 获取支付历史
GET /api/payment/escrow/{id}/balance # 查询账户余额
POST /api/payment/transfer # 资金转账
区块链集成API (ruoyi-blockchain模块)
POST /api/blockchain/store # 数据上链存储
GET /api/blockchain/verify/{hash} # 验证链上数据
POST /api/blockchain/contract/execute # 执行智能合约
POST /api/blockchain/contract/deploy # 部署智能合约
GET /api/blockchain/events # 查询链上事件
GET /api/blockchain/transaction/{txHash} # 查询交易详情
报表分析API (ruoyi-analytics模块)
GET /api/reports/dashboard # 获取仪表板数据
POST /api/reports/generate # 生成报表
GET /api/reports/{id}/export # 导出报表
GET /api/reports/financial # 获取财务报表
POST /api/reports/risk-analysis # 风险分析
GET /api/reports/statistics # 统计数据
安全管理API (ruoyi-security模块)
POST /api/security/authenticate # 用户认证
POST /api/security/mfa/generate # 生成MFA令牌
POST /api/security/mfa/validate # 验证MFA令牌
GET /api/security/audit-logs # 查询审计日志
POST /api/security/encrypt # 数据加密
POST /api/security/decrypt # 数据解密
通知服务API (ruoyi-notification模块)
POST /api/notification/send # 发送通知
POST /api/notification/schedule # 安排定时通知
GET /api/notification/templates # 获取消息模板
POST /api/notification/templates # 创建消息模板
GET /api/notification/delivery-status/{id} # 查询投递状态
POST /api/notification/batch-send # 批量发送通知
数据模型
核心实体
服务合同 (ServiceContract)
public class ServiceContract {
private Long contractId; // 合同ID
private String contractNumber; // 合同编号
private Long securityCompanyId; // 安保公司ID
private Long clientCompanyId; // 甲方单位ID
@EncryptedField(algorithm = "AES-256-GCM")
private String serviceContent; // 服务内容(加密)
@EncryptedField(algorithm = "AES-256-GCM")
private BigDecimal contractAmount; // 合同金额(加密)
private Date startDate; // 服务开始日期
private Date endDate; // 服务结束日期
private Date paymentDueDate; // 付款到期日
private String contractStatus; // 合同状态
private Date createTime; // 创建时间
private Date updateTime; // 更新时间
private String blockchainHash; // 区块链哈希
private String dataHash; // 敏感数据哈希(用于完整性验证)
}
数字债权凭证 (DigitalCredit)
public class DigitalCredit {
private Long creditId; // 债权ID
private String creditNumber; // 债权编号
private Long contractId; // 关联合同ID
@EncryptedField(algorithm = "AES-256-GCM")
private BigDecimal creditAmount; // 债权金额(加密)
private Date issueDate; // 发行日期
private Date maturityDate; // 到期日期
private String creditStatus; // 债权状态
private String blockchainHash; // 区块链哈希
@EncryptedField(algorithm = "AES-256-GCM")
private String digitalSignature; // 数字签名(加密)
private Date createTime; // 创建时间
private Date updateTime; // 更新时间
private String encryptionKeyId; // 加密密钥ID
}
融资申请 (FinancingApplication)
public class FinancingApplication {
private Long applicationId; // 申请ID
private String applicationNumber; // 申请编号
private Long creditId; // 债权ID
private Long financialInstitutionId; // 金融机构ID
@EncryptedField(algorithm = "AES-256-GCM")
private BigDecimal requestAmount; // 申请金额(加密)
@EncryptedField(algorithm = "AES-256-GCM")
private BigDecimal approvedAmount; // 批准金额(加密)
@EncryptedField(algorithm = "AES-256-GCM")
private Double interestRate; // 利率(加密)
private String applicationStatus; // 申请状态
private Date applicationDate; // 申请日期
private Date approvalDate; // 审批日期
@EncryptedField(algorithm = "AES-256-GCM")
private String approvalComments; // 审批意见(加密)
private Date createTime; // 创建时间
private Date updateTime; // 更新时间
private String accessLog; // 访问日志ID
}
资金监管账户 (EscrowAccount)
public class EscrowAccount {
private Long accountId; // 账户ID
private String accountNumber; // 账户号码
private Long applicationId; // 关联融资申请ID
private BigDecimal totalAmount; // 总金额
private BigDecimal availableAmount; // 可用金额
private BigDecimal frozenAmount; // 冻结金额
private String accountStatus; // 账户状态
private Date createTime; // 创建时间
private Date updateTime; // 更新时间
}
资金流转记录 (FundTransfer)
public class FundTransfer {
private Long transferId; // 流转ID
private String transferNumber; // 流转编号
private Long fromAccountId; // 转出账户ID
private Long toAccountId; // 转入账户ID
private BigDecimal transferAmount; // 转账金额
private String transferType; // 转账类型
private String transferStatus; // 转账状态
private String description; // 描述
private Date transferTime; // 转账时间
private String blockchainTxHash; // 区块链交易哈希
}
数据库设计
系统将在现有RuoYi数据库基础上新增以下表结构:
核心业务表 (ruoyi-credit模块)
dc_service_contract: 服务合同表dc_digital_credit: 数字债权凭证表dc_financing_application: 融资申请表dc_company_info: 公司信息表dc_contract_attachment: 合同附件表
支付结算表 (ruoyi-payment模块)
dc_escrow_account: 资金监管账户表dc_fund_transfer: 资金流转记录表dc_payment_record: 支付记录表dc_account_balance: 账户余额表dc_transaction_log: 交易日志表
区块链集成表 (ruoyi-blockchain模块)
dc_blockchain_transaction: 区块链交易表dc_smart_contract: 智能合约表dc_chain_event: 链上事件表dc_hash_mapping: 哈希映射表
安全管理表 (ruoyi-security模块)
dc_audit_log: 审计日志表dc_security_event: 安全事件表dc_encryption_key: 加密密钥表dc_mfa_token: 多因素认证令牌表dc_access_control: 访问控制表
通知服务表 (ruoyi-notification模块)
dc_notification_log: 通知日志表dc_message_template: 消息模板表dc_scheduled_task: 定时任务表dc_delivery_status: 投递状态表
报表分析表 (ruoyi-analytics模块)
dc_report_config: 报表配置表dc_report_instance: 报表实例表dc_dashboard_widget: 仪表板组件表dc_statistics_cache: 统计缓存表
工作流管理表 (ruoyi-workflow模块)
dc_workflow_definition: 工作流定义表dc_workflow_instance: 工作流实例表dc_workflow_task: 工作流任务表dc_approval_record: 审批记录表
集成适配表 (ruoyi-integration模块)
dc_external_system: 外部系统表dc_integration_config: 集成配置表dc_api_call_log: API调用日志表dc_webhook_config: Webhook配置表
系统监控表 (ruoyi-monitor模块)
dc_system_monitor: 系统监控表dc_performance_metric: 性能指标表dc_cache_statistics: 缓存统计表dc_backup_record: 备份记录表
正确性属性
属性是指在系统的所有有效执行中都应该成立的特征或行为——本质上是关于系统应该做什么的正式声明。属性作为人类可读规范和机器可验证正确性保证之间的桥梁。
合同管理属性
属性 1: 合同创建完整性 对于任何有效的合同信息,创建合同后系统必须生成唯一的合同记录并发送确认通知 验证需求: 1.1
属性 2: 合同状态一致性 对于任何合同确认操作,系统必须正确更新合同状态为"已确认"并记录准确的确认时间 验证需求: 1.2
属性 3: 债权生成触发 对于任何已确认且服务完成的合同,系统必须自动生成对应的应收账款债权记录 验证需求: 1.3
债权管理属性
属性 4: 债权凭证完整性 对于任何生成的债权记录,系统必须创建包含完整合同详情、金额和到期日的数字债权凭证 验证需求: 1.4
属性 5: 区块链不可篡改性 对于任何上链的数字债权凭证,其数据哈希在区块链上必须保持不可篡改 验证需求: 1.5
属性 6: 债权验证准确性 对于任何融资申请,系统必须准确验证关联数字债权凭证的有效性和完整性 验证需求: 2.1
融资管理属性
属性 7: API数据提供完整性 对于任何有效的API请求,系统必须提供完整准确的链上债权数据用于信用评估 验证需求: 2.2
属性 8: 审批结果记录 对于任何通过的融资申请,系统必须准确记录审批结果并创建相应的融资合约 验证需求: 2.3
属性 9: 资金监管存储 对于任何到账的融资资金,系统必须将其正确存入指定的资金监管账户 验证需求: 2.4
属性 10: 智能合约执行优先级 对于任何进入监管账户的资金,系统必须通过智能合约优先保障安保人员薪资支付 验证需求: 2.5
结算管理属性
属性 11: 付款提醒及时性 对于任何临近到期的合同,系统必须自动发送付款提醒给相关甲方单位 验证需求: 3.1
属性 12: 收款确认触发 对于任何支付到监管专户的款项,系统必须确认收款并自动触发智能合约执行 验证需求: 3.2
属性 13: 资金分配优先级 对于任何启动的资金分配程序,系统必须首先偿还金融机构的贷款本金和利息 验证需求: 3.3
属性 14: 剩余资金处理 对于任何贷款偿还完成后的剩余资金,系统必须将其正确转至安保公司账户 验证需求: 3.4
属性 15: 债权状态更新 对于任何完成债务结清的债权,系统必须将数字债权凭证状态更新为"已结清" 验证需求: 3.5
系统管理属性
属性 16: 操作日志完整性 对于任何债权相关操作,系统必须记录包含完整操作详情的审计轨迹 验证需求: 4.1
属性 17: 异常告警及时性 对于任何系统异常情况,系统必须立即发送告警通知给相关管理人员 验证需求: 4.2
属性 18: 查询数据实时性 对于任何债权状态查询请求,系统必须提供实时准确的债权流转状态和历史记录 验收需求: 4.3
属性 19: 数据备份一致性 对于任何数据备份操作,系统必须确保区块链数据和业务数据的完全一致性 验证需求: 4.4
API接口属性
属性 20: API标准化响应 对于任何金融机构的债权信息请求,系统必须通过RESTful API提供标准化格式的数据 验证需求: 5.1
属性 21: 身份认证验证 对于任何包含有效认证信息的API调用,系统必须正确验证调用方身份并授权数据访问 验证需求: 5.2
属性 22: 风险评估数据完整性 对于任何债权数据响应,系统必须包含合同金额、信用历史、还款能力等所有风险评估要素 验证需求: 5.3
属性 23: 审批结果接收 对于任何金融机构提交的审批结果,系统必须正确接收并完整记录审批决定和相关条件 验证需求: 5.4
属性 24: 数据传输安全性 对于任何数据传输过程,系统必须使用加密协议确保传输安全 验证需求: 5.5
财务管理属性
属性 25: 债权查询完整性 对于任何特定债权的查询请求,系统必须提供包含创建时间、金额、状态变更历史的完整信息 验证需求: 6.2
属性 26: 资金流转实时更新 对于任何资金流转操作,系统必须实时更新资金流向记录并发送相应通知 验证需求: 6.3
属性 27: 财务报表数据完整性 对于任何财务报表生成请求,系统必须提供完整的债权统计和收益分析等财务数据 验证需求: 6.4
属性 28: 数据导出格式支持 对于任何数据导出请求,系统必须支持Excel、PDF等多种格式的数据导出功能 验证需求: 6.5
数据安全与隐私保护
敏感数据加密
数据分类
- 高敏感数据: 合同金额、银行账户信息、身份证号码、数字签名私钥
- 中敏感数据: 公司名称、联系方式、合同内容详情
- 低敏感数据: 合同状态、创建时间、公开的合同编号
加密策略
- 数据库加密: 使用AES-256对高敏感字段进行字段级加密
- 传输加密: 所有API通信使用TLS 1.3协议
- 存储加密: 文件存储使用透明数据加密(TDE)
- 密钥管理: 采用密钥轮换机制,定期更新加密密钥
加密实现
// 敏感字段加密注解
@EncryptedField(algorithm = "AES-256-GCM")
private String bankAccountNumber;
@EncryptedField(algorithm = "AES-256-GCM")
private BigDecimal contractAmount;
数据泄露防护
访问控制
- 角色权限: 基于RuoYi的RBAC模型,细化到字段级权限控制
- 数据脱敏: 非授权用户查看时自动脱敏显示
- 审计日志: 记录所有敏感数据访问和操作日志
- 会话管理: 实现安全的会话超时和强制登出机制
- 登录失败处理: 连续登录失败时自动清理缓存数据和临时会话信息
登录安全机制
- 失败计数: 记录连续登录失败次数,超过阈值(如5次)触发安全措施
- 账户锁定: 登录失败达到上限时临时锁定账户(如30分钟)
- 数据清理: 登录失败时立即清理以下数据:
- 清除浏览器缓存中的敏感信息
- 注销临时会话和Token
- 清理内存中的用户数据
- 删除临时文件和下载记录
- 安全日志: 记录所有登录失败事件,包括IP地址、时间戳、失败原因
- 异常检测: 检测异常登录模式(如异地登录、频繁失败)并触发告警
多因素认证(MFA)
- 双因素认证: 支持短信验证码、邮箱验证码、TOTP等
- 生物识别: 支持指纹、人脸识别等生物特征认证
- 硬件Token: 支持USB Key、智能卡等硬件认证设备
- 风险评估: 基于用户行为和环境风险动态调整认证强度
网络安全防护
- 防火墙: 部署Web应用防火墙(WAF)防护常见攻击
- DDoS防护: 实施分布式拒绝服务攻击防护
- 入侵检测: 部署IDS/IPS系统监控网络异常
- SSL/TLS: 强制使用HTTPS,禁用弱加密算法
- API安全: 实施API限流、签名验证、IP白名单
数据备份与恢复
- 定期备份: 自动化数据备份,支持增量和全量备份
- 异地备份: 备份数据存储在不同地理位置
- 备份加密: 备份文件使用独立密钥加密
- 恢复测试: 定期进行数据恢复演练
- 版本控制: 保留多个备份版本,支持时间点恢复
安全监控与审计
- 实时监控: 7x24小时安全事件监控
- 行为分析: 用户行为异常检测和分析
- 威胁情报: 集成外部威胁情报源
- 合规审计: 满足等保、ISO27001等合规要求
- 事件响应: 建立安全事件应急响应机制
代码安全
- 静态扫描: 代码提交前进行安全漏洞扫描
- 依赖检查: 检查第三方组件的安全漏洞
- 代码混淆: 对关键代码进行混淆保护
- 运行时保护: 部署RASP运行时应用自我保护
数据脱敏规则
// 银行账户脱敏: 1234****5678
// 金额脱敏: ****万元
// 身份证脱敏: 3301**********1234
防泄露措施
- 水印标记: 在导出文档中嵌入用户水印
- 下载限制: 限制敏感数据的批量下载
- 屏幕截图防护: 在敏感页面禁用截图和打印
- 网络隔离: 敏感数据处理在内网环境中进行
- DLP防护: 部署数据丢失防护系统,监控数据外传
- USB管控: 禁用或限制USB设备访问
- 邮件监控: 监控包含敏感数据的邮件发送
区块链隐私保护
链上数据最小化
- 哈希存储: 仅将数据哈希值存储在区块链上
- 零知识证明: 使用zk-SNARKs验证数据完整性而不暴露原始数据
- 私有链: 采用联盟链架构,限制节点访问权限
隐私计算
- 同态加密: 支持在加密状态下进行数据计算
- 安全多方计算: 多方协作验证而不泄露各方数据
- 差分隐私: 在数据统计分析中保护个体隐私
- 联邦学习: 在不共享原始数据的情况下进行模型训练
智能合约安全
- 合约审计: 智能合约部署前进行安全审计
- 权限控制: 实施细粒度的合约权限管理
- 升级机制: 支持安全的合约升级和回滚
- Gas优化: 防止Gas耗尽攻击和重入攻击
- Oracle安全: 确保外部数据源的可信性
错误处理
异常分类
- 业务异常: 合同状态不符、债权验证失败、资金不足等
- 系统异常: 数据库连接失败、区块链网络异常、第三方服务不可用等
- 安全异常: 身份认证失败、权限不足、数据篡改检测、加密解密失败、登录失败超限等
- 隐私异常: 数据泄露检测、非授权访问、敏感数据暴露、数据清理失败等
错误处理策略
- 统一异常处理: 使用RuoYi框架的全局异常处理机制
- 业务回滚: 关键业务操作支持事务回滚
- 重试机制: 对于网络异常等临时性错误实现自动重试
- 降级处理: 在系统负载过高时提供基础功能保障
- 安全响应: 检测到安全威胁时自动触发防护措施
- 隐私保护: 发生数据泄露风险时立即启动应急响应
- 登录失败处理: 登录失败时立即执行数据清理和会话注销
- 自动清理: 系统异常时自动清理敏感数据缓存和临时文件
测试策略
双重测试方法
系统采用单元测试和基于属性的测试相结合的综合测试策略:
单元测试
- 验证特定示例、边界情况和错误条件
- 测试组件间的集成点
- 单元测试有助于发现具体的错误,但应避免编写过多,因为基于属性的测试负责覆盖大量输入
基于属性的测试
- 使用JUnit 5和jqwik库进行基于属性的测试
- 每个基于属性的测试配置为运行最少100次迭代,因为属性测试过程是随机的
- 每个基于属性的测试必须用注释明确引用设计文档中的正确性属性
- 每个基于属性的测试使用以下确切格式标记:'Feature: digital-credit-service, Property {number}: {property_text}'
- 每个正确性属性必须由单个基于属性的测试实现
- 基于属性的测试验证应该在所有输入中保持的通用属性
测试库和工具
- 单元测试: JUnit 5, Mockito, Spring Boot Test
- 基于属性的测试: jqwik (Java的属性测试库)
- 集成测试: TestContainers (用于数据库和区块链测试)
- API测试: RestAssured, WireMock
测试要求
- 基于属性的测试必须在实现过程中尽可能接近实现,以便及早发现错误
- 每个正确性属性必须有对应的基于属性的测试实现
- 测试必须验证真实功能,不得使用模拟或虚假数据来通过测试
- 如果测试在3-4次尝试后仍然失败,必须解释问题并寻求指导