algeriany/钱包

v1.0.0 2024-09-24 19:00 UTC

This package is auto-updated.

Last update: 2024-09-24 19:04:10 UTC


README

此包为Laravel应用程序提供了一个简单的钱包管理系统。它允许用户创建钱包,管理资金,并在钱包之间转账。

目录

安装

要安装此包,请运行以下命令

composer require algeriany/wallet

配置

安装后,您可能希望使用以下命令发布配置文件

php artisan vendor:publish --provider="algeriany\wallet\WalletServiceProvider" --tag=models
php artisan vendor:publish --provider="algeriany\wallet\WalletServiceProvider" --tag=migrations

使用

创建钱包

要为使用 Walletable 特性的用户或模型创建钱包,您可以这样做

use algeriany\wallet\Models\Wallet;
use algeriany\wallet\Services\WalletService;

// Assuming $user is an instance of a model that uses the Walletable trait
$walletService = new WalletService();
$wallet = $walletService->createWallet($user, 100.00); // Initialize with $100

添加资金

您可以向现有的钱包添加资金

$walletService->addFunds($wallet, 50.00); // Add $50

扣除资金

要从钱包中扣除资金

try {
    $walletService->deductFunds($wallet, 20.00); // Deduct $20
} catch (\Exception $e) {
    echo $e->getMessage(); // Handle insufficient funds exception
}

转账资金

要将资金从钱包转移到另一个钱包

$fromWallet = Wallet::find($fromWalletId);
$toWallet = Wallet::find($toWalletId);

try {
    $walletService->transferFunds($fromWallet, $toWallet, 30.00); // Transfer $30
} catch (\Exception $e) {
    echo $e->getMessage(); // Handle exceptions
}

数据库迁移

此包包括创建 walletswallet_transfers 表的迁移。要运行迁移,请执行

php artisan migrate

迁移结构

钱包表

  • id:钱包的唯一标识符。
  • wallet_id:钱包的唯一字符串标识符。
  • walletable_id:钱包所有者(用户或模型)的ID。
  • walletable_type:钱包所有者的类型(多态关系)。
  • balance:钱包余额。
  • created_at:创建钱包的日期时间戳。
  • updated_at:最后更新日期时间戳。

钱包转账表

  • id:转账的唯一标识符。
  • from_wallet_id:转账资金来源钱包的ID。
  • to_wallet_id:转账资金目标钱包的ID。
  • amount:转账金额。
  • created_at:转账创建的日期时间戳。
  • updated_at:最后更新日期时间戳。

发布资源

要发布模型和迁移,请运行

php artisan vendor:publish --provider="algeriany\wallet\WalletServiceProvider" --tag=models
php artisan vendor:publish --provider="algeriany\wallet\WalletServiceProvider" --tag=migrations

许可证

此包使用MIT许可证。有关详细信息,请参阅LICENSE文件。