用户在使用APP的时候可以通过填写邀请用户的邀请码来绑定用户与用户之间的上下级关系,通过这层关系用户在送礼物或者进行其他消费的时候他的上级用户就可以得到收益,下面就直播开发中关于三级分销功能源码的实现介绍。
首先,我们需要生成邀请码:

public function createCode($len=6,$format='ALL2'){  //传递生成邀请码的长度以及生成的类型
$is_abc = $is_numer = 0;
$password = $tmp =''; switch($format){  //通过参数来选择生成的邀请码类型
case 'ALL':
$chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
break;
case 'ALL2':
break;
case 'CHAR':
$chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
break;
case 'NUMBER':
$chars='0123456789';
break;
default :
$chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
break;
}
while(strlen($password)<$len){  //判断邀请码的长度,直到邀请码长度够了停止循环
$tmp =substr($chars,(mt_rand()%strlen($chars)),1); //每次在$chars中取一位
if(($is_numer <> 1 && is_numeric($tmp) && $tmp > 0 )|| $format == 'CHAR'){
$is_numer = 1;
}
if(($is_abc <> 1 && preg_match('/[a-zA-Z]/',$tmp)) || $format == 'NUMBER'){
$is_abc = 1;
}
$password.= $tmp;
}
if($is_numer <> 1 || $is_abc <> 1 || empty($password) ){
$password = createCode($len,$format); //判断邀请码是否生成成功,不成功重新生成
}
if($password!=''){
$oneinfo=DI()->notorm->users_agent_code->select("uid")->where("code=?",$password)->fetchOne();
if(!$oneinfo){ //判断邀请码是否存在
return $password;
}
}
$password = createCode($len,$format);
return $password;
}

通过以上直播源码开发我们就可以灵活的实现邀请码,可以通过传递的数值来控制邀请码的位数以及邀请码的组成,在代码中检索这个生成的邀请码是否有其他用户正在使用,如果有在使用那么我们就再重新生成一个,直到邀请码唯一为止,邀请码既然生成了,我们就需要用户填写邀请码并生成上下级。
public function setDistribut(uid,uid,uid,code){ //传递被邀请用户的id和邀请人的邀请码

$isexist=DI()->notorm->users_agent   //查看用户是否存在->select("*")->where('uid=?',$uid)->fetchOne();
if($isexist){
return 1004;
}$oneinfo=DI()->notorm->users_agent_code  //检索邀请码是否存在->select("uid")->where('code=? and uid!=?',$code,$uid)->fetchOne();if(!$oneinfo){return 1002;}$agentinfo=DI()->notorm->users_agent->select("*")->where('uid=?',$oneinfo['uid'])->fetchOne();if(!$agentinfo){$agentinfo=array('uid'=>$oneinfo['uid'],'one_uid'=>0,'two_uid'=>0,);}
/* 判断对方是否自己下级 */
if($agentinfo['one_uid']==$uid || $agentinfo['two_uid']==$uid ){
return 1003;
}$data=array('uid'=>$uid,'one_uid'=>$agentinfo['uid'],'two_uid'=>$agentinfo['one_uid'],'three_uid'=>$agentinfo['two_uid'],'addtime'=>time(),);DI()->notorm->users_agent->insert($data);return 0;
}

