geowrgetudor/laravel-balance

一个用于Laravel的信用系统/余额系统。

0.2.2 2024-05-26 21:50 UTC

This package is auto-updated.

Last update: 2024-09-08 02:00:33 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

这是一个小巧的包,它可以添加您可能因各种原因需要的信用系统。

  • 根据用户的活动奖励用户
  • 以信用而非真实货币的形式奖励
  • 为推荐奖励信用
  • 等等。

安装

通过composer安装此包

composer require geowrgetudor/laravel-balance

使用以下命令发布并运行迁移

php artisan vendor:publish --tag="balance-migrations"
php artisan migrate

如果您决定更改默认迁移表名,请确保发布配置文件并在此处更改表名

php artisan vendor:publish --tag="balance-config"

这是发布配置文件的内容

return [
    /**
     * Default table name.
     * If you have changed the migration, make sure you change this too.
     */
    'table' => 'balances'
];

准备您的模型

HasBalance特质添加到您需要的任何模型中。

use Geow\Balance\Traits\HasBalance;

class User extends Model {
    // ...
    use HasBalance;

}

用法

// Set balance (similar to increaseCredit() method - just a naming difference)
$user->setCredit(2000);

// Get balance
$user->credit;

// Increase balance
$user->increaseCredit(1000);

// Decrease balance
$user->decreaseCredit(500);

// Reset balance to 0
$user->resetCredit();

// Check if the user has balance
$user->hasCredit();

// Passing a reason for setting/increasing/deacreasing the balance
$user->setCredit(20000, 'Signup bonus');
$user->increaseCredit(1000, 'Awarded credits');
$user->decreaseCredit(250, 'Service usage');

// Get balance as currency
$user->increaseCredit(1000);
$user->credit; // returns 1000 (represeting cents)
$user->creditCurrency; // returns $10.00 (representing dollars)

// If you need to display using a different currency
$user->withCurrency('EUR')->creditCurrency // returns €10.00

// Getting all model related transactions (increases and decresed in balance)
$user->credits; // Returns \Illuminate\Database\Eloquent\Collection

测试

composer test

变更日志

请参阅变更日志以获取有关最近更改的更多信息。

贡献

请参阅贡献指南以获取详细信息。

安全漏洞

请参阅我们的安全策略以了解如何报告安全漏洞。

信用

许可证

MIT许可证(MIT)。请参阅许可证文件以获取更多信息。