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<$min){ 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程序设计有所帮助。
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사
R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
어 ass 신 크리드 그림자 : 조개 수수께끼 솔루션
2 몇 주 전ByDDD
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

Dreamweaver Mac版
시각적 웹 개발 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구
