Compare commits

...

2 Commits
main ... dev

490 changed files with 27959 additions and 19083 deletions

View File

@ -0,0 +1,856 @@
# 数字债权服务系统设计文档
## 概述
数字债权服务系统是基于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次尝试后仍然失败必须解释问题并寻求指导

View File

@ -0,0 +1,89 @@
# 数字债权服务系统需求文档
## 简介
数字债权服务系统是一个基于区块链技术的安保服务债权管理平台,旨在为安保公司提供服务确权、融资申请和到期结算的完整解决方案。系统通过三个核心阶段实现服务合同的数字化管理和债权流转。
## 术语表
- **安信平台**: 数字债权服务管理平台
- **甲方单位**: 购买安保服务的客户方
- **安保公司**: 提供安保服务的服务方
- **数字债权凭证**: 基于区块链技术生成的不可篡改债权证明
- **金融机构**: 提供融资服务的银行或其他金融服务机构
- **资金监管账户**: 专门用于资金托管和分配的银行账户
- **智能合约**: 自动执行合约条款的区块链程序
## 需求
### 需求 1
**用户故事:** 作为安保公司,我希望能够在平台上提交服务合同并获得甲方确认,以便生成可信的数字债权凭证。
#### 验收标准
1. 安保公司提交服务合同和服务内容后,系统必须创建合同记录并通知甲方单位进行确认
2. 甲方单位确认交易意向后,系统必须更新合同状态为"已确认"并记录确认时间
3. 服务完成且甲方确认服务履行情况后,系统必须自动生成应收账款债权记录
4. 债权记录生成后,系统必须创建包含合同详情、金额、到期日的数字债权凭证
5. 数字债权凭证创建后,系统必须利用区块链技术确保凭证数据不可篡改
### 需求 2
**用户故事:** 作为安保公司,我希望能够使用数字债权凭证向金融机构申请融资,以便获得资金支持。
#### 验收标准
1. 安保公司提交融资申请后,系统必须验证数字债权凭证的有效性和完整性
2. 金融机构通过API接口请求债权数据时系统必须提供链上相关数据用于信用评估
3. 金融机构审批通过融资申请后,系统必须记录审批结果并创建融资合约
4. 融资资金到账后,系统必须将资金存入指定的资金监管账户
5. 资金进入监管账户后,系统必须通过智能合约实现定向支付并优先保障安保人员薪资
### 需求 3
**用户故事:** 作为甲方单位,我希望系统能够在合同到期时自动提醒付款并处理资金分配,以便确保债务按时清偿。
#### 验收标准
1. 合同付款日临近时,系统必须自动发送付款提醒给甲方单位
2. 甲方单位支付款项到资金监管专户后,系统必须确认收款并触发智能合约
3. 智能合约启动资金分配程序后,系统必须首先偿还金融机构贷款本金和利息
4. 贷款偿还完成且有剩余资金时,系统必须将剩余资金转至安保公司账户
5. 所有债务结清后,系统必须更新数字债权凭证状态为"已结清"
### 需求 4
**用户故事:** 作为系统管理员,我希望能够监控和管理整个债权流转过程,以便确保系统安全稳定运行。
#### 验收标准
1. 系统处理任何债权相关操作时,必须记录详细的操作日志和审计轨迹
2. 发生异常情况时,系统必须立即发送告警通知给相关管理人员
3. 管理员查询债权状态时,系统必须提供实时的债权流转状态和历史记录
4. 系统进行数据备份时,必须确保区块链数据和业务数据的一致性
5. 执行系统维护时,系统必须在不影响核心业务的情况下进行升级和维护
### 需求 5
**用户故事:** 作为金融机构我希望能够通过标准化API接口获取债权信息并进行风险评估以便做出准确的放贷决策。
#### 验收标准
1. 金融机构请求债权信息时系统必须通过RESTful API提供标准化的数据接口
2. API调用包含有效的认证信息时系统必须验证调用方身份并授权数据访问
3. 返回债权数据时,系统必须包含合同金额、信用历史、还款能力等风险评估要素
4. 金融机构提交审批结果时,系统必须接收并记录审批决定和相关条件
5. 数据传输过程中,系统必须使用加密协议确保数据传输安全
### 需求 6
**用户故事:** 作为安保公司财务人员,我希望能够实时查看债权状态和资金流向,以便进行财务规划和管理。
#### 验收标准
1. 财务人员登录系统后,系统必须显示当前所有债权的状态概览
2. 查询特定债权详情时,系统必须提供包含创建时间、金额、状态变更历史的完整信息
3. 资金发生流转时,系统必须实时更新资金流向记录并发送通知
4. 生成财务报表时,系统必须提供债权统计、收益分析等财务数据
5. 导出数据时系统必须支持Excel、PDF等格式的数据导出功能

View File

