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.php
app/Models/DiscountAction.php
app/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.php
database/migrations/2020_01_15_081706_create_discount_action_table.php
database/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;//优惠的金额 } }