生成上下级关系后,用户在消费的时候就可以进行分红了。

 function setAgentProfit($uid,$total){  //传递消费用户的id和消费数额/* 分销 */$distribut1=0;$distribut2=0;$distribut3=0;$configpri=getConfigPri();if($configpri['agent_switch']==1){ //判断分销开关是否开启$agent=DI()->notorm->users_agent->select("*")->where('uid=?',$uid)->fetchOne();$isinsert=0;/* 一级分销 */if($agent['one_uid'] && $configpri['distribut1']){ $distribut1=$total*$configpri['distribut1']*0.01; //分销比例*分销数额$profit=DI()->notorm->users_agent_profit->select("*")->where('uid=?',$agent['one_uid'])->fetchOne();if($profit){DI()->notorm->users_agent_profit //收益添加到个人账户中->where('uid=?',$agent['one_uid'])->update(array('one_profit' => new NotORM_Literal("one_profit + {$distribut1}")));}else{DI()->notorm->users_agent_profit->insert(array('uid'=>$agent['one_uid'],'one_profit' =>$distribut1 ));}DI()->notorm->users->where('id=?',$agent['one_uid'])->update(array('votes' => new NotORM_Literal("votes + {$distribut1}")));$isinsert=1;}/* 二级分销 */if($agent['two_uid'] && $configpri['distribut2']){$distribut2=$total*$configpri['distribut2']*0.01;$profit=DI()->notorm->users_agent_profit->select("*")->where('uid=?',$agent['two_uid'])->fetchOne();if($profit){DI()->notorm->users_agent_profit->where('uid=?',$agent['two_uid'])->update(array('two_profit' => new NotORM_Literal("two_profit + {$distribut2}")));}else{DI()->notorm->users_agent_profit->insert(array('uid'=>$agent['two_uid'],'two_profit' =>$distribut2 ));}DI()->notorm->users->where('id=?',$agent['two_uid'])->update(array('votes' => new NotORM_Literal("votes + {$distribut2}")));$isinsert=1;}/* 三级分销 */if($agent['three_uid'] && $configpri['distribut3']){$distribut3=$total*$configpri['distribut3']*0.01;$profit=DI()->notorm->users_agent_profit->select("*")->where('uid=?',$agent['three_uid'])->fetchOne();if($profit){DI()->notorm->users_agent_profit->where('uid=?',$agent['three_uid'])->update(array('three_profit' => new NotORM_Literal("three_profit + {$distribut3}")));}else{DI()->notorm->users_agent_profit->insert(array('uid'=>$agent['three_uid'],'three_profit' =>$distribut3 ));}DI()->notorm->users->where('id=?',$agent['three_uid'])->update(array('votes' => new NotORM_Literal("votes + {$distribut3}")));$isinsert=1;} if($isinsert==1){$data=array('uid'=>$uid,'total'=>$total,'one_uid'=>$agent['one_uid'],'two_uid'=>$agent['two_uid'],'three_uid'=>$agent['three_uid'],'one_profit'=>$distribut1,'two_profit'=>$distribut2,'three_profit'=>$distribut3,'addtime'=>time(),);DI()->notorm->users_agent_profit_recode->insert( $data );    }}return 1;
}

通过以上直播源代码开发我们就可以实现用户与用户之间的三级分销了。