@ -0,0 +1,370 @@
# 数字债权服务系统实施计划
## 实施概述
将需求和设计转换为一系列代码生成任务,每个任务都基于前一个任务构建,最终完成完整的数字债权服务系统集成。重点关注编写、修改或测试代码的任务。
## 任务列表
- [x] 1. 项目结构搭建和基础配置
- 在RuoYi框架基础上创建9个新模块ruoyi-credit、ruoyi-blockchain、ruoyi-payment、ruoyi-security、ruoyi-notification、ruoyi-analytics、ruoyi-workflow、ruoyi-integration、ruoyi-monitor
- 配置Maven依赖包括区块链集成、加密库、jqwik测试框架、缓存组件
- 设置数据库连接和基础配置文件配置Redis缓存
- 创建32个数据库表的DDL脚本
- _需求: 1.1, 2.1, 3.1_
- [x] 2. 数据模型和实体类实现
- [x] 2.1 创建核心实体类和数据库表结构
- 实现所有32个数据库表对应的实体类包括ServiceContract、DigitalCredit、FinancingApplication等
- 添加@EncryptedField注解到敏感字段实现AES-256-GCM加密
- 创建对应的数据库表、索引和外键约束
- 实现数据验证注解和业务规则检查
- _需求: 1.1, 1.4, 2.1_
- [x] 2.2 编写实体类属性测试
- **属性 4: 债权凭证完整性**
- **验证需求: 1.4**
- [x] 2.3 实现数据访问层(Mapper)
- 创建32个实体类对应的MyBatis Mapper接口和XML文件
- 实现基础CRUD操作、复杂查询、分页查询、统计查询
- 添加数据加密解密的自动处理逻辑
- 实现跨模块的关联查询和数据同步
- _需求: 1.1, 1.2, 1.3_
- [x] 2.4 编写数据访问层属性测试
- **属性 1: 合同创建完整性**
- **验证需求: 1.1**
- [ ] 3. 安全管理组件实现
- [ ] 3.1 实现数据加密解密服务
- 创建SecurityManager组件的EncryptionService
- 实现AES-256-GCM加密算法和密钥管理
- 添加密钥轮换机制和HSM硬件安全模块集成
- 实现字段级加密的自动处理和透明解密
- 添加加密性能监控和密钥安全审计
- _需求: 1.5, 2.1, 5.5_
- [ ] 3.2 编写加密服务属性测试
- **属性 5: 区块链不可篡改性**
- **验证需求: 1.5**
- [ ] 3.3 实现身份认证和权限管理
- 扩展RuoYi的认证机制实现MFA多因素认证短信、邮箱、TOTP、生物识别
- 实现细粒度权限控制,支持字段级权限和数据脱敏
- 添加登录失败处理、账户锁定、数据清理机制
- 实现异常登录检测、IP白名单、设备指纹识别
- 添加会话管理、强制登出、并发登录控制
- _需求: 4.1, 5.2, 6.1_
- [ ] 3.4 编写认证授权属性测试
- **属性 21: 身份认证验证**
- **验证需求: 5.2**
- [ ] 4. 合同管理服务实现
- [ ] 4.1 实现合同创建和确认服务
- 创建ContractService处理合同生命周期
- 实现合同创建、确认、状态更新功能
- 添加合同数据验证和业务规则检查
- _需求: 1.1, 1.2_
- [ ] 4.2 编写合同管理属性测试
- **属性 2: 合同状态一致性**
- **验证需求: 1.2**
- [ ] 4.3 实现债权生成服务
- 创建CreditService处理数字债权凭证
- 实现从合同到债权的自动转换
- 添加债权验证和状态管理
- _需求: 1.3, 1.4, 2.1_
- [ ] 4.4 编写债权生成属性测试
- **属性 3: 债权生成触发**
- **验证需求: 1.3**
- [ ] 5. 区块链集成实现
- [ ] 5.1 实现区块链连接和数据上链
- 创建BlockchainIntegrator组件处理链上操作
- 实现联盟链连接、数据哈希计算和上链存储
- 添加链上数据验证、查询功能和事件监控
- 实现零知识证明和同态加密的隐私保护
- 添加区块链网络监控和异常恢复机制
- _需求: 1.5, 2.2_
- [ ] 5.2 编写区块链集成属性测试
- **属性 6: 债权验证准确性**
- **验证需求: 2.1**
- [ ] 5.3 实现智能合约集成
- 实现智能合约部署、执行和升级机制
- 实现资金分配和支付优先级的智能合约逻辑
- 添加合约安全审计、权限控制和Gas优化
- 实现Oracle数据源集成和外部数据验证
- 添加合约执行监控、异常处理和回滚机制
- _需求: 2.5, 3.2, 3.3_
- [ ] 5.4 编写智能合约属性测试
- **属性 10: 智能合约执行优先级**
- **验证需求: 2.5**
- [ ] 6. 融资管理服务实现
- [ ] 6.1 实现融资申请和审批服务
- 创建FinancingService处理融资流程
- 实现申请提交、审批处理、结果记录
- 添加风险评估和信用检查
- _需求: 2.1, 2.3, 2.4_
- [ ] 6.2 编写融资管理属性测试
- **属性 8: 审批结果记录**
- **验证需求: 2.3**
- [ ] 6.3 实现资金监管账户管理
- 创建EscrowAccountService处理资金托管
- 实现资金存入、分配、转账功能
- 添加账户状态监控和资金流向跟踪
- _需求: 2.4, 2.5, 3.4_
- [ ] 6.4 编写资金管理属性测试
- **属性 9: 资金监管存储**
- **验证需求: 2.4**
- [ ] 7. 支付结算服务实现
- [ ] 7.1 实现支付处理和确认服务
- 创建PaymentService处理支付流程
- 实现收款确认、智能合约触发
- 添加支付状态跟踪和异常处理
- _需求: 3.1, 3.2_
- [ ] 7.2 编写支付处理属性测试
- **属性 12: 收款确认触发**
- **验证需求: 3.2**
- [ ] 7.3 实现资金分配和结算服务
- 实现贷款偿还优先级逻辑
- 添加剩余资金分配和债权状态更新
- 实现完整的结算流程自动化
- _需求: 3.3, 3.4, 3.5_
- [ ] 7.4 编写资金分配属性测试
- **属性 13: 资金分配优先级**
- **验证需求: 3.3**
- [ ] 7.5 编写剩余资金处理属性测试
- **属性 14: 剩余资金处理**
- **验证需求: 3.4**
- [ ] 8. 通知和提醒服务实现
- [ ] 8.1 实现通知服务和消息推送
- 创建NotificationService组件处理各类通知
- 实现多渠道消息推送邮件、短信、微信、系统消息、APP推送
- 添加消息模板管理、个性化配置和批量发送
- 实现消息投递状态跟踪和失败重试机制
- 添加消息优先级管理和流量控制
- _需求: 1.1, 3.1, 4.2_
- [ ] 8.2 编写通知服务属性测试
- **属性 11: 付款提醒及时性**
- **验证需求: 3.1**
- [ ] 8.3 实现定时任务和提醒机制
- 集成RuoYi的定时任务框架
- 实现合同到期提醒、状态检查等定时任务
- 添加任务调度和执行监控
- _需求: 3.1, 4.3_
- [ ] 8.4 编写定时任务属性测试
- **属性 17: 异常告警及时性**
- **验证需求: 4.2**
- [ ] 9. API接口层实现
- [ ] 9.1 实现RESTful API控制器
- 创建各业务模块的Controller类
- 实现标准化的API接口和响应格式
- 添加API文档和Swagger集成
- _需求: 5.1, 5.3, 6.2_
- [ ] 9.2 编写API接口属性测试
- **属性 20: API标准化响应**
- **验证需求: 5.1**
- [ ] 9.3 实现API安全和限流机制
- 添加API认证、签名验证、IP白名单
- 实现API限流和防护机制
- 添加API调用监控和日志记录
- _需求: 5.2, 5.4, 5.5_
- [ ] 9.4 编写API安全属性测试
- **属性 24: 数据传输安全性**
- **验证需求: 5.5**
- [ ] 10. 报表和数据分析实现
- [ ] 10.1 实现财务报表生成服务
- 创建ReportAnalyzer组件处理报表生成和数据分析
- 实现债权统计、收益分析、风险评估等多维度财务报表
- 添加报表定时生成、多格式导出Excel、PDF、Word功能
- 实现数据可视化图表和交互式仪表板
- 添加趋势预测和智能分析功能
- _需求: 6.4, 6.5_
- [ ] 10.2 编写报表生成属性测试
- **属性 27: 财务报表数据完整性**
- **验证需求: 6.4**
- [ ] 10.3 实现数据查询和展示服务
- 实现债权状态查询、历史记录查看
- 添加实时数据更新和通知机制
- 实现用户个性化仪表板
- _需求: 4.3, 6.1, 6.2, 6.3_
- [ ] 10.4 编写数据查询属性测试
- **属性 18: 查询数据实时性**
- **验证需求: 4.3**
- [ ] 10.5 编写数据导出属性测试
- **属性 28: 数据导出格式支持**
- **验证需求: 6.5**
- [ ] 11. 系统监控和日志实现
- [ ] 11.1 实现审计日志和操作记录
- 扩展RuoYi的日志框架
- 实现详细的操作审计和数据变更记录
- 添加日志查询和分析功能
- _需求: 4.1, 4.4_
- [ ] 11.2 编写审计日志属性测试
- **属性 16: 操作日志完整性**
- **验证需求: 4.1**
- [ ] 11.3 实现系统监控和告警机制
- 添加系统性能监控和健康检查
- 实现异常检测和自动告警
- 集成监控仪表板和报警通知
- _需求: 4.2, 4.5_
- [ ] 11.4 编写系统监控属性测试
- **属性 19: 数据备份一致性**
- **验证需求: 4.4**
- [ ] 11.5 实现工作流引擎服务
- 创建WorkflowEngine组件处理业务流程自动化
- 实现工作流定义、实例管理、任务分配和审批
- 添加流程监控、异常处理和回滚机制
- 集成业务规则引擎和决策表
- _需求: 2.3, 3.1, 4.1_
- [ ] 11.6 实现集成适配服务
- 创建IntegrationAdapter组件处理外部系统集成
- 实现金融机构API、支付网关、第三方服务的适配
- 添加数据转换、格式映射和协议适配
- 实现Webhook管理和回调处理
- 添加集成监控和健康检查
- _需求: 2.2, 5.1, 5.4_
- [ ] 11.7 实现缓存管理服务
- 创建CacheManager组件处理系统缓存
- 实现Redis分布式缓存和本地缓存策略
- 添加缓存预加载、失效管理和性能监控
- 实现缓存一致性保证和数据同步
- _需求: 4.3, 6.2, 6.3_
- [ ] 11.8 实现数据管理服务
- 创建DataManager组件处理数据生命周期
- 实现数据备份、恢复、归档和清理
- 添加数据质量监控和完整性验证
- 实现跨节点数据同步和一致性保证
- _需求: 4.4, 4.5_
- [ ] 12. 前端界面集成
- [ ] 12.1 实现债权管理前端页面
- 基于RuoYi-Vue3创建债权管理界面
- 实现合同创建、确认、债权查看等页面
- 添加数据脱敏和权限控制
- _需求: 1.1, 1.2, 6.1, 6.2_
- [ ] 12.2 实现融资管理前端页面
- 创建融资申请、审批、资金管理界面
- 实现实时状态更新和进度跟踪
- 添加风险评估和数据可视化
- _需求: 2.1, 2.3, 6.3_
- [ ] 12.3 实现财务报表和仪表板
- 创建财务数据展示和报表界面
- 实现数据导出和打印功能
- 添加交互式图表和数据钻取
- _需求: 6.4, 6.5_
- [ ] 12.4 实现系统管理和监控界面
- 创建系统监控、日志查看、用户管理界面
- 实现安全事件监控和告警管理界面
- 添加工作流管理和任务审批界面
- 实现系统配置和参数管理界面
- _需求: 4.1, 4.2, 4.3_
- [ ] 13. 集成测试和系统测试
- [ ] 13.1 实现端到端集成测试
- 编写完整业务流程的集成测试
- 测试三个核心阶段的完整流转
- 验证数据一致性和业务规则
- _需求: 1.1-1.5, 2.1-2.5, 3.1-3.5_
- [ ] 13.2 编写系统级属性测试
- **属性 25: 债权查询完整性**
- **验证需求: 6.2**
- [ ] 13.3 编写资金流转属性测试
- **属性 26: 资金流转实时更新**
- **验证需求: 6.3**
- [ ] 13.4 实现性能测试和压力测试
- 测试系统在高并发下的性能表现
- 验证数据库查询和API响应性能
- 测试区块链集成的稳定性
- _需求: 4.5, 5.1_
- [ ] 14. 部署配置和上线准备
- [ ] 14.1 配置生产环境部署
- 配置生产数据库和区块链网络连接
- 设置安全证书和加密密钥
- 配置负载均衡和高可用架构
- _需求: 4.4, 4.5, 5.5_
- [ ] 14.2 实现数据迁移和初始化
- 编写32个数据库表的初始化脚本和索引
- 实现现有数据的迁移和转换,包括数据加密处理
- 添加系统配置、基础数据、权限数据的导入
- 实现数据迁移的回滚和验证机制
- _需求: 4.4_
- [ ] 14.3 实现安全加固和合规配置
- 配置WAF防火墙、DDoS防护、IDS/IPS系统
- 实施SSL/TLS加密、API安全、网络隔离
- 配置安全监控、威胁检测、事件响应
- 实现等保合规、ISO27001认证要求
- 添加安全审计和渗透测试
- _需求: 4.2, 5.5_
- [ ] 15. 最终检查点 - 确保所有测试通过
- 确保所有测试通过,如有问题请咨询用户

