azaharizaman/nexus-treasury
Composer 安装命令:
composer require azaharizaman/nexus-treasury
包简介
Atomic package for treasury management - liquidity pools, cash concentration, working capital optimization, and treasury analytics
README 文档
README
Treasury management package for cash flow forecasting, investment management, and approval workflows.
Purpose
The Treasury package provides a comprehensive domain model and service layer for managing treasury operations within the Nexus platform. It handles policy management, authorization limits, and approval workflows for financial transactions.
Key Features
- Treasury Policy Management: Create and manage treasury policies with configurable thresholds
- Authorization Limits: Define spending limits per user or role with currency support
- Approval Workflows: Submit, approve, or reject transactions requiring authorization
- Multi-Currency Support: All monetary values support multiple currencies
- Status Tracking: Comprehensive status management for policies and approvals
Installation
composer require azaharizaman/nexus-treasury
Requirements
- PHP ^8.3
- azaharizaman/nexus-common ^1.0
Usage
Creating a Treasury Policy
use Nexus\Treasury\Services\TreasuryManager; use Nexus\Treasury\ValueObjects\TreasuryPolicyData; // Create policy data $policyData = TreasuryPolicyData::fromArray([ 'name' => 'Corporate Treasury Policy', 'description' => 'Main treasury policy for corporate operations', 'minimum_cash_balance' => 100000.00, 'minimum_cash_balance_currency' => 'USD', 'maximum_single_transaction' => 500000.00, 'maximum_single_transaction_currency' => 'USD', 'approval_required' => true, 'approval_threshold' => 50000.00, 'approval_threshold_currency' => 'USD', ]); // Create policy via TreasuryManager $policy = $treasuryManager->createPolicy($tenantId, $policyData); echo $policy->getId(); // TRS-POL-XXXXX
Managing Authorization Limits
use Nexus\Treasury\ValueObjects\AuthorizationLimit; // Create an authorization limit for a user $limit = new AuthorizationLimit( userId: 'user-123', roleId: null, amount: 25000.00, currency: 'USD', transactionType: 'payment' ); $authLimit = $treasuryManager->createAuthorizationLimit($tenantId, $limit); // Check if transaction requires approval $requiresApproval = $treasuryManager->requiresApproval( $tenantId, 30000.00, 'USD' );
Approval Workflow
// Submit a transaction for approval $approval = $treasuryManager->submitForApproval( $tenantId, 'payment', 75000.00, 'USD', 'Vendor payment for services', 'user-123' ); // Get pending approvals for a user $pendingApprovals = $treasuryManager->getPendingApprovals('approver-456'); // Approve the transaction $approved = $treasuryManager->approveTransaction( $approval->getId(), 'approver-456', 'Approved - within budget' ); // Or reject the transaction $rejected = $treasuryManager->rejectTransaction( $approval->getId(), 'approver-456', 'Insufficient budget allocation' );
Interfaces
Core Interfaces
| Interface | Description |
|---|---|
TreasuryManagerInterface |
Main orchestrator for treasury operations |
TreasuryPolicyInterface |
Treasury policy entity contract |
TreasuryApprovalInterface |
Treasury approval entity contract |
AuthorizationLimitInterface |
Authorization limit entity contract |
Repository Interfaces
| Interface | Description |
|---|---|
TreasuryPolicyRepositoryInterface |
Combined repository for policy persistence |
TreasuryPolicyQueryRepositoryInterface |
Read operations for policies |
TreasuryPolicyPersistRepositoryInterface |
Write operations for policies |
TreasuryApprovalRepositoryInterface |
Combined repository for approval persistence |
TreasuryApprovalQueryRepositoryInterface |
Read operations for approvals |
TreasuryApprovalPersistRepositoryInterface |
Write operations for approvals |
AuthorizationLimitRepositoryInterface |
Combined repository for limit persistence |
AuthorizationLimitQueryRepositoryInterface |
Read operations for limits |
AuthorizationLimitPersistRepositoryInterface |
Write operations for limits |
Models
| Model | Description |
|---|---|
TreasuryPolicy |
Immutable treasury policy entity |
TreasuryApproval |
Immutable approval entity |
AuthorizationLimit |
Immutable authorization limit entity |
Value Objects
| Value Object | Description |
|---|---|
TreasuryPolicyData |
Data transfer object for policy creation/update |
AuthorizationLimit |
Data transfer object for limit creation |
Enums
| Enum | Cases | Description |
|---|---|---|
ApprovalStatus |
PENDING, APPROVED, REJECTED, CANCELLED, EXPIRED, REQUIRES_REVIEW | Status of approval requests |
TreasuryStatus |
ACTIVE, INACTIVE, PENDING, SUSPENDED, CLOSED | Status of treasury policies |
InvestmentType |
MONEY_MARKET, TERM_DEPOSIT, TREASURY_BILL, COMMERCIAL_PAPER, FIXED_DEPOSIT, OVERNIGHT | Types of short-term investments |
InvestmentStatus |
PENDING, ACTIVE, MATURED, CANCELLED | Status of investments |
ForecastScenario |
OPTIMISTIC, BASE, PESSIMISTIC | Cash flow forecast scenarios |
Exceptions
| Exception | Description |
|---|---|
TreasuryException |
Base exception for treasury operations |
TreasuryPolicyNotFoundException |
Thrown when policy is not found |
LiquidityPoolNotFoundException |
Thrown when liquidity pool is not found |
Architecture
This package follows the Atomic Architecture pattern:
- Contracts: Interface definitions for domain contracts
- Models: Immutable entity implementations
- ValueObjects: Data transfer objects for operations
- Services: Business logic and orchestration
- Repositories: In-memory implementations for testing
- Enums: Type-safe enumerations
- Exceptions: Domain-specific exceptions
Testing
# Run tests ./vendor/bin/phpunit # Run with coverage ./vendor/bin/phpunit --coverage-html coverage
License
MIT License
azaharizaman/nexus-treasury 适用场景与选型建议
azaharizaman/nexus-treasury 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 0 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 05 月 04 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 azaharizaman/nexus-treasury 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 azaharizaman/nexus-treasury 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 42
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-05-04