直播开发中关于三级分销功能源码的实现介绍相关推荐

  1. java抓取页面表格_用java实现爬虫抓取网页中的表格数据功能源码

    [实例简介] 使用java代码基于MyEclipse开发环境实现爬虫抓取网页中的表格数据,将抓取到的数据在控制台打印出来,需要后续处理的话可以在打印的地方对数据进行操作.包解压后导入MyEclipse ...

  2. 2023-01-18 ClickHouse之聚合功能源码分析

    前言 聚合分析是从海量数据中提取数据的基本方法,对于OLAP数据库而言,聚合分析是其关键能力之一,ClickHouse在这方面也做了很多设计和优化,正如ClickHouse在文档中所述: 本文将分析展 ...

  3. android 加速度模块,Android传感器API之:加速度Accelerometer功能源码

    已结贴√ 问题点数:20 回复次数:7 Android传感器API之:加速度Accelerometer功能源码 加速度传感器,主要是感应手机的运动.捕获三个参数,分别表示空间坐标系中X.Y.Z轴方向上 ...

  4. 微信小程序做留言板mysql_微信小程序留言板功能源码

    微信小程序留言板功能源码?先说一下 1.到微信公众平台下载开发者工具.安装 2.appID与没有appID的区别是,appID可以用真机预览,而没有就不行 3.目录解释: a)pages放页面,每个都 ...

  5. android中资源文件的两种访问方式,在android开发中进行数据存储与访问的多种方式介绍...

    在android开发中进行数据存储与访问的多种方式介绍 更新时间:2013年06月07日 16:24:23   作者: 很多时候我们的软件需要对处理后的数据进行存储或再次访问,Android为数据存储 ...

  6. android 距离传感器 api,Android传感器API之:近距离感应Proximity功能源码

    并不是所有Android手机上都保留有距离感应器.基于这个感应器可以有一些很不错的小应用,比如近距离感应锁屏.解锁-- 分享Rexsee的距离感应功能源码,回头可以自个儿做..更多的传感器API我这几 ...

  7. 使用php实现自动获取一个获取文章标题生成主题关键词功能源码

    使用php实现自动获取一个获取文章标题生成主题关键词功能源码 功能展示 1.根据你文章标题,自动获得百度下拉等长尾词生成页面 2.没有后台 生成的页面可以通过js控制所有页面的广告 3.轻量级辅助插件 ...

  8. 利用JS调用手机摄像头小功能源码

    介绍: 一个小功能源码,利用JS调用手机摄像头,当访问网址后就能拍摄照片,前提是客户端给了权限. 1.由于系统安全机制,ios系统必须使用自带的Safari浏览器(或者第三方APP调用的是Safari ...

  9. 最新微信三级分销系统源码 分销商城搭建 含完整代码包和安装部署教程

    分享一个最新微信三级分销系统源码,源码开源可二开,带分销商城+完整数据库+详细的安装搭建教程,支持微信小程序端+公众号端,一个后台统一管理.   系统带电商功能,支持多商户商家入驻等等. 源码下载地址 ...

  10. 简易影视小程序v1.0.1版本新增过审功能源码

    v1.0.1版本更新日志 1.增加激励广告 2.增加插屏广告 3.增加视频贴片广告 4.增加原生广告 5.独立tk框架后台,简易操作 6.增加小程序过审核功能,后台自定义审核页面 7.增加自定义多接口 ...

最新文章

  1. python删除重复值所在的行数_使用python读取txt文件的内容,并删除重复的行数方法...
  2. php客服窗口,制作一个客服小界面
  3. 常见TCP/UDP端口
  4. 看图说话:你不了解的OA与SAP集成
  5. 将Chrome设置为Jupyter_notebook的默认浏览器
  6. CSS 基础框盒模型介绍
  7. 什么是扩展现实(XR)?云XR系统怎样实现?终于有人讲明白了
  8. linux usr local权限,【linux】sudo chown -R $(whoami) /usr/local提示操作被拒绝
  9. 虚拟环境使用自动化软件能够节省成本吗?
  10. 计算机第二显示器黑屏的处理,电脑显示器黑屏的维修处理办法
  11. php事务讲解,PHP面向对象之事务脚本模式(详解)
  12. Quartz学习(一)
  13. nginx下apk下载,ie9的问题
  14. AutoJs学习-实现取色器
  15. 物业为什么要用微小区SaaS系统进行管理
  16. SIFI尺度不变特征变换算法
  17. 工程制图与计算机绘图实训任务书及参考资料,工程制图与计算机绘图综合实训(12版).doc...
  18. 大专程序员待遇吊打清华毕业的深圳老师!深圳老师即将第二次降薪,每月再降4000元!...
  19. 国产系统UOS上的视频监控系统
  20. Maxent模型预测

热门文章

  1. 入门需掌握的20个python代码
  2. Springboot项目启动报错:
  3. web打印组件康虎云报表与odoo整合示例
  4. My eclipse和Eclipse平台 JSP可视化编程工具
  5. ubuntu下取代ping的好工具tcpping
  6. Java中的素数求法
  7. .net core在线考试系统源码
  8. pythoncharm设置翻译器_pyCharm 设置调试输出窗口中文显示方式(字符码转换)
  9. 管家婆服务器备份文件夹,[任我行]管家婆软件的使用方法,管家婆辉煌提示备份报错3202...
  10. eda多功能数字钟课程设计_eda课程设计——多功能数字钟.doc