4
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,4 @@
{
"java.compile.nullAnalysis.mode": "automatic",
"java.configuration.updateBuildConfiguration": "interactive"
}

View File

@ -0,0 +1,8 @@
# 页面标题
VITE_APP_TITLE = 若依管理系统
# 开发环境配置
VITE_APP_ENV = 'development'
# 若依管理系统/开发环境
VITE_APP_BASE_API = '/dev-api'

View File

@ -0,0 +1,11 @@
# 页面标题
VITE_APP_TITLE = 若依管理系统
# 生产环境配置
VITE_APP_ENV = 'production'
# 若依管理系统/生产环境
VITE_APP_BASE_API = '/prod-api'
# 是否在打包时开启压缩,支持 gzip 和 brotli
VITE_BUILD_COMPRESS = gzip

11
RuoYi-Vue3/.env.staging Normal file
View File

@ -0,0 +1,11 @@
# 页面标题
VITE_APP_TITLE = 若依管理系统
# 生产环境配置
VITE_APP_ENV = 'staging'
# 若依管理系统/生产环境
VITE_APP_BASE_API = '/stage-api'
# 是否在打包时开启压缩,支持 gzip 和 brotli
VITE_BUILD_COMPRESS = gzip

1
RuoYi-Vue3/.github/FUNDING.yml vendored Normal file
View File

