# 数字债权服务系统设计文档 ## 概述 数字债权服务系统是基于RuoYi框架构建的企业级债权管理平台,采用微服务架构和区块链技术,为安保服务行业提供完整的债权确权、融资申请和结算清收解决方案。系统遵循RuoYi的分层架构模式,在现有框架基础上扩展债权管理相关功能模块。 ## 架构设计 ### 整体架构 系统采用分层架构模式,基于RuoYi框架的模块化设计,集成区块链、安全、监控等多个技术栈: ``` ┌─────────────────────────────────────────────────────────────┐ │ 前端展示层 (Vue3) │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │ │ │债权管理界面 │ │融资管理界面 │ │ 报表分析界面 │ │ │ └─────────────┘ └─────────────┘ └─────────────────────────┘ │ ├─────────────────────────────────────────────────────────────┤ │ Web控制层 (Controller) │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │ │ │合同API │ │融资API │ │ 报表API │ │ │ │债权API │ │支付API │ │ 监控API │ │ │ └─────────────┘ └─────────────┘ └─────────────────────────┘ │ ├─────────────────────────────────────────────────────────────┤ │ 业务服务层 (Service) │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │ │ │合同管理 │ │融资管理 │ │ 报表分析 │ │ │ │债权管理 │ │支付结算 │ │ 工作流引擎 │ │ │ │安全管理 │ │通知服务 │ │ 集成适配 │ │ │ └─────────────┘ └─────────────┘ └─────────────────────────┘ │ ├─────────────────────────────────────────────────────────────┤ │ 数据访问层 (Mapper) │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │ │ │合同数据访问 │ │融资数据访问 │ │ 日志数据访问 │ │ │ │债权数据访问 │ │支付数据访问 │ │ 缓存数据访问 │ │ │ └─────────────┘ └─────────────┘ └─────────────────────────┘ │ ├─────────────────────────────────────────────────────────────┤ │ 数据持久层 │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │ │ │MySQL数据库 │ │Redis缓存 │ │ 文件存储 │ │ │ │(业务数据) │ │(会话/缓存) │ │ (报表/日志) │ │ │ └─────────────┘ └─────────────┘ └─────────────────────────┘ │ └─────────────────────────────────────────────────────────────┘ │ ┌─────────────────────┼─────────────────────┐ │ │ │ ┌───────▼────────┐ ┌─────────▼────────┐ ┌────────▼────────┐ │ 区块链集成层 │ │ 外部系统集成 │ │ 监控告警系统 │ │ ┌─────────────┐ │ │ ┌──────────────┐ │ │ ┌─────────────┐ │ │ │智能合约执行 │ │ │ │金融机构API │ │ │ │系统监控 │ │ │ │数据上链存储 │ │ │ │支付网关集成 │ │ │ │性能监控 │ │ │ │链上数据验证 │ │ │ │第三方服务 │ │ │ │告警通知 │ │ │ └─────────────┘ │ │ └──────────────┘ │ │ └─────────────┘ │ └────────────────┘ └──────────────────┘ └─────────────────┘ ``` #### 架构特点 1. **分层解耦**: 严格的分层架构,每层职责明确 2. **模块化设计**: 按业务领域划分模块,便于维护和扩展 3. **多技术栈集成**: 集成区块链、缓存、监控等多种技术 4. **横向扩展**: 支持微服务化改造和水平扩展 5. **安全优先**: 在每一层都集成安全控制和数据保护 ### 模块架构 系统将作为新的业务模块集成到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)`: 调用第三方API - `handleCallback(callbackData, source)`: 处理回调 - `transformData(data, sourceFormat, targetFormat)`: 数据转换 - `registerWebhook(webhookConfig)`: 注册Webhook - `retryFailedIntegration(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) ```java 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) ```java 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) ```java 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) ```java 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) ```java 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) - **密钥管理**: 采用密钥轮换机制,定期更新加密密钥 #### 加密实现 ```java // 敏感字段加密注解 @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运行时应用自我保护 #### 数据脱敏规则 ```java // 银行账户脱敏: 1234****5678 // 金额脱敏: ****万元 // 身份证脱敏: 3301**********1234 ``` #### 防泄露措施 - **水印标记**: 在导出文档中嵌入用户水印 - **下载限制**: 限制敏感数据的批量下载 - **屏幕截图防护**: 在敏感页面禁用截图和打印 - **网络隔离**: 敏感数据处理在内网环境中进行 - **DLP防护**: 部署数据丢失防护系统,监控数据外传 - **USB管控**: 禁用或限制USB设备访问 - **邮件监控**: 监控包含敏感数据的邮件发送 ### 区块链隐私保护 #### 链上数据最小化 - **哈希存储**: 仅将数据哈希值存储在区块链上 - **零知识证明**: 使用zk-SNARKs验证数据完整性而不暴露原始数据 - **私有链**: 采用联盟链架构,限制节点访问权限 #### 隐私计算 - **同态加密**: 支持在加密状态下进行数据计算 - **安全多方计算**: 多方协作验证而不泄露各方数据 - **差分隐私**: 在数据统计分析中保护个体隐私 - **联邦学习**: 在不共享原始数据的情况下进行模型训练 #### 智能合约安全 - **合约审计**: 智能合约部署前进行安全审计 - **权限控制**: 实施细粒度的合约权限管理 - **升级机制**: 支持安全的合约升级和回滚 - **Gas优化**: 防止Gas耗尽攻击和重入攻击 - **Oracle安全**: 确保外部数据源的可信性 ## 错误处理 ### 异常分类 1. **业务异常**: 合同状态不符、债权验证失败、资金不足等 2. **系统异常**: 数据库连接失败、区块链网络异常、第三方服务不可用等 3. **安全异常**: 身份认证失败、权限不足、数据篡改检测、加密解密失败、登录失败超限等 4. **隐私异常**: 数据泄露检测、非授权访问、敏感数据暴露、数据清理失败等 ### 错误处理策略 - **统一异常处理**: 使用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次尝试后仍然失败,必须解释问题并寻求指导