renjiangfeng / laravel-calculator-discount
0.0.2
2020-02-06 09:55 UTC
Requires
- php: ^5.6 || ^7.0
This package is auto-updated.
Last update: 2024-09-06 20:45:00 UTC
README
laravel-calculator-discount 是一个简单的优惠计算包
安装
composer require renjiangfeng/laravel-calculator-discount
开始使用
执行命令
- php artisan vendor:publish --force --provider="Eric\LaravelCalculatorDiscount\RenLaravelCalculatorServiceProvider"
将创建以下目录和文件
模型文件
app/Models/Discount.phpapp/Models/DiscountAction.phpapp/Models/DiscountRule.php
这三个模型代表优惠的三个表,Discount代表的优惠活动表,DiscountRule代表优惠活动的条件表并与优惠活动表一对一关系 DiscountAction代表优惠活动的结果表并与优惠活动表一对一关系
DiscountRule表的 type 字段不同分为3种类型
- contains_product 指定固定产品
- contains_category 商品类型
- item_total 满减或满减打折
configuration 根据类型不同存储格式不同
DiscountAction表的 type 字段不同分为3种类型
- order_total 满减的金额
- order_ratio 打折
- order_reduce 立减
configuration 根据类型不同存储格式不同
配置文件
config/laravel-calculator.php
数据库迁移文件
database/migrations/2019_01_15_081654_create_discount_table.phpdatabase/migrations/2020_01_15_081706_create_discount_action_table.phpdatabase/migrations/2019_01_15_081713_create_discount_rule_table.php
配置文件说明
config/laravel-calculator.php
[
'status_verify' => false,//是否对优惠的状态验证
'time_verify' => false,//是否对优惠的开始时间和结束时间验证
/**
* 对应的数据模型
**/
'discount_model' => App\Discount::class,
'discount_action_model' => App\DiscountAction::class,
'discount_rule_model' => App\DiscountRule::class,
];
使用说明
<?php namespace App\Http\Controllers; use Eric\LaravelCalculatorDiscount\CalculatorDiscount; class IndexController extends Controller { public function index(){ $CalculatorDiscount = new CalculatorDiscount(); //优惠类型:订单总金额 $condition = [ 'amount'=>20000 ]; //优惠类型:固定分类 $condition = [ 'category_id'=>1 //'category_id'=>[1,2] ]; //优惠类型:固定商品 $condition = [ 'product_id'=>1 //'product_id'=>[1,2] ]; $discount_id = 7;//优惠记录ID $res = $CalculatorDiscount->VerifyRule($condition,$discount_id); return $res; // $res true 代表满足优惠条件 // $res false 代表不满足优惠条件 } public function action(){ $CalculatorDiscount = new CalculatorDiscount(); $total = 20000;//订单总金额 $discount_id = 7;//优惠记录ID $Discounted_price = $CalculatorDiscount->getDiscountAction($discount_id,$total); return $Discounted_price;//优惠的金额 } }