@ -0,0 +1 @@
custom: http://doc.ruoyi.vip/ruoyi-vue/other/donate.html

20
RuoYi-Vue3/LICENSE Normal file
View File

@ -0,0 +1,20 @@
The MIT License (MIT)
Copyright (c) 2018 RuoYi
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

108
RuoYi-Vue3/README.md Normal file
View File

@ -0,0 +1,108 @@
<p align="center">
<img alt="logo" src="https://oscimg.oschina.net/oscnet/up-d3d0a9303e11d522a06cd263f3079027715.png">
</p>
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">RuoYi v3.9.0</h1>
<h4 align="center">基于SpringBoot+Vue3前后端分离的Java快速开发框架</h4>
<p align="center">
<a href="https://gitee.com/y_project/RuoYi-Vue/stargazers"><img src="https://gitee.com/y_project/RuoYi-Vue/badge/star.svg?theme=dark"></a>
<a href="https://gitee.com/y_project/RuoYi-Vue"><img src="https://img.shields.io/badge/RuoYi-v3.9.0-brightgreen.svg"></a>
<a href="https://gitee.com/y_project/RuoYi-Vue/blob/master/LICENSE"><img src="https://img.shields.io/github/license/mashape/apistatus.svg"></a>
</p>
## 平台简介
* 本仓库为前端技术栈 [Vue3](https://v3.cn.vuejs.org) + [Element Plus](https://element-plus.org/zh-CN) + [Vite](https://cn.vitejs.dev) 版本。
* 配套后端代码仓库地址[RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue) 或 [RuoYi-Vue-fast](https://gitcode.com/yangzongzhuan/RuoYi-Vue-fast) 版本。
* 前端技术栈([Vue2](https://cn.vuejs.org) + [Element](https://github.com/ElemeFE/element) + [Vue CLI](https://cli.vuejs.org/zh)),请移步[RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue/tree/master/ruoyi-ui)。
* 阿里云折扣场:[点我进入](http://aly.ruoyi.vip),腾讯云秒杀场:[点我进入](http://txy.ruoyi.vip)&nbsp;&nbsp;
## 前端运行
```bash
# 克隆项目
git clone https://github.com/yangzongzhuan/RuoYi-Vue3.git
# 进入项目目录
cd RuoYi-Vue3
# 安装依赖
yarn --registry=https://registry.npmmirror.com
# 启动服务
yarn dev
# 构建测试环境 yarn build:stage
# 构建生产环境 yarn build:prod
# 前端访问地址 http://localhost:80
```
## 内置功能
1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
3. 岗位管理:配置系统用户所属担任职务。
4. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
5. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
6. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
7. 参数管理:对系统动态配置常用参数。
8. 通知公告:系统通知公告信息发布维护。
9. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
10. 登录日志:系统登录日志记录查询包含登录异常。
11. 在线用户:当前系统中活跃用户状态监控。
12. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。
13. 代码生成前后端代码的生成java、html、xml、sql支持CRUD下载 。
14. 系统接口根据业务代码自动生成相关的api接口文档。
15. 服务监控监视当前系统CPU、内存、磁盘、堆栈等相关信息。
16. 缓存监控:对系统的缓存信息查询,命令统计等。
17. 在线构建器拖动表单元素生成相应的HTML代码。
18. 连接池监视监视当前系统数据库连接池状态可进行分析SQL找出系统性能瓶颈。
## 在线体验
- admin/admin123
- 陆陆续续收到一些打赏,为了更好的体验已用于演示服务器升级。谢谢各位小伙伴。
演示地址http://vue.ruoyi.vip
文档地址http://doc.ruoyi.vip
## 演示图
<table>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/cd1f90be5f2684f4560c9519c0f2a232ee8.jpg"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/1cbcf0e6f257c7d3a063c0e3f2ff989e4b3.jpg"/></td>
</tr>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/up-8074972883b5ba0622e13246738ebba237a.png"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/up-9f88719cdfca9af2e58b352a20e23d43b12.png"/></td>
</tr>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/up-39bf2584ec3a529b0d5a3b70d15c9b37646.png"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/up-936ec82d1f4872e1bc980927654b6007307.png"/></td>
</tr>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/up-b2d62ceb95d2dd9b3fbe157bb70d26001e9.png"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/up-d67451d308b7a79ad6819723396f7c3d77a.png"/></td>
</tr>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/5e8c387724954459291aafd5eb52b456f53.jpg"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/644e78da53c2e92a95dfda4f76e6d117c4b.jpg"/></td>
</tr>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/up-8370a0d02977eebf6dbf854c8450293c937.png"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/up-49003ed83f60f633e7153609a53a2b644f7.png"/></td>
</tr>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/up-d4fe726319ece268d4746602c39cffc0621.png"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/up-c195234bbcd30be6927f037a6755e6ab69c.png"/></td>
</tr>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/b6115bc8c31de52951982e509930b20684a.jpg"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/up-5e4daac0bb59612c5038448acbcef235e3a.png"/></td>
</tr>
</table>
## 若依前后端分离交流群
QQ群 [![加入QQ群](https://img.shields.io/badge/已满-937441-blue.svg)](https://jq.qq.com/?_wv=1027&k=5bVB1og) [![加入QQ群](https://img.shields.io/badge/已满-887144332-blue.svg)](https://jq.qq.com/?_wv=1027&k=5eiA4DH) [![加入QQ群](https://img.shields.io/badge/已满-180251782-blue.svg)](https://jq.qq.com/?_wv=1027&k=5AxMKlC) [![加入QQ群](https://img.shields.io/badge/已满-104180207-blue.svg)](https://jq.qq.com/?_wv=1027&k=51G72yr) [![加入QQ群](https://img.shields.io/badge/已满-186866453-blue.svg)](https://jq.qq.com/?_wv=1027&k=VvjN2nvu) [![加入QQ群](https://img.shields.io/badge/已满-201396349-blue.svg)](https://jq.qq.com/?_wv=1027&k=5vYAqA05) [![加入QQ群](https://img.shields.io/badge/已满-101456076-blue.svg)](https://jq.qq.com/?_wv=1027&k=kOIINEb5) [![加入QQ群](https://img.shields.io/badge/已满-101539465-blue.svg)](https://jq.qq.com/?_wv=1027&k=UKtX5jhs) [![加入QQ群](https://img.shields.io/badge/已满-264312783-blue.svg)](https://jq.qq.com/?_wv=1027&k=EI9an8lJ) [![加入QQ群](https://img.shields.io/badge/已满-167385320-blue.svg)](https://jq.qq.com/?_wv=1027&k=SWCtLnMz) [![加入QQ群](https://img.shields.io/badge/已满-104748341-blue.svg)](https://jq.qq.com/?_wv=1027&k=96Dkdq0k) [![加入QQ群](https://img.shields.io/badge/已满-160110482-blue.svg)](https://jq.qq.com/?_wv=1027&k=0fsNiYZt) [![加入QQ群](https://img.shields.io/badge/已满-170801498-blue.svg)](https://jq.qq.com/?_wv=1027&k=7xw4xUG1) [![加入QQ群](https://img.shields.io/badge/已满-108482800-blue.svg)](https://jq.qq.com/?_wv=1027&k=eCx8eyoJ) [![加入QQ群](https://img.shields.io/badge/已满-101046199-blue.svg)](https://jq.qq.com/?_wv=1027&k=SpyH2875) [![加入QQ群](https://img.shields.io/badge/已满-136919097-blue.svg)](https://jq.qq.com/?_wv=1027&k=tKEt51dz) [![加入QQ群](https://img.shields.io/badge/已满-143961921-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=0vBbSb0ztbBgVtn3kJS-Q4HUNYwip89G&authKey=8irq5PhutrZmWIvsUsklBxhj57l%2F1nOZqjzigkXZVoZE451GG4JHPOqW7AW6cf0T&noverify=0&group_code=143961921) [![加入QQ群](https://img.shields.io/badge/已满-174951577-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=ZFAPAbp09S2ltvwrJzp7wGlbopsc0rwi&authKey=HB2cxpxP2yspk%2Bo3WKTBfktRCccVkU26cgi5B16u0KcAYrVu7sBaE7XSEqmMdFQp&noverify=0&group_code=174951577) [![加入QQ群](https://img.shields.io/badge/已满-161281055-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=Fn2aF5IHpwsy8j6VlalNJK6qbwFLFHat&authKey=uyIT%2B97x2AXj3odyXpsSpVaPMC%2Bidw0LxG5MAtEqlrcBcWJUA%2FeS43rsF1Tg7IRJ&noverify=0&group_code=161281055) [![加入QQ群](https://img.shields.io/badge/已满-138988063-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=XIzkm_mV2xTsUtFxo63bmicYoDBA6Ifm&authKey=dDW%2F4qsmw3x9govoZY9w%2FoWAoC4wbHqGal%2BbqLzoS6VBarU8EBptIgPKN%2FviyC8j&noverify=0&group_code=138988063) [![加入QQ群](https://img.shields.io/badge/已满-151450850-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=DkugnCg68PevlycJSKSwjhFqfIgrWWwR&authKey=pR1Pa5lPIeGF%2FFtIk6d%2FGB5qFi0EdvyErtpQXULzo03zbhopBHLWcuqdpwY241R%2F&noverify=0&group_code=151450850) [![加入QQ群](https://img.shields.io/badge/已满-224622315-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=F58bgRa-Dp-rsQJThiJqIYv8t4-lWfXh&authKey=UmUs4CVG5OPA1whvsa4uSespOvyd8%2FAr9olEGaWAfdLmfKQk%2FVBp2YU3u2xXXt76&noverify=0&group_code=224622315) [![加入QQ群](https://img.shields.io/badge/已满-287842588-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=Nxb2EQ5qozWa218Wbs7zgBnjLSNk_tVT&authKey=obBKXj6SBKgrFTJZx0AqQnIYbNOvBB2kmgwWvGhzxR67RoRr84%2Bus5OadzMcdJl5&noverify=0&group_code=287842588) [![加入QQ群](https://img.shields.io/badge/已满-187944233-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=numtK1M_I4eVd2Gvg8qtbuL8JgX42qNh&authKey=giV9XWMaFZTY%2FqPlmWbkB9g3fi0Ev5CwEtT9Tgei0oUlFFCQLDp4ozWRiVIzubIm&noverify=0&group_code=187944233) [![加入QQ群](https://img.shields.io/badge/已满-228578329-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=G6r5KGCaa3pqdbUSXNIgYloyb8e0_L0D&authKey=4w8tF1eGW7%2FedWn%2FHAypQksdrML%2BDHolQSx7094Agm7Luakj9EbfPnSTxSi2T1LQ&noverify=0&group_code=228578329) [![加入QQ群](https://img.shields.io/badge/已满-191164766-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=GsOo-OLz53J8y_9TPoO6XXSGNRTgbFxA&authKey=R7Uy%2Feq%2BZsoKNqHvRKhiXpypW7DAogoWapOawUGHokJSBIBIre2%2FoiAZeZBSLuBc&noverify=0&group_code=191164766) [![加入QQ群](https://img.shields.io/badge/174569686-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=PmYavuzsOthVqfdAPbo4uAeIbu7Ttjgc&authKey=p52l8%2FXa4PS1JcEmS3VccKSwOPJUZ1ZfQ69MEKzbrooNUljRtlKjvsXf04bxNp3G&noverify=0&group_code=174569686) 点击按钮入群。

View File

@ -7,6 +7,6 @@ echo.
cd %~dp0
cd ..
npm run build:prod
yarn build:prod
pause

View File

@ -7,6 +7,6 @@ echo.
cd %~dp0
cd ..
npm install --registry=https://registry.npmmirror.com
yarn --registry=https://registry.npmmirror.com
pause

View File

@ -0,0 +1,12 @@
@echo off
echo.
echo [信息] 使用 Vite 命令运行 Web 工程。
echo.
%~d0
cd %~dp0
cd ..
yarn dev
pause

View File

@ -1,14 +1,15 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="renderer" content="webkit">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= webpackConfig.name %></title>
<!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
<style>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="renderer" content="webkit">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="icon" href="/favicon.ico">
<title>%VITE_APP_TITLE%</title>
<!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
<style>
html,
body,
#app {
@ -16,6 +17,7 @@
margin: 0px;
padding: 0px;
}
.chromeframe {
margin: 0.2em 0;
background: #ccc;
@ -92,6 +94,7 @@
-ms-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
-ms-transform: rotate(360deg);
@ -105,6 +108,7 @@
-ms-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
-ms-transform: rotate(360deg);
@ -194,15 +198,18 @@
opacity: 0.5;
}
</style>
</head>
<body>
<div id="app">
<div id="loader-wrapper">
<div id="loader"></div>
<div class="loader-section section-left"></div>
<div class="loader-section section-right"></div>
<div class="load_title">正在加载系统资源,请耐心等待</div>
</div>
</div>
</body>
</head>
<body>
<div id="app">
<div id="loader-wrapper">
<div id="loader"></div>
<div class="loader-section section-left"></div>
<div class="loader-section section-right"></div>
<div class="load_title">正在加载系统资源,请耐心等待</div>
</div>
</div>
<script type="module" src="/src/main.js"></script>
</body>
</html>

51
RuoYi-Vue3/package.json Normal file
View File

@ -0,0 +1,51 @@
{
"name": "ruoyi",
"version": "3.9.0",
"description": "若依管理系统",
"author": "若依",
"license": "MIT",
"type": "module",
"scripts": {
"dev": "vite",
"build:prod": "vite build",
"build:stage": "vite build --mode staging",
"preview": "vite preview"
},
"repository": {
"type": "git",
"url": "https://gitee.com/y_project/RuoYi-Vue.git"
},
"dependencies": {
"@element-plus/icons-vue": "2.3.1",
"@vueup/vue-quill": "1.2.0",
"@vueuse/core": "13.3.0",
"axios": "1.9.0",
"clipboard": "2.0.11",
"echarts": "5.6.0",
"element-plus": "2.10.7",
"file-saver": "2.0.5",
"fuse.js": "6.6.2",
"js-beautify": "1.14.11",
"js-cookie": "3.0.5",
"jsencrypt": "3.3.2",
"nprogress": "0.2.0",
"pinia": "3.0.2",
"splitpanes": "4.0.4",
"vue": "3.5.16",
"vue-cropper": "1.1.1",
"vue-router": "4.5.1",
"vuedraggable": "4.1.0"
},
"devDependencies": {
"@vitejs/plugin-vue": "5.2.4",
"sass-embedded": "1.89.1",
"unplugin-auto-import": "0.18.6",
"unplugin-vue-setup-extend-plus": "1.0.1",
"vite": "6.3.5",
"vite-plugin-compression": "0.5.1",
"vite-plugin-svg-icons": "2.0.1"
},
"overrides": {
"quill": "2.0.2"
}
}

View File

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

15
RuoYi-Vue3/src/App.vue Normal file
View File

@ -0,0 +1,15 @@
<template>
<router-view />
</template>
<script setup>
import useSettingsStore from '@/store/modules/settings'
import { handleThemeStyle } from '@/utils/theme'
onMounted(() => {
nextTick(() => {
//
handleThemeStyle(useSettingsStore().theme)
})
})
</script>

View File

Before

Width:  |  Height:  |  Size: 160 KiB

After

Width:  |  Height:  |  Size: 160 KiB

View File

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 96 KiB

View File

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 954 B

After

Width:  |  Height:  |  Size: 954 B

View File

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

Before

Width:  |  Height:  |  Size: 179 B

After

Width:  |  Height:  |  Size: 179 B

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 971 B

After

Width:  |  Height:  |  Size: 971 B

View File

Before

Width:  |  Height:  |  Size: 717 B

After

Width:  |  Height:  |  Size: 717 B

View File

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

Before

Width:  |  Height:  |  Size: 418 B

After

Width:  |  Height:  |  Size: 418 B

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

Before

Width:  |  Height:  |  Size: 356 B

After

Width:  |  Height:  |  Size: 356 B

View File

Before

Width:  |  Height:  |  Size: 724 B

After

Width:  |  Height:  |  Size: 724 B

View File

Before

Width:  |  Height:  |  Size: 818 B

After

Width:  |  Height:  |  Size: 818 B

View File

Before

Width:  |  Height:  |  Size: 627 B

After

Width:  |  Height:  |  Size: 627 B

View File

Before

Width:  |  Height:  |  Size: 347 B

After

Width:  |  Height:  |  Size: 347 B

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 497 B

After

Width:  |  Height:  |  Size: 497 B

View File

Before

Width:  |  Height:  |  Size: 459 B

After

Width:  |  Height:  |  Size: 459 B

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 944 B

After

Width:  |  Height:  |  Size: 944 B

View File

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

Before

Width:  |  Height:  |  Size: 421 B

After

Width:  |  Height:  |  Size: 421 B

View File

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

Before

Width:  |  Height:  |  Size: 320 B

After

Width:  |  Height:  |  Size: 320 B

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 744 B

After

Width:  |  Height:  |  Size: 744 B

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 285 B

After

Width:  |  Height:  |  Size: 285 B

View File

Before

Width:  |  Height:  |  Size: 1017 B

After

Width:  |  Height:  |  Size: 1017 B

View File

Before

Width:  |  Height:  |  Size: 444 B

After

Width:  |  Height:  |  Size: 444 B

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

Before

Width:  |  Height:  |  Size: 669 B

After

Width:  |  Height:  |  Size: 669 B

View File

Before

Width:  |  Height:  |  Size: 335 B

After

Width:  |  Height:  |  Size: 335 B

View File

Before

Width:  |  Height:  |  Size: 883 B

After

Width:  |  Height:  |  Size: 883 B

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1733303018722" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1447" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M368.832 67.2c51.328-16.384 89.216 34.112 75.712 76.416a346.816 346.816 0 0 0 435.84 435.84c42.304-13.44 92.8 24.384 76.48 75.712A467.968 467.968 0 1 1 368.832 67.2z m-35.776 122.688a368.832 368.832 0 1 0 501.056 501.056 445.952 445.952 0 0 1-501.056-501.056z" p-id="1448"></path></svg>

After

Width:  |  Height:  |  Size: 619 B

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 821 B

After

Width:  |  Height:  |  Size: 821 B

View File

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 731 B

After

Width:  |  Height:  |  Size: 731 B

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Some files were not shown because too many files have changed in this diff Show More