adeela/user-discounts
Composer 安装命令:
composer require adeela/user-discounts
包简介
A Laravel package for user-level discounts
README 文档
README
A Laravel 8+ package to manage user-level discounts with deterministic stacking, usage caps, and audit logging.
✨ Features
- Assign and revoke discounts to specific users
- Validate user discount eligibility
- Apply discounts with stacking and rounding logic
- Enforce per-user usage limits
- Log and audit discount usage
- Fire events on discount assignment, revocation, and application
🧩 Installation
-
Install via Composer
composer require adeela/user-discounts
-
Register Service Provider (if not auto-discovered)
In
config/app.php:'providers' => [ Adeela\UserDiscounts\UserDiscountsServiceProvider::class, ],
-
Publish Config File
php artisan vendor:publish --provider="Adeela\UserDiscounts\UserDiscountsServiceProvider" --tag="config"
This creates
config/user-discounts.php. -
Run Migrations (if provided)
php artisan migrate
⚙️ Configuration
Sample config/user-discounts.php:
```php
return [
'stacking_order' => 'highest_first',
'max_percentage_cap' => 50,
'rounding' => 'round',
];
```
🧠 Usage Examples
1. Create a Discount
use Adeela\UserDiscounts\Models\Discount; $discount = Discount::create([ 'code' => 'Save20', 'name' => 'Save 20%', 'type' => 'percentage', 'value' => 20, 'active' => 1, 'starts_at' => now()->subDay(), 'ends_at' => now()->addDay(), ]);
2. Assign Discount to a User
$service = new \Adeela\UserDiscounts\Services\DiscountService(); $user = User::find(1); $discount = Discount::find(34); $service->assign($user, $discount);
4. Apply Discount
$service = new \Adeela\UserDiscounts\Services\DiscountService(); $amount = 100; $orderRef = 'ORDER-12345'; $user = User::find(1); $finalAmount = $service->apply($user, $amount, $orderRef); dd("Final amount after discounts: {$finalAmount}");
5. Revoke Discount
$service = new \Adeela\UserDiscounts\Services\DiscountService(); $user = User::find(1); $discount = Discount::find(34); $service->revoke($user, $discount);
🔔 Events
| Event | Description |
|---|---|
DiscountAssigned |
Triggered when a discount is assigned |
DiscountRevoked |
Triggered when a discount is revoked |
DiscountApplied |
Triggered when a discount is applied |
🧪 Testing
vendor/bin/phpunit
adeela/user-discounts 适用场景与选型建议
adeela/user-discounts 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 2 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 09 月 28 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 adeela/user-discounts 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 adeela/user-discounts 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 2
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 8
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Unknown
- 更新时间: 2025-09-28