本文主要介绍了PHP实现的递归提成方案,以完整实例形式较为详细的分析了PHP提成方案的数据库设计及功能实现技巧,涉及PHP数学运算的相关技巧。需要的朋友可以参考下,希望对大家有所帮助。

最近CRM项目中用到了递归提成的方案,分析如下:

SQL语句如下:CREATE TABLE `crm_proxy_bonux_rule` (

`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '超过的部份提成规则ID',

`bouns_rule_name` varchar(20) NOT NULL COMMENT '规则名称,如D套餐0-20范围',

`rid` bigint(20) DEFAULT NULL COMMENT '为0,就是默认的全局设置',

`start_rang` smallint(6) DEFAULT NULL COMMENT '开始范围',

`end_rang` smallint(6) DEFAULT NULL COMMENT '结束范围',

`bonus_rate` smallint(6) DEFAULT NULL COMMENT '提成率',

`bonus_reward` decimal(8,2) DEFAULT NULL COMMENT '奖励现金',

`chain_pre` int(11) DEFAULT NULL COMMENT '链表上一个值默认为0,表示根结点',

`chain_next` int(11) DEFAULT NULL COMMENT '链表下一个值',

`is_standard` enum('0','1') DEFAULT '0' COMMENT '是否是标准',

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;

PHP实现代码如下:private function bouns_recursion($range,$standard,&$rule_list,$amount){

$price = 1000;

$max = $standard['end_rang'] ;//最大值

$min = $standard['start_rang'] ;//最小值

$bonus_rate = $standard['bonus_rate'];//分红率

if($range

return false;

}

$standard_amount = 0;

$plus = 0;

//是否是标准 第一个

if($standard['is_standard']==1){

$standard_amount = $price * $min * $bonus_rate / 100; //求提成 600 300

}else{

$plus = 1; //第二次要累加

}

if($range > $max){

$number = ($max - $min) + $plus;//算出差值值 5 4-3 == 1

$amount = ($price * $number * $bonus_rate / 100); //求提成 200

}else{

$number = ($range - $min ) + $plus;//算出差值值 4 1

$amount = ($price * $number * $bonus_rate / 100); //求提成

}

$amount = $amount + $standard_amount;//800

if(!empty($rule_list[$standard['chain_next']]) && $range > $max){

return $amount += $this->bouns_recursion($range, $rule_list[$standard['chain_next']], $rule_list,$amount);

}

return $amount;

}

相关推荐:

php求及格,详解PHP通过递归实现提成计算相关推荐

  1. 详解Clojure的递归(下)——相互递归和trampoline

    详解clojure递归(上)     详解clojure递归(下)         这篇blog拖到现在才写,如果再不写,估计就只有上篇没有下篇了,趁周末写一下. 上篇提到了Clojure仅支持有限的 ...

  2. 牛顿斯科特MATLAB求积分,详解Matlab求积分的各种方法

    详解Matlab求积分地各种方法 一.符号积分 符号积分由函数int来实现.该函数地一般调用格式为: int(s):没有指定积分变量和积分阶数时,系统按findsym函数指示地默认变量对被积函数或符号 ...

  3. pytorch自动求梯度—详解

    构建深度学习模型的基本流程就是:搭建计算图,求得损失函数,然后计算损失函数对模型参数的导数,再利用梯度下降法等方法来更新参数.搭建计算图的过程,称为"正向传播",这个是需要我们自己 ...

  4. EXCEL表格-按条件求和、求平均值、求个数详解

    ❤关注我,不迷路❤ 点击进入EXCEL综合应用场景专栏 生活中经常会遇到按条件求和.按条件求平均值的场景,比如统计某个班级中成绩在60分以上的男生的个数,本文将以递进的形式进行对多种场景从易至难讲解, ...

  5. C语言:表达式求值详解

    文章目录 前言 一.隐式类型转换 二.算术转换 三.操作符的属性 前言 该篇文章是笔者之前一篇文章C语言操作符详解的后续补充: 表达式求值的顺序一部分是由操作符的优先级和结合性决定. 同样,有些表达式 ...

  6. C语言详解:函数递归专题

    文章目录 函数递归 函数递归的定义和优缺点 递归的使用场景及必要条件 递归的细节说明 递归的习题讲解 1打印整数每一位 输入输出示例 解题思路 代码逻辑 2递归和非递归求n阶乘 输入输出示例 解题思路 ...

  7. 【Cartographer参数详解,调参,降低计算量调优笔记记录】

    Cartographer学习记录 文章目录 Cartographer学习记录 前言 一.cartographer参数详解 二..lua文件参数详解 1.rs16_2d_outdoor.lua 2.tr ...

  8. 面阵相机靶面详解and镜头选择andFA镜头视野计算

    工业相机靶面详解 工业相机的靶面也就是相机成像芯片的尺寸,一般描述相机靶面采用英寸来描述,在相机芯片中,1英寸为16mm. 通常说的2/3英寸靶面的相机意思就是,相机芯片对角线的尺寸为2/3英寸,也就 ...

  9. 干货满满!全面详解如何用递归解题!

    作者 | kunge 责编 | Elle 前言 递归是算法中一种非常重要的思想,应用也很广,小到阶乘,再在工作中用到的比如统计文件夹大小,大到 Google 的 PageRank 算法都能看到,也是面 ...

最新文章

  1. 拆解交易系统--性能优化,安全加固与弹性扩缩容
  2. c4d流体插件_【C4D】流体插件详细讲解
  3. 洛谷 - P4323 [JSOI2016]独特的树叶(树上哈希+换根dp)
  4. esp8266驱动oled屏幕_为什么“更好的OLED电视”在海信?
  5. mysql去掉两个最高分_数据分析系列 16/32 | MySQL中子查询与联合查询
  6. 删除还原点 oracle,oracle 还原点(restore point)
  7. 【节流】在vue的搜寻功能中使用节流
  8. [c++]筛法求素数
  9. 极客大学架构师训练营 框架设计、设计原则、设计模式 第四课 听课总结
  10. Capture Allegro走线Option详细介绍图文教程
  11. 霍尔探头对高斯计测量的影响
  12. 由浅入深理解JVM垃圾回收机制
  13. SELECT TOP 100 PERCENT
  14. .NET 6 Minimal API 的经验分享
  15. 超详细!Jmeter性能测试(一)
  16. java 方法继承方法_java的继承原理与实现方法详解
  17. Win11怎么设置让CPU性能全开?Win11CPU怎么设置高性能模式?
  18. #java #web jsp开发入门(web应用概述、tomcat简介、编写步骤)
  19. VBA对EXCEL某列进行排序操作
  20. js 忽略字母大小写

热门文章

  1. 软件工程---在此基础上,进行软件的改进
  2. Linux CentOS 6.5 + Apache + Mariadb + PHP环境搭建
  3. 验证码 -图形图像识别的算法。http://blog.csdn.net/xtalk2008/archive/2007/11/01/1861310.aspx...
  4. sql server安装记
  5. IOS开发基础之绘制饼图、柱状图、自定义进度条
  6. Android 电视 文件目录,通用的安卓智能电视截屏及图片目录文件获取方法
  7. 计算机解题报告,计算机题目33题(附带题解)精选.doc
  8. 为什么我写的c++程序在windows下比linux下要快,linux比windows快很多倍除了算法的优势 有没C比C++快的原因?...
  9. 文件服务器访问权限分配,设置文件服务器的访问权限
  10. 工质热物理性质计算程序的编制及应用_新能源动力电池热管理方案设计和热流体仿真...