<?php
function getall($tabile,$where,$flid='*'){ $data = $GLOBALS['db']->getall('select '.$flid.' from '.$GLOBALS['ecs']->table($tabile) . ' where '.$where); return $data; } function getrow($tabile,$where,$flid='*'){ $data = $GLOBALS['db']->getRow('select '.$flid.' from '.$GLOBALS['ecs']->table($tabile) . ' where '.$where); return $data; } function getone($tabile,$where,$flid='*'){ $data = $GLOBALS['db']->getone('select '.$flid.' from '.$GLOBALS['ecs']->table($tabile) . ' where '.$where); return $data; }
/** 所有推荐人 * @param $user_id */ function GetUserParentAll($user_id){ return getAll('users',' parent_id = '.$user_id,'*'); }
/**获得推荐人 * @param $user_id * @return bool */ function Getparent($user_id){ return getone('users','user_id = '.$user_id,'parent_id'); }
/**递归统计该用户下推荐人数量 * @param string $user_id * @param int $times * @param int $dividend_sum * @param int $sum * @return int */
function GetRecommendCount ( $user_id = '' , $times = 0 , $dividend_sum = 0 , $sum = 0 ){ if ( empty ( $user_id )){ return $dividend_sum ; } $parent_data = GetUserParentAll( $user_id ) ; //所有推荐人 foreach ( $parent_data as $v ) { $goods_amount = getOne( 'users' , 'user_id=' . $v [ 'user_id' ] , 'count(*)' ) ; $dividend_sum += $goods_amount ; $dividend_sum = GetRecommendCount( $v [ 'user_id' ] , 0 , $dividend_sum ) ; } return $dividend_sum ; }
/**往上递推所有推荐人id * @param string $user_id * @param int $times * @param array $dividend_sum * @param int $sum * @return array */ function Getparent_id($user_id='',$times=0,$dividend_sum=[],$sum=0){ if(empty($user_id)){ return $dividend_sum; } $goods_amount = Getparent($user_id); //上推所有推荐人 array_push($dividend_sum,$user_id); if($goods_amount==0){ return $dividend_sum; } array_push($dividend_sum,$goods_amount); $dividend_sum = Getparent_id($goods_amount, 0, $dividend_sum); return array_flip(array_flip($dividend_sum)); } /** 下推所有推荐人的user_id * @param $user_id */ function GetBelowParentAll($user_id){ return getAll('users',' parent_id = '.$user_id,'user_id'); } /**往下推所有推荐人id * @param string $user_id * @param int $times * @param array $dividend_sum * @param int $sum * @return array */ function GetUserparent_id($user_id='',$times=0,$dividend_sum=[],$sum=0){ if(empty($user_id)){ return $dividend_sum; } $goods_amount = GetBelowParentAll($user_id); //上推所有推荐人 foreach ($goods_amount as $v) { array_push($dividend_sum, $v['user_id']); $dividend_sum = GetUserparent_id($v['user_id'], 0, $dividend_sum); } return $dividend_sum; }
/**往上递推所有推荐人id(不包括自己) * @param string $user_id * @param int $times * @param array $dividend_sum * @param int $sum * @return array */ function GetNoparent_id($user_id='',$times=0,$dividend_sum=[],$sum=0){ if(empty($user_id)){ return $dividend_sum; } $goods_amount = Getparent($user_id); //上推所有推荐人 if($goods_amount==0){ return $dividend_sum; } array_push($dividend_sum,$goods_amount); $dividend_sum = Getparent_id($goods_amount, 0, $dividend_sum); return array_flip(array_flip($dividend_sum)); }/**获得推荐所有关系值(user_id) * @param $user_id * @return array|bool */ function GetAllparent ( $user_id ){ if ( empty ( $user_id )){ return false ; } $allparent = [] ; $allparent_name = [] ; $below = GetUserparent_id( $user_id ) ; // 下推获得所有id array_push( $allparent , $below ) ; $up = GetNoparent_id ( $user_id ) ; // 上推获得所有id array_push( $allparent , $up ) ; foreach ( $allparent as $value ){ foreach ( $value as $v ){ array_push( $allparent_name , $v ) ; } } return $allparent_name ; }